From a8c59e1e87cd96c734eab79f3d3394ef3d46e9ce Mon Sep 17 00:00:00 2001 From: leejet Date: Mon, 14 Sep 2026 23:52:16 +0800 Subject: [PATCH] feat: support external Hugging Face tokenizer JSON files --- CMakeLists.txt | 1 + docs/tokenizers.md | 97 + examples/common/common.cpp | 7 + examples/common/common.h | 1 + include/stable-diffusion.h | 1 + src/conditioning/conditioner.hpp | 302 +- src/core/regex.cpp | 171 + src/core/regex.h | 32 + src/extensions/photomaker_extension.cpp | 94 +- src/model/diffusion/hidream_o1.hpp | 28 +- src/model/te/llm.hpp | 5 +- src/model/te/t5.hpp | 5 +- src/pipeline/diffusion_engine.h | 1 + src/pipeline/model_builders.cpp | 70 +- src/pipeline/video.cpp | 38 +- src/stable-diffusion.cpp | 2 + src/tokenizers/bpe_tokenizer.cpp | 9 +- src/tokenizers/bpe_tokenizer.h | 2 +- src/tokenizers/hf_tokenizer.cpp | 856 + src/tokenizers/hf_tokenizer.h | 26 + src/tokenizers/t5_unigram_tokenizer.cpp | 9 +- src/tokenizers/t5_unigram_tokenizer.h | 2 +- src/tokenizers/tokenizer.cpp | 31 +- src/tokenizers/tokenizer.h | 21 +- src/tokenizers/tokenizer_config.cpp | 77 + src/tokenizers/tokenizer_config.h | 28 + thirdparty/CMakeLists.txt | 64 + thirdparty/README.md | 8 +- thirdparty/oniguruma/COPYING | 26 + thirdparty/oniguruma/README.md | 88 + thirdparty/oniguruma/ascii.c | 121 + thirdparty/oniguruma/config.h.cmake.in | 56 + thirdparty/oniguruma/oniguruma.h | 1094 + thirdparty/oniguruma/regcomp.c | 8589 +++++ thirdparty/oniguruma/regenc.c | 994 + thirdparty/oniguruma/regenc.h | 286 + thirdparty/oniguruma/regerror.c | 414 + thirdparty/oniguruma/regexec.c | 6793 ++++ thirdparty/oniguruma/regint.h | 1058 + thirdparty/oniguruma/regparse.c | 9455 +++++ thirdparty/oniguruma/regparse.h | 494 + thirdparty/oniguruma/st.c | 562 + thirdparty/oniguruma/st.h | 60 + thirdparty/oniguruma/unicode.c | 1239 + thirdparty/oniguruma/unicode_egcb_data.c | 1424 + thirdparty/oniguruma/unicode_fold1_key.c | 3137 ++ thirdparty/oniguruma/unicode_fold2_key.c | 226 + thirdparty/oniguruma/unicode_fold3_key.c | 136 + thirdparty/oniguruma/unicode_fold_data.c | 1619 + thirdparty/oniguruma/unicode_property_data.c | 33930 +++++++++++++++++ thirdparty/oniguruma/unicode_unfold_key.c | 3497 ++ thirdparty/oniguruma/unicode_wb_data.c | 1138 + thirdparty/oniguruma/utf8.c | 290 + thirdparty/utf8proc/LICENSE.md | 93 + thirdparty/utf8proc/README.md | 45 + thirdparty/utf8proc/utf8proc.c | 823 + thirdparty/utf8proc/utf8proc.h | 789 + thirdparty/utf8proc/utf8proc_data.c | 17106 +++++++++ 58 files changed, 97390 insertions(+), 180 deletions(-) create mode 100644 docs/tokenizers.md create mode 100644 src/core/regex.cpp create mode 100644 src/core/regex.h create mode 100644 src/tokenizers/hf_tokenizer.cpp create mode 100644 src/tokenizers/hf_tokenizer.h create mode 100644 src/tokenizers/tokenizer_config.cpp create mode 100644 src/tokenizers/tokenizer_config.h create mode 100644 thirdparty/oniguruma/COPYING create mode 100644 thirdparty/oniguruma/README.md create mode 100644 thirdparty/oniguruma/ascii.c create mode 100644 thirdparty/oniguruma/config.h.cmake.in create mode 100644 thirdparty/oniguruma/oniguruma.h create mode 100644 thirdparty/oniguruma/regcomp.c create mode 100644 thirdparty/oniguruma/regenc.c create mode 100644 thirdparty/oniguruma/regenc.h create mode 100644 thirdparty/oniguruma/regerror.c create mode 100644 thirdparty/oniguruma/regexec.c create mode 100644 thirdparty/oniguruma/regint.h create mode 100644 thirdparty/oniguruma/regparse.c create mode 100644 thirdparty/oniguruma/regparse.h create mode 100644 thirdparty/oniguruma/st.c create mode 100644 thirdparty/oniguruma/st.h create mode 100644 thirdparty/oniguruma/unicode.c create mode 100644 thirdparty/oniguruma/unicode_egcb_data.c create mode 100644 thirdparty/oniguruma/unicode_fold1_key.c create mode 100644 thirdparty/oniguruma/unicode_fold2_key.c create mode 100644 thirdparty/oniguruma/unicode_fold3_key.c create mode 100644 thirdparty/oniguruma/unicode_fold_data.c create mode 100644 thirdparty/oniguruma/unicode_property_data.c create mode 100644 thirdparty/oniguruma/unicode_unfold_key.c create mode 100644 thirdparty/oniguruma/unicode_wb_data.c create mode 100644 thirdparty/oniguruma/utf8.c create mode 100644 thirdparty/utf8proc/LICENSE.md create mode 100644 thirdparty/utf8proc/README.md create mode 100644 thirdparty/utf8proc/utf8proc.c create mode 100644 thirdparty/utf8proc/utf8proc.h create mode 100644 thirdparty/utf8proc/utf8proc_data.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 389c4d4ee..39e639f39 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -342,6 +342,7 @@ add_subdirectory(thirdparty) target_sources(${SD_LIB} PRIVATE $) target_link_libraries(${SD_LIB} PUBLIC ggml) +target_link_libraries(${SD_LIB} PRIVATE onig sd-utf8proc) target_include_directories(${SD_LIB} PUBLIC . src include) target_include_directories(${SD_LIB} PRIVATE src/core) target_include_directories(${SD_LIB} PUBLIC . thirdparty) diff --git a/docs/tokenizers.md b/docs/tokenizers.md new file mode 100644 index 000000000..8abca5d28 --- /dev/null +++ b/docs/tokenizers.md @@ -0,0 +1,97 @@ +# JSON tokenizers + +Use a Hugging Face `tokenizer.json` to supply the tokenizer vocabulary, merges, +added tokens, and processing stages. Without this option, sd.cpp keeps its +embedded tokenizer for the selected model. + +```shell +sd-cli --diffusion-model model.gguf --llm text_encoder.gguf \ + --tokenizer tokenizer_gemma2.json --vae vae.safetensors -p "a cat" +``` + +Choose the JSON belonging to the text encoder checkpoint. Checking that IDs fit +the embedding table does not establish that two vocabularies have the same +meaning. The JSON file is loaded when the text encoder is created; its embedded +vocabulary is not loaded in this case. + +| Option | Encoder | +| --- | --- | +| `--tokenizer FILE` | Main LLM/BPE encoder: Gemma 2, Gemma 3, Qwen 2/3, Mistral, GPT-OSS; also Anima and HiDream-O1 | +| `--tokenizer FILE` | Shared CLIP tokenizer in SD1/SD2/SDXL, or CLIP-L in Flux | +| `--tokenizer clip-l=FILE` | Separate CLIP-L in SD3 or Flux | +| `--tokenizer clip-g=FILE` | Separate CLIP-G in SD3 | + +Use comma-separated assignments to configure multiple slots, for example +`--tokenizer main=main.json,clip-l=clip_l.json,clip-g=clip_g.json`. +A plain file path is equivalent to `main=FILE`. You may also repeat `--tokenizer` +with explicit assignments, such as `--tokenizer main=main.json --tokenizer clip-l=clip.json`. +Empty assignment paths, unknown keys, malformed assignments and +duplicate slots are rejected. Commas separate entries in the assignment form; +quote the complete argument when paths contain spaces. + +SD3 overrides must name the `clip-l` or `clip-g` slot. SDXL uses one shared +tokenizer for both CLIP encoders. Do not supply both `main` and `clip-l` for Flux. +A slot targeting an absent or unsupported encoder fails initialization. +T5/SentencePiece Unigram tokenizers are outside this implementation's scope. + +For example, SD3 can load the same CLIP JSON into both slots: + +```shell +sd-cli --diffusion-model sd3.gguf --clip_l clip_l.safetensors \ + --clip_g clip_g.safetensors --t5xxl t5xxl.gguf --vae vae.safetensors \ + --tokenizer clip-l=tokenizer_clip.json,clip-g=tokenizer_clip.json \ + -p "a cat" +``` + +The C API accepts the same string in `sd_ctx_params_t::tokenizer`. A null or +empty value keeps the embedded tokenizers. The CLI passes the string through; +`TokenizerConfig` parses and validates it when text encoders are initialized. + +```c +sd_ctx_params_t params; +sd_ctx_params_init(¶ms); +params.tokenizer = "clip-l=tokenizer_clip.json,clip-g=tokenizer_clip.json"; +``` + +Rebuild applications against the updated public header when using the updated +library. + +## Supported components + +| Stage | Supported configurations | +| --- | --- | +| Normalizer | `Sequence`, `NFC`, `Lowercase`, `Replace` with String/Regex patterns | +| PreTokenizer | `Sequence`, `Split` with String/Regex patterns, all five delimiter behaviors and `invert`; `ByteLevel` with `add_prefix_space` and `use_regex` | +| Model | Deterministic `BPE`, string or array-pair merges, `unk_token`, `fuse_unk`, `byte_fallback`, `ignore_merges`, `end_of_word_suffix` | +| PostProcessor | Single-sequence `TemplateProcessing` with at most one prefix and one suffix token, `RobertaProcessing`, `ByteLevel` | +| Decoder | `Sequence`, `Replace`, `ByteLevel`, `ByteFallback`, `Fuse` | +| AddedToken | Special and ordinary added tokens, original IDs, raw or normalized matching, leftmost-longest matching | + +`ByteLevel.use_regex` defaults to true when omitted. ByteLevel postprocessing +changes offsets only and adds no tokens. Added tokens with `single_word`, +`lstrip`, or `rstrip` enabled, nonzero BPE dropout, nonempty +`continuing_subword_prefix`, and unsupported component types fail loading. +New added-token IDs must follow the model vocabulary consecutively; configurations +whose IDs Hugging Face would reassign are rejected. +JSON `padding` and `truncation` must be null. This API returns IDs, not offsets, +type IDs, or paired-input encodings; the pair template is not used. + +The pipeline covers the CLIP, Gemma 2, Gemma 3, GPT-OSS, Mistral 3, Qwen 2 and +Qwen 3 JSON configurations used by the differential test. It does not imply +support for every tokenizer published under those model names. + +## Prompt integration + +Prompt attention parsing and model-specific chat/image templates remain in the +conditioner. Raw `encode()` does not add BOS/EOS. The conditioner concatenates +weighted prompt fragments, then the existing padding/chunking step applies the +JSON single-sequence template once per sequence or CLIP chunk. Padding ID, +direction, length limits and attention masks remain text encoder policies. +CLIP requires both BOS and EOS because its chunking reserves those positions. + +The internal `encode()`, `tokenize()`, and `decode()` interfaces return a success +flag and write to an output parameter. A successful result may be empty; a failed +call clears its output. JSON tokenizer input, normalization, and regex failures +return `false` with diagnostic information instead of throwing. Invalid +JSON, unsupported stages, conflicting IDs and IDs outside the encoder embedding +table fail initialization instead of falling back to the embedded tokenizer. diff --git a/examples/common/common.cpp b/examples/common/common.cpp index 04bd89ccc..de645817c 100644 --- a/examples/common/common.cpp +++ b/examples/common/common.cpp @@ -410,6 +410,11 @@ ArgOptions SDContextParams::get_options() { "path to the llm text encoder. For example: (qwenvl2.5 for qwen-image, mistral-small3.2 for flux2, ...)", 0, &llm_path}, + {"", + "--tokenizer", + "tokenizer.json path, or comma-separated main=FILE,clip-l=FILE,clip-g=FILE assignments", + (int)',', + &tokenizer}, {"", "--llm_vision", "path to the llm vit", @@ -896,6 +901,7 @@ std::string SDContextParams::to_string() const { << " t5xxl_path: \"" << t5xxl_path << "\",\n" << " llm_path: \"" << llm_path << "\",\n" << " llm_vision_path: \"" << llm_vision_path << "\",\n" + << " tokenizer: \"" << tokenizer << "\",\n" << " diffusion_model_path: \"" << diffusion_model_path << "\",\n" << " high_noise_diffusion_model_path: \"" << high_noise_diffusion_model_path << "\",\n" << " uncond_diffusion_model_path: \"" << uncond_diffusion_model_path << "\",\n" @@ -963,6 +969,7 @@ sd_ctx_params_t SDContextParams::to_sd_ctx_params_t(bool taesd_preview) { sd_ctx_params.t5xxl_path = t5xxl_path.c_str(); sd_ctx_params.llm_path = llm_path.c_str(); sd_ctx_params.llm_vision_path = llm_vision_path.c_str(); + sd_ctx_params.tokenizer = tokenizer.c_str(); sd_ctx_params.diffusion_model_path = diffusion_model_path.c_str(); sd_ctx_params.high_noise_diffusion_model_path = high_noise_diffusion_model_path.c_str(); sd_ctx_params.uncond_diffusion_model_path = uncond_diffusion_model_path.c_str(); diff --git a/examples/common/common.h b/examples/common/common.h index 8a33edcf6..3b66ae4ab 100644 --- a/examples/common/common.h +++ b/examples/common/common.h @@ -124,6 +124,7 @@ struct SDContextParams { std::string t5xxl_path; std::string llm_path; std::string llm_vision_path; + std::string tokenizer; std::string diffusion_model_path; std::string high_noise_diffusion_model_path; std::string uncond_diffusion_model_path; diff --git a/include/stable-diffusion.h b/include/stable-diffusion.h index 31a87e85d..adcbe3b05 100644 --- a/include/stable-diffusion.h +++ b/include/stable-diffusion.h @@ -244,6 +244,7 @@ typedef struct { bool disable_segmented_compute; // Force monolithic graph execution even when automatic graph cutting would fit memory better float linear_scale; // Override linear input scaling; 0 keeps the model default float attn_scale; // Override flash-attention K/V scaling; 0 keeps the model default + const char* tokenizer; // Optional tokenizer.json path or main=FILE,clip-l=FILE,clip-g=FILE assignments } sd_ctx_params_t; typedef struct { diff --git a/src/conditioning/conditioner.hpp b/src/conditioning/conditioner.hpp index 4dc46a223..93d05b0ad 100644 --- a/src/conditioning/conditioner.hpp +++ b/src/conditioning/conditioner.hpp @@ -17,6 +17,7 @@ #include "model/te/t5.hpp" #include "model_loader.h" #include "tokenizers/sensenova_u1_tokenizer.h" +#include "tokenizers/tokenizer_config.h" struct SDCondition { sd::Tensor c_crossattn; @@ -159,7 +160,7 @@ struct Conditioner { // Ref: https://github.com/AUTOMATIC1111/stable-diffusion-webui/blob/cad87bf4e3e0b0a759afa94e933527c3123d59bc/modules/sd_hijack_clip.py#L283 struct FrozenCLIPEmbedderWithCustomWords : public Conditioner { SDVersion version = VERSION_SD1; - CLIPTokenizer tokenizer; + std::shared_ptr tokenizer; std::shared_ptr text_model; std::shared_ptr text_model2; @@ -173,12 +174,18 @@ struct FrozenCLIPEmbedderWithCustomWords : public Conditioner { const String2TensorStorage& tensor_storage_map, const std::map& orig_embedding_map, SDVersion version = VERSION_SD1, - std::shared_ptr weight_manager = nullptr) - : version(version), tokenizer(sd_version_is_sd2(version) ? 0 : 49407) { + std::shared_ptr weight_manager = nullptr, + const TokenizerConfig& tokenizers = {}) + : version(version) { + const int pad_id = sd_version_is_sd2(version) ? 0 : 49407; + tokenizer = tokenizers.create(TokenizerConfig::MAIN, 49408, pad_id, false, true); + if (!tokenizer) { + tokenizer = std::make_shared(pad_id); + } for (const auto& kv : orig_embedding_map) { std::string name = normalize_embedding_name(kv.first); embedding_map[name] = kv.second; - tokenizer.add_special_token(name); + tokenizer->add_special_token(name); } bool force_clip_f32 = !embedding_map.empty(); if (sd_version_is_sd1(version)) { @@ -365,16 +372,15 @@ struct FrozenCLIPEmbedderWithCustomWords : public Conditioner { return load_embedding(name, iter->second, bpe_tokens); } - std::vector convert_token_to_id(std::string text) { + bool convert_token_to_id(const std::string& text, std::vector& tokens) { auto on_new_token_cb = [&](std::string& str, std::vector& bpe_tokens) -> bool { return append_embedding_tokens(str, bpe_tokens); }; - std::vector curr_tokens = tokenizer.encode(text, on_new_token_cb); - return curr_tokens; + return tokenizer->encode(text, tokens, on_new_token_cb); } - std::string decode(const std::vector& tokens) { - return tokenizer.decode(tokens); + bool decode(const std::vector& tokens, std::string& text) { + return tokenizer->decode(tokens, text); } std::pair, std::vector> tokenize(std::string text, @@ -412,18 +418,21 @@ struct FrozenCLIPEmbedderWithCustomWords : public Conditioner { if (padding_size > 0) { LOG_VERBOSE("BREAK token encountered, padding current chunk by %zu tokens.", padding_size); - tokens.insert(tokens.end(), padding_size, tokenizer.EOS_TOKEN_ID); + tokens.insert(tokens.end(), padding_size, tokenizer->EOS_TOKEN_ID); weights.insert(weights.end(), padding_size, 1.0f); } continue; // Skip to the next item after handling BREAK } - std::vector curr_tokens = tokenizer.encode(curr_text, on_new_token_cb); + std::vector curr_tokens; + if (!tokenizer->encode(curr_text, curr_tokens, on_new_token_cb)) { + return {}; + } tokens.insert(tokens.end(), curr_tokens.begin(), curr_tokens.end()); weights.insert(weights.end(), curr_tokens.size(), curr_weight); } - tokenizer.pad_tokens(tokens, &weights, nullptr, min_length, max_length, allow_overflow_expand); + tokenizer->pad_tokens(tokens, &weights, nullptr, min_length, max_length, allow_overflow_expand); // for (int i = 0; i < tokens.size(); i++) { // std::cout << tokens[i] << ":" << weights[i] << ", "; @@ -460,7 +469,7 @@ struct FrozenCLIPEmbedderWithCustomWords : public Conditioner { sd::Tensor input_ids2; size_t max_token_idx = 0; if (sd_version_is_sdxl(version)) { - auto it = std::find(chunk_tokens.begin(), chunk_tokens.end(), tokenizer.EOS_TOKEN_ID); + auto it = std::find(chunk_tokens.begin(), chunk_tokens.end(), tokenizer->EOS_TOKEN_ID); if (it != chunk_tokens.end()) { std::fill(std::next(it), chunk_tokens.end(), 0); } @@ -561,7 +570,10 @@ struct FrozenCLIPEmbedderWithCustomWords : public Conditioner { SDCondition get_learned_condition(int n_threads, const ConditionerParams& conditioner_params) override { - auto tokens_and_weights = tokenize(conditioner_params.text, text_model->model.n_token, text_model->model.n_token, true); + auto tokens_and_weights = tokenize(conditioner_params.text, text_model->model.n_token, text_model->model.n_token, true); + if (tokens_and_weights.first.empty()) { + return {}; + } std::vector& tokens = tokens_and_weights.first; std::vector& weights = tokens_and_weights.second; return get_learned_condition_common(n_threads, @@ -629,8 +641,8 @@ struct FrozenCLIPVisionEmbedder : public GGMLRunner { }; struct SD3CLIPEmbedder : public Conditioner { - CLIPTokenizer clip_l_tokenizer; - CLIPTokenizer clip_g_tokenizer; + std::shared_ptr clip_l_tokenizer; + std::shared_ptr clip_g_tokenizer; T5UniGramTokenizer t5_tokenizer; std::shared_ptr clip_l; std::shared_ptr clip_g; @@ -638,8 +650,8 @@ struct SD3CLIPEmbedder : public Conditioner { SD3CLIPEmbedder(ggml_backend_t backend, const String2TensorStorage& tensor_storage_map = {}, - std::shared_ptr weight_manager = nullptr) - : clip_g_tokenizer(0) { + std::shared_ptr weight_manager = nullptr, + const TokenizerConfig& tokenizers = {}) { bool use_clip_l = false; bool use_clip_g = false; bool use_t5 = false; @@ -657,9 +669,17 @@ struct SD3CLIPEmbedder : public Conditioner { return; } if (use_clip_l) { + clip_l_tokenizer = tokenizers.create(TokenizerConfig::CLIP_L, 49408, 49407, false, true); + if (!clip_l_tokenizer) { + clip_l_tokenizer = std::make_shared(); + } clip_l = std::make_shared(backend, tensor_storage_map, "text_encoders.clip_l.transformer.text_model", OPENAI_CLIP_VIT_L_14, false, false, weight_manager); } if (use_clip_g) { + clip_g_tokenizer = tokenizers.create(TokenizerConfig::CLIP_G, 49408, 0, false, true); + if (!clip_g_tokenizer) { + clip_g_tokenizer = std::make_shared(0); + } clip_g = std::make_shared(backend, tensor_storage_map, "text_encoders.clip_g.transformer.text_model", OPEN_CLIP_VIT_BIGG_14, false, false, weight_manager); } if (use_t5) { @@ -811,27 +831,36 @@ struct SD3CLIPEmbedder : public Conditioner { const std::string& curr_text = item.first; float curr_weight = item.second; if (clip_l) { - std::vector curr_tokens = clip_l_tokenizer.encode(curr_text, on_new_token_cb); + std::vector curr_tokens; + if (!clip_l_tokenizer->encode(curr_text, curr_tokens, on_new_token_cb)) { + return {}; + } clip_l_tokens.insert(clip_l_tokens.end(), curr_tokens.begin(), curr_tokens.end()); clip_l_weights.insert(clip_l_weights.end(), curr_tokens.size(), curr_weight); } if (clip_g) { - std::vector curr_tokens = clip_g_tokenizer.encode(curr_text, on_new_token_cb); + std::vector curr_tokens; + if (!clip_g_tokenizer->encode(curr_text, curr_tokens, on_new_token_cb)) { + return {}; + } clip_g_tokens.insert(clip_g_tokens.end(), curr_tokens.begin(), curr_tokens.end()); clip_g_weights.insert(clip_g_weights.end(), curr_tokens.size(), curr_weight); } if (t5) { - std::vector curr_tokens = t5_tokenizer.encode(curr_text); + std::vector curr_tokens; + if (!t5_tokenizer.encode(curr_text, curr_tokens)) { + return {}; + } t5_tokens.insert(t5_tokens.end(), curr_tokens.begin(), curr_tokens.end()); t5_weights.insert(t5_weights.end(), curr_tokens.size(), curr_weight); } } if (clip_l) { - clip_l_tokenizer.pad_tokens(clip_l_tokens, &clip_l_weights, nullptr, min_length, max_length, allow_overflow_expand); + clip_l_tokenizer->pad_tokens(clip_l_tokens, &clip_l_weights, nullptr, min_length, max_length, allow_overflow_expand); } if (clip_g) { - clip_g_tokenizer.pad_tokens(clip_g_tokens, &clip_g_weights, nullptr, min_length, max_length, allow_overflow_expand); + clip_g_tokenizer->pad_tokens(clip_g_tokens, &clip_g_weights, nullptr, min_length, max_length, allow_overflow_expand); } if (t5) { t5_tokenizer.pad_tokens(t5_tokens, &t5_weights, nullptr, min_length, max_length, true); @@ -902,7 +931,7 @@ struct SD3CLIPEmbedder : public Conditioner { chunk_hidden_states_l = ::apply_token_weights(std::move(chunk_hidden_states_l), chunk_weights); if (chunk_idx == 0) { - auto it = std::find(chunk_tokens.begin(), chunk_tokens.end(), clip_l_tokenizer.EOS_TOKEN_ID); + auto it = std::find(chunk_tokens.begin(), chunk_tokens.end(), clip_l_tokenizer->EOS_TOKEN_ID); max_token_idx = std::min(std::distance(chunk_tokens.begin(), it), chunk_tokens.size() - 1); pooled_l = clip_l->compute(n_threads, input_ids, @@ -945,7 +974,7 @@ struct SD3CLIPEmbedder : public Conditioner { chunk_hidden_states_g = ::apply_token_weights(std::move(chunk_hidden_states_g), chunk_weights); if (chunk_idx == 0) { - auto it = std::find(chunk_tokens.begin(), chunk_tokens.end(), clip_g_tokenizer.EOS_TOKEN_ID); + auto it = std::find(chunk_tokens.begin(), chunk_tokens.end(), clip_g_tokenizer->EOS_TOKEN_ID); max_token_idx = std::min(std::distance(chunk_tokens.begin(), it), chunk_tokens.size() - 1); pooled_g = clip_g->compute(n_threads, input_ids, @@ -1023,6 +1052,9 @@ struct SD3CLIPEmbedder : public Conditioner { SDCondition get_learned_condition(int n_threads, const ConditionerParams& conditioner_params) override { auto tokens_and_weights = tokenize(conditioner_params.text, 77, 77, true); + if (tokens_and_weights.empty()) { + return {}; + } return get_learned_condition_common(n_threads, tokens_and_weights, conditioner_params.clip_skip, @@ -1031,7 +1063,7 @@ struct SD3CLIPEmbedder : public Conditioner { }; struct FluxCLIPEmbedder : public Conditioner { - CLIPTokenizer clip_l_tokenizer; + std::shared_ptr clip_l_tokenizer; T5UniGramTokenizer t5_tokenizer; std::shared_ptr clip_l; std::shared_ptr t5; @@ -1039,7 +1071,8 @@ struct FluxCLIPEmbedder : public Conditioner { FluxCLIPEmbedder(ggml_backend_t backend, const String2TensorStorage& tensor_storage_map = {}, - std::shared_ptr weight_manager = nullptr) { + std::shared_ptr weight_manager = nullptr, + const TokenizerConfig& tokenizers = {}) { bool use_clip_l = false; bool use_t5 = false; for (auto pair : tensor_storage_map) { @@ -1056,6 +1089,11 @@ struct FluxCLIPEmbedder : public Conditioner { } if (use_clip_l) { + auto slot = tokenizers.has(TokenizerConfig::CLIP_L) ? TokenizerConfig::CLIP_L : TokenizerConfig::MAIN; + clip_l_tokenizer = tokenizers.create(slot, 49408, 49407, false, true); + if (!clip_l_tokenizer) { + clip_l_tokenizer = std::make_shared(); + } clip_l = std::make_shared(backend, tensor_storage_map, "text_encoders.clip_l.transformer.text_model", OPENAI_CLIP_VIT_L_14, true, false, weight_manager); } else { LOG_WARN("clip_l text encoder not found! Prompt adherence might be degraded."); @@ -1181,19 +1219,25 @@ struct FluxCLIPEmbedder : public Conditioner { const std::string& curr_text = item.first; float curr_weight = item.second; if (clip_l) { - std::vector curr_tokens = clip_l_tokenizer.encode(curr_text, on_new_token_cb); + std::vector curr_tokens; + if (!clip_l_tokenizer->encode(curr_text, curr_tokens, on_new_token_cb)) { + return {}; + } clip_l_tokens.insert(clip_l_tokens.end(), curr_tokens.begin(), curr_tokens.end()); clip_l_weights.insert(clip_l_weights.end(), curr_tokens.size(), curr_weight); } if (t5) { - std::vector curr_tokens = t5_tokenizer.encode(curr_text); + std::vector curr_tokens; + if (!t5_tokenizer.encode(curr_text, curr_tokens)) { + return {}; + } t5_tokens.insert(t5_tokens.end(), curr_tokens.begin(), curr_tokens.end()); t5_weights.insert(t5_weights.end(), curr_tokens.size(), curr_weight); } } if (clip_l) { - clip_l_tokenizer.pad_tokens(clip_l_tokens, &clip_l_weights, nullptr, 77, 77, true); + clip_l_tokenizer->pad_tokens(clip_l_tokens, &clip_l_weights, nullptr, 77, 77, true); } if (t5) { t5_tokenizer.pad_tokens(t5_tokens, &t5_weights, nullptr, min_length, max_length, true); @@ -1243,7 +1287,7 @@ struct FluxCLIPEmbedder : public Conditioner { sd::Tensor input_ids({static_cast(chunk_tokens.size())}, chunk_tokens); size_t max_token_idx = 0; - auto it = std::find(chunk_tokens.begin(), chunk_tokens.end(), clip_l_tokenizer.EOS_TOKEN_ID); + auto it = std::find(chunk_tokens.begin(), chunk_tokens.end(), clip_l_tokenizer->EOS_TOKEN_ID); max_token_idx = std::min(std::distance(chunk_tokens.begin(), it), chunk_tokens.size() - 1); pooled = clip_l->compute(n_threads, @@ -1306,6 +1350,9 @@ struct FluxCLIPEmbedder : public Conditioner { SDCondition get_learned_condition(int n_threads, const ConditionerParams& conditioner_params) override { auto tokens_and_weights = tokenize(conditioner_params.text, chunk_len, chunk_len); + if (tokens_and_weights.empty()) { + return {}; + } return get_learned_condition_common(n_threads, tokens_and_weights, conditioner_params.clip_skip, @@ -1449,7 +1496,10 @@ struct T5CLIPEmbedder : public Conditioner { const std::string& curr_text = item.first; float curr_weight = item.second; - std::vector curr_tokens = t5_tokenizer.encode(curr_text); + std::vector curr_tokens; + if (!t5_tokenizer.encode(curr_text, curr_tokens)) { + return {}; + } t5_tokens.insert(t5_tokens.end(), curr_tokens.begin(), curr_tokens.end()); t5_weights.insert(t5_weights.end(), curr_tokens.size(), curr_weight); } @@ -1547,6 +1597,9 @@ struct T5CLIPEmbedder : public Conditioner { SDCondition get_learned_condition(int n_threads, const ConditionerParams& conditioner_params) override { auto tokens_and_weights = tokenize(conditioner_params.text, chunk_len, chunk_len); + if (std::get<0>(tokens_and_weights).empty()) { + return {}; + } return get_learned_condition_common(n_threads, tokens_and_weights, conditioner_params.clip_skip, @@ -1645,7 +1698,10 @@ struct MiniT2IConditioner : public Conditioner { return result; } - std::vector tokens = tokenizer.encode(conditioner_params.text); + std::vector tokens; + if (!tokenizer.encode(conditioner_params.text, tokens)) { + return {}; + } if (tokens.size() > prompt_length) { tokens.resize(prompt_length); } @@ -1712,7 +1768,10 @@ struct SenseNovaU1Conditioner : public Conditioner { } SDCondition tokenize_condition(const std::string& text, bool is_negative) { - auto tokens = tokenizer.encode(build_query(text, is_negative)); + std::vector tokens; + if (!tokenizer.encode(build_query(text, is_negative), tokens)) { + return {}; + } if (tokens.empty() || tokens.size() > kMaxPromptTokens) { LOG_ERROR("SenseNova U1.5 prompt token count %zu is outside [1, %zu]", tokens.size(), @@ -1737,20 +1796,24 @@ struct SenseNovaU1Conditioner : public Conditioner { }; struct AnimaConditioner : public Conditioner { - std::shared_ptr qwen_tokenizer; + std::shared_ptr qwen_tokenizer; T5UniGramTokenizer t5_tokenizer; std::shared_ptr llm; AnimaConditioner(ggml_backend_t backend, const String2TensorStorage& tensor_storage_map = {}, - std::shared_ptr weight_manager = nullptr) { - qwen_tokenizer = std::make_shared(); + std::shared_ptr weight_manager = nullptr, + const TokenizerConfig& tokenizers = {}) { llm = std::make_shared(LLM::LLMArch::QWEN3, backend, tensor_storage_map, "text_encoders.llm", false, weight_manager); + qwen_tokenizer = tokenizers.create(TokenizerConfig::MAIN, llm->config.vocab_size, 151643); + if (!qwen_tokenizer) { + qwen_tokenizer = std::make_shared(); + } } void get_param_tensors(std::map& tensors) override { @@ -1817,7 +1880,10 @@ struct AnimaConditioner : public Conditioner { for (const auto& item : parsed_attention) { const std::string& curr_text = item.first; - std::vector curr_tokens = qwen_tokenizer->tokenize(curr_text, nullptr); + std::vector curr_tokens; + if (!qwen_tokenizer->tokenize(curr_text, curr_tokens, nullptr)) { + return {}; + } qwen_tokens.insert(qwen_tokens.end(), curr_tokens.begin(), curr_tokens.end()); // Anima uses uniform Qwen token weights. qwen_weights.insert(qwen_weights.end(), curr_tokens.size(), 1.f); @@ -1830,7 +1896,10 @@ struct AnimaConditioner : public Conditioner { for (const auto& item : parsed_attention) { const std::string& curr_text = item.first; float curr_weight = item.second; - std::vector curr_tokens = t5_tokenizer.encode(curr_text); + std::vector curr_tokens; + if (!t5_tokenizer.encode(curr_text, curr_tokens)) { + return {}; + } t5_tokens.insert(t5_tokens.end(), curr_tokens.begin(), curr_tokens.end()); t5_weights.insert(t5_weights.end(), curr_tokens.size(), curr_weight); } @@ -1849,6 +1918,10 @@ struct AnimaConditioner : public Conditioner { auto& t5_tokens = std::get<2>(tokenized); auto& t5_weights = std::get<3>(tokenized); + if (qwen_tokens.empty()) { + return {}; + } + sd::Tensor input_ids({static_cast(qwen_tokens.size()), 1}, qwen_tokens); auto hidden_states = llm->compute(n_threads, input_ids, @@ -1875,7 +1948,7 @@ struct AnimaConditioner : public Conditioner { struct LLMEmbedder : public Conditioner { SDVersion version; - std::shared_ptr tokenizer; + std::shared_ptr tokenizer; std::shared_ptr llm; std::shared_ptr byt5; @@ -1884,7 +1957,8 @@ struct LLMEmbedder : public Conditioner { SDVersion version = VERSION_QWEN_IMAGE, const std::string prefix = "", bool enable_vision = false, - std::shared_ptr weight_manager = nullptr) + std::shared_ptr weight_manager = nullptr, + const TokenizerConfig& tokenizers = {}) : version(version) { LLM::LLMArch arch = LLM::LLMArch::QWEN2_5_VL; if (version == VERSION_FLUX2) { @@ -1906,21 +1980,32 @@ struct LLMEmbedder : public Conditioner { } else if (sd_version_is_z_image(version) || version == VERSION_OVIS_IMAGE || version == VERSION_FLUX2_KLEIN) { arch = LLM::LLMArch::QWEN3; } - if (arch == LLM::LLMArch::MISTRAL_SMALL_3_2 || arch == LLM::LLMArch::MINISTRAL_3_3B) { - tokenizer = std::make_shared(); - } else if (arch == LLM::LLMArch::GPT_OSS_20B) { - tokenizer = std::make_shared(); - } else if (arch == LLM::LLMArch::GEMMA2_2B) { - tokenizer = std::make_shared(); - } else { - tokenizer = std::make_shared(); - } - llm = std::make_shared(arch, + llm = std::make_shared(arch, backend, tensor_storage_map, "text_encoders.llm", enable_vision, weight_manager); + int pad_id = 151643; + if (arch == LLM::LLMArch::MISTRAL_SMALL_3_2 || arch == LLM::LLMArch::MINISTRAL_3_3B) { + pad_id = 11; + } else if (arch == LLM::LLMArch::GPT_OSS_20B) { + pad_id = 199999; + } else if (arch == LLM::LLMArch::GEMMA2_2B) { + pad_id = 0; + } + tokenizer = tokenizers.create(TokenizerConfig::MAIN, llm->config.vocab_size, pad_id); + if (!tokenizer) { + if (arch == LLM::LLMArch::MISTRAL_SMALL_3_2 || arch == LLM::LLMArch::MINISTRAL_3_3B) { + tokenizer = std::make_shared(); + } else if (arch == LLM::LLMArch::GPT_OSS_20B) { + tokenizer = std::make_shared(); + } else if (arch == LLM::LLMArch::GEMMA2_2B) { + tokenizer = std::make_shared(); + } else { + tokenizer = std::make_shared(); + } + } if (sd_version_is_hunyuan_video(version)) { const std::string byt5_prefix = "text_encoders.t5xxl.transformer"; for (const auto& [name, _] : tensor_storage_map) { @@ -2059,7 +2144,10 @@ struct LLMEmbedder : public Conditioner { for (const auto& item : parsed_attention) { const std::string& curr_text = item.first; float curr_weight = item.second; - std::vector curr_tokens = tokenizer->encode(curr_text, nullptr); + std::vector curr_tokens; + if (!tokenizer->encode(curr_text, curr_tokens, nullptr)) { + return {}; + } tokens.insert(tokens.end(), curr_tokens.begin(), curr_tokens.end()); weights.insert(weights.end(), curr_tokens.size(), curr_weight); } @@ -2092,6 +2180,10 @@ struct LLMEmbedder : public Conditioner { auto& weights = std::get<1>(tokens_weights_mask); auto& mask = std::get<2>(tokens_weights_mask); + if (tokens.empty()) { + return {}; + } + sd::Tensor input_ids({static_cast(tokens.size())}, tokens); sd::Tensor attention_mask; if (!mask.empty()) { @@ -2251,7 +2343,11 @@ struct LLMEmbedder : public Conditioner { GGML_ASSERT(image_outputs.size() == 4); auto image_embed = std::move(image_outputs[0]); prompt += "<|vision_start|>"; - int image_embed_idx = static_cast(tokenizer->encode(prompt, nullptr).size()); + std::vector prefix_tokens; + if (!tokenizer->encode(prompt, prefix_tokens, nullptr)) { + return false; + } + int image_embed_idx = static_cast(prefix_tokens.size()); image_embeds.emplace_back(image_embed_idx, image_embed); if (deepstack_image_embeds.empty()) { deepstack_image_embeds.resize(image_outputs.size() - 1); @@ -2267,6 +2363,7 @@ struct LLMEmbedder : public Conditioner { prompt += placeholder; } prompt += "<|vision_end|>"; + return true; }; const auto* references = conditioner_params.minimax_h3_references; @@ -2283,11 +2380,13 @@ struct LLMEmbedder : public Conditioner { GGML_ASSERT(item.frames.size() == 1); auto resized = resize_for_vision(item.frames[0]); prompt += ": "; - add_vision_outputs(llm->encode_image_outputs(n_threads, - resized, - false), - static_cast(resized.shape()[1]) / patch_size, - static_cast(resized.shape()[0]) / patch_size); + if (!add_vision_outputs(llm->encode_image_outputs(n_threads, + resized, + false), + static_cast(resized.shape()[1]) / patch_size, + static_cast(resized.shape()[0]) / patch_size)) { + return {}; + } continue; } @@ -2311,22 +2410,26 @@ struct LLMEmbedder : public Conditioner { second.shape()[3]}); } auto pair = sd::ops::concat(first.unsqueeze(2), second.unsqueeze(2), 2); - add_vision_outputs(llm->encode_video_block_outputs(n_threads, - pair, - false), - static_cast(first.shape()[1]) / patch_size, - static_cast(first.shape()[0]) / patch_size); + if (!add_vision_outputs(llm->encode_video_block_outputs(n_threads, + pair, + false), + static_cast(first.shape()[1]) / patch_size, + static_cast(first.shape()[0]) / patch_size)) { + return {}; + } } } } else if (conditioner_params.ref_images != nullptr) { for (size_t i = 0; i < conditioner_params.ref_images->size(); ++i) { auto resized = resize_for_vision((*conditioner_params.ref_images)[i]); prompt += ": "; - add_vision_outputs(llm->encode_image_outputs(n_threads, - resized, - false), - static_cast(resized.shape()[1]) / patch_size, - static_cast(resized.shape()[0]) / patch_size); + if (!add_vision_outputs(llm->encode_image_outputs(n_threads, + resized, + false), + static_cast(resized.shape()[1]) / patch_size, + static_cast(resized.shape()[0]) / patch_size)) { + return {}; + } } } } @@ -2362,7 +2465,10 @@ struct LLMEmbedder : public Conditioner { "enhanced description for the prompt below and avoid including any additional " "commentary or evaluations:<|im_end|>\n<|im_start|>user\n"; - auto prefix_tokens = tokenizer->encode(prompt_prefix, nullptr); + std::vector prefix_tokens; + if (!tokenizer->encode(prompt_prefix, prefix_tokens, nullptr)) { + return {}; + } prompt_template_encode_start_idx = 0; for (int token : prefix_tokens) { if (token != pad_token) { @@ -2415,7 +2521,11 @@ struct LLMEmbedder : public Conditioner { GGML_ASSERT(!image_embed.empty()); std::string image_prefix = prompt + img_prompt + "<|vision_start|>"; - int image_embed_idx = static_cast(tokenizer->encode(image_prefix, nullptr).size()); + std::vector prefix_tokens; + if (!tokenizer->encode(image_prefix, prefix_tokens, nullptr)) { + return {}; + } + int image_embed_idx = static_cast(prefix_tokens.size()); image_embeds.emplace_back(image_embed_idx, image_embed); img_prompt += "<|vision_start|>"; @@ -2557,7 +2667,11 @@ struct LLMEmbedder : public Conditioner { GGML_ASSERT(!image_embed.empty()); std::string image_prefix = prompt_prefix + img_prompt + "<|vision_start|>"; - int image_embed_idx = static_cast(tokenizer->encode(image_prefix, nullptr).size()); + std::vector prefix_tokens; + if (!tokenizer->encode(image_prefix, prefix_tokens, nullptr)) { + return {}; + } + int image_embed_idx = static_cast(prefix_tokens.size()); image_embeds.emplace_back(image_embed_idx, image_embed); img_prompt += "<|vision_start|>"; @@ -2625,7 +2739,11 @@ struct LLMEmbedder : public Conditioner { GGML_ASSERT(!image_embed.empty()); std::string image_prefix = prompt + img_prompt + "Picture " + std::to_string(i + 1) + ": <|vision_start|>"; - int image_embed_idx = static_cast(tokenizer->encode(image_prefix, nullptr).size()); + std::vector prefix_tokens; + if (!tokenizer->encode(image_prefix, prefix_tokens, nullptr)) { + return {}; + } + int image_embed_idx = static_cast(prefix_tokens.size()); image_embeds.emplace_back(image_embed_idx, image_embed); img_prompt += "Picture " + std::to_string(i + 1) + ": <|vision_start|>"; @@ -2830,7 +2948,10 @@ struct LLMEmbedder : public Conditioner { "- User Prompt: A busy city street -> Enhanced: A bustling city street scene at dusk, featuring glowing street lamps, a diverse crowd of people in colorful clothing, and a double-decker bus passing by towering glass skyscrapers.\n" "Please generate only the enhanced description for the prompt below and avoid including any additional commentary or evaluations:\n" "User Prompt: "; - auto chi_tokens = std::get<0>(tokenize(chi_prompt, {0, 0})); + auto chi_tokens = std::get<0>(tokenize(chi_prompt, {0, 0})); + if (chi_tokens.empty()) { + return {}; + } size_t num_chi_tokens = chi_tokens.size(); max_length = (int)num_chi_tokens + pixeldit_max_length - 2; min_length = max_length; @@ -2849,7 +2970,9 @@ struct LLMEmbedder : public Conditioner { 0, false, max_length); - GGML_ASSERT(!hidden_states.empty()); + if (hidden_states.empty()) { + return {}; + } if (hidden_states.shape()[1] > pixeldit_max_length) { auto bos = sd::ops::slice(hidden_states, 1, 0, 1); @@ -2882,6 +3005,9 @@ struct LLMEmbedder : public Conditioner { max_length, deepstack_image_embeds, image_grids); + if (hidden_states.empty()) { + return {}; + } std::vector> extra_hidden_states_vec; if (sd_version_is_hunyuan_video(version) && byt5) { std::vector quoted_texts; @@ -2932,6 +3058,9 @@ struct LLMEmbedder : public Conditioner { prompt_template_encode_start_idx, spell_quotes, max_length); + if (extra_hidden_states.empty()) { + return {}; + } extra_hidden_states_vec.push_back(std::move(extra_hidden_states)); } @@ -3030,7 +3159,7 @@ struct LTXAVEmbedder : public Conditioner { static constexpr int64_t kNumStates = 49; static constexpr int64_t kMinLength = 1024; - std::shared_ptr tokenizer; + std::shared_ptr tokenizer; std::shared_ptr llm; std::shared_ptr projector; std::string projector_prefix; @@ -3057,17 +3186,21 @@ struct LTXAVEmbedder : public Conditioner { const String2TensorStorage& tensor_storage_map = {}, const std::string& llm_prefix = "text_encoders.llm", const std::string& projector_prefix = "text_embedding_projection", - std::shared_ptr weight_manager = nullptr) + std::shared_ptr weight_manager = nullptr, + const TokenizerConfig& tokenizers = {}) : projector_prefix(projector_prefix) { LLM::LLMArch arch = detect_gemma_arch(tensor_storage_map, llm_prefix); LOG_INFO("ltxav text encoder: %s", arch == LLM::LLMArch::GEMMA4_12B ? "gemma 4" : "gemma 3"); - tokenizer = std::make_shared(); - llm = std::make_shared(arch, + llm = std::make_shared(arch, backend, tensor_storage_map, llm_prefix, false, weight_manager); + tokenizer = tokenizers.create(TokenizerConfig::MAIN, llm->config.vocab_size, 0, true); + if (!tokenizer) { + tokenizer = std::make_shared(); + } dual_projection = tensor_storage_map.find(projector_prefix + ".video_aggregate_embed.weight") != tensor_storage_map.end(); projector = std::make_shared(backend, tensor_storage_map, @@ -3146,7 +3279,10 @@ struct LTXAVEmbedder : public Conditioner { std::vector tokens; std::vector weights; for (const auto& item : parsed_attention) { - auto curr_tokens = tokenizer->encode(item.first, nullptr); + std::vector curr_tokens; + if (!tokenizer->encode(item.first, curr_tokens, nullptr)) { + return {}; + } tokens.insert(tokens.end(), curr_tokens.begin(), curr_tokens.end()); weights.insert(weights.end(), curr_tokens.size(), item.second); } @@ -3164,6 +3300,10 @@ struct LTXAVEmbedder : public Conditioner { auto& weights = std::get<1>(tokens_weights_mask); auto& mask = std::get<2>(tokens_weights_mask); + if (tokens.empty()) { + return {}; + } + sd::Tensor input_ids({static_cast(tokens.size())}, std::vector(tokens.begin(), tokens.end())); sd::Tensor attention_mask; if (!mask.empty()) { @@ -3262,7 +3402,9 @@ struct LTXAVEmbedder : public Conditioner { prompt_attn_range.second = static_cast(prompt.size()); auto hidden_states = encode_prompt(n_threads, prompt, prompt_attn_range); - GGML_ASSERT(!hidden_states.empty()); + if (hidden_states.empty()) { + return {}; + } int64_t t1 = ggml_time_ms(); LOG_VERBOSE("computing LTXAV condition graph completed, taking %" PRId64 " ms", t1 - t0); diff --git a/src/core/regex.cpp b/src/core/regex.cpp new file mode 100644 index 000000000..afab4f5fc --- /dev/null +++ b/src/core/regex.cpp @@ -0,0 +1,171 @@ +#include "regex.h" + +#include +#include +#include + +#define ONIG_ESCAPE_UCHAR_COLLISION +#define ONIG_ESCAPE_REGEX_T_COLLISION +#include + +namespace sd { + + struct Regex::Impl { + OnigRegex regex = nullptr; + + ~Impl() { + if (regex) { + onig_free(regex); + } + } + }; + + struct RegexRegionDeleter { + void operator()(OnigRegion* region) const { + onig_region_free(region, 1); + } + }; + + static bool regex_error(std::string* error, const std::string& message) { + if (error) { + *error = message; + } + return false; + } + + static bool regex_onig_error(std::string* error, int code, OnigErrorInfo* info = nullptr) { + OnigUChar buffer[ONIG_MAX_ERROR_MESSAGE_LEN]; + onig_error_code_to_str(buffer, code, info); + return regex_error(error, reinterpret_cast(buffer)); + } + + static int regex_initialize() { + static std::once_flag once; + static int result = ONIG_NORMAL; + std::call_once(once, [] { + OnigEncoding encodings[] = {ONIG_ENCODING_UTF8}; + result = onig_initialize(encodings, 1); + }); + // onig_end() would invalidate expressions held by other Regex instances. + return result; + } + + // Rust str excludes overlong encodings, surrogates and extended UTF-8 accepted by Oniguruma. + static bool regex_valid_utf8(const std::string& text) { + size_t position = 0; + while (position < text.size()) { + const auto lead = static_cast(text[position++]); + if (lead < 0x80) { + continue; + } + int count = 0; + if (lead >= 0xC2 && lead <= 0xDF) { + count = 1; + } else if (lead >= 0xE0 && lead <= 0xEF) { + count = 2; + } else if (lead >= 0xF0 && lead <= 0xF4) { + count = 3; + } + if (count == 0 || text.size() - position < static_cast(count)) { + return false; + } + uint32_t codepoint = lead & (0x7F >> count); + for (int i = 0; i < count; ++i) { + const auto byte = static_cast(text[position++]); + if ((byte & 0xC0) != 0x80) { + return false; + } + codepoint = (codepoint << 6) | (byte & 0x3F); + } + constexpr uint32_t minimum[] = {0, 0x80, 0x800, 0x10000}; + if (codepoint < minimum[count] || codepoint > 0x10FFFF || (codepoint >= 0xD800 && codepoint <= 0xDFFF)) { + return false; + } + } + return true; + } + + Regex::Regex() = default; + Regex::~Regex() = default; + Regex::Regex(Regex&&) noexcept = default; + Regex& Regex::operator=(Regex&&) noexcept = default; + + bool Regex::compile(const std::string& pattern, std::string* error) { + if (error) { + error->clear(); + } + const int initialized = regex_initialize(); + if (initialized != ONIG_NORMAL) { + return regex_onig_error(error, initialized); + } + if (pattern.size() > static_cast(std::numeric_limits::max())) { + return regex_error(error, "regex pattern exceeds Oniguruma's offset range"); + } + const auto* begin = reinterpret_cast(pattern.data()); + const auto* end = begin + pattern.size(); + if (!regex_valid_utf8(pattern)) { + return regex_error(error, "regex pattern is not valid UTF-8"); + } + + auto next = std::make_unique(); + OnigErrorInfo info{}; + static std::mutex compile_mutex; + std::lock_guard lock(compile_mutex); + const int result = onig_new(&next->regex, begin, end, ONIG_OPTION_NONE, + ONIG_ENCODING_UTF8, ONIG_SYNTAX_ONIGURUMA, &info); + if (result != ONIG_NORMAL) { + return regex_onig_error(error, result, &info); + } + impl_ = std::move(next); + return true; + } + + bool Regex::find_matches(const std::string& text, std::vector& matches, std::string* error) const { + matches.clear(); + if (error) { + error->clear(); + } + if (!impl_) { + return regex_error(error, "regex has not been compiled"); + } + if (text.size() > static_cast(std::numeric_limits::max())) { + return regex_error(error, "regex input exceeds Oniguruma's offset range"); + } + const auto* begin = reinterpret_cast(text.data()); + const auto* end = begin + text.size(); + if (!regex_valid_utf8(text)) { + return regex_error(error, "regex input is not valid UTF-8"); + } + std::unique_ptr region(onig_region_new()); + if (!region) { + return regex_error(error, "failed to allocate regex match region"); + } + + size_t position = 0; + while (position <= text.size()) { + const int result = onig_search(impl_->regex, begin, end, begin + position, end, + region.get(), ONIG_OPTION_NONE); + if (result == ONIG_MISMATCH) { + break; + } + if (result < 0) { + matches.clear(); + return regex_onig_error(error, result); + } + const size_t match_begin = static_cast(region->beg[0]); + const size_t match_end = static_cast(region->end[0]); + // Match rust-onig's find_iter: suppress an empty match at the previous match's end. + if (match_begin == match_end && !matches.empty() && matches.back().second == match_end) { + if (position == text.size()) { + break; + } + position += static_cast(ONIGENC_MBC_ENC_LEN(ONIG_ENCODING_UTF8, begin + position)); + continue; + } + matches.emplace_back(match_begin, match_end); + position = match_end; + } + return true; + } + +} // namespace sd diff --git a/src/core/regex.h b/src/core/regex.h new file mode 100644 index 000000000..a6eec5d50 --- /dev/null +++ b/src/core/regex.h @@ -0,0 +1,32 @@ +#ifndef __SD_CORE_REGEX_H__ +#define __SD_CORE_REGEX_H__ + +#include +#include +#include +#include +#include + +namespace sd { + + class Regex { + struct Impl; + std::unique_ptr impl_; + + public: + using Match = std::pair; + + Regex(); + ~Regex(); + Regex(Regex&&) noexcept; + Regex& operator=(Regex&&) noexcept; + + // Failed compilation leaves the previous expression intact. + bool compile(const std::string& pattern, std::string* error = nullptr); + // Matches are non-overlapping UTF-8 byte ranges; each call owns its search state. + bool find_matches(const std::string& text, std::vector& matches, std::string* error = nullptr) const; + }; + +} // namespace sd + +#endif // __SD_CORE_REGEX_H__ diff --git a/src/extensions/photomaker_extension.cpp b/src/extensions/photomaker_extension.cpp index a15e751e3..f904c8f73 100644 --- a/src/extensions/photomaker_extension.cpp +++ b/src/extensions/photomaker_extension.cpp @@ -18,12 +18,15 @@ tokenize_photomaker_trigger(FrozenCLIPEmbedderWithCustomWords& clip_conditioner, auto tokens_and_weights = clip_conditioner.tokenize(text); std::vector source_tokens = std::move(tokens_and_weights.first); std::vector source_weights = std::move(tokens_and_weights.second); + if (source_tokens.empty()) { + return {}; + } - if (!source_tokens.empty() && source_tokens.front() == clip_conditioner.tokenizer.BOS_TOKEN_ID) { + if (!source_tokens.empty() && source_tokens.front() == clip_conditioner.tokenizer->BOS_TOKEN_ID) { source_tokens.erase(source_tokens.begin()); source_weights.erase(source_weights.begin()); } - if (!source_tokens.empty() && source_tokens.back() == clip_conditioner.tokenizer.EOS_TOKEN_ID) { + if (!source_tokens.empty() && source_tokens.back() == clip_conditioner.tokenizer->EOS_TOKEN_ID) { source_tokens.pop_back(); source_weights.pop_back(); } @@ -49,12 +52,12 @@ tokenize_photomaker_trigger(FrozenCLIPEmbedderWithCustomWords& clip_conditioner, weights.push_back(source_weights[i]); } - clip_conditioner.tokenizer.pad_tokens(tokens, - &weights, - nullptr, - clip_conditioner.text_model->model.n_token, - clip_conditioner.text_model->model.n_token, - true); + clip_conditioner.tokenizer->pad_tokens(tokens, + &weights, + nullptr, + clip_conditioner.text_model->model.n_token, + clip_conditioner.text_model->model.n_token, + true); std::vector class_token_mask; for (int i = 0; i < tokens.size(); i++) { class_token_mask.push_back(class_idx >= 0 && class_idx + 1 <= i && i < class_idx + 1 + trigger_token_count); @@ -69,8 +72,14 @@ get_photomaker_condition_with_trigger(FrozenCLIPEmbedderWithCustomWords& clip_co const ConditionerParams& conditioner_params, const std::string& trigger_word, int trigger_token_count) { - auto image_tokens = clip_conditioner.convert_token_to_id(trigger_word); - GGML_ASSERT(image_tokens.size() == 1); + std::vector image_tokens; + if (!clip_conditioner.convert_token_to_id(trigger_word, image_tokens)) { + return {}; + } + if (image_tokens.size() != 1) { + LOG_ERROR("PhotoMaker trigger word must encode to one token"); + return {}; + } auto tokens_and_weights = tokenize_photomaker_trigger(clip_conditioner, conditioner_params.text, trigger_token_count, @@ -78,27 +87,43 @@ get_photomaker_condition_with_trigger(FrozenCLIPEmbedderWithCustomWords& clip_co std::vector& tokens = std::get<0>(tokens_and_weights); std::vector& weights = std::get<1>(tokens_and_weights); std::vector& trigger_mask = std::get<2>(tokens_and_weights); - auto cond = clip_conditioner.get_learned_condition_common(n_threads, - tokens, - weights, - conditioner_params.clip_skip, - conditioner_params.width, - conditioner_params.height, - conditioner_params.zero_out_masked); + if (tokens.empty()) { + return {}; + } + auto cond = clip_conditioner.get_learned_condition_common(n_threads, + tokens, + weights, + conditioner_params.clip_skip, + conditioner_params.width, + conditioner_params.height, + conditioner_params.zero_out_masked); return std::make_tuple(std::move(cond), trigger_mask); } -static std::string remove_photomaker_trigger_from_prompt(FrozenCLIPEmbedderWithCustomWords& clip_conditioner, - const std::string& prompt, - const std::string& trigger_word) { - auto image_tokens = clip_conditioner.convert_token_to_id(trigger_word); - GGML_ASSERT(image_tokens.size() == 1); +static bool remove_photomaker_trigger_from_prompt(FrozenCLIPEmbedderWithCustomWords& clip_conditioner, + const std::string& prompt, + const std::string& trigger_word, + std::string& result) { + std::vector image_tokens; + if (!clip_conditioner.convert_token_to_id(trigger_word, image_tokens)) { + return false; + } + if (image_tokens.size() != 1) { + LOG_ERROR("PhotoMaker trigger word must encode to one token"); + return false; + } auto tokens_and_weights = clip_conditioner.tokenize(prompt); std::vector& tokens = tokens_and_weights.first; - auto it = std::find(tokens.begin(), tokens.end(), image_tokens[0]); - GGML_ASSERT(it != tokens.end()); + if (tokens.empty()) { + return false; + } + auto it = std::find(tokens.begin(), tokens.end(), image_tokens[0]); + if (it == tokens.end()) { + LOG_ERROR("PhotoMaker trigger word was not found in tokenized prompt"); + return false; + } tokens.erase(it); - return clip_conditioner.decode(tokens); + return clip_conditioner.decode(tokens, result); } struct PhotoMakerExtension : public GenerationExtension { @@ -223,6 +248,10 @@ struct PhotoMakerExtension : public GenerationExtension { trigger_token_count); SDCondition prepared_id_condition = std::get<0>(cond_tup); auto class_tokens_mask = std::get<1>(cond_tup); + if (prepared_id_condition.empty()) { + LOG_ERROR("failed to encode PhotoMaker prompt"); + return false; + } if (std::find(class_tokens_mask.begin(), class_tokens_mask.end(), true) == class_tokens_mask.end()) { LOG_WARN("PhotoMaker trigger word '%s' was not found in prompt", trigger_word.c_str()); LOG_WARN("Turn off PhotoMaker for this request"); @@ -263,11 +292,16 @@ struct PhotoMakerExtension : public GenerationExtension { prepared_id_condition.c_crossattn = std::move(res); int64_t t1 = ggml_time_ms(); - id_condition = std::move(prepared_id_condition); - start_merge_step = int(ctx.pm_params.style_strength / 100.f * ctx.total_steps); - ctx.condition_params.text = remove_photomaker_trigger_from_prompt(*clip_conditioner, - ctx.condition_params.text, - trigger_word); + std::string prompt; + if (!remove_photomaker_trigger_from_prompt(*clip_conditioner, + ctx.condition_params.text, + trigger_word, + prompt)) { + return false; + } + id_condition = std::move(prepared_id_condition); + start_merge_step = int(ctx.pm_params.style_strength / 100.f * ctx.total_steps); + ctx.condition_params.text = std::move(prompt); LOG_INFO("Photomaker ID Stacking, taking %" PRId64 " ms", t1 - t0); LOG_INFO("PHOTOMAKER: start_merge_step: %d", start_merge_step); diff --git a/src/model/diffusion/hidream_o1.hpp b/src/model/diffusion/hidream_o1.hpp index 9e5a901f3..2befb723a 100644 --- a/src/model/diffusion/hidream_o1.hpp +++ b/src/model/diffusion/hidream_o1.hpp @@ -484,13 +484,19 @@ namespace HiDreamO1 { }; struct HiDreamO1Conditioner : public Conditioner { - Qwen2Tokenizer tokenizer; + std::shared_ptr tokenizer; std::shared_ptr vision_runner; HiDreamO1Conditioner(ggml_backend_t backend, const String2TensorStorage& tensor_storage_map = {}, - std::shared_ptr weight_manager = nullptr) - : vision_runner(std::make_shared(backend, tensor_storage_map, "model.visual", weight_manager)) {} + std::shared_ptr weight_manager = nullptr, + const TokenizerConfig& tokenizers = {}) + : vision_runner(std::make_shared(backend, tensor_storage_map, "model.visual", weight_manager)) { + tokenizer = tokenizers.create(TokenizerConfig::MAIN, HiDreamO1Config::detect_from_weights(tensor_storage_map, "").llm.vocab_size, 151643); + if (!tokenizer) { + tokenizer = std::make_shared(); + } + } void get_param_tensors(std::map& tensors) override { vision_runner->get_param_tensors(tensors); @@ -538,7 +544,10 @@ namespace HiDreamO1 { if (ref_images.empty()) { prompt += conditioner_params.text; prompt += "<|im_end|>\n<|im_start|>assistant\n<|boi_token|><|tms_token|>"; - auto input_ids = tokenizer.encode(prompt, nullptr); + std::vector input_ids; + if (!tokenizer->encode(prompt, input_ids, nullptr)) { + return {}; + } std::vector input_ids_pad = input_ids; input_ids_pad.push_back(VISION_START_TOKEN_ID); @@ -612,7 +621,11 @@ namespace HiDreamO1 { auto patch_img = resized_ref * 2.0f - 1.0f; result.c_ref_images.push_back(std::move(patch_img)); - int64_t prompt_start = static_cast(tokenizer.encode(prompt + "<|vision_start|>", nullptr).size()); + std::vector prefix_tokens; + if (!tokenizer->encode(prompt + "<|vision_start|>", prefix_tokens, nullptr)) { + return {}; + } + int64_t prompt_start = static_cast(prefix_tokens.size()); prompt += "<|vision_start|>"; prompt += repeat_special_token("<|image_pad|>", image_tokens); prompt += "<|vision_end|>"; @@ -623,7 +636,10 @@ namespace HiDreamO1 { prompt += conditioner_params.text; prompt += "<|im_end|>\n<|im_start|>assistant\n<|boi_token|><|tms_token|>"; - auto input_ids = tokenizer.encode(prompt, nullptr); + std::vector input_ids; + if (!tokenizer->encode(prompt, input_ids, nullptr)) { + return {}; + } std::vector input_ids_pad = input_ids; input_ids_pad.push_back(VISION_START_TOKEN_ID); diff --git a/src/model/te/llm.hpp b/src/model/te/llm.hpp index 294486046..17f0a4355 100644 --- a/src/model/te/llm.hpp +++ b/src/model/te/llm.hpp @@ -2402,7 +2402,10 @@ namespace LLM { for (const auto& item : parsed_attention) { const std::string& curr_text = item.first; float curr_weight = item.second; - std::vector curr_tokens = tokenizer->tokenize(curr_text, nullptr); + std::vector curr_tokens; + if (!tokenizer->tokenize(curr_text, curr_tokens, nullptr)) { + return {}; + } tokens.insert(tokens.end(), curr_tokens.begin(), curr_tokens.end()); weights.insert(weights.end(), curr_tokens.size(), curr_weight); } diff --git a/src/model/te/t5.hpp b/src/model/te/t5.hpp index adc68aa09..f445fe800 100644 --- a/src/model/te/t5.hpp +++ b/src/model/te/t5.hpp @@ -567,7 +567,10 @@ struct T5Embedder { for (const auto& item : parsed_attention) { const std::string& curr_text = item.first; float curr_weight = item.second; - std::vector curr_tokens = tokenizer.encode(curr_text); + std::vector curr_tokens; + if (!tokenizer.encode(curr_text, curr_tokens)) { + return {}; + } tokens.insert(tokens.end(), curr_tokens.begin(), curr_tokens.end()); weights.insert(weights.end(), curr_tokens.size(), curr_weight); } diff --git a/src/pipeline/diffusion_engine.h b/src/pipeline/diffusion_engine.h index 40a5fc64c..a3c530b21 100644 --- a/src/pipeline/diffusion_engine.h +++ b/src/pipeline/diffusion_engine.h @@ -128,6 +128,7 @@ class StableDiffusionGGML { &sd_ctx_params_t::clip_g_path, &sd_ctx_params_t::clip_vision_path, &sd_ctx_params_t::t5xxl_path, &sd_ctx_params_t::llm_path, &sd_ctx_params_t::llm_vision_path, &sd_ctx_params_t::diffusion_model_path, + &sd_ctx_params_t::tokenizer, &sd_ctx_params_t::high_noise_diffusion_model_path, &sd_ctx_params_t::uncond_diffusion_model_path, &sd_ctx_params_t::embeddings_connectors_path, &sd_ctx_params_t::vae_path, &sd_ctx_params_t::audio_vae_path, &sd_ctx_params_t::taesd_path, diff --git a/src/pipeline/model_builders.cpp b/src/pipeline/model_builders.cpp index 23d6dfa92..40c60bf27 100644 --- a/src/pipeline/model_builders.cpp +++ b/src/pipeline/model_builders.cpp @@ -73,12 +73,13 @@ namespace sd::model_builders { } } - bool build_core_runners(const Context& ctx, CoreRunners& runners) { + bool build_core_runners(const Context& ctx, CoreRunners& runners) try { const auto* sd_ctx_params = &ctx.params; const auto& tensor_storage_map = ctx.tensor_storage_map; const auto version = ctx.version; const auto& weight_manager = ctx.weight_manager; CoreRunners result; + TokenizerConfig tokenizers(sd_ctx_params->tokenizer); if (!ensure_backend_pair(ctx.backends, SDBackendModule::TE) || !ensure_backend_pair(ctx.backends, SDBackendModule::DIFFUSION)) { return false; @@ -87,7 +88,8 @@ namespace sd::model_builders { if (sd_version_is_sd3(version)) { result.conditioner = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::TE), tensor_storage_map, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -98,7 +100,8 @@ namespace sd::model_builders { version, "", false, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model.net", @@ -109,7 +112,8 @@ namespace sd::model_builders { version, "", false, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -120,7 +124,8 @@ namespace sd::model_builders { version, "", true, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -147,11 +152,13 @@ namespace sd::model_builders { version, "", false, - weight_manager); + weight_manager, + tokenizers); } else { result.conditioner = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::TE), tensor_storage_map, - weight_manager); + weight_manager, + tokenizers); } result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, @@ -166,7 +173,8 @@ namespace sd::model_builders { version, "", false, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -178,7 +186,8 @@ namespace sd::model_builders { tensor_storage_map, "text_encoders.llm", "text_embedding_projection", - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -189,7 +198,8 @@ namespace sd::model_builders { version, "", true, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -200,7 +210,8 @@ namespace sd::model_builders { version, "", false, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -258,7 +269,8 @@ namespace sd::model_builders { version, "", enable_vision, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -271,7 +283,8 @@ namespace sd::model_builders { version, "", enable_vision, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -284,7 +297,8 @@ namespace sd::model_builders { version, "", true, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -295,7 +309,8 @@ namespace sd::model_builders { version, "", true, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -305,7 +320,8 @@ namespace sd::model_builders { } else if (version == VERSION_HIDREAM_O1) { result.conditioner = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::TE), tensor_storage_map, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model", @@ -327,7 +343,8 @@ namespace sd::model_builders { } else if (sd_version_is_anima(version)) { result.conditioner = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::TE), tensor_storage_map, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -338,7 +355,8 @@ namespace sd::model_builders { version, "", false, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -350,7 +368,8 @@ namespace sd::model_builders { version, "", true, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -362,7 +381,8 @@ namespace sd::model_builders { version, "", false, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -373,7 +393,8 @@ namespace sd::model_builders { version, "", false, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -387,7 +408,8 @@ namespace sd::model_builders { tensor_storage_map, embbeding_map, version, - weight_manager); + weight_manager, + tokenizers); result.diffusion = std::make_shared(ctx.backends.runtime_backend(SDBackendModule::DIFFUSION), tensor_storage_map, "model.diffusion_model", @@ -429,8 +451,12 @@ namespace sd::model_builders { if (result.ip_adapter) { result.ip_adapter->set_scale_overrides(sd_ctx_params->linear_scale, sd_ctx_params->attn_scale); } + tokenizers.validate_usage(); runners = std::move(result); return true; + } catch (const std::exception& error) { + LOG_ERROR("failed to build model runners: %s", error.what()); + return false; } bool build_vae_runners(const Context& ctx, const VAEOptions& options, VAERunners& runners) { diff --git a/src/pipeline/video.cpp b/src/pipeline/video.cpp index 7b9c8bde1..503afa530 100644 --- a/src/pipeline/video.cpp +++ b/src/pipeline/video.cpp @@ -1139,10 +1139,10 @@ namespace sd::pipeline { return latents; } - static ImageGenerationEmbeds prepare_video_generation_embeds(StableDiffusionGGML* sd, - const sd_vid_gen_params_t* sd_vid_gen_params, - const GenerationRequest& request, - const ImageGenerationLatents& latents) { + static std::optional prepare_video_generation_embeds(StableDiffusionGGML* sd, + const sd_vid_gen_params_t* sd_vid_gen_params, + const GenerationRequest& request, + const ImageGenerationLatents& latents) { ConditionerRunnerEndOnExit conditioner_runner_end{sd->cond_stage_model.get()}; ImageGenerationEmbeds embeds; @@ -1159,8 +1159,12 @@ namespace sd::pipeline { int64_t prepare_start_ms = ggml_time_ms(); embeds.cond = sd->cond_stage_model->get_learned_condition(sd->n_threads, condition_params); - embeds.cond.c_concat = latents.concat_latent; - embeds.cond.c_vector = latents.clip_vision_output; + if (embeds.cond.empty()) { + LOG_ERROR("failed to encode video prompt"); + return std::nullopt; + } + embeds.cond.c_concat = latents.concat_latent; + embeds.cond.c_vector = latents.clip_vision_output; if (sd_version_is_minimax_h3(sd->version)) { embeds.cond.c_ref_images = latents.ref_latents; embeds.cond.c_ref_audios = latents.reference_audio_latents; @@ -1178,9 +1182,13 @@ namespace sd::pipeline { } } if (request.use_uncond) { - condition_params.text = request.negative_prompt; - embeds.uncond = sd->cond_stage_model->get_learned_condition(sd->n_threads, - condition_params); + condition_params.text = request.negative_prompt; + embeds.uncond = sd->cond_stage_model->get_learned_condition(sd->n_threads, + condition_params); + if (embeds.uncond.empty()) { + LOG_ERROR("failed to encode negative video prompt"); + return std::nullopt; + } embeds.uncond.c_concat = latents.concat_latent; embeds.uncond.c_vector = latents.clip_vision_output; if (sd_version_is_minimax_h3(sd->version)) { @@ -1574,10 +1582,14 @@ namespace sd::pipeline { } ImageGenerationLatents latents = std::move(*latent_inputs_opt); - ImageGenerationEmbeds embeds = prepare_video_generation_embeds(sd, - sd_vid_gen_params, - request, - latents); + auto embeds_opt = prepare_video_generation_embeds(sd, + sd_vid_gen_params, + request, + latents); + if (!embeds_opt) { + return false; + } + ImageGenerationEmbeds embeds = std::move(*embeds_opt); if (latent_upscale_enabled) { LOG_INFO("generate_video %dx%dx%d -> LTX latent spatial upscale", request.width, diff --git a/src/stable-diffusion.cpp b/src/stable-diffusion.cpp index 4fb8771a9..5a56f4029 100644 --- a/src/stable-diffusion.cpp +++ b/src/stable-diffusion.cpp @@ -349,6 +349,7 @@ char* sd_ctx_params_to_str(const sd_ctx_params_t* sd_ctx_params) { "t5xxl_path: %s\n" "llm_path: %s\n" "llm_vision_path: %s\n" + "tokenizer: %s\n" "diffusion_model_path: %s\n" "high_noise_diffusion_model_path: %s\n" "uncond_diffusion_model_path: %s\n" @@ -387,6 +388,7 @@ char* sd_ctx_params_to_str(const sd_ctx_params_t* sd_ctx_params) { SAFE_STR(sd_ctx_params->t5xxl_path), SAFE_STR(sd_ctx_params->llm_path), SAFE_STR(sd_ctx_params->llm_vision_path), + SAFE_STR(sd_ctx_params->tokenizer), SAFE_STR(sd_ctx_params->diffusion_model_path), SAFE_STR(sd_ctx_params->high_noise_diffusion_model_path), SAFE_STR(sd_ctx_params->uncond_diffusion_model_path), diff --git a/src/tokenizers/bpe_tokenizer.cpp b/src/tokenizers/bpe_tokenizer.cpp index a4001b5cf..1b359674e 100644 --- a/src/tokenizers/bpe_tokenizer.cpp +++ b/src/tokenizers/bpe_tokenizer.cpp @@ -130,7 +130,11 @@ std::vector BPETokenizer::bpe(const std::u32string& token) const return word; } -std::vector BPETokenizer::encode(const std::string& text, on_new_token_cb_t on_new_token_cb) { +bool BPETokenizer::encode(const std::string& text, std::vector& result, on_new_token_cb_t on_new_token_cb, std::string* error) { + result.clear(); + if (error) { + error->clear(); + } std::vector bpe_tokens; std::vector token_strs; @@ -206,7 +210,8 @@ std::vector BPETokenizer::encode(const std::string& text, on_new_token_cb_t } ss << "]"; LOG_VERBOSE("split prompt \"%s\" to %zu tokens %s", text.c_str(), bpe_tokens.size(), ss.str().c_str()); - return bpe_tokens; + result = std::move(bpe_tokens); + return true; } std::string BPETokenizer::decode_token(int token_id) const { diff --git a/src/tokenizers/bpe_tokenizer.h b/src/tokenizers/bpe_tokenizer.h index 93032b8ec..cccb5c0a1 100644 --- a/src/tokenizers/bpe_tokenizer.h +++ b/src/tokenizers/bpe_tokenizer.h @@ -36,7 +36,7 @@ class BPETokenizer : public Tokenizer { BPETokenizer() = default; virtual ~BPETokenizer() = default; - std::vector encode(const std::string& text, on_new_token_cb_t on_new_token_cb = nullptr) override; + bool encode(const std::string& text, std::vector& tokens, on_new_token_cb_t on_new_token_cb = nullptr, std::string* error = nullptr) override; }; #endif // __SD_TOKENIZERS_BPE_TOKENIZER_H__ diff --git a/src/tokenizers/hf_tokenizer.cpp b/src/tokenizers/hf_tokenizer.cpp new file mode 100644 index 000000000..821d41d79 --- /dev/null +++ b/src/tokenizers/hf_tokenizer.cpp @@ -0,0 +1,856 @@ +#include "hf_tokenizer.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "core/regex.h" +#include "core/util.h" +#include "json.hpp" +#include "utf8proc.h" + +using TokenizerJSON = nlohmann::json; + +static void tokenizer_require(bool condition, const std::string& message) { + if (!condition) { + throw std::runtime_error("tokenizer.json: " + message); + } +} + +static std::string tokenizer_utf8(int32_t codepoint) { + utf8proc_uint8_t bytes[4]; + auto count = utf8proc_encode_char(codepoint, bytes); + return std::string(reinterpret_cast(bytes), count); +} + +static bool tokenizer_error(std::string* error, const std::string& message) { + if (error) { + *error = "tokenizer.json: " + message; + } else { + LOG_ERROR("tokenizer.json: %s", message.c_str()); + } + return false; +} + +static bool tokenizer_next(const std::string& text, size_t& offset, int32_t& codepoint, std::string* error) { + auto size = utf8proc_iterate(reinterpret_cast(text.data() + offset), text.size() - offset, &codepoint); + if (size <= 0) { + return tokenizer_error(error, "invalid UTF-8 input"); + } + offset += size; + return true; +} + +static int tokenizer_id(const TokenizerJSON& value) { + tokenizer_require(value.is_number_integer(), "token ID must be an integer"); + auto id = value.get(); + tokenizer_require(id >= 0 && id <= INT_MAX, "token ID outside int32 range"); + return static_cast(id); +} + +static uint64_t tokenizer_pair(int left, int right) { + return (static_cast(left) << 32) | static_cast(right); +} + +struct HFTokenizer::Impl { + struct Pattern { + std::string literal; + std::shared_ptr regex; + + explicit Pattern(const TokenizerJSON& config) { + tokenizer_require(config.is_object() && config.size() == 1, "invalid String/Regex pattern"); + if (config.contains("String")) { + literal = config.at("String").get(); + } else { + tokenizer_require(config.contains("Regex"), "unsupported pattern"); + regex = std::make_shared(); + std::string error; + bool ok = regex->compile(config.at("Regex").get(), &error); + tokenizer_require(ok, "invalid regex: " + error); + } + } + + bool matches(const std::string& text, std::vector& result, std::string* error) const { + result.clear(); + if (regex) { + std::string regex_error; + if (!regex->find_matches(text, result, ®ex_error)) { + return tokenizer_error(error, "regex search failed: " + regex_error); + } + } else if (literal.empty()) { + size_t offset = 0; + for (;;) { + result.emplace_back(offset, offset); + if (offset == text.size()) { + break; + } + int32_t cp; + if (!tokenizer_next(text, offset, cp, error)) { + result.clear(); + return false; + } + } + } else { + size_t offset = 0; + while ((offset = text.find(literal, offset)) != std::string::npos) { + result.emplace_back(offset, offset + literal.size()); + offset += literal.size(); + } + } + return true; + } + + bool replace(const std::string& text, const std::string& replacement, std::string& result, std::string* error) const { + result.clear(); + size_t offset = 0; + std::vector found; + if (!matches(text, found, error)) { + return false; + } + for (const auto& match : found) { + result.append(text, offset, match.first - offset); + result += replacement; + offset = match.second; + } + result.append(text, offset, std::string::npos); + return true; + } + + bool split(const std::string& text, const std::string& behavior, bool invert, std::vector& result, std::string* error) const { + result.clear(); + struct Part { + size_t start, end; + bool matched; + }; + std::vector parts; + size_t offset = 0; + std::vector found; + if (!matches(text, found, error)) { + return false; + } + for (const auto& match : found) { + if (match.first > offset) { + parts.push_back({offset, match.first, invert}); + } + parts.push_back({match.first, match.second, !invert}); + offset = match.second; + } + if (offset < text.size()) { + parts.push_back({offset, text.size(), invert}); + } + if (behavior == "MergedWithNext") { + std::reverse(parts.begin(), parts.end()); + } + std::vector merged; + bool previous = false; + for (const auto& part : parts) { + bool join = (behavior == "Contiguous" && part.matched == previous) || + ((behavior == "MergedWithPrevious" || behavior == "MergedWithNext") && part.matched && !previous); + if (join && !merged.empty()) { + merged.back().start = std::min(merged.back().start, part.start); + merged.back().end = std::max(merged.back().end, part.end); + } else if (behavior != "Removed" || !part.matched) { + merged.push_back(part); + } + previous = part.matched; + } + if (behavior == "MergedWithNext") { + std::reverse(merged.begin(), merged.end()); + } + for (const auto& part : merged) { + if (part.start != part.end) { + result.push_back(text.substr(part.start, part.end - part.start)); + } + } + return true; + } + }; + + struct Step { + std::string type, content, behavior; + std::shared_ptr pattern; + bool invert = false, prefix_space = false; + }; + + struct Trie { + struct Node { + std::unordered_map children; + int id = -1; + }; + std::vector nodes{1}; + + void add(const std::string& text, int id) { + size_t index = 0; + for (unsigned char c : text) { + auto found = nodes[index].children.find(c); + if (found == nodes[index].children.end()) { + size_t next = nodes.size(); + nodes[index].children.emplace(c, next); + nodes.emplace_back(); + index = next; + } else { + index = found->second; + } + } + nodes[index].id = id; + } + + std::pair match(const std::string& text, size_t start) const { + size_t index = 0; + std::pair result{start, -1}; + for (size_t end = start; end < text.size(); ++end) { + auto found = nodes[index].children.find(static_cast(text[end])); + if (found == nodes[index].children.end()) { + break; + } + index = found->second; + if (nodes[index].id >= 0) { + result = {end + 1, nodes[index].id}; + } + } + return result; + } + }; + + struct Merge { + size_t rank; + int id; + }; + std::unordered_map vocab; + std::unordered_map added_vocab; + std::unordered_map tokens; + std::unordered_map merges; + std::unordered_set special_ids; + std::vector custom_tokens; + std::vector normalizers, pre_tokenizers, decoders; + Trie raw_added, normalized_added; + std::array byte_encoder; + std::unordered_map byte_decoder; + std::string suffix; + int unk = -1; + bool fuse_unk = false, byte_fallback = false, ignore_merges = false, has_decoder = false; + + Impl() { + int extra = 256; + for (int byte = 0; byte < 256; ++byte) { + int cp = ((byte >= 33 && byte <= 126) || (byte >= 161 && byte <= 172) || byte >= 174) ? byte : extra++; + byte_encoder[byte] = tokenizer_utf8(cp); + byte_decoder[cp] = static_cast(byte); + } + } + + static void parse_steps(const TokenizerJSON& config, const std::string& stage, std::vector& out, int depth = 0) { + tokenizer_require(depth < 32, stage + " nesting is too deep"); + if (config.is_null()) { + return; + } + Step step; + step.type = config.at("type").get(); + if (step.type == "Sequence") { + const char* key = stage == "normalizer" ? "normalizers" : stage == "pre_tokenizer" ? "pretokenizers" + : "decoders"; + for (const auto& child : config.at(key)) { + parse_steps(child, stage, out, depth + 1); + } + return; + } + if ((stage == "normalizer" || stage == "decoder") && step.type == "Replace") { + step.pattern = std::make_shared(config.at("pattern")); + step.content = config.at("content").get(); + } else if (stage == "normalizer" && (step.type == "NFC" || step.type == "Lowercase")) { + } else if (stage == "pre_tokenizer" && step.type == "Split") { + step.pattern = std::make_shared(config.at("pattern")); + step.behavior = config.at("behavior").get(); + tokenizer_require(step.behavior == "Removed" || step.behavior == "Isolated" || step.behavior == "Contiguous" || step.behavior == "MergedWithPrevious" || step.behavior == "MergedWithNext", "unsupported Split behavior: " + step.behavior); + step.invert = config.value("invert", false); + } else if ((stage == "pre_tokenizer" || stage == "decoder") && step.type == "ByteLevel") { + step.prefix_space = config.value("add_prefix_space", true); + if (stage == "pre_tokenizer" && config.value("use_regex", true)) { + step.pattern = std::make_shared(TokenizerJSON{{"Regex", R"('s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+)"}}); + } + } else if (stage == "decoder" && (step.type == "ByteFallback" || step.type == "Fuse")) { + } else { + tokenizer_require(false, "unsupported " + stage + ": " + step.type); + } + out.push_back(std::move(step)); + } + + bool normalize(std::string text, std::string& result, std::string* error) const { + result.clear(); + for (const auto& step : normalizers) { + if (step.type == "Replace") { + std::string replaced; + if (!step.pattern->replace(text, step.content, replaced, error)) { + return false; + } + text = std::move(replaced); + } else if (step.type == "NFC") { + utf8proc_uint8_t* output = nullptr; + auto size = utf8proc_map(reinterpret_cast(text.data()), text.size(), &output, static_cast(UTF8PROC_STABLE | UTF8PROC_COMPOSE)); + std::unique_ptr buffer(output, &std::free); + if (size < 0) { + return tokenizer_error(error, std::string("NFC normalization failed: ") + utf8proc_errmsg(size)); + } + text.assign(reinterpret_cast(output), size); + } else { + std::string lower; + for (size_t i = 0; i < text.size();) { + int32_t cp; + if (!tokenizer_next(text, i, cp, error)) { + return false; + } + // Rust char::to_lowercase uses full, context-free lowercase. U+0130 expands. + lower += cp == 0x130 ? "i\xcc\x87" : tokenizer_utf8(utf8proc_tolower(cp)); + } + text = std::move(lower); + } + } + result = std::move(text); + return true; + } + + bool pre_tokenize(const std::string& text, std::vector& result, std::string* error) const { + result.clear(); + std::vector pieces{text}; + for (const auto& step : pre_tokenizers) { + std::vector next; + for (auto piece : pieces) { + if (piece.empty()) { + continue; + } + std::vector split; + if (step.type == "Split") { + if (!step.pattern->split(piece, step.behavior, step.invert, split, error)) { + return false; + } + next.insert(next.end(), split.begin(), split.end()); + } else { + if (step.prefix_space && piece.front() != ' ') { + piece.insert(piece.begin(), ' '); + } + if (step.pattern) { + if (!step.pattern->split(piece, "Isolated", false, split, error)) { + return false; + } + } else { + split.push_back(piece); + } + for (const auto& part : split) { + std::string encoded; + for (unsigned char byte : part) { + encoded += byte_encoder[byte]; + } + next.push_back(std::move(encoded)); + } + } + } + pieces = std::move(next); + } + result = std::move(pieces); + return true; + } + + bool bpe(const std::string& text, std::vector& ids, std::string* error) const { + ids.clear(); + if (ignore_merges) { + auto found = vocab.find(text); + if (found != vocab.end()) { + ids.push_back(found->second); + return true; + } + } + bool pending_unk = false; + for (size_t i = 0; i < text.size();) { + int32_t cp; + size_t end = i; + if (!tokenizer_next(text, end, cp, error)) { + ids.clear(); + return false; + } + std::string symbol = text.substr(i, end - i); + if (end == text.size()) { + symbol += suffix; + } + i = end; + auto found = vocab.find(symbol); + if (found != vocab.end()) { + if (pending_unk) { + ids.push_back(unk); + pending_unk = false; + } + ids.push_back(found->second); + continue; + } + if (byte_fallback) { + std::vector bytes; + for (unsigned char byte : symbol) { + const char* hex = "0123456789ABCDEF"; + std::string token = "<0x00>"; + token[3] = hex[byte >> 4]; + token[4] = hex[byte & 15]; + auto fallback = vocab.find(token); + if (fallback == vocab.end()) { + break; + } + bytes.push_back(fallback->second); + } + if (bytes.size() == symbol.size()) { + ids.insert(ids.end(), bytes.begin(), bytes.end()); + continue; + } + } + if (unk >= 0) { + if (pending_unk && !fuse_unk) { + ids.push_back(unk); + } + pending_unk = true; + } + } + if (pending_unk) { + ids.push_back(unk); + } + struct Symbol { + int id; + size_t prev, next, generation = 0; + bool alive = true; + }; + struct Candidate { + size_t rank, left, right, left_generation, right_generation; + int id; + bool operator<(const Candidate& other) const { + return rank != other.rank ? rank > other.rank : left > other.left; + } + }; + const size_t none = ids.size(); + std::vector symbols; + for (size_t i = 0; i < ids.size(); ++i) { + symbols.push_back({ids[i], i == 0 ? none : i - 1, i + 1}); + } + std::priority_queue queue; + auto push = [&](size_t left) { + if (left == none || symbols[left].next == none) { + return; + } + size_t right = symbols[left].next; + auto found = merges.find(tokenizer_pair(symbols[left].id, symbols[right].id)); + if (found != merges.end()) { + queue.push({found->second.rank, left, right, symbols[left].generation, symbols[right].generation, found->second.id}); + } + }; + for (size_t i = 0; i < symbols.size(); ++i) { + push(i); + } + while (!queue.empty()) { + Candidate item = queue.top(); + queue.pop(); + auto& left = symbols[item.left]; + auto& right = symbols[item.right]; + if (!left.alive || !right.alive || left.next != item.right || left.generation != item.left_generation || right.generation != item.right_generation) { + continue; + } + left.id = item.id; + left.next = right.next; + ++left.generation; + right.alive = false; + if (left.next != none) { + symbols[left.next].prev = item.left; + } + push(left.prev); + push(item.left); + } + ids.clear(); + for (const auto& symbol : symbols) { + if (symbol.alive) { + ids.push_back(symbol.id); + } + } + return true; + } + + int lookup(const std::string& token) const { + auto added = added_vocab.find(token); + if (added != added_vocab.end()) { + return added->second; + } + auto found = vocab.find(token); + return found == vocab.end() ? -1 : found->second; + } + + void add_token(const std::string& token, int id, bool added = false) { + auto old = tokens.find(id); + tokenizer_require(old == tokens.end() || old->second == token, "conflicting token ID " + std::to_string(id)); + int old_id = lookup(token); + tokenizer_require(old_id < 0 || old_id == id, "conflicting ID for token " + token); + tokens[id] = token; + (added ? added_vocab : vocab)[token] = id; + } +}; + +HFTokenizer::HFTokenizer(const std::string& path) + : impl_(new Impl) { + std::ifstream stream(path, std::ios::binary); + tokenizer_require(stream.good(), "cannot open " + path); + TokenizerJSON config; + stream >> config; + tokenizer_require(config.value("version", std::string("1.0")) == "1.0", "unsupported version"); + tokenizer_require(config.value("padding", TokenizerJSON()).is_null(), "JSON padding is unsupported; padding is controlled by the text encoder"); + tokenizer_require(config.value("truncation", TokenizerJSON()).is_null(), "JSON truncation is unsupported; truncation is controlled by the text encoder"); + const auto& model = config.at("model"); + tokenizer_require(model.at("type") == "BPE", "only BPE models are supported"); + tokenizer_require(model.value("dropout", TokenizerJSON()).is_null() || model.at("dropout") == 0, "BPE dropout is unsupported"); + const auto& prefix = model.value("continuing_subword_prefix", TokenizerJSON()); + tokenizer_require(prefix.is_null() || prefix == "", "nonempty continuing_subword_prefix is unsupported"); + const auto& suffix = model.value("end_of_word_suffix", TokenizerJSON()); + impl_->suffix = suffix.is_null() ? "" : suffix.get(); + impl_->fuse_unk = model.value("fuse_unk", false); + impl_->byte_fallback = model.value("byte_fallback", false); + impl_->ignore_merges = model.value("ignore_merges", false); + tokenizer_require(model.at("vocab").is_object(), "BPE vocab must be an object"); + impl_->vocab.reserve(model.at("vocab").size()); + impl_->tokens.reserve(model.at("vocab").size()); + for (const auto& entry : model.at("vocab").items()) { + impl_->add_token(entry.key(), tokenizer_id(entry.value())); + } + if (!model.value("unk_token", TokenizerJSON()).is_null()) { + UNK_TOKEN = model.at("unk_token").get(); + impl_->unk = impl_->lookup(UNK_TOKEN); + tokenizer_require(impl_->unk >= 0, "unk_token is absent from vocab"); + } + UNK_TOKEN_ID = impl_->unk; + tokenizer_require(model.at("merges").is_array(), "BPE merges must be an array"); + impl_->merges.reserve(model.at("merges").size()); + size_t rank = 0; + for (const auto& merge : model.at("merges")) { + std::string left, right; + if (merge.is_string()) { + auto value = merge.get(); + auto space = value.find(' '); + tokenizer_require(space != std::string::npos && value.find(' ', space + 1) == std::string::npos, "invalid legacy BPE merge"); + left = value.substr(0, space); + right = value.substr(space + 1); + } else { + tokenizer_require(merge.is_array() && merge.size() == 2, "BPE merge must contain two tokens"); + left = merge.at(0).get(); + right = merge.at(1).get(); + } + int a = impl_->lookup(left), b = impl_->lookup(right), id = impl_->lookup(left + right); + tokenizer_require(a >= 0 && b >= 0 && id >= 0, "BPE merge references a missing vocab token"); + impl_->merges[tokenizer_pair(a, b)] = {rank++, id}; + } + Impl::parse_steps(config.value("normalizer", TokenizerJSON()), "normalizer", impl_->normalizers); + Impl::parse_steps(config.value("pre_tokenizer", TokenizerJSON()), "pre_tokenizer", impl_->pre_tokenizers); + impl_->has_decoder = !config.value("decoder", TokenizerJSON()).is_null(); + Impl::parse_steps(config.value("decoder", TokenizerJSON()), "decoder", impl_->decoders); + size_t next_added_id = impl_->vocab.size(); + for (const auto& token : config.value("added_tokens", TokenizerJSON::array())) { + for (const char* flag : {"single_word", "lstrip", "rstrip"}) { + tokenizer_require(!token.value(flag, false), std::string("added_tokens.") + flag + "=true is unsupported"); + } + auto content = token.at("content").get(); + tokenizer_require(!content.empty(), "empty added token is unsupported"); + int id = tokenizer_id(token.at("id")); + if (impl_->lookup(content) < 0) { + tokenizer_require(static_cast(id) == next_added_id++, "nonconsecutive added token IDs would be reassigned by Hugging Face tokenizers"); + } + impl_->add_token(content, id, true); + if (token.value("special", false)) { + special_tokens.push_back(content); + impl_->special_ids.insert(id); + } + bool normalized = token.value("normalized", true); + std::string pattern = content; + if (normalized) { + std::string error; + bool ok = impl_->normalize(content, pattern, &error); + tokenizer_require(ok, error); + } + tokenizer_require(!pattern.empty(), "added token normalizes to an empty string"); + (normalized ? impl_->normalized_added : impl_->raw_added).add(pattern, id); + } + const auto& processor = config.value("post_processor", TokenizerJSON()); + BOS_TOKEN_ID = EOS_TOKEN_ID = -1; + if (!processor.is_null()) { + auto type = processor.at("type").get(); + auto special = [&](const TokenizerJSON& pair) { + tokenizer_require(pair.is_array() && pair.size() == 2, "invalid postprocessor special token"); + int id = tokenizer_id(pair.at(1)); + tokenizer_require(impl_->lookup(pair.at(0).get()) == id, "postprocessor token/ID does not match vocab"); + return id; + }; + if (type == "RobertaProcessing") { + BOS_TOKEN_ID = special(processor.at("cls")); + EOS_TOKEN_ID = special(processor.at("sep")); + } else if (type == "TemplateProcessing") { + bool seen_sequence = false; + for (const auto& item : processor.at("single")) { + if (item.contains("Sequence")) { + tokenizer_require(!seen_sequence && item.at("Sequence").at("id") == "A", "single template must contain exactly one sequence A"); + seen_sequence = true; + } else { + auto name = item.at("SpecialToken").at("id").get(); + const auto& token = processor.at("special_tokens").at(name); + tokenizer_require(token.at("ids").size() == 1 && token.at("tokens").size() == 1, "multi-ID template special tokens are unsupported"); + int id = special(TokenizerJSON::array({token.at("tokens").at(0), token.at("ids").at(0)})); + int& target = seen_sequence ? EOS_TOKEN_ID : BOS_TOKEN_ID; + tokenizer_require(target < 0, "single template supports at most one prefix and one suffix token"); + target = id; + } + } + tokenizer_require(seen_sequence, "single template has no sequence A"); + } else { + tokenizer_require(type == "ByteLevel", "unsupported post_processor: " + type); + } + } + add_bos_token = BOS_TOKEN_ID >= 0; + add_eos_token = EOS_TOKEN_ID >= 0; + BOS_TOKEN = decode_token(BOS_TOKEN_ID); + EOS_TOKEN = decode_token(EOS_TOKEN_ID); + set_padding(0, false); +} + +HFTokenizer::~HFTokenizer() = default; + +void HFTokenizer::set_padding(int token_id, bool left) { + PAD_TOKEN_ID = token_id; + PAD_TOKEN = decode_token(token_id); + pad_left = left; +} + +void HFTokenizer::validate_vocab_size(int64_t embedding_rows) const { + tokenizer_require(embedding_rows > 0, "text encoder has no token embedding rows"); + for (const auto& token : impl_->tokens) { + tokenizer_require(token.first < embedding_rows, "token ID " + std::to_string(token.first) + " exceeds text encoder vocabulary (" + std::to_string(embedding_rows) + ")"); + } + tokenizer_require(PAD_TOKEN_ID >= 0 && PAD_TOKEN_ID < embedding_rows, "padding ID exceeds text encoder vocabulary"); +} + +int HFTokenizer::token_to_id(const std::string& token) const { + return impl_->lookup(token); +} + +void HFTokenizer::add_special_token(const std::string& token) { + Tokenizer::add_special_token(token); + if (!token.empty()) { + impl_->custom_tokens.push_back(token); + } +} + +bool HFTokenizer::encode(const std::string& text, std::vector& tokens, on_new_token_cb_t callback, std::string* error) { + tokens.clear(); + if (error) { + error->clear(); + } + for (size_t i = 0; i < text.size();) { + int32_t cp; + if (!tokenizer_next(text, i, cp, error)) { + return false; + } + } + std::vector result; + Impl::Trie raw_custom, normalized_custom; + if (callback) { + for (size_t index = 0; index < impl_->custom_tokens.size(); ++index) { + const auto& token = impl_->custom_tokens[index]; + raw_custom.add(token, static_cast(index)); + std::string normalized; + if (!impl_->normalize(token, normalized, error)) { + return false; + } + if (!normalized.empty()) { + normalized_custom.add(normalized, static_cast(index)); + } + } + } + auto encode_plain = [&](const std::string& value) { + std::vector pieces; + if (!impl_->pre_tokenize(value, pieces, error)) { + return false; + } + for (auto& piece : pieces) { + if (callback && callback(piece, result)) { + continue; + } + std::vector ids; + if (!impl_->bpe(piece, ids, error)) { + return false; + } + result.insert(result.end(), ids.begin(), ids.end()); + } + return true; + }; + auto extract = [&](const std::string& value, const Impl::Trie& added, const Impl::Trie& custom_tokens, const auto& encode_gap) { + size_t start = 0, i = 0; + while (i < value.size()) { + auto match = added.match(value, i); + auto custom = custom_tokens.match(value, i); + bool use_custom = custom.second >= 0 && custom.first >= match.first; + if (match.second < 0 && !use_custom) { + ++i; + continue; + } + if (!encode_gap(value.substr(start, i - start))) { + return false; + } + if (use_custom) { + auto token = impl_->custom_tokens[custom.second]; + if (!callback(token, result)) { + if (match.second >= 0 && match.first == custom.first) { + result.push_back(match.second); + } else if (!encode_gap(value.substr(i, custom.first - i))) { + return false; + } + } + } else { + result.push_back(match.second); + } + start = i = use_custom ? custom.first : match.first; + } + return encode_gap(value.substr(start)); + }; + auto encode_normalized = [&](const std::string& value) { + std::string normalized; + if (!impl_->normalize(value, normalized, error)) { + return false; + } + return extract(normalized, impl_->normalized_added, normalized_custom, encode_plain); + }; + if (!extract(text, impl_->raw_added, raw_custom, encode_normalized)) { + return false; + } + std::stringstream ss; + ss << "["; + for (int id : result) { + auto token = impl_->tokens.find(id); + if (token != impl_->tokens.end()) { + ss << "\"" << token->second << "\", "; + } else { + ss << "\"\", "; + } + } + ss << "]"; + LOG_VERBOSE("split prompt \"%s\" to %zu tokens %s", text.c_str(), result.size(), ss.str().c_str()); + tokens = std::move(result); + return true; +} + +std::string HFTokenizer::decode_token(int id) const { + auto found = impl_->tokens.find(id); + return found == impl_->tokens.end() ? "" : found->second; +} + +static std::string tokenizer_lossy_utf8(const std::string& bytes, bool fallback) { + std::string result; + for (size_t i = 0; i < bytes.size();) { + int32_t cp; + auto count = utf8proc_iterate(reinterpret_cast(bytes.data() + i), bytes.size() - i, &cp); + if (count > 0) { + result.append(bytes, i, count); + i += count; + } else if (fallback) { + result.clear(); + for (size_t j = 0; j < bytes.size(); ++j) { + result += "\xef\xbf\xbd"; + } + return result; + } else { + result += "\xef\xbf\xbd"; + unsigned char lead = bytes[i++]; + size_t expected = lead >= 0xc2 && lead <= 0xdf ? 2 : lead >= 0xe0 && lead <= 0xef ? 3 + : lead >= 0xf0 && lead <= 0xf4 ? 4 + : 1; + for (size_t j = 1; j < expected && i < bytes.size(); ++j) { + unsigned char c = bytes[i]; + if (c < 0x80 || c > 0xbf || (j == 1 && ((lead == 0xe0 && c < 0xa0) || (lead == 0xed && c > 0x9f) || (lead == 0xf0 && c < 0x90) || (lead == 0xf4 && c > 0x8f)))) { + break; + } + ++i; + } + } + } + return result; +} + +bool HFTokenizer::decode(const std::vector& ids, std::string& text, std::string* error) const { + text.clear(); + if (error) { + error->clear(); + } + std::vector pieces; + for (int id : ids) { + if (!impl_->special_ids.count(id) && impl_->tokens.count(id)) { + pieces.push_back(decode_token(id)); + } + } + for (const auto& step : impl_->decoders) { + if (step.type == "Replace") { + for (auto& piece : pieces) { + std::string replaced; + if (!step.pattern->replace(piece, step.content, replaced, error)) { + return false; + } + piece = std::move(replaced); + } + } else if (step.type == "ByteLevel" || step.type == "Fuse") { + std::string joined; + for (const auto& piece : pieces) { + std::string bytes; + if (step.type == "ByteLevel") { + for (size_t i = 0; i < piece.size();) { + int32_t cp; + if (!tokenizer_next(piece, i, cp, error)) { + return false; + } + auto found = impl_->byte_decoder.find(cp); + if (found == impl_->byte_decoder.end()) { + bytes = piece; + break; + } + bytes += static_cast(found->second); + } + } else { + bytes = piece; + } + joined += bytes; + } + pieces = {step.type == "ByteLevel" ? tokenizer_lossy_utf8(joined, false) : joined}; + } else { + std::vector decoded; + std::string bytes; + auto flush = [&] { + if (!bytes.empty()) { + decoded.push_back(tokenizer_lossy_utf8(bytes, true)); + bytes.clear(); + } + }; + for (const auto& piece : pieces) { + auto hex = [](char c) { return c >= '0' && c <= '9' ? c - '0' : c >= 'A' && c <= 'F' ? c - 'A' + 10 + : c >= 'a' && c <= 'f' ? c - 'a' + 10 + : -1; }; + if (piece.size() == 6 && piece.compare(0, 3, "<0x") == 0 && piece[5] == '>' && hex(piece[3]) >= 0 && hex(piece[4]) >= 0) { + bytes += static_cast((hex(piece[3]) << 4) | hex(piece[4])); + } else { + flush(); + decoded.push_back(piece); + } + } + flush(); + pieces = std::move(decoded); + } + } + std::string result; + for (size_t i = 0; i < pieces.size(); ++i) { + if (i && !impl_->has_decoder) { + result += ' '; + } + result += pieces[i]; + } + text = std::move(result); + return true; +} diff --git a/src/tokenizers/hf_tokenizer.h b/src/tokenizers/hf_tokenizer.h new file mode 100644 index 000000000..640257086 --- /dev/null +++ b/src/tokenizers/hf_tokenizer.h @@ -0,0 +1,26 @@ +#ifndef __SD_TOKENIZERS_HF_TOKENIZER_H__ +#define __SD_TOKENIZERS_HF_TOKENIZER_H__ + +#include + +#include "tokenizer.h" + +class HFTokenizer : public Tokenizer { + struct Impl; + std::unique_ptr impl_; + std::string decode_token(int token_id) const override; + +public: + explicit HFTokenizer(const std::string& path); + ~HFTokenizer() override; + + // Padding belongs to the encoder; tokenizer.json supplies the single-sequence template. + void set_padding(int token_id, bool left); + void validate_vocab_size(int64_t embedding_rows) const; + int token_to_id(const std::string& token) const; + void add_special_token(const std::string& token) override; + bool encode(const std::string& text, std::vector& tokens, on_new_token_cb_t on_new_token_cb = nullptr, std::string* error = nullptr) override; + bool decode(const std::vector& tokens, std::string& text, std::string* error = nullptr) const override; +}; + +#endif // __SD_TOKENIZERS_HF_TOKENIZER_H__ diff --git a/src/tokenizers/t5_unigram_tokenizer.cpp b/src/tokenizers/t5_unigram_tokenizer.cpp index 7ea6fd1e3..36526086e 100644 --- a/src/tokenizers/t5_unigram_tokenizer.cpp +++ b/src/tokenizers/t5_unigram_tokenizer.cpp @@ -287,7 +287,11 @@ std::string T5UniGramTokenizer::normalize(const std::string& input) const { return normalized; } -std::vector T5UniGramTokenizer::encode(const std::string& input, on_new_token_cb_t on_new_token_cb) { +bool T5UniGramTokenizer::encode(const std::string& input, std::vector& result, on_new_token_cb_t on_new_token_cb, std::string* error) { + result.clear(); + if (error) { + error->clear(); + } std::vector tokens; std::vector token_strs; std::string normalized = normalize(input); @@ -335,5 +339,6 @@ std::vector T5UniGramTokenizer::encode(const std::string& input, on_new_tok ss << "]"; LOG_VERBOSE("split prompt \"%s\" to tokens %s", input.c_str(), ss.str().c_str()); - return tokens; + result = std::move(tokens); + return true; } diff --git a/src/tokenizers/t5_unigram_tokenizer.h b/src/tokenizers/t5_unigram_tokenizer.h index 9c9f13f8b..881e14063 100644 --- a/src/tokenizers/t5_unigram_tokenizer.h +++ b/src/tokenizers/t5_unigram_tokenizer.h @@ -64,7 +64,7 @@ class T5UniGramTokenizer : public Tokenizer { explicit T5UniGramTokenizer(bool is_umt5 = false); ~T5UniGramTokenizer(); - std::vector encode(const std::string& input, on_new_token_cb_t on_new_token_cb = nullptr) override; + bool encode(const std::string& input, std::vector& tokens, on_new_token_cb_t on_new_token_cb = nullptr, std::string* error = nullptr) override; }; #endif // __SD_TOKENIZERS_T5_UNIGRAM_TOKENIZER_H__ diff --git a/src/tokenizers/tokenizer.cpp b/src/tokenizers/tokenizer.cpp index cb40e9b4e..115de895d 100644 --- a/src/tokenizers/tokenizer.cpp +++ b/src/tokenizers/tokenizer.cpp @@ -23,17 +23,22 @@ std::string Tokenizer::normalize(const std::string& text) const { return text; } -std::vector Tokenizer::tokenize(const std::string& text, - on_new_token_cb_t on_new_token_cb, - bool padding, - size_t min_length, - size_t max_length, - bool allow_overflow_expand) { - std::vector tokens = encode(text, on_new_token_cb); +bool Tokenizer::tokenize(const std::string& text, + std::vector& tokens, + on_new_token_cb_t on_new_token_cb, + bool padding, + size_t min_length, + size_t max_length, + bool allow_overflow_expand, + std::string* error) { + if (!encode(text, tokens, on_new_token_cb, error)) { + tokens.clear(); + return false; + } if (padding) { pad_tokens(tokens, nullptr, nullptr, min_length, max_length, allow_overflow_expand); } - return tokens; + return true; } void Tokenizer::pad_tokens(std::vector& tokens, @@ -200,8 +205,11 @@ static std::string clean_up_tokenization(std::string& text) { return std::regex_replace(text, pattern, ","); } -std::string Tokenizer::decode(const std::vector& tokens) const { - std::string text; +bool Tokenizer::decode(const std::vector& tokens, std::string& text, std::string* error) const { + text.clear(); + if (error) { + error->clear(); + } for (int token_id : tokens) { if (token_id == BOS_TOKEN_ID || token_id == EOS_TOKEN_ID || token_id == PAD_TOKEN_ID) { @@ -218,5 +226,6 @@ std::string Tokenizer::decode(const std::vector& tokens) const { } text = clean_up_tokenization(text); - return trim(text); + text = trim(text); + return true; } diff --git a/src/tokenizers/tokenizer.h b/src/tokenizers/tokenizer.h index 893759e0f..63f91e960 100644 --- a/src/tokenizers/tokenizer.h +++ b/src/tokenizers/tokenizer.h @@ -33,22 +33,25 @@ class Tokenizer { virtual ~Tokenizer() = default; - void add_special_token(const std::string& token); + virtual void add_special_token(const std::string& token); bool is_special_token(const std::string& token) const; - virtual std::vector encode(const std::string& text, on_new_token_cb_t on_new_token_cb = nullptr) = 0; - std::vector tokenize(const std::string& text, - on_new_token_cb_t on_new_token_cb = nullptr, - bool padding = false, - size_t min_length = 0, - size_t max_length = 100000000, - bool allow_overflow_expand = false); + // An empty output may be valid; failures return false and clear the output. + virtual bool encode(const std::string& text, std::vector& tokens, on_new_token_cb_t on_new_token_cb = nullptr, std::string* error = nullptr) = 0; + bool tokenize(const std::string& text, + std::vector& tokens, + on_new_token_cb_t on_new_token_cb = nullptr, + bool padding = false, + size_t min_length = 0, + size_t max_length = 100000000, + bool allow_overflow_expand = false, + std::string* error = nullptr); void pad_tokens(std::vector& tokens, std::vector* weights, std::vector* mask, size_t min_length = 0, size_t max_length = 100000000, bool allow_overflow_expand = false); - std::string decode(const std::vector& tokens) const; + virtual bool decode(const std::vector& tokens, std::string& text, std::string* error = nullptr) const; }; #endif // __SD_TOKENIZERS_TOKENIZER_H__ diff --git a/src/tokenizers/tokenizer_config.cpp b/src/tokenizers/tokenizer_config.cpp new file mode 100644 index 000000000..98650de8d --- /dev/null +++ b/src/tokenizers/tokenizer_config.cpp @@ -0,0 +1,77 @@ +#include "tokenizer_config.h" + +#include + +#include "core/util.h" +#include "hf_tokenizer.h" + +TokenizerConfig::TokenizerConfig(const char* config) { + if (!config || !*config) { + return; + } + const std::string value = config; + const bool assignments = value.find('=') != std::string::npos; + size_t begin = 0; + for (;;) { + const auto end = assignments ? value.find(',', begin) : std::string::npos; + const auto entry = value.substr(begin, end == std::string::npos ? end : end - begin); + const auto equal = entry.find('='); + if (assignments && equal == std::string::npos) { + throw std::runtime_error("invalid tokenizer entry '" + entry + "'; expected main=FILE,clip-l=FILE,clip-g=FILE"); + } + const auto key = assignments ? entry.substr(0, equal) : "main"; + const auto path = assignments ? entry.substr(equal + 1) : entry; + Slot slot = MAIN; + if (key == "clip-l") { + slot = CLIP_L; + } else if (key == "clip-g") { + slot = CLIP_G; + } else if (key != "main") { + throw std::runtime_error("unknown tokenizer slot '" + key + "'; expected main, clip-l or clip-g"); + } + if (path.empty()) { + throw std::runtime_error("tokenizer slot '" + key + "' requires a nonempty path"); + } + if (!paths_[slot].empty()) { + throw std::runtime_error("tokenizer slot '" + key + "' is specified more than once"); + } + paths_[slot] = path; + if (end == std::string::npos) { + break; + } + begin = end + 1; + } +} + +bool TokenizerConfig::has(Slot slot) const { + return !paths_[slot].empty(); +} + +std::shared_ptr TokenizerConfig::create(Slot slot, int64_t embedding_rows, int padding_id, bool pad_left, bool clip) const { + if (!has(slot)) { + return nullptr; + } + try { + auto tokenizer = std::make_shared(paths_[slot]); + tokenizer->set_padding(padding_id, pad_left); + tokenizer->validate_vocab_size(embedding_rows); + if (clip && (tokenizer->BOS_TOKEN_ID < 0 || tokenizer->EOS_TOKEN_ID < 0)) { + throw std::runtime_error("CLIP requires a single BOS + A + EOS template"); + } + used_[slot] = true; + const char* names[] = {"main", "clip-l", "clip-g"}; + LOG_INFO("using external tokenizer (%s): %s", names[slot], paths_[slot].c_str()); + return tokenizer; + } catch (const std::exception& error) { + throw std::runtime_error("failed to load tokenizer '" + paths_[slot] + "': " + error.what()); + } +} + +void TokenizerConfig::validate_usage() const { + const char* names[] = {"main", "clip-l", "clip-g"}; + for (size_t i = 0; i < paths_.size(); ++i) { + if (!paths_[i].empty() && !used_[i]) { + throw std::runtime_error(std::string("tokenizer slot '") + names[i] + "' does not target an active, supported text encoder; SD3 uses the clip-l and clip-g slots"); + } + } +} diff --git a/src/tokenizers/tokenizer_config.h b/src/tokenizers/tokenizer_config.h new file mode 100644 index 000000000..3edc4a9d9 --- /dev/null +++ b/src/tokenizers/tokenizer_config.h @@ -0,0 +1,28 @@ +#ifndef __SD_TOKENIZERS_TOKENIZER_CONFIG_H__ +#define __SD_TOKENIZERS_TOKENIZER_CONFIG_H__ + +#include +#include +#include + +#include "tokenizer.h" + +class TokenizerConfig { +public: + enum Slot { MAIN, + CLIP_L, + CLIP_G }; + +private: + std::array paths_; + mutable std::array used_{}; + +public: + TokenizerConfig() = default; + explicit TokenizerConfig(const char* config); + bool has(Slot slot) const; + std::shared_ptr create(Slot slot, int64_t embedding_rows, int padding_id, bool pad_left = false, bool clip = false) const; + void validate_usage() const; +}; + +#endif // __SD_TOKENIZERS_TOKENIZER_CONFIG_H__ diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 4dfdf0d29..84f0fceb0 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -2,6 +2,70 @@ set(Z_TARGET zip) add_library(${Z_TARGET} OBJECT zip.c zip.h miniz.h) target_include_directories(${Z_TARGET} PUBLIC .) +function(sd_add_oniguruma) + include(CheckIncludeFiles) + include(CheckSymbolExists) + include(CheckTypeSize) + include(GNUInstallDirs) + + foreach(header IN ITEMS alloca.h stdint.h sys/times.h sys/time.h sys/types.h unistd.h inttypes.h) + string(TOUPPER "${header}" name) + string(REGEX REPLACE "[./]" "_" name "${name}") + check_include_files("${header}" SD_ONIG_HAVE_${name}) + set(HAVE_${name} "${SD_ONIG_HAVE_${name}}") + endforeach() + check_type_size(int SD_ONIG_SIZEOF_INT) + check_type_size(long SD_ONIG_SIZEOF_LONG) + check_type_size("long long" SD_ONIG_SIZEOF_LONG_LONG) + check_type_size("void*" SD_ONIG_SIZEOF_VOIDP) + foreach(name IN ITEMS SIZEOF_INT SIZEOF_LONG SIZEOF_LONG_LONG SIZEOF_VOIDP) + set(${name} "${SD_ONIG_${name}}") + endforeach() + if(HAVE_ALLOCA_H) + check_symbol_exists(alloca "alloca.h" SD_ONIG_HAVE_ALLOCA) + else() + check_symbol_exists(alloca "stdlib.h;malloc.h" SD_ONIG_HAVE_ALLOCA) + endif() + set(HAVE_ALLOCA "${SD_ONIG_HAVE_ALLOCA}") + set(PACKAGE onig) + set(PACKAGE_VERSION 6.9.10) + set(VERSION "${PACKAGE_VERSION}") + set(USE_CRNL_AS_LINE_TERMINATOR 0) + configure_file(oniguruma/config.h.cmake.in oniguruma/config.h) + + # unicode.c includes its four data tables; they are not separate translation units. + add_library(onig OBJECT + oniguruma/ascii.c + oniguruma/regcomp.c + oniguruma/regenc.c + oniguruma/regerror.c + oniguruma/regexec.c + oniguruma/regparse.c + oniguruma/st.c + oniguruma/unicode.c + oniguruma/unicode_fold1_key.c + oniguruma/unicode_fold2_key.c + oniguruma/unicode_fold3_key.c + oniguruma/unicode_unfold_key.c + oniguruma/utf8.c) + target_include_directories(onig PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/oniguruma" + PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/oniguruma") + target_compile_definitions(onig PUBLIC ONIG_STATIC) + set_target_properties(onig PROPERTIES POSITION_INDEPENDENT_CODE ON) + + install(FILES oniguruma/COPYING + DESTINATION "${CMAKE_INSTALL_DATADIR}/licenses/stable-diffusion/oniguruma") +endfunction() + +sd_add_oniguruma() + +add_library(sd-utf8proc OBJECT utf8proc/utf8proc.c) +target_include_directories(sd-utf8proc PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/utf8proc") +target_compile_definitions(sd-utf8proc PUBLIC UTF8PROC_STATIC) +set_target_properties(sd-utf8proc PROPERTIES POSITION_INDEPENDENT_CODE ON) +include(GNUInstallDirs) +install(FILES utf8proc/LICENSE.md DESTINATION "${CMAKE_INSTALL_DATADIR}/licenses/stable-diffusion/utf8proc") + if(SD_WEBP AND NOT SD_USE_SYSTEM_WEBP) set(WEBP_BUILD_ANIM_UTILS OFF) set(WEBP_BUILD_CWEBP OFF) diff --git a/thirdparty/README.md b/thirdparty/README.md index ea44fa4a7..51765b0a8 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -7,4 +7,10 @@ - httplib.h from: https://github.com/yhirose/cpp-httplib/blob/master/httplib.h - LICENSE: https://github.com/yhirose/cpp-httplib/blob/master/LICENSE - stb_image.h/stb_image_resize.h/stb_image_write.h from: https://github.com/nothings/stb - - LICENSE: https://github.com/nothings/stb/blob/master/LICENSE \ No newline at end of file + - LICENSE: https://github.com/nothings/stb/blob/master/LICENSE +- Oniguruma from: https://github.com/kkos/oniguruma + - Version and source details: [README](oniguruma/README.md) + - LICENSE: [BSD-2-Clause](oniguruma/COPYING) +- utf8proc from: https://github.com/JuliaStrings/utf8proc + - Version and source details: [README](utf8proc/README.md) + - LICENSE: [MIT and Unicode data licenses](utf8proc/LICENSE.md) diff --git a/thirdparty/oniguruma/COPYING b/thirdparty/oniguruma/COPYING new file mode 100644 index 000000000..cd10bd845 --- /dev/null +++ b/thirdparty/oniguruma/COPYING @@ -0,0 +1,26 @@ +Oniguruma LICENSE +----------------- + +Copyright (c) 2002-2021 K.Kosako +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. diff --git a/thirdparty/oniguruma/README.md b/thirdparty/oniguruma/README.md new file mode 100644 index 000000000..308bc75e3 --- /dev/null +++ b/thirdparty/oniguruma/README.md @@ -0,0 +1,88 @@ +# Oniguruma source subset + +This directory contains the Oniguruma sources needed by sd.cpp's +[UTF-8 regex wrapper](../../src/core/regex.cpp). + +## Upstream source + +- Repository: [kkos/oniguruma](https://github.com/kkos/oniguruma) +- Release: `v6.9.10` +- Commit: [`4ef89209a239c1aea328cf13c05a2807e5c146d1`](https://github.com/kkos/oniguruma/tree/4ef89209a239c1aea328cf13c05a2807e5c146d1) +- License: [BSD-2-Clause](COPYING) + +The 24 upstream files below were copied without local modifications. `COPYING` +comes from the upstream repository root; all other files come from upstream +`src/` and retain their original filenames, flattened into this directory. +This README is maintained by sd.cpp and is not part of the upstream copy. + +## File selection + +The following 13 C files are compiled separately: + +```text +ascii.c +regcomp.c +regenc.c +regerror.c +regexec.c +regparse.c +st.c +unicode.c +unicode_fold1_key.c +unicode_fold2_key.c +unicode_fold3_key.c +unicode_unfold_key.c +utf8.c +``` + +Four Unicode data tables are included by `unicode.c` and must not be compiled +as separate translation units. They were copied from upstream as supplied; +sd.cpp does not regenerate them: + +```text +unicode_fold_data.c +unicode_property_data.c +unicode_egcb_data.c +unicode_wb_data.c +``` + +The remaining files are five headers, the platform configuration template, +and the license: + +```text +oniguruma.h +regint.h +regenc.h +regparse.h +st.h +config.h.cmake.in +COPYING +``` + +The wrapper uses `ONIG_ENCODING_UTF8` and `ONIG_SYNTAX_ONIGURUMA`. ASCII support +is also retained because the engine requires it for initialization and error +handling. Unicode property, case-folding, grapheme-cluster and word-boundary +support remain enabled as in upstream. + +Other encodings, GNU/POSIX compatibility APIs, unused API implementations, +upstream tests, examples, build scripts and packaging files are omitted. +This subset supports sd.cpp's internal wrapper; it does not provide the full +Oniguruma API declared in `oniguruma.h`. + +## Build integration + +[The parent CMake file](../CMakeLists.txt) detects platform headers and type +sizes, then generates `config.h` from `config.h.cmake.in` in the build directory. +It builds the 13 C files as the `onig` OBJECT target with `ONIG_STATIC` and +position-independent code enabled. The resulting objects are included directly +in the sd.cpp static or shared library, with no separate Oniguruma library +required by consumers. + +Keep all 24 upstream files under version control, including the Unicode tables, +configuration template and license. Generated `config.h` and build artifacts +belong in the build directory. + +When refreshing this subset, copy the listed files from the selected upstream +revision, retain `COPYING`, and update the revision recorded here. +Recheck source dependencies and the CMake configuration, then validate the +regex wrapper and tokenizer output on supported platforms. diff --git a/thirdparty/oniguruma/ascii.c b/thirdparty/oniguruma/ascii.c new file mode 100644 index 000000000..730f323ba --- /dev/null +++ b/thirdparty/oniguruma/ascii.c @@ -0,0 +1,121 @@ +/********************************************************************** + ascii.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regint.h" /* for USE_CALLOUT */ + +static int +init(void) +{ +#ifdef USE_CALLOUT + + int id; + OnigEncoding enc; + char* name; + unsigned int args[4]; + OnigValue opts[4]; + + enc = ONIG_ENCODING_ASCII; + + name = "FAIL"; BC0_P(name, fail); + name = "MISMATCH"; BC0_P(name, mismatch); +#ifdef USE_SKIP_SEARCH + name = "SKIP"; BC0_P(name, skip); +#endif + + name = "MAX"; + args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG; + args[1] = ONIG_TYPE_CHAR; + opts[0].c = 'X'; + BC_B_O(name, max, 2, args, 1, opts); + + name = "ERROR"; + args[0] = ONIG_TYPE_LONG; opts[0].l = ONIG_ABORT; + BC_P_O(name, error, 1, args, 1, opts); + + name = "COUNT"; + args[0] = ONIG_TYPE_CHAR; opts[0].c = '>'; + BC_B_O(name, count, 1, args, 1, opts); + + name = "TOTAL_COUNT"; + args[0] = ONIG_TYPE_CHAR; opts[0].c = '>'; + BC_B_O(name, total_count, 1, args, 1, opts); + + name = "CMP"; + args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG; + args[1] = ONIG_TYPE_STRING; + args[2] = ONIG_TYPE_TAG | ONIG_TYPE_LONG; + BC_P(name, cmp, 3, args); + +#endif /* USE_CALLOUT */ + + return ONIG_NORMAL; +} + +#if 0 +static int +is_initialized(void) +{ + /* Don't use this function */ + /* can't answer, because builtin callout entries removed in onig_end() */ + return 0; +} +#endif + +static int +ascii_is_code_ctype(OnigCodePoint code, unsigned int ctype) +{ + if (code < 128) + return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype); + else + return FALSE; +} + +OnigEncodingType OnigEncodingASCII = { + onigenc_single_byte_mbc_enc_len, + "US-ASCII", /* name */ + 1, /* max enc length */ + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + onigenc_single_byte_mbc_to_code, + onigenc_single_byte_code_to_mbclen, + onigenc_single_byte_code_to_mbc, + onigenc_ascii_mbc_case_fold, + onigenc_ascii_apply_all_case_fold, + onigenc_ascii_get_case_fold_codes_by_str, + onigenc_minimum_property_name_to_ctype, + ascii_is_code_ctype, + onigenc_not_support_get_ctype_code_range, + onigenc_single_byte_left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, + init, + 0, /* is_initialized */ + onigenc_always_true_is_valid_mbc_string, + ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1, + 0, 0 +}; diff --git a/thirdparty/oniguruma/config.h.cmake.in b/thirdparty/oniguruma/config.h.cmake.in new file mode 100644 index 000000000..898da8a3c --- /dev/null +++ b/thirdparty/oniguruma/config.h.cmake.in @@ -0,0 +1,56 @@ +/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP + systems. This function is required for `alloca.c' support on those systems. + */ +#cmakedefine CRAY_STACKSEG_END + +/* Define to 1 if using `alloca.c'. */ +#cmakedefine C_ALLOCA + +/* Define to 1 if you have `alloca', as a function or macro. */ +#cmakedefine HAVE_ALLOCA ${HAVE_ALLOCA} + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +#cmakedefine HAVE_ALLOCA_H ${HAVE_ALLOCA_H} + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H ${HAVE_STDINT_H} + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TIMES_H ${HAVE_SYS_TIMES_H} + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TIME_H ${HAVE_SYS_TIME_H} + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H ${HAVE_SYS_TYPES_H} + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H ${HAVE_UNISTD_H} + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H ${HAVE_INTTYPES_H} + +/* Name of package */ +#cmakedefine PACKAGE ${PACKAGE} + +/* Define to the version of this package. */ +#cmakedefine PACKAGE_VERSION ${PACKAGE_VERSION} + +/* The size of `int', as computed by sizeof. */ +#cmakedefine SIZEOF_INT ${SIZEOF_INT} + +/* The size of `long', as computed by sizeof. */ +#cmakedefine SIZEOF_LONG ${SIZEOF_LONG} + +/* The size of `long long', as computed by sizeof. */ +#cmakedefine SIZEOF_LONG_LONG ${SIZEOF_LONG_LONG} + +/* The size of `void*', as computed by sizeof. */ +#cmakedefine SIZEOF_VOIDP ${SIZEOF_VOIDP} + +/* Define if enable CR+NL as line terminator */ +#cmakedefine USE_CRNL_AS_LINE_TERMINATOR ${USE_CRNL_AS_LINE_TERMINATOR} + +/* Version number of package */ +#cmakedefine VERSION ${VERSION} diff --git a/thirdparty/oniguruma/oniguruma.h b/thirdparty/oniguruma/oniguruma.h new file mode 100644 index 000000000..2e47a4631 --- /dev/null +++ b/thirdparty/oniguruma/oniguruma.h @@ -0,0 +1,1094 @@ +#ifndef ONIGURUMA_H +#define ONIGURUMA_H +/********************************************************************** + oniguruma.h - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#define ONIGURUMA +#define ONIGURUMA_VERSION_MAJOR 6 +#define ONIGURUMA_VERSION_MINOR 9 +#define ONIGURUMA_VERSION_TEENY 10 + +#define ONIGURUMA_VERSION_INT 60910 + +#ifndef P_ +#if defined(__STDC__) || defined(_WIN32) +# define P_(args) args +#else +# define P_(args) () +#endif +#endif + +#ifndef PV_ +# define PV_(args) args +#endif + +#ifndef ONIG_STATIC +#ifndef ONIG_EXTERN +#if defined(_WIN32) && !defined(__GNUC__) +#if defined(ONIGURUMA_EXPORT) +#define ONIG_EXTERN extern __declspec(dllexport) +#else +#define ONIG_EXTERN extern __declspec(dllimport) +#endif +#endif +#endif + +#ifndef ONIG_EXTERN +#define ONIG_EXTERN extern +#endif +#else +#define ONIG_EXTERN extern +#endif + +#ifndef ONIG_VARIADIC_FUNC_ATTR +#define ONIG_VARIADIC_FUNC_ATTR +#endif + +/* PART: character encoding */ + +#ifndef ONIG_ESCAPE_UCHAR_COLLISION +#define UChar OnigUChar +#endif + +typedef unsigned int OnigCodePoint; +typedef unsigned char OnigUChar; +typedef unsigned int OnigCtype; +typedef unsigned int OnigLen; + +#define ONIG_INFINITE_DISTANCE ~((OnigLen )0) + +typedef unsigned int OnigCaseFoldType; /* case fold flag */ + +ONIG_EXTERN OnigCaseFoldType OnigDefaultCaseFoldFlag; + +#define ONIGENC_CASE_FOLD_ASCII_ONLY (1) +/* #define ONIGENC_CASE_FOLD_HIRAGANA_KATAKANA (1<<1) */ +/* #define ONIGENC_CASE_FOLD_KATAKANA_WIDTH (1<<2) */ +#define ONIGENC_CASE_FOLD_TURKISH_AZERI (1<<20) +#define INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR (1<<30) + +#define ONIGENC_CASE_FOLD_MIN INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR +#define ONIGENC_CASE_FOLD_DEFAULT OnigDefaultCaseFoldFlag + + +#define ONIGENC_MAX_COMP_CASE_FOLD_CODE_LEN 3 +#define ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM 13 +/* 13 => Unicode:0x1ffc */ + +/* code range */ +#define ONIGENC_CODE_RANGE_NUM(range) ((int )range[0]) +#define ONIGENC_CODE_RANGE_FROM(range,i) range[((i)*2) + 1] +#define ONIGENC_CODE_RANGE_TO(range,i) range[((i)*2) + 2] + +typedef struct { + int byte_len; /* argument(original) character(s) byte length */ + int code_len; /* number of code */ + OnigCodePoint code[ONIGENC_MAX_COMP_CASE_FOLD_CODE_LEN]; +} OnigCaseFoldCodeItem; + +typedef struct { + OnigCodePoint esc; + OnigCodePoint anychar; + OnigCodePoint anytime; + OnigCodePoint zero_or_one_time; + OnigCodePoint one_or_more_time; + OnigCodePoint anychar_anytime; +} OnigMetaCharTableType; + +typedef int (*OnigApplyAllCaseFoldFunc)(OnigCodePoint from, OnigCodePoint* to, int to_len, void* arg); + +typedef struct OnigEncodingTypeST { + int (*mbc_enc_len)(const OnigUChar* p); + const char* name; + int max_enc_len; + int min_enc_len; + int (*is_mbc_newline)(const OnigUChar* p, const OnigUChar* end); + OnigCodePoint (*mbc_to_code)(const OnigUChar* p, const OnigUChar* end); + int (*code_to_mbclen)(OnigCodePoint code); + int (*code_to_mbc)(OnigCodePoint code, OnigUChar *buf); + int (*mbc_case_fold)(OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to); + int (*apply_all_case_fold)(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg); + int (*get_case_fold_codes_by_str)(OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem acs[]); + int (*property_name_to_ctype)(struct OnigEncodingTypeST* enc, OnigUChar* p, OnigUChar* end); + int (*is_code_ctype)(OnigCodePoint code, OnigCtype ctype); + int (*get_ctype_code_range)(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[]); + OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p); + int (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end); + int (*init)(void); + int (*is_initialized)(void); + int (*is_valid_mbc_string)(const OnigUChar* s, const OnigUChar* end); + unsigned int flag; + OnigCodePoint sb_range; + int index; +} OnigEncodingType; + +typedef OnigEncodingType* OnigEncoding; + +ONIG_EXTERN OnigEncodingType OnigEncodingASCII; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_1; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_2; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_3; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_4; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_5; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_6; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_7; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_8; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_9; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_10; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_11; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_13; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_14; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_15; +ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_16; +ONIG_EXTERN OnigEncodingType OnigEncodingUTF8; +ONIG_EXTERN OnigEncodingType OnigEncodingUTF16_BE; +ONIG_EXTERN OnigEncodingType OnigEncodingUTF16_LE; +ONIG_EXTERN OnigEncodingType OnigEncodingUTF32_BE; +ONIG_EXTERN OnigEncodingType OnigEncodingUTF32_LE; +ONIG_EXTERN OnigEncodingType OnigEncodingEUC_JP; +ONIG_EXTERN OnigEncodingType OnigEncodingEUC_TW; +ONIG_EXTERN OnigEncodingType OnigEncodingEUC_KR; +ONIG_EXTERN OnigEncodingType OnigEncodingEUC_CN; +ONIG_EXTERN OnigEncodingType OnigEncodingSJIS; +ONIG_EXTERN OnigEncodingType OnigEncodingKOI8; +ONIG_EXTERN OnigEncodingType OnigEncodingKOI8_R; +ONIG_EXTERN OnigEncodingType OnigEncodingCP1251; +ONIG_EXTERN OnigEncodingType OnigEncodingBIG5; +ONIG_EXTERN OnigEncodingType OnigEncodingGB18030; + +#define ONIG_ENCODING_ASCII (&OnigEncodingASCII) +#define ONIG_ENCODING_ISO_8859_1 (&OnigEncodingISO_8859_1) +#define ONIG_ENCODING_ISO_8859_2 (&OnigEncodingISO_8859_2) +#define ONIG_ENCODING_ISO_8859_3 (&OnigEncodingISO_8859_3) +#define ONIG_ENCODING_ISO_8859_4 (&OnigEncodingISO_8859_4) +#define ONIG_ENCODING_ISO_8859_5 (&OnigEncodingISO_8859_5) +#define ONIG_ENCODING_ISO_8859_6 (&OnigEncodingISO_8859_6) +#define ONIG_ENCODING_ISO_8859_7 (&OnigEncodingISO_8859_7) +#define ONIG_ENCODING_ISO_8859_8 (&OnigEncodingISO_8859_8) +#define ONIG_ENCODING_ISO_8859_9 (&OnigEncodingISO_8859_9) +#define ONIG_ENCODING_ISO_8859_10 (&OnigEncodingISO_8859_10) +#define ONIG_ENCODING_ISO_8859_11 (&OnigEncodingISO_8859_11) +#define ONIG_ENCODING_ISO_8859_13 (&OnigEncodingISO_8859_13) +#define ONIG_ENCODING_ISO_8859_14 (&OnigEncodingISO_8859_14) +#define ONIG_ENCODING_ISO_8859_15 (&OnigEncodingISO_8859_15) +#define ONIG_ENCODING_ISO_8859_16 (&OnigEncodingISO_8859_16) +#define ONIG_ENCODING_UTF8 (&OnigEncodingUTF8) +#define ONIG_ENCODING_UTF16_BE (&OnigEncodingUTF16_BE) +#define ONIG_ENCODING_UTF16_LE (&OnigEncodingUTF16_LE) +#define ONIG_ENCODING_UTF32_BE (&OnigEncodingUTF32_BE) +#define ONIG_ENCODING_UTF32_LE (&OnigEncodingUTF32_LE) +#define ONIG_ENCODING_EUC_JP (&OnigEncodingEUC_JP) +#define ONIG_ENCODING_EUC_TW (&OnigEncodingEUC_TW) +#define ONIG_ENCODING_EUC_KR (&OnigEncodingEUC_KR) +#define ONIG_ENCODING_EUC_CN (&OnigEncodingEUC_CN) +#define ONIG_ENCODING_SJIS (&OnigEncodingSJIS) +#define ONIG_ENCODING_KOI8 (&OnigEncodingKOI8) +#define ONIG_ENCODING_KOI8_R (&OnigEncodingKOI8_R) +#define ONIG_ENCODING_CP1251 (&OnigEncodingCP1251) +#define ONIG_ENCODING_BIG5 (&OnigEncodingBIG5) +#define ONIG_ENCODING_GB18030 (&OnigEncodingGB18030) + +#define ONIG_ENCODING_UNDEF ((OnigEncoding )0) + + +/* work size */ +#define ONIGENC_CODE_TO_MBC_MAXLEN 7 +#define ONIGENC_MBC_CASE_FOLD_MAXLEN 18 +/* 18: 6(max-byte) * 3(case-fold chars) */ + +/* character types */ +typedef enum { + ONIGENC_CTYPE_NEWLINE = 0, + ONIGENC_CTYPE_ALPHA = 1, + ONIGENC_CTYPE_BLANK = 2, + ONIGENC_CTYPE_CNTRL = 3, + ONIGENC_CTYPE_DIGIT = 4, + ONIGENC_CTYPE_GRAPH = 5, + ONIGENC_CTYPE_LOWER = 6, + ONIGENC_CTYPE_PRINT = 7, + ONIGENC_CTYPE_PUNCT = 8, + ONIGENC_CTYPE_SPACE = 9, + ONIGENC_CTYPE_UPPER = 10, + ONIGENC_CTYPE_XDIGIT = 11, + ONIGENC_CTYPE_WORD = 12, + ONIGENC_CTYPE_ALNUM = 13, /* alpha || digit */ + ONIGENC_CTYPE_ASCII = 14 +} OnigEncCtype; + +#define ONIGENC_MAX_STD_CTYPE ONIGENC_CTYPE_ASCII + + +#define onig_enc_len(enc,p,end) ONIGENC_MBC_ENC_LEN(enc,p) + +#define ONIGENC_IS_UNDEF(enc) ((enc) == ONIG_ENCODING_UNDEF) +#define ONIGENC_IS_SINGLEBYTE(enc) (ONIGENC_MBC_MAXLEN(enc) == 1) +#define ONIGENC_IS_MBC_HEAD(enc,p) (ONIGENC_MBC_ENC_LEN(enc,p) != 1) +#define ONIGENC_IS_MBC_ASCII(p) (*(p) < 128) +#define ONIGENC_IS_CODE_ASCII(code) ((code) < 128) +#define ONIGENC_IS_MBC_WORD(enc,s,end) \ + ONIGENC_IS_CODE_WORD(enc,ONIGENC_MBC_TO_CODE(enc,s,end)) +#define ONIGENC_IS_MBC_WORD_ASCII(enc,s,end) onigenc_is_mbc_word_ascii(enc,s,end) + +#define ONIGENC_NAME(enc) ((enc)->name) + +#define ONIGENC_MBC_CASE_FOLD(enc,flag,pp,end,buf) \ + (enc)->mbc_case_fold(flag,(const OnigUChar** )pp,end,buf) +#define ONIGENC_IS_ALLOWED_REVERSE_MATCH(enc,s,end) \ + (enc)->is_allowed_reverse_match(s,end) +#define ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc,start,s) \ + (enc)->left_adjust_char_head(start, s) +#define ONIGENC_IS_VALID_MBC_STRING(enc,s,end) \ + (enc)->is_valid_mbc_string(s,end) +#define ONIGENC_APPLY_ALL_CASE_FOLD(enc,case_fold_flag,f,arg) \ + (enc)->apply_all_case_fold(case_fold_flag,f,arg) +#define ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc,case_fold_flag,p,end,acs) \ + (enc)->get_case_fold_codes_by_str(case_fold_flag,p,end,acs) +#define ONIGENC_STEP_BACK(enc,start,s,n) \ + onigenc_step_back((enc),(start),(s),(n)) + +#define ONIGENC_MBC_ENC_LEN(enc,p) (enc)->mbc_enc_len(p) +#define ONIGENC_MBC_MAXLEN(enc) ((enc)->max_enc_len) +#define ONIGENC_MBC_MAXLEN_DIST(enc) ONIGENC_MBC_MAXLEN(enc) +#define ONIGENC_MBC_MINLEN(enc) ((enc)->min_enc_len) +#define ONIGENC_IS_MBC_NEWLINE(enc,p,end) (enc)->is_mbc_newline((p),(end)) +#define ONIGENC_MBC_TO_CODE(enc,p,end) (enc)->mbc_to_code((p),(end)) +#define ONIGENC_CODE_TO_MBCLEN(enc,code) (enc)->code_to_mbclen(code) +#define ONIGENC_CODE_TO_MBC(enc,code,buf) (enc)->code_to_mbc(code,buf) +#define ONIGENC_PROPERTY_NAME_TO_CTYPE(enc,p,end) \ + (enc)->property_name_to_ctype(enc,p,end) + +#define ONIGENC_IS_CODE_CTYPE(enc,code,ctype) (enc)->is_code_ctype(code,ctype) + +#define ONIGENC_IS_CODE_NEWLINE(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_NEWLINE) +#define ONIGENC_IS_CODE_GRAPH(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_GRAPH) +#define ONIGENC_IS_CODE_PRINT(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PRINT) +#define ONIGENC_IS_CODE_ALNUM(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALNUM) +#define ONIGENC_IS_CODE_ALPHA(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALPHA) +#define ONIGENC_IS_CODE_LOWER(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_LOWER) +#define ONIGENC_IS_CODE_UPPER(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_UPPER) +#define ONIGENC_IS_CODE_CNTRL(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_CNTRL) +#define ONIGENC_IS_CODE_PUNCT(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PUNCT) +#define ONIGENC_IS_CODE_SPACE(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_SPACE) +#define ONIGENC_IS_CODE_BLANK(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_BLANK) +#define ONIGENC_IS_CODE_DIGIT(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_DIGIT) +#define ONIGENC_IS_CODE_XDIGIT(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_XDIGIT) +#define ONIGENC_IS_CODE_WORD(enc,code) \ + ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_WORD) + +#define ONIGENC_GET_CTYPE_CODE_RANGE(enc,ctype,sbout,ranges) \ + (enc)->get_ctype_code_range(ctype,sbout,ranges) + +ONIG_EXTERN +OnigUChar* onigenc_step_back P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, int n)); + + +/* encoding API */ +ONIG_EXTERN +int onigenc_init P_((void)); +ONIG_EXTERN +int onig_initialize_encoding P_((OnigEncoding enc)); +ONIG_EXTERN +int onigenc_set_default_encoding P_((OnigEncoding enc)); +ONIG_EXTERN +OnigEncoding onigenc_get_default_encoding P_((void)); +ONIG_EXTERN +void onigenc_set_default_caseconv_table P_((const OnigUChar* table)); +ONIG_EXTERN +OnigUChar* onigenc_get_right_adjust_char_head_with_prev P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar** prev)); +ONIG_EXTERN +OnigUChar* onigenc_get_prev_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s)); +ONIG_EXTERN +OnigUChar* onigenc_get_left_adjust_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s)); +ONIG_EXTERN +OnigUChar* onigenc_get_right_adjust_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s)); +ONIG_EXTERN +int onigenc_strlen P_((OnigEncoding enc, const OnigUChar* p, const OnigUChar* end)); +ONIG_EXTERN +int onigenc_strlen_null P_((OnigEncoding enc, const OnigUChar* p)); +ONIG_EXTERN +int onigenc_str_bytelen_null P_((OnigEncoding enc, const OnigUChar* p)); +ONIG_EXTERN +int onigenc_is_valid_mbc_string P_((OnigEncoding enc, const OnigUChar* s, const OnigUChar* end)); +ONIG_EXTERN +OnigUChar* onigenc_strdup P_((OnigEncoding enc, const OnigUChar* s, const OnigUChar* end)); + + +/* PART: regular expression */ + +/* config parameters */ +#define ONIG_NREGION 10 +#define ONIG_MAX_CAPTURE_NUM 2147483647 /* 2**31 - 1 */ +#define ONIG_MAX_BACKREF_NUM 1000 +#define ONIG_MAX_REPEAT_NUM 100000 +#define ONIG_MAX_MULTI_BYTE_RANGES_NUM 10000 +/* constants */ +#define ONIG_MAX_ERROR_MESSAGE_LEN 90 + +typedef unsigned int OnigOptionType; + +#define ONIG_OPTION_DEFAULT ONIG_OPTION_NONE + +/* options */ +#define ONIG_OPTION_NONE 0U +/* options (compile time) */ +#define ONIG_OPTION_IGNORECASE 1U +#define ONIG_OPTION_EXTEND (ONIG_OPTION_IGNORECASE << 1) +#define ONIG_OPTION_MULTILINE (ONIG_OPTION_EXTEND << 1) +#define ONIG_OPTION_SINGLELINE (ONIG_OPTION_MULTILINE << 1) +#define ONIG_OPTION_FIND_LONGEST (ONIG_OPTION_SINGLELINE << 1) +#define ONIG_OPTION_FIND_NOT_EMPTY (ONIG_OPTION_FIND_LONGEST << 1) +#define ONIG_OPTION_NEGATE_SINGLELINE (ONIG_OPTION_FIND_NOT_EMPTY << 1) +#define ONIG_OPTION_DONT_CAPTURE_GROUP (ONIG_OPTION_NEGATE_SINGLELINE << 1) +#define ONIG_OPTION_CAPTURE_GROUP (ONIG_OPTION_DONT_CAPTURE_GROUP << 1) +/* options (search time) */ +#define ONIG_OPTION_NOTBOL (ONIG_OPTION_CAPTURE_GROUP << 1) +#define ONIG_OPTION_NOTEOL (ONIG_OPTION_NOTBOL << 1) +#define ONIG_OPTION_POSIX_REGION (ONIG_OPTION_NOTEOL << 1) +#define ONIG_OPTION_CHECK_VALIDITY_OF_STRING (ONIG_OPTION_POSIX_REGION << 1) +/* options (compile time) */ +#define ONIG_OPTION_IGNORECASE_IS_ASCII (ONIG_OPTION_CHECK_VALIDITY_OF_STRING << 3) +#define ONIG_OPTION_WORD_IS_ASCII (ONIG_OPTION_IGNORECASE_IS_ASCII << 1) +#define ONIG_OPTION_DIGIT_IS_ASCII (ONIG_OPTION_WORD_IS_ASCII << 1) +#define ONIG_OPTION_SPACE_IS_ASCII (ONIG_OPTION_DIGIT_IS_ASCII << 1) +#define ONIG_OPTION_POSIX_IS_ASCII (ONIG_OPTION_SPACE_IS_ASCII << 1) +#define ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER (ONIG_OPTION_POSIX_IS_ASCII << 1) +#define ONIG_OPTION_TEXT_SEGMENT_WORD (ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER << 1) +/* options (search time) */ +#define ONIG_OPTION_NOT_BEGIN_STRING (ONIG_OPTION_TEXT_SEGMENT_WORD << 1) +#define ONIG_OPTION_NOT_END_STRING (ONIG_OPTION_NOT_BEGIN_STRING << 1) +#define ONIG_OPTION_NOT_BEGIN_POSITION (ONIG_OPTION_NOT_END_STRING << 1) +#define ONIG_OPTION_CALLBACK_EACH_MATCH (ONIG_OPTION_NOT_BEGIN_POSITION << 1) +#define ONIG_OPTION_MATCH_WHOLE_STRING (ONIG_OPTION_CALLBACK_EACH_MATCH << 1) + +#define ONIG_OPTION_MAXBIT ONIG_OPTION_MATCH_WHOLE_STRING + +#define ONIG_OPTION_ON(options,regopt) ((options) |= (regopt)) +#define ONIG_OPTION_OFF(options,regopt) ((options) &= ~(regopt)) +#define ONIG_IS_OPTION_ON(options,option) ((options) & (option)) + +/* syntax */ +typedef struct { + unsigned int op; + unsigned int op2; + unsigned int behavior; + OnigOptionType options; /* default option */ + OnigMetaCharTableType meta_char_table; +} OnigSyntaxType; + +ONIG_EXTERN OnigSyntaxType OnigSyntaxASIS; +ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixBasic; +ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixExtended; +ONIG_EXTERN OnigSyntaxType OnigSyntaxEmacs; +ONIG_EXTERN OnigSyntaxType OnigSyntaxGrep; +ONIG_EXTERN OnigSyntaxType OnigSyntaxGnuRegex; +ONIG_EXTERN OnigSyntaxType OnigSyntaxJava; +ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl; +ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl_NG; +ONIG_EXTERN OnigSyntaxType OnigSyntaxRuby; +ONIG_EXTERN OnigSyntaxType OnigSyntaxPython; +ONIG_EXTERN OnigSyntaxType OnigSyntaxOniguruma; + +/* predefined syntaxes (see regsyntax.c) */ +#define ONIG_SYNTAX_ASIS (&OnigSyntaxASIS) +#define ONIG_SYNTAX_POSIX_BASIC (&OnigSyntaxPosixBasic) +#define ONIG_SYNTAX_POSIX_EXTENDED (&OnigSyntaxPosixExtended) +#define ONIG_SYNTAX_EMACS (&OnigSyntaxEmacs) +#define ONIG_SYNTAX_GREP (&OnigSyntaxGrep) +#define ONIG_SYNTAX_GNU_REGEX (&OnigSyntaxGnuRegex) +#define ONIG_SYNTAX_JAVA (&OnigSyntaxJava) +#define ONIG_SYNTAX_PERL (&OnigSyntaxPerl) +#define ONIG_SYNTAX_PERL_NG (&OnigSyntaxPerl_NG) +#define ONIG_SYNTAX_RUBY (&OnigSyntaxRuby) +#define ONIG_SYNTAX_PYTHON (&OnigSyntaxPython) +#define ONIG_SYNTAX_ONIGURUMA (&OnigSyntaxOniguruma) + +/* default syntax */ +ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; +#define ONIG_SYNTAX_DEFAULT OnigDefaultSyntax + +/* syntax (operators) */ +#define ONIG_SYN_OP_VARIABLE_META_CHARACTERS (1U<<0) +#define ONIG_SYN_OP_DOT_ANYCHAR (1U<<1) /* . */ +#define ONIG_SYN_OP_ASTERISK_ZERO_INF (1U<<2) /* * */ +#define ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF (1U<<3) +#define ONIG_SYN_OP_PLUS_ONE_INF (1U<<4) /* + */ +#define ONIG_SYN_OP_ESC_PLUS_ONE_INF (1U<<5) +#define ONIG_SYN_OP_QMARK_ZERO_ONE (1U<<6) /* ? */ +#define ONIG_SYN_OP_ESC_QMARK_ZERO_ONE (1U<<7) +#define ONIG_SYN_OP_BRACE_INTERVAL (1U<<8) /* {lower,upper} */ +#define ONIG_SYN_OP_ESC_BRACE_INTERVAL (1U<<9) /* \{lower,upper\} */ +#define ONIG_SYN_OP_VBAR_ALT (1U<<10) /* | */ +#define ONIG_SYN_OP_ESC_VBAR_ALT (1U<<11) /* \| */ +#define ONIG_SYN_OP_LPAREN_SUBEXP (1U<<12) /* (...) */ +#define ONIG_SYN_OP_ESC_LPAREN_SUBEXP (1U<<13) /* \(...\) */ +#define ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR (1U<<14) /* \A, \Z, \z */ +#define ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR (1U<<15) /* \G */ +#define ONIG_SYN_OP_DECIMAL_BACKREF (1U<<16) /* \num */ +#define ONIG_SYN_OP_BRACKET_CC (1U<<17) /* [...] */ +#define ONIG_SYN_OP_ESC_W_WORD (1U<<18) /* \w, \W */ +#define ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END (1U<<19) /* \<. \> */ +#define ONIG_SYN_OP_ESC_B_WORD_BOUND (1U<<20) /* \b, \B */ +#define ONIG_SYN_OP_ESC_S_WHITE_SPACE (1U<<21) /* \s, \S */ +#define ONIG_SYN_OP_ESC_D_DIGIT (1U<<22) /* \d, \D */ +#define ONIG_SYN_OP_LINE_ANCHOR (1U<<23) /* ^, $ */ +#define ONIG_SYN_OP_POSIX_BRACKET (1U<<24) /* [:xxxx:] */ +#define ONIG_SYN_OP_QMARK_NON_GREEDY (1U<<25) /* ??,*?,+?,{n,m}? */ +#define ONIG_SYN_OP_ESC_CONTROL_CHARS (1U<<26) /* \n,\r,\t,\a ... */ +#define ONIG_SYN_OP_ESC_C_CONTROL (1U<<27) /* \cx */ +#define ONIG_SYN_OP_ESC_OCTAL3 (1U<<28) /* \OOO */ +#define ONIG_SYN_OP_ESC_X_HEX2 (1U<<29) /* \xHH */ +#define ONIG_SYN_OP_ESC_X_BRACE_HEX8 (1U<<30) /* \x{7HHHHHHH} */ +#define ONIG_SYN_OP_ESC_O_BRACE_OCTAL (1U<<31) /* \o{1OOOOOOOOOO} */ + +#define ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE (1U<<0) /* \Q...\E */ +#define ONIG_SYN_OP2_QMARK_GROUP_EFFECT (1U<<1) /* (?...) */ +#define ONIG_SYN_OP2_OPTION_PERL (1U<<2) /* (?imsx),(?-imsx) */ +#define ONIG_SYN_OP2_OPTION_RUBY (1U<<3) /* (?imx), (?-imx) */ +#define ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT (1U<<4) /* ?+,*+,++ */ +#define ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL (1U<<5) /* {n,m}+ */ +#define ONIG_SYN_OP2_CCLASS_SET_OP (1U<<6) /* [...&&..[..]..] */ +#define ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP (1U<<7) /* (?...) */ +#define ONIG_SYN_OP2_ESC_K_NAMED_BACKREF (1U<<8) /* \k */ +#define ONIG_SYN_OP2_ESC_G_SUBEXP_CALL (1U<<9) /* \g, \g */ +#define ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY (1U<<10) /* (?@..),(?@..) */ +#define ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL (1U<<11) /* \C-x */ +#define ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META (1U<<12) /* \M-x */ +#define ONIG_SYN_OP2_ESC_V_VTAB (1U<<13) /* \v as VTAB */ +#define ONIG_SYN_OP2_ESC_U_HEX4 (1U<<14) /* \uHHHH */ +#define ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR (1U<<15) /* \`, \' */ +#define ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY (1U<<16) /* \p{...}, \P{...} */ +#define ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT (1U<<17) /* \p{^..}, \P{^..} */ +/* #define ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS (1U<<18) */ +#define ONIG_SYN_OP2_ESC_H_XDIGIT (1U<<19) /* \h, \H */ +#define ONIG_SYN_OP2_INEFFECTIVE_ESCAPE (1U<<20) /* \ */ +#define ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE (1U<<21) /* (?(n)) (?(...)...|...) */ +#define ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP (1U<<22) /* \K */ +#define ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE (1U<<23) /* \R \r\n else [\x0a-\x0d] */ +#define ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT (1U<<24) /* \N (?-m:.), \O (?m:.) */ +#define ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP (1U<<25) /* (?~...) */ +#define ONIG_SYN_OP2_ESC_X_Y_GRAPHEME_CLUSTER (1U<<26) /* obsoleted: use next */ +#define ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT (1U<<26) /* \X \y \Y */ +#define ONIG_SYN_OP2_QMARK_PERL_SUBEXP_CALL (1U<<27) /* (?R), (?&name)... */ +#define ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS (1U<<28) /* (?{...}) (?{{...}}) */ +#define ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME (1U<<29) /* (*name) (*name{a,..}) */ +#define ONIG_SYN_OP2_OPTION_ONIGURUMA (1U<<30) /* (?imxWDSPy) */ +#define ONIG_SYN_OP2_QMARK_CAPITAL_P_NAME (1U<<31) /* (?P...) (?P=name) */ + +/* syntax (behavior) */ +#define ONIG_SYN_CONTEXT_INDEP_ANCHORS (1U<<31) /* not implemented */ +#define ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS (1U<<0) /* ?, *, +, {n,m} */ +#define ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS (1U<<1) /* error or ignore */ +#define ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP (1U<<2) /* ...)... */ +#define ONIG_SYN_ALLOW_INVALID_INTERVAL (1U<<3) /* {??? */ +#define ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV (1U<<4) /* {,n} => {0,n} */ +#define ONIG_SYN_STRICT_CHECK_BACKREF (1U<<5) /* /(\1)/,/\1()/ ..*/ +#define ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND (1U<<6) /* (?<=a|bc) */ +#define ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP (1U<<7) /* see doc/RE */ +#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME (1U<<8) /* (?)(?) */ +#define ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY (1U<<9) /* a{n}?=(?:a{n})? */ +#define ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH (1U<<10) /* ..(?i)...|... */ +#define ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND (1U<<11) /* (?<=a+|..) */ +#define ONIG_SYN_PYTHON (1U<<12) /* \UHHHHHHHH */ +#define ONIG_SYN_WHOLE_OPTIONS (1U<<13) /* (?Ie) */ +#define ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP (1U<<14) /* \(^abc$\) */ + +/* syntax (behavior) in char class [...] */ +#define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20) /* [^...] */ +#define ONIG_SYN_BACKSLASH_ESCAPE_IN_CC (1U<<21) /* [..\w..] etc.. */ +#define ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC (1U<<22) +#define ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC (1U<<23) /* [0-9-a]=[0-9\-a] */ +#define ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC (1U<<26) +#define ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC (1U<<27) /* [\w-%]=[\w\-%] */ +/* syntax (behavior) warning */ +#define ONIG_SYN_WARN_CC_OP_NOT_ESCAPED (1U<<24) /* [,-,] */ +#define ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT (1U<<25) /* (?:a*)+ */ + +/* meta character specifiers (onig_set_meta_char()) */ +#define ONIG_META_CHAR_ESCAPE 0 +#define ONIG_META_CHAR_ANYCHAR 1 +#define ONIG_META_CHAR_ANYTIME 2 +#define ONIG_META_CHAR_ZERO_OR_ONE_TIME 3 +#define ONIG_META_CHAR_ONE_OR_MORE_TIME 4 +#define ONIG_META_CHAR_ANYCHAR_ANYTIME 5 + +#define ONIG_INEFFECTIVE_META_CHAR 0 + +/* error codes */ +#define ONIG_IS_PATTERN_ERROR(ecode) ((ecode) <= -100 && (ecode) > -1000) + +/* normal return */ +#define ONIG_NORMAL 0 +#define ONIG_VALUE_IS_NOT_SET 1 +#define ONIG_MISMATCH -1 +#define ONIG_NO_SUPPORT_CONFIG -2 +#define ONIG_ABORT -3 + +/* internal error */ +#define ONIGERR_MEMORY -5 +#define ONIGERR_TYPE_BUG -6 +#define ONIGERR_PARSER_BUG -11 +#define ONIGERR_STACK_BUG -12 +#define ONIGERR_UNDEFINED_BYTECODE -13 +#define ONIGERR_UNEXPECTED_BYTECODE -14 +#define ONIGERR_MATCH_STACK_LIMIT_OVER -15 +#define ONIGERR_PARSE_DEPTH_LIMIT_OVER -16 +#define ONIGERR_RETRY_LIMIT_IN_MATCH_OVER -17 +#define ONIGERR_RETRY_LIMIT_IN_SEARCH_OVER -18 +#define ONIGERR_SUBEXP_CALL_LIMIT_IN_SEARCH_OVER -19 +#define ONIGERR_DEFAULT_ENCODING_IS_NOT_SETTED -21 /*dont use*/ +#define ONIGERR_DEFAULT_ENCODING_IS_NOT_SET -21 +#define ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR -22 +#define ONIGERR_FAIL_TO_INITIALIZE -23 +/* general error */ +#define ONIGERR_INVALID_ARGUMENT -30 +/* syntax error */ +#define ONIGERR_END_PATTERN_AT_LEFT_BRACE -100 +#define ONIGERR_END_PATTERN_AT_LEFT_BRACKET -101 +#define ONIGERR_EMPTY_CHAR_CLASS -102 +#define ONIGERR_PREMATURE_END_OF_CHAR_CLASS -103 +#define ONIGERR_END_PATTERN_AT_ESCAPE -104 +#define ONIGERR_END_PATTERN_AT_META -105 +#define ONIGERR_END_PATTERN_AT_CONTROL -106 +#define ONIGERR_META_CODE_SYNTAX -108 +#define ONIGERR_CONTROL_CODE_SYNTAX -109 +#define ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE -110 +#define ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE -111 +#define ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS -112 +#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED -113 +#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID -114 +#define ONIGERR_NESTED_REPEAT_OPERATOR -115 +#define ONIGERR_UNMATCHED_CLOSE_PARENTHESIS -116 +#define ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS -117 +#define ONIGERR_END_PATTERN_IN_GROUP -118 +#define ONIGERR_UNDEFINED_GROUP_OPTION -119 +#define ONIGERR_INVALID_GROUP_OPTION -120 +#define ONIGERR_INVALID_POSIX_BRACKET_TYPE -121 +#define ONIGERR_INVALID_LOOK_BEHIND_PATTERN -122 +#define ONIGERR_INVALID_REPEAT_RANGE_PATTERN -123 +/* values error (syntax error) */ +#define ONIGERR_TOO_BIG_NUMBER -200 +#define ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE -201 +#define ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE -202 +#define ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS -203 +#define ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE -204 +#define ONIGERR_TOO_MANY_MULTI_BYTE_RANGES -205 +#define ONIGERR_TOO_SHORT_MULTI_BYTE_STRING -206 +#define ONIGERR_TOO_BIG_BACKREF_NUMBER -207 +#define ONIGERR_INVALID_BACKREF -208 +#define ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED -209 +#define ONIGERR_TOO_MANY_CAPTURES -210 +#define ONIGERR_TOO_LONG_WIDE_CHAR_VALUE -212 +#define ONIGERR_UNDEFINED_OPERATOR -213 +#define ONIGERR_EMPTY_GROUP_NAME -214 +#define ONIGERR_INVALID_GROUP_NAME -215 +#define ONIGERR_INVALID_CHAR_IN_GROUP_NAME -216 +#define ONIGERR_UNDEFINED_NAME_REFERENCE -217 +#define ONIGERR_UNDEFINED_GROUP_REFERENCE -218 +#define ONIGERR_MULTIPLEX_DEFINED_NAME -219 +#define ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL -220 +#define ONIGERR_NEVER_ENDING_RECURSION -221 +#define ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY -222 +#define ONIGERR_INVALID_CHAR_PROPERTY_NAME -223 +#define ONIGERR_INVALID_IF_ELSE_SYNTAX -224 +#define ONIGERR_INVALID_ABSENT_GROUP_PATTERN -225 +#define ONIGERR_INVALID_ABSENT_GROUP_GENERATOR_PATTERN -226 +#define ONIGERR_INVALID_CALLOUT_PATTERN -227 +#define ONIGERR_INVALID_CALLOUT_NAME -228 +#define ONIGERR_UNDEFINED_CALLOUT_NAME -229 +#define ONIGERR_INVALID_CALLOUT_BODY -230 +#define ONIGERR_INVALID_CALLOUT_TAG_NAME -231 +#define ONIGERR_INVALID_CALLOUT_ARG -232 +#define ONIGERR_INVALID_CODE_POINT_VALUE -400 +#define ONIGERR_INVALID_WIDE_CHAR_VALUE -400 +#define ONIGERR_TOO_BIG_WIDE_CHAR_VALUE -401 +#define ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION -402 +#define ONIGERR_INVALID_COMBINATION_OF_OPTIONS -403 +#define ONIGERR_TOO_MANY_USER_DEFINED_OBJECTS -404 +#define ONIGERR_TOO_LONG_PROPERTY_NAME -405 +#define ONIGERR_VERY_INEFFICIENT_PATTERN -406 +#define ONIGERR_LIBRARY_IS_NOT_INITIALIZED -500 + +/* errors related to thread */ +/* #define ONIGERR_OVER_THREAD_PASS_LIMIT_COUNT -1001 */ + + +/* must be smaller than MEM_STATUS_BITS_NUM (unsigned int * 8) */ +#define ONIG_MAX_CAPTURE_HISTORY_GROUP 31 +#define ONIG_IS_CAPTURE_HISTORY_GROUP(r, i) \ + ((i) <= ONIG_MAX_CAPTURE_HISTORY_GROUP && (r)->list && (r)->list[i]) + +typedef struct OnigCaptureTreeNodeStruct { + int group; /* group number */ + int beg; + int end; + int allocated; + int num_childs; + struct OnigCaptureTreeNodeStruct** childs; +} OnigCaptureTreeNode; + +/* match result region type */ +struct re_registers { + int allocated; + int num_regs; + int* beg; + int* end; + /* extended */ + OnigCaptureTreeNode* history_root; /* capture history tree root */ +}; + +/* capture tree traverse */ +#define ONIG_TRAVERSE_CALLBACK_AT_FIRST 1 +#define ONIG_TRAVERSE_CALLBACK_AT_LAST 2 +#define ONIG_TRAVERSE_CALLBACK_AT_BOTH \ + ( ONIG_TRAVERSE_CALLBACK_AT_FIRST | ONIG_TRAVERSE_CALLBACK_AT_LAST ) + + +#define ONIG_REGION_NOTPOS -1 + +typedef struct re_registers OnigRegion; + +typedef struct { + OnigEncoding enc; + OnigUChar* par; + OnigUChar* par_end; +} OnigErrorInfo; + +typedef struct { + int lower; + int upper; +} OnigRepeatRange; + +typedef void (*OnigWarnFunc) P_((const char* s)); +extern void onig_null_warn P_((const char* s)); +#define ONIG_NULL_WARN onig_null_warn + +#define ONIG_CHAR_TABLE_SIZE 256 + +struct re_pattern_buffer; +typedef struct re_pattern_buffer OnigRegexType; +typedef OnigRegexType* OnigRegex; + +#ifndef ONIG_ESCAPE_REGEX_T_COLLISION + typedef OnigRegexType regex_t; +#endif + +struct OnigRegSetStruct; +typedef struct OnigRegSetStruct OnigRegSet; + +typedef enum { + ONIG_REGSET_POSITION_LEAD = 0, + ONIG_REGSET_REGEX_LEAD = 1, + ONIG_REGSET_PRIORITY_TO_REGEX_ORDER = 2 +} OnigRegSetLead; + +typedef struct { + int num_of_elements; + OnigEncoding pattern_enc; + OnigEncoding target_enc; + OnigSyntaxType* syntax; + OnigOptionType option; + OnigCaseFoldType case_fold_flag; +} OnigCompileInfo; + +typedef int (*OnigCallbackEachMatchFunc)(const OnigUChar* str, const OnigUChar* end, const OnigUChar* match_start, OnigRegion* region, void* user_data); + + +/* types for callout */ +typedef enum { + ONIG_CALLOUT_IN_PROGRESS = 1, /* 1<<0 */ + ONIG_CALLOUT_IN_RETRACTION = 2 /* 1<<1 */ +} OnigCalloutIn; + +#define ONIG_CALLOUT_IN_BOTH (ONIG_CALLOUT_IN_PROGRESS | ONIG_CALLOUT_IN_RETRACTION) + +typedef enum { + ONIG_CALLOUT_OF_CONTENTS = 0, + ONIG_CALLOUT_OF_NAME = 1 +} OnigCalloutOf; + +typedef enum { + ONIG_CALLOUT_TYPE_SINGLE = 0, + ONIG_CALLOUT_TYPE_START_CALL = 1, + ONIG_CALLOUT_TYPE_BOTH_CALL = 2, + ONIG_CALLOUT_TYPE_START_MARK_END_CALL = 3, +} OnigCalloutType; + + +#define ONIG_NON_NAME_ID -1 +#define ONIG_NON_CALLOUT_NUM 0 + +#define ONIG_CALLOUT_MAX_ARGS_NUM 4 +#define ONIG_CALLOUT_DATA_SLOT_NUM 5 + +struct OnigCalloutArgsStruct; +typedef struct OnigCalloutArgsStruct OnigCalloutArgs; + +typedef int (*OnigCalloutFunc)(OnigCalloutArgs* args, void* user_data); + +/* callout function return values (less than -1: error code) */ +typedef enum { + ONIG_CALLOUT_FAIL = 1, + ONIG_CALLOUT_SUCCESS = 0 +} OnigCalloutResult; + +typedef enum { + ONIG_TYPE_VOID = 0, + ONIG_TYPE_LONG = 1<<0, + ONIG_TYPE_CHAR = 1<<1, + ONIG_TYPE_STRING = 1<<2, + ONIG_TYPE_POINTER = 1<<3, + ONIG_TYPE_TAG = 1<<4, +} OnigType; + +typedef union { + long l; + OnigCodePoint c; + struct { + OnigUChar* start; + OnigUChar* end; + } s; + void* p; + int tag; /* tag -> callout_num */ +} OnigValue; + + +struct OnigMatchParamStruct; +typedef struct OnigMatchParamStruct OnigMatchParam; + + +/* Oniguruma Native API */ + +ONIG_EXTERN +int onig_initialize P_((OnigEncoding encodings[], int number_of_encodings)); +/* onig_init(): deprecated function. Use onig_initialize(). */ +ONIG_EXTERN +int onig_init P_((void)); +ONIG_EXTERN +int ONIG_VARIADIC_FUNC_ATTR onig_error_code_to_str PV_((OnigUChar* s, int err_code, ...)); +ONIG_EXTERN +int onig_is_error_code_needs_param PV_((int code)); +ONIG_EXTERN +void onig_set_warn_func P_((OnigWarnFunc f)); +ONIG_EXTERN +void onig_set_verb_warn_func P_((OnigWarnFunc f)); +ONIG_EXTERN +int onig_new P_((OnigRegex*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo)); +ONIG_EXTERN +int onig_reg_init P_((OnigRegex reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, OnigSyntaxType* syntax)); +int onig_new_without_alloc P_((OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo)); +ONIG_EXTERN +int onig_new_deluxe P_((OnigRegex* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo)); +ONIG_EXTERN +void onig_free P_((OnigRegex)); +ONIG_EXTERN +void onig_free_body P_((OnigRegex)); +ONIG_EXTERN +int onig_scan(OnigRegex reg, const OnigUChar* str, const OnigUChar* end, OnigRegion* region, OnigOptionType option, int (*scan_callback)(int, int, OnigRegion*, void*), void* callback_arg); +ONIG_EXTERN +int onig_search P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option)); +ONIG_EXTERN +int onig_search_with_param P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option, OnigMatchParam* mp)); +ONIG_EXTERN +int onig_match P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option)); +ONIG_EXTERN +int onig_match_with_param P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option, OnigMatchParam* mp)); + +ONIG_EXTERN +int onig_regset_new P_((OnigRegSet** rset, int n, OnigRegex regs[])); +ONIG_EXTERN +int onig_regset_add P_((OnigRegSet* set, OnigRegex reg)); +ONIG_EXTERN +int onig_regset_replace P_((OnigRegSet* set, int at, OnigRegex reg)); +ONIG_EXTERN +void onig_regset_free P_((OnigRegSet* set)); +ONIG_EXTERN +int onig_regset_number_of_regex P_((OnigRegSet* set)); +ONIG_EXTERN +OnigRegex onig_regset_get_regex P_((OnigRegSet* set, int at)); +ONIG_EXTERN +OnigRegion* onig_regset_get_region P_((OnigRegSet* set, int at)); +ONIG_EXTERN +int onig_regset_search P_((OnigRegSet* set, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegSetLead lead, OnigOptionType option, int* rmatch_pos)); +ONIG_EXTERN +int onig_regset_search_with_param P_((OnigRegSet* set, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegSetLead lead, OnigOptionType option, OnigMatchParam* mps[], int* rmatch_pos)); + +ONIG_EXTERN +OnigRegion* onig_region_new P_((void)); +ONIG_EXTERN +void onig_region_init P_((OnigRegion* region)); +ONIG_EXTERN +void onig_region_free P_((OnigRegion* region, int free_self)); +ONIG_EXTERN +void onig_region_copy P_((OnigRegion* to, OnigRegion* from)); +ONIG_EXTERN +void onig_region_clear P_((OnigRegion* region)); +ONIG_EXTERN +int onig_region_resize P_((OnigRegion* region, int n)); +ONIG_EXTERN +int onig_region_set P_((OnigRegion* region, int at, int beg, int end)); +ONIG_EXTERN +int onig_name_to_group_numbers P_((OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, int** nums)); +ONIG_EXTERN +int onig_name_to_backref_number P_((OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, OnigRegion *region)); +ONIG_EXTERN +int onig_foreach_name P_((OnigRegex reg, int (*func)(const OnigUChar*, const OnigUChar*,int,int*,OnigRegex,void*), void* arg)); +ONIG_EXTERN +int onig_number_of_names P_((OnigRegex reg)); +ONIG_EXTERN +int onig_number_of_captures P_((OnigRegex reg)); +ONIG_EXTERN +int onig_number_of_capture_histories P_((OnigRegex reg)); +ONIG_EXTERN +OnigCaptureTreeNode* onig_get_capture_tree P_((OnigRegion* region)); +ONIG_EXTERN +int onig_capture_tree_traverse P_((OnigRegion* region, int at, int(*callback_func)(int,int,int,int,int,void*), void* arg)); +ONIG_EXTERN +int onig_noname_group_capture_is_active P_((OnigRegex reg)); +ONIG_EXTERN +OnigEncoding onig_get_encoding P_((OnigRegex reg)); +ONIG_EXTERN +OnigOptionType onig_get_options P_((OnigRegex reg)); +ONIG_EXTERN +OnigCaseFoldType onig_get_case_fold_flag P_((OnigRegex reg)); +ONIG_EXTERN +OnigSyntaxType* onig_get_syntax P_((OnigRegex reg)); +ONIG_EXTERN +int onig_set_default_syntax P_((OnigSyntaxType* syntax)); +ONIG_EXTERN +void onig_copy_syntax P_((OnigSyntaxType* to, OnigSyntaxType* from)); +ONIG_EXTERN +unsigned int onig_get_syntax_op P_((OnigSyntaxType* syntax)); +ONIG_EXTERN +unsigned int onig_get_syntax_op2 P_((OnigSyntaxType* syntax)); +ONIG_EXTERN +unsigned int onig_get_syntax_behavior P_((OnigSyntaxType* syntax)); +ONIG_EXTERN +OnigOptionType onig_get_syntax_options P_((OnigSyntaxType* syntax)); +ONIG_EXTERN +void onig_set_syntax_op P_((OnigSyntaxType* syntax, unsigned int op)); +ONIG_EXTERN +void onig_set_syntax_op2 P_((OnigSyntaxType* syntax, unsigned int op2)); +ONIG_EXTERN +void onig_set_syntax_behavior P_((OnigSyntaxType* syntax, unsigned int behavior)); +ONIG_EXTERN +void onig_set_syntax_options P_((OnigSyntaxType* syntax, OnigOptionType options)); +ONIG_EXTERN +int onig_set_meta_char P_((OnigSyntaxType* syntax, unsigned int what, OnigCodePoint code)); +ONIG_EXTERN +void onig_copy_encoding P_((OnigEncoding to, OnigEncoding from)); +ONIG_EXTERN +OnigCaseFoldType onig_get_default_case_fold_flag P_((void)); +ONIG_EXTERN +int onig_set_default_case_fold_flag P_((OnigCaseFoldType case_fold_flag)); +ONIG_EXTERN +unsigned int onig_get_match_stack_limit_size P_((void)); +ONIG_EXTERN +int onig_set_match_stack_limit_size P_((unsigned int size)); +ONIG_EXTERN +unsigned long onig_get_retry_limit_in_match P_((void)); +ONIG_EXTERN +int onig_set_retry_limit_in_match P_((unsigned long n)); +ONIG_EXTERN +unsigned long onig_get_retry_limit_in_search P_((void)); +ONIG_EXTERN +int onig_set_retry_limit_in_search P_((unsigned long n)); +ONIG_EXTERN +unsigned int onig_get_parse_depth_limit P_((void)); +ONIG_EXTERN +int onig_set_capture_num_limit P_((int num)); +ONIG_EXTERN +int onig_set_parse_depth_limit P_((unsigned int depth)); +ONIG_EXTERN +unsigned long onig_get_subexp_call_limit_in_search P_((void)); +ONIG_EXTERN +int onig_set_subexp_call_limit_in_search P_((unsigned long n)); +ONIG_EXTERN +int onig_get_subexp_call_max_nest_level P_((void)); +ONIG_EXTERN +int onig_set_subexp_call_max_nest_level P_((int level)); +ONIG_EXTERN +int onig_unicode_define_user_property P_((const char* name, OnigCodePoint* ranges)); +ONIG_EXTERN +int onig_end P_((void)); +ONIG_EXTERN +const char* onig_version P_((void)); +ONIG_EXTERN +const char* onig_copyright P_((void)); + +/* for callback each match */ +ONIG_EXTERN +OnigCallbackEachMatchFunc onig_get_callback_each_match P_((void)); +ONIG_EXTERN +int onig_set_callback_each_match P_((OnigCallbackEachMatchFunc f)); + +/* for OnigMatchParam */ +ONIG_EXTERN +OnigMatchParam* onig_new_match_param P_((void)); +ONIG_EXTERN +void onig_free_match_param P_((OnigMatchParam* p)); +ONIG_EXTERN +void onig_free_match_param_content P_((OnigMatchParam* p)); +ONIG_EXTERN +int onig_initialize_match_param P_((OnigMatchParam* mp)); +ONIG_EXTERN +int onig_set_match_stack_limit_size_of_match_param P_((OnigMatchParam* param, unsigned int limit)); +ONIG_EXTERN +int onig_set_retry_limit_in_match_of_match_param P_((OnigMatchParam* param, unsigned long limit)); +ONIG_EXTERN +int onig_set_retry_limit_in_search_of_match_param P_((OnigMatchParam* param, unsigned long limit)); +ONIG_EXTERN +int onig_set_progress_callout_of_match_param P_((OnigMatchParam* param, OnigCalloutFunc f)); +ONIG_EXTERN +int onig_set_retraction_callout_of_match_param P_((OnigMatchParam* param, OnigCalloutFunc f)); +ONIG_EXTERN +int onig_set_callout_user_data_of_match_param P_((OnigMatchParam* param, void* user_data)); + +/* for callout functions */ +ONIG_EXTERN +OnigCalloutFunc onig_get_progress_callout P_((void)); +ONIG_EXTERN +int onig_set_progress_callout P_((OnigCalloutFunc f)); +ONIG_EXTERN +OnigCalloutFunc onig_get_retraction_callout P_((void)); +ONIG_EXTERN +int onig_set_retraction_callout P_((OnigCalloutFunc f)); +ONIG_EXTERN +int onig_set_callout_of_name P_((OnigEncoding enc, OnigCalloutType type, OnigUChar* name, OnigUChar* name_end, int callout_in, OnigCalloutFunc callout, OnigCalloutFunc end_callout, int arg_num, unsigned int arg_types[], int optional_arg_num, OnigValue opt_defaults[])); +ONIG_EXTERN +OnigUChar* onig_get_callout_name_by_name_id P_((int id)); +ONIG_EXTERN +int onig_get_callout_num_by_tag P_((OnigRegex reg, const OnigUChar* tag, const OnigUChar* tag_end)); +ONIG_EXTERN +int onig_get_callout_data_by_tag P_((OnigRegex reg, OnigMatchParam* mp, const OnigUChar* tag, const OnigUChar* tag_end, int slot, OnigType* type, OnigValue* val)); +ONIG_EXTERN +int onig_set_callout_data_by_tag P_((OnigRegex reg, OnigMatchParam* mp, const OnigUChar* tag, const OnigUChar* tag_end, int slot, OnigType type, OnigValue* val)); +ONIG_EXTERN +int onig_get_callout_data_by_tag_dont_clear_old P_((OnigRegex reg, OnigMatchParam* mp, const OnigUChar* tag, const OnigUChar* tag_end, int slot, OnigType* type, OnigValue* val)); + +/* used in callout functions */ +ONIG_EXTERN +int onig_get_callout_num_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +OnigCalloutIn onig_get_callout_in_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +int onig_get_name_id_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +const OnigUChar* onig_get_contents_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +const OnigUChar* onig_get_contents_end_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +int onig_get_args_num_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +int onig_get_passed_args_num_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +int onig_get_arg_by_callout_args P_((OnigCalloutArgs* args, int index, OnigType* type, OnigValue* val)); +ONIG_EXTERN +const OnigUChar* onig_get_string_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +const OnigUChar* onig_get_string_end_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +const OnigUChar* onig_get_start_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +const OnigUChar* onig_get_right_range_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +const OnigUChar* onig_get_current_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +OnigRegex onig_get_regex_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +unsigned long onig_get_retry_counter_by_callout_args P_((OnigCalloutArgs* args)); +ONIG_EXTERN +int onig_callout_tag_is_exist_at_callout_num P_((OnigRegex reg, int callout_num)); +ONIG_EXTERN +const OnigUChar* onig_get_callout_tag_start P_((OnigRegex reg, int callout_num)); +ONIG_EXTERN +const OnigUChar* onig_get_callout_tag_end P_((OnigRegex reg, int callout_num)); +ONIG_EXTERN +int onig_get_callout_data_dont_clear_old P_((OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val)); +ONIG_EXTERN +int onig_get_callout_data_by_callout_args_self_dont_clear_old P_((OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val)); +ONIG_EXTERN +int onig_get_callout_data P_((OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val)); +ONIG_EXTERN +int onig_get_callout_data_by_callout_args P_((OnigCalloutArgs* args, int callout_num, int slot, OnigType* type, OnigValue* val)); +ONIG_EXTERN +int onig_get_callout_data_by_callout_args_self P_((OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val)); +ONIG_EXTERN +int onig_set_callout_data P_((OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType type, OnigValue* val)); +ONIG_EXTERN +int onig_set_callout_data_by_callout_args P_((OnigCalloutArgs* args, int callout_num, int slot, OnigType type, OnigValue* val)); +ONIG_EXTERN +int onig_set_callout_data_by_callout_args_self P_((OnigCalloutArgs* args, int slot, OnigType type, OnigValue* val)); +ONIG_EXTERN +int onig_get_capture_range_in_callout P_((OnigCalloutArgs* args, int mem_num, int* begin, int* end)); +ONIG_EXTERN +int onig_get_used_stack_size_in_callout P_((OnigCalloutArgs* args, int* used_num, int* used_bytes)); + +/* builtin callout functions */ +ONIG_EXTERN +int onig_builtin_fail P_((OnigCalloutArgs* args, void* user_data)); +ONIG_EXTERN +int onig_builtin_mismatch P_((OnigCalloutArgs* args, void* user_data)); +ONIG_EXTERN +int onig_builtin_error P_((OnigCalloutArgs* args, void* user_data)); +ONIG_EXTERN +int onig_builtin_skip P_((OnigCalloutArgs* args, void* user_data)); +ONIG_EXTERN +int onig_builtin_count P_((OnigCalloutArgs* args, void* user_data)); +ONIG_EXTERN +int onig_builtin_total_count P_((OnigCalloutArgs* args, void* user_data)); +ONIG_EXTERN +int onig_builtin_max P_((OnigCalloutArgs* args, void* user_data)); +ONIG_EXTERN +int onig_builtin_cmp P_((OnigCalloutArgs* args, void* user_data)); + +ONIG_EXTERN +int onig_setup_builtin_monitors_by_ascii_encoded_name P_((void* fp)); + +#ifdef __cplusplus +} +#endif + +#endif /* ONIGURUMA_H */ diff --git a/thirdparty/oniguruma/regcomp.c b/thirdparty/oniguruma/regcomp.c new file mode 100644 index 000000000..ac65e09b6 --- /dev/null +++ b/thirdparty/oniguruma/regcomp.c @@ -0,0 +1,8589 @@ +/********************************************************************** + regcomp.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regparse.h" + +#define OPS_INIT_SIZE 8 + +#define ND_IS_REAL_IGNORECASE(node) \ + (ND_IS_IGNORECASE(node) && !ND_STRING_IS_CRUDE(node)) + +typedef struct { + OnigLen min; + OnigLen max; +} MinMaxLen; + +typedef struct { + OnigLen min; + OnigLen max; + int min_is_sure; +} MinMaxCharLen; + +OnigCaseFoldType OnigDefaultCaseFoldFlag = ONIGENC_CASE_FOLD_MIN; + +static OnigLen node_min_byte_len(Node* node, ParseEnv* env); + +static int +ops_init(regex_t* reg, int init_alloc_size) +{ + Operation* p; + size_t size; + + if (init_alloc_size <= 0) + return ONIGERR_PARSER_BUG; + + size = sizeof(Operation) * init_alloc_size; + p = (Operation* )xrealloc(reg->ops, size); + CHECK_NULL_RETURN_MEMERR(p); + reg->ops = p; +#ifdef USE_DIRECT_THREADED_CODE + { + enum OpCode* cp; + size = sizeof(enum OpCode) * init_alloc_size; + cp = (enum OpCode* )xrealloc(reg->ocs, size); + CHECK_NULL_RETURN_MEMERR(cp); + reg->ocs = cp; + } +#endif + + reg->ops_curr = 0; /* !!! not yet done ops_new() */ + reg->ops_alloc = init_alloc_size; + reg->ops_used = 0; + + return ONIG_NORMAL; +} + +static int +ops_resize(regex_t* reg, int n) +{ +#ifdef USE_DIRECT_THREADED_CODE + enum OpCode* cp; +#endif + Operation* p; + size_t size; + + if (n == reg->ops_alloc) return ONIG_NORMAL; + if (n <= 0) return ONIGERR_PARSER_BUG; + + size = sizeof(Operation) * n; + p = (Operation* )xrealloc(reg->ops, size); + CHECK_NULL_RETURN_MEMERR(p); + reg->ops = p; + +#ifdef USE_DIRECT_THREADED_CODE + size = sizeof(enum OpCode) * n; + cp = (enum OpCode* )xrealloc(reg->ocs, size); + CHECK_NULL_RETURN_MEMERR(cp); + reg->ocs = cp; +#endif + + reg->ops_alloc = n; + if (reg->ops_used == 0) + reg->ops_curr = 0; + else + reg->ops_curr = reg->ops + (reg->ops_used - 1); + + return ONIG_NORMAL; +} + +static int +ops_new(regex_t* reg) +{ + if (reg->ops_used >= reg->ops_alloc) { + int r = ops_resize(reg, reg->ops_alloc << 1); + if (r != ONIG_NORMAL) return r; + } + + reg->ops_curr = reg->ops + reg->ops_used; + reg->ops_used++; + + xmemset(reg->ops_curr, 0, sizeof(Operation)); + return ONIG_NORMAL; +} + +static int +is_in_string_pool(regex_t* reg, UChar* s) +{ + return (s >= reg->string_pool && s < reg->string_pool_end); +} + +static void +ops_free(regex_t* reg) +{ + int i; + + if (IS_NULL(reg->ops)) return ; + + for (i = 0; i < (int )reg->ops_used; i++) { + enum OpCode opcode; + Operation* op; + + op = reg->ops + i; + +#ifdef USE_DIRECT_THREADED_CODE + opcode = *(reg->ocs + i); +#else + opcode = op->opcode; +#endif + + switch (opcode) { + case OP_STR_MBN: + if (! is_in_string_pool(reg, op->exact_len_n.s)) + xfree(op->exact_len_n.s); + break; + case OP_STR_N: case OP_STR_MB2N: case OP_STR_MB3N: + if (! is_in_string_pool(reg, op->exact_n.s)) + xfree(op->exact_n.s); + break; + case OP_STR_1: case OP_STR_2: case OP_STR_3: case OP_STR_4: + case OP_STR_5: case OP_STR_MB2N1: case OP_STR_MB2N2: + case OP_STR_MB2N3: + break; + + case OP_CCLASS_NOT: case OP_CCLASS: + xfree(op->cclass.bsp); + break; + + case OP_CCLASS_MB_NOT: case OP_CCLASS_MB: + xfree(op->cclass_mb.mb); + break; + case OP_CCLASS_MIX_NOT: case OP_CCLASS_MIX: + xfree(op->cclass_mix.mb); + xfree(op->cclass_mix.bsp); + break; + + case OP_BACKREF1: case OP_BACKREF2: case OP_BACKREF_N: case OP_BACKREF_N_IC: + break; + case OP_BACKREF_MULTI: case OP_BACKREF_MULTI_IC: + case OP_BACKREF_CHECK: +#ifdef USE_BACKREF_WITH_LEVEL + case OP_BACKREF_WITH_LEVEL: + case OP_BACKREF_WITH_LEVEL_IC: + case OP_BACKREF_CHECK_WITH_LEVEL: +#endif + if (op->backref_general.num != 1) + xfree(op->backref_general.ns); + break; + + default: + break; + } + } + + xfree(reg->ops); +#ifdef USE_DIRECT_THREADED_CODE + xfree(reg->ocs); + reg->ocs = 0; +#endif + + reg->ops = 0; + reg->ops_curr = 0; + reg->ops_alloc = 0; + reg->ops_used = 0; +} + +static int +ops_calc_size_of_string_pool(regex_t* reg) +{ + int i; + int total; + + if (IS_NULL(reg->ops)) return 0; + + total = 0; + for (i = 0; i < (int )reg->ops_used; i++) { + enum OpCode opcode; + Operation* op; + + op = reg->ops + i; +#ifdef USE_DIRECT_THREADED_CODE + opcode = *(reg->ocs + i); +#else + opcode = op->opcode; +#endif + + switch (opcode) { + case OP_STR_MBN: + total += op->exact_len_n.len * op->exact_len_n.n; + break; + case OP_STR_N: + case OP_STR_MB2N: + total += op->exact_n.n * 2; + break; + case OP_STR_MB3N: + total += op->exact_n.n * 3; + break; + + default: + break; + } + } + + return total; +} + +static int +ops_make_string_pool(regex_t* reg) +{ + int i; + int len; + int size; + UChar* pool; + UChar* curr; + + size = ops_calc_size_of_string_pool(reg); + if (size <= 0) { + return 0; + } + + curr = pool = (UChar* )xmalloc((size_t )size); + CHECK_NULL_RETURN_MEMERR(pool); + + for (i = 0; i < (int )reg->ops_used; i++) { + enum OpCode opcode; + Operation* op; + + op = reg->ops + i; +#ifdef USE_DIRECT_THREADED_CODE + opcode = *(reg->ocs + i); +#else + opcode = op->opcode; +#endif + + switch (opcode) { + case OP_STR_MBN: + len = op->exact_len_n.len * op->exact_len_n.n; + xmemcpy(curr, op->exact_len_n.s, len); + xfree(op->exact_len_n.s); + op->exact_len_n.s = curr; + curr += len; + break; + case OP_STR_N: + len = op->exact_n.n; + copy: + xmemcpy(curr, op->exact_n.s, len); + xfree(op->exact_n.s); + op->exact_n.s = curr; + curr += len; + break; + case OP_STR_MB2N: + len = op->exact_n.n * 2; + goto copy; + break; + case OP_STR_MB3N: + len = op->exact_n.n * 3; + goto copy; + break; + + default: + break; + } + } + + reg->string_pool = pool; + reg->string_pool_end = pool + size; + return 0; +} + +extern OnigCaseFoldType +onig_get_default_case_fold_flag(void) +{ + return OnigDefaultCaseFoldFlag; +} + +extern int +onig_set_default_case_fold_flag(OnigCaseFoldType case_fold_flag) +{ + OnigDefaultCaseFoldFlag = case_fold_flag; + return 0; +} + +static int +len_multiply_cmp(OnigLen x, int y, OnigLen v) +{ + if (x == 0 || y == 0) return -1; + + if (x < INFINITE_LEN / y) { + OnigLen xy = x * (OnigLen )y; + if (xy > v) return 1; + else { + if (xy == v) return 0; + else return -1; + } + } + else + return v == INFINITE_LEN ? 0 : 1; +} + +extern int +onig_positive_int_multiply(int x, int y) +{ + if (x == 0 || y == 0) return 0; + + if (x < ONIG_INT_MAX / y) + return x * y; + else + return -1; +} + + +static void +node_swap(Node* a, Node* b) +{ + Node c; + + c = *a; *a = *b; *b = c; + + if (ND_TYPE(a) == ND_STRING) { + StrNode* sn = STR_(a); + if (sn->capacity == 0) { + int len = (int )(sn->end - sn->s); + sn->s = sn->buf; + sn->end = sn->s + len; + } + } + + if (ND_TYPE(b) == ND_STRING) { + StrNode* sn = STR_(b); + if (sn->capacity == 0) { + int len = (int )(sn->end - sn->s); + sn->s = sn->buf; + sn->end = sn->s + len; + } + } +} + +static int +node_list_len(Node* list) +{ + int len; + + len = 1; + while (IS_NOT_NULL(ND_CDR(list))) { + list = ND_CDR(list); + len++; + } + + return len; +} + +static Node* +node_list_add(Node* list, Node* x) +{ + Node *n; + + n = onig_node_new_list(x, NULL); + if (IS_NULL(n)) return NULL_NODE; + + if (IS_NOT_NULL(list)) { + while (IS_NOT_NULL(ND_CDR(list))) + list = ND_CDR(list); + + ND_CDR(list) = n; + } + + return n; +} + +static int +node_str_node_cat(Node* node, Node* add) +{ + int r; + + if (ND_STATUS(node) != ND_STATUS(add)) + return ONIGERR_TYPE_BUG; + + if (STR_(node)->flag != STR_(add)->flag) + return ONIGERR_TYPE_BUG; + + r = onig_node_str_cat(node, STR_(add)->s, STR_(add)->end); + if (r != 0) return r; + + return 0; +} + +static void +node_conv_to_str_node(Node* node, Node* ref_node) +{ + xmemset(node, 0, sizeof(*node)); + ND_SET_TYPE(node, ND_STRING); + ND_STATUS(node) = ND_STATUS(ref_node); + + STR_(node)->flag = STR_(ref_node)->flag; + STR_(node)->s = STR_(node)->buf; + STR_(node)->end = STR_(node)->buf; + STR_(node)->capacity = 0; +} + +static OnigLen +distance_add(OnigLen d1, OnigLen d2) +{ + if (d1 == INFINITE_LEN || d2 == INFINITE_LEN) + return INFINITE_LEN; + else { + if (d1 <= INFINITE_LEN - d2) return d1 + d2; + else return INFINITE_LEN; + } +} + +static OnigLen +distance_multiply(OnigLen d, int m) +{ + if (m == 0) return 0; + + if (d < INFINITE_LEN / m) + return d * m; + else + return INFINITE_LEN; +} + +static int +bitset_is_empty(BitSetRef bs) +{ + int i; + + for (i = 0; i < (int )BITSET_REAL_SIZE; i++) { + if (bs[i] != 0) return 0; + } + return 1; +} + +#ifdef USE_CALL + +static int +unset_addr_list_init(UnsetAddrList* list, int size) +{ + UnsetAddr* p = (UnsetAddr* )xmalloc(sizeof(UnsetAddr)* size); + CHECK_NULL_RETURN_MEMERR(p); + + list->num = 0; + list->alloc = size; + list->us = p; + return 0; +} + +static void +unset_addr_list_end(UnsetAddrList* list) +{ + if (IS_NOT_NULL(list->us)) + xfree(list->us); +} + +static int +unset_addr_list_add(UnsetAddrList* list, int offset, struct _Node* node) +{ + UnsetAddr* p; + int size; + + if (list->num >= list->alloc) { + size = list->alloc * 2; + p = (UnsetAddr* )xrealloc(list->us, sizeof(UnsetAddr) * size); + CHECK_NULL_RETURN_MEMERR(p); + list->alloc = size; + list->us = p; + } + + list->us[list->num].offset = offset; + list->us[list->num].target = node; + list->num++; + return 0; +} +#endif /* USE_CALL */ + +enum CharLenReturnType { + CHAR_LEN_NORMAL = 0, /* fixed or variable */ + CHAR_LEN_TOP_ALT_FIXED = 1 +}; + +static int +mmcl_fixed(MinMaxCharLen* c) +{ + return (c->min == c->max && c->min != INFINITE_LEN); +} + +static void +mmcl_set(MinMaxCharLen* l, OnigLen len) +{ + l->min = len; + l->max = len; + l->min_is_sure = TRUE; +} + +static void +mmcl_set_min_max(MinMaxCharLen* l, OnigLen min, OnigLen max, int min_is_sure) +{ + l->min = min; + l->max = max; + l->min_is_sure = min_is_sure; +} + +static void +mmcl_add(MinMaxCharLen* to, MinMaxCharLen* add) +{ + to->min = distance_add(to->min, add->min); + to->max = distance_add(to->max, add->max); + + to->min_is_sure = add->min_is_sure != FALSE && to->min_is_sure != FALSE; +} + +static void +mmcl_multiply(MinMaxCharLen* to, int m) +{ + to->min = distance_multiply(to->min, m); + to->max = distance_multiply(to->max, m); +} + +static void +mmcl_repeat_range_multiply(MinMaxCharLen* to, int mlow, int mhigh) +{ + to->min = distance_multiply(to->min, mlow); + + if (IS_INFINITE_REPEAT(mhigh)) + to->max = INFINITE_LEN; + else + to->max = distance_multiply(to->max, mhigh); +} + +static void +mmcl_alt_merge(MinMaxCharLen* to, MinMaxCharLen* alt) +{ + if (to->min > alt->min) { + to->min = alt->min; + to->min_is_sure = alt->min_is_sure; + } + else if (to->min == alt->min) { + if (alt->min_is_sure != FALSE) + to->min_is_sure = TRUE; + } + + if (to->max < alt->max) to->max = alt->max; +} + +#ifndef ONIG_DONT_OPTIMIZE + +static int +mml_is_equal(MinMaxLen* a, MinMaxLen* b) +{ + return a->min == b->min && a->max == b->max; +} + +static void +mml_set_min_max(MinMaxLen* l, OnigLen min, OnigLen max) +{ + l->min = min; + l->max = max; +} + +static void +mml_clear(MinMaxLen* l) +{ + l->min = l->max = 0; +} + +static void +mml_copy(MinMaxLen* to, MinMaxLen* from) +{ + to->min = from->min; + to->max = from->max; +} + +static void +mml_add(MinMaxLen* to, MinMaxLen* add) +{ + to->min = distance_add(to->min, add->min); + to->max = distance_add(to->max, add->max); +} + +static void +mml_alt_merge(MinMaxLen* to, MinMaxLen* alt) +{ + if (to->min > alt->min) to->min = alt->min; + if (to->max < alt->max) to->max = alt->max; +} + +#endif + +/* fixed size pattern node only */ +static int +node_char_len1(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env, + int level) +{ + MinMaxCharLen tci; + int r = CHAR_LEN_NORMAL; + + level++; + + switch (ND_TYPE(node)) { + case ND_LIST: + { + int first = TRUE; + do { + r = node_char_len1(ND_CAR(node), reg, &tci, env, level); + if (r < 0) break; + if (first == TRUE) { + *ci = tci; + first = FALSE; + } + else + mmcl_add(ci, &tci); + } while (IS_NOT_NULL(node = ND_CDR(node))); + } + break; + + case ND_ALT: + { + int fixed; + + r = node_char_len1(ND_CAR(node), reg, ci, env, level); + if (r < 0) break; + + fixed = TRUE; + while (IS_NOT_NULL(node = ND_CDR(node))) { + r = node_char_len1(ND_CAR(node), reg, &tci, env, level); + if (r < 0) break; + if (! mmcl_fixed(&tci)) + fixed = FALSE; + mmcl_alt_merge(ci, &tci); + } + if (r < 0) break; + + r = CHAR_LEN_NORMAL; + if (mmcl_fixed(ci)) break; + + if (fixed == TRUE && level == 1) { + r = CHAR_LEN_TOP_ALT_FIXED; + } + } + break; + + case ND_STRING: + { + OnigLen clen; + StrNode* sn = STR_(node); + UChar *s = sn->s; + + if (ND_IS_REAL_IGNORECASE(node) && + CASE_FOLD_IS_NOT_ASCII_ONLY(env->case_fold_flag)) { + /* Such a case is possible. + ex. /(?i)(?<=\1)(a)/ + Backref node refer to capture group, but it doesn't tune yet. + */ + r = ONIGERR_INVALID_LOOK_BEHIND_PATTERN; + break; + } + + clen = 0; + while (s < sn->end) { + s += enclen(reg->enc, s); + clen = distance_add(clen, 1); + } + mmcl_set(ci, clen); + } + break; + + case ND_QUANT: + { + QuantNode* qn = QUANT_(node); + + if (qn->lower == qn->upper) { + if (qn->upper == 0) { + mmcl_set(ci, 0); + } + else { + r = node_char_len1(ND_BODY(node), reg, ci, env, level); + if (r < 0) break; + mmcl_multiply(ci, qn->lower); + } + } + else { + r = node_char_len1(ND_BODY(node), reg, ci, env, level); + if (r < 0) break; + mmcl_repeat_range_multiply(ci, qn->lower, qn->upper); + } + } + break; + +#ifdef USE_CALL + case ND_CALL: + if (ND_IS_RECURSION(node)) + mmcl_set_min_max(ci, 0, INFINITE_LEN, FALSE); + else + r = node_char_len1(ND_BODY(node), reg, ci, env, level); + break; +#endif + + case ND_CTYPE: + case ND_CCLASS: + mmcl_set(ci, 1); + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + switch (en->type) { + case BAG_MEMORY: + if (ND_IS_FIXED_CLEN(node)) { + mmcl_set_min_max(ci, en->min_char_len, en->max_char_len, + ND_IS_FIXED_CLEN_MIN_SURE(node)); + } + else { + if (ND_IS_MARK1(node)) { + mmcl_set_min_max(ci, 0, INFINITE_LEN, FALSE); + } + else { + ND_STATUS_ADD(node, MARK1); + r = node_char_len1(ND_BODY(node), reg, ci, env, level); + ND_STATUS_REMOVE(node, MARK1); + if (r < 0) break; + + en->min_char_len = ci->min; + en->max_char_len = ci->max; + ND_STATUS_ADD(node, FIXED_CLEN); + if (ci->min_is_sure != FALSE) + ND_STATUS_ADD(node, FIXED_CLEN_MIN_SURE); + } + } + /* can't optimize look-behind if capture exists. */ + ci->min_is_sure = FALSE; + break; + case BAG_OPTION: + case BAG_STOP_BACKTRACK: + r = node_char_len1(ND_BODY(node), reg, ci, env, level); + break; + case BAG_IF_ELSE: + { + MinMaxCharLen eci; + + r = node_char_len1(ND_BODY(node), reg, ci, env, level); + if (r < 0) break; + + if (IS_NOT_NULL(en->te.Then)) { + r = node_char_len1(en->te.Then, reg, &tci, env, level); + if (r < 0) break; + mmcl_add(ci, &tci); + } + + if (IS_NOT_NULL(en->te.Else)) { + r = node_char_len1(en->te.Else, reg, &eci, env, level); + if (r < 0) break; + } + else { + mmcl_set(&eci, 0); + } + + mmcl_alt_merge(ci, &eci); + } + break; + default: /* never come here */ + r = ONIGERR_PARSER_BUG; + break; + } + } + break; + + case ND_GIMMICK: + mmcl_set(ci, 0); + break; + + case ND_ANCHOR: + zero: + mmcl_set(ci, 0); + /* can't optimize look-behind if anchor exists. */ + ci->min_is_sure = FALSE; + break; + + case ND_BACKREF: + if (ND_IS_CHECKER(node)) + goto zero; + + if (ND_IS_RECURSION(node)) { +#ifdef USE_BACKREF_WITH_LEVEL + if (ND_IS_NEST_LEVEL(node)) { + mmcl_set_min_max(ci, 0, INFINITE_LEN, FALSE); + break; + } +#endif + + mmcl_set_min_max(ci, 0, 0, FALSE); + break; + } + + { + int i; + int* backs; + MemEnv* mem_env = PARSEENV_MEMENV(env); + BackRefNode* br = BACKREF_(node); + + backs = BACKREFS_P(br); + r = node_char_len1(mem_env[backs[0]].mem_node, reg, ci, env, level); + if (r < 0) break; + if (! mmcl_fixed(ci)) ci->min_is_sure = FALSE; + + for (i = 1; i < br->back_num; i++) { + r = node_char_len1(mem_env[backs[i]].mem_node, reg, &tci, env, level); + if (r < 0) break; + if (! mmcl_fixed(&tci)) tci.min_is_sure = FALSE; + mmcl_alt_merge(ci, &tci); + } + } + break; + + default: /* never come here */ + r = ONIGERR_PARSER_BUG; + break; + } + + return r; +} + +static int +node_char_len(Node* node, regex_t* reg, MinMaxCharLen* ci, ParseEnv* env) +{ + return node_char_len1(node, reg, ci, env, 0); +} + + +static int +add_op(regex_t* reg, int opcode) +{ + int r; + + r = ops_new(reg); + if (r != ONIG_NORMAL) return r; + +#ifdef USE_DIRECT_THREADED_CODE + *(reg->ocs + (reg->ops_curr - reg->ops)) = opcode; +#else + reg->ops_curr->opcode = opcode; +#endif + + return 0; +} + +static int compile_length_tree(Node* node, regex_t* reg, ParseEnv* env); +static int compile_tree(Node* node, regex_t* reg, ParseEnv* env); + + +#define IS_NEED_STR_LEN_OP(op) \ + ((op) == OP_STR_N || (op) == OP_STR_MB2N ||\ + (op) == OP_STR_MB3N || (op) == OP_STR_MBN) + +static int +select_str_opcode(int mb_len, int str_len) +{ + int op; + + switch (mb_len) { + case 1: + switch (str_len) { + case 1: op = OP_STR_1; break; + case 2: op = OP_STR_2; break; + case 3: op = OP_STR_3; break; + case 4: op = OP_STR_4; break; + case 5: op = OP_STR_5; break; + default: op = OP_STR_N; break; + } + break; + + case 2: + switch (str_len) { + case 1: op = OP_STR_MB2N1; break; + case 2: op = OP_STR_MB2N2; break; + case 3: op = OP_STR_MB2N3; break; + default: op = OP_STR_MB2N; break; + } + break; + + case 3: + op = OP_STR_MB3N; + break; + + default: + op = OP_STR_MBN; + break; + } + + return op; +} + +static int +is_strict_real_node(Node* node) +{ + switch (ND_TYPE(node)) { + case ND_STRING: + { + StrNode* sn = STR_(node); + return (sn->end != sn->s); + } + break; + + case ND_CCLASS: + case ND_CTYPE: + return 1; + break; + + default: + return 0; + break; + } +} + +static int +compile_quant_body_with_empty_check(QuantNode* qn, regex_t* reg, ParseEnv* env) +{ + int r; + int saved_num_empty_check; + int emptiness; + Node* body; + + body = ND_BODY((Node* )qn); + emptiness = qn->emptiness; + saved_num_empty_check = reg->num_empty_check; + + if (emptiness != BODY_IS_NOT_EMPTY) { + r = add_op(reg, OP_EMPTY_CHECK_START); + if (r != 0) return r; + COP(reg)->empty_check_start.mem = reg->num_empty_check; /* NULL CHECK ID */ + reg->num_empty_check++; + } + + r = compile_tree(body, reg, env); + if (r != 0) return r; + + if (emptiness != BODY_IS_NOT_EMPTY) { + if (emptiness == BODY_MAY_BE_EMPTY) + r = add_op(reg, OP_EMPTY_CHECK_END); + else if (emptiness == BODY_MAY_BE_EMPTY_MEM) { + if (ND_IS_EMPTY_STATUS_CHECK(qn) != 0 && qn->empty_status_mem != 0) { + r = add_op(reg, OP_EMPTY_CHECK_END_MEMST); + if (r != 0) return r; + COP(reg)->empty_check_end.empty_status_mem = qn->empty_status_mem; + } + else + r = add_op(reg, OP_EMPTY_CHECK_END); + } +#ifdef USE_CALL + else if (emptiness == BODY_MAY_BE_EMPTY_REC) { + r = add_op(reg, OP_EMPTY_CHECK_END_MEMST_PUSH); + if (r != 0) return r; + COP(reg)->empty_check_end.empty_status_mem = qn->empty_status_mem; + } +#endif + + if (r != 0) return r; + COP(reg)->empty_check_end.mem = saved_num_empty_check; /* NULL CHECK ID */ + } + return r; +} + +#ifdef USE_CALL +static int +compile_call(CallNode* node, regex_t* reg, ParseEnv* env) +{ + int r; + int offset; + + r = add_op(reg, OP_CALL); + if (r != 0) return r; + + COP(reg)->call.addr = 0; /* dummy addr. */ +#ifdef ONIG_DEBUG_MATCH_COUNTER + COP(reg)->call.called_mem = node->called_gnum; +#endif + + offset = COP_CURR_OFFSET_BYTES(reg, call.addr); + r = unset_addr_list_add(env->unset_addr_list, offset, ND_CALL_BODY(node)); + return r; +} +#endif + +static int +compile_tree_n_times(Node* node, int n, regex_t* reg, ParseEnv* env) +{ + int i, r; + + for (i = 0; i < n; i++) { + r = compile_tree(node, reg, env); + if (r != 0) return r; + } + return 0; +} + +static int +add_compile_string_length(UChar* s ARG_UNUSED, int mb_len, int str_len, + regex_t* reg ARG_UNUSED) +{ + return 1; +} + +static int +add_compile_string(UChar* s, int mb_len, int str_len, regex_t* reg) +{ + int op; + int r; + int byte_len; + UChar* p; + UChar* end; + + op = select_str_opcode(mb_len, str_len); + r = add_op(reg, op); + if (r != 0) return r; + + byte_len = mb_len * str_len; + end = s + byte_len; + + if (op == OP_STR_MBN) { + p = onigenc_strdup(reg->enc, s, end); + CHECK_NULL_RETURN_MEMERR(p); + + COP(reg)->exact_len_n.len = mb_len; + COP(reg)->exact_len_n.n = str_len; + COP(reg)->exact_len_n.s = p; + } + else if (IS_NEED_STR_LEN_OP(op)) { + p = onigenc_strdup(reg->enc, s, end); + CHECK_NULL_RETURN_MEMERR(p); + COP(reg)->exact_n.n = str_len; + COP(reg)->exact_n.s = p; + } + else { + xmemset(COP(reg)->exact.s, 0, sizeof(COP(reg)->exact.s)); + xmemcpy(COP(reg)->exact.s, s, (size_t )byte_len); + } + + return 0; +} + +static int +compile_length_string_node(Node* node, regex_t* reg) +{ + int rlen, r, len, prev_len, slen; + UChar *p, *prev; + StrNode* sn; + OnigEncoding enc = reg->enc; + + sn = STR_(node); + if (sn->end <= sn->s) + return 0; + + p = prev = sn->s; + prev_len = enclen(enc, p); + p += prev_len; + slen = 1; + rlen = 0; + + for (; p < sn->end; ) { + len = enclen(enc, p); + if (len == prev_len) { + slen++; + } + else { + r = add_compile_string_length(prev, prev_len, slen, reg); + rlen += r; + prev = p; + slen = 1; + prev_len = len; + } + p += len; + } + + r = add_compile_string_length(prev, prev_len, slen, reg); + rlen += r; + return rlen; +} + +static int +compile_length_string_crude_node(StrNode* sn, regex_t* reg) +{ + if (sn->end <= sn->s) + return 0; + + return add_compile_string_length(sn->s, 1 /* sb */, (int )(sn->end - sn->s), + reg); +} + +static int +compile_string_node(Node* node, regex_t* reg) +{ + int r, len, prev_len, slen; + UChar *p, *prev, *end; + StrNode* sn; + OnigEncoding enc = reg->enc; + + sn = STR_(node); + if (sn->end <= sn->s) + return 0; + + end = sn->end; + + p = prev = sn->s; + prev_len = enclen(enc, p); + p += prev_len; + slen = 1; + + for (; p < end; ) { + len = enclen(enc, p); + if (len == prev_len) { + slen++; + } + else { + r = add_compile_string(prev, prev_len, slen, reg); + if (r != 0) return r; + + prev = p; + slen = 1; + prev_len = len; + } + + p += len; + } + + return add_compile_string(prev, prev_len, slen, reg); +} + +static int +compile_string_crude_node(StrNode* sn, regex_t* reg) +{ + if (sn->end <= sn->s) + return 0; + + return add_compile_string(sn->s, 1 /* sb */, (int )(sn->end - sn->s), reg); +} + +static void* +set_multi_byte_cclass(BBuf* mbuf, regex_t* reg) +{ + size_t len; + void* p; + + len = (size_t )mbuf->used; + p = xmalloc(len); + if (IS_NULL(p)) return NULL; + + xmemcpy(p, mbuf->p, len); + return p; +} + +static int +compile_length_cclass_node(CClassNode* cc, regex_t* reg) +{ + return 1; +} + +static int +compile_cclass_node(CClassNode* cc, regex_t* reg) +{ + int r; + + if (IS_NULL(cc->mbuf)) { + r = add_op(reg, IS_NCCLASS_NOT(cc) ? OP_CCLASS_NOT : OP_CCLASS); + if (r != 0) return r; + + COP(reg)->cclass.bsp = xmalloc(SIZE_BITSET); + CHECK_NULL_RETURN_MEMERR(COP(reg)->cclass.bsp); + xmemcpy(COP(reg)->cclass.bsp, cc->bs, SIZE_BITSET); + } + else { + void* p; + + if (ONIGENC_MBC_MINLEN(reg->enc) > 1 || bitset_is_empty(cc->bs)) { + r = add_op(reg, IS_NCCLASS_NOT(cc) ? OP_CCLASS_MB_NOT : OP_CCLASS_MB); + if (r != 0) return r; + + p = set_multi_byte_cclass(cc->mbuf, reg); + CHECK_NULL_RETURN_MEMERR(p); + COP(reg)->cclass_mb.mb = p; + } + else { + r = add_op(reg, IS_NCCLASS_NOT(cc) ? OP_CCLASS_MIX_NOT : OP_CCLASS_MIX); + if (r != 0) return r; + + COP(reg)->cclass_mix.bsp = xmalloc(SIZE_BITSET); + CHECK_NULL_RETURN_MEMERR(COP(reg)->cclass_mix.bsp); + xmemcpy(COP(reg)->cclass_mix.bsp, cc->bs, SIZE_BITSET); + + p = set_multi_byte_cclass(cc->mbuf, reg); + CHECK_NULL_RETURN_MEMERR(p); + COP(reg)->cclass_mix.mb = p; + } + } + + return 0; +} + +static void +set_addr_in_repeat_range(regex_t* reg) +{ + int i; + + for (i = 0; i < reg->num_repeat; i++) { + RepeatRange* p = reg->repeat_range + i; + int offset = p->u.offset; + p->u.pcode = reg->ops + offset; + } +} + +static int +entry_repeat_range(regex_t* reg, int id, int lower, int upper, int ops_index) +{ +#define REPEAT_RANGE_ALLOC 4 + + RepeatRange* p; + + if (reg->repeat_range_alloc == 0) { + p = (RepeatRange* )xmalloc(sizeof(RepeatRange) * REPEAT_RANGE_ALLOC); + CHECK_NULL_RETURN_MEMERR(p); + reg->repeat_range = p; + reg->repeat_range_alloc = REPEAT_RANGE_ALLOC; + } + else if (reg->repeat_range_alloc <= id) { + int n; + n = reg->repeat_range_alloc + REPEAT_RANGE_ALLOC; + p = (RepeatRange* )xrealloc(reg->repeat_range, sizeof(RepeatRange) * n); + CHECK_NULL_RETURN_MEMERR(p); + reg->repeat_range = p; + reg->repeat_range_alloc = n; + } + else { + p = reg->repeat_range; + } + + p[id].lower = lower; + p[id].upper = (IS_INFINITE_REPEAT(upper) ? 0x7fffffff : upper); + p[id].u.offset = ops_index; + return 0; +} + +static int +compile_range_repeat_node(QuantNode* qn, int target_len, int emptiness, + regex_t* reg, ParseEnv* env) +{ + int r; + int num_repeat = reg->num_repeat++; + + r = add_op(reg, qn->greedy ? OP_REPEAT : OP_REPEAT_NG); + if (r != 0) return r; + + COP(reg)->repeat.id = num_repeat; + COP(reg)->repeat.addr = SIZE_INC + target_len + OPSIZE_REPEAT_INC; + + r = entry_repeat_range(reg, num_repeat, qn->lower, qn->upper, + COP_CURR_OFFSET(reg) + OPSIZE_REPEAT); + if (r != 0) return r; + + r = compile_quant_body_with_empty_check(qn, reg, env); + if (r != 0) return r; + + r = add_op(reg, qn->greedy ? OP_REPEAT_INC : OP_REPEAT_INC_NG); + if (r != 0) return r; + + COP(reg)->repeat_inc.id = num_repeat; + return r; +} + +static int +is_anychar_infinite_greedy(QuantNode* qn) +{ + if (qn->greedy && IS_INFINITE_REPEAT(qn->upper) && + ND_IS_ANYCHAR(ND_QUANT_BODY(qn))) + return 1; + else + return 0; +} + +#define QUANTIFIER_EXPAND_LIMIT_SIZE 10 +#define CKN_ON (ckn > 0) + +static int +compile_length_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) +{ + int len, mod_tlen; + int infinite = IS_INFINITE_REPEAT(qn->upper); + enum BodyEmptyType emptiness = qn->emptiness; + int tlen = compile_length_tree(ND_QUANT_BODY(qn), reg, env); + + if (tlen < 0) return tlen; + if (tlen == 0) return 0; + + /* anychar repeat */ + if (is_anychar_infinite_greedy(qn)) { + if (qn->lower <= 1 || + len_multiply_cmp((OnigLen )tlen, qn->lower, QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0) { + if (IS_NOT_NULL(qn->next_head_exact)) + return OPSIZE_ANYCHAR_STAR_PEEK_NEXT + tlen * qn->lower; + else + return OPSIZE_ANYCHAR_STAR + tlen * qn->lower; + } + } + + mod_tlen = tlen; + if (emptiness != BODY_IS_NOT_EMPTY) + mod_tlen += OPSIZE_EMPTY_CHECK_START + OPSIZE_EMPTY_CHECK_END; + + if (infinite && + (qn->lower <= 1 || + len_multiply_cmp(tlen, qn->lower, QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { + if (qn->lower == 1 && tlen > QUANTIFIER_EXPAND_LIMIT_SIZE) { + len = OPSIZE_JUMP; + } + else { + len = tlen * qn->lower; + } + + if (qn->greedy) { +#ifdef USE_OP_PUSH_OR_JUMP_EXACT + if (IS_NOT_NULL(qn->head_exact)) + len += OPSIZE_PUSH_OR_JUMP_EXACT1 + mod_tlen + OPSIZE_JUMP; + else +#endif + if (IS_NOT_NULL(qn->next_head_exact)) + len += OPSIZE_PUSH_IF_PEEK_NEXT + mod_tlen + OPSIZE_JUMP; + else + len += OPSIZE_PUSH + mod_tlen + OPSIZE_JUMP; + } + else + len += OPSIZE_JUMP + mod_tlen + OPSIZE_PUSH; + } + else if (qn->upper == 0) { + if (qn->include_referred != 0) { /* /(?..){0}/ */ + len = OPSIZE_JUMP + tlen; + } + else + len = 0; + } + else if (!infinite && qn->greedy && + (qn->upper == 1 || + len_multiply_cmp((OnigLen )tlen + OPSIZE_PUSH, qn->upper, + QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { + len = tlen * qn->lower; + len += (OPSIZE_PUSH + tlen) * (qn->upper - qn->lower); + } + else if (!qn->greedy && qn->upper == 1 && qn->lower == 0) { /* '??' */ + len = OPSIZE_PUSH + OPSIZE_JUMP + tlen; + } + else { + len = OPSIZE_REPEAT_INC + mod_tlen + OPSIZE_REPEAT; + } + + return len; +} + +static int +compile_quantifier_node(QuantNode* qn, regex_t* reg, ParseEnv* env) +{ + int i, r, mod_tlen; + int infinite = IS_INFINITE_REPEAT(qn->upper); + enum BodyEmptyType emptiness = qn->emptiness; + int tlen = compile_length_tree(ND_QUANT_BODY(qn), reg, env); + + if (tlen < 0) return tlen; + if (tlen == 0) return 0; + + if (is_anychar_infinite_greedy(qn) && + (qn->lower <= 1 || + len_multiply_cmp((OnigLen )tlen, qn->lower, + QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { + r = compile_tree_n_times(ND_QUANT_BODY(qn), qn->lower, reg, env); + if (r != 0) return r; + if (IS_NOT_NULL(qn->next_head_exact)) { + r = add_op(reg, ND_IS_MULTILINE(ND_QUANT_BODY(qn)) ? + OP_ANYCHAR_ML_STAR_PEEK_NEXT : OP_ANYCHAR_STAR_PEEK_NEXT); + if (r != 0) return r; + + COP(reg)->anychar_star_peek_next.c = STR_(qn->next_head_exact)->s[0]; + return 0; + } + else { + r = add_op(reg, ND_IS_MULTILINE(ND_QUANT_BODY(qn)) ? + OP_ANYCHAR_ML_STAR : OP_ANYCHAR_STAR); + return r; + } + } + + mod_tlen = tlen; + if (emptiness != BODY_IS_NOT_EMPTY) + mod_tlen += OPSIZE_EMPTY_CHECK_START + OPSIZE_EMPTY_CHECK_END; + + if (infinite && + (qn->lower <= 1 || + len_multiply_cmp((OnigLen )tlen, qn->lower, + QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { + int addr; + + if (qn->lower == 1 && tlen > QUANTIFIER_EXPAND_LIMIT_SIZE) { + r = add_op(reg, OP_JUMP); + if (r != 0) return r; + if (qn->greedy) { +#ifdef USE_OP_PUSH_OR_JUMP_EXACT + if (IS_NOT_NULL(qn->head_exact)) + COP(reg)->jump.addr = OPSIZE_PUSH_OR_JUMP_EXACT1 + SIZE_INC; + else +#endif + if (IS_NOT_NULL(qn->next_head_exact)) + COP(reg)->jump.addr = OPSIZE_PUSH_IF_PEEK_NEXT + SIZE_INC; + else + COP(reg)->jump.addr = OPSIZE_PUSH + SIZE_INC; + } + else { + COP(reg)->jump.addr = OPSIZE_JUMP + SIZE_INC; + } + } + else { + r = compile_tree_n_times(ND_QUANT_BODY(qn), qn->lower, reg, env); + if (r != 0) return r; + } + + if (qn->greedy) { +#ifdef USE_OP_PUSH_OR_JUMP_EXACT + if (IS_NOT_NULL(qn->head_exact)) { + r = add_op(reg, OP_PUSH_OR_JUMP_EXACT1); + if (r != 0) return r; + COP(reg)->push_or_jump_exact1.addr = SIZE_INC + mod_tlen + OPSIZE_JUMP; + COP(reg)->push_or_jump_exact1.c = STR_(qn->head_exact)->s[0]; + + r = compile_quant_body_with_empty_check(qn, reg, env); + if (r != 0) return r; + + addr = -(mod_tlen + (int )OPSIZE_PUSH_OR_JUMP_EXACT1); + } + else +#endif + if (IS_NOT_NULL(qn->next_head_exact)) { + r = add_op(reg, OP_PUSH_IF_PEEK_NEXT); + if (r != 0) return r; + COP(reg)->push_if_peek_next.addr = SIZE_INC + mod_tlen + OPSIZE_JUMP; + COP(reg)->push_if_peek_next.c = STR_(qn->next_head_exact)->s[0]; + + r = compile_quant_body_with_empty_check(qn, reg, env); + if (r != 0) return r; + + addr = -(mod_tlen + (int )OPSIZE_PUSH_IF_PEEK_NEXT); + } + else { + r = add_op(reg, OP_PUSH); + if (r != 0) return r; + COP(reg)->push.addr = SIZE_INC + mod_tlen + OPSIZE_JUMP; + + r = compile_quant_body_with_empty_check(qn, reg, env); + if (r != 0) return r; + + addr = -(mod_tlen + (int )OPSIZE_PUSH); + } + + r = add_op(reg, OP_JUMP); + if (r != 0) return r; + COP(reg)->jump.addr = addr; + } + else { + r = add_op(reg, OP_JUMP); + if (r != 0) return r; + COP(reg)->jump.addr = mod_tlen + SIZE_INC; + + r = compile_quant_body_with_empty_check(qn, reg, env); + if (r != 0) return r; + + r = add_op(reg, OP_PUSH); + if (r != 0) return r; + COP(reg)->push.addr = -mod_tlen; + } + } + else if (qn->upper == 0) { + if (qn->include_referred != 0) { /* /(?..){0}/ */ + r = add_op(reg, OP_JUMP); + if (r != 0) return r; + COP(reg)->jump.addr = tlen + SIZE_INC; + + r = compile_tree(ND_QUANT_BODY(qn), reg, env); + } + else { + /* Nothing output */ + r = 0; + } + } + else if (! infinite && qn->greedy && + (qn->upper == 1 || + len_multiply_cmp((OnigLen )tlen + OPSIZE_PUSH, qn->upper, + QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { + int n = qn->upper - qn->lower; + + r = compile_tree_n_times(ND_QUANT_BODY(qn), qn->lower, reg, env); + if (r != 0) return r; + + for (i = 0; i < n; i++) { + int v = onig_positive_int_multiply(n - i, tlen + OPSIZE_PUSH); + if (v < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; + + r = add_op(reg, OP_PUSH); + if (r != 0) return r; + COP(reg)->push.addr = v; + + r = compile_tree(ND_QUANT_BODY(qn), reg, env); + if (r != 0) return r; + } + } + else if (! qn->greedy && qn->upper == 1 && qn->lower == 0) { /* '??' */ + r = add_op(reg, OP_PUSH); + if (r != 0) return r; + COP(reg)->push.addr = SIZE_INC + OPSIZE_JUMP; + + r = add_op(reg, OP_JUMP); + if (r != 0) return r; + COP(reg)->jump.addr = tlen + SIZE_INC; + + r = compile_tree(ND_QUANT_BODY(qn), reg, env); + } + else { + r = compile_range_repeat_node(qn, mod_tlen, emptiness, reg, env); + } + return r; +} + +static int +compile_length_option_node(BagNode* node, regex_t* reg, ParseEnv* env) +{ + int tlen; + + tlen = compile_length_tree(ND_BAG_BODY(node), reg, env); + + return tlen; +} + +static int +compile_option_node(BagNode* node, regex_t* reg, ParseEnv* env) +{ + int r; + + r = compile_tree(ND_BAG_BODY(node), reg, env); + + return r; +} + +static int +compile_length_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) +{ + int len; + int tlen; + + if (node->type == BAG_OPTION) + return compile_length_option_node(node, reg, env); + + if (ND_BAG_BODY(node)) { + tlen = compile_length_tree(ND_BAG_BODY(node), reg, env); + if (tlen < 0) return tlen; + } + else + tlen = 0; + + switch (node->type) { + case BAG_MEMORY: +#ifdef USE_CALL + + if (node->m.regnum == 0 && ND_IS_CALLED(node)) { + len = tlen + OPSIZE_CALL + OPSIZE_JUMP + OPSIZE_RETURN; + return len; + } + + if (ND_IS_CALLED(node)) { + len = OPSIZE_MEM_START_PUSH + tlen + + OPSIZE_CALL + OPSIZE_JUMP + OPSIZE_RETURN; + if (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum)) + len += (ND_IS_RECURSION(node) + ? OPSIZE_MEM_END_PUSH_REC : OPSIZE_MEM_END_PUSH); + else + len += (ND_IS_RECURSION(node) + ? OPSIZE_MEM_END_REC : OPSIZE_MEM_END); + } + else if (ND_IS_RECURSION(node)) { + len = OPSIZE_MEM_START_PUSH; + len += tlen + (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum) + ? OPSIZE_MEM_END_PUSH_REC : OPSIZE_MEM_END_REC); + } + else +#endif + { + if (MEM_STATUS_AT0(reg->push_mem_start, node->m.regnum)) + len = OPSIZE_MEM_START_PUSH; + else + len = OPSIZE_MEM_START; + + len += tlen + (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum) + ? OPSIZE_MEM_END_PUSH : OPSIZE_MEM_END); + } + break; + + case BAG_STOP_BACKTRACK: + if (ND_IS_STRICT_REAL_REPEAT(node)) { + int v; + QuantNode* qn; + + qn = QUANT_(ND_BAG_BODY(node)); + tlen = compile_length_tree(ND_QUANT_BODY(qn), reg, env); + if (tlen < 0) return tlen; + + v = onig_positive_int_multiply(qn->lower, tlen); + if (v < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; + len = v + OPSIZE_PUSH + tlen + OPSIZE_POP + OPSIZE_JUMP; + } + else { + len = OPSIZE_MARK + tlen + OPSIZE_CUT_TO_MARK; + } + break; + + case BAG_IF_ELSE: + { + Node* cond = ND_BAG_BODY(node); + Node* Then = node->te.Then; + Node* Else = node->te.Else; + + len = compile_length_tree(cond, reg, env); + if (len < 0) return len; + len += OPSIZE_PUSH + OPSIZE_MARK + OPSIZE_CUT_TO_MARK; + + if (IS_NOT_NULL(Then)) { + tlen = compile_length_tree(Then, reg, env); + if (tlen < 0) return tlen; + len += tlen; + } + + len += OPSIZE_JUMP + OPSIZE_CUT_TO_MARK; + + if (IS_NOT_NULL(Else)) { + tlen = compile_length_tree(Else, reg, env); + if (tlen < 0) return tlen; + len += tlen; + } + } + break; + + case BAG_OPTION: + /* never come here, but set for escape warning */ + len = 0; + break; + + default: + return ONIGERR_TYPE_BUG; + break; + } + + return len; +} + +static int +compile_bag_memory_node(BagNode* node, regex_t* reg, ParseEnv* env) +{ + int r; + +#ifdef USE_CALL + if (ND_IS_CALLED(node)) { + int len; + + r = add_op(reg, OP_CALL); + if (r != 0) return r; + + node->m.called_addr = COP_CURR_OFFSET(reg) + 1 + OPSIZE_JUMP; + ND_STATUS_ADD(node, FIXED_ADDR); + COP(reg)->call.addr = (int )node->m.called_addr; + + if (node->m.regnum == 0) { + len = compile_length_tree(ND_BAG_BODY(node), reg, env); + len += OPSIZE_RETURN; + + r = add_op(reg, OP_JUMP); + if (r != 0) return r; + COP(reg)->jump.addr = len + SIZE_INC; + + r = compile_tree(ND_BAG_BODY(node), reg, env); + if (r != 0) return r; + + r = add_op(reg, OP_RETURN); + return r; + } + else { + len = compile_length_tree(ND_BAG_BODY(node), reg, env); + len += (OPSIZE_MEM_START_PUSH + OPSIZE_RETURN); + if (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum)) + len += (ND_IS_RECURSION(node) + ? OPSIZE_MEM_END_PUSH_REC : OPSIZE_MEM_END_PUSH); + else + len += (ND_IS_RECURSION(node) ? OPSIZE_MEM_END_REC : OPSIZE_MEM_END); + + r = add_op(reg, OP_JUMP); + if (r != 0) return r; + COP(reg)->jump.addr = len + SIZE_INC; + } + } +#endif + + if (MEM_STATUS_AT0(reg->push_mem_start, node->m.regnum)) + r = add_op(reg, OP_MEM_START_PUSH); + else + r = add_op(reg, OP_MEM_START); + if (r != 0) return r; + COP(reg)->memory_start.num = node->m.regnum; + + r = compile_tree(ND_BAG_BODY(node), reg, env); + if (r != 0) return r; + +#ifdef USE_CALL + if (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum)) + r = add_op(reg, (ND_IS_RECURSION(node) + ? OP_MEM_END_PUSH_REC : OP_MEM_END_PUSH)); + else + r = add_op(reg, (ND_IS_RECURSION(node) ? OP_MEM_END_REC : OP_MEM_END)); + if (r != 0) return r; + COP(reg)->memory_end.num = node->m.regnum; + + if (ND_IS_CALLED(node)) { + r = add_op(reg, OP_RETURN); + } +#else + if (MEM_STATUS_AT0(reg->push_mem_end, node->m.regnum)) + r = add_op(reg, OP_MEM_END_PUSH); + else + r = add_op(reg, OP_MEM_END); + if (r != 0) return r; + COP(reg)->memory_end.num = node->m.regnum; +#endif + + return r; +} + +static int +compile_bag_node(BagNode* node, regex_t* reg, ParseEnv* env) +{ + int r, len; + + switch (node->type) { + case BAG_MEMORY: + r = compile_bag_memory_node(node, reg, env); + break; + + case BAG_OPTION: + r = compile_option_node(node, reg, env); + break; + + case BAG_STOP_BACKTRACK: + if (ND_IS_STRICT_REAL_REPEAT(node)) { + QuantNode* qn = QUANT_(ND_BAG_BODY(node)); + r = compile_tree_n_times(ND_QUANT_BODY(qn), qn->lower, reg, env); + if (r != 0) return r; + + len = compile_length_tree(ND_QUANT_BODY(qn), reg, env); + if (len < 0) return len; + + r = add_op(reg, OP_PUSH); + if (r != 0) return r; + COP(reg)->push.addr = SIZE_INC + len + OPSIZE_POP + OPSIZE_JUMP; + + r = compile_tree(ND_QUANT_BODY(qn), reg, env); + if (r != 0) return r; + r = add_op(reg, OP_POP); + if (r != 0) return r; + + r = add_op(reg, OP_JUMP); + if (r != 0) return r; + COP(reg)->jump.addr = -((int )OPSIZE_PUSH + len + (int )OPSIZE_POP); + } + else { + MemNumType mid; + + ID_ENTRY(env, mid); + r = add_op(reg, OP_MARK); + if (r != 0) return r; + COP(reg)->mark.id = mid; + COP(reg)->mark.save_pos = 0; + + r = compile_tree(ND_BAG_BODY(node), reg, env); + if (r != 0) return r; + r = add_op(reg, OP_CUT_TO_MARK); + if (r != 0) return r; + COP(reg)->cut_to_mark.id = mid; + COP(reg)->cut_to_mark.restore_pos = 0; + } + break; + + case BAG_IF_ELSE: + { + int cond_len, then_len, else_len, jump_len; + MemNumType mid; + Node* cond = ND_BAG_BODY(node); + Node* Then = node->te.Then; + Node* Else = node->te.Else; + + ID_ENTRY(env, mid); + + r = add_op(reg, OP_MARK); + if (r != 0) return r; + COP(reg)->mark.id = mid; + COP(reg)->mark.save_pos = 0; + + cond_len = compile_length_tree(cond, reg, env); + if (cond_len < 0) return cond_len; + if (IS_NOT_NULL(Then)) { + then_len = compile_length_tree(Then, reg, env); + if (then_len < 0) return then_len; + } + else + then_len = 0; + + jump_len = cond_len + then_len + OPSIZE_CUT_TO_MARK + OPSIZE_JUMP; + + r = add_op(reg, OP_PUSH); + if (r != 0) return r; + COP(reg)->push.addr = SIZE_INC + jump_len; + + r = compile_tree(cond, reg, env); + if (r != 0) return r; + r = add_op(reg, OP_CUT_TO_MARK); + if (r != 0) return r; + COP(reg)->cut_to_mark.id = mid; + COP(reg)->cut_to_mark.restore_pos = 0; + + if (IS_NOT_NULL(Then)) { + r = compile_tree(Then, reg, env); + if (r != 0) return r; + } + + if (IS_NOT_NULL(Else)) { + else_len = compile_length_tree(Else, reg, env); + if (else_len < 0) return else_len; + } + else + else_len = 0; + + r = add_op(reg, OP_JUMP); + if (r != 0) return r; + COP(reg)->jump.addr = OPSIZE_CUT_TO_MARK + else_len + SIZE_INC; + + r = add_op(reg, OP_CUT_TO_MARK); + if (r != 0) return r; + COP(reg)->cut_to_mark.id = mid; + COP(reg)->cut_to_mark.restore_pos = 0; + + if (IS_NOT_NULL(Else)) { + r = compile_tree(Else, reg, env); + } + } + break; + + default: + return ONIGERR_TYPE_BUG; + break; + } + + return r; +} + +static int +compile_length_anchor_node(AnchorNode* node, regex_t* reg, ParseEnv* env) +{ + int len; + int tlen = 0; + + if (IS_NOT_NULL(ND_ANCHOR_BODY(node))) { + tlen = compile_length_tree(ND_ANCHOR_BODY(node), reg, env); + if (tlen < 0) return tlen; + } + + switch (node->type) { + case ANCR_PREC_READ: + len = OPSIZE_MARK + tlen + OPSIZE_CUT_TO_MARK; + break; + case ANCR_PREC_READ_NOT: + len = OPSIZE_PUSH + OPSIZE_MARK + tlen + OPSIZE_POP_TO_MARK + OPSIZE_POP + OPSIZE_FAIL; + break; + case ANCR_LOOK_BEHIND: + if (node->char_min_len == node->char_max_len) + len = OPSIZE_MARK + OPSIZE_STEP_BACK_START + tlen + OPSIZE_CUT_TO_MARK; + else { + len = OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR + OPSIZE_MARK + OPSIZE_PUSH + OPSIZE_UPDATE_VAR + OPSIZE_FAIL + OPSIZE_JUMP + OPSIZE_STEP_BACK_START + OPSIZE_STEP_BACK_NEXT + tlen + OPSIZE_CHECK_POSITION + OPSIZE_CUT_TO_MARK + OPSIZE_UPDATE_VAR; + + if (IS_NOT_NULL(node->lead_node)) { + int llen = compile_length_tree(node->lead_node, reg, env); + if (llen < 0) return llen; + + len += OPSIZE_MOVE + llen; + } + + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) + len += OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR; + } + break; + case ANCR_LOOK_BEHIND_NOT: + if (node->char_min_len == node->char_max_len) + len = OPSIZE_MARK + OPSIZE_PUSH + OPSIZE_STEP_BACK_START + tlen + OPSIZE_POP_TO_MARK + OPSIZE_FAIL + OPSIZE_POP; + else { + len = OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR + OPSIZE_MARK + OPSIZE_PUSH + OPSIZE_STEP_BACK_START + OPSIZE_STEP_BACK_NEXT + tlen + OPSIZE_CHECK_POSITION + OPSIZE_POP_TO_MARK + OPSIZE_UPDATE_VAR + OPSIZE_POP + OPSIZE_FAIL + OPSIZE_UPDATE_VAR + OPSIZE_POP + OPSIZE_POP; + + if (IS_NOT_NULL(node->lead_node)) { + int llen = compile_length_tree(node->lead_node, reg, env); + if (llen < 0) return llen; + + len += OPSIZE_MOVE + llen; + } + + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) + len += OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR; + } + break; + + case ANCR_WORD_BOUNDARY: + case ANCR_NO_WORD_BOUNDARY: +#ifdef USE_WORD_BEGIN_END + case ANCR_WORD_BEGIN: + case ANCR_WORD_END: +#endif + len = OPSIZE_WORD_BOUNDARY; + break; + + case ANCR_TEXT_SEGMENT_BOUNDARY: + case ANCR_NO_TEXT_SEGMENT_BOUNDARY: + len = SIZE_OPCODE; + break; + + default: + len = SIZE_OPCODE; + break; + } + + return len; +} + +static int +compile_anchor_look_behind_node(AnchorNode* node, regex_t* reg, ParseEnv* env) +{ + int r; + + if (node->char_min_len == node->char_max_len) { + MemNumType mid; + + ID_ENTRY(env, mid); + r = add_op(reg, OP_MARK); + if (r != 0) return r; + COP(reg)->mark.id = mid; + COP(reg)->mark.save_pos = FALSE; + + r = add_op(reg, OP_STEP_BACK_START); + if (r != 0) return r; + COP(reg)->step_back_start.initial = node->char_min_len; + COP(reg)->step_back_start.remaining = 0; + COP(reg)->step_back_start.addr = 1; + + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); + if (r != 0) return r; + + r = add_op(reg, OP_CUT_TO_MARK); + if (r != 0) return r; + COP(reg)->cut_to_mark.id = mid; + COP(reg)->cut_to_mark.restore_pos = FALSE; + } + else { + OnigLen diff; + MemNumType mid1, mid2; + MemNumType mid3 = 0; /* ignore uninitialized warning */ + + if (IS_NOT_NULL(node->lead_node)) { + MinMaxCharLen ci; + + r = node_char_len(node->lead_node, reg, &ci, env); + if (r < 0) return r; + r = add_op(reg, OP_MOVE); + if (r != 0) return r; + COP(reg)->move.n = -((RelPositionType )ci.min); + r = compile_tree(node->lead_node, reg, env); + if (r != 0) return r; + } + + ID_ENTRY(env, mid1); + r = add_op(reg, OP_SAVE_VAL); + if (r != 0) return r; + COP(reg)->save_val.type = SAVE_RIGHT_RANGE; + COP(reg)->save_val.id = mid1; + + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) return r; + COP(reg)->update_var.type = UPDATE_VAR_RIGHT_RANGE_TO_S; + + ID_ENTRY(env, mid2); + r = add_op(reg, OP_MARK); + if (r != 0) return r; + COP(reg)->mark.id = mid2; + COP(reg)->mark.save_pos = FALSE; + + r = add_op(reg, OP_PUSH); + if (r != 0) return r; + COP(reg)->push.addr = SIZE_INC + OPSIZE_JUMP; + + r = add_op(reg, OP_JUMP); + if (r != 0) return r; + COP(reg)->jump.addr = SIZE_INC + OPSIZE_UPDATE_VAR + OPSIZE_FAIL; + + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) return r; + COP(reg)->update_var.type = UPDATE_VAR_RIGHT_RANGE_FROM_STACK; + COP(reg)->update_var.id = mid1; + COP(reg)->update_var.clear = FALSE; + r = add_op(reg, OP_FAIL); + if (r != 0) return r; + + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) { + ID_ENTRY(env, mid3); + r = add_op(reg, OP_SAVE_VAL); + if (r != 0) return r; + COP(reg)->save_val.type = SAVE_RIGHT_RANGE; + COP(reg)->save_val.id = mid3; + } + + r = add_op(reg, OP_STEP_BACK_START); + if (r != 0) return r; + + if (node->char_max_len != INFINITE_LEN) + diff = node->char_max_len - node->char_min_len; + else + diff = INFINITE_LEN; + + COP(reg)->step_back_start.initial = node->char_min_len; + COP(reg)->step_back_start.remaining = diff; + COP(reg)->step_back_start.addr = 2; + + r = add_op(reg, OP_STEP_BACK_NEXT); + if (r != 0) return r; + + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); + if (r != 0) return r; + + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) { + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) return r; + COP(reg)->update_var.type = UPDATE_VAR_RIGHT_RANGE_FROM_STACK; + COP(reg)->update_var.id = mid3; + COP(reg)->update_var.clear = FALSE; + } + + r = add_op(reg, OP_CHECK_POSITION); + if (r != 0) return r; + COP(reg)->check_position.type = CHECK_POSITION_CURRENT_RIGHT_RANGE; + + r = add_op(reg, OP_CUT_TO_MARK); + if (r != 0) return r; + COP(reg)->cut_to_mark.id = mid2; + COP(reg)->cut_to_mark.restore_pos = FALSE; + + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) return r; + COP(reg)->update_var.type = UPDATE_VAR_RIGHT_RANGE_FROM_STACK; + COP(reg)->update_var.id = mid1; + COP(reg)->update_var.clear = TRUE; + } + + return r; +} + +static int +compile_anchor_look_behind_not_node(AnchorNode* node, regex_t* reg, + ParseEnv* env) +{ + int r; + int len; + + len = compile_length_tree(ND_ANCHOR_BODY(node), reg, env); + + if (node->char_min_len == node->char_max_len) { + MemNumType mid; + + ID_ENTRY(env, mid); + r = add_op(reg, OP_MARK); + if (r != 0) return r; + COP(reg)->mark.id = mid; + COP(reg)->mark.save_pos = FALSE; + + r = add_op(reg, OP_PUSH); + if (r != 0) return r; + COP(reg)->push.addr = SIZE_INC + OPSIZE_STEP_BACK_START + len + OPSIZE_POP_TO_MARK + OPSIZE_FAIL; + + r = add_op(reg, OP_STEP_BACK_START); + if (r != 0) return r; + COP(reg)->step_back_start.initial = node->char_min_len; + COP(reg)->step_back_start.remaining = 0; + COP(reg)->step_back_start.addr = 1; + + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); + if (r != 0) return r; + + r = add_op(reg, OP_POP_TO_MARK); + if (r != 0) return r; + COP(reg)->pop_to_mark.id = mid; + r = add_op(reg, OP_FAIL); + if (r != 0) return r; + r = add_op(reg, OP_POP); + } + else { + OnigLen diff; + MemNumType mid1, mid2; + MemNumType mid3 = 0; /* ignore uninitialized warning */ + + ID_ENTRY(env, mid1); + r = add_op(reg, OP_SAVE_VAL); + if (r != 0) return r; + COP(reg)->save_val.type = SAVE_RIGHT_RANGE; + COP(reg)->save_val.id = mid1; + + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) return r; + COP(reg)->update_var.type = UPDATE_VAR_RIGHT_RANGE_TO_S; + + ID_ENTRY(env, mid2); + r = add_op(reg, OP_MARK); + if (r != 0) return r; + COP(reg)->mark.id = mid2; + COP(reg)->mark.save_pos = FALSE; + + r = add_op(reg, OP_PUSH); + if (r != 0) return r; + + COP(reg)->push.addr = SIZE_INC + OPSIZE_STEP_BACK_START + OPSIZE_STEP_BACK_NEXT + len + OPSIZE_CHECK_POSITION + OPSIZE_POP_TO_MARK + OPSIZE_UPDATE_VAR + OPSIZE_POP + OPSIZE_FAIL; + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) + COP(reg)->push.addr += OPSIZE_SAVE_VAL + OPSIZE_UPDATE_VAR; + + if (IS_NOT_NULL(node->lead_node)) { + int clen; + MinMaxCharLen ci; + + clen = compile_length_tree(node->lead_node, reg, env); + COP(reg)->push.addr += OPSIZE_MOVE + clen; + + r = node_char_len(node->lead_node, reg, &ci, env); + if (r < 0) return r; + r = add_op(reg, OP_MOVE); + if (r != 0) return r; + COP(reg)->move.n = -((RelPositionType )ci.min); + + r = compile_tree(node->lead_node, reg, env); + if (r != 0) return r; + } + + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) { + ID_ENTRY(env, mid3); + r = add_op(reg, OP_SAVE_VAL); + if (r != 0) return r; + COP(reg)->save_val.type = SAVE_RIGHT_RANGE; + COP(reg)->save_val.id = mid3; + } + + r = add_op(reg, OP_STEP_BACK_START); + if (r != 0) return r; + + if (node->char_max_len != INFINITE_LEN) + diff = node->char_max_len - node->char_min_len; + else + diff = INFINITE_LEN; + + COP(reg)->step_back_start.initial = node->char_min_len; + COP(reg)->step_back_start.remaining = diff; + COP(reg)->step_back_start.addr = 2; + + r = add_op(reg, OP_STEP_BACK_NEXT); + if (r != 0) return r; + + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); + if (r != 0) return r; + + if ((env->flags & PE_FLAG_HAS_ABSENT_STOPPER) != 0) { + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) return r; + COP(reg)->update_var.type = UPDATE_VAR_RIGHT_RANGE_FROM_STACK; + COP(reg)->update_var.id = mid3; + COP(reg)->update_var.clear = FALSE; + } + + r = add_op(reg, OP_CHECK_POSITION); + if (r != 0) return r; + COP(reg)->check_position.type = CHECK_POSITION_CURRENT_RIGHT_RANGE; + + r = add_op(reg, OP_POP_TO_MARK); + if (r != 0) return r; + COP(reg)->pop_to_mark.id = mid2; + + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) return r; + COP(reg)->update_var.type = UPDATE_VAR_RIGHT_RANGE_FROM_STACK; + COP(reg)->update_var.id = mid1; + COP(reg)->update_var.clear = FALSE; + + r = add_op(reg, OP_POP); /* pop save val */ + if (r != 0) return r; + r = add_op(reg, OP_FAIL); + if (r != 0) return r; + + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) return r; + COP(reg)->update_var.type = UPDATE_VAR_RIGHT_RANGE_FROM_STACK; + COP(reg)->update_var.id = mid1; + COP(reg)->update_var.clear = FALSE; + + r = add_op(reg, OP_POP); /* pop mark */ + if (r != 0) return r; + r = add_op(reg, OP_POP); /* pop save val */ + } + + return r; +} + +static int +compile_anchor_node(AnchorNode* node, regex_t* reg, ParseEnv* env) +{ + int r, len; + enum OpCode op; + MemNumType mid; + + switch (node->type) { + case ANCR_BEGIN_BUF: r = add_op(reg, OP_BEGIN_BUF); break; + case ANCR_END_BUF: r = add_op(reg, OP_END_BUF); break; + case ANCR_BEGIN_LINE: r = add_op(reg, OP_BEGIN_LINE); break; + case ANCR_END_LINE: r = add_op(reg, OP_END_LINE); break; + case ANCR_SEMI_END_BUF: r = add_op(reg, OP_SEMI_END_BUF); break; + case ANCR_BEGIN_POSITION: + r = add_op(reg, OP_CHECK_POSITION); + if (r != 0) return r; + COP(reg)->check_position.type = CHECK_POSITION_SEARCH_START; + break; + + case ANCR_WORD_BOUNDARY: + op = OP_WORD_BOUNDARY; + word: + r = add_op(reg, op); + if (r != 0) return r; + COP(reg)->word_boundary.mode = (ModeType )node->ascii_mode; + break; + + case ANCR_NO_WORD_BOUNDARY: + op = OP_NO_WORD_BOUNDARY; goto word; + break; +#ifdef USE_WORD_BEGIN_END + case ANCR_WORD_BEGIN: + op = OP_WORD_BEGIN; goto word; + break; + case ANCR_WORD_END: + op = OP_WORD_END; goto word; + break; +#endif + + case ANCR_TEXT_SEGMENT_BOUNDARY: + case ANCR_NO_TEXT_SEGMENT_BOUNDARY: + { + enum TextSegmentBoundaryType type; + + r = add_op(reg, OP_TEXT_SEGMENT_BOUNDARY); + if (r != 0) return r; + + type = EXTENDED_GRAPHEME_CLUSTER_BOUNDARY; +#ifdef USE_UNICODE_WORD_BREAK + if (ND_IS_TEXT_SEGMENT_WORD(node)) + type = WORD_BOUNDARY; +#endif + + COP(reg)->text_segment_boundary.type = type; + COP(reg)->text_segment_boundary.not = + (node->type == ANCR_NO_TEXT_SEGMENT_BOUNDARY ? 1 : 0); + } + break; + + case ANCR_PREC_READ: + { + ID_ENTRY(env, mid); + r = add_op(reg, OP_MARK); + if (r != 0) return r; + COP(reg)->mark.id = mid; + COP(reg)->mark.save_pos = TRUE; + + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); + if (r != 0) return r; + + r = add_op(reg, OP_CUT_TO_MARK); + if (r != 0) return r; + COP(reg)->cut_to_mark.id = mid; + COP(reg)->cut_to_mark.restore_pos = TRUE; + } + break; + + case ANCR_PREC_READ_NOT: + { + len = compile_length_tree(ND_ANCHOR_BODY(node), reg, env); + if (len < 0) return len; + + ID_ENTRY(env, mid); + r = add_op(reg, OP_PUSH); + if (r != 0) return r; + COP(reg)->push.addr = SIZE_INC + OPSIZE_MARK + len + + OPSIZE_POP_TO_MARK + OPSIZE_POP + OPSIZE_FAIL; + + r = add_op(reg, OP_MARK); + if (r != 0) return r; + COP(reg)->mark.id = mid; + COP(reg)->mark.save_pos = FALSE; + + r = compile_tree(ND_ANCHOR_BODY(node), reg, env); + if (r != 0) return r; + + r = add_op(reg, OP_POP_TO_MARK); + if (r != 0) return r; + COP(reg)->pop_to_mark.id = mid; + + r = add_op(reg, OP_POP); + if (r != 0) return r; + r = add_op(reg, OP_FAIL); + } + break; + + case ANCR_LOOK_BEHIND: + r = compile_anchor_look_behind_node(node, reg, env); + break; + + case ANCR_LOOK_BEHIND_NOT: + r = compile_anchor_look_behind_not_node(node, reg, env); + break; + + default: + return ONIGERR_TYPE_BUG; + break; + } + + return r; +} + +static int +compile_gimmick_node(GimmickNode* node, regex_t* reg) +{ + int r = 0; + + switch (node->type) { + case GIMMICK_FAIL: + r = add_op(reg, OP_FAIL); + break; + + case GIMMICK_SAVE: + r = add_op(reg, OP_SAVE_VAL); + if (r != 0) return r; + COP(reg)->save_val.type = node->detail_type; + COP(reg)->save_val.id = node->id; + break; + + case GIMMICK_UPDATE_VAR: + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) return r; + COP(reg)->update_var.type = node->detail_type; + COP(reg)->update_var.id = node->id; + COP(reg)->update_var.clear = FALSE; + break; + +#ifdef USE_CALLOUT + case GIMMICK_CALLOUT: + switch (node->detail_type) { + case ONIG_CALLOUT_OF_CONTENTS: + case ONIG_CALLOUT_OF_NAME: + { + if (node->detail_type == ONIG_CALLOUT_OF_NAME) { + r = add_op(reg, OP_CALLOUT_NAME); + if (r != 0) return r; + COP(reg)->callout_name.id = node->id; + COP(reg)->callout_name.num = node->num; + } + else { + r = add_op(reg, OP_CALLOUT_CONTENTS); + if (r != 0) return r; + COP(reg)->callout_contents.num = node->num; + } + } + break; + + default: + r = ONIGERR_TYPE_BUG; + break; + } +#endif + } + + return r; +} + +static int +compile_length_gimmick_node(GimmickNode* node, regex_t* reg) +{ + int len; + + switch (node->type) { + case GIMMICK_FAIL: + len = OPSIZE_FAIL; + break; + + case GIMMICK_SAVE: + len = OPSIZE_SAVE_VAL; + break; + + case GIMMICK_UPDATE_VAR: + len = OPSIZE_UPDATE_VAR; + break; + +#ifdef USE_CALLOUT + case GIMMICK_CALLOUT: + switch (node->detail_type) { + case ONIG_CALLOUT_OF_CONTENTS: + len = OPSIZE_CALLOUT_CONTENTS; + break; + case ONIG_CALLOUT_OF_NAME: + len = OPSIZE_CALLOUT_NAME; + break; + + default: + len = ONIGERR_TYPE_BUG; + break; + } + break; +#endif + + default: + return ONIGERR_TYPE_BUG; + break; + } + + return len; +} + +static int +compile_length_tree(Node* node, regex_t* reg, ParseEnv* env) +{ + int len, r; + + switch (ND_TYPE(node)) { + case ND_LIST: + len = 0; + do { + r = compile_length_tree(ND_CAR(node), reg, env); + if (r < 0) return r; + len += r; + } while (IS_NOT_NULL(node = ND_CDR(node))); + r = len; + break; + + case ND_ALT: + { + int n; + + n = r = 0; + do { + r += compile_length_tree(ND_CAR(node), reg, env); + n++; + } while (IS_NOT_NULL(node = ND_CDR(node))); + r += (OPSIZE_PUSH + OPSIZE_JUMP) * (n - 1); + } + break; + + case ND_STRING: + if (ND_STRING_IS_CRUDE(node)) + r = compile_length_string_crude_node(STR_(node), reg); + else + r = compile_length_string_node(node, reg); + break; + + case ND_CCLASS: + r = compile_length_cclass_node(CCLASS_(node), reg); + break; + + case ND_CTYPE: + r = SIZE_OPCODE; + break; + + case ND_BACKREF: + r = OPSIZE_BACKREF; + break; + +#ifdef USE_CALL + case ND_CALL: + r = OPSIZE_CALL; + break; +#endif + + case ND_QUANT: + r = compile_length_quantifier_node(QUANT_(node), reg, env); + break; + + case ND_BAG: + r = compile_length_bag_node(BAG_(node), reg, env); + break; + + case ND_ANCHOR: + r = compile_length_anchor_node(ANCHOR_(node), reg, env); + break; + + case ND_GIMMICK: + r = compile_length_gimmick_node(GIMMICK_(node), reg); + break; + + default: + return ONIGERR_TYPE_BUG; + break; + } + + return r; +} + +static int +compile_tree(Node* node, regex_t* reg, ParseEnv* env) +{ + int n, len, pos, r = 0; + + switch (ND_TYPE(node)) { + case ND_LIST: + do { + r = compile_tree(ND_CAR(node), reg, env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_ALT: + { + Node* x = node; + len = 0; + do { + len += compile_length_tree(ND_CAR(x), reg, env); + if (IS_NOT_NULL(ND_CDR(x))) { + len += OPSIZE_PUSH + OPSIZE_JUMP; + } + } while (IS_NOT_NULL(x = ND_CDR(x))); + pos = COP_CURR_OFFSET(reg) + 1 + len; /* goal position */ + + do { + len = compile_length_tree(ND_CAR(node), reg, env); + if (IS_NOT_NULL(ND_CDR(node))) { + enum OpCode push = ND_IS_SUPER(node) ? OP_PUSH_SUPER : OP_PUSH; + r = add_op(reg, push); + if (r != 0) break; + COP(reg)->push.addr = SIZE_INC + len + OPSIZE_JUMP; + } + r = compile_tree(ND_CAR(node), reg, env); + if (r != 0) break; + if (IS_NOT_NULL(ND_CDR(node))) { + len = pos - (COP_CURR_OFFSET(reg) + 1); + r = add_op(reg, OP_JUMP); + if (r != 0) break; + COP(reg)->jump.addr = len; + } + } while (IS_NOT_NULL(node = ND_CDR(node))); + } + break; + + case ND_STRING: + if (ND_STRING_IS_CRUDE(node)) + r = compile_string_crude_node(STR_(node), reg); + else + r = compile_string_node(node, reg); + break; + + case ND_CCLASS: + r = compile_cclass_node(CCLASS_(node), reg); + break; + + case ND_CTYPE: + { + int op; + + switch (CTYPE_(node)->ctype) { + case CTYPE_ANYCHAR: + r = add_op(reg, ND_IS_MULTILINE(node) ? OP_ANYCHAR_ML : OP_ANYCHAR); + break; + + case ONIGENC_CTYPE_WORD: + if (CTYPE_(node)->ascii_mode == 0) { + op = CTYPE_(node)->not != 0 ? OP_NO_WORD : OP_WORD; + } + else { + op = CTYPE_(node)->not != 0 ? OP_NO_WORD_ASCII : OP_WORD_ASCII; + } + r = add_op(reg, op); + break; + + default: + return ONIGERR_TYPE_BUG; + break; + } + } + break; + + case ND_BACKREF: + { + BackRefNode* br = BACKREF_(node); + + if (ND_IS_CHECKER(node)) { +#ifdef USE_BACKREF_WITH_LEVEL + if (ND_IS_NEST_LEVEL(node)) { + r = add_op(reg, OP_BACKREF_CHECK_WITH_LEVEL); + if (r != 0) return r; + COP(reg)->backref_general.nest_level = br->nest_level; + } + else +#endif + { + r = add_op(reg, OP_BACKREF_CHECK); + if (r != 0) return r; + } + goto add_bacref_mems; + } + else { +#ifdef USE_BACKREF_WITH_LEVEL + if (ND_IS_NEST_LEVEL(node)) { + if (ND_IS_IGNORECASE(node)) + r = add_op(reg, OP_BACKREF_WITH_LEVEL_IC); + else + r = add_op(reg, OP_BACKREF_WITH_LEVEL); + + if (r != 0) return r; + COP(reg)->backref_general.nest_level = br->nest_level; + goto add_bacref_mems; + } + else +#endif + if (br->back_num == 1) { + n = br->back_static[0]; + if (ND_IS_IGNORECASE(node)) { + r = add_op(reg, OP_BACKREF_N_IC); + if (r != 0) return r; + COP(reg)->backref_n.n1 = n; + } + else { + switch (n) { + case 1: r = add_op(reg, OP_BACKREF1); break; + case 2: r = add_op(reg, OP_BACKREF2); break; + default: + r = add_op(reg, OP_BACKREF_N); + if (r != 0) return r; + COP(reg)->backref_n.n1 = n; + break; + } + } + } + else { + int num; + int* p; + + r = add_op(reg, ND_IS_IGNORECASE(node) ? + OP_BACKREF_MULTI_IC : OP_BACKREF_MULTI); + if (r != 0) return r; + + add_bacref_mems: + num = br->back_num; + COP(reg)->backref_general.num = num; + if (num == 1) { + COP(reg)->backref_general.n1 = br->back_static[0]; + } + else { + int i, j; + MemNumType* ns; + + ns = xmalloc(sizeof(MemNumType) * num); + CHECK_NULL_RETURN_MEMERR(ns); + COP(reg)->backref_general.ns = ns; + p = BACKREFS_P(br); + for (i = num - 1, j = 0; i >= 0; i--, j++) { + ns[j] = p[i]; + } + } + } + } + } + break; + +#ifdef USE_CALL + case ND_CALL: + r = compile_call(CALL_(node), reg, env); + break; +#endif + + case ND_QUANT: + r = compile_quantifier_node(QUANT_(node), reg, env); + break; + + case ND_BAG: + r = compile_bag_node(BAG_(node), reg, env); + break; + + case ND_ANCHOR: + r = compile_anchor_node(ANCHOR_(node), reg, env); + break; + + case ND_GIMMICK: + r = compile_gimmick_node(GIMMICK_(node), reg); + break; + + default: +#ifdef ONIG_DEBUG + fprintf(DBGFP, "compile_tree: undefined node type %d\n", ND_TYPE(node)); +#endif + break; + } + + return r; +} + +static int +make_named_capture_number_map(Node** plink, GroupNumMap* map, int* counter) +{ + int r; + Node* node = *plink; + + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + do { + r = make_named_capture_number_map(&(ND_CAR(node)), map, counter); + } while (r >= 0 && IS_NOT_NULL(node = ND_CDR(node))); + if (r < 0) return r; + break; + + case ND_QUANT: + { + Node** ptarget = &(ND_BODY(node)); + r = make_named_capture_number_map(ptarget, map, counter); + if (r < 0) return r; + if (r == 1 && ND_TYPE(*ptarget) == ND_QUANT) { + return onig_reduce_nested_quantifier(node); + } + } + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + if (en->type == BAG_MEMORY) { + if (ND_IS_NAMED_GROUP(node)) { + (*counter)++; + map[en->m.regnum].new_val = *counter; + en->m.regnum = *counter; + r = make_named_capture_number_map(&(ND_BODY(node)), map, counter); + if (r < 0) return r; + } + else { + *plink = ND_BODY(node); + ND_BODY(node) = NULL_NODE; + onig_node_free(node); + r = make_named_capture_number_map(plink, map, counter); + if (r < 0) return r; + return 1; + } + } + else if (en->type == BAG_IF_ELSE) { + r = make_named_capture_number_map(&(ND_BAG_BODY(en)), map, counter); + if (r < 0) return r; + if (IS_NOT_NULL(en->te.Then)) { + r = make_named_capture_number_map(&(en->te.Then), map, counter); + if (r < 0) return r; + } + if (IS_NOT_NULL(en->te.Else)) { + r = make_named_capture_number_map(&(en->te.Else), map, counter); + if (r < 0) return r; + } + } + else { + r = make_named_capture_number_map(&(ND_BODY(node)), map, counter); + if (r < 0) return r; + } + } + break; + + case ND_ANCHOR: + if (IS_NOT_NULL(ND_BODY(node))) { + r = make_named_capture_number_map(&(ND_BODY(node)), map, counter); + if (r < 0) return r; + } + break; + + default: + break; + } + + return 0; +} + +static int +renumber_backref_node(Node* node, GroupNumMap* map) +{ + int i, pos, n, old_num; + int *backs; + BackRefNode* bn = BACKREF_(node); + + if (! ND_IS_BY_NAME(node)) + return ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED; + + old_num = bn->back_num; + if (IS_NULL(bn->back_dynamic)) + backs = bn->back_static; + else + backs = bn->back_dynamic; + + for (i = 0, pos = 0; i < old_num; i++) { + n = map[backs[i]].new_val; + if (n > 0) { + backs[pos] = n; + pos++; + } + } + + bn->back_num = pos; + return 0; +} + +static int +renumber_backref_traverse(Node* node, GroupNumMap* map) +{ + int r = 0; + + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + do { + r = renumber_backref_traverse(ND_CAR(node), map); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_QUANT: + r = renumber_backref_traverse(ND_BODY(node), map); + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + r = renumber_backref_traverse(ND_BODY(node), map); + if (r != 0) return r; + + if (en->type == BAG_IF_ELSE) { + if (IS_NOT_NULL(en->te.Then)) { + r = renumber_backref_traverse(en->te.Then, map); + if (r != 0) return r; + } + if (IS_NOT_NULL(en->te.Else)) { + r = renumber_backref_traverse(en->te.Else, map); + if (r != 0) return r; + } + } + } + break; + + case ND_BACKREF: + r = renumber_backref_node(node, map); + break; + + case ND_ANCHOR: + if (IS_NOT_NULL(ND_BODY(node))) + r = renumber_backref_traverse(ND_BODY(node), map); + break; + + default: + break; + } + + return r; +} + +static int +numbered_ref_check(Node* node) +{ + int r = 0; + + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + do { + r = numbered_ref_check(ND_CAR(node)); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_ANCHOR: + if (IS_NULL(ND_BODY(node))) + break; + /* fall */ + case ND_QUANT: + r = numbered_ref_check(ND_BODY(node)); + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + r = numbered_ref_check(ND_BODY(node)); + if (r != 0) return r; + + if (en->type == BAG_IF_ELSE) { + if (IS_NOT_NULL(en->te.Then)) { + r = numbered_ref_check(en->te.Then); + if (r != 0) return r; + } + if (IS_NOT_NULL(en->te.Else)) { + r = numbered_ref_check(en->te.Else); + if (r != 0) return r; + } + } + } + + break; + + case ND_BACKREF: + if (! ND_IS_BY_NAME(node)) + return ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED; + break; + + default: + break; + } + + return r; +} + +static int +disable_noname_group_capture(Node** root, regex_t* reg, ParseEnv* env) +{ + int r, i, pos, counter; + MemStatusType loc; + GroupNumMap* map; + + map = (GroupNumMap* )xalloca(sizeof(GroupNumMap) * (env->num_mem + 1)); + CHECK_NULL_RETURN_MEMERR(map); + for (i = 1; i <= env->num_mem; i++) { + map[i].new_val = 0; + } + counter = 0; + r = make_named_capture_number_map(root, map, &counter); + if (r < 0) return r; + + r = renumber_backref_traverse(*root, map); + if (r != 0) return r; + + for (i = 1, pos = 1; i <= env->num_mem; i++) { + if (map[i].new_val > 0) { + PARSEENV_MEMENV(env)[pos] = PARSEENV_MEMENV(env)[i]; + pos++; + } + } + + loc = env->cap_history; + MEM_STATUS_CLEAR(env->cap_history); + for (i = 1; i <= ONIG_MAX_CAPTURE_HISTORY_GROUP; i++) { + if (MEM_STATUS_AT(loc, i)) { + MEM_STATUS_ON_SIMPLE(env->cap_history, map[i].new_val); + } + } + + env->num_mem = env->num_named; + reg->num_mem = env->num_named; + + return onig_renumber_name_table(reg, map); +} + +#ifdef USE_CALL +static int +fix_unset_addr_list(UnsetAddrList* uslist, regex_t* reg) +{ + int i, offset; + BagNode* en; + AbsAddrType addr; + AbsAddrType* paddr; + + for (i = 0; i < uslist->num; i++) { + if (! ND_IS_FIXED_ADDR(uslist->us[i].target)) { + if (ND_IS_CALLED(uslist->us[i].target)) + return ONIGERR_PARSER_BUG; + else { + /* CASE: called node doesn't have called address. + ex. /((|a\g<1>)(.){0}){0}\g<3>/ + group-1 doesn't called, but compiled into bytecodes, + because group-3 is referred from outside. + */ + continue; + } + } + + en = BAG_(uslist->us[i].target); + addr = en->m.called_addr; + offset = uslist->us[i].offset; + + paddr = (AbsAddrType* )((char* )reg->ops + offset); + *paddr = addr; + } + return 0; +} +#endif + +/* x is not included y ==> 1 : 0 */ +static int +is_exclusive(Node* x, Node* y, regex_t* reg) +{ + int i, len; + OnigCodePoint code; + UChar *p; + NodeType ytype; + + retry: + ytype = ND_TYPE(y); + switch (ND_TYPE(x)) { + case ND_CTYPE: + { + if (CTYPE_(x)->ctype == CTYPE_ANYCHAR || + CTYPE_(y)->ctype == CTYPE_ANYCHAR) + break; + + switch (ytype) { + case ND_CTYPE: + if (CTYPE_(y)->ctype == CTYPE_(x)->ctype && + CTYPE_(y)->not != CTYPE_(x)->not && + CTYPE_(y)->ascii_mode == CTYPE_(x)->ascii_mode) + return 1; + else + return 0; + break; + + case ND_CCLASS: + swap: + { + Node* tmp; + tmp = x; x = y; y = tmp; + goto retry; + } + break; + + case ND_STRING: + goto swap; + break; + + default: + break; + } + } + break; + + case ND_CCLASS: + { + int range; + CClassNode* xc = CCLASS_(x); + + switch (ytype) { + case ND_CTYPE: + switch (CTYPE_(y)->ctype) { + case CTYPE_ANYCHAR: + return 0; + break; + + case ONIGENC_CTYPE_WORD: + if (CTYPE_(y)->not == 0) { + if (IS_NULL(xc->mbuf) && !IS_NCCLASS_NOT(xc)) { + range = CTYPE_(y)->ascii_mode != 0 ? 128 : SINGLE_BYTE_SIZE; + for (i = 0; i < range; i++) { + if (BITSET_AT(xc->bs, i)) { + if (ONIGENC_IS_CODE_WORD(reg->enc, i)) return 0; + } + } + return 1; + } + return 0; + } + else { + if (IS_NOT_NULL(xc->mbuf)) return 0; + if (IS_NCCLASS_NOT(xc)) return 0; + + range = CTYPE_(y)->ascii_mode != 0 ? 128 : SINGLE_BYTE_SIZE; + for (i = 0; i < range; i++) { + if (! ONIGENC_IS_CODE_WORD(reg->enc, i)) { + if (BITSET_AT(xc->bs, i)) + return 0; + } + } + for (i = range; i < SINGLE_BYTE_SIZE; i++) { + if (BITSET_AT(xc->bs, i)) return 0; + } + return 1; + } + break; + + default: + break; + } + break; + + case ND_CCLASS: + { + int v; + CClassNode* yc = CCLASS_(y); + + for (i = 0; i < SINGLE_BYTE_SIZE; i++) { + v = BITSET_AT(xc->bs, i); + if ((v != 0 && !IS_NCCLASS_NOT(xc)) || (v == 0 && IS_NCCLASS_NOT(xc))) { + v = BITSET_AT(yc->bs, i); + if ((v != 0 && !IS_NCCLASS_NOT(yc)) || + (v == 0 && IS_NCCLASS_NOT(yc))) + return 0; + } + } + if ((IS_NULL(xc->mbuf) && !IS_NCCLASS_NOT(xc)) || + (IS_NULL(yc->mbuf) && !IS_NCCLASS_NOT(yc))) + return 1; + return 0; + } + break; + + case ND_STRING: + goto swap; + break; + + default: + break; + } + } + break; + + case ND_STRING: + { + StrNode* xs = STR_(x); + + if (ND_STRING_LEN(x) == 0) + break; + + switch (ytype) { + case ND_CTYPE: + switch (CTYPE_(y)->ctype) { + case CTYPE_ANYCHAR: + break; + + case ONIGENC_CTYPE_WORD: + if (CTYPE_(y)->ascii_mode == 0) { + if (ONIGENC_IS_MBC_WORD(reg->enc, xs->s, xs->end)) + return CTYPE_(y)->not; + else + return !(CTYPE_(y)->not); + } + else { + if (ONIGENC_IS_MBC_WORD_ASCII(reg->enc, xs->s, xs->end)) + return CTYPE_(y)->not; + else + return !(CTYPE_(y)->not); + } + break; + default: + break; + } + break; + + case ND_CCLASS: + { + CClassNode* cc = CCLASS_(y); + + code = ONIGENC_MBC_TO_CODE(reg->enc, xs->s, + xs->s + ONIGENC_MBC_MAXLEN(reg->enc)); + return onig_is_code_in_cc(reg->enc, code, cc) == 0; + } + break; + + case ND_STRING: + { + UChar *q; + StrNode* ys = STR_(y); + + len = ND_STRING_LEN(x); + if (len > ND_STRING_LEN(y)) len = ND_STRING_LEN(y); + + for (i = 0, p = ys->s, q = xs->s; i < len; i++, p++, q++) { + if (*p != *q) return 1; + } + } + break; + + default: + break; + } + } + break; + + default: + break; + } + + return 0; +} + +static Node* +get_tree_head_literal(Node* node, int exact, regex_t* reg) +{ + Node* n = NULL_NODE; + + switch (ND_TYPE(node)) { + case ND_BACKREF: + case ND_ALT: +#ifdef USE_CALL + case ND_CALL: +#endif + break; + + case ND_CTYPE: + if (CTYPE_(node)->ctype == CTYPE_ANYCHAR) + break; + /* fall */ + case ND_CCLASS: + if (exact == 0) { + n = node; + } + break; + + case ND_LIST: + n = get_tree_head_literal(ND_CAR(node), exact, reg); + break; + + case ND_STRING: + { + StrNode* sn = STR_(node); + + if (sn->end <= sn->s) + break; + + if (exact == 0 || !ND_IS_REAL_IGNORECASE(node)) { + n = node; + } + } + break; + + case ND_QUANT: + { + QuantNode* qn = QUANT_(node); + if (qn->lower > 0) { + if (IS_NOT_NULL(qn->head_exact)) + n = qn->head_exact; + else + n = get_tree_head_literal(ND_BODY(node), exact, reg); + } + } + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + switch (en->type) { + case BAG_OPTION: + case BAG_MEMORY: + case BAG_STOP_BACKTRACK: + n = get_tree_head_literal(ND_BODY(node), exact, reg); + break; + default: + break; + } + } + break; + + case ND_ANCHOR: + if (ANCHOR_(node)->type == ANCR_PREC_READ) + n = get_tree_head_literal(ND_BODY(node), exact, reg); + break; + + case ND_GIMMICK: + default: + break; + } + + return n; +} + +enum GetValue { + GET_VALUE_NONE = -1, + GET_VALUE_IGNORE = 0, + GET_VALUE_FOUND = 1 +}; + +#define MAX_NEST_LEVEL_GET_TREE_TAIL_LITERAL 16 + +static int +get_tree_tail_literal(Node* node, Node** rnode, regex_t* reg, int nest_level) +{ + int r; + + nest_level++; + if (nest_level >= MAX_NEST_LEVEL_GET_TREE_TAIL_LITERAL) { + return GET_VALUE_NONE; + } + + switch (ND_TYPE(node)) { + case ND_LIST: + if (IS_NULL(ND_CDR(node))) { + r = get_tree_tail_literal(ND_CAR(node), rnode, reg, nest_level); + } + else { + r = get_tree_tail_literal(ND_CDR(node), rnode, reg, nest_level); + if (r == GET_VALUE_IGNORE) { + r = get_tree_tail_literal(ND_CAR(node), rnode, reg, nest_level); + } + } + break; + +#ifdef USE_CALL + case ND_CALL: + r = get_tree_tail_literal(ND_BODY(node), rnode, reg, nest_level); + break; +#endif + + case ND_CTYPE: + if (CTYPE_(node)->ctype == CTYPE_ANYCHAR) { + r = GET_VALUE_NONE; + break; + } + /* fall */ + case ND_CCLASS: + *rnode = node; + r = GET_VALUE_FOUND; + break; + + case ND_STRING: + { + StrNode* sn = STR_(node); + + if (sn->end <= sn->s) { + r = GET_VALUE_IGNORE; + break; + } + + if (ND_IS_REAL_IGNORECASE(node)) { + r = GET_VALUE_NONE; + break; + } + + *rnode = node; + r = GET_VALUE_FOUND; + } + break; + + case ND_QUANT: + { + QuantNode* qn = QUANT_(node); + if (qn->lower != 0) { + r = get_tree_tail_literal(ND_BODY(node), rnode, reg, nest_level); + } + else + r = GET_VALUE_NONE; + } + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + if (en->type == BAG_MEMORY) { + if (ND_IS_MARK1(node)) + r = GET_VALUE_NONE; + else { + ND_STATUS_ADD(node, MARK1); + r = get_tree_tail_literal(ND_BODY(node), rnode, reg, nest_level); + ND_STATUS_REMOVE(node, MARK1); + } + } + else { + r = get_tree_tail_literal(ND_BODY(node), rnode, reg, nest_level); + } + } + break; + + case ND_ANCHOR: + case ND_GIMMICK: + r = GET_VALUE_IGNORE; + break; + + case ND_ALT: + case ND_BACKREF: + default: + r = GET_VALUE_NONE; + break; + } + + return r; +} + +static int +check_called_node_in_look_behind(Node* node, int not) +{ + int r; + + r = 0; + + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + do { + r = check_called_node_in_look_behind(ND_CAR(node), not); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_QUANT: + r = check_called_node_in_look_behind(ND_BODY(node), not); + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + if (en->type == BAG_MEMORY) { + if (ND_IS_MARK1(node)) + return 0; + else { + ND_STATUS_ADD(node, MARK1); + r = check_called_node_in_look_behind(ND_BODY(node), not); + ND_STATUS_REMOVE(node, MARK1); + } + } + else { + r = check_called_node_in_look_behind(ND_BODY(node), not); + if (r == 0 && en->type == BAG_IF_ELSE) { + if (IS_NOT_NULL(en->te.Then)) { + r = check_called_node_in_look_behind(en->te.Then, not); + if (r != 0) break; + } + if (IS_NOT_NULL(en->te.Else)) { + r = check_called_node_in_look_behind(en->te.Else, not); + } + } + } + } + break; + + case ND_ANCHOR: + if (IS_NOT_NULL(ND_BODY(node))) + r = check_called_node_in_look_behind(ND_BODY(node), not); + break; + + case ND_GIMMICK: + if (ND_IS_ABSENT_WITH_SIDE_EFFECTS(node) != 0) + return 1; + break; + + default: + break; + } + + return r; +} + +/* allowed node types in look-behind */ +#define ALLOWED_TYPE_IN_LB \ + ( ND_BIT_LIST | ND_BIT_ALT | ND_BIT_STRING | ND_BIT_CCLASS \ + | ND_BIT_CTYPE | ND_BIT_ANCHOR | ND_BIT_BAG | ND_BIT_QUANT \ + | ND_BIT_CALL | ND_BIT_BACKREF | ND_BIT_GIMMICK) + +#define ALLOWED_BAG_IN_LB ( 1<type) & bag_mask[not]) == 0) + return 1; + + r = check_node_in_look_behind(ND_BODY(node), not, used); + if (r != 0) break; + + if (en->type == BAG_MEMORY) { + if (ND_IS_BACKREF(node) || ND_IS_CALLED(node) + || ND_IS_REFERENCED(node)) + *used = TRUE; + } + else if (en->type == BAG_IF_ELSE) { + if (IS_NOT_NULL(en->te.Then)) { + r = check_node_in_look_behind(en->te.Then, not, used); + if (r != 0) break; + } + if (IS_NOT_NULL(en->te.Else)) { + r = check_node_in_look_behind(en->te.Else, not, used); + } + } + } + break; + + case ND_ANCHOR: + type = ANCHOR_(node)->type; + if ((type & anchor_mask[not]) == 0) + return 1; + + if (IS_NOT_NULL(ND_BODY(node))) + r = check_node_in_look_behind(ND_BODY(node), not, used); + break; + + case ND_GIMMICK: + if (ND_IS_ABSENT_WITH_SIDE_EFFECTS(node) != 0) + return 1; + + { + GimmickNode* g = GIMMICK_(node); + if (g->type == GIMMICK_SAVE && g->detail_type == SAVE_KEEP) + *used = TRUE; + } + break; + + case ND_CALL: + if (ND_IS_RECURSION(node)) { + /* fix: Issue 38040 in oss-fuzz */ + /* This node should be removed before recursive call check. */ + *used = TRUE; + } + else + r = check_called_node_in_look_behind(ND_BODY(node), not); + break; + + default: + break; + } + return r; +} + +static OnigLen +node_min_byte_len(Node* node, ParseEnv* env) +{ + OnigLen len; + OnigLen tmin; + + len = 0; + switch (ND_TYPE(node)) { + case ND_BACKREF: + if (! ND_IS_CHECKER(node)) { + int i; + int* backs; + MemEnv* mem_env = PARSEENV_MEMENV(env); + BackRefNode* br = BACKREF_(node); + if (ND_IS_RECURSION(node)) break; + + backs = BACKREFS_P(br); + len = node_min_byte_len(mem_env[backs[0]].mem_node, env); + for (i = 1; i < br->back_num; i++) { + tmin = node_min_byte_len(mem_env[backs[i]].mem_node, env); + if (len > tmin) len = tmin; + } + } + break; + +#ifdef USE_CALL + case ND_CALL: + { + Node* t = ND_BODY(node); + if (ND_IS_FIXED_MIN(t)) + len = BAG_(t)->min_len; + else + len = node_min_byte_len(t, env); + } + break; +#endif + + case ND_LIST: + do { + tmin = node_min_byte_len(ND_CAR(node), env); + len = distance_add(len, tmin); + } while (IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_ALT: + { + Node *x, *y; + y = node; + do { + x = ND_CAR(y); + tmin = node_min_byte_len(x, env); + if (y == node) len = tmin; + else if (len > tmin) len = tmin; + } while (IS_NOT_NULL(y = ND_CDR(y))); + } + break; + + case ND_STRING: + { + StrNode* sn = STR_(node); + len = (int )(sn->end - sn->s); + } + break; + + case ND_CTYPE: + case ND_CCLASS: + len = ONIGENC_MBC_MINLEN(env->enc); + break; + + case ND_QUANT: + { + QuantNode* qn = QUANT_(node); + + if (qn->lower > 0) { + len = node_min_byte_len(ND_BODY(node), env); + len = distance_multiply(len, qn->lower); + } + } + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + switch (en->type) { + case BAG_MEMORY: + if (ND_IS_FIXED_MIN(node)) + len = en->min_len; + else { + if (ND_IS_MARK1(node)) + len = 0; /* recursive */ + else { + ND_STATUS_ADD(node, MARK1); + len = node_min_byte_len(ND_BODY(node), env); + ND_STATUS_REMOVE(node, MARK1); + + en->min_len = len; + ND_STATUS_ADD(node, FIXED_MIN); + } + } + break; + + case BAG_OPTION: + case BAG_STOP_BACKTRACK: + len = node_min_byte_len(ND_BODY(node), env); + break; + case BAG_IF_ELSE: + { + OnigLen elen; + + len = node_min_byte_len(ND_BODY(node), env); + if (IS_NOT_NULL(en->te.Then)) + len += node_min_byte_len(en->te.Then, env); + if (IS_NOT_NULL(en->te.Else)) + elen = node_min_byte_len(en->te.Else, env); + else elen = 0; + + if (elen < len) len = elen; + } + break; + } + } + break; + + case ND_GIMMICK: + { + GimmickNode* g = GIMMICK_(node); + if (g->type == GIMMICK_FAIL) { + len = INFINITE_LEN; + break; + } + } + /* fall */ + case ND_ANCHOR: + default: + break; + } + + return len; +} + +static int +check_backrefs(Node* node, ParseEnv* env) +{ + int r; + + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + do { + r = check_backrefs(ND_CAR(node), env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_ANCHOR: + if (! ANCHOR_HAS_BODY(ANCHOR_(node))) { + r = 0; + break; + } + /* fall */ + case ND_QUANT: + r = check_backrefs(ND_BODY(node), env); + break; + + case ND_BAG: + r = check_backrefs(ND_BODY(node), env); + { + BagNode* en = BAG_(node); + + if (en->type == BAG_IF_ELSE) { + if (r != 0) return r; + if (IS_NOT_NULL(en->te.Then)) { + r = check_backrefs(en->te.Then, env); + if (r != 0) return r; + } + if (IS_NOT_NULL(en->te.Else)) { + r = check_backrefs(en->te.Else, env); + } + } + } + break; + + case ND_BACKREF: + { + int i; + BackRefNode* br = BACKREF_(node); + int* backs = BACKREFS_P(br); + MemEnv* mem_env = PARSEENV_MEMENV(env); + + for (i = 0; i < br->back_num; i++) { + if (backs[i] > env->num_mem) + return ONIGERR_INVALID_BACKREF; + + ND_STATUS_ADD(mem_env[backs[i]].mem_node, BACKREF); + } + r = 0; + } + break; + + default: + r = 0; + break; + } + + return r; +} + +static int +set_empty_repeat_node_trav(Node* node, Node* empty, ParseEnv* env) +{ + int r; + + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + do { + r = set_empty_repeat_node_trav(ND_CAR(node), empty, env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_ANCHOR: + { + AnchorNode* an = ANCHOR_(node); + + if (! ANCHOR_HAS_BODY(an)) { + r = 0; + break; + } + + switch (an->type) { + case ANCR_PREC_READ: + case ANCR_LOOK_BEHIND: + empty = NULL_NODE; + break; + default: + break; + } + r = set_empty_repeat_node_trav(ND_BODY(node), empty, env); + } + break; + + case ND_QUANT: + { + QuantNode* qn = QUANT_(node); + + if (qn->emptiness != BODY_IS_NOT_EMPTY) empty = node; + r = set_empty_repeat_node_trav(ND_BODY(node), empty, env); + } + break; + + case ND_BAG: + if (IS_NOT_NULL(ND_BODY(node))) { + r = set_empty_repeat_node_trav(ND_BODY(node), empty, env); + if (r != 0) return r; + } + { + BagNode* en = BAG_(node); + + r = 0; + if (en->type == BAG_MEMORY) { + if (ND_IS_BACKREF(node)) { + if (IS_NOT_NULL(empty)) + PARSEENV_MEMENV(env)[en->m.regnum].empty_repeat_node = empty; + } + } + else if (en->type == BAG_IF_ELSE) { + if (IS_NOT_NULL(en->te.Then)) { + r = set_empty_repeat_node_trav(en->te.Then, empty, env); + if (r != 0) return r; + } + if (IS_NOT_NULL(en->te.Else)) { + r = set_empty_repeat_node_trav(en->te.Else, empty, env); + } + } + } + break; + + default: + r = 0; + break; + } + + return r; +} + +static int +is_ancestor_node(Node* node, Node* me) +{ + Node* parent; + + while ((parent = ND_PARENT(me)) != NULL_NODE) { + if (parent == node) return 1; + me = parent; + } + return 0; +} + +static void +set_empty_status_check_trav(Node* node, ParseEnv* env) +{ + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + do { + set_empty_status_check_trav(ND_CAR(node), env); + } while (IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_ANCHOR: + { + AnchorNode* an = ANCHOR_(node); + + if (! ANCHOR_HAS_BODY(an)) break; + set_empty_status_check_trav(ND_BODY(node), env); + } + break; + + case ND_QUANT: + set_empty_status_check_trav(ND_BODY(node), env); + break; + + case ND_BAG: + if (IS_NOT_NULL(ND_BODY(node))) + set_empty_status_check_trav(ND_BODY(node), env); + { + BagNode* en = BAG_(node); + + if (en->type == BAG_IF_ELSE) { + if (IS_NOT_NULL(en->te.Then)) { + set_empty_status_check_trav(en->te.Then, env); + } + if (IS_NOT_NULL(en->te.Else)) { + set_empty_status_check_trav(en->te.Else, env); + } + } + } + break; + + case ND_BACKREF: + { + int i; + int* backs; + MemEnv* mem_env = PARSEENV_MEMENV(env); + BackRefNode* br = BACKREF_(node); + backs = BACKREFS_P(br); + for (i = 0; i < br->back_num; i++) { + Node* ernode = mem_env[backs[i]].empty_repeat_node; + if (IS_NOT_NULL(ernode)) { + if (! is_ancestor_node(ernode, node)) { + MEM_STATUS_LIMIT_ON(QUANT_(ernode)->empty_status_mem, backs[i]); + ND_STATUS_ADD(ernode, EMPTY_STATUS_CHECK); + ND_STATUS_ADD(mem_env[backs[i]].mem_node, EMPTY_STATUS_CHECK); + } + } + } + } + break; + + default: + break; + } +} + +static void +set_parent_node_trav(Node* node, Node* parent) +{ + ND_PARENT(node) = parent; + + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + do { + set_parent_node_trav(ND_CAR(node), node); + } while (IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_ANCHOR: + if (! ANCHOR_HAS_BODY(ANCHOR_(node))) break; + set_parent_node_trav(ND_BODY(node), node); + break; + + case ND_QUANT: + set_parent_node_trav(ND_BODY(node), node); + break; + + case ND_BAG: + if (IS_NOT_NULL(ND_BODY(node))) + set_parent_node_trav(ND_BODY(node), node); + { + BagNode* en = BAG_(node); + + if (en->type == BAG_IF_ELSE) { + if (IS_NOT_NULL(en->te.Then)) + set_parent_node_trav(en->te.Then, node); + if (IS_NOT_NULL(en->te.Else)) { + set_parent_node_trav(en->te.Else, node); + } + } + } + break; + + default: + break; + } +} + + +#ifdef USE_CALL + +#define RECURSION_EXIST (1<<0) +#define RECURSION_MUST (1<<1) +#define RECURSION_INFINITE (1<<2) + +static int +infinite_recursive_call_check(Node* node, ParseEnv* env, int head) +{ + int ret; + int r = 0; + + switch (ND_TYPE(node)) { + case ND_LIST: + { + Node *x; + OnigLen min; + + x = node; + do { + ret = infinite_recursive_call_check(ND_CAR(x), env, head); + if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; + r |= ret; + if (head != 0) { + min = node_min_byte_len(ND_CAR(x), env); + if (min != 0) head = 0; + } + } while (IS_NOT_NULL(x = ND_CDR(x))); + } + break; + + case ND_ALT: + { + int must; + + must = RECURSION_MUST; + do { + ret = infinite_recursive_call_check(ND_CAR(node), env, head); + if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; + + r |= (ret & RECURSION_EXIST); + must &= ret; + } while (IS_NOT_NULL(node = ND_CDR(node))); + r |= must; + } + break; + + case ND_QUANT: + if (QUANT_(node)->upper == 0) break; + + r = infinite_recursive_call_check(ND_BODY(node), env, head); + if (r < 0) return r; + if ((r & RECURSION_MUST) != 0) { + if (QUANT_(node)->lower == 0) + r &= ~RECURSION_MUST; + } + break; + + case ND_ANCHOR: + if (! ANCHOR_HAS_BODY(ANCHOR_(node))) + break; + /* fall */ + case ND_CALL: + r = infinite_recursive_call_check(ND_BODY(node), env, head); + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + if (en->type == BAG_MEMORY) { + if (ND_IS_MARK2(node)) + return 0; + else if (ND_IS_MARK1(node)) + return (head == 0 ? RECURSION_EXIST | RECURSION_MUST + : RECURSION_EXIST | RECURSION_MUST | RECURSION_INFINITE); + else { + ND_STATUS_ADD(node, MARK2); + r = infinite_recursive_call_check(ND_BODY(node), env, head); + ND_STATUS_REMOVE(node, MARK2); + } + } + else if (en->type == BAG_IF_ELSE) { + int eret; + + ret = infinite_recursive_call_check(ND_BODY(node), env, head); + if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; + r |= ret; + if (IS_NOT_NULL(en->te.Then)) { + OnigLen min; + if (head != 0) { + min = node_min_byte_len(ND_BODY(node), env); + } + else min = 0; + + ret = infinite_recursive_call_check(en->te.Then, env, min != 0 ? 0:head); + if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; + r |= ret; + } + if (IS_NOT_NULL(en->te.Else)) { + eret = infinite_recursive_call_check(en->te.Else, env, head); + if (eret < 0 || (eret & RECURSION_INFINITE) != 0) return eret; + r |= (eret & RECURSION_EXIST); + if ((eret & RECURSION_MUST) == 0) + r &= ~RECURSION_MUST; + } + else { + r &= ~RECURSION_MUST; + } + } + else { + r = infinite_recursive_call_check(ND_BODY(node), env, head); + } + } + break; + + default: + break; + } + + return r; +} + +static int +infinite_recursive_call_check_trav(Node* node, ParseEnv* env) +{ + int r; + + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + do { + r = infinite_recursive_call_check_trav(ND_CAR(node), env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_ANCHOR: + if (! ANCHOR_HAS_BODY(ANCHOR_(node))) { + r = 0; + break; + } + /* fall */ + case ND_QUANT: + r = infinite_recursive_call_check_trav(ND_BODY(node), env); + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + if (en->type == BAG_MEMORY) { + if (ND_IS_RECURSION(node) && ND_IS_CALLED(node)) { + int ret; + + ND_STATUS_ADD(node, MARK1); + + ret = infinite_recursive_call_check(ND_BODY(node), env, 1); + if (ret < 0) return ret; + else if ((ret & (RECURSION_MUST | RECURSION_INFINITE)) != 0) + return ONIGERR_NEVER_ENDING_RECURSION; + + ND_STATUS_REMOVE(node, MARK1); + } + } + else if (en->type == BAG_IF_ELSE) { + if (IS_NOT_NULL(en->te.Then)) { + r = infinite_recursive_call_check_trav(en->te.Then, env); + if (r != 0) return r; + } + if (IS_NOT_NULL(en->te.Else)) { + r = infinite_recursive_call_check_trav(en->te.Else, env); + if (r != 0) return r; + } + } + } + + r = infinite_recursive_call_check_trav(ND_BODY(node), env); + break; + + default: + r = 0; + break; + } + + return r; +} + +static int +recursive_call_check(Node* node) +{ + int r; + + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + r = 0; + do { + r |= recursive_call_check(ND_CAR(node)); + } while (IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_ANCHOR: + if (! ANCHOR_HAS_BODY(ANCHOR_(node))) { + r = 0; + break; + } + /* fall */ + case ND_QUANT: + r = recursive_call_check(ND_BODY(node)); + break; + + case ND_CALL: + r = recursive_call_check(ND_BODY(node)); + if (r != 0) { + if (ND_IS_MARK1(ND_BODY(node))) + ND_STATUS_ADD(node, RECURSION); + } + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + if (en->type == BAG_MEMORY) { + if (ND_IS_MARK2(node)) + return 0; + else if (ND_IS_MARK1(node)) + return 1; /* recursion */ + else { + ND_STATUS_ADD(node, MARK2); + r = recursive_call_check(ND_BODY(node)); + ND_STATUS_REMOVE(node, MARK2); + } + } + else if (en->type == BAG_IF_ELSE) { + r = 0; + if (IS_NOT_NULL(en->te.Then)) { + r |= recursive_call_check(en->te.Then); + } + if (IS_NOT_NULL(en->te.Else)) { + r |= recursive_call_check(en->te.Else); + } + r |= recursive_call_check(ND_BODY(node)); + } + else { + r = recursive_call_check(ND_BODY(node)); + } + } + break; + + default: + r = 0; + break; + } + + return r; +} + +#define IN_RECURSION (1<<0) +#define FOUND_CALLED_NODE 1 + +static int +recursive_call_check_trav(Node* node, ParseEnv* env, int state) +{ + int r = 0; + + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + { + int ret; + do { + ret = recursive_call_check_trav(ND_CAR(node), env, state); + if (ret == FOUND_CALLED_NODE) r = FOUND_CALLED_NODE; + else if (ret < 0) return ret; + } while (IS_NOT_NULL(node = ND_CDR(node))); + } + break; + + case ND_QUANT: + r = recursive_call_check_trav(ND_BODY(node), env, state); + if (QUANT_(node)->upper == 0) { + if (r == FOUND_CALLED_NODE) + QUANT_(node)->include_referred = 1; + } + break; + + case ND_ANCHOR: + { + AnchorNode* an = ANCHOR_(node); + if (ANCHOR_HAS_BODY(an)) + r = recursive_call_check_trav(ND_ANCHOR_BODY(an), env, state); + } + break; + + case ND_BAG: + { + int ret; + int state1; + BagNode* en = BAG_(node); + + if (en->type == BAG_MEMORY) { + if (ND_IS_CALLED(node)) { + r = FOUND_CALLED_NODE; + goto check_recursion; + } + else if ((state & IN_RECURSION) != 0) { + check_recursion: + if (! ND_IS_RECURSION(node)) { + ND_STATUS_ADD(node, MARK1); + ret = recursive_call_check(ND_BODY(node)); + if (ret != 0) { + ND_STATUS_ADD(node, RECURSION); + MEM_STATUS_ON(env->backtrack_mem, en->m.regnum); + } + ND_STATUS_REMOVE(node, MARK1); + } + } + } + + state1 = state; + if (ND_IS_RECURSION(node)) + state1 |= IN_RECURSION; + + ret = recursive_call_check_trav(ND_BODY(node), env, state1); + if (ret == FOUND_CALLED_NODE) + r = FOUND_CALLED_NODE; + + if (en->type == BAG_IF_ELSE) { + if (IS_NOT_NULL(en->te.Then)) { + ret = recursive_call_check_trav(en->te.Then, env, state1); + if (ret == FOUND_CALLED_NODE) + r = FOUND_CALLED_NODE; + } + if (IS_NOT_NULL(en->te.Else)) { + ret = recursive_call_check_trav(en->te.Else, env, state1); + if (ret == FOUND_CALLED_NODE) + r = FOUND_CALLED_NODE; + } + } + } + break; + + default: + break; + } + + return r; +} + +#endif + +static void +remove_from_list(Node* prev, Node* a) +{ + if (ND_CDR(prev) != a) return ; + + ND_CDR(prev) = ND_CDR(a); + ND_CDR(a) = NULL_NODE; +} + +static int +reduce_string_list(Node* node, OnigEncoding enc) +{ + int r = 0; + + switch (ND_TYPE(node)) { + case ND_LIST: + { + Node* prev; + Node* curr; + Node* prev_node; + Node* next_node; + + prev = NULL_NODE; + do { + next_node = ND_CDR(node); + curr = ND_CAR(node); + if (ND_TYPE(curr) == ND_STRING) { + if (IS_NULL(prev) + || STR_(curr)->flag != STR_(prev)->flag + || ND_STATUS(curr) != ND_STATUS(prev)) { + prev = curr; + prev_node = node; + } + else { + r = node_str_node_cat(prev, curr); + if (r != 0) return r; + remove_from_list(prev_node, node); + onig_node_free(node); + } + } + else { + if (IS_NOT_NULL(prev)) { +#ifdef USE_CHECK_VALIDITY_OF_STRING_IN_TREE + StrNode* sn = STR_(prev); + if (! ONIGENC_IS_VALID_MBC_STRING(enc, sn->s, sn->end)) + return ONIGERR_INVALID_WIDE_CHAR_VALUE; +#endif + prev = NULL_NODE; + } + r = reduce_string_list(curr, enc); + if (r != 0) return r; + prev_node = node; + } + + node = next_node; + } while (r == 0 && IS_NOT_NULL(node)); + +#ifdef USE_CHECK_VALIDITY_OF_STRING_IN_TREE + if (IS_NOT_NULL(prev)) { + StrNode* sn = STR_(prev); + if (! ONIGENC_IS_VALID_MBC_STRING(enc, sn->s, sn->end)) + return ONIGERR_INVALID_WIDE_CHAR_VALUE; + } +#endif + } + break; + + case ND_ALT: + do { + r = reduce_string_list(ND_CAR(node), enc); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); + break; + +#ifdef USE_CHECK_VALIDITY_OF_STRING_IN_TREE + case ND_STRING: + { + StrNode* sn = STR_(node); + if (! ONIGENC_IS_VALID_MBC_STRING(enc, sn->s, sn->end)) + return ONIGERR_INVALID_WIDE_CHAR_VALUE; + } + break; +#endif + + case ND_ANCHOR: + if (IS_NULL(ND_BODY(node))) + break; + /* fall */ + case ND_QUANT: + r = reduce_string_list(ND_BODY(node), enc); + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + r = reduce_string_list(ND_BODY(node), enc); + if (r != 0) return r; + + if (en->type == BAG_IF_ELSE) { + if (IS_NOT_NULL(en->te.Then)) { + r = reduce_string_list(en->te.Then, enc); + if (r != 0) return r; + } + if (IS_NOT_NULL(en->te.Else)) { + r = reduce_string_list(en->te.Else, enc); + if (r != 0) return r; + } + } + } + break; + + default: + break; + } + + return r; +} + + +#define IN_ALT (1<<0) +#define IN_NOT (1<<1) +#define IN_REAL_REPEAT (1<<2) +#define IN_VAR_REPEAT (1<<3) +#define IN_ZERO_REPEAT (1<<4) +#define IN_MULTI_ENTRY (1<<5) +#define IN_PREC_READ (1<<6) +#define IN_LOOK_BEHIND (1<<7) +#define IN_PEEK (1<<8) + +/* divide different length alternatives in look-behind. + (?<=A|B) ==> (?<=A)|(?<=B) + (? (?type; + + head = ND_ANCHOR_BODY(an); + np = ND_CAR(head); + node_swap(node, head); + ND_CAR(node) = head; + ND_BODY(head) = np; + + np = node; + while (IS_NOT_NULL(np = ND_CDR(np))) { + r = onig_node_copy(&insert_node, head); + if (r != 0) return r; + CHECK_NULL_RETURN_MEMERR(insert_node); + ND_BODY(insert_node) = ND_CAR(np); + ND_CAR(np) = insert_node; + } + + if (anc_type == ANCR_LOOK_BEHIND_NOT) { + np = node; + do { + ND_SET_TYPE(np, ND_LIST); /* alt -> list */ + } while (IS_NOT_NULL(np = ND_CDR(np))); + } + return 0; +} + +static int +node_reduce_in_look_behind(Node* node) +{ + NodeType type; + Node* body; + + if (ND_TYPE(node) != ND_QUANT) return 0; + + body = ND_BODY(node); + type = ND_TYPE(body); + if (type == ND_STRING || type == ND_CTYPE || + type == ND_CCLASS || type == ND_BACKREF) { + QuantNode* qn = QUANT_(node); + qn->upper = qn->lower; + if (qn->upper == 0) + return 1; /* removed */ + } + + return 0; +} + +static int +list_reduce_in_look_behind(Node* node) +{ + int r; + + switch (ND_TYPE(node)) { + case ND_QUANT: + r = node_reduce_in_look_behind(node); + if (r > 0) r = 0; + break; + + case ND_LIST: + do { + r = node_reduce_in_look_behind(ND_CAR(node)); + if (r <= 0) break; + } while (IS_NOT_NULL(node = ND_CDR(node))); + break; + + default: + r = 0; + break; + } + + return r; +} + +static int +alt_reduce_in_look_behind(Node* node, regex_t* reg, ParseEnv* env) +{ + int r; + + switch (ND_TYPE(node)) { + case ND_ALT: + do { + r = list_reduce_in_look_behind(ND_CAR(node)); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); + break; + + default: + r = list_reduce_in_look_behind(node); + break; + } + + return r; +} + +static int tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env); + +static int +tune_look_behind(Node* node, regex_t* reg, int state, ParseEnv* env) +{ + int r; + int state1; + int used; + MinMaxCharLen ci; + Node* body; + AnchorNode* an = ANCHOR_(node); + + used = FALSE; + r = check_node_in_look_behind(ND_ANCHOR_BODY(an), + an->type == ANCR_LOOK_BEHIND_NOT ? 1 : 0, + &used); + if (r < 0) return r; + if (r > 0) return ONIGERR_INVALID_LOOK_BEHIND_PATTERN; + + if (an->type == ANCR_LOOK_BEHIND_NOT) + state1 = state | IN_NOT | IN_LOOK_BEHIND; + else + state1 = state | IN_LOOK_BEHIND; + + body = ND_ANCHOR_BODY(an); + /* Execute tune_tree(body) before call node_char_len(). + Because case-fold expansion must be done before node_char_len(). + */ + r = tune_tree(body, reg, state1, env); + if (r != 0) return r; + + r = alt_reduce_in_look_behind(body, reg, env); + if (r != 0) return r; + + r = node_char_len(body, reg, &ci, env); + if (r >= 0) { + /* #177: overflow in onigenc_step_back() */ + if ((ci.max != INFINITE_LEN && ci.max > LOOK_BEHIND_MAX_CHAR_LEN) + || ci.min > LOOK_BEHIND_MAX_CHAR_LEN) { + return ONIGERR_INVALID_LOOK_BEHIND_PATTERN; + } + + if (ci.min == 0 && ci.min_is_sure != FALSE && used == FALSE) { + if (an->type == ANCR_LOOK_BEHIND_NOT) + r = onig_node_reset_fail(node); + else + r = onig_node_reset_empty(node); + + return r; + } + + if (r == CHAR_LEN_TOP_ALT_FIXED) { + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND)) { + r = divide_look_behind_alternatives(node); + if (r == 0) + r = tune_tree(node, reg, state, env); + } + else if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND)) + goto normal; + else + r = ONIGERR_INVALID_LOOK_BEHIND_PATTERN; + } + else { /* CHAR_LEN_NORMAL */ + normal: + if (ci.min == INFINITE_LEN) { + r = ONIGERR_INVALID_LOOK_BEHIND_PATTERN; + } + else { + if (ci.min != ci.max && + ! IS_SYNTAX_BV(env->syntax, ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND)) { + r = ONIGERR_INVALID_LOOK_BEHIND_PATTERN; + } + else { + Node* tail; + + /* check lead_node is already set by double call after + divide_look_behind_alternatives() */ + if (IS_NULL(an->lead_node)) { + an->char_min_len = ci.min; + an->char_max_len = ci.max; + r = get_tree_tail_literal(body, &tail, reg, 0); + if (r == GET_VALUE_FOUND) { + r = onig_node_copy(&(an->lead_node), tail); + if (r != 0) return r; + } + } + r = ONIG_NORMAL; + } + } + } + } + + return r; +} + +static int +tune_next(Node* node, Node* next_node, regex_t* reg) +{ + int called; + NodeType type; + + called = FALSE; + + retry: + type = ND_TYPE(node); + if (type == ND_QUANT) { + QuantNode* qn = QUANT_(node); + if (qn->greedy && IS_INFINITE_REPEAT(qn->upper)) { +#ifdef USE_QUANT_PEEK_NEXT + if (called == FALSE) { + Node* n = get_tree_head_literal(next_node, 1, reg); + /* '\0': for UTF-16BE etc... */ + if (IS_NOT_NULL(n) && STR_(n)->s[0] != '\0') { + qn->next_head_exact = n; + } + } +#endif + /* automatic posseivation a*b ==> (?>a*)b */ + if (qn->lower <= 1) { + if (is_strict_real_node(ND_BODY(node))) { + Node *x, *y; + x = get_tree_head_literal(ND_BODY(node), 0, reg); + if (IS_NOT_NULL(x)) { + y = get_tree_head_literal(next_node, 0, reg); + if (IS_NOT_NULL(y) && is_exclusive(x, y, reg)) { + Node* en = onig_node_new_bag(BAG_STOP_BACKTRACK); + CHECK_NULL_RETURN_MEMERR(en); + ND_STATUS_ADD(en, STRICT_REAL_REPEAT); + node_swap(node, en); + ND_BODY(node) = en; + } + } + } + } + } + } + else if (type == ND_BAG) { + BagNode* en = BAG_(node); + if (en->type == BAG_MEMORY) { + if (ND_IS_CALLED(node)) + called = TRUE; + node = ND_BODY(node); + goto retry; + } + } + return 0; +} + + +static int +is_all_code_len_1_items(int n, OnigCaseFoldCodeItem items[]) +{ + int i; + + for (i = 0; i < n; i++) { + OnigCaseFoldCodeItem* item = items + i; + if (item->code_len != 1) return 0; + } + + return 1; +} + +static int +get_min_max_byte_len_case_fold_items(int n, OnigCaseFoldCodeItem items[], + OnigLen* rmin, OnigLen* rmax) +{ + int i; + OnigLen len, minlen, maxlen; + + minlen = INFINITE_LEN; + maxlen = 0; + for (i = 0; i < n; i++) { + OnigCaseFoldCodeItem* item = items + i; + + len = item->byte_len; + if (len < minlen) minlen = len; + if (len > maxlen) maxlen = len; + } + + *rmin = minlen; + *rmax = maxlen; + return 0; +} + +static int +make_code_list_to_string(Node** rnode, OnigEncoding enc, + int n, OnigCodePoint codes[]) +{ + int r, i, len; + Node* node; + UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN]; + + *rnode = NULL_NODE; + node = onig_node_new_str(NULL, NULL); + CHECK_NULL_RETURN_MEMERR(node); + + for (i = 0; i < n; i++) { + len = ONIGENC_CODE_TO_MBC(enc, codes[i], buf); + if (len < 0) { + r = len; + goto err; + } + + r = onig_node_str_cat(node, buf, buf + len); + if (r != 0) goto err; + } + + *rnode = node; + return 0; + + err: + onig_node_free(node); + return r; +} + +static int +unravel_cf_node_add(Node** rlist, Node* add) +{ + Node *list; + + list = *rlist; + if (IS_NULL(list)) { + list = onig_node_new_list(add, NULL); + CHECK_NULL_RETURN_MEMERR(list); + *rlist = list; + } + else { + Node* r = node_list_add(list, add); + CHECK_NULL_RETURN_MEMERR(r); + } + + return 0; +} + +static int +unravel_cf_string_add(Node** rlist, Node** rsn, UChar* s, UChar* end, + unsigned int flag) +{ + int r; + Node *sn, *list; + + list = *rlist; + sn = *rsn; + + if (IS_NOT_NULL(sn) && STR_(sn)->flag == flag) { + r = onig_node_str_cat(sn, s, end); + } + else { + sn = onig_node_new_str(s, end); + CHECK_NULL_RETURN_MEMERR(sn); + + STR_(sn)->flag = flag; + r = unravel_cf_node_add(&list, sn); + } + + if (r == 0) { + *rlist = list; + *rsn = sn; + } + return r; +} + +static int +unravel_cf_string_alt_or_cc_add(Node** rlist, int n, + OnigCaseFoldCodeItem items[], OnigEncoding enc, + OnigCaseFoldType case_fold_flag, UChar* s, UChar* end) +{ + int r, i; + Node* node; + + if (is_all_code_len_1_items(n, items)) { + OnigCodePoint codes[14];/* least ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM + 1 */ + + codes[0] = ONIGENC_MBC_TO_CODE(enc, s, end); + for (i = 0; i < n; i++) { + OnigCaseFoldCodeItem* item = items + i; + codes[i+1] = item->code[0]; + } + r = onig_new_cclass_with_code_list(&node, enc, n + 1, codes); + if (r != 0) return r; + } + else { + Node *snode, *alt, *curr; + + snode = onig_node_new_str(s, end); + CHECK_NULL_RETURN_MEMERR(snode); + node = curr = onig_node_new_alt(snode, NULL_NODE); + if (IS_NULL(curr)) { + onig_node_free(snode); + return ONIGERR_MEMORY; + } + + r = 0; + for (i = 0; i < n; i++) { + OnigCaseFoldCodeItem* item = items + i; + r = make_code_list_to_string(&snode, enc, item->code_len, item->code); + if (r != 0) { + onig_node_free(node); + return r; + } + + alt = onig_node_new_alt(snode, NULL_NODE); + if (IS_NULL(alt)) { + onig_node_free(snode); + onig_node_free(node); + return ONIGERR_MEMORY; + } + + ND_CDR(curr) = alt; + curr = alt; + } + } + + r = unravel_cf_node_add(rlist, node); + if (r != 0) onig_node_free(node); + return r; +} + +static int +unravel_cf_look_behind_add(Node** rlist, Node** rsn, + int n, OnigCaseFoldCodeItem items[], OnigEncoding enc, + UChar* s, OnigLen one_len) +{ + int r, i, found; + + found = FALSE; + for (i = 0; i < n; i++) { + OnigCaseFoldCodeItem* item = items + i; + if (item->byte_len == one_len) { + if (item->code_len == 1) { + found = TRUE; + break; + } + } + } + + if (found == FALSE) { + r = unravel_cf_string_add(rlist, rsn, s, s + one_len, 0 /* flag */); + } + else { + Node* node; + OnigCodePoint codes[14];/* least ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM + 1 */ + + found = 0; + codes[found++] = ONIGENC_MBC_TO_CODE(enc, s, s + one_len); + for (i = 0; i < n; i++) { + OnigCaseFoldCodeItem* item = items + i; + if (item->byte_len == one_len) { + if (item->code_len == 1) { + codes[found++] = item->code[0]; + } + } + } + r = onig_new_cclass_with_code_list(&node, enc, found, codes); + if (r != 0) return r; + + r = unravel_cf_node_add(rlist, node); + if (r != 0) onig_node_free(node); + + *rsn = NULL_NODE; + } + + return r; +} + +static int +unravel_case_fold_string(Node* node, regex_t* reg, int state) +{ + int r, n, in_look_behind; + OnigLen min_len, max_len, one_len; + UChar *start, *end, *p, *q; + StrNode* snode; + Node *sn, *list; + OnigEncoding enc; + OnigCaseFoldCodeItem items[ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM]; + + if (ND_STRING_IS_CASE_EXPANDED(node)) return 0; + + ND_STATUS_REMOVE(node, IGNORECASE); + snode = STR_(node); + start = snode->s; + end = snode->end; + if (start >= end) return 0; + + in_look_behind = (state & IN_LOOK_BEHIND) != 0; + enc = reg->enc; + + list = sn = NULL_NODE; + p = start; + while (p < end) { + n = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc, reg->case_fold_flag, p, end, + items); + if (n < 0) { + r = n; + goto err; + } + + one_len = (OnigLen )enclen(enc, p); + if (n == 0) { + q = p + one_len; + if (q > end) q = end; + r = unravel_cf_string_add(&list, &sn, p, q, 0 /* flag */); + if (r != 0) goto err; + } + else { + if (in_look_behind != 0) { + q = p + one_len; + if (items[0].byte_len != one_len) { + r = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc, reg->case_fold_flag, p, q, + items); + if (r < 0) goto err; + n = r; + } + r = unravel_cf_look_behind_add(&list, &sn, n, items, enc, p, one_len); + if (r != 0) goto err; + } + else { + get_min_max_byte_len_case_fold_items(n, items, &min_len, &max_len); + if (min_len != max_len) { + r = ONIGERR_PARSER_BUG; + goto err; + } + + q = p + max_len; + r = unravel_cf_string_alt_or_cc_add(&list, n, items, enc, + reg->case_fold_flag, p, q); + if (r != 0) goto err; + sn = NULL_NODE; + } + } + + p = q; + } + + if (IS_NOT_NULL(list)) { + if (node_list_len(list) == 1) { + node_swap(node, ND_CAR(list)); + } + else { + node_swap(node, list); + } + onig_node_free(list); + } + else { + node_swap(node, sn); + onig_node_free(sn); + } + return 0; + + err: + if (IS_NOT_NULL(list)) + onig_node_free(list); + else if (IS_NOT_NULL(sn)) + onig_node_free(sn); + + return r; +} + +#ifdef USE_RIGID_CHECK_CAPTURES_IN_EMPTY_REPEAT +static enum BodyEmptyType +quantifiers_memory_node_info(Node* node) +{ + int r = BODY_MAY_BE_EMPTY; + + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + { + int v; + do { + v = quantifiers_memory_node_info(ND_CAR(node)); + if (v > r) r = v; + } while (IS_NOT_NULL(node = ND_CDR(node))); + } + break; + +#ifdef USE_CALL + case ND_CALL: + if (ND_IS_RECURSION(node)) { + return BODY_MAY_BE_EMPTY_REC; /* tiny version */ + } + else + r = quantifiers_memory_node_info(ND_BODY(node)); + break; +#endif + + case ND_QUANT: + { + QuantNode* qn = QUANT_(node); + if (qn->upper != 0) { + r = quantifiers_memory_node_info(ND_BODY(node)); + } + } + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + switch (en->type) { + case BAG_MEMORY: + if (ND_IS_RECURSION(node)) { + return BODY_MAY_BE_EMPTY_REC; + } + return BODY_MAY_BE_EMPTY_MEM; + break; + + case BAG_OPTION: + case BAG_STOP_BACKTRACK: + r = quantifiers_memory_node_info(ND_BODY(node)); + break; + case BAG_IF_ELSE: + { + int v; + r = quantifiers_memory_node_info(ND_BODY(node)); + if (IS_NOT_NULL(en->te.Then)) { + v = quantifiers_memory_node_info(en->te.Then); + if (v > r) r = v; + } + if (IS_NOT_NULL(en->te.Else)) { + v = quantifiers_memory_node_info(en->te.Else); + if (v > r) r = v; + } + } + break; + } + } + break; + + case ND_BACKREF: + case ND_STRING: + case ND_CTYPE: + case ND_CCLASS: + case ND_ANCHOR: + case ND_GIMMICK: + default: + break; + } + + return r; +} +#endif /* USE_RIGID_CHECK_CAPTURES_IN_EMPTY_REPEAT */ + + +#ifdef USE_CALL + +#ifdef __GNUC__ +__inline +#endif +static int +check_call_reference(CallNode* cn, ParseEnv* env, int state) +{ + MemEnv* mem_env = PARSEENV_MEMENV(env); + + if (cn->by_number != 0) { + int gnum = cn->called_gnum; + + if (env->num_named > 0 && + IS_SYNTAX_BV(env->syntax, ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP) && + ! OPTON_CAPTURE_GROUP(env->options)) { + return ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED; + } + + if (gnum > env->num_mem) { + onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_GROUP_REFERENCE, + cn->name, cn->name_end); + return ONIGERR_UNDEFINED_GROUP_REFERENCE; + } + + set_call_attr: + ND_CALL_BODY(cn) = mem_env[cn->called_gnum].mem_node; + if (IS_NULL(ND_CALL_BODY(cn))) { + onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE, + cn->name, cn->name_end); + return ONIGERR_UNDEFINED_NAME_REFERENCE; + } + + ND_STATUS_ADD(ND_CALL_BODY(cn), REFERENCED); + } + else { + int *refs; + + int n = onig_name_to_group_numbers(env->reg, cn->name, cn->name_end, &refs); + if (n <= 0) { + onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE, + cn->name, cn->name_end); + return ONIGERR_UNDEFINED_NAME_REFERENCE; + } + else if (n > 1) { + onig_scan_env_set_error_string(env, ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL, + cn->name, cn->name_end); + return ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL; + } + else { + cn->called_gnum = refs[0]; + goto set_call_attr; + } + } + + return 0; +} + +#ifdef USE_WHOLE_OPTIONS +static int +check_whole_options_position(Node* node /* root */, ParseEnv* env) +{ + int is_list; + + is_list = FALSE; + +#ifdef USE_CALL + if ((env->flags & PE_FLAG_HAS_CALL_ZERO) != 0) { + node = ND_BODY(node); + } +#endif + + start: + switch (ND_TYPE(node)) { + case ND_LIST: + if (IS_NOT_NULL(ND_CDR(node))) + is_list = TRUE; + + node = ND_CAR(node); + goto start; + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + if (en->type == BAG_OPTION) { + if (ND_IS_WHOLE_OPTIONS(node)) { + if (is_list == TRUE && IS_NOT_NULL(ND_BODY(node))) + break; + + return 0; + } + } + } + break; + + default: + break; + } + + return ONIGERR_INVALID_GROUP_OPTION; +} +#endif + +static void +tune_call2_call(Node* node) +{ + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + do { + tune_call2_call(ND_CAR(node)); + } while (IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_QUANT: + tune_call2_call(ND_BODY(node)); + break; + + case ND_ANCHOR: + if (ANCHOR_HAS_BODY(ANCHOR_(node))) + tune_call2_call(ND_BODY(node)); + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + if (en->type == BAG_MEMORY) { + if (! ND_IS_MARK1(node)) { + ND_STATUS_ADD(node, MARK1); + tune_call2_call(ND_BODY(node)); + ND_STATUS_REMOVE(node, MARK1); + } + } + else if (en->type == BAG_IF_ELSE) { + tune_call2_call(ND_BODY(node)); + if (IS_NOT_NULL(en->te.Then)) + tune_call2_call(en->te.Then); + if (IS_NOT_NULL(en->te.Else)) + tune_call2_call(en->te.Else); + } + else { + tune_call2_call(ND_BODY(node)); + } + } + break; + + case ND_CALL: + if (! ND_IS_MARK1(node)) { + ND_STATUS_ADD(node, MARK1); + { + CallNode* cn = CALL_(node); + Node* called = ND_CALL_BODY(cn); + + cn->entry_count++; + + ND_STATUS_ADD(called, CALLED); + BAG_(called)->m.entry_count++; + tune_call2_call(called); + } + ND_STATUS_REMOVE(node, MARK1); + } + break; + + default: + break; + } +} + +static int +tune_call(Node* node, ParseEnv* env, int state) +{ + int r; + + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + do { + r = tune_call(ND_CAR(node), env, state); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_QUANT: + if (QUANT_(node)->upper == 0) + state |= IN_ZERO_REPEAT; + + r = tune_call(ND_BODY(node), env, state); + break; + + case ND_ANCHOR: + if (ANCHOR_HAS_BODY(ANCHOR_(node))) + r = tune_call(ND_BODY(node), env, state); + else + r = 0; + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + if (en->type == BAG_MEMORY) { + if ((state & IN_ZERO_REPEAT) != 0) { + ND_STATUS_ADD(node, IN_ZERO_REPEAT); + BAG_(node)->m.entry_count--; + } + r = tune_call(ND_BODY(node), env, state); + } + else if (en->type == BAG_IF_ELSE) { + r = tune_call(ND_BODY(node), env, state); + if (r != 0) return r; + if (IS_NOT_NULL(en->te.Then)) { + r = tune_call(en->te.Then, env, state); + if (r != 0) return r; + } + if (IS_NOT_NULL(en->te.Else)) + r = tune_call(en->te.Else, env, state); + } + else + r = tune_call(ND_BODY(node), env, state); + } + break; + + case ND_CALL: + if ((state & IN_ZERO_REPEAT) != 0) { + ND_STATUS_ADD(node, IN_ZERO_REPEAT); + CALL_(node)->entry_count--; + } + + r = check_call_reference(CALL_(node), env, state); + break; + + default: + r = 0; + break; + } + + return r; +} + +static int +tune_call2(Node* node) +{ + int r = 0; + + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + do { + r = tune_call2(ND_CAR(node)); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_QUANT: + if (QUANT_(node)->upper != 0) + r = tune_call2(ND_BODY(node)); + break; + + case ND_ANCHOR: + if (ANCHOR_HAS_BODY(ANCHOR_(node))) + r = tune_call2(ND_BODY(node)); + break; + + case ND_BAG: + if (! ND_IS_IN_ZERO_REPEAT(node)) + r = tune_call2(ND_BODY(node)); + + { + BagNode* en = BAG_(node); + + if (r != 0) return r; + if (en->type == BAG_IF_ELSE) { + if (IS_NOT_NULL(en->te.Then)) { + r = tune_call2(en->te.Then); + if (r != 0) return r; + } + if (IS_NOT_NULL(en->te.Else)) + r = tune_call2(en->te.Else); + } + } + break; + + case ND_CALL: + if (! ND_IS_IN_ZERO_REPEAT(node)) { + tune_call2_call(node); + } + break; + + default: + break; + } + + return r; +} + + +static void +tune_called_state_call(Node* node, int state) +{ + switch (ND_TYPE(node)) { + case ND_ALT: + state |= IN_ALT; + /* fall */ + case ND_LIST: + do { + tune_called_state_call(ND_CAR(node), state); + } while (IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_QUANT: + { + QuantNode* qn = QUANT_(node); + + if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 2) + state |= IN_REAL_REPEAT; + if (qn->lower != qn->upper) + state |= IN_VAR_REPEAT; + if ((state & IN_PEEK) != 0) + ND_STATUS_ADD(node, INPEEK); + + tune_called_state_call(ND_QUANT_BODY(qn), state); + } + break; + + case ND_ANCHOR: + { + AnchorNode* an = ANCHOR_(node); + + switch (an->type) { + case ANCR_PREC_READ_NOT: + case ANCR_LOOK_BEHIND_NOT: + state |= (IN_NOT | IN_PEEK); + tune_called_state_call(ND_ANCHOR_BODY(an), state); + break; + case ANCR_PREC_READ: + case ANCR_LOOK_BEHIND: + state |= IN_PEEK; + tune_called_state_call(ND_ANCHOR_BODY(an), state); + break; + default: + break; + } + } + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + if (en->type == BAG_MEMORY) { + if (ND_IS_MARK1(node)) { + if ((~en->m.called_state & state) != 0) { + en->m.called_state |= state; + tune_called_state_call(ND_BODY(node), state); + } + } + else { + ND_STATUS_ADD(node, MARK1); + en->m.called_state |= state; + tune_called_state_call(ND_BODY(node), state); + ND_STATUS_REMOVE(node, MARK1); + } + } + else if (en->type == BAG_IF_ELSE) { + state |= IN_ALT; + tune_called_state_call(ND_BODY(node), state); + if (IS_NOT_NULL(en->te.Then)) { + tune_called_state_call(en->te.Then, state); + } + if (IS_NOT_NULL(en->te.Else)) + tune_called_state_call(en->te.Else, state); + } + else { + tune_called_state_call(ND_BODY(node), state); + } + } + break; + + case ND_CALL: + if ((state & IN_PEEK) != 0) + ND_STATUS_ADD(node, INPEEK); + if ((state & IN_REAL_REPEAT) != 0) + ND_STATUS_ADD(node, IN_REAL_REPEAT); + + tune_called_state_call(ND_BODY(node), state); + break; + + default: + break; + } +} + +static void +tune_called_state(Node* node, int state) +{ + switch (ND_TYPE(node)) { + case ND_ALT: + state |= IN_ALT; + /* fall */ + case ND_LIST: + do { + tune_called_state(ND_CAR(node), state); + } while (IS_NOT_NULL(node = ND_CDR(node))); + break; + +#ifdef USE_CALL + case ND_CALL: + if ((state & IN_PEEK) != 0) + ND_STATUS_ADD(node, INPEEK); + if ((state & IN_REAL_REPEAT) != 0) + ND_STATUS_ADD(node, IN_REAL_REPEAT); + + tune_called_state_call(node, state); + break; +#endif + + case ND_BAG: + { + BagNode* en = BAG_(node); + + switch (en->type) { + case BAG_MEMORY: + if (en->m.entry_count > 1) + state |= IN_MULTI_ENTRY; + + en->m.called_state |= state; + /* fall */ + case BAG_OPTION: + case BAG_STOP_BACKTRACK: + tune_called_state(ND_BODY(node), state); + break; + case BAG_IF_ELSE: + state |= IN_ALT; + tune_called_state(ND_BODY(node), state); + if (IS_NOT_NULL(en->te.Then)) + tune_called_state(en->te.Then, state); + if (IS_NOT_NULL(en->te.Else)) + tune_called_state(en->te.Else, state); + break; + } + } + break; + + case ND_QUANT: + { + QuantNode* qn = QUANT_(node); + + if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 2) + state |= IN_REAL_REPEAT; + if (qn->lower != qn->upper) + state |= IN_VAR_REPEAT; + if ((state & IN_PEEK) != 0) + ND_STATUS_ADD(node, INPEEK); + + tune_called_state(ND_QUANT_BODY(qn), state); + } + break; + + case ND_ANCHOR: + { + AnchorNode* an = ANCHOR_(node); + + switch (an->type) { + case ANCR_PREC_READ_NOT: + case ANCR_LOOK_BEHIND_NOT: + state |= (IN_NOT | IN_PEEK); + tune_called_state(ND_ANCHOR_BODY(an), state); + break; + case ANCR_PREC_READ: + case ANCR_LOOK_BEHIND: + state |= IN_PEEK; + tune_called_state(ND_ANCHOR_BODY(an), state); + break; + default: + break; + } + } + break; + + case ND_BACKREF: + case ND_STRING: + case ND_CTYPE: + case ND_CCLASS: + case ND_GIMMICK: + default: + break; + } +} + +#endif /* USE_CALL */ + + +#ifdef __GNUC__ +__inline +#endif +static int +tune_anchor(Node* node, regex_t* reg, int state, ParseEnv* env) +{ + int r; + AnchorNode* an = ANCHOR_(node); + + switch (an->type) { + case ANCR_PREC_READ: + r = tune_tree(ND_ANCHOR_BODY(an), reg, (state | IN_PREC_READ), env); + break; + case ANCR_PREC_READ_NOT: + r = tune_tree(ND_ANCHOR_BODY(an), reg, (state | IN_PREC_READ | IN_NOT), + env); + break; + + case ANCR_LOOK_BEHIND: + case ANCR_LOOK_BEHIND_NOT: + r = tune_look_behind(node, reg, state, env); + break; + + default: + r = 0; + break; + } + + return r; +} + +#ifdef __GNUC__ +__inline +#endif +static int +tune_quant(Node* node, regex_t* reg, int state, ParseEnv* env) +{ + int r; + QuantNode* qn = QUANT_(node); + Node* body = ND_BODY(node); + + if ((state & IN_REAL_REPEAT) != 0) { + ND_STATUS_ADD(node, IN_REAL_REPEAT); + } + if ((state & IN_MULTI_ENTRY) != 0) { + ND_STATUS_ADD(node, IN_MULTI_ENTRY); + } + + if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 1) { + OnigLen d = node_min_byte_len(body, env); + if (d == 0) { +#ifdef USE_RIGID_CHECK_CAPTURES_IN_EMPTY_REPEAT + qn->emptiness = quantifiers_memory_node_info(body); +#else + qn->emptiness = BODY_MAY_BE_EMPTY; +#endif + } + } + + if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 2) + state |= IN_REAL_REPEAT; + if (qn->lower != qn->upper) + state |= IN_VAR_REPEAT; + + r = tune_tree(body, reg, state, env); + if (r != 0) return r; + + /* expand string */ +#define EXPAND_STRING_MAX_LENGTH 100 + if (ND_TYPE(body) == ND_STRING) { + if (!IS_INFINITE_REPEAT(qn->lower) && qn->lower == qn->upper && + qn->lower > 1 && qn->lower <= EXPAND_STRING_MAX_LENGTH) { + int len = ND_STRING_LEN(body); + + if (len * qn->lower <= EXPAND_STRING_MAX_LENGTH) { + int i, n = qn->lower; + node_conv_to_str_node(node, body); + for (i = 0; i < n; i++) { + r = node_str_node_cat(node, body); + if (r != 0) return r; + } + onig_node_free(body); + return r; + } + } + } + + if (qn->greedy && (qn->emptiness == BODY_IS_NOT_EMPTY)) { + if (ND_TYPE(body) == ND_QUANT) { + QuantNode* tqn = QUANT_(body); + if (IS_NOT_NULL(tqn->head_exact)) { + qn->head_exact = tqn->head_exact; + tqn->head_exact = NULL; + } + } + else { + qn->head_exact = get_tree_head_literal(ND_BODY(node), 1, reg); + } + } + + return r; +} + +/* tune_tree does the following work. + 1. check empty loop. (set qn->emptiness) + 2. expand ignore-case in char class. + 3. set memory status bit flags. (reg->mem_stats) + 4. set qn->head_exact for [push, exact] -> [push_or_jump_exact1, exact]. + 5. find invalid patterns in look-behind. + 6. expand repeated string. + */ +static int +tune_tree(Node* node, regex_t* reg, int state, ParseEnv* env) +{ + int r = 0; + + switch (ND_TYPE(node)) { + case ND_LIST: + { + Node* prev = NULL_NODE; + do { + r = tune_tree(ND_CAR(node), reg, state, env); + if (IS_NOT_NULL(prev) && r == 0) { + r = tune_next(prev, ND_CAR(node), reg); + } + prev = ND_CAR(node); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); + } + break; + + case ND_ALT: + do { + r = tune_tree(ND_CAR(node), reg, (state | IN_ALT), env); + } while (r == 0 && IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_STRING: + if (ND_IS_REAL_IGNORECASE(node)) { + r = unravel_case_fold_string(node, reg, state); + } + break; + + case ND_BACKREF: + { + int i; + int* p; + BackRefNode* br = BACKREF_(node); + p = BACKREFS_P(br); + for (i = 0; i < br->back_num; i++) { + if (p[i] > env->num_mem) return ONIGERR_INVALID_BACKREF; + MEM_STATUS_ON(env->backrefed_mem, p[i]); +#if 0 +#ifdef USE_BACKREF_WITH_LEVEL + if (ND_IS_NEST_LEVEL(node)) { + MEM_STATUS_ON(env->backtrack_mem, p[i]); + } +#endif +#else + /* More precisely, it should be checked whether alt/repeat exists before + the subject capture node, and then this backreference position + exists before (or in) the capture node. */ + MEM_STATUS_ON(env->backtrack_mem, p[i]); +#endif + } + } + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + switch (en->type) { + case BAG_OPTION: + { + OnigOptionType options = reg->options; + reg->options = BAG_(node)->o.options; + r = tune_tree(ND_BODY(node), reg, state, env); + reg->options = options; + } + break; + + case BAG_MEMORY: +#ifdef USE_CALL + state |= en->m.called_state; +#endif + + if ((state & (IN_ALT | IN_NOT | IN_VAR_REPEAT | IN_MULTI_ENTRY)) != 0 + || ND_IS_RECURSION(node)) { + MEM_STATUS_ON(env->backtrack_mem, en->m.regnum); + } + r = tune_tree(ND_BODY(node), reg, state, env); + break; + + case BAG_STOP_BACKTRACK: + { + Node* target = ND_BODY(node); + r = tune_tree(target, reg, state, env); + if (ND_TYPE(target) == ND_QUANT) { + QuantNode* tqn = QUANT_(target); + if (IS_INFINITE_REPEAT(tqn->upper) && tqn->lower <= 1 && + tqn->greedy != 0) { /* (?>a*), a*+ etc... */ + if (is_strict_real_node(ND_BODY(target))) + ND_STATUS_ADD(node, STRICT_REAL_REPEAT); + } + } + } + break; + + case BAG_IF_ELSE: + r = tune_tree(ND_BODY(node), reg, (state | IN_ALT), env); + if (r != 0) return r; + if (IS_NOT_NULL(en->te.Then)) { + r = tune_tree(en->te.Then, reg, (state | IN_ALT), env); + if (r != 0) return r; + } + if (IS_NOT_NULL(en->te.Else)) + r = tune_tree(en->te.Else, reg, (state | IN_ALT), env); + break; + } + } + break; + + case ND_QUANT: + if ((state & (IN_PREC_READ | IN_LOOK_BEHIND)) != 0) + ND_STATUS_ADD(node, INPEEK); + + r = tune_quant(node, reg, state, env); + break; + + case ND_ANCHOR: + r = tune_anchor(node, reg, state, env); + break; + +#ifdef USE_CALL + case ND_CALL: +#endif + case ND_CTYPE: + case ND_CCLASS: + case ND_GIMMICK: + default: + break; + } + + return r; +} + +#ifndef ONIG_DONT_OPTIMIZE +static int +set_sunday_quick_search_or_bmh_skip_table(regex_t* reg, int case_expand, + UChar* s, UChar* end, + UChar skip[], int* roffset) +{ + int i, j, k, len, offset; + int n, clen; + UChar* p; + OnigEncoding enc; + OnigCaseFoldCodeItem items[ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM]; + UChar buf[ONIGENC_MBC_CASE_FOLD_MAXLEN]; + + enc = reg->enc; + offset = ENC_GET_SKIP_OFFSET(enc); + if (offset == ENC_SKIP_OFFSET_1_OR_0) { + UChar* p = s; + while (1) { + len = enclen(enc, p); + if (p + len >= end) { + if (len == 1) offset = 1; + else offset = 0; + break; + } + p += len; + } + } + + len = (int )(end - s); + if (len + offset >= UCHAR_MAX) + return ONIGERR_PARSER_BUG; + + *roffset = offset; + + for (i = 0; i < CHAR_MAP_SIZE; i++) { + skip[i] = (UChar )(len + offset); + } + + for (p = s; p < end; ) { + int z; + + clen = enclen(enc, p); + if (p + clen > end) clen = (int )(end - p); + + len = (int )(end - p); + for (j = 0; j < clen; j++) { + z = len - j + (offset - 1); + if (z <= 0) break; + skip[p[j]] = z; + } + + if (case_expand != 0) { + n = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc, reg->case_fold_flag, + p, end, items); + for (k = 0; k < n; k++) { + ONIGENC_CODE_TO_MBC(enc, items[k].code[0], buf); + for (j = 0; j < clen; j++) { + z = len - j + (offset - 1); + if (z <= 0) break; + if (skip[buf[j]] > z) + skip[buf[j]] = z; + } + } + } + + p += clen; + } + + return 0; +} +#endif + + +#define OPT_EXACT_MAXLEN 24 + +#if OPT_EXACT_MAXLEN >= UCHAR_MAX +#error Too big OPT_EXACT_MAXLEN +#endif + +typedef struct { + MinMaxLen mm; + OnigEncoding enc; + OnigCaseFoldType case_fold_flag; + ParseEnv* scan_env; +} OptEnv; + +typedef struct { + int left; + int right; +} OptAnc; + +typedef struct { + MinMaxLen mm; /* position */ + OptAnc anc; + int reach_end; + int len; + UChar s[OPT_EXACT_MAXLEN]; +} OptStr; + +typedef struct { + MinMaxLen mm; /* position */ + OptAnc anc; + int value; /* weighted value */ + UChar map[CHAR_MAP_SIZE]; +} OptMap; + +typedef struct { + MinMaxLen len; + OptAnc anc; + OptStr sb; /* boundary */ + OptStr sm; /* middle */ + OptStr spr; /* prec read (?=...) */ + OptMap map; /* boundary */ +} OptNode; + + +#ifndef ONIG_DONT_OPTIMIZE + +static int +map_position_value(OnigEncoding enc, int i) +{ + static const short int Vals[] = { + 5, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10, 1, 1, 10, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 12, 4, 7, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, + 5, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 5, 5, 5, + 5, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 1 + }; + + if (i < (int )(sizeof(Vals)/sizeof(Vals[0]))) { + if (i == 0 && ONIGENC_MBC_MINLEN(enc) > 1) + return 20; + else + return (int )Vals[i]; + } + else + return 4; /* Take it easy. */ +} + +static int +distance_value(MinMaxLen* mm) +{ + /* 1000 / (min-max-dist + 1) */ + static const short int dist_vals[] = { + 1000, 500, 333, 250, 200, 167, 143, 125, 111, 100, + 91, 83, 77, 71, 67, 63, 59, 56, 53, 50, + 48, 45, 43, 42, 40, 38, 37, 36, 34, 33, + 32, 31, 30, 29, 29, 28, 27, 26, 26, 25, + 24, 24, 23, 23, 22, 22, 21, 21, 20, 20, + 20, 19, 19, 19, 18, 18, 18, 17, 17, 17, + 16, 16, 16, 16, 15, 15, 15, 15, 14, 14, + 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, + 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 10, 10, 10, 10, 10 + }; + + OnigLen d; + + if (mm->max == INFINITE_LEN) return 0; + + d = mm->max - mm->min; + if (d < (OnigLen )(sizeof(dist_vals)/sizeof(dist_vals[0]))) + /* return dist_vals[d] * 16 / (mm->min + 12); */ + return (int )dist_vals[d]; + else + return 1; +} + +static int +comp_distance_value(MinMaxLen* d1, MinMaxLen* d2, int v1, int v2) +{ + if (v2 <= 0) return -1; + if (v1 <= 0) return 1; + + v1 *= distance_value(d1); + v2 *= distance_value(d2); + + if (v2 > v1) return 1; + if (v2 < v1) return -1; + + if (d2->min < d1->min) return 1; + if (d2->min > d1->min) return -1; + return 0; +} + +static void +copy_opt_env(OptEnv* to, OptEnv* from) +{ + *to = *from; +} + +static void +clear_opt_anc_info(OptAnc* a) +{ + a->left = 0; + a->right = 0; +} + +static void +copy_opt_anc_info(OptAnc* to, OptAnc* from) +{ + *to = *from; +} + +static void +concat_opt_anc_info(OptAnc* to, OptAnc* left, OptAnc* right, + OnigLen left_len, OnigLen right_len) +{ + clear_opt_anc_info(to); + + to->left = left->left; + if (left_len == 0) { + to->left |= right->left; + } + + to->right = right->right; + if (right_len == 0) { + to->right |= left->right; + } + else { + to->right |= (left->right & ANCR_PREC_READ_NOT); + } +} + +static int +is_left(int a) +{ + if (a == ANCR_END_BUF || a == ANCR_SEMI_END_BUF || + a == ANCR_END_LINE || a == ANCR_PREC_READ || a == ANCR_PREC_READ_NOT) + return 0; + + return 1; +} + +static int +is_set_opt_anc_info(OptAnc* to, int anc) +{ + if ((to->left & anc) != 0) return 1; + + return ((to->right & anc) != 0 ? 1 : 0); +} + +static void +add_opt_anc_info(OptAnc* to, int anc) +{ + if (is_left(anc)) + to->left |= anc; + else + to->right |= anc; +} + +static void +remove_opt_anc_info(OptAnc* to, int anc) +{ + if (is_left(anc)) + to->left &= ~anc; + else + to->right &= ~anc; +} + +static void +alt_merge_opt_anc_info(OptAnc* to, OptAnc* add) +{ + to->left &= add->left; + to->right &= add->right; +} + +static int +is_full_opt_exact(OptStr* e) +{ + return e->len >= OPT_EXACT_MAXLEN; +} + +static void +clear_opt_exact(OptStr* e) +{ + mml_clear(&e->mm); + clear_opt_anc_info(&e->anc); + e->reach_end = 0; + e->len = 0; + e->s[0] = '\0'; +} + +static void +copy_opt_exact(OptStr* to, OptStr* from) +{ + *to = *from; +} + +static int +concat_opt_exact(OptStr* to, OptStr* add, OnigEncoding enc) +{ + int i, j, len, r; + UChar *p, *end; + OptAnc tanc; + + r = 0; + p = add->s; + end = p + add->len; + for (i = to->len; p < end; ) { + len = enclen(enc, p); + if (i + len > OPT_EXACT_MAXLEN) { + r = 1; /* 1:full */ + break; + } + for (j = 0; j < len && p < end; j++) { + /* coverity[overrun-local] */ + to->s[i++] = *p++; + } + } + + to->len = i; + to->reach_end = (p == end ? add->reach_end : 0); + + concat_opt_anc_info(&tanc, &to->anc, &add->anc, 1, 1); + if (! to->reach_end) tanc.right = 0; + copy_opt_anc_info(&to->anc, &tanc); + + return r; +} + +static void +concat_opt_exact_str(OptStr* to, UChar* s, UChar* end, OnigEncoding enc) +{ + int i, j, len; + UChar *p; + + for (i = to->len, p = s; p < end && i < OPT_EXACT_MAXLEN; ) { + len = enclen(enc, p); + if (i + len > OPT_EXACT_MAXLEN) break; + for (j = 0; j < len && p < end; j++) { + /* coverity[overrun-local] */ + to->s[i++] = *p++; + } + } + + to->len = i; + + if (p >= end) + to->reach_end = 1; +} + +static void +alt_merge_opt_exact(OptStr* to, OptStr* add, OptEnv* env) +{ + int i, j, len; + + if (add->len == 0 || to->len == 0) { + clear_opt_exact(to); + return ; + } + + if (! mml_is_equal(&to->mm, &add->mm)) { + clear_opt_exact(to); + return ; + } + + for (i = 0; i < to->len && i < add->len; ) { + if (to->s[i] != add->s[i]) break; + len = enclen(env->enc, to->s + i); + + for (j = 1; j < len; j++) { + if (to->s[i+j] != add->s[i+j]) break; + } + if (j < len) break; + i += len; + } + + if (! add->reach_end || i < add->len || i < to->len) { + to->reach_end = 0; + } + to->len = i; + + alt_merge_opt_anc_info(&to->anc, &add->anc); + if (! to->reach_end) to->anc.right = 0; +} + +static void +select_opt_exact(OnigEncoding enc, OptStr* now, OptStr* alt) +{ + int vn, va; + + vn = now->len; + va = alt->len; + + if (va == 0) { + return ; + } + else if (vn == 0) { + copy_opt_exact(now, alt); + return ; + } + else if (vn <= 2 && va <= 2) { + /* ByteValTable[x] is big value --> low price */ + va = map_position_value(enc, now->s[0]); + vn = map_position_value(enc, alt->s[0]); + + if (now->len > 1) vn += 5; + if (alt->len > 1) va += 5; + } + + vn *= 2; + va *= 2; + + if (comp_distance_value(&now->mm, &alt->mm, vn, va) > 0) + copy_opt_exact(now, alt); +} + +static void +clear_opt_map(OptMap* map) +{ + static const OptMap clean_info = { + {0, 0}, {0, 0}, 0, + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + } + }; + + xmemcpy(map, &clean_info, sizeof(OptMap)); +} + +static void +copy_opt_map(OptMap* to, OptMap* from) +{ + *to = *from; +} + +static void +add_char_opt_map(OptMap* m, UChar c, OnigEncoding enc) +{ + if (m->map[c] == 0) { + m->map[c] = 1; + m->value += map_position_value(enc, c); + } +} + +static void +select_opt_map(OptMap* now, OptMap* alt) +{ + static int z = 1<<15; /* 32768: something big value */ + + int vn, va; + + if (alt->value == 0) return ; + if (now->value == 0) { + copy_opt_map(now, alt); + return ; + } + + vn = z / now->value; + va = z / alt->value; + if (comp_distance_value(&now->mm, &alt->mm, vn, va) > 0) + copy_opt_map(now, alt); +} + +static int +comp_opt_exact_or_map(OptStr* e, OptMap* m) +{ +#define COMP_EM_BASE 20 + int ae, am; + int case_value; + + if (m->value <= 0) return -1; + + case_value = 3; + ae = COMP_EM_BASE * e->len * case_value; + am = COMP_EM_BASE * 5 * 2 / m->value; + return comp_distance_value(&e->mm, &m->mm, ae, am); +} + +static void +alt_merge_opt_map(OnigEncoding enc, OptMap* to, OptMap* add) +{ + int i, val; + + /* if (! mml_is_equal(&to->mm, &add->mm)) return ; */ + if (to->value == 0) return ; + if (add->value == 0 || to->mm.max < add->mm.min) { + clear_opt_map(to); + return ; + } + + mml_alt_merge(&to->mm, &add->mm); + + val = 0; + for (i = 0; i < CHAR_MAP_SIZE; i++) { + if (add->map[i]) + to->map[i] = 1; + + if (to->map[i]) + val += map_position_value(enc, i); + } + to->value = val; + + alt_merge_opt_anc_info(&to->anc, &add->anc); +} + +static void +set_bound_node_opt_info(OptNode* opt, MinMaxLen* plen) +{ + mml_copy(&(opt->sb.mm), plen); + mml_copy(&(opt->spr.mm), plen); + mml_copy(&(opt->map.mm), plen); +} + +static void +clear_node_opt_info(OptNode* opt) +{ + mml_clear(&opt->len); + clear_opt_anc_info(&opt->anc); + clear_opt_exact(&opt->sb); + clear_opt_exact(&opt->sm); + clear_opt_exact(&opt->spr); + clear_opt_map(&opt->map); +} + +static void +copy_node_opt_info(OptNode* to, OptNode* from) +{ + *to = *from; +} + +static void +concat_left_node_opt_info(OnigEncoding enc, OptNode* to, OptNode* add) +{ + int sb_reach, sm_reach; + OptAnc tanc; + + concat_opt_anc_info(&tanc, &to->anc, &add->anc, to->len.max, add->len.max); + copy_opt_anc_info(&to->anc, &tanc); + + if (add->sb.len > 0 && to->len.max == 0) { + concat_opt_anc_info(&tanc, &to->anc, &add->sb.anc, to->len.max, add->len.max); + copy_opt_anc_info(&add->sb.anc, &tanc); + } + + if (add->map.value > 0 && to->len.max == 0) { + if (add->map.mm.max == 0) + add->map.anc.left |= to->anc.left; + } + + sb_reach = to->sb.reach_end; + sm_reach = to->sm.reach_end; + + if (add->len.max != 0) + to->sb.reach_end = to->sm.reach_end = 0; + + if (add->sb.len > 0) { + if (sb_reach) { + concat_opt_exact(&to->sb, &add->sb, enc); + clear_opt_exact(&add->sb); + } + else if (sm_reach) { + concat_opt_exact(&to->sm, &add->sb, enc); + clear_opt_exact(&add->sb); + } + } + select_opt_exact(enc, &to->sm, &add->sb); + select_opt_exact(enc, &to->sm, &add->sm); + + if (to->spr.len > 0) { + if (add->len.max > 0) { + if (to->spr.mm.max == 0) + select_opt_exact(enc, &to->sb, &to->spr); + else + select_opt_exact(enc, &to->sm, &to->spr); + } + } + else if (add->spr.len > 0) { + copy_opt_exact(&to->spr, &add->spr); + } + + select_opt_map(&to->map, &add->map); + mml_add(&to->len, &add->len); +} + +static void +alt_merge_node_opt_info(OptNode* to, OptNode* add, OptEnv* env) +{ + alt_merge_opt_anc_info(&to->anc, &add->anc); + alt_merge_opt_exact(&to->sb, &add->sb, env); + alt_merge_opt_exact(&to->sm, &add->sm, env); + alt_merge_opt_exact(&to->spr, &add->spr, env); + alt_merge_opt_map(env->enc, &to->map, &add->map); + + mml_alt_merge(&to->len, &add->len); +} + +static OnigLen +node_max_byte_len(Node* node, ParseEnv* env) +{ + OnigLen len; + OnigLen tmax; + + len = 0; + switch (ND_TYPE(node)) { + case ND_LIST: + do { + tmax = node_max_byte_len(ND_CAR(node), env); + len = distance_add(len, tmax); + } while (IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_ALT: + do { + tmax = node_max_byte_len(ND_CAR(node), env); + if (len < tmax) len = tmax; + } while (IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_STRING: + { + StrNode* sn = STR_(node); + len = (OnigLen )(sn->end - sn->s); + } + break; + + case ND_CTYPE: + case ND_CCLASS: + len = ONIGENC_MBC_MAXLEN_DIST(env->enc); + break; + + case ND_BACKREF: + if (! ND_IS_CHECKER(node)) { + int i; + int* backs; + MemEnv* mem_env = PARSEENV_MEMENV(env); + BackRefNode* br = BACKREF_(node); + if (ND_IS_RECURSION(node)) { +#ifdef USE_BACKREF_WITH_LEVEL + if (ND_IS_NEST_LEVEL(node)) { + len = INFINITE_LEN; + } +#endif + break; + } + backs = BACKREFS_P(br); + for (i = 0; i < br->back_num; i++) { + tmax = node_max_byte_len(mem_env[backs[i]].mem_node, env); + if (len < tmax) len = tmax; + } + } + break; + +#ifdef USE_CALL + case ND_CALL: + if (! ND_IS_RECURSION(node)) + len = node_max_byte_len(ND_BODY(node), env); + else + len = INFINITE_LEN; + break; +#endif + + case ND_QUANT: + { + QuantNode* qn = QUANT_(node); + + if (qn->upper != 0) { + len = node_max_byte_len(ND_BODY(node), env); + if (len != 0) { + if (! IS_INFINITE_REPEAT(qn->upper)) + len = distance_multiply(len, qn->upper); + else + len = INFINITE_LEN; + } + } + } + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + switch (en->type) { + case BAG_MEMORY: + if (ND_IS_FIXED_MAX(node)) + len = en->max_len; + else { + if (ND_IS_MARK1(node)) + len = INFINITE_LEN; + else { + ND_STATUS_ADD(node, MARK1); + len = node_max_byte_len(ND_BODY(node), env); + ND_STATUS_REMOVE(node, MARK1); + + en->max_len = len; + ND_STATUS_ADD(node, FIXED_MAX); + } + } + break; + + case BAG_OPTION: + case BAG_STOP_BACKTRACK: + len = node_max_byte_len(ND_BODY(node), env); + break; + case BAG_IF_ELSE: + { + OnigLen tlen, elen; + + len = node_max_byte_len(ND_BODY(node), env); + if (IS_NOT_NULL(en->te.Then)) { + tlen = node_max_byte_len(en->te.Then, env); + len = distance_add(len, tlen); + } + if (IS_NOT_NULL(en->te.Else)) + elen = node_max_byte_len(en->te.Else, env); + else elen = 0; + + if (elen > len) len = elen; + } + break; + } + } + break; + + case ND_ANCHOR: + case ND_GIMMICK: + default: + break; + } + + return len; +} + +#define MAX_ND_OPT_INFO_REF_COUNT 5 + +static int +optimize_nodes(Node* node, OptNode* opt, OptEnv* env) +{ + int i; + int r; + OptNode xo; + OnigEncoding enc; + + r = 0; + enc = env->enc; + clear_node_opt_info(opt); + set_bound_node_opt_info(opt, &env->mm); + + switch (ND_TYPE(node)) { + case ND_LIST: + { + OptEnv nenv; + Node* nd = node; + + copy_opt_env(&nenv, env); + do { + r = optimize_nodes(ND_CAR(nd), &xo, &nenv); + if (r == 0) { + mml_add(&nenv.mm, &xo.len); + concat_left_node_opt_info(enc, opt, &xo); + } + } while (r == 0 && IS_NOT_NULL(nd = ND_CDR(nd))); + } + break; + + case ND_ALT: + { + Node* nd = node; + + do { + r = optimize_nodes(ND_CAR(nd), &xo, env); + if (r == 0) { + if (nd == node) copy_node_opt_info(opt, &xo); + else alt_merge_node_opt_info(opt, &xo, env); + } + } while ((r == 0) && IS_NOT_NULL(nd = ND_CDR(nd))); + } + break; + + case ND_STRING: + { + StrNode* sn = STR_(node); + int slen = (int )(sn->end - sn->s); + + concat_opt_exact_str(&opt->sb, sn->s, sn->end, enc); + if (slen > 0) { + add_char_opt_map(&opt->map, *(sn->s), enc); + } + mml_set_min_max(&opt->len, slen, slen); + } + break; + + case ND_CCLASS: + { + int z; + CClassNode* cc = CCLASS_(node); + + /* no need to check ignore case. (set in tune_tree()) */ + + if (IS_NOT_NULL(cc->mbuf) || IS_NCCLASS_NOT(cc)) { + OnigLen min = ONIGENC_MBC_MINLEN(enc); + OnigLen max = ONIGENC_MBC_MAXLEN_DIST(enc); + + mml_set_min_max(&opt->len, min, max); + } + else { + for (i = 0; i < SINGLE_BYTE_SIZE; i++) { + z = BITSET_AT(cc->bs, i); + if ((z && ! IS_NCCLASS_NOT(cc)) || (! z && IS_NCCLASS_NOT(cc))) { + add_char_opt_map(&opt->map, (UChar )i, enc); + } + } + mml_set_min_max(&opt->len, 1, 1); + } + } + break; + + case ND_CTYPE: + { + int min, max; + int range; + + max = ONIGENC_MBC_MAXLEN_DIST(enc); + + if (max == 1) { + min = 1; + + switch (CTYPE_(node)->ctype) { + case CTYPE_ANYCHAR: + break; + + case ONIGENC_CTYPE_WORD: + range = CTYPE_(node)->ascii_mode != 0 ? 128 : SINGLE_BYTE_SIZE; + if (CTYPE_(node)->not != 0) { + for (i = 0; i < range; i++) { + if (! ONIGENC_IS_CODE_WORD(enc, i)) { + add_char_opt_map(&opt->map, (UChar )i, enc); + } + } + for (i = range; i < SINGLE_BYTE_SIZE; i++) { + add_char_opt_map(&opt->map, (UChar )i, enc); + } + } + else { + for (i = 0; i < range; i++) { + if (ONIGENC_IS_CODE_WORD(enc, i)) { + add_char_opt_map(&opt->map, (UChar )i, enc); + } + } + } + break; + } + } + else { + min = ONIGENC_MBC_MINLEN(enc); + } + mml_set_min_max(&opt->len, min, max); + } + break; + + case ND_ANCHOR: + switch (ANCHOR_(node)->type) { + case ANCR_BEGIN_BUF: + case ANCR_BEGIN_POSITION: + case ANCR_BEGIN_LINE: + case ANCR_END_BUF: + case ANCR_SEMI_END_BUF: + case ANCR_END_LINE: + case ANCR_PREC_READ_NOT: + case ANCR_LOOK_BEHIND: + add_opt_anc_info(&opt->anc, ANCHOR_(node)->type); + break; + + case ANCR_PREC_READ: + { + r = optimize_nodes(ND_BODY(node), &xo, env); + if (r == 0) { + if (xo.sb.len > 0) + copy_opt_exact(&opt->spr, &xo.sb); + else if (xo.sm.len > 0) + copy_opt_exact(&opt->spr, &xo.sm); + + opt->spr.reach_end = 0; + + if (xo.map.value > 0) + copy_opt_map(&opt->map, &xo.map); + } + } + break; + + case ANCR_LOOK_BEHIND_NOT: + break; + } + break; + + case ND_BACKREF: + if (! ND_IS_CHECKER(node)) { + OnigLen min, max; + + min = node_min_byte_len(node, env->scan_env); + max = node_max_byte_len(node, env->scan_env); + mml_set_min_max(&opt->len, min, max); + } + break; + +#ifdef USE_CALL + case ND_CALL: + if (ND_IS_RECURSION(node)) + mml_set_min_max(&opt->len, 0, INFINITE_LEN); + else { + r = optimize_nodes(ND_BODY(node), opt, env); + } + break; +#endif + + case ND_QUANT: + { + OnigLen min, max; + QuantNode* qn = QUANT_(node); + + /* Issue #175 + ex. /\g<1>{0}(?<=|())/ + + Empty and unused nodes in look-behind is removed in + tune_look_behind(). + Called group nodes are assigned to be not called if the caller side is + inside of zero-repetition. + As a result, the nodes are considered unused. + */ + if (qn->upper == 0) { + mml_set_min_max(&opt->len, 0, 0); + break; + } + + r = optimize_nodes(ND_BODY(node), &xo, env); + if (r != 0) break; + + if (qn->lower > 0) { + copy_node_opt_info(opt, &xo); + if (xo.sb.len > 0) { + if (xo.sb.reach_end) { + for (i = 2; i <= qn->lower && ! is_full_opt_exact(&opt->sb); i++) { + int rc = concat_opt_exact(&opt->sb, &xo.sb, enc); + if (rc > 0) break; + } + if (i < qn->lower) opt->sb.reach_end = 0; + } + } + + if (qn->lower != qn->upper) { + opt->sb.reach_end = 0; + opt->sm.reach_end = 0; + } + if (qn->lower > 1) + opt->sm.reach_end = 0; + } + + if (IS_INFINITE_REPEAT(qn->upper)) { + if (env->mm.max == 0 && + ND_IS_ANYCHAR(ND_BODY(node)) && qn->greedy != 0) { + if (ND_IS_MULTILINE(ND_QUANT_BODY(qn))) + add_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_ML); + else + add_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF); + } + + max = (xo.len.max > 0 ? INFINITE_LEN : 0); + } + else { + max = distance_multiply(xo.len.max, qn->upper); + } + + min = distance_multiply(xo.len.min, qn->lower); + mml_set_min_max(&opt->len, min, max); + } + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + switch (en->type) { + case BAG_STOP_BACKTRACK: + case BAG_OPTION: + r = optimize_nodes(ND_BODY(node), opt, env); + break; + + case BAG_MEMORY: +#ifdef USE_CALL + en->opt_count++; + if (en->opt_count > MAX_ND_OPT_INFO_REF_COUNT) { + OnigLen min, max; + + min = 0; + max = INFINITE_LEN; + if (ND_IS_FIXED_MIN(node)) min = en->min_len; + if (ND_IS_FIXED_MAX(node)) max = en->max_len; + mml_set_min_max(&opt->len, min, max); + } + else +#endif + { + r = optimize_nodes(ND_BODY(node), opt, env); + if (is_set_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_MASK)) { + if (MEM_STATUS_AT0(env->scan_env->backrefed_mem, en->m.regnum)) + remove_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_MASK); + } + } + break; + + case BAG_IF_ELSE: + { + OptEnv nenv; + + if (IS_NOT_NULL(en->te.Else)) { + copy_opt_env(&nenv, env); + r = optimize_nodes(ND_BAG_BODY(en), &xo, &nenv); + if (r == 0) { + mml_add(&nenv.mm, &xo.len); + concat_left_node_opt_info(enc, opt, &xo); + if (IS_NOT_NULL(en->te.Then)) { + r = optimize_nodes(en->te.Then, &xo, &nenv); + if (r == 0) { + concat_left_node_opt_info(enc, opt, &xo); + } + } + + r = optimize_nodes(en->te.Else, &xo, env); + if (r == 0) + alt_merge_node_opt_info(opt, &xo, env); + } + } + } + break; + } + } + break; + + case ND_GIMMICK: + break; + + default: +#ifdef ONIG_DEBUG + fprintf(DBGFP, "optimize_nodes: undefined node type %d\n", ND_TYPE(node)); +#endif + r = ONIGERR_TYPE_BUG; + break; + } + + return r; +} + +static int +set_optimize_exact(regex_t* reg, OptStr* e) +{ + int r; + int allow_reverse; + + if (e->len == 0) return 0; + + reg->exact = (UChar* )xmalloc(e->len); + CHECK_NULL_RETURN_MEMERR(reg->exact); + xmemcpy(reg->exact, e->s, e->len); + reg->exact_end = reg->exact + e->len; + + allow_reverse = + ONIGENC_IS_ALLOWED_REVERSE_MATCH(reg->enc, reg->exact, reg->exact_end); + + if (e->len >= 2 || (e->len >= 1 && allow_reverse)) { + r = set_sunday_quick_search_or_bmh_skip_table(reg, 0, + reg->exact, reg->exact_end, + reg->map, &(reg->map_offset)); + if (r != 0) return r; + + reg->optimize = (allow_reverse != 0 + ? OPTIMIZE_STR_FAST + : OPTIMIZE_STR_FAST_STEP_FORWARD); + } + else { + reg->optimize = OPTIMIZE_STR; + } + + reg->dist_min = e->mm.min; + reg->dist_max = e->mm.max; + + if (reg->dist_min != INFINITE_LEN) { + int n = (int )(reg->exact_end - reg->exact); + reg->threshold_len = reg->dist_min + n; + } + + return 0; +} + +static void +set_optimize_map(regex_t* reg, OptMap* m) +{ + int i; + + for (i = 0; i < CHAR_MAP_SIZE; i++) + reg->map[i] = m->map[i]; + + reg->optimize = OPTIMIZE_MAP; + reg->dist_min = m->mm.min; + reg->dist_max = m->mm.max; + + if (reg->dist_min != INFINITE_LEN) { + reg->threshold_len = reg->dist_min + ONIGENC_MBC_MINLEN(reg->enc); + } +} + +static void +set_sub_anchor(regex_t* reg, OptAnc* anc) +{ + reg->sub_anchor |= anc->left & ANCR_BEGIN_LINE; + reg->sub_anchor |= anc->right & ANCR_END_LINE; +} + +#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) +static void print_optimize_info(FILE* f, regex_t* reg); +#endif + +static int +set_optimize_info_from_tree(Node* node, regex_t* reg, ParseEnv* scan_env) +{ + int r; + OptNode opt; + OptEnv env; + + env.enc = reg->enc; + env.case_fold_flag = reg->case_fold_flag; + env.scan_env = scan_env; + mml_clear(&env.mm); + + r = optimize_nodes(node, &opt, &env); + if (r != 0) return r; + + reg->anchor = opt.anc.left & (ANCR_BEGIN_BUF | + ANCR_BEGIN_POSITION | ANCR_ANYCHAR_INF | ANCR_ANYCHAR_INF_ML | + ANCR_LOOK_BEHIND); + + if ((opt.anc.left & (ANCR_LOOK_BEHIND | ANCR_PREC_READ_NOT)) != 0) + reg->anchor &= ~ANCR_ANYCHAR_INF_ML; + + reg->anchor |= opt.anc.right & (ANCR_END_BUF | ANCR_SEMI_END_BUF | + ANCR_PREC_READ_NOT); + + if (reg->anchor & (ANCR_END_BUF | ANCR_SEMI_END_BUF)) { + reg->anc_dist_min = opt.len.min; + reg->anc_dist_max = opt.len.max; + } + + if (opt.sb.len > 0 || opt.sm.len > 0) { + select_opt_exact(reg->enc, &opt.sb, &opt.sm); + if (opt.map.value > 0 && comp_opt_exact_or_map(&opt.sb, &opt.map) > 0) { + goto set_map; + } + else { + r = set_optimize_exact(reg, &opt.sb); + set_sub_anchor(reg, &opt.sb.anc); + } + } + else if (opt.map.value > 0) { + set_map: + set_optimize_map(reg, &opt.map); + set_sub_anchor(reg, &opt.map.anc); + } + else { + reg->sub_anchor |= opt.anc.left & ANCR_BEGIN_LINE; + if (opt.len.max == 0) + reg->sub_anchor |= opt.anc.right & ANCR_END_LINE; + } + +#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) + print_optimize_info(DBGFP, reg); +#endif + return r; +} +#endif /* ONIG_DONT_OPTIMIZE */ + +static void +clear_optimize_info(regex_t* reg) +{ + reg->optimize = OPTIMIZE_NONE; + reg->anchor = 0; + reg->anc_dist_min = 0; + reg->anc_dist_max = 0; + reg->sub_anchor = 0; + reg->exact_end = (UChar* )NULL; + reg->map_offset = 0; + reg->threshold_len = 0; + if (IS_NOT_NULL(reg->exact)) { + xfree(reg->exact); + reg->exact = (UChar* )NULL; + } +} + +#if defined(ONIG_DEBUG_PARSE) || defined(ONIG_DEBUG_MATCH) || \ + defined(ONIG_DEBUG_SEARCH) || defined(ONIG_DEBUG_COMPILE) + +static void +print_enc_string(FILE* fp, OnigEncoding enc, + const UChar *s, const UChar *end) +{ + if (ONIGENC_MBC_MINLEN(enc) > 1) { + const UChar *p; + OnigCodePoint code; + + p = s; + while (p < end) { + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (code >= 0x80) { + fprintf(fp, " 0x%04x ", (int )code); + } + else { + fputc((int )code, fp); + } + + p += enclen(enc, p); + } + } + else { + while (s < end) { + if (ONIGENC_MBC_MAXLEN(enc) == 1) { + if (*s >= 0x80) { + fprintf(fp, "\\x%02x", (unsigned int )*s); + } + else { + fputc((int )*s, fp); + } + } + else { /* for UTF-8 */ + fputc((int )*s, fp); + } + s++; + } + } +} + +static void +print_options(FILE* fp, OnigOptionType o) +{ + if ((o & ONIG_OPTION_IGNORECASE) != 0) fprintf(fp, " IGNORECASE"); + if ((o & ONIG_OPTION_EXTEND) != 0) fprintf(fp, " EXTEND"); + if ((o & ONIG_OPTION_MULTILINE) != 0) fprintf(fp, " MULTILINE"); + if ((o & ONIG_OPTION_SINGLELINE) != 0) fprintf(fp, " SINGLELINE"); + if ((o & ONIG_OPTION_FIND_LONGEST) != 0) fprintf(fp, " FIND_LONGEST"); + if ((o & ONIG_OPTION_FIND_NOT_EMPTY) != 0) fprintf(fp, " FIND_NOT_EMPTY"); + if ((o & ONIG_OPTION_NEGATE_SINGLELINE) != 0) fprintf(fp, " NEGATE_SINGLELINE"); + if ((o & ONIG_OPTION_DONT_CAPTURE_GROUP) != 0) fprintf(fp, " DONT_CAPTURE_GROUP"); + if ((o & ONIG_OPTION_CAPTURE_GROUP) != 0) fprintf(fp, " CAPTURE_GROUP"); + if ((o & ONIG_OPTION_NOTBOL) != 0) fprintf(fp, " NOTBOL"); + if ((o & ONIG_OPTION_NOTEOL) != 0) fprintf(fp, " NOTEOL"); + if ((o & ONIG_OPTION_POSIX_REGION) != 0) fprintf(fp, " POSIX_REGION"); + if ((o & ONIG_OPTION_CHECK_VALIDITY_OF_STRING) != 0) fprintf(fp, " CHECK_VALIDITY_OF_STRING"); + if ((o & ONIG_OPTION_IGNORECASE_IS_ASCII) != 0) fprintf(fp, " IGNORECASE_IS_ASCII"); + if ((o & ONIG_OPTION_WORD_IS_ASCII) != 0) fprintf(fp, " WORD_IS_ASCII"); + if ((o & ONIG_OPTION_DIGIT_IS_ASCII) != 0) fprintf(fp, " DIGIT_IS_ASCII"); + if ((o & ONIG_OPTION_SPACE_IS_ASCII) != 0) fprintf(fp, " SPACE_IS_ASCII"); + if ((o & ONIG_OPTION_POSIX_IS_ASCII) != 0) fprintf(fp, " POSIX_IS_ASCII"); + if ((o & ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER) != 0) fprintf(fp, " TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER"); + if ((o & ONIG_OPTION_TEXT_SEGMENT_WORD) != 0) fprintf(fp, " TEXT_SEGMENT_WORD"); + if ((o & ONIG_OPTION_NOT_BEGIN_STRING) != 0) fprintf(fp, " NOT_BIGIN_STRING"); + if ((o & ONIG_OPTION_NOT_END_STRING) != 0) fprintf(fp, " NOT_END_STRING"); + if ((o & ONIG_OPTION_NOT_BEGIN_POSITION) != 0) fprintf(fp, " NOT_BEGIN_POSITION"); + if ((o & ONIG_OPTION_CALLBACK_EACH_MATCH) != 0) fprintf(fp, " CALLBACK_EACH_MATCH"); +} + +#endif + +#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) + +#ifndef ONIG_DONT_OPTIMIZE + +static void +print_distance_range(FILE* f, OnigLen a, OnigLen b) +{ + if (a == INFINITE_LEN) + fputs("inf", f); + else + fprintf(f, "(%u)", a); + + fputs("-", f); + + if (b == INFINITE_LEN) + fputs("inf", f); + else + fprintf(f, "(%u)", b); +} + +static void +print_anchor(FILE* f, int anchor) +{ + int q = 0; + + fprintf(f, "["); + + if (anchor & ANCR_BEGIN_BUF) { + fprintf(f, "begin-buf"); + q = 1; + } + if (anchor & ANCR_BEGIN_LINE) { + if (q) fprintf(f, ", "); + q = 1; + fprintf(f, "begin-line"); + } + if (anchor & ANCR_BEGIN_POSITION) { + if (q) fprintf(f, ", "); + q = 1; + fprintf(f, "begin-pos"); + } + if (anchor & ANCR_END_BUF) { + if (q) fprintf(f, ", "); + q = 1; + fprintf(f, "end-buf"); + } + if (anchor & ANCR_SEMI_END_BUF) { + if (q) fprintf(f, ", "); + q = 1; + fprintf(f, "semi-end-buf"); + } + if (anchor & ANCR_END_LINE) { + if (q) fprintf(f, ", "); + q = 1; + fprintf(f, "end-line"); + } + if (anchor & ANCR_ANYCHAR_INF) { + if (q) fprintf(f, ", "); + q = 1; + fprintf(f, "anychar-inf"); + } + if (anchor & ANCR_ANYCHAR_INF_ML) { + if (q) fprintf(f, ", "); + fprintf(f, "anychar-inf-ml"); + } + + fprintf(f, "]"); +} + +static void +print_optimize_info(FILE* f, regex_t* reg) +{ + static const char* on[] = + { "NONE", "STR", "STR_FAST", "STR_FAST_STEP_FORWARD", "MAP" }; + + fprintf(f, "optimize: %s\n", on[reg->optimize]); + fprintf(f, " anchor: "); print_anchor(f, reg->anchor); + if ((reg->anchor & ANCR_END_BUF_MASK) != 0) + print_distance_range(f, reg->anc_dist_min, reg->anc_dist_max); + fprintf(f, "\n"); + + if (reg->optimize) { + fprintf(f, " sub anchor: "); print_anchor(f, reg->sub_anchor); + fprintf(f, "\n"); + } + fprintf(f, "\n"); + + if (reg->exact) { + UChar *p; + fprintf(f, "exact: ["); + for (p = reg->exact; p < reg->exact_end; p++) { + fputc(*p, f); + } + fprintf(f, "]: length: %ld, dmin: %u, ", + (reg->exact_end - reg->exact), reg->dist_min); + if (reg->dist_max == INFINITE_LEN) + fprintf(f, "dmax: inf.\n"); + else + fprintf(f, "dmax: %u\n", reg->dist_max); + } + else if (reg->optimize & OPTIMIZE_MAP) { + int c, i, n = 0; + + for (i = 0; i < CHAR_MAP_SIZE; i++) + if (reg->map[i]) n++; + + fprintf(f, "map: n=%d, dmin: %u, dmax: %u\n", + n, reg->dist_min, reg->dist_max); + if (n > 0) { + c = 0; + fputc('[', f); + for (i = 0; i < CHAR_MAP_SIZE; i++) { + if (reg->map[i] != 0) { + if (c > 0) fputs(", ", f); + c++; + if (ONIGENC_MBC_MAXLEN(reg->enc) == 1 && + ONIGENC_IS_CODE_PRINT(reg->enc, (OnigCodePoint )i)) + fputc(i, f); + else + fprintf(f, "0x%02x", i); + } + } + fprintf(f, "]\n"); + } + } +} +#endif /* ONIG_DONT_OPTIMIZE */ +#endif /* defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) */ + + +extern RegexExt* +onig_get_regex_ext(regex_t* reg) +{ + if (IS_NULL(reg->extp)) { + RegexExt* ext = (RegexExt* )xmalloc(sizeof(*ext)); + if (IS_NULL(ext)) return 0; + + ext->pattern = 0; + ext->pattern_end = 0; +#ifdef USE_CALLOUT + ext->tag_table = 0; + ext->callout_num = 0; + ext->callout_list_alloc = 0; + ext->callout_list = 0; +#endif + + reg->extp = ext; + } + + return reg->extp; +} + +static void +free_regex_ext(RegexExt* ext) +{ + if (IS_NOT_NULL(ext)) { + if (IS_NOT_NULL(ext->pattern)) + xfree((void* )ext->pattern); + +#ifdef USE_CALLOUT + if (IS_NOT_NULL(ext->tag_table)) + onig_callout_tag_table_free(ext->tag_table); + + if (IS_NOT_NULL(ext->callout_list)) + onig_free_reg_callout_list(ext->callout_num, ext->callout_list); +#endif + + xfree(ext); + } +} + +extern int +onig_ext_set_pattern(regex_t* reg, const UChar* pattern, const UChar* pattern_end) +{ + RegexExt* ext; + UChar* s; + + ext = onig_get_regex_ext(reg); + CHECK_NULL_RETURN_MEMERR(ext); + + s = onigenc_strdup(reg->enc, pattern, pattern_end); + CHECK_NULL_RETURN_MEMERR(s); + + ext->pattern = s; + ext->pattern_end = s + (pattern_end - pattern); + + return ONIG_NORMAL; +} + +extern void +onig_free_body(regex_t* reg) +{ + if (IS_NOT_NULL(reg)) { + ops_free(reg); + if (IS_NOT_NULL(reg->string_pool)) { + xfree(reg->string_pool); + reg->string_pool_end = reg->string_pool = 0; + } + if (IS_NOT_NULL(reg->exact)) xfree(reg->exact); + if (IS_NOT_NULL(reg->repeat_range)) xfree(reg->repeat_range); + if (IS_NOT_NULL(reg->extp)) { + free_regex_ext(reg->extp); + reg->extp = 0; + } + + onig_names_free(reg); + } +} + +extern void +onig_free(regex_t* reg) +{ + if (IS_NOT_NULL(reg)) { + onig_free_body(reg); + xfree(reg); + } +} + + +#ifdef ONIG_DEBUG_PARSE +static void print_tree P_((FILE* f, Node* node)); +#endif + +extern int onig_init_for_match_at(regex_t* reg); + +static int parse_and_tune(regex_t* reg, const UChar* pattern, + const UChar* pattern_end, ParseEnv *scan_env, Node** rroot, + OnigErrorInfo* einfo +#ifdef USE_CALL + , UnsetAddrList* uslist +#endif +) +{ + int r; + Node* root; + + root = NULL_NODE; + if (IS_NOT_NULL(einfo)) { + einfo->enc = reg->enc; + einfo->par = (UChar* )NULL; + } + + r = onig_parse_tree(&root, pattern, pattern_end, reg, scan_env); + if (r != 0) goto err; + +#ifdef USE_WHOLE_OPTIONS + if ((scan_env->flags & PE_FLAG_HAS_WHOLE_OPTIONS) != 0) { + r = check_whole_options_position(root, scan_env); + if (r != 0) goto err; + } +#endif + + r = reduce_string_list(root, reg->enc); + if (r != 0) goto err; + + /* mixed use named group and no-named group */ + if (scan_env->num_named > 0 && + IS_SYNTAX_BV(scan_env->syntax, ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP) && + ! OPTON_CAPTURE_GROUP(reg->options)) { + if (scan_env->num_named != scan_env->num_mem) + r = disable_noname_group_capture(&root, reg, scan_env); + else + r = numbered_ref_check(root); + + if (r != 0) goto err; + } + + r = check_backrefs(root, scan_env); + if (r != 0) goto err; + +#ifdef USE_CALL + if (scan_env->num_call > 0) { + r = unset_addr_list_init(uslist, scan_env->num_call); + if (r != 0) goto err; + scan_env->unset_addr_list = uslist; + r = tune_call(root, scan_env, 0); + if (r != 0) goto err_unset; + r = tune_call2(root); + if (r != 0) goto err_unset; + r = recursive_call_check_trav(root, scan_env, 0); + if (r < 0) goto err_unset; + r = infinite_recursive_call_check_trav(root, scan_env); + if (r != 0) goto err_unset; + + tune_called_state(root, 0); + } + + reg->num_call = scan_env->num_call; +#endif + +#ifdef ONIG_DEBUG_PARSE + fprintf(DBGFP, "MAX PARSE DEPTH: %d\n", scan_env->max_parse_depth); +#endif + + r = tune_tree(root, reg, 0, scan_env); + if (r != 0) { +#ifdef ONIG_DEBUG_PARSE + fprintf(DBGFP, "TREE (error in tune)\n"); + print_tree(DBGFP, root); + fprintf(DBGFP, "\n"); +#endif + goto err_unset; + } + + if (scan_env->backref_num != 0) { + set_parent_node_trav(root, NULL_NODE); + r = set_empty_repeat_node_trav(root, NULL_NODE, scan_env); + if (r != 0) goto err_unset; + set_empty_status_check_trav(root, scan_env); + } + + *rroot = root; + return r; + + err_unset: +#ifdef USE_CALL + if (scan_env->num_call > 0) { + unset_addr_list_end(uslist); + } +#endif + err: + if (IS_NOT_NULL(scan_env->error)) { + if (IS_NOT_NULL(einfo)) { + einfo->par = scan_env->error; + einfo->par_end = scan_env->error_end; + } + } + + onig_node_free(root); + if (IS_NOT_NULL(scan_env->mem_env_dynamic)) + xfree(scan_env->mem_env_dynamic); + + *rroot = NULL_NODE; + return r; +} + +extern int +onig_compile(regex_t* reg, const UChar* pattern, const UChar* pattern_end, + OnigErrorInfo* einfo) +{ + int r; + Node* root; + ParseEnv scan_env; +#ifdef USE_CALL + UnsetAddrList uslist = {0}; +#endif + +#if defined(ONIG_DEBUG_PARSE) || defined(ONIG_DEBUG_MATCH) || \ + defined(ONIG_DEBUG_SEARCH) || defined(ONIG_DEBUG_COMPILE) + fprintf(DBGFP, "\nPATTERN: /"); + print_enc_string(DBGFP, reg->enc, pattern, pattern_end); + fprintf(DBGFP, "/\n"); + fprintf(DBGFP, "OPTIONS:"); + print_options(DBGFP, reg->options); + fprintf(DBGFP, "\n"); +#endif + + if (reg->ops_alloc == 0) { + r = ops_init(reg, OPS_INIT_SIZE); + if (r != 0) { + if (IS_NOT_NULL(einfo)) { + einfo->enc = reg->enc; + einfo->par = (UChar* )NULL; + } + return r; + } + } + else + reg->ops_used = 0; + + r = parse_and_tune(reg, pattern, pattern_end, &scan_env, &root, einfo +#ifdef USE_CALL + , &uslist +#endif + ); + if (r != 0) return r; + +#ifdef ONIG_DEBUG_PARSE + fprintf(DBGFP, "TREE (after tune)\n"); + print_tree(DBGFP, root); + fprintf(DBGFP, "\n"); +#endif + + reg->capture_history = scan_env.cap_history; + reg->push_mem_start = scan_env.backtrack_mem | scan_env.cap_history; + +#ifdef USE_CALLOUT + if (IS_NOT_NULL(reg->extp) && reg->extp->callout_num != 0) { + reg->push_mem_end = reg->push_mem_start; + } + else { + if (MEM_STATUS_IS_ALL_ON(reg->push_mem_start)) + reg->push_mem_end = scan_env.backrefed_mem | scan_env.cap_history; + else + reg->push_mem_end = reg->push_mem_start & + (scan_env.backrefed_mem | scan_env.cap_history); + } +#else + if (MEM_STATUS_IS_ALL_ON(reg->push_mem_start)) + reg->push_mem_end = scan_env.backrefed_mem | scan_env.cap_history; + else + reg->push_mem_end = reg->push_mem_start & + (scan_env.backrefed_mem | scan_env.cap_history); +#endif + + clear_optimize_info(reg); +#ifndef ONIG_DONT_OPTIMIZE + r = set_optimize_info_from_tree(root, reg, &scan_env); + if (r != 0) { +#ifdef USE_CALL + if (scan_env.num_call > 0) { + unset_addr_list_end(&uslist); + } +#endif + goto err; + } +#endif + + if (IS_NOT_NULL(scan_env.mem_env_dynamic)) { + xfree(scan_env.mem_env_dynamic); + scan_env.mem_env_dynamic = (MemEnv* )NULL; + } + + r = compile_tree(root, reg, &scan_env); + if (r == 0) { + if (scan_env.keep_num > 0) { + r = add_op(reg, OP_UPDATE_VAR); + if (r != 0) goto err; + + COP(reg)->update_var.type = UPDATE_VAR_KEEP_FROM_STACK_LAST; + COP(reg)->update_var.id = 0; /* not used */ + COP(reg)->update_var.clear = FALSE; + } + + r = add_op(reg, OP_END); + if (r != 0) goto err; + +#ifdef USE_CALL + if (scan_env.num_call > 0) { + r = fix_unset_addr_list(&uslist, reg); + unset_addr_list_end(&uslist); + if (r != 0) goto err; + } +#endif + + r = ops_resize(reg, reg->ops_used); + if (r != ONIG_NORMAL) goto err; + + set_addr_in_repeat_range(reg); + + if ((reg->push_mem_end != 0) +#ifdef USE_REPEAT_AND_EMPTY_CHECK_LOCAL_VAR + || (reg->num_repeat != 0) + || (reg->num_empty_check != 0) +#endif +#ifdef USE_CALLOUT + || (IS_NOT_NULL(reg->extp) && reg->extp->callout_num != 0) +#endif +#ifdef USE_CALL + || scan_env.num_call > 0 +#endif + ) + reg->stack_pop_level = STACK_POP_LEVEL_ALL; + else { + if (reg->push_mem_start != 0) + reg->stack_pop_level = STACK_POP_LEVEL_MEM_START; + else + reg->stack_pop_level = STACK_POP_LEVEL_FREE; + } + + r = ops_make_string_pool(reg); + if (r != 0) goto err; + } +#ifdef USE_CALL + else if (scan_env.num_call > 0) { + unset_addr_list_end(&uslist); + } +#endif + onig_node_free(root); + +#ifdef ONIG_DEBUG_COMPILE + onig_print_names(DBGFP, reg); + onig_print_compiled_byte_code_list(DBGFP, reg); +#endif + +#ifdef USE_DIRECT_THREADED_CODE + /* opcode -> opaddr */ + onig_init_for_match_at(reg); +#endif + + return r; + + err: + if (IS_NOT_NULL(scan_env.error)) { + if (IS_NOT_NULL(einfo)) { + einfo->par = scan_env.error; + einfo->par_end = scan_env.error_end; + } + } + + onig_node_free(root); + if (IS_NOT_NULL(scan_env.mem_env_dynamic)) + xfree(scan_env.mem_env_dynamic); + return r; +} + + +static int onig_inited = 0; + +extern int +onig_reg_init(regex_t* reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, + OnigEncoding enc, OnigSyntaxType* syntax) +{ + int r; + + xmemset(reg, 0, sizeof(*reg)); + + if (onig_inited == 0) { +#if 0 + return ONIGERR_LIBRARY_IS_NOT_INITIALIZED; +#else + r = onig_initialize(&enc, 1); + if (r != 0) + return ONIGERR_FAIL_TO_INITIALIZE; + + onig_warning("You didn't call onig_initialize() explicitly"); +#endif + } + + if (IS_NULL(reg)) + return ONIGERR_INVALID_ARGUMENT; + + if (ONIGENC_IS_UNDEF(enc)) + return ONIGERR_DEFAULT_ENCODING_IS_NOT_SET; + + if ((option & (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) + == (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) { + return ONIGERR_INVALID_COMBINATION_OF_OPTIONS; + } + + if ((option & ONIG_OPTION_NEGATE_SINGLELINE) != 0) { + option |= syntax->options; + option &= ~ONIG_OPTION_SINGLELINE; + } + else + option |= syntax->options; + + if ((option & ONIG_OPTION_IGNORECASE_IS_ASCII) != 0) { + case_fold_flag &= ~(INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR | + ONIGENC_CASE_FOLD_TURKISH_AZERI); + case_fold_flag |= ONIGENC_CASE_FOLD_ASCII_ONLY; + } + + (reg)->enc = enc; + (reg)->options = option; + (reg)->syntax = syntax; + (reg)->optimize = 0; + (reg)->exact = (UChar* )NULL; + (reg)->extp = (RegexExt* )NULL; + (reg)->ops = (Operation* )NULL; + (reg)->ops_curr = (Operation* )NULL; + (reg)->ops_used = 0; + (reg)->ops_alloc = 0; + (reg)->name_table = (void* )NULL; + (reg)->case_fold_flag = case_fold_flag; + return 0; +} + +extern int +onig_new_without_alloc(regex_t* reg, + const UChar* pattern, const UChar* pattern_end, + OnigOptionType option, OnigEncoding enc, + OnigSyntaxType* syntax, OnigErrorInfo* einfo) +{ + int r; + + r = onig_reg_init(reg, option, ONIGENC_CASE_FOLD_DEFAULT, enc, syntax); + if (r != 0) return r; + + r = onig_compile(reg, pattern, pattern_end, einfo); + return r; +} + +extern int +onig_new(regex_t** reg, const UChar* pattern, const UChar* pattern_end, + OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, + OnigErrorInfo* einfo) +{ + int r; + + *reg = (regex_t* )xmalloc(sizeof(regex_t)); + if (IS_NULL(*reg)) return ONIGERR_MEMORY; + + r = onig_reg_init(*reg, option, ONIGENC_CASE_FOLD_DEFAULT, enc, syntax); + if (r != 0) { + xfree(*reg); + *reg = NULL; + return r; + } + + r = onig_compile(*reg, pattern, pattern_end, einfo); + if (r != 0) { + onig_free(*reg); + *reg = NULL; + } + return r; +} + +extern int +onig_initialize(OnigEncoding encodings[], int n) +{ + int i; + int r; + + if (onig_inited != 0) + return 0; + + onigenc_init(); + + onig_inited = 1; + + for (i = 0; i < n; i++) { + OnigEncoding enc = encodings[i]; + r = onig_initialize_encoding(enc); + if (r != 0) + return r; + } + + return ONIG_NORMAL; +} + +typedef struct EndCallListItem { + struct EndCallListItem* next; + void (*func)(void); +} EndCallListItemType; + +static EndCallListItemType* EndCallTop; + +extern void onig_add_end_call(void (*func)(void)) +{ + EndCallListItemType* item; + + item = (EndCallListItemType* )xmalloc(sizeof(*item)); + if (item == 0) return ; + + item->next = EndCallTop; + item->func = func; + + EndCallTop = item; +} + +static void +exec_end_call_list(void) +{ + EndCallListItemType* prev; + void (*func)(void); + + while (EndCallTop != 0) { + func = EndCallTop->func; + (*func)(); + + prev = EndCallTop; + EndCallTop = EndCallTop->next; + xfree(prev); + } +} + +extern int +onig_end(void) +{ + exec_end_call_list(); + +#ifdef USE_CALLOUT + onig_global_callout_names_free(); +#endif + + onigenc_end(); + + onig_inited = 0; + + return 0; +} + +extern int +onig_is_in_code_range(const UChar* p, OnigCodePoint code) +{ + OnigCodePoint n, *data; + OnigCodePoint low, high, x; + + GET_CODE_POINT(n, p); + data = (OnigCodePoint* )p; + data++; + + for (low = 0, high = n; low < high; ) { + x = (low + high) >> 1; + if (code > data[x * 2 + 1]) + low = x + 1; + else + high = x; + } + + return ((low < n && code >= data[low * 2]) ? 1 : 0); +} + +extern int +onig_is_code_in_cc_len(int elen, OnigCodePoint code, /* CClassNode* */ void* cc_arg) +{ + int found; + CClassNode* cc = (CClassNode* )cc_arg; + + if (elen > 1 || (code >= SINGLE_BYTE_SIZE)) { + if (IS_NULL(cc->mbuf)) { + found = 0; + } + else { + found = onig_is_in_code_range(cc->mbuf->p, code) != 0; + } + } + else { + found = BITSET_AT(cc->bs, code) != 0; + } + + if (IS_NCCLASS_NOT(cc)) + return !found; + else + return found; +} + +extern int +onig_is_code_in_cc(OnigEncoding enc, OnigCodePoint code, CClassNode* cc) +{ + int len; + + if (ONIGENC_MBC_MINLEN(enc) > 1) { + len = 2; + } + else { + len = ONIGENC_CODE_TO_MBCLEN(enc, code); + if (len < 0) return 0; + } + return onig_is_code_in_cc_len(len, code, cc); +} + + +#define MANY_REPEAT_OF_ANYCHAR 20 + +typedef enum { + MJ_NO = 0, + MJ_YES = 1, + MJ_IGNORE = 2, +} MJ_RESULT; + +static MJ_RESULT +mostly_just_anychar(Node* node, int in_reluctant) +{ + MJ_RESULT r; + + r = MJ_NO; + switch (ND_TYPE(node)) { + case ND_LIST: + { + int found = FALSE; + do { + r = mostly_just_anychar(ND_CAR(node), in_reluctant); + if (r == MJ_NO) break; + if (r == MJ_YES) found = TRUE; + } while (IS_NOT_NULL(node = ND_CDR(node))); + if (r == MJ_IGNORE) { + if (found == TRUE) r = MJ_YES; + } + } + break; + + case ND_ALT: + r = MJ_IGNORE; + do { + r = mostly_just_anychar(ND_CAR(node), in_reluctant); + if (r == MJ_YES) break; + } while (IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_QUANT: + { + QuantNode* qn = QUANT_(node); + + if (qn->upper == 0) + r = MJ_IGNORE; + else { + if (in_reluctant == FALSE) { + if (qn->greedy != 0 && + (! IS_INFINITE_REPEAT(qn->upper) && + qn->upper <= MANY_REPEAT_OF_ANYCHAR)) { + in_reluctant = TRUE; + } + } + r = mostly_just_anychar(ND_BODY(node), in_reluctant); + } + } + break; + + case ND_ANCHOR: + switch (ANCHOR_(node)->type) { + case ANCR_PREC_READ: + case ANCR_PREC_READ_NOT: + case ANCR_LOOK_BEHIND: + case ANCR_LOOK_BEHIND_NOT: + case ANCR_TEXT_SEGMENT_BOUNDARY: /* \y */ + r = MJ_IGNORE; + break; + default: + break; + } + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + if (en->type == BAG_IF_ELSE) { + if (IS_NOT_NULL(en->te.Then)) { + r = mostly_just_anychar(en->te.Then, in_reluctant); + if (r == MJ_YES) break; + } + if (IS_NOT_NULL(en->te.Else)) { + r = mostly_just_anychar(en->te.Else, in_reluctant); + } + } + else { + r = mostly_just_anychar(ND_BODY(node), in_reluctant); + } + } + break; + + case ND_CTYPE: + if (CTYPE_(node)->ctype == CTYPE_ANYCHAR) + r = MJ_YES; + else + r = MJ_NO; + break; + + case ND_STRING: + if (ND_STRING_LEN(node) == 0) { + r = MJ_IGNORE; + break; + } + /* fall */ + case ND_CCLASS: + r = MJ_NO; + break; + +#ifdef USE_CALL + case ND_CALL: + /* ignore call */ +#endif + case ND_BACKREF: + case ND_GIMMICK: + r = MJ_IGNORE; + break; + + default: + break; + } + + return r; +} + +#define MAX_CALLS_IN_DETECT 10 + +typedef struct { + int prec_read; + int look_behind; + int backref; + int backref_with_level; + int call; + int is_keep; + int anychar_reluctant_many; + int empty_check_nest_level; + int max_empty_check_nest_level; + int heavy_element; +} SlowElementCount; + +static int +detect_can_be_slow(Node* node, SlowElementCount* ct, int ncall, int calls[]) +{ + int r; + + r = 0; + switch (ND_TYPE(node)) { + case ND_LIST: + case ND_ALT: + do { + r = detect_can_be_slow(ND_CAR(node), ct, ncall, calls); + if (r != 0) return r; + } while (IS_NOT_NULL(node = ND_CDR(node))); + break; + + case ND_QUANT: + { + QuantNode* qn; + Node* body; + int prev_heavy_element = 0; + + qn = QUANT_(node); + body = ND_BODY(node); + + if (qn->emptiness != BODY_IS_NOT_EMPTY) { + prev_heavy_element = ct->heavy_element; + ct->empty_check_nest_level++; + if (ct->empty_check_nest_level > ct->max_empty_check_nest_level) + ct->max_empty_check_nest_level = ct->empty_check_nest_level; + } + else if (IS_INFINITE_REPEAT(qn->upper) || qn->upper > 0) { + MJ_RESULT mr = mostly_just_anychar(body, (qn->greedy == 0)); + if (mr == MJ_YES) + ct->anychar_reluctant_many++; + } + + r = detect_can_be_slow(body, ct, ncall, calls); + + if (qn->emptiness != BODY_IS_NOT_EMPTY) { + if (ND_IS_INPEEK(node)) { + if (ct->empty_check_nest_level > 2) { + if (prev_heavy_element == ct->heavy_element) + ct->heavy_element++; + } + } + ct->empty_check_nest_level--; + } + } + break; + + case ND_ANCHOR: + switch (ANCHOR_(node)->type) { + case ANCR_PREC_READ: + case ANCR_PREC_READ_NOT: + ct->prec_read++; + break; + case ANCR_LOOK_BEHIND: + case ANCR_LOOK_BEHIND_NOT: + ct->look_behind++; + break; + default: + break; + } + + if (ANCHOR_HAS_BODY(ANCHOR_(node))) + r = detect_can_be_slow(ND_BODY(node), ct, ncall, calls); + break; + + case ND_BAG: + { + BagNode* en = BAG_(node); + + r = detect_can_be_slow(ND_BODY(node), ct, ncall, calls); + if (r != 0) return r; + + if (en->type == BAG_IF_ELSE) { + if (IS_NOT_NULL(en->te.Then)) { + r = detect_can_be_slow(en->te.Then, ct, ncall, calls); + if (r != 0) return r; + } + if (IS_NOT_NULL(en->te.Else)) { + r = detect_can_be_slow(en->te.Else, ct, ncall, calls); + if (r != 0) return r; + } + } + } + break; + +#ifdef USE_BACKREF_WITH_LEVEL + case ND_BACKREF: + if (ND_IS_NEST_LEVEL(node)) + ct->heavy_element++; + else + ct->backref++; + break; +#endif + +#ifdef USE_CALL + case ND_CALL: + { + int i; + int found; + int gnum; + + gnum = CALL_(node)->called_gnum; + ct->call++; + + if (ND_IS_RECURSION(node) && ND_IS_INPEEK(node) && + ND_IS_IN_REAL_REPEAT(node)) { + ct->heavy_element += 10; + } + + found = FALSE; + for (i = 0; i < ncall; i++) { + if (gnum == calls[i]) { + found = TRUE; + break; + } + } + + if (! found) { + if (ncall + 1 < MAX_CALLS_IN_DETECT) { + calls[ncall] = gnum; + r = detect_can_be_slow(ND_BODY(node), ct, ncall + 1, calls); + } + else { + ct->heavy_element++; + } + } + } + break; +#endif + case ND_GIMMICK: + { + GimmickNode* g = GIMMICK_(node); + if (g->type == GIMMICK_SAVE && g->detail_type == SAVE_KEEP) + ct->is_keep = TRUE; + } + break; + + default: + break; + } + + return r; +} + +extern int +onig_detect_can_be_slow_pattern(const UChar* pattern, + const UChar* pattern_end, OnigOptionType option, OnigEncoding enc, + OnigSyntaxType* syntax) +{ + int r; + regex_t* reg; + Node* root; + ParseEnv scan_env; + SlowElementCount count; + int calls[MAX_CALLS_IN_DETECT]; +#ifdef USE_CALL + UnsetAddrList uslist = {0}; +#endif + + reg = (regex_t* )xmalloc(sizeof(regex_t)); + if (IS_NULL(reg)) return ONIGERR_MEMORY; + + r = onig_reg_init(reg, option, ONIGENC_CASE_FOLD_DEFAULT, enc, syntax); + if (r != 0) { + xfree(reg); + return r; + } + + r = parse_and_tune(reg, pattern, pattern_end, &scan_env, &root, NULL +#ifdef USE_CALL + , &uslist +#endif + ); + if (r != 0) goto err; + +#ifdef USE_CALL + if (scan_env.num_call > 0) { + unset_addr_list_end(&uslist); + } +#endif + + count.prec_read = 0; + count.look_behind = 0; + count.backref = 0; + count.backref_with_level = 0; + count.call = 0; + count.is_keep = FALSE; + count.anychar_reluctant_many = 0; + count.empty_check_nest_level = 0; + count.max_empty_check_nest_level = 0; + count.heavy_element = 0; + + r = detect_can_be_slow(root, &count, 0, calls); + if (r == 0) { + int n; + + n = count.prec_read + count.look_behind + + count.backref + count.backref_with_level + count.call + + count.anychar_reluctant_many; + + if (count.is_keep) count.max_empty_check_nest_level++; + + if (count.max_empty_check_nest_level > 2) + n += count.max_empty_check_nest_level - 2; + if (count.heavy_element != 0) { + if (count.heavy_element < 0x10000) + n += count.heavy_element << 8; + else + n += count.heavy_element; + } + + r = n; + +#ifdef ONIG_DEBUG_PARSE + fprintf(DBGFP, "-- detect can be slow --\n"); + fprintf(DBGFP, " prec_read: %d\n", count.prec_read); + fprintf(DBGFP, " look_behind: %d\n", count.look_behind); + fprintf(DBGFP, " backref: %d\n", count.backref); + fprintf(DBGFP, " backref_with_level: %d\n", count.backref_with_level); + fprintf(DBGFP, " call: %d\n", count.call); + fprintf(DBGFP, " is_keep: %d\n", count.is_keep); + fprintf(DBGFP, " any_reluctant_many: %d\n", count.anychar_reluctant_many); + fprintf(DBGFP, " max_empty_check_nest_level: %d\n", count.max_empty_check_nest_level); + fprintf(DBGFP, " heavy_element: %d\n", count.heavy_element); + fprintf(DBGFP, " r: %d\n", r); + fprintf(DBGFP, "\n"); +#endif + } + + if (IS_NOT_NULL(scan_env.mem_env_dynamic)) + xfree(scan_env.mem_env_dynamic); + + err: + onig_node_free(root); + onig_free(reg); + return r; +} + + +#ifdef ONIG_DEBUG_PARSE + +#ifdef USE_CALL +static void +p_string(FILE* f, int len, UChar* s) +{ + fputs(":", f); + while (len-- > 0) { fputc(*s++, f); } +} +#endif + +static void +Indent(FILE* f, int indent) +{ + int i; + for (i = 0; i < indent; i++) putc(' ', f); +} + +static void +print_indent_tree(FILE* f, Node* node, int indent) +{ + static char* emptiness_name[] = { "", " empty", " empty_mem", " empty_rec" }; + + int i; + NodeType type; + UChar* p; + int add = 3; + + Indent(f, indent); + if (IS_NULL(node)) { + fprintf(f, "ERROR: null node!!!\n"); + exit(0); + } + + type = ND_TYPE(node); + switch (type) { + case ND_LIST: + case ND_ALT: + if (type == ND_LIST) + fprintf(f, "\n", node); + else + fprintf(f, "\n", node); + + print_indent_tree(f, ND_CAR(node), indent + add); + while (IS_NOT_NULL(node = ND_CDR(node))) { + if (ND_TYPE(node) != type) { + fprintf(f, "ERROR: list/alt right is not a cons. %d\n", ND_TYPE(node)); + exit(0); + } + print_indent_tree(f, ND_CAR(node), indent + add); + } + break; + + case ND_STRING: + { + char* str; + char* mode; + + if (ND_STRING_IS_CRUDE(node)) + mode = "-crude"; + else if (ND_IS_IGNORECASE(node)) + mode = "-ignorecase"; + else + mode = ""; + + if (STR_(node)->s == STR_(node)->end) + str = "empty-string"; + else + str = "string"; + + fprintf(f, "<%s%s:%p>", str, mode, node); + for (p = STR_(node)->s; p < STR_(node)->end; p++) { + if (*p >= 0x20 && *p < 0x7f) + fputc(*p, f); + else { + fprintf(f, " 0x%02x", *p); + } + } + } + break; + + case ND_CCLASS: +#define CCLASS_MBUF_MAX_OUTPUT_NUM 10 + + fprintf(f, "", node); + if (IS_NCCLASS_NOT(CCLASS_(node))) fputs(" not", f); + if (CCLASS_(node)->mbuf) { + BBuf* bbuf = CCLASS_(node)->mbuf; + fprintf(f, " mbuf(%u) ", bbuf->used); + for (i = 0; i < bbuf->used && i < CCLASS_MBUF_MAX_OUTPUT_NUM; i++) { + if (i > 0) fprintf(f, ","); + fprintf(f, "%0x", bbuf->p[i]); + } + if (i < bbuf->used) fprintf(f, "..."); + } + break; + + case ND_CTYPE: + fprintf(f, " ", node); + switch (CTYPE_(node)->ctype) { + case CTYPE_ANYCHAR: + fprintf(f, "anychar"); + break; + + case ONIGENC_CTYPE_WORD: + if (CTYPE_(node)->not != 0) + fputs("not word", f); + else + fputs("word", f); + + if (CTYPE_(node)->ascii_mode != 0) + fputs(" (ascii)", f); + + break; + + default: + fprintf(f, "ERROR: undefined ctype.\n"); + exit(0); + } + break; + + case ND_ANCHOR: + fprintf(f, " ", node); + switch (ANCHOR_(node)->type) { + case ANCR_BEGIN_BUF: fputs("begin buf", f); break; + case ANCR_END_BUF: fputs("end buf", f); break; + case ANCR_BEGIN_LINE: fputs("begin line", f); break; + case ANCR_END_LINE: fputs("end line", f); break; + case ANCR_SEMI_END_BUF: fputs("semi end buf", f); break; + case ANCR_BEGIN_POSITION: fputs("begin position", f); break; + + case ANCR_WORD_BOUNDARY: fputs("word boundary", f); break; + case ANCR_NO_WORD_BOUNDARY: fputs("not word boundary", f); break; +#ifdef USE_WORD_BEGIN_END + case ANCR_WORD_BEGIN: fputs("word begin", f); break; + case ANCR_WORD_END: fputs("word end", f); break; +#endif + case ANCR_TEXT_SEGMENT_BOUNDARY: + fputs("text-segment boundary", f); break; + case ANCR_NO_TEXT_SEGMENT_BOUNDARY: + fputs("no text-segment boundary", f); break; + case ANCR_PREC_READ: + fprintf(f, "prec read\n"); + print_indent_tree(f, ND_BODY(node), indent + add); + break; + case ANCR_PREC_READ_NOT: + fprintf(f, "prec read not\n"); + print_indent_tree(f, ND_BODY(node), indent + add); + break; + case ANCR_LOOK_BEHIND: + fprintf(f, "look behind\n"); + print_indent_tree(f, ND_BODY(node), indent + add); + break; + case ANCR_LOOK_BEHIND_NOT: + fprintf(f, "look behind not\n"); + print_indent_tree(f, ND_BODY(node), indent + add); + break; + + default: + fprintf(f, "ERROR: undefined anchor type.\n"); + break; + } + break; + + case ND_BACKREF: + { + int* p; + BackRefNode* br = BACKREF_(node); + p = BACKREFS_P(br); + fprintf(f, "", ND_IS_CHECKER(node) ? "-checker" : "", node); + for (i = 0; i < br->back_num; i++) { + if (i > 0) fputs(", ", f); + fprintf(f, "%d", p[i]); + } +#ifdef USE_BACKREF_WITH_LEVEL + if (ND_IS_NEST_LEVEL(node)) { + fprintf(f, ", level: %d", br->nest_level); + } +#endif + } + break; + +#ifdef USE_CALL + case ND_CALL: + { + CallNode* cn = CALL_(node); + fprintf(f, "", node); + fprintf(f, " num: %d, name", cn->called_gnum); + p_string(f, cn->name_end - cn->name, cn->name); + if (ND_IS_RECURSION(node)) fprintf(f, ", recursion"); + if (ND_IS_INPEEK(node)) fprintf(f, ", in-peek"); + if (ND_IS_IN_REAL_REPEAT(node)) fprintf(f, ", in-real-repeat"); + } + break; +#endif + + case ND_QUANT: + { + fprintf(f, "{%d,%d}%s%s%s", node, + QUANT_(node)->lower, QUANT_(node)->upper, + (QUANT_(node)->greedy ? "" : "?"), + QUANT_(node)->include_referred == 0 ? "" : " referred", + emptiness_name[QUANT_(node)->emptiness]); + if (ND_IS_INPEEK(node)) fprintf(f, ", in-peek"); + fprintf(f, "\n"); + print_indent_tree(f, ND_BODY(node), indent + add); + } + break; + + case ND_BAG: + { + BagNode* bn = BAG_(node); + fprintf(f, " ", node); + if (bn->type == BAG_IF_ELSE) { + Node* Then; + Node* Else; + + fprintf(f, "if-else\n"); + print_indent_tree(f, ND_BODY(node), indent + add); + + Then = bn->te.Then; + Else = bn->te.Else; + if (IS_NULL(Then)) { + Indent(f, indent + add); + fprintf(f, "THEN empty\n"); + } + else + print_indent_tree(f, Then, indent + add); + + if (IS_NULL(Else)) { + Indent(f, indent + add); + fprintf(f, "ELSE empty\n"); + } + else + print_indent_tree(f, Else, indent + add); + } + else { + switch (bn->type) { + case BAG_OPTION: + fprintf(f, "option:%d", bn->o.options); + break; + case BAG_MEMORY: + fprintf(f, "memory:%d", bn->m.regnum); + if (ND_IS_CALLED(node)) { + fprintf(f, ", called"); + if (ND_IS_RECURSION(node)) + fprintf(f, ", recursion"); + } + else if (ND_IS_REFERENCED(node)) + fprintf(f, ", referenced"); + + if (ND_IS_FIXED_ADDR(node)) + fprintf(f, ", fixed-addr"); + if ((bn->m.called_state & IN_PEEK) != 0) + fprintf(f, ", in-peek"); + break; + case BAG_STOP_BACKTRACK: + fprintf(f, "stop-bt"); + break; + default: + break; + } + fprintf(f, "\n"); + print_indent_tree(f, ND_BODY(node), indent + add); + } + } + break; + + case ND_GIMMICK: + fprintf(f, " ", node); + switch (GIMMICK_(node)->type) { + case GIMMICK_FAIL: + fprintf(f, "fail"); + break; + case GIMMICK_SAVE: + fprintf(f, "save:%d:%d", GIMMICK_(node)->detail_type, GIMMICK_(node)->id); + break; + case GIMMICK_UPDATE_VAR: + fprintf(f, "update_var:%d:%d", GIMMICK_(node)->detail_type, GIMMICK_(node)->id); + break; +#ifdef USE_CALLOUT + case GIMMICK_CALLOUT: + switch (GIMMICK_(node)->detail_type) { + case ONIG_CALLOUT_OF_CONTENTS: + fprintf(f, "callout:contents:%d", GIMMICK_(node)->num); + break; + case ONIG_CALLOUT_OF_NAME: + fprintf(f, "callout:name:%d:%d", GIMMICK_(node)->id, GIMMICK_(node)->num); + break; + } +#endif + } + break; + + default: + fprintf(f, "print_indent_tree: undefined node type %d\n", ND_TYPE(node)); + break; + } + + if (type != ND_LIST && type != ND_ALT && type != ND_QUANT && + type != ND_BAG) + fprintf(f, "\n"); + fflush(f); +} + +static void +print_tree(FILE* f, Node* node) +{ + print_indent_tree(f, node, 0); +} +#endif diff --git a/thirdparty/oniguruma/regenc.c b/thirdparty/oniguruma/regenc.c new file mode 100644 index 000000000..a40a7152a --- /dev/null +++ b/thirdparty/oniguruma/regenc.c @@ -0,0 +1,994 @@ +/********************************************************************** + regenc.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2020 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regint.h" + +#define LARGE_S 0x53 +#define SMALL_S 0x73 + +OnigEncoding OnigEncDefaultCharEncoding = ONIG_ENCODING_INIT_DEFAULT; + +#define INITED_LIST_SIZE 20 + +static int InitedListNum; + +static struct { + OnigEncoding enc; + int inited; +} InitedList[INITED_LIST_SIZE]; + +static int +enc_inited_entry(OnigEncoding enc) +{ + int i; + + for (i = 0; i < InitedListNum; i++) { + if (InitedList[i].enc == enc) { + InitedList[i].inited = 1; + return i; + } + } + + i = InitedListNum; + if (i < INITED_LIST_SIZE - 1) { + InitedList[i].enc = enc; + InitedList[i].inited = 1; + InitedListNum++; + return i; + } + + return -1; +} + +static int +enc_is_inited(OnigEncoding enc) +{ + int i; + + for (i = 0; i < InitedListNum; i++) { + if (InitedList[i].enc == enc) { + return InitedList[i].inited; + } + } + + return 0; +} + +static int OnigEncInited; + +extern int +onigenc_init(void) +{ + if (OnigEncInited != 0) return 0; + + OnigEncInited = 1; + return 0; +} + +extern int +onigenc_end(void) +{ + int i; + + for (i = 0; i < InitedListNum; i++) { + InitedList[i].enc = 0; + InitedList[i].inited = 0; + } + InitedListNum = 0; + + OnigEncInited = 0; + return ONIG_NORMAL; +} + +extern int +onig_initialize_encoding(OnigEncoding enc) +{ + int r; + + if (enc != ONIG_ENCODING_ASCII && + ONIGENC_IS_ASCII_COMPATIBLE_ENCODING(enc)) { + OnigEncoding ascii = ONIG_ENCODING_ASCII; + if (ascii->init != 0 && enc_is_inited(ascii) == 0) { + r = ascii->init(); + if (r != ONIG_NORMAL) return r; + enc_inited_entry(ascii); + } + } + + if (enc->init != 0 && + enc_is_inited(enc) == 0) { + r = (enc->init)(); + if (r == ONIG_NORMAL) + enc_inited_entry(enc); + return r; + } + + return 0; +} + +extern OnigEncoding +onigenc_get_default_encoding(void) +{ + return OnigEncDefaultCharEncoding; +} + +extern int +onigenc_set_default_encoding(OnigEncoding enc) +{ + OnigEncDefaultCharEncoding = enc; + return 0; +} + +extern UChar* +onigenc_strdup(OnigEncoding enc, const UChar* s, const UChar* end) +{ + int slen, term_len, i; + UChar *r; + + slen = (int )(end - s); + term_len = ONIGENC_MBC_MINLEN(enc); + + r = (UChar* )xmalloc(slen + term_len); + CHECK_NULL_RETURN(r); + xmemcpy(r, s, slen); + + for (i = 0; i < term_len; i++) + r[slen + i] = (UChar )0; + + return r; +} + +extern UChar* +onigenc_get_right_adjust_char_head(OnigEncoding enc, const UChar* start, const UChar* s) +{ + UChar* p = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s); + if (p < s) { + p += enclen(enc, p); + } + return p; +} + +extern UChar* +onigenc_get_right_adjust_char_head_with_prev(OnigEncoding enc, + const UChar* start, const UChar* s, const UChar** prev) +{ + UChar* p = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s); + + if (p < s) { + if (prev) *prev = (const UChar* )p; + p += enclen(enc, p); + } + else { + if (prev) + *prev = onigenc_get_prev_char_head(enc, start, p); + } + return p; +} + +extern UChar* +onigenc_get_prev_char_head(OnigEncoding enc, const UChar* start, const UChar* s) +{ + if (s <= start) + return (UChar* )NULL; + + return ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s - 1); +} + +extern UChar* +onigenc_step_back(OnigEncoding enc, const UChar* start, const UChar* s, int n) +{ + while (ONIG_IS_NOT_NULL(s) && n-- > 0) { + if (s <= start) + return (UChar* )NULL; + + s = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s - 1); + } + return (UChar* )s; +} + +extern UChar* +onigenc_step(OnigEncoding enc, const UChar* p, const UChar* end, int n) +{ + UChar* q = (UChar* )p; + while (n-- > 0) { + q += ONIGENC_MBC_ENC_LEN(enc, q); + } + return (q <= end ? q : NULL); +} + +extern int +onigenc_strlen(OnigEncoding enc, const UChar* p, const UChar* end) +{ + int n = 0; + UChar* q = (UChar* )p; + + while (q < end) { + q += ONIGENC_MBC_ENC_LEN(enc, q); + n++; + } + return n; +} + +extern int +onigenc_strlen_null(OnigEncoding enc, const UChar* s) +{ + int n = 0; + UChar* p = (UChar* )s; + + while (1) { + if (*p == '\0') { + UChar* q; + int len = ONIGENC_MBC_MINLEN(enc); + + if (len == 1) return n; + q = p + 1; + while (len > 1) { + if (*q != '\0') break; + q++; + len--; + } + if (len == 1) return n; + } + p += ONIGENC_MBC_ENC_LEN(enc, p); + n++; + } +} + +extern int +onigenc_str_bytelen_null(OnigEncoding enc, const UChar* s) +{ + const UChar* start = s; + const UChar* p = s; + + while (1) { + if (*p == '\0') { + const UChar* q; + int len = ONIGENC_MBC_MINLEN(enc); + + if (len == 1) return (int )(p - start); + q = p + 1; + while (len > 1) { + if (*q != '\0') break; + q++; + len--; + } + if (len == 1) return (int )(p - start); + } + p += ONIGENC_MBC_ENC_LEN(enc, p); + } +} + +const UChar OnigEncAsciiToLowerCaseTable[] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', + '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', + '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', + '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377', +}; + +#ifdef USE_UPPER_CASE_TABLE +const UChar OnigEncAsciiToUpperCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\101', '\102', '\103', '\104', '\105', '\106', '\107', + '\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117', + '\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127', + '\130', '\131', '\132', '\133', '\134', '\135', '\136', '\137', + '\140', '\101', '\102', '\103', '\104', '\105', '\106', '\107', + '\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117', + '\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127', + '\130', '\131', '\132', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', + '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', + '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', + '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377', +}; +#endif + +const unsigned short OnigEncAsciiCtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 +}; + +const UChar OnigEncISO_8859_1_ToLowerCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', + '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', + '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', + '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', + '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', + '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', + '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', + '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', + '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' +}; + +#ifdef USE_UPPER_CASE_TABLE +const UChar OnigEncISO_8859_1_ToUpperCaseTable[256] = { + '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', + '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', + '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', + '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', + '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', + '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', + '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', + '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', + '\100', '\101', '\102', '\103', '\104', '\105', '\106', '\107', + '\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117', + '\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127', + '\130', '\131', '\132', '\133', '\134', '\135', '\136', '\137', + '\140', '\101', '\102', '\103', '\104', '\105', '\106', '\107', + '\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117', + '\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127', + '\130', '\131', '\132', '\173', '\174', '\175', '\176', '\177', + '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', + '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', + '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', + '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', + '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', + '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', + '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', + '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', + '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', + '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', + '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', + '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337', + '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', + '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', + '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\367', + '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\377', +}; +#endif + +extern void +onigenc_set_default_caseconv_table(const UChar* table ARG_UNUSED) +{ + /* nothing */ + /* obsoleted. */ +} + +extern UChar* +onigenc_get_left_adjust_char_head(OnigEncoding enc, const UChar* start, const UChar* s) +{ + return ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s); +} + +const OnigPairCaseFoldCodes OnigAsciiLowerMap[] = { + { 0x41, 0x61 }, + { 0x42, 0x62 }, + { 0x43, 0x63 }, + { 0x44, 0x64 }, + { 0x45, 0x65 }, + { 0x46, 0x66 }, + { 0x47, 0x67 }, + { 0x48, 0x68 }, + { 0x49, 0x69 }, + { 0x4a, 0x6a }, + { 0x4b, 0x6b }, + { 0x4c, 0x6c }, + { 0x4d, 0x6d }, + { 0x4e, 0x6e }, + { 0x4f, 0x6f }, + { 0x50, 0x70 }, + { 0x51, 0x71 }, + { 0x52, 0x72 }, + { 0x53, 0x73 }, + { 0x54, 0x74 }, + { 0x55, 0x75 }, + { 0x56, 0x76 }, + { 0x57, 0x77 }, + { 0x58, 0x78 }, + { 0x59, 0x79 }, + { 0x5a, 0x7a } +}; + +extern int +onigenc_ascii_apply_all_case_fold(OnigCaseFoldType flag ARG_UNUSED, + OnigApplyAllCaseFoldFunc f, void* arg) +{ + OnigCodePoint code; + int i, r; + + for (i = 0; + i < (int )(sizeof(OnigAsciiLowerMap)/sizeof(OnigPairCaseFoldCodes)); + i++) { + code = OnigAsciiLowerMap[i].to; + r = (*f)(OnigAsciiLowerMap[i].from, &code, 1, arg); + if (r != 0) return r; + + code = OnigAsciiLowerMap[i].from; + r = (*f)(OnigAsciiLowerMap[i].to, &code, 1, arg); + if (r != 0) return r; + } + + return 0; +} + +extern int +onigenc_ascii_get_case_fold_codes_by_str(OnigCaseFoldType flag ARG_UNUSED, + const OnigUChar* p, const OnigUChar* end ARG_UNUSED, + OnigCaseFoldCodeItem items[]) +{ + if (0x41 <= *p && *p <= 0x5a) { + items[0].byte_len = 1; + items[0].code_len = 1; + items[0].code[0] = (OnigCodePoint )(*p + 0x20); + return 1; + } + else if (0x61 <= *p && *p <= 0x7a) { + items[0].byte_len = 1; + items[0].code_len = 1; + items[0].code[0] = (OnigCodePoint )(*p - 0x20); + return 1; + } + else + return 0; +} + +static int +ss_apply_all_case_fold(OnigCaseFoldType flag ARG_UNUSED, + OnigApplyAllCaseFoldFunc f, void* arg) +{ + static OnigCodePoint ss[] = { SMALL_S, SMALL_S }; + + return (*f)((OnigCodePoint )0xdf, ss, 2, arg); +} + +extern int +onigenc_apply_all_case_fold_with_map(int map_size, + const OnigPairCaseFoldCodes map[], + int ess_tsett_flag, OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg) +{ + OnigCodePoint code; + int i, r; + + r = onigenc_ascii_apply_all_case_fold(flag, f, arg); + if (r != 0) return r; + + if (CASE_FOLD_IS_ASCII_ONLY(flag)) + return 0; + + for (i = 0; i < map_size; i++) { + code = map[i].to; + r = (*f)(map[i].from, &code, 1, arg); + if (r != 0) return r; + + code = map[i].from; + r = (*f)(map[i].to, &code, 1, arg); + if (r != 0) return r; + } + + if (ess_tsett_flag != 0) + return ss_apply_all_case_fold(flag, f, arg); + + return 0; +} + +extern int +onigenc_get_case_fold_codes_by_str_with_map(int map_size, + const OnigPairCaseFoldCodes map[], + int ess_tsett_flag, OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]) +{ + int i, j, n; + static OnigUChar sa[] = { LARGE_S, SMALL_S }; + + if (0x41 <= *p && *p <= 0x5a) { /* A - Z */ + if (*p == LARGE_S && ess_tsett_flag != 0 && end > p + 1 + && (*(p+1) == LARGE_S || *(p+1) == SMALL_S) /* SS */ + && CASE_FOLD_IS_NOT_ASCII_ONLY(flag)) { + ss_combination: + items[0].byte_len = 2; + items[0].code_len = 1; + items[0].code[0] = (OnigCodePoint )0xdf; + + n = 1; + for (i = 0; i < 2; i++) { + for (j = 0; j < 2; j++) { + if (sa[i] == *p && sa[j] == *(p+1)) + continue; + + items[n].byte_len = 2; + items[n].code_len = 2; + items[n].code[0] = (OnigCodePoint )sa[i]; + items[n].code[1] = (OnigCodePoint )sa[j]; + n++; + } + } + return 4; + } + + items[0].byte_len = 1; + items[0].code_len = 1; + items[0].code[0] = (OnigCodePoint )(*p + 0x20); + return 1; + } + else if (0x61 <= *p && *p <= 0x7a) { /* a - z */ + if (*p == SMALL_S && ess_tsett_flag != 0 && end > p + 1 + && (*(p+1) == SMALL_S || *(p+1) == LARGE_S) + && CASE_FOLD_IS_NOT_ASCII_ONLY(flag)) { + goto ss_combination; + } + + items[0].byte_len = 1; + items[0].code_len = 1; + items[0].code[0] = (OnigCodePoint )(*p - 0x20); + return 1; + } + else if (*p == 0xdf && ess_tsett_flag != 0 + && CASE_FOLD_IS_NOT_ASCII_ONLY(flag)) { + items[0].byte_len = 1; + items[0].code_len = 2; + items[0].code[0] = (OnigCodePoint )'s'; + items[0].code[1] = (OnigCodePoint )'s'; + + items[1].byte_len = 1; + items[1].code_len = 2; + items[1].code[0] = (OnigCodePoint )'S'; + items[1].code[1] = (OnigCodePoint )'S'; + + items[2].byte_len = 1; + items[2].code_len = 2; + items[2].code[0] = (OnigCodePoint )'s'; + items[2].code[1] = (OnigCodePoint )'S'; + + items[3].byte_len = 1; + items[3].code_len = 2; + items[3].code[0] = (OnigCodePoint )'S'; + items[3].code[1] = (OnigCodePoint )'s'; + + return 4; + } + else { + int i; + + if (CASE_FOLD_IS_ASCII_ONLY(flag)) + return 0; + + for (i = 0; i < map_size; i++) { + if (*p == map[i].from) { + items[0].byte_len = 1; + items[0].code_len = 1; + items[0].code[0] = map[i].to; + return 1; + } + else if (*p == map[i].to) { + items[0].byte_len = 1; + items[0].code_len = 1; + items[0].code[0] = map[i].from; + return 1; + } + } + } + + return 0; +} + + +extern int +onigenc_not_support_get_ctype_code_range(OnigCtype ctype ARG_UNUSED, + OnigCodePoint* sb_out ARG_UNUSED, + const OnigCodePoint* ranges[] ARG_UNUSED) +{ + return ONIG_NO_SUPPORT_CONFIG; +} + +extern int +onigenc_is_mbc_newline_0x0a(const UChar* p, const UChar* end) +{ + if (p < end) { + if (*p == NEWLINE_CODE) return 1; + } + return 0; +} + +/* for single byte encodings */ +extern int +onigenc_ascii_mbc_case_fold(OnigCaseFoldType flag ARG_UNUSED, const UChar** p, + const UChar*end ARG_UNUSED, UChar* lower) +{ + *lower = ONIGENC_ASCII_CODE_TO_LOWER_CASE(**p); + + (*p)++; + return 1; /* return byte length of converted char to lower */ +} + +extern int +onigenc_single_byte_mbc_enc_len(const UChar* p ARG_UNUSED) +{ + return 1; +} + +extern OnigCodePoint +onigenc_single_byte_mbc_to_code(const UChar* p, const UChar* end ARG_UNUSED) +{ + return (OnigCodePoint )(*p); +} + +extern int +onigenc_single_byte_code_to_mbclen(OnigCodePoint code ARG_UNUSED) +{ + return (code < 0x100 ? 1 : ONIGERR_INVALID_CODE_POINT_VALUE); +} + +extern int +onigenc_single_byte_code_to_mbc(OnigCodePoint code, UChar *buf) +{ + *buf = (UChar )(code & 0xff); + return 1; +} + +extern UChar* +onigenc_single_byte_left_adjust_char_head(const UChar* start ARG_UNUSED, + const UChar* s) +{ + return (UChar* )s; +} + +extern int +onigenc_always_true_is_allowed_reverse_match(const UChar* s ARG_UNUSED, + const UChar* end ARG_UNUSED) +{ + return TRUE; +} + +extern int +onigenc_always_false_is_allowed_reverse_match(const UChar* s ARG_UNUSED, + const UChar* end ARG_UNUSED) +{ + return FALSE; +} + +extern int +onigenc_always_true_is_valid_mbc_string(const UChar* s ARG_UNUSED, + const UChar* end ARG_UNUSED) +{ + return TRUE; +} + +extern int +onigenc_length_check_is_valid_mbc_string(OnigEncoding enc, + const UChar* p, const UChar* end) +{ + while (p < end) { + p += enclen(enc, p); + } + + if (p != end) + return FALSE; + else + return TRUE; +} + +extern int +onigenc_is_valid_mbc_string(OnigEncoding enc, const UChar* s, const UChar* end) +{ + return ONIGENC_IS_VALID_MBC_STRING(enc, s, end); +} + +extern OnigCodePoint +onigenc_mbn_mbc_to_code(OnigEncoding enc, const UChar* p, const UChar* end) +{ + int c, i, len; + OnigCodePoint n; + + len = enclen(enc, p); + n = (OnigCodePoint )(*p++); + if (len == 1) return n; + + for (i = 1; i < len; i++) { + if (p >= end) break; + c = *p++; + n <<= 8; n += c; + } + return n; +} + +extern int +onigenc_mbn_mbc_case_fold(OnigEncoding enc, OnigCaseFoldType flag ARG_UNUSED, + const UChar** pp, const UChar* end ARG_UNUSED, + UChar* lower) +{ + int len; + const UChar *p = *pp; + + if (ONIGENC_IS_MBC_ASCII(p)) { + *lower = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p); + (*pp)++; + return 1; + } + else { + int i; + + len = enclen(enc, p); + for (i = 0; i < len; i++) { + *lower++ = *p++; + } + (*pp) += len; + return len; /* return byte length of converted to lower char */ + } +} + +extern int +onigenc_mb2_code_to_mbc(OnigEncoding enc, OnigCodePoint code, UChar *buf) +{ + UChar *p = buf; + + if ((code & 0xff00) != 0) { + *p++ = (UChar )((code >> 8) & 0xff); + } + *p++ = (UChar )(code & 0xff); + +#if 1 + if (enclen(enc, buf) != (p - buf)) + return ONIGERR_INVALID_CODE_POINT_VALUE; +#endif + return (int )(p - buf); +} + +extern int +onigenc_mb4_code_to_mbc(OnigEncoding enc, OnigCodePoint code, UChar *buf) +{ + UChar *p = buf; + + if ((code & 0xff000000) != 0) { + *p++ = (UChar )((code >> 24) & 0xff); + } + if ((code & 0xff0000) != 0 || p != buf) { + *p++ = (UChar )((code >> 16) & 0xff); + } + if ((code & 0xff00) != 0 || p != buf) { + *p++ = (UChar )((code >> 8) & 0xff); + } + *p++ = (UChar )(code & 0xff); + +#if 1 + if (enclen(enc, buf) != (p - buf)) + return ONIGERR_INVALID_CODE_POINT_VALUE; +#endif + return (int )(p - buf); +} + +extern int +onigenc_minimum_property_name_to_ctype(OnigEncoding enc, UChar* p, UChar* end) +{ + static PosixBracketEntryType PBS[] = { + { (UChar* )"Alnum", ONIGENC_CTYPE_ALNUM, 5 }, + { (UChar* )"Alpha", ONIGENC_CTYPE_ALPHA, 5 }, + { (UChar* )"Blank", ONIGENC_CTYPE_BLANK, 5 }, + { (UChar* )"Cntrl", ONIGENC_CTYPE_CNTRL, 5 }, + { (UChar* )"Digit", ONIGENC_CTYPE_DIGIT, 5 }, + { (UChar* )"Graph", ONIGENC_CTYPE_GRAPH, 5 }, + { (UChar* )"Lower", ONIGENC_CTYPE_LOWER, 5 }, + { (UChar* )"Print", ONIGENC_CTYPE_PRINT, 5 }, + { (UChar* )"Punct", ONIGENC_CTYPE_PUNCT, 5 }, + { (UChar* )"Space", ONIGENC_CTYPE_SPACE, 5 }, + { (UChar* )"Upper", ONIGENC_CTYPE_UPPER, 5 }, + { (UChar* )"XDigit", ONIGENC_CTYPE_XDIGIT, 6 }, + { (UChar* )"ASCII", ONIGENC_CTYPE_ASCII, 5 }, + { (UChar* )"Word", ONIGENC_CTYPE_WORD, 4 }, + { (UChar* )NULL, -1, 0 } + }; + + PosixBracketEntryType *pb; + int len; + + len = onigenc_strlen(enc, p, end); + for (pb = PBS; IS_NOT_NULL(pb->name); pb++) { + if (len == pb->len && + onigenc_with_ascii_strncmp(enc, p, end, pb->name, pb->len) == 0) + return pb->ctype; + } + + return ONIGERR_INVALID_CHAR_PROPERTY_NAME; +} + +extern int +onigenc_is_mbc_word_ascii(OnigEncoding enc, UChar* s, const UChar* end) +{ + OnigCodePoint code = ONIGENC_MBC_TO_CODE(enc, s, end); + + if (code > ASCII_LIMIT) return 0; + + return ONIGENC_IS_ASCII_CODE_WORD(code); +} + +extern int +onigenc_mb2_is_code_ctype(OnigEncoding enc, OnigCodePoint code, + unsigned int ctype) +{ + if (code < 128) + return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype); + else { + if (CTYPE_IS_WORD_GRAPH_PRINT(ctype)) { + return (ONIGENC_CODE_TO_MBCLEN(enc, code) > 1 ? TRUE : FALSE); + } + } + + return FALSE; +} + +extern int +onigenc_mb4_is_code_ctype(OnigEncoding enc, OnigCodePoint code, + unsigned int ctype) +{ + if (code < 128) + return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype); + else { + if (CTYPE_IS_WORD_GRAPH_PRINT(ctype)) { + return (ONIGENC_CODE_TO_MBCLEN(enc, code) > 1 ? TRUE : FALSE); + } + } + + return FALSE; +} + +extern int +onigenc_with_ascii_strncmp(OnigEncoding enc, const UChar* p, const UChar* end, + const UChar* sascii /* ascii */, int n) +{ + int x, c; + + while (n-- > 0) { + if (p >= end) return (int )(*sascii); + + c = (int )ONIGENC_MBC_TO_CODE(enc, p, end); + x = *sascii - c; + if (x) return x; + + sascii++; + p += enclen(enc, p); + } + return 0; +} + +extern int +onig_codes_cmp(OnigCodePoint a[], OnigCodePoint b[], int n) +{ + int i; + + for (i = 0; i < n; i++) { + if (a[i] != b[i]) + return -1; + } + + return 0; +} + +extern int +onig_codes_byte_at(OnigCodePoint codes[], int at) +{ + int index; + int b; + OnigCodePoint code; + + index = at / 3; + b = at % 3; + code = codes[index]; + + return ((code >> ((2 - b) * 8)) & 0xff); +} diff --git a/thirdparty/oniguruma/regenc.h b/thirdparty/oniguruma/regenc.h new file mode 100644 index 000000000..19d2bb751 --- /dev/null +++ b/thirdparty/oniguruma/regenc.h @@ -0,0 +1,286 @@ +#ifndef REGENC_H +#define REGENC_H +/********************************************************************** + regenc.h - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2020 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef ONIGURUMA_EXPORT +#define ONIGURUMA_EXPORT +#endif + +#include "config.h" + +#ifndef ONIG_NO_STANDARD_C_HEADERS +#include +#endif + +#ifdef ONIG_ESCAPE_UCHAR_COLLISION +#undef ONIG_ESCAPE_UCHAR_COLLISION +#endif + +#include "oniguruma.h" + +typedef struct { + OnigCodePoint from; + OnigCodePoint to; +} OnigPairCaseFoldCodes; + + +#ifndef NULL +#define NULL ((void* )0) +#endif + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef ARG_UNUSED +#if defined(__GNUC__) +# define ARG_UNUSED __attribute__ ((unused)) +#else +# define ARG_UNUSED +#endif +#endif + +#define ONIG_IS_NULL(p) (((void*)(p)) == (void*)0) +#define ONIG_IS_NOT_NULL(p) (((void*)(p)) != (void*)0) +#define ONIG_CHECK_NULL_RETURN(p) if (ONIG_IS_NULL(p)) return NULL +#define ONIG_CHECK_NULL_RETURN_VAL(p,val) if (ONIG_IS_NULL(p)) return (val) + +#define MAX_CODE_POINT (~((OnigCodePoint )0)) +#define ASCII_LIMIT 127 +#define NEWLINE_CODE 0x0a + +#define enclen(enc,p) ONIGENC_MBC_ENC_LEN(enc,p) + +/* character types bit flag */ +#define BIT_CTYPE_NEWLINE (1<< ONIGENC_CTYPE_NEWLINE) +#define BIT_CTYPE_ALPHA (1<< ONIGENC_CTYPE_ALPHA) +#define BIT_CTYPE_BLANK (1<< ONIGENC_CTYPE_BLANK) +#define BIT_CTYPE_CNTRL (1<< ONIGENC_CTYPE_CNTRL) +#define BIT_CTYPE_DIGIT (1<< ONIGENC_CTYPE_DIGIT) +#define BIT_CTYPE_GRAPH (1<< ONIGENC_CTYPE_GRAPH) +#define BIT_CTYPE_LOWER (1<< ONIGENC_CTYPE_LOWER) +#define BIT_CTYPE_PRINT (1<< ONIGENC_CTYPE_PRINT) +#define BIT_CTYPE_PUNCT (1<< ONIGENC_CTYPE_PUNCT) +#define BIT_CTYPE_SPACE (1<< ONIGENC_CTYPE_SPACE) +#define BIT_CTYPE_UPPER (1<< ONIGENC_CTYPE_UPPER) +#define BIT_CTYPE_XDIGIT (1<< ONIGENC_CTYPE_XDIGIT) +#define BIT_CTYPE_WORD (1<< ONIGENC_CTYPE_WORD) +#define BIT_CTYPE_ALNUM (1<< ONIGENC_CTYPE_ALNUM) +#define BIT_CTYPE_ASCII (1<< ONIGENC_CTYPE_ASCII) + +#define CTYPE_TO_BIT(ctype) (1<<(ctype)) +#define CTYPE_IS_WORD_GRAPH_PRINT(ctype) \ + ((ctype) == ONIGENC_CTYPE_WORD || (ctype) == ONIGENC_CTYPE_GRAPH ||\ + (ctype) == ONIGENC_CTYPE_PRINT) + + +typedef struct { + UChar *name; + int ctype; + short int len; +} PosixBracketEntryType; + +struct PropertyNameCtype { + char *name; + int ctype; +}; + +/* #define USE_CRNL_AS_LINE_TERMINATOR */ +#define USE_UNICODE_PROPERTIES +#define USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER +#define USE_UNICODE_WORD_BREAK +/* #define USE_UNICODE_CASE_FOLD_TURKISH_AZERI */ +/* #define USE_UNICODE_ALL_LINE_TERMINATORS */ /* see Unicode.org UTS #18 */ + + +#define ONIG_ENCODING_INIT_DEFAULT ONIG_ENCODING_ASCII + + +#define ENC_SKIP_OFFSET_1_OR_0 7 + +#define ENC_FLAG_ASCII_COMPATIBLE (1<<0) +#define ENC_FLAG_UNICODE (1<<1) +#define ENC_FLAG_SKIP_OFFSET_MASK (7<<2) +#define ENC_FLAG_SKIP_OFFSET_0 0 +#define ENC_FLAG_SKIP_OFFSET_1 (1<<2) +#define ENC_FLAG_SKIP_OFFSET_2 (2<<2) +#define ENC_FLAG_SKIP_OFFSET_3 (3<<2) +#define ENC_FLAG_SKIP_OFFSET_4 (4<<2) +#define ENC_FLAG_SKIP_OFFSET_1_OR_0 (ENC_SKIP_OFFSET_1_OR_0<<2) + +#define ENC_GET_SKIP_OFFSET(enc) \ + (((enc)->flag & ENC_FLAG_SKIP_OFFSET_MASK)>>2) + +#define CASE_FOLD_IS_ASCII_ONLY(flag) \ + (((flag) & ONIGENC_CASE_FOLD_ASCII_ONLY) != 0) +#define CASE_FOLD_IS_NOT_ASCII_ONLY(flag) \ + (((flag) & ONIGENC_CASE_FOLD_ASCII_ONLY) == 0) + +/* for encoding system implementation (internal) */ +extern int onigenc_end(void); +extern int onigenc_ascii_apply_all_case_fold P_((OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg)); +extern int onigenc_ascii_get_case_fold_codes_by_str P_((OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[])); +extern int onigenc_apply_all_case_fold_with_map P_((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg)); +extern int onigenc_get_case_fold_codes_by_str_with_map P_((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[])); +extern int onigenc_not_support_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[])); +extern int onigenc_is_mbc_newline_0x0a P_((const UChar* p, const UChar* end)); + + +/* methods for single byte encoding */ +extern int onigenc_ascii_mbc_case_fold P_((OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower)); +extern int onigenc_single_byte_mbc_enc_len P_((const UChar* p)); +extern OnigCodePoint onigenc_single_byte_mbc_to_code P_((const UChar* p, const UChar* end)); +extern int onigenc_single_byte_code_to_mbclen P_((OnigCodePoint code)); +extern int onigenc_single_byte_code_to_mbc P_((OnigCodePoint code, UChar *buf)); +extern UChar* onigenc_single_byte_left_adjust_char_head P_((const UChar* start, const UChar* s)); +extern int onigenc_always_true_is_allowed_reverse_match P_((const UChar* s, const UChar* end)); +extern int onigenc_always_false_is_allowed_reverse_match P_((const UChar* s, const UChar* end)); +extern int onigenc_always_true_is_valid_mbc_string P_((const UChar* s, const UChar* end)); +extern int onigenc_length_check_is_valid_mbc_string P_((OnigEncoding enc, const UChar* s, const UChar* end)); + +/* methods for multi byte encoding */ +extern OnigCodePoint onigenc_mbn_mbc_to_code P_((OnigEncoding enc, const UChar* p, const UChar* end)); +extern int onigenc_mbn_mbc_case_fold P_((OnigEncoding enc, OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower)); +extern int onigenc_mb2_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf)); +extern int onigenc_minimum_property_name_to_ctype P_((OnigEncoding enc, UChar* p, UChar* end)); +extern int onigenc_unicode_property_name_to_ctype P_((OnigEncoding enc, UChar* p, UChar* end)); +extern int onigenc_is_mbc_word_ascii P_((OnigEncoding enc, UChar* s, const UChar* end)); +extern int onigenc_mb2_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype)); +extern int onigenc_mb4_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf)); +extern int onigenc_mb4_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype)); +extern struct PropertyNameCtype* onigenc_euc_jp_lookup_property_name P_((register const char *str, register size_t len)); +extern struct PropertyNameCtype* onigenc_sjis_lookup_property_name P_((register const char *str, register size_t len)); + +/* in unicode.c */ +extern int onigenc_unicode_is_code_ctype P_((OnigCodePoint code, unsigned int ctype)); +extern int onigenc_utf16_32_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint* ranges[])); +extern int onigenc_unicode_ctype_code_range P_((OnigCtype ctype, const OnigCodePoint* ranges[])); +extern int onigenc_unicode_get_case_fold_codes_by_str P_((OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[])); +extern int onigenc_unicode_mbc_case_fold P_((OnigEncoding enc, OnigCaseFoldType flag, const UChar** pp, const UChar* end, UChar* fold)); +extern int onigenc_unicode_apply_all_case_fold P_((OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg)); + +extern int onigenc_egcb_is_break_position P_((OnigEncoding enc, UChar* p, UChar* prev, const UChar* start, const UChar* end)); + +#ifdef USE_UNICODE_WORD_BREAK +extern int onigenc_wb_is_break_position P_((OnigEncoding enc, UChar* p, UChar* prev, const UChar* start, const UChar* end)); +#endif + +#define UTF16_IS_SURROGATE_FIRST(c) (((c) & 0xfc) == 0xd8) +#define UTF16_IS_SURROGATE_SECOND(c) (((c) & 0xfc) == 0xdc) + +/* from unicode generated codes */ +#define FOLDS1_FOLD(i) (OnigUnicodeFolds1 + (i)) +#define FOLDS2_FOLD(i) (OnigUnicodeFolds2 + (i)) +#define FOLDS3_FOLD(i) (OnigUnicodeFolds3 + (i)) +#define FOLDS1_UNFOLDS_NUM(i) (OnigUnicodeFolds1[(i)+1]) +#define FOLDS2_UNFOLDS_NUM(i) (OnigUnicodeFolds2[(i)+2]) +#define FOLDS3_UNFOLDS_NUM(i) (OnigUnicodeFolds3[(i)+3]) +#define FOLDS1_UNFOLDS(i) (FOLDS1_FOLD(i) + 2) +#define FOLDS2_UNFOLDS(i) (FOLDS2_FOLD(i) + 3) +#define FOLDS3_UNFOLDS(i) (FOLDS3_FOLD(i) + 4) +#define FOLDS1_NEXT_INDEX(i) ((i) + 2 + FOLDS1_UNFOLDS_NUM(i)) +#define FOLDS2_NEXT_INDEX(i) ((i) + 3 + FOLDS2_UNFOLDS_NUM(i)) +#define FOLDS3_NEXT_INDEX(i) ((i) + 4 + FOLDS3_UNFOLDS_NUM(i)) + +#define FOLDS_FOLD_ADDR_BUK(buk, addr) do {\ + if ((buk)->fold_len == 1)\ + addr = OnigUnicodeFolds1 + (buk)->index;\ + else if ((buk)->fold_len == 2)\ + addr = OnigUnicodeFolds2 + (buk)->index;\ + else if ((buk)->fold_len == 3)\ + addr = OnigUnicodeFolds3 + (buk)->index;\ + else\ + return ONIGERR_INVALID_CODE_POINT_VALUE;\ +} while (0) + +extern OnigCodePoint OnigUnicodeFolds1[]; +extern OnigCodePoint OnigUnicodeFolds2[]; +extern OnigCodePoint OnigUnicodeFolds3[]; + +struct ByUnfoldKey { + OnigCodePoint code; + short int index; + short int fold_len; +}; + +extern const struct ByUnfoldKey* onigenc_unicode_unfold_key(OnigCodePoint code); +extern int onigenc_unicode_fold1_key(OnigCodePoint code[]); +extern int onigenc_unicode_fold2_key(OnigCodePoint code[]); +extern int onigenc_unicode_fold3_key(OnigCodePoint code[]); + +extern int onig_codes_cmp(OnigCodePoint a[], OnigCodePoint b[], int n); +extern int onig_codes_byte_at(OnigCodePoint code[], int at); + + + +#define ONIGENC_ISO_8859_1_TO_LOWER_CASE(c) \ + OnigEncISO_8859_1_ToLowerCaseTable[c] +#define ONIGENC_ISO_8859_1_TO_UPPER_CASE(c) \ + OnigEncISO_8859_1_ToUpperCaseTable[c] + +extern const UChar OnigEncISO_8859_1_ToLowerCaseTable[]; +extern const UChar OnigEncISO_8859_1_ToUpperCaseTable[]; + +extern int +onigenc_with_ascii_strncmp P_((OnigEncoding enc, const UChar* p, const UChar* end, const UChar* sascii /* ascii */, int n)); +extern UChar* +onigenc_step P_((OnigEncoding enc, const UChar* p, const UChar* end, int n)); + +/* defined in regexec.c, but used in enc/xxx.c */ +extern int onig_is_in_code_range P_((const UChar* p, OnigCodePoint code)); + +extern OnigEncoding OnigEncDefaultCharEncoding; +extern const UChar OnigEncAsciiToLowerCaseTable[]; +extern const UChar OnigEncAsciiToUpperCaseTable[]; +extern const unsigned short OnigEncAsciiCtypeTable[]; + + +#define ONIGENC_IS_ASCII_CODE(code) ((code) < 0x80) +#define ONIGENC_ASCII_CODE_TO_LOWER_CASE(c) OnigEncAsciiToLowerCaseTable[c] +#define ONIGENC_ASCII_CODE_TO_UPPER_CASE(c) OnigEncAsciiToUpperCaseTable[c] +#define ONIGENC_IS_ASCII_CODE_CTYPE(code,ctype) \ + ((OnigEncAsciiCtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) +#define ONIGENC_IS_ASCII_CODE_WORD(code) \ + ((OnigEncAsciiCtypeTable[code] & CTYPE_TO_BIT(ONIGENC_CTYPE_WORD)) != 0) +#define ONIGENC_IS_ASCII_CODE_CASE_AMBIG(code) \ + (ONIGENC_IS_ASCII_CODE_CTYPE(code, ONIGENC_CTYPE_UPPER) ||\ + ONIGENC_IS_ASCII_CODE_CTYPE(code, ONIGENC_CTYPE_LOWER)) + +#define ONIGENC_IS_UNICODE_ENCODING(enc) \ + (((enc)->flag & ENC_FLAG_UNICODE) != 0) + +#define ONIGENC_IS_ASCII_COMPATIBLE_ENCODING(enc) \ + (((enc)->flag & ENC_FLAG_ASCII_COMPATIBLE) != 0) + +#endif /* REGENC_H */ diff --git a/thirdparty/oniguruma/regerror.c b/thirdparty/oniguruma/regerror.c new file mode 100644 index 000000000..22792eaf6 --- /dev/null +++ b/thirdparty/oniguruma/regerror.c @@ -0,0 +1,414 @@ +/********************************************************************** + regerror.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2022 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef NEED_TO_INCLUDE_STDIO +/* for vsnprintf() */ +#define NEED_TO_INCLUDE_STDIO +#endif + +#include "regint.h" + +extern UChar* +onig_error_code_to_format(int code) +{ + char *p; + + switch (code) { + case ONIG_MISMATCH: + p = "mismatch"; break; + case ONIG_NO_SUPPORT_CONFIG: + p = "no support in this configuration"; break; + case ONIG_ABORT: + p = "abort"; break; + case ONIGERR_MEMORY: + p = "fail to memory allocation"; break; + case ONIGERR_MATCH_STACK_LIMIT_OVER: + p = "match-stack limit over"; break; + case ONIGERR_PARSE_DEPTH_LIMIT_OVER: + p = "parse depth limit over"; break; + case ONIGERR_RETRY_LIMIT_IN_MATCH_OVER: + p = "retry-limit-in-match over"; break; + case ONIGERR_RETRY_LIMIT_IN_SEARCH_OVER: + p = "retry-limit-in-search over"; break; + case ONIGERR_SUBEXP_CALL_LIMIT_IN_SEARCH_OVER: + p = "subexp-call-limit-in-search over"; break; + case ONIGERR_TYPE_BUG: + p = "undefined type (bug)"; break; + case ONIGERR_PARSER_BUG: + p = "internal parser error (bug)"; break; + case ONIGERR_STACK_BUG: + p = "stack error (bug)"; break; + case ONIGERR_UNDEFINED_BYTECODE: + p = "undefined bytecode (bug)"; break; + case ONIGERR_UNEXPECTED_BYTECODE: + p = "unexpected bytecode (bug)"; break; + case ONIGERR_DEFAULT_ENCODING_IS_NOT_SET: + p = "default multibyte-encoding is not set"; break; + case ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR: + p = "can't convert to wide-char on specified multibyte-encoding"; break; + case ONIGERR_FAIL_TO_INITIALIZE: + p = "fail to initialize"; break; + case ONIGERR_INVALID_ARGUMENT: + p = "invalid argument"; break; + case ONIGERR_END_PATTERN_AT_LEFT_BRACE: + p = "end pattern at left brace"; break; + case ONIGERR_END_PATTERN_AT_LEFT_BRACKET: + p = "end pattern at left bracket"; break; + case ONIGERR_EMPTY_CHAR_CLASS: + p = "empty char-class"; break; + case ONIGERR_PREMATURE_END_OF_CHAR_CLASS: + p = "premature end of char-class"; break; + case ONIGERR_END_PATTERN_AT_ESCAPE: + p = "end pattern at escape"; break; + case ONIGERR_END_PATTERN_AT_META: + p = "end pattern at meta"; break; + case ONIGERR_END_PATTERN_AT_CONTROL: + p = "end pattern at control"; break; + case ONIGERR_META_CODE_SYNTAX: + p = "invalid meta-code syntax"; break; + case ONIGERR_CONTROL_CODE_SYNTAX: + p = "invalid control-code syntax"; break; + case ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE: + p = "char-class value at end of range"; break; + case ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE: + p = "char-class value at start of range"; break; + case ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS: + p = "unmatched range specifier in char-class"; break; + case ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED: + p = "target of repeat operator is not specified"; break; + case ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID: + p = "target of repeat operator is invalid"; break; + case ONIGERR_NESTED_REPEAT_OPERATOR: + p = "nested repeat operator"; break; + case ONIGERR_UNMATCHED_CLOSE_PARENTHESIS: + p = "unmatched close parenthesis"; break; + case ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS: + p = "end pattern with unmatched parenthesis"; break; + case ONIGERR_END_PATTERN_IN_GROUP: + p = "end pattern in group"; break; + case ONIGERR_UNDEFINED_GROUP_OPTION: + p = "undefined group option"; break; + case ONIGERR_INVALID_GROUP_OPTION: + p = "invalid group option"; break; + case ONIGERR_INVALID_POSIX_BRACKET_TYPE: + p = "invalid POSIX bracket type"; break; + case ONIGERR_INVALID_LOOK_BEHIND_PATTERN: + p = "invalid pattern in look-behind"; break; + case ONIGERR_INVALID_REPEAT_RANGE_PATTERN: + p = "invalid repeat range {lower,upper}"; break; + case ONIGERR_TOO_BIG_NUMBER: + p = "too big number"; break; + case ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE: + p = "too big number for repeat range"; break; + case ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE: + p = "upper is smaller than lower in repeat range"; break; + case ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS: + p = "empty range in char class"; break; + case ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE: + p = "mismatch multibyte code length in char-class range"; break; + case ONIGERR_TOO_MANY_MULTI_BYTE_RANGES: + p = "too many multibyte code ranges are specified"; break; + case ONIGERR_TOO_SHORT_MULTI_BYTE_STRING: + p = "too short multibyte code string"; break; + case ONIGERR_TOO_BIG_BACKREF_NUMBER: + p = "too big backref number"; break; + case ONIGERR_INVALID_BACKREF: + p = "invalid backref number/name"; break; + case ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED: + p = "numbered backref/call is not allowed. (use name)"; break; + case ONIGERR_TOO_MANY_CAPTURES: + p = "too many captures"; break; + case ONIGERR_TOO_BIG_WIDE_CHAR_VALUE: + p = "too big wide-char value"; break; + case ONIGERR_TOO_LONG_WIDE_CHAR_VALUE: + p = "too long wide-char value"; break; + case ONIGERR_UNDEFINED_OPERATOR: + p = "undefined operator"; break; + case ONIGERR_INVALID_CODE_POINT_VALUE: + p = "invalid code point value"; break; + case ONIGERR_EMPTY_GROUP_NAME: + p = "group name is empty"; break; + case ONIGERR_INVALID_GROUP_NAME: + p = "invalid group name <%n>"; break; + case ONIGERR_INVALID_CHAR_IN_GROUP_NAME: + p = "invalid char in group name <%n>"; break; + case ONIGERR_UNDEFINED_NAME_REFERENCE: + p = "undefined name <%n> reference"; break; + case ONIGERR_UNDEFINED_GROUP_REFERENCE: + p = "undefined group <%n> reference"; break; + case ONIGERR_MULTIPLEX_DEFINED_NAME: + p = "multiplex defined name <%n>"; break; + case ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL: + p = "multiplex definition name <%n> call"; break; + case ONIGERR_NEVER_ENDING_RECURSION: + p = "never ending recursion"; break; + case ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY: + p = "group number is too big for capture history"; break; + case ONIGERR_INVALID_CHAR_PROPERTY_NAME: + p = "invalid character property name {%n}"; break; + case ONIGERR_INVALID_IF_ELSE_SYNTAX: + p = "invalid if-else syntax"; break; + case ONIGERR_INVALID_ABSENT_GROUP_PATTERN: + p = "invalid absent group pattern"; break; + case ONIGERR_INVALID_ABSENT_GROUP_GENERATOR_PATTERN: + p = "invalid absent group generator pattern"; break; + case ONIGERR_INVALID_CALLOUT_PATTERN: + p = "invalid callout pattern"; break; + case ONIGERR_INVALID_CALLOUT_NAME: + p = "invalid callout name"; break; + case ONIGERR_UNDEFINED_CALLOUT_NAME: + p = "undefined callout name"; break; + case ONIGERR_INVALID_CALLOUT_BODY: + p = "invalid callout body"; break; + case ONIGERR_INVALID_CALLOUT_TAG_NAME: + p = "invalid callout tag name"; break; + case ONIGERR_INVALID_CALLOUT_ARG: + p = "invalid callout arg"; break; + case ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION: + p = "not supported encoding combination"; break; + case ONIGERR_INVALID_COMBINATION_OF_OPTIONS: + p = "invalid combination of options"; break; + case ONIGERR_VERY_INEFFICIENT_PATTERN: + p = "very inefficient pattern"; break; + case ONIGERR_LIBRARY_IS_NOT_INITIALIZED: + p = "library is not initialized"; break; + + default: + p = "undefined error code"; break; + } + + return (UChar* )p; +} + +static void sprint_byte(char* s, unsigned int v) +{ + xsnprintf(s, 3, "%02x", (v & 0377)); +} + +static void sprint_byte_with_x(char* s, unsigned int v) +{ + xsnprintf(s, 5, "\\x%02x", (v & 0377)); +} + +static int to_ascii(OnigEncoding enc, UChar *s, UChar *end, + UChar buf[], int buf_size, int *is_over) +{ + int len; + UChar *p; + OnigCodePoint code; + + if (!s) { + len = 0; + *is_over = 0; + } + else if (ONIGENC_MBC_MINLEN(enc) > 1) { + p = s; + len = 0; + while (p < end) { + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (code >= 0x80) { + if (code > 0xffff && len + 10 <= buf_size) { + sprint_byte_with_x((char*)(&(buf[len])), (unsigned int)(code >> 24)); + sprint_byte((char*)(&(buf[len+4])), (unsigned int)(code >> 16)); + sprint_byte((char*)(&(buf[len+6])), (unsigned int)(code >> 8)); + sprint_byte((char*)(&(buf[len+8])), (unsigned int)code); + len += 10; + } + else if (len + 6 <= buf_size) { + sprint_byte_with_x((char*)(&(buf[len])), (unsigned int)(code >> 8)); + sprint_byte((char*)(&(buf[len+4])), (unsigned int)code); + len += 6; + } + else { + break; + } + } + else { + buf[len++] = (UChar )code; + } + + p += enclen(enc, p); + if (len >= buf_size) break; + } + + *is_over = p < end; + } + else { + len = MIN((int )(end - s), buf_size); + xmemcpy(buf, s, (size_t )len); + *is_over = ((buf_size < (end - s)) ? 1 : 0); + } + + return len; +} + + +extern int +onig_is_error_code_needs_param(int code) +{ + switch (code) { + case ONIGERR_UNDEFINED_NAME_REFERENCE: + case ONIGERR_UNDEFINED_GROUP_REFERENCE: + case ONIGERR_MULTIPLEX_DEFINED_NAME: + case ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL: + case ONIGERR_INVALID_GROUP_NAME: + case ONIGERR_INVALID_CHAR_IN_GROUP_NAME: + case ONIGERR_INVALID_CHAR_PROPERTY_NAME: + return 1; + default: + return 0; + } +} + +/* for ONIG_MAX_ERROR_MESSAGE_LEN */ +#define MAX_ERROR_PAR_LEN 30 + +extern int ONIG_VARIADIC_FUNC_ATTR +onig_error_code_to_str(UChar* s, int code, ...) +{ + UChar *p, *q; + OnigErrorInfo* einfo; + int len, is_over; + UChar parbuf[MAX_ERROR_PAR_LEN]; + va_list vargs; + + va_start(vargs, code); + + switch (code) { + case ONIGERR_UNDEFINED_NAME_REFERENCE: + case ONIGERR_UNDEFINED_GROUP_REFERENCE: + case ONIGERR_MULTIPLEX_DEFINED_NAME: + case ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL: + case ONIGERR_INVALID_GROUP_NAME: + case ONIGERR_INVALID_CHAR_IN_GROUP_NAME: + case ONIGERR_INVALID_CHAR_PROPERTY_NAME: + einfo = va_arg(vargs, OnigErrorInfo*); + len = to_ascii(einfo->enc, einfo->par, einfo->par_end, + parbuf, MAX_ERROR_PAR_LEN - 3, &is_over); + q = onig_error_code_to_format(code); + p = s; + while (*q != '\0') { + if (*q == '%') { + q++; + if (*q == 'n') { /* '%n': name */ + xmemcpy(p, parbuf, len); + p += len; + if (is_over != 0) { + xmemcpy(p, "...", 3); + p += 3; + } + q++; + } + else + goto normal_char; + } + else { + normal_char: + *p++ = *q++; + } + } + *p = '\0'; + len = (int )(p - s); + break; + + default: + q = onig_error_code_to_format(code); + len = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, q); + xmemcpy(s, q, len); + s[len] = '\0'; + break; + } + + va_end(vargs); + return len; +} + + +void ONIG_VARIADIC_FUNC_ATTR +onig_snprintf_with_pattern(UChar buf[], int bufsize, OnigEncoding enc, + UChar* pat, UChar* pat_end, const char *fmt, ...) +{ + int n, need, len; + UChar *p, *s, *bp; + UChar bs[6]; + va_list args; + + va_start(args, fmt); + n = xvsnprintf((char* )buf, bufsize, fmt, args); + va_end(args); + + need = (int )(pat_end - pat) * 4 + 4; + + if (n + need < bufsize) { + xstrcat((char* )buf, ": /", bufsize); + s = buf + onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, buf); + + p = pat; + while (p < pat_end) { + if (ONIGENC_IS_MBC_HEAD(enc, p)) { + len = enclen(enc, p); + if (ONIGENC_MBC_MINLEN(enc) == 1) { + while (len-- > 0) *s++ = *p++; + } + else { /* for UTF16/32 */ + int blen; + + while (len-- > 0) { + sprint_byte_with_x((char* )bs, (unsigned int )(*p++)); + blen = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs); + bp = bs; + while (blen-- > 0) *s++ = *bp++; + } + } + } + else if (*p == '\\') { + *s++ = *p++; + len = enclen(enc, p); + while (len-- > 0) *s++ = *p++; + } + else if (*p == '/') { + *s++ = (unsigned char )'\\'; + *s++ = *p++; + } + else if (!ONIGENC_IS_CODE_PRINT(enc, *p) && + !ONIGENC_IS_CODE_SPACE(enc, *p)) { + sprint_byte_with_x((char* )bs, (unsigned int )(*p++)); + len = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs); + bp = bs; + while (len-- > 0) *s++ = *bp++; + } + else { + *s++ = *p++; + } + } + + *s++ = '/'; + *s = '\0'; + } +} diff --git a/thirdparty/oniguruma/regexec.c b/thirdparty/oniguruma/regexec.c new file mode 100644 index 000000000..00cb2be83 --- /dev/null +++ b/thirdparty/oniguruma/regexec.c @@ -0,0 +1,6793 @@ +/********************************************************************** + regexec.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef ONIG_NO_PRINT +#ifndef NEED_TO_INCLUDE_STDIO +#define NEED_TO_INCLUDE_STDIO +#endif +#endif + +#include "regint.h" + +#define IS_MBC_WORD_ASCII_MODE(enc,s,end,mode) \ + ((mode) == 0 ? ONIGENC_IS_MBC_WORD(enc,s,end) : ONIGENC_IS_MBC_WORD_ASCII(enc,s,end)) + +#ifdef USE_CRNL_AS_LINE_TERMINATOR +#define ONIGENC_IS_MBC_CRNL(enc,p,end) \ + (ONIGENC_MBC_TO_CODE(enc,p,end) == 13 && \ + ONIGENC_IS_MBC_NEWLINE(enc,(p+enclen(enc,p)),end)) +#endif + +#define CHECK_INTERRUPT_IN_MATCH + +#define STACK_MEM_START(reg, idx) \ + (MEM_STATUS_AT((reg)->push_mem_start, (idx)) != 0 ? \ + STACK_AT(mem_start_stk[idx].i)->u.mem.pstr : mem_start_stk[idx].s) + +#define STACK_MEM_END(reg, idx) \ + (MEM_STATUS_AT((reg)->push_mem_end, (idx)) != 0 ? \ + STACK_AT(mem_end_stk[idx].i)->u.mem.pstr : mem_end_stk[idx].s) + +#ifdef _MSC_VER +#define DIST_CAST(d) (size_t )(d) +#else +#define DIST_CAST(d) (d) +#endif + + +static int forward_search(regex_t* reg, const UChar* str, const UChar* end, UChar* start, UChar* range, UChar** low, UChar** high); + +static int +search_in_range(regex_t* reg, const UChar* str, const UChar* end, const UChar* start, const UChar* range, /* match range */ const UChar* data_range, /* subject string range */ OnigRegion* region, OnigOptionType option, OnigMatchParam* mp); + + +#ifdef USE_CALLOUT +typedef struct { + int last_match_at_call_counter; + struct { + OnigType type; + OnigValue val; + } slot[ONIG_CALLOUT_DATA_SLOT_NUM]; +} CalloutData; +#endif + +struct OnigMatchParamStruct { + unsigned int match_stack_limit; +#ifdef USE_RETRY_LIMIT + unsigned long retry_limit_in_match; + unsigned long retry_limit_in_search; +#endif + + void* callout_user_data; /* used in callback each match */ +#ifdef USE_CALLOUT + OnigCalloutFunc progress_callout_of_contents; + OnigCalloutFunc retraction_callout_of_contents; + int match_at_call_counter; + CalloutData* callout_data; + int callout_data_alloc_num; +#endif +}; + +extern int +onig_set_match_stack_limit_size_of_match_param(OnigMatchParam* param, + unsigned int limit) +{ + param->match_stack_limit = limit; + return ONIG_NORMAL; +} + +extern int +onig_set_retry_limit_in_match_of_match_param(OnigMatchParam* param, + unsigned long limit) +{ +#ifdef USE_RETRY_LIMIT + param->retry_limit_in_match = limit; + return ONIG_NORMAL; +#else + return ONIG_NO_SUPPORT_CONFIG; +#endif +} + +extern int +onig_set_retry_limit_in_search_of_match_param(OnigMatchParam* param, + unsigned long limit) +{ +#ifdef USE_RETRY_LIMIT + param->retry_limit_in_search = limit; + return ONIG_NORMAL; +#else + return ONIG_NO_SUPPORT_CONFIG; +#endif +} + +extern int +onig_set_progress_callout_of_match_param(OnigMatchParam* param, OnigCalloutFunc f) +{ +#ifdef USE_CALLOUT + param->progress_callout_of_contents = f; + return ONIG_NORMAL; +#else + return ONIG_NO_SUPPORT_CONFIG; +#endif +} + +extern int +onig_set_retraction_callout_of_match_param(OnigMatchParam* param, OnigCalloutFunc f) +{ +#ifdef USE_CALLOUT + param->retraction_callout_of_contents = f; + return ONIG_NORMAL; +#else + return ONIG_NO_SUPPORT_CONFIG; +#endif +} + +extern int +onig_set_callout_user_data_of_match_param(OnigMatchParam* param, void* user_data) +{ + param->callout_user_data = user_data; + return ONIG_NORMAL; +} + + +typedef struct { + void* stack_p; + int stack_n; + OnigOptionType options; + OnigRegion* region; + int ptr_num; + const UChar* start; /* search start position (for \G: BEGIN_POSITION) */ + unsigned int match_stack_limit; +#ifdef USE_RETRY_LIMIT + unsigned long retry_limit_in_match; + unsigned long retry_limit_in_search; + unsigned long retry_limit_in_search_counter; +#endif + OnigMatchParam* mp; +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE + int best_len; /* for ONIG_OPTION_FIND_LONGEST */ + UChar* best_s; +#endif +#ifdef USE_CALL + unsigned long subexp_call_in_search_counter; +#endif +#ifdef USE_SKIP_SEARCH + UChar* skip_search; +#endif +} MatchArg; + + +#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) || defined(ONIG_DEBUG_STATISTICS) + +typedef struct { + short int opcode; + char* name; +} OpInfoType; + +static OpInfoType OpInfo[] = { + { OP_FINISH, "finish"}, + { OP_END, "end"}, + { OP_STR_1, "str_1"}, + { OP_STR_2, "str_2"}, + { OP_STR_3, "str_3"}, + { OP_STR_4, "str_4"}, + { OP_STR_5, "str_5"}, + { OP_STR_N, "str_n"}, + { OP_STR_MB2N1, "str_mb2-n1"}, + { OP_STR_MB2N2, "str_mb2-n2"}, + { OP_STR_MB2N3, "str_mb2-n3"}, + { OP_STR_MB2N, "str_mb2-n"}, + { OP_STR_MB3N, "str_mb3n"}, + { OP_STR_MBN, "str_mbn"}, + { OP_CCLASS, "cclass"}, + { OP_CCLASS_MB, "cclass-mb"}, + { OP_CCLASS_MIX, "cclass-mix"}, + { OP_CCLASS_NOT, "cclass-not"}, + { OP_CCLASS_MB_NOT, "cclass-mb-not"}, + { OP_CCLASS_MIX_NOT, "cclass-mix-not"}, + { OP_ANYCHAR, "anychar"}, + { OP_ANYCHAR_ML, "anychar-ml"}, + { OP_ANYCHAR_STAR, "anychar*"}, + { OP_ANYCHAR_ML_STAR, "anychar-ml*"}, + { OP_ANYCHAR_STAR_PEEK_NEXT, "anychar*-peek-next"}, + { OP_ANYCHAR_ML_STAR_PEEK_NEXT, "anychar-ml*-peek-next"}, + { OP_WORD, "word"}, + { OP_WORD_ASCII, "word-ascii"}, + { OP_NO_WORD, "not-word"}, + { OP_NO_WORD_ASCII, "not-word-ascii"}, + { OP_WORD_BOUNDARY, "word-boundary"}, + { OP_NO_WORD_BOUNDARY, "not-word-boundary"}, + { OP_WORD_BEGIN, "word-begin"}, + { OP_WORD_END, "word-end"}, + { OP_TEXT_SEGMENT_BOUNDARY, "text-segment-boundary"}, + { OP_BEGIN_BUF, "begin-buf"}, + { OP_END_BUF, "end-buf"}, + { OP_BEGIN_LINE, "begin-line"}, + { OP_END_LINE, "end-line"}, + { OP_SEMI_END_BUF, "semi-end-buf"}, + { OP_CHECK_POSITION, "check-position"}, + { OP_BACKREF1, "backref1"}, + { OP_BACKREF2, "backref2"}, + { OP_BACKREF_N, "backref-n"}, + { OP_BACKREF_N_IC, "backref-n-ic"}, + { OP_BACKREF_MULTI, "backref_multi"}, + { OP_BACKREF_MULTI_IC, "backref_multi-ic"}, + { OP_BACKREF_WITH_LEVEL, "backref_with_level"}, + { OP_BACKREF_WITH_LEVEL_IC, "backref_with_level-c"}, + { OP_BACKREF_CHECK, "backref_check"}, + { OP_BACKREF_CHECK_WITH_LEVEL, "backref_check_with_level"}, + { OP_MEM_START_PUSH, "mem-start-push"}, + { OP_MEM_START, "mem-start"}, + { OP_MEM_END_PUSH, "mem-end-push"}, +#ifdef USE_CALL + { OP_MEM_END_PUSH_REC, "mem-end-push-rec"}, +#endif + { OP_MEM_END, "mem-end"}, +#ifdef USE_CALL + { OP_MEM_END_REC, "mem-end-rec"}, +#endif + { OP_FAIL, "fail"}, + { OP_JUMP, "jump"}, + { OP_PUSH, "push"}, + { OP_PUSH_SUPER, "push-super"}, + { OP_POP, "pop"}, + { OP_POP_TO_MARK, "pop-to-mark"}, +#ifdef USE_OP_PUSH_OR_JUMP_EXACT + { OP_PUSH_OR_JUMP_EXACT1, "push-or-jump-e1"}, +#endif + { OP_PUSH_IF_PEEK_NEXT, "push-if-peek-next"}, + { OP_REPEAT, "repeat"}, + { OP_REPEAT_NG, "repeat-ng"}, + { OP_REPEAT_INC, "repeat-inc"}, + { OP_REPEAT_INC_NG, "repeat-inc-ng"}, + { OP_EMPTY_CHECK_START, "empty-check-start"}, + { OP_EMPTY_CHECK_END, "empty-check-end"}, + { OP_EMPTY_CHECK_END_MEMST, "empty-check-end-memst"}, +#ifdef USE_CALL + { OP_EMPTY_CHECK_END_MEMST_PUSH,"empty-check-end-memst-push"}, +#endif + { OP_MOVE, "move"}, + { OP_STEP_BACK_START, "step-back-start"}, + { OP_STEP_BACK_NEXT, "step-back-next"}, + { OP_CUT_TO_MARK, "cut-to-mark"}, + { OP_MARK, "mark"}, + { OP_SAVE_VAL, "save-val"}, + { OP_UPDATE_VAR, "update-var"}, +#ifdef USE_CALL + { OP_CALL, "call"}, + { OP_RETURN, "return"}, +#endif +#ifdef USE_CALLOUT + { OP_CALLOUT_CONTENTS, "callout-contents"}, + { OP_CALLOUT_NAME, "callout-name"}, +#endif + { -1, ""} +}; + +#endif + +#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) + +/* arguments type */ +typedef enum { + ARG_SPECIAL = -1, + ARG_NON = 0, + ARG_RELADDR = 1, + ARG_ABSADDR = 2, + ARG_LENGTH = 3, + ARG_MEMNUM = 4, + ARG_OPTION = 5, + ARG_MODE = 6 +} OpArgType; + +static char* +op2name(int opcode) +{ + int i; + + for (i = 0; OpInfo[i].opcode >= 0; i++) { + if (opcode == OpInfo[i].opcode) return OpInfo[i].name; + } + + return ""; +} + +static void +p_after_op(FILE* f) +{ + fputs(" ", f); +} + +static void +p_string(FILE* f, int len, UChar* s) +{ + while (len-- > 0) { fputc(*s++, f); } +} + +static void +p_len_string(FILE* f, LengthType len, int mb_len, UChar* s) +{ + int x = len * mb_len; + + fprintf(f, "len:%d ", len); + while (x-- > 0) { fputc(*s++, f); } +} + +static void +p_rel_addr(FILE* f, RelAddrType rel_addr, Operation* p, Operation* start) +{ + char* flag; + char* space1; + char* space2; + RelAddrType curr; + AbsAddrType abs_addr; + + curr = (RelAddrType )(p - start); + abs_addr = curr + rel_addr; + + flag = rel_addr < 0 ? "" : "+"; + space1 = rel_addr < 10 ? " " : ""; + space2 = abs_addr < 10 ? " " : ""; + + fprintf(f, "%s%s%d => %s%d", space1, flag, rel_addr, space2, abs_addr); +} + +static int +bitset_on_num(BitSetRef bs) +{ + int i, n; + + n = 0; + for (i = 0; i < SINGLE_BYTE_SIZE; i++) { + if (BITSET_AT(bs, i)) n++; + } + + return n; +} + + +#ifdef USE_DIRECT_THREADED_CODE +#define GET_OPCODE(reg,index) (reg)->ocs[index] +#else +#define GET_OPCODE(reg,index) (reg)->ops[index].opcode +#endif + +static void +print_compiled_byte_code(FILE* f, regex_t* reg, int index, + Operation* start, OnigEncoding enc) +{ + static char* SaveTypeNames[] = { + "KEEP", + "S", + "RIGHT_RANGE" + }; + + static char* UpdateVarTypeNames[] = { + "KEEP_FROM_STACK_LAST", + "S_FROM_STACK", + "RIGHT_RANGE_FROM_STACK", + "RIGHT_RANGE_FROM_S_STACK", + "RIGHT_RANGE_TO_S", + "RIGHT_RANGE_INIT" + }; + + int i, n; + RelAddrType addr; + LengthType len; + MemNumType mem; + OnigCodePoint code; + ModeType mode; + UChar *q; + Operation* p; + enum OpCode opcode; + + p = reg->ops + index; + + opcode = GET_OPCODE(reg, index); + + fprintf(f, "%s", op2name(opcode)); + p_after_op(f); + + switch (opcode) { + case OP_STR_1: + p_string(f, 1, p->exact.s); break; + case OP_STR_2: + p_string(f, 2, p->exact.s); break; + case OP_STR_3: + p_string(f, 3, p->exact.s); break; + case OP_STR_4: + p_string(f, 4, p->exact.s); break; + case OP_STR_5: + p_string(f, 5, p->exact.s); break; + case OP_STR_N: + len = p->exact_n.n; + p_string(f, len, p->exact_n.s); break; + case OP_STR_MB2N1: + p_string(f, 2, p->exact.s); break; + case OP_STR_MB2N2: + p_string(f, 4, p->exact.s); break; + case OP_STR_MB2N3: + p_string(f, 3, p->exact.s); break; + case OP_STR_MB2N: + len = p->exact_n.n; + p_len_string(f, len, 2, p->exact_n.s); break; + case OP_STR_MB3N: + len = p->exact_n.n; + p_len_string(f, len, 3, p->exact_n.s); break; + case OP_STR_MBN: + { + int mb_len; + + mb_len = p->exact_len_n.len; + len = p->exact_len_n.n; + q = p->exact_len_n.s; + fprintf(f, "mblen:%d len:%d ", mb_len, len); + n = len * mb_len; + while (n-- > 0) { fputc(*q++, f); } + } + break; + + case OP_CCLASS: + case OP_CCLASS_NOT: + n = bitset_on_num(p->cclass.bsp); + fprintf(f, "n:%d", n); + break; + case OP_CCLASS_MB: + case OP_CCLASS_MB_NOT: + { + OnigCodePoint ncode; + OnigCodePoint* codes; + + codes = (OnigCodePoint* )p->cclass_mb.mb; + GET_CODE_POINT(ncode, codes); + codes++; + GET_CODE_POINT(code, codes); + fprintf(f, "n:%d code:0x%x", ncode, code); + } + break; + case OP_CCLASS_MIX: + case OP_CCLASS_MIX_NOT: + { + OnigCodePoint ncode; + OnigCodePoint* codes; + + codes = (OnigCodePoint* )p->cclass_mix.mb; + n = bitset_on_num(p->cclass_mix.bsp); + + GET_CODE_POINT(ncode, codes); + codes++; + GET_CODE_POINT(code, codes); + fprintf(f, "nsg:%d code:%u nmb:%u", n, code, ncode); + } + break; + + case OP_ANYCHAR_STAR_PEEK_NEXT: + case OP_ANYCHAR_ML_STAR_PEEK_NEXT: + p_string(f, 1, &(p->anychar_star_peek_next.c)); + break; + + case OP_WORD_BOUNDARY: + case OP_NO_WORD_BOUNDARY: + case OP_WORD_BEGIN: + case OP_WORD_END: + mode = p->word_boundary.mode; + fprintf(f, "mode:%d", mode); + break; + + case OP_BACKREF_N: + case OP_BACKREF_N_IC: + mem = p->backref_n.n1; + fprintf(f, "n:%d", mem); + break; + case OP_BACKREF_MULTI_IC: + case OP_BACKREF_MULTI: + case OP_BACKREF_CHECK: + n = p->backref_general.num; + fprintf(f, "n:%d ", n); + for (i = 0; i < n; i++) { + mem = (n == 1) ? p->backref_general.n1 : p->backref_general.ns[i]; + if (i > 0) fputs(", ", f); + fprintf(f, "%d", mem); + } + break; + case OP_BACKREF_WITH_LEVEL: + case OP_BACKREF_WITH_LEVEL_IC: + case OP_BACKREF_CHECK_WITH_LEVEL: + { + LengthType level; + + level = p->backref_general.nest_level; + fprintf(f, "level:%d ", level); + n = p->backref_general.num; + for (i = 0; i < n; i++) { + mem = (n == 1) ? p->backref_general.n1 : p->backref_general.ns[i]; + if (i > 0) fputs(", ", f); + fprintf(f, "%d", mem); + } + } + break; + + case OP_MEM_START: + case OP_MEM_START_PUSH: + mem = p->memory_start.num; + fprintf(f, "mem:%d", mem); + break; + + case OP_MEM_END: + case OP_MEM_END_PUSH: +#ifdef USE_CALL + case OP_MEM_END_REC: + case OP_MEM_END_PUSH_REC: +#endif + mem = p->memory_end.num; + fprintf(f, "mem:%d", mem); + break; + + case OP_JUMP: + addr = p->jump.addr; + p_rel_addr(f, addr, p, start); + break; + + case OP_PUSH: + case OP_PUSH_SUPER: + addr = p->push.addr; + p_rel_addr(f, addr, p, start); + break; + +#ifdef USE_OP_PUSH_OR_JUMP_EXACT + case OP_PUSH_OR_JUMP_EXACT1: + addr = p->push_or_jump_exact1.addr; + p_rel_addr(f, addr, p, start); + fprintf(f, " c:"); + p_string(f, 1, &(p->push_or_jump_exact1.c)); + break; +#endif + + case OP_PUSH_IF_PEEK_NEXT: + addr = p->push_if_peek_next.addr; + p_rel_addr(f, addr, p, start); + fprintf(f, " c:"); + p_string(f, 1, &(p->push_if_peek_next.c)); + break; + + case OP_REPEAT: + case OP_REPEAT_NG: + mem = p->repeat.id; + addr = p->repeat.addr; + fprintf(f, "id:%d ", mem); + p_rel_addr(f, addr, p, start); + break; + + case OP_REPEAT_INC: + case OP_REPEAT_INC_NG: + mem = p->repeat.id; + fprintf(f, "id:%d", mem); + break; + + case OP_EMPTY_CHECK_START: + mem = p->empty_check_start.mem; + fprintf(f, "id:%d", mem); + break; + case OP_EMPTY_CHECK_END: + case OP_EMPTY_CHECK_END_MEMST: +#ifdef USE_CALL + case OP_EMPTY_CHECK_END_MEMST_PUSH: +#endif + mem = p->empty_check_end.mem; + fprintf(f, "id:%d", mem); + break; + +#ifdef USE_CALL + case OP_CALL: + addr = p->call.addr; + fprintf(f, "=> %d", addr); + break; +#endif + + case OP_MOVE: + fprintf(f, "n:%d", p->move.n); + break; + + case OP_STEP_BACK_START: + addr = p->step_back_start.addr; + fprintf(f, "init:%d rem:%d ", + p->step_back_start.initial, + p->step_back_start.remaining); + p_rel_addr(f, addr, p, start); + break; + + case OP_POP_TO_MARK: + mem = p->pop_to_mark.id; + fprintf(f, "id:%d", mem); + break; + + case OP_CUT_TO_MARK: + { + int restore; + + mem = p->cut_to_mark.id; + restore = p->cut_to_mark.restore_pos; + fprintf(f, "id:%d restore:%d", mem, restore); + } + break; + + case OP_MARK: + { + int save; + + mem = p->mark.id; + save = p->mark.save_pos; + fprintf(f, "id:%d save:%d", mem, save); + } + break; + + case OP_SAVE_VAL: + { + SaveType type; + + type = p->save_val.type; + mem = p->save_val.id; + fprintf(f, "%s id:%d", SaveTypeNames[type], mem); + } + break; + + case OP_UPDATE_VAR: + { + UpdateVarType type; + int clear; + + type = p->update_var.type; + mem = p->update_var.id; + clear = p->update_var.clear; + fprintf(f, "%s id:%d", UpdateVarTypeNames[type], mem); + if (type == UPDATE_VAR_RIGHT_RANGE_FROM_S_STACK || + type == UPDATE_VAR_RIGHT_RANGE_FROM_STACK) + fprintf(f, " clear:%d", clear); + } + break; + +#ifdef USE_CALLOUT + case OP_CALLOUT_CONTENTS: + mem = p->callout_contents.num; + fprintf(f, "num:%d", mem); + break; + + case OP_CALLOUT_NAME: + { + int id; + + id = p->callout_name.id; + mem = p->callout_name.num; + fprintf(f, "id:%d num:%d", id, mem); + } + break; +#endif + + case OP_TEXT_SEGMENT_BOUNDARY: + if (p->text_segment_boundary.not != 0) + fprintf(f, " not"); + break; + + case OP_CHECK_POSITION: + switch (p->check_position.type) { + case CHECK_POSITION_SEARCH_START: + fprintf(f, "search-start"); break; + case CHECK_POSITION_CURRENT_RIGHT_RANGE: + fprintf(f, "current-right-range"); break; + default: + break; + }; + break; + + case OP_FINISH: + case OP_END: + case OP_ANYCHAR: + case OP_ANYCHAR_ML: + case OP_ANYCHAR_STAR: + case OP_ANYCHAR_ML_STAR: + case OP_WORD: + case OP_WORD_ASCII: + case OP_NO_WORD: + case OP_NO_WORD_ASCII: + case OP_BEGIN_BUF: + case OP_END_BUF: + case OP_BEGIN_LINE: + case OP_END_LINE: + case OP_SEMI_END_BUF: + case OP_BACKREF1: + case OP_BACKREF2: + case OP_FAIL: + case OP_POP: + case OP_STEP_BACK_NEXT: +#ifdef USE_CALL + case OP_RETURN: +#endif + break; + + default: + fprintf(DBGFP, "print_compiled_byte_code: undefined code %d\n", opcode); + break; + } +} +#endif /* defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) */ + +#ifdef ONIG_DEBUG_COMPILE +extern void +onig_print_compiled_byte_code_list(FILE* f, regex_t* reg) +{ + Operation* bp; + Operation* start = reg->ops; + Operation* end = reg->ops + reg->ops_used; + + fprintf(f, "push_mem_start: 0x%x, push_mem_end: 0x%x\n", + reg->push_mem_start, reg->push_mem_end); + fprintf(f, "code-length: %d\n", reg->ops_used); + + bp = start; + while (bp < end) { + int pos = bp - start; + + fprintf(f, "%4d: ", pos); + print_compiled_byte_code(f, reg, pos, start, reg->enc); + fprintf(f, "\n"); + bp++; + } + fprintf(f, "\n"); +} +#endif + + +#ifdef USE_CAPTURE_HISTORY +static void history_tree_free(OnigCaptureTreeNode* node); + +static void +history_tree_clear(OnigCaptureTreeNode* node) +{ + int i; + + if (IS_NULL(node)) return ; + + for (i = 0; i < node->num_childs; i++) { + if (IS_NOT_NULL(node->childs[i])) { + history_tree_free(node->childs[i]); + } + } + for (i = 0; i < node->allocated; i++) { + node->childs[i] = (OnigCaptureTreeNode* )0; + } + node->num_childs = 0; + node->beg = ONIG_REGION_NOTPOS; + node->end = ONIG_REGION_NOTPOS; + node->group = -1; +} + +static void +history_tree_free(OnigCaptureTreeNode* node) +{ + history_tree_clear(node); + if (IS_NOT_NULL(node->childs)) xfree(node->childs); + + xfree(node); +} + +static void +history_root_free(OnigRegion* r) +{ + if (IS_NULL(r->history_root)) return ; + + history_tree_free(r->history_root); + r->history_root = (OnigCaptureTreeNode* )0; +} + +static OnigCaptureTreeNode* +history_node_new(void) +{ + OnigCaptureTreeNode* node; + + node = (OnigCaptureTreeNode* )xmalloc(sizeof(OnigCaptureTreeNode)); + CHECK_NULL_RETURN(node); + + node->childs = (OnigCaptureTreeNode** )0; + node->allocated = 0; + node->num_childs = 0; + node->group = -1; + node->beg = ONIG_REGION_NOTPOS; + node->end = ONIG_REGION_NOTPOS; + + return node; +} + +static int +history_tree_add_child(OnigCaptureTreeNode* parent, OnigCaptureTreeNode* child) +{ +#define HISTORY_TREE_INIT_ALLOC_SIZE 8 + + if (parent->num_childs >= parent->allocated) { + int n, i; + + if (IS_NULL(parent->childs)) { + n = HISTORY_TREE_INIT_ALLOC_SIZE; + parent->childs = + (OnigCaptureTreeNode** )xmalloc(sizeof(parent->childs[0]) * n); + } + else { + n = parent->allocated * 2; + parent->childs = + (OnigCaptureTreeNode** )xrealloc(parent->childs, + sizeof(parent->childs[0]) * n); + } + CHECK_NULL_RETURN_MEMERR(parent->childs); + for (i = parent->allocated; i < n; i++) { + parent->childs[i] = (OnigCaptureTreeNode* )0; + } + parent->allocated = n; + } + + parent->childs[parent->num_childs] = child; + parent->num_childs++; + return 0; +} + +static OnigCaptureTreeNode* +history_tree_clone(OnigCaptureTreeNode* node) +{ + int i; + OnigCaptureTreeNode *clone, *child; + + clone = history_node_new(); + CHECK_NULL_RETURN(clone); + + clone->beg = node->beg; + clone->end = node->end; + for (i = 0; i < node->num_childs; i++) { + child = history_tree_clone(node->childs[i]); + if (IS_NULL(child)) { + history_tree_free(clone); + return (OnigCaptureTreeNode* )0; + } + history_tree_add_child(clone, child); + } + + return clone; +} + +extern OnigCaptureTreeNode* +onig_get_capture_tree(OnigRegion* region) +{ + return region->history_root; +} +#endif /* USE_CAPTURE_HISTORY */ + + +static OnigCallbackEachMatchFunc CallbackEachMatch; + +extern OnigCallbackEachMatchFunc +onig_get_callback_each_match(void) +{ + return CallbackEachMatch; +} + +extern int +onig_set_callback_each_match(OnigCallbackEachMatchFunc f) +{ + CallbackEachMatch = f; + return ONIG_NORMAL; +} + + +extern void +onig_region_clear(OnigRegion* region) +{ + int i; + + for (i = 0; i < region->num_regs; i++) { + region->beg[i] = region->end[i] = ONIG_REGION_NOTPOS; + } +#ifdef USE_CAPTURE_HISTORY + history_root_free(region); +#endif +} + +extern int +onig_region_resize(OnigRegion* region, int n) +{ + region->num_regs = n; + + if (n < ONIG_NREGION) + n = ONIG_NREGION; + + if (region->allocated == 0) { + region->beg = (int* )xmalloc(n * sizeof(int)); + region->end = (int* )xmalloc(n * sizeof(int)); + + if (region->beg == 0 || region->end == 0) + return ONIGERR_MEMORY; + + region->allocated = n; + } + else if (region->allocated < n) { + region->beg = (int* )xrealloc(region->beg, n * sizeof(int)); + region->end = (int* )xrealloc(region->end, n * sizeof(int)); + + if (region->beg == 0 || region->end == 0) + return ONIGERR_MEMORY; + + region->allocated = n; + } + + return 0; +} + +static int +onig_region_resize_clear(OnigRegion* region, int n) +{ + int r; + + r = onig_region_resize(region, n); + if (r != 0) return r; + onig_region_clear(region); + return 0; +} + +extern int +onig_region_set(OnigRegion* region, int at, int beg, int end) +{ + if (at < 0) return ONIGERR_INVALID_ARGUMENT; + + if (at >= region->allocated) { + int r = onig_region_resize(region, at + 1); + if (r < 0) return r; + } + + region->beg[at] = beg; + region->end[at] = end; + return 0; +} + +extern void +onig_region_init(OnigRegion* region) +{ + region->num_regs = 0; + region->allocated = 0; + region->beg = (int* )0; + region->end = (int* )0; + region->history_root = (OnigCaptureTreeNode* )0; +} + +extern OnigRegion* +onig_region_new(void) +{ + OnigRegion* r; + + r = (OnigRegion* )xmalloc(sizeof(OnigRegion)); + CHECK_NULL_RETURN(r); + onig_region_init(r); + return r; +} + +extern void +onig_region_free(OnigRegion* r, int free_self) +{ + if (r != 0) { + if (r->allocated > 0) { + if (r->beg) xfree(r->beg); + if (r->end) xfree(r->end); + r->allocated = 0; + } +#ifdef USE_CAPTURE_HISTORY + history_root_free(r); +#endif + if (free_self) xfree(r); + } +} + +extern void +onig_region_copy(OnigRegion* to, OnigRegion* from) +{ +#define RREGC_SIZE (sizeof(int) * from->num_regs) + int i; + + if (to == from) return; + + if (to->allocated == 0) { + if (from->num_regs > 0) { + to->beg = (int* )xmalloc(RREGC_SIZE); + if (IS_NULL(to->beg)) return; + to->end = (int* )xmalloc(RREGC_SIZE); + if (IS_NULL(to->end)) return; + to->allocated = from->num_regs; + } + } + else if (to->allocated < from->num_regs) { + to->beg = (int* )xrealloc(to->beg, RREGC_SIZE); + if (IS_NULL(to->beg)) return; + to->end = (int* )xrealloc(to->end, RREGC_SIZE); + if (IS_NULL(to->end)) return; + to->allocated = from->num_regs; + } + + for (i = 0; i < from->num_regs; i++) { + to->beg[i] = from->beg[i]; + to->end[i] = from->end[i]; + } + to->num_regs = from->num_regs; + +#ifdef USE_CAPTURE_HISTORY + history_root_free(to); + + if (IS_NOT_NULL(from->history_root)) { + to->history_root = history_tree_clone(from->history_root); + } +#endif +} + +#ifdef USE_CALLOUT +#define CALLOUT_BODY(func, ain, aname_id, anum, user, args, result) do { \ + args.in = (ain);\ + args.name_id = (aname_id);\ + args.num = anum;\ + args.regex = reg;\ + args.string = str;\ + args.string_end = end;\ + args.start = sstart;\ + args.right_range = right_range;\ + args.current = s;\ + args.retry_in_match_counter = retry_in_match_counter;\ + args.msa = msa;\ + args.stk_base = stk_base;\ + args.stk = stk;\ + args.mem_start_stk = mem_start_stk;\ + args.mem_end_stk = mem_end_stk;\ + result = (func)(&args, user);\ +} while (0) + +#define RETRACTION_CALLOUT(func, aname_id, anum, user) do {\ + int result;\ + OnigCalloutArgs args;\ + CALLOUT_BODY(func, ONIG_CALLOUT_IN_RETRACTION, aname_id, anum, user, args, result);\ + switch (result) {\ + case ONIG_CALLOUT_FAIL:\ + case ONIG_CALLOUT_SUCCESS:\ + break;\ + default:\ + if (result > 0) {\ + result = ONIGERR_INVALID_ARGUMENT;\ + }\ + best_len = result;\ + goto match_at_end;\ + break;\ + }\ +} while(0) +#endif + + +/** stack **/ +#define STK_ALT_FLAG 0x0001 + +/* stack type */ +/* used by normal-POP */ +#define STK_SUPER_ALT STK_ALT_FLAG +#define STK_ALT (0x0002 | STK_ALT_FLAG) + +/* handled by normal-POP */ +#define STK_MEM_START 0x0010 +#define STK_MEM_END 0x8030 +#ifdef USE_REPEAT_AND_EMPTY_CHECK_LOCAL_VAR +#define STK_REPEAT_INC (0x0040 | STK_MASK_POP_HANDLED) +#else +#define STK_REPEAT_INC 0x0040 +#endif +#ifdef USE_CALLOUT +#define STK_CALLOUT 0x0070 +#endif + +/* avoided by normal-POP */ +#define STK_VOID 0x0000 /* for fill a blank */ +#ifdef USE_REPEAT_AND_EMPTY_CHECK_LOCAL_VAR +#define STK_EMPTY_CHECK_START (0x3000 | STK_MASK_POP_HANDLED) +#else +#define STK_EMPTY_CHECK_START 0x3000 +#endif +#define STK_EMPTY_CHECK_END 0x5000 /* for recursive call */ +#define STK_MEM_END_MARK 0x8100 +#define STK_CALL_FRAME (0x0400 | STK_MASK_POP_HANDLED) +#define STK_RETURN (0x0500 | STK_MASK_POP_HANDLED) +#define STK_SAVE_VAL 0x0600 +#define STK_MARK 0x0704 + +/* stack type check mask */ +#define STK_MASK_POP_USED STK_ALT_FLAG +#define STK_MASK_POP_HANDLED 0x0010 +#define STK_MASK_POP_HANDLED_TIL (STK_MASK_POP_HANDLED | 0x0004) +#define STK_MASK_TO_VOID_TARGET 0x100e +#define STK_MASK_MEM_END_OR_MARK 0x8000 /* MEM_END or MEM_END_MARK */ + +typedef ptrdiff_t StackIndex; + +#define INVALID_STACK_INDEX ((StackIndex )-1) + +typedef union { + StackIndex i; + UChar* s; +} StkPtrType; + + +typedef struct _StackType { + unsigned int type; + int zid; + union { + struct { + Operation* pcode; /* byte code position */ + UChar* pstr; /* string position */ + } state; + struct { + int count; +#ifdef USE_REPEAT_AND_EMPTY_CHECK_LOCAL_VAR + StackIndex prev_index; /* index of stack */ +#endif + } repeat_inc; + struct { + UChar *pstr; /* start/end position */ + /* Following information is set, if this stack type is MEM-START */ + StkPtrType prev_start; /* prev. info (for backtrack "(...)*" ) */ + StkPtrType prev_end; /* prev. info (for backtrack "(...)*" ) */ + } mem; + struct { + UChar *pstr; /* start position */ +#ifdef USE_REPEAT_AND_EMPTY_CHECK_LOCAL_VAR + StackIndex prev_index; /* index of stack */ +#endif + } empty_check; +#ifdef USE_CALL + struct { + Operation *ret_addr; /* byte code position */ + UChar *pstr; /* string position */ + } call_frame; +#endif + struct { + enum SaveType type; + UChar* v; + UChar* v2; + } val; +#ifdef USE_CALLOUT + struct { + int num; + OnigCalloutFunc func; + } callout; +#endif + } u; +} StackType; + +#ifdef USE_CALLOUT + +struct OnigCalloutArgsStruct { + OnigCalloutIn in; + int name_id; /* name id or ONIG_NON_NAME_ID */ + int num; + OnigRegex regex; + const OnigUChar* string; + const OnigUChar* string_end; + const OnigUChar* start; + const OnigUChar* right_range; + const OnigUChar* current; /* current matching position */ + unsigned long retry_in_match_counter; + + /* invisible to users */ + MatchArg* msa; + StackType* stk_base; + StackType* stk; + StkPtrType* mem_start_stk; + StkPtrType* mem_end_stk; +}; + +#endif + +#ifdef USE_REPEAT_AND_EMPTY_CHECK_LOCAL_VAR + +#define PTR_NUM_SIZE(reg) ((reg)->num_repeat + (reg)->num_empty_check + ((reg)->num_mem + 1) * 2) +#define UPDATE_FOR_STACK_REALLOC do{\ + repeat_stk = (StackIndex* )alloc_base;\ + empty_check_stk = (StackIndex* )(repeat_stk + reg->num_repeat);\ + mem_start_stk = (StkPtrType* )(empty_check_stk + reg->num_empty_check);\ + mem_end_stk = mem_start_stk + num_mem + 1;\ +} while(0) + +#define SAVE_REPEAT_STK_VAR(sid) stk->u.repeat_inc.prev_index = repeat_stk[sid] +#define LOAD_TO_REPEAT_STK_VAR(sid) repeat_stk[sid] = GET_STACK_INDEX(stk) +#define POP_REPEAT_INC else if (stk->type == STK_REPEAT_INC) {repeat_stk[stk->zid] = stk->u.repeat_inc.prev_index;} + +#define SAVE_EMPTY_CHECK_STK_VAR(sid) stk->u.empty_check.prev_index = empty_check_stk[sid] +#define LOAD_TO_EMPTY_CHECK_STK_VAR(sid) empty_check_stk[sid] = GET_STACK_INDEX(stk) +#define POP_EMPTY_CHECK_START else if (stk->type == STK_EMPTY_CHECK_START) {empty_check_stk[stk->zid] = stk->u.empty_check.prev_index;} + +#else + +#define PTR_NUM_SIZE(reg) (((reg)->num_mem + 1) * 2) +#define UPDATE_FOR_STACK_REALLOC do{\ + mem_start_stk = (StkPtrType* )alloc_base;\ + mem_end_stk = mem_start_stk + num_mem + 1;\ +} while(0) + +#define SAVE_REPEAT_STK_VAR(sid) +#define LOAD_TO_REPEAT_STK_VAR(sid) +#define POP_REPEAT_INC + +#define SAVE_EMPTY_CHECK_STK_VAR(sid) +#define LOAD_TO_EMPTY_CHECK_STK_VAR(sid) +#define POP_EMPTY_CHECK_START + +#endif /* USE_REPEAT_AND_EMPTY_CHECK_LOCAL_VAR */ + +#ifdef USE_RETRY_LIMIT +#define RETRY_IN_MATCH_ARG_INIT(msa,mpv) \ + (msa).retry_limit_in_match = (mpv)->retry_limit_in_match;\ + (msa).retry_limit_in_search = (mpv)->retry_limit_in_search;\ + (msa).retry_limit_in_search_counter = 0; +#else +#define RETRY_IN_MATCH_ARG_INIT(msa,mpv) +#endif + +#if defined(USE_CALL) +#define SUBEXP_CALL_IN_MATCH_ARG_INIT(msa,mpv) \ + (msa).subexp_call_in_search_counter = 0; + +#define POP_CALL else if (stk->type == STK_RETURN) {subexp_call_nest_counter++;} else if (stk->type == STK_CALL_FRAME) {subexp_call_nest_counter--;} +#else +#define SUBEXP_CALL_IN_MATCH_ARG_INIT(msa,mpv) +#define POP_CALL +#endif + +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE +#ifdef USE_SKIP_SEARCH +#define MATCH_ARG_INIT(msa, reg, arg_option, arg_region, arg_start, mpv) do { \ + (msa).stack_p = (void* )0;\ + (msa).options = (arg_option)|(reg)->options;\ + (msa).region = (arg_region);\ + (msa).start = (arg_start);\ + (msa).match_stack_limit = (mpv)->match_stack_limit;\ + RETRY_IN_MATCH_ARG_INIT(msa,mpv)\ + SUBEXP_CALL_IN_MATCH_ARG_INIT(msa,mpv)\ + (msa).mp = mpv;\ + (msa).best_len = ONIG_MISMATCH;\ + (msa).ptr_num = PTR_NUM_SIZE(reg);\ + (msa).skip_search = (UChar* )(arg_start);\ +} while(0) +#else +#define MATCH_ARG_INIT(msa, reg, arg_option, arg_region, arg_start, mpv) do { \ + (msa).stack_p = (void* )0;\ + (msa).options = (arg_option)|(reg)->options;\ + (msa).region = (arg_region);\ + (msa).start = (arg_start);\ + (msa).match_stack_limit = (mpv)->match_stack_limit;\ + RETRY_IN_MATCH_ARG_INIT(msa,mpv)\ + SUBEXP_CALL_IN_MATCH_ARG_INIT(msa,mpv)\ + (msa).mp = mpv;\ + (msa).best_len = ONIG_MISMATCH;\ + (msa).ptr_num = PTR_NUM_SIZE(reg);\ +} while(0) +#endif +#else +#ifdef USE_SKIP_SEARCH +#define MATCH_ARG_INIT(msa, reg, arg_option, arg_region, arg_start, mpv) do { \ + (msa).stack_p = (void* )0;\ + (msa).options = (arg_option)|(reg)->options;\ + (msa).region = (arg_region);\ + (msa).start = (arg_start);\ + (msa).match_stack_limit = (mpv)->match_stack_limit;\ + RETRY_IN_MATCH_ARG_INIT(msa,mpv)\ + SUBEXP_CALL_IN_MATCH_ARG_INIT(msa,mpv)\ + (msa).mp = mpv;\ + (msa).ptr_num = PTR_NUM_SIZE(reg);\ + (msa).skip_search = (UChar* )(arg_start);\ +} while(0) +#else +#define MATCH_ARG_INIT(msa, reg, arg_option, arg_region, arg_start, mpv) do { \ + (msa).stack_p = (void* )0;\ + (msa).options = (arg_option)|(reg)->options;\ + (msa).region = (arg_region);\ + (msa).start = (arg_start);\ + (msa).match_stack_limit = (mpv)->match_stack_limit;\ + RETRY_IN_MATCH_ARG_INIT(msa,mpv)\ + SUBEXP_CALL_IN_MATCH_ARG_INIT(msa,mpv)\ + (msa).mp = mpv;\ + (msa).ptr_num = PTR_NUM_SIZE(reg);\ +} while(0) +#endif +#endif + +#define MATCH_ARG_FREE(msa) if ((msa).stack_p) xfree((msa).stack_p) + + +#define ALLOCA_PTR_NUM_LIMIT 50 + +#define STACK_INIT(stack_num) do {\ + if (msa->stack_p) {\ + is_alloca = 0;\ + alloc_base = msa->stack_p;\ + stk_base = (StackType* )(alloc_base\ + + (sizeof(StkPtrType) * msa->ptr_num));\ + stk = stk_base;\ + stk_end = stk_base + msa->stack_n;\ + }\ + else if (msa->ptr_num > ALLOCA_PTR_NUM_LIMIT) {\ + is_alloca = 0;\ + alloc_base = (char* )xmalloc(sizeof(StkPtrType) * msa->ptr_num\ + + sizeof(StackType) * (stack_num));\ + CHECK_NULL_RETURN_MEMERR(alloc_base);\ + stk_base = (StackType* )(alloc_base\ + + (sizeof(StkPtrType) * msa->ptr_num));\ + stk = stk_base;\ + stk_end = stk_base + (stack_num);\ + }\ + else {\ + is_alloca = 1;\ + alloc_base = (char* )xalloca(sizeof(StkPtrType) * msa->ptr_num\ + + sizeof(StackType) * (stack_num));\ + CHECK_NULL_RETURN_MEMERR(alloc_base);\ + stk_base = (StackType* )(alloc_base\ + + (sizeof(StkPtrType) * msa->ptr_num));\ + stk = stk_base;\ + stk_end = stk_base + (stack_num);\ + }\ +} while(0); + + +#define STACK_SAVE(msa,is_alloca,alloc_base) do{\ + (msa)->stack_n = (int )(stk_end - stk_base);\ + if ((is_alloca) != 0) {\ + size_t size = sizeof(StkPtrType) * (msa)->ptr_num\ + + sizeof(StackType) * (msa)->stack_n;\ + (msa)->stack_p = xmalloc(size);\ + CHECK_NULL_RETURN_MEMERR((msa)->stack_p);\ + xmemcpy((msa)->stack_p, (alloc_base), size);\ + }\ + else {\ + (msa)->stack_p = (alloc_base);\ + };\ +} while(0) + +static unsigned int MatchStackLimit = DEFAULT_MATCH_STACK_LIMIT_SIZE; + +extern unsigned int +onig_get_match_stack_limit_size(void) +{ + return MatchStackLimit; +} + +extern int +onig_set_match_stack_limit_size(unsigned int size) +{ + MatchStackLimit = size; + return 0; +} + +#ifdef USE_RETRY_LIMIT + +static unsigned long RetryLimitInMatch = DEFAULT_RETRY_LIMIT_IN_MATCH; +static unsigned long RetryLimitInSearch = DEFAULT_RETRY_LIMIT_IN_SEARCH; + +#define CHECK_RETRY_LIMIT_IN_MATCH do {\ + if (++retry_in_match_counter >= retry_limit_in_match && \ + retry_limit_in_match != 0) {\ + MATCH_AT_ERROR_RETURN((retry_in_match_counter >= msa->retry_limit_in_match && msa->retry_limit_in_match != 0) ? ONIGERR_RETRY_LIMIT_IN_MATCH_OVER : ONIGERR_RETRY_LIMIT_IN_SEARCH_OVER); \ + }\ +} while (0) + +#else + +#define CHECK_RETRY_LIMIT_IN_MATCH + +#endif /* USE_RETRY_LIMIT */ + +extern unsigned long +onig_get_retry_limit_in_match(void) +{ +#ifdef USE_RETRY_LIMIT + return RetryLimitInMatch; +#else + return 0; +#endif +} + +extern int +onig_set_retry_limit_in_match(unsigned long n) +{ +#ifdef USE_RETRY_LIMIT + RetryLimitInMatch = n; + return 0; +#else + return ONIG_NO_SUPPORT_CONFIG; +#endif +} + +extern unsigned long +onig_get_retry_limit_in_search(void) +{ +#ifdef USE_RETRY_LIMIT + return RetryLimitInSearch; +#else + return 0; +#endif +} + +extern int +onig_set_retry_limit_in_search(unsigned long n) +{ +#ifdef USE_RETRY_LIMIT + RetryLimitInSearch = n; + return 0; +#else + return ONIG_NO_SUPPORT_CONFIG; +#endif +} + +#ifdef USE_CALL +static unsigned long SubexpCallLimitInSearch = DEFAULT_SUBEXP_CALL_LIMIT_IN_SEARCH; + +extern unsigned long +onig_get_subexp_call_limit_in_search(void) +{ + return SubexpCallLimitInSearch; +} + +extern int +onig_set_subexp_call_limit_in_search(unsigned long n) +{ + SubexpCallLimitInSearch = n; + return 0; +} + +#endif + + +#ifdef USE_CALLOUT +static OnigCalloutFunc DefaultProgressCallout; +static OnigCalloutFunc DefaultRetractionCallout; +#endif + +extern OnigMatchParam* +onig_new_match_param(void) +{ + OnigMatchParam* p; + + p = (OnigMatchParam* )xmalloc(sizeof(*p)); + if (IS_NOT_NULL(p)) { + onig_initialize_match_param(p); + } + + return p; +} + +extern void +onig_free_match_param_content(OnigMatchParam* p) +{ +#ifdef USE_CALLOUT + if (IS_NOT_NULL(p->callout_data)) { + xfree(p->callout_data); + p->callout_data = 0; + } +#endif +} + +extern void +onig_free_match_param(OnigMatchParam* p) +{ + if (IS_NOT_NULL(p)) { + onig_free_match_param_content(p); + xfree(p); + } +} + +extern int +onig_initialize_match_param(OnigMatchParam* mp) +{ + mp->match_stack_limit = MatchStackLimit; +#ifdef USE_RETRY_LIMIT + mp->retry_limit_in_match = RetryLimitInMatch; + mp->retry_limit_in_search = RetryLimitInSearch; +#endif + + mp->callout_user_data = 0; + +#ifdef USE_CALLOUT + mp->progress_callout_of_contents = DefaultProgressCallout; + mp->retraction_callout_of_contents = DefaultRetractionCallout; + mp->match_at_call_counter = 0; + mp->callout_data = 0; + mp->callout_data_alloc_num = 0; +#endif + + return ONIG_NORMAL; +} + +#ifdef USE_CALLOUT + +static int +adjust_match_param(regex_t* reg, OnigMatchParam* mp) +{ + RegexExt* ext = reg->extp; + + mp->match_at_call_counter = 0; + + if (IS_NULL(ext) || ext->callout_num == 0) return ONIG_NORMAL; + + if (ext->callout_num > mp->callout_data_alloc_num) { + CalloutData* d; + size_t n = ext->callout_num * sizeof(*d); + if (IS_NOT_NULL(mp->callout_data)) + d = (CalloutData* )xrealloc(mp->callout_data, n); + else + d = (CalloutData* )xmalloc(n); + CHECK_NULL_RETURN_MEMERR(d); + + mp->callout_data = d; + mp->callout_data_alloc_num = ext->callout_num; + } + + xmemset(mp->callout_data, 0, mp->callout_data_alloc_num * sizeof(CalloutData)); + return ONIG_NORMAL; +} + +#define ADJUST_MATCH_PARAM(reg, mp) \ + r = adjust_match_param(reg, mp);\ + if (r != ONIG_NORMAL) return r; + +#define CALLOUT_DATA_AT_NUM(mp, num) ((mp)->callout_data + ((num) - 1)) + +extern int +onig_check_callout_data_and_clear_old_values(OnigCalloutArgs* args) +{ + OnigMatchParam* mp; + int num; + CalloutData* d; + + mp = args->msa->mp; + num = args->num; + + d = CALLOUT_DATA_AT_NUM(mp, num); + if (d->last_match_at_call_counter != mp->match_at_call_counter) { + xmemset(d, 0, sizeof(*d)); + d->last_match_at_call_counter = mp->match_at_call_counter; + return d->last_match_at_call_counter; + } + + return 0; +} + +extern int +onig_get_callout_data_dont_clear_old(regex_t* reg, OnigMatchParam* mp, + int callout_num, int slot, + OnigType* type, OnigValue* val) +{ + OnigType t; + CalloutData* d; + + if (callout_num <= 0) return ONIGERR_INVALID_ARGUMENT; + + d = CALLOUT_DATA_AT_NUM(mp, callout_num); + t = d->slot[slot].type; + if (IS_NOT_NULL(type)) *type = t; + if (IS_NOT_NULL(val)) *val = d->slot[slot].val; + return (t == ONIG_TYPE_VOID ? ONIG_VALUE_IS_NOT_SET : ONIG_NORMAL); +} + +extern int +onig_get_callout_data_by_tag_dont_clear_old(regex_t* reg, + OnigMatchParam* mp, const UChar* tag, const UChar* tag_end, int slot, + OnigType* type, OnigValue* val) +{ + int num; + + num = onig_get_callout_num_by_tag(reg, tag, tag_end); + if (num < 0) return num; + if (num == 0) return ONIGERR_INVALID_CALLOUT_TAG_NAME; + + return onig_get_callout_data_dont_clear_old(reg, mp, num, slot, type, val); +} + +extern int +onig_get_callout_data_by_callout_args_self_dont_clear_old( + OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val) +{ + return onig_get_callout_data_dont_clear_old(args->regex, args->msa->mp, + args->num, slot, type, val); +} + +extern int +onig_get_callout_data(regex_t* reg, OnigMatchParam* mp, + int callout_num, int slot, + OnigType* type, OnigValue* val) +{ + OnigType t; + CalloutData* d; + + if (callout_num <= 0) return ONIGERR_INVALID_ARGUMENT; + + d = CALLOUT_DATA_AT_NUM(mp, callout_num); + if (d->last_match_at_call_counter != mp->match_at_call_counter) { + xmemset(d, 0, sizeof(*d)); + d->last_match_at_call_counter = mp->match_at_call_counter; + } + + t = d->slot[slot].type; + if (IS_NOT_NULL(type)) *type = t; + if (IS_NOT_NULL(val)) *val = d->slot[slot].val; + return (t == ONIG_TYPE_VOID ? ONIG_VALUE_IS_NOT_SET : ONIG_NORMAL); +} + +extern int +onig_get_callout_data_by_tag(regex_t* reg, OnigMatchParam* mp, + const UChar* tag, const UChar* tag_end, int slot, + OnigType* type, OnigValue* val) +{ + int num; + + num = onig_get_callout_num_by_tag(reg, tag, tag_end); + if (num < 0) return num; + if (num == 0) return ONIGERR_INVALID_CALLOUT_TAG_NAME; + + return onig_get_callout_data(reg, mp, num, slot, type, val); +} + +extern int +onig_get_callout_data_by_callout_args(OnigCalloutArgs* args, + int callout_num, int slot, + OnigType* type, OnigValue* val) +{ + return onig_get_callout_data(args->regex, args->msa->mp, callout_num, slot, + type, val); +} + +extern int +onig_get_callout_data_by_callout_args_self(OnigCalloutArgs* args, + int slot, OnigType* type, OnigValue* val) +{ + return onig_get_callout_data(args->regex, args->msa->mp, args->num, slot, + type, val); +} + +extern int +onig_set_callout_data(regex_t* reg, OnigMatchParam* mp, + int callout_num, int slot, + OnigType type, OnigValue* val) +{ + CalloutData* d; + + if (callout_num <= 0) return ONIGERR_INVALID_ARGUMENT; + + d = CALLOUT_DATA_AT_NUM(mp, callout_num); + d->slot[slot].type = type; + d->slot[slot].val = *val; + d->last_match_at_call_counter = mp->match_at_call_counter; + + return ONIG_NORMAL; +} + +extern int +onig_set_callout_data_by_tag(regex_t* reg, OnigMatchParam* mp, + const UChar* tag, const UChar* tag_end, int slot, + OnigType type, OnigValue* val) +{ + int num; + + num = onig_get_callout_num_by_tag(reg, tag, tag_end); + if (num < 0) return num; + if (num == 0) return ONIGERR_INVALID_CALLOUT_TAG_NAME; + + return onig_set_callout_data(reg, mp, num, slot, type, val); +} + +extern int +onig_set_callout_data_by_callout_args(OnigCalloutArgs* args, + int callout_num, int slot, + OnigType type, OnigValue* val) +{ + return onig_set_callout_data(args->regex, args->msa->mp, callout_num, slot, + type, val); +} + +extern int +onig_set_callout_data_by_callout_args_self(OnigCalloutArgs* args, + int slot, OnigType type, OnigValue* val) +{ + return onig_set_callout_data(args->regex, args->msa->mp, args->num, slot, + type, val); +} + +#else +#define ADJUST_MATCH_PARAM(reg, mp) +#endif /* USE_CALLOUT */ + + +static int +stack_double(int* is_alloca, char** arg_alloc_base, + StackType** arg_stk_base, StackType** arg_stk_end, + StackType** arg_stk, MatchArg* msa) +{ + unsigned int n; + int used; + size_t size; + size_t new_size; + char* alloc_base; + char* new_alloc_base; + StackType *stk_base, *stk_end, *stk; + + alloc_base = *arg_alloc_base; + stk_base = *arg_stk_base; + stk_end = *arg_stk_end; + stk = *arg_stk; + + n = (unsigned int )(stk_end - stk_base); + size = sizeof(StkPtrType) * msa->ptr_num + sizeof(StackType) * n; + n *= 2; + new_size = sizeof(StkPtrType) * msa->ptr_num + sizeof(StackType) * n; + if (*is_alloca != 0) { + new_alloc_base = (char* )xmalloc(new_size); + if (IS_NULL(new_alloc_base)) { + STACK_SAVE(msa, *is_alloca, alloc_base); + return ONIGERR_MEMORY; + } + xmemcpy(new_alloc_base, alloc_base, size); + *is_alloca = 0; + } + else { + if (msa->match_stack_limit != 0 && n > msa->match_stack_limit) { + if ((unsigned int )(stk_end - stk_base) == msa->match_stack_limit) { + STACK_SAVE(msa, *is_alloca, alloc_base); + return ONIGERR_MATCH_STACK_LIMIT_OVER; + } + else + n = msa->match_stack_limit; + } + new_alloc_base = (char* )xrealloc(alloc_base, new_size); + if (IS_NULL(new_alloc_base)) { + STACK_SAVE(msa, *is_alloca, alloc_base); + return ONIGERR_MEMORY; + } + } + + alloc_base = new_alloc_base; + used = (int )(stk - stk_base); + *arg_alloc_base = alloc_base; + *arg_stk_base = (StackType* )(alloc_base + + (sizeof(StkPtrType) * msa->ptr_num)); + *arg_stk = *arg_stk_base + used; + *arg_stk_end = *arg_stk_base + n; + return 0; +} + +#define STACK_ENSURE(n) do {\ + if ((int )(stk_end - stk) < (n)) {\ + int r = stack_double(&is_alloca, &alloc_base, &stk_base, &stk_end, &stk, msa);\ + if (r != 0) return r;\ + UPDATE_FOR_STACK_REALLOC;\ + }\ +} while(0) + +#define STACK_AT(index) (stk_base + (index)) +#define GET_STACK_INDEX(stk) ((stk) - stk_base) + +#define STACK_PUSH_TYPE(stack_type) do {\ + STACK_ENSURE(1);\ + stk->type = (stack_type);\ + STACK_INC;\ +} while(0) + +#define IS_TO_VOID_TARGET(stk) (((stk)->type & STK_MASK_TO_VOID_TARGET) != 0) + +#define STACK_PUSH(stack_type,pat,s) do {\ + STACK_ENSURE(1);\ + stk->type = (stack_type);\ + stk->u.state.pcode = (pat);\ + stk->u.state.pstr = (s);\ + STACK_INC;\ +} while(0) + +#define STACK_PUSH_WITH_ZID(stack_type,pat,s,id) do {\ + STACK_ENSURE(1);\ + stk->type = (stack_type);\ + stk->zid = (int )(id);\ + stk->u.state.pcode = (pat);\ + stk->u.state.pstr = (s);\ + STACK_INC;\ +} while(0) + +#define STACK_PUSH_ENSURED(stack_type,pat) do {\ + stk->type = (stack_type);\ + stk->u.state.pcode = (pat);\ + STACK_INC;\ +} while(0) + +#ifdef ONIG_DEBUG_MATCH +#define STACK_PUSH_BOTTOM(stack_type,pat) do {\ + stk->type = (stack_type);\ + stk->u.state.pcode = (pat);\ + stk->u.state.pstr = s;\ + STACK_INC;\ +} while (0) +#else +#define STACK_PUSH_BOTTOM(stack_type,pat) do {\ + stk->type = (stack_type);\ + stk->u.state.pcode = (pat);\ + STACK_INC;\ +} while (0) +#endif + +#define STACK_PUSH_ALT(pat,s) STACK_PUSH(STK_ALT,pat,s) +#define STACK_PUSH_SUPER_ALT(pat,s) STACK_PUSH(STK_SUPER_ALT,pat,s) +#define STACK_PUSH_ALT_WITH_ZID(pat,s,id) STACK_PUSH_WITH_ZID(STK_ALT,pat,s,id) + +#if 0 +#define STACK_PUSH_REPEAT(sid, pat) do {\ + STACK_ENSURE(1);\ + stk->type = STK_REPEAT;\ + stk->zid = (sid);\ + stk->u.repeat.pcode = (pat);\ + STACK_INC;\ +} while(0) +#endif + +#define STACK_PUSH_REPEAT_INC(sid, ct) do {\ + STACK_ENSURE(1);\ + stk->type = STK_REPEAT_INC;\ + stk->zid = (sid);\ + stk->u.repeat_inc.count = (ct);\ + SAVE_REPEAT_STK_VAR(sid);\ + LOAD_TO_REPEAT_STK_VAR(sid);\ + STACK_INC;\ +} while(0) + +#define STACK_PUSH_MEM_START(mnum, s) do {\ + STACK_ENSURE(1);\ + stk->type = STK_MEM_START;\ + stk->zid = (mnum);\ + stk->u.mem.pstr = (s);\ + stk->u.mem.prev_start = mem_start_stk[mnum];\ + stk->u.mem.prev_end = mem_end_stk[mnum];\ + mem_start_stk[mnum].i = GET_STACK_INDEX(stk);\ + mem_end_stk[mnum].i = INVALID_STACK_INDEX;\ + STACK_INC;\ +} while(0) + +#define STACK_PUSH_MEM_END(mnum, s) do {\ + STACK_ENSURE(1);\ + stk->type = STK_MEM_END;\ + stk->zid = (mnum);\ + stk->u.mem.pstr = (s);\ + stk->u.mem.prev_start = mem_start_stk[mnum];\ + stk->u.mem.prev_end = mem_end_stk[mnum];\ + mem_end_stk[mnum].i = GET_STACK_INDEX(stk);\ + STACK_INC;\ +} while(0) + +#define STACK_PUSH_MEM_END_MARK(mnum) do {\ + STACK_ENSURE(1);\ + stk->type = STK_MEM_END_MARK;\ + stk->zid = (mnum);\ + STACK_INC;\ +} while(0) + +#define STACK_GET_MEM_START(mnum, k) do {\ + int level = 0;\ + k = stk;\ + while (k > stk_base) {\ + k--;\ + if ((k->type & STK_MASK_MEM_END_OR_MARK) != 0 \ + && k->zid == (mnum)) {\ + level++;\ + }\ + else if (k->type == STK_MEM_START && k->zid == (mnum)) {\ + if (level == 0) break;\ + level--;\ + }\ + }\ +} while(0) + +#define STACK_GET_MEM_RANGE(k, mnum, start, end) do {\ + int level = 0;\ + while (k < stk) {\ + if (k->type == STK_MEM_START && k->u.mem.num == (mnum)) {\ + if (level == 0) (start) = k->u.mem.pstr;\ + level++;\ + }\ + else if (k->type == STK_MEM_END && k->u.mem.num == (mnum)) {\ + level--;\ + if (level == 0) {\ + (end) = k->u.mem.pstr;\ + break;\ + }\ + }\ + k++;\ + }\ +} while(0) + +#define STACK_PUSH_EMPTY_CHECK_START(cnum, s) do {\ + STACK_ENSURE(1);\ + stk->type = STK_EMPTY_CHECK_START;\ + stk->zid = (cnum);\ + stk->u.empty_check.pstr = (s);\ + SAVE_EMPTY_CHECK_STK_VAR(cnum);\ + LOAD_TO_EMPTY_CHECK_STK_VAR(cnum);\ + STACK_INC;\ +} while(0) + +#define STACK_PUSH_EMPTY_CHECK_END(cnum) do {\ + STACK_ENSURE(1);\ + stk->type = STK_EMPTY_CHECK_END;\ + stk->zid = (cnum);\ + STACK_INC;\ +} while(0) + +#define STACK_PUSH_CALL_FRAME(pat) do {\ + STACK_ENSURE(1);\ + stk->type = STK_CALL_FRAME;\ + stk->u.call_frame.ret_addr = (pat);\ + STACK_INC;\ +} while(0) + +#define STACK_PUSH_RETURN do {\ + STACK_ENSURE(1);\ + stk->type = STK_RETURN;\ + STACK_INC;\ +} while(0) + +#define STACK_PUSH_MARK(sid) do {\ + STACK_ENSURE(1);\ + stk->type = STK_MARK;\ + stk->zid = (sid);\ + STACK_INC;\ +} while(0) + +#define STACK_PUSH_MARK_WITH_POS(sid, s) do {\ + STACK_ENSURE(1);\ + stk->type = STK_MARK;\ + stk->zid = (sid);\ + stk->u.val.v = (UChar* )(s);\ + STACK_INC;\ +} while(0) + +#define STACK_PUSH_SAVE_VAL(sid, stype, sval) do {\ + STACK_ENSURE(1);\ + stk->type = STK_SAVE_VAL;\ + stk->zid = (sid);\ + stk->u.val.type = (stype);\ + stk->u.val.v = (UChar* )(sval);\ + STACK_INC;\ +} while(0) + +#define STACK_PUSH_SAVE_VAL_WITH_SPREV(sid, stype, sval) do {\ + STACK_ENSURE(1);\ + stk->type = STK_SAVE_VAL;\ + stk->zid = (sid);\ + stk->u.val.type = (stype);\ + stk->u.val.v = (UChar* )(sval);\ + STACK_INC;\ +} while(0) + +#define STACK_GET_SAVE_VAL_TYPE_LAST(stype, sval) do {\ + StackType *k = stk;\ + while (k > stk_base) {\ + k--;\ + STACK_BASE_CHECK(k, "STACK_GET_SAVE_VAL_TYPE_LAST"); \ + if (k->type == STK_SAVE_VAL && k->u.val.type == (stype)) {\ + (sval) = k->u.val.v;\ + break;\ + }\ + }\ +} while (0) + +#define STACK_GET_SAVE_VAL_TYPE_LAST_ID(stype, sid, sval, clear) do {\ + int level = 0;\ + StackType *k = stk;\ + while (k > stk_base) {\ + k--;\ + STACK_BASE_CHECK(k, "STACK_GET_SAVE_VAL_TYPE_LAST_ID"); \ + if (k->type == STK_SAVE_VAL && k->u.val.type == (stype)\ + && k->zid == (sid)) {\ + if (level == 0) {\ + (sval) = k->u.val.v;\ + if (clear != 0) k->type = STK_VOID;\ + break;\ + }\ + }\ + else if (k->type == STK_CALL_FRAME)\ + level--;\ + else if (k->type == STK_RETURN)\ + level++;\ + }\ +} while (0) + +#define STACK_GET_SAVE_VAL_TYPE_LAST_ID_WITH_SPREV(stype, sid, sval) do { \ + int level = 0;\ + StackType *k = stk;\ + while (k > stk_base) {\ + k--;\ + STACK_BASE_CHECK(k, "STACK_GET_SAVE_VAL_TYPE_LAST_ID"); \ + if (k->type == STK_SAVE_VAL && k->u.val.type == (stype)\ + && k->zid == (sid)) {\ + if (level == 0) {\ + (sval) = k->u.val.v;\ + break;\ + }\ + }\ + else if (k->type == STK_CALL_FRAME)\ + level--;\ + else if (k->type == STK_RETURN)\ + level++;\ + }\ +} while (0) + +#define STACK_PUSH_CALLOUT_CONTENTS(anum, func) do {\ + STACK_ENSURE(1);\ + stk->type = STK_CALLOUT;\ + stk->zid = ONIG_NON_NAME_ID;\ + stk->u.callout.num = (anum);\ + stk->u.callout.func = (func);\ + STACK_INC;\ +} while(0) + +#define STACK_PUSH_CALLOUT_NAME(aid, anum, func) do {\ + STACK_ENSURE(1);\ + stk->type = STK_CALLOUT;\ + stk->zid = (aid);\ + stk->u.callout.num = (anum);\ + stk->u.callout.func = (func);\ + STACK_INC;\ +} while(0) + +#ifdef ONIG_DEBUG +#define STACK_BASE_CHECK(p, at) \ + if ((p) < stk_base) {\ + fprintf(DBGFP, "at %s\n", at);\ + MATCH_AT_ERROR_RETURN(ONIGERR_STACK_BUG);\ + } +#else +#define STACK_BASE_CHECK(p, at) +#endif + +#define STACK_POP_ONE do {\ + stk--;\ + STACK_BASE_CHECK(stk, "STACK_POP_ONE"); \ +} while(0) + + +#ifdef USE_CALLOUT +#define POP_CALLOUT_CASE \ + else if (stk->type == STK_CALLOUT) {\ + RETRACTION_CALLOUT(stk->u.callout.func, stk->zid, stk->u.callout.num, msa->mp->callout_user_data);\ + } +#else +#define POP_CALLOUT_CASE +#endif + +#define STACK_POP do {\ + switch (pop_level) {\ + case STACK_POP_LEVEL_FREE:\ + while (1) {\ + stk--;\ + STACK_BASE_CHECK(stk, "STACK_POP"); \ + if ((stk->type & STK_MASK_POP_USED) != 0) break;\ + }\ + break;\ + case STACK_POP_LEVEL_MEM_START:\ + while (1) {\ + stk--;\ + STACK_BASE_CHECK(stk, "STACK_POP 2"); \ + if ((stk->type & STK_MASK_POP_USED) != 0) break;\ + else if (stk->type == STK_MEM_START) {\ + mem_start_stk[stk->zid] = stk->u.mem.prev_start;\ + mem_end_stk[stk->zid] = stk->u.mem.prev_end;\ + }\ + }\ + break;\ + default:\ + while (1) {\ + stk--;\ + STACK_BASE_CHECK(stk, "STACK_POP 3"); \ + if ((stk->type & STK_MASK_POP_USED) != 0) break;\ + else if ((stk->type & STK_MASK_POP_HANDLED) != 0) {\ + if (stk->type == STK_MEM_START) {\ + mem_start_stk[stk->zid] = stk->u.mem.prev_start;\ + mem_end_stk[stk->zid] = stk->u.mem.prev_end;\ + }\ + else if (stk->type == STK_MEM_END) {\ + mem_start_stk[stk->zid] = stk->u.mem.prev_start;\ + mem_end_stk[stk->zid] = stk->u.mem.prev_end;\ + }\ + POP_REPEAT_INC \ + POP_EMPTY_CHECK_START \ + POP_CALL \ + POP_CALLOUT_CASE\ + }\ + }\ + break;\ + }\ +} while(0) + +#define STACK_POP_TO_MARK(sid) do {\ + while (1) {\ + stk--;\ + STACK_BASE_CHECK(stk, "STACK_POP_TO_MARK");\ + if ((stk->type & STK_MASK_POP_HANDLED_TIL) != 0) {\ + if (stk->type == STK_MARK) {\ + if (stk->zid == (sid)) break;\ + }\ + else {\ + if (stk->type == STK_MEM_START) {\ + mem_start_stk[stk->zid] = stk->u.mem.prev_start;\ + mem_end_stk[stk->zid] = stk->u.mem.prev_end;\ + }\ + else if (stk->type == STK_MEM_END) {\ + mem_start_stk[stk->zid] = stk->u.mem.prev_start;\ + mem_end_stk[stk->zid] = stk->u.mem.prev_end;\ + }\ + POP_REPEAT_INC \ + POP_EMPTY_CHECK_START \ + POP_CALL \ + /* Don't call callout here because negation of total success by (?!..) (?type & STK_MASK_POP_HANDLED_TIL) != 0) {\ + if (stk->type == (til_type)) break;\ + else {\ + if (stk->type == STK_MEM_START) {\ + mem_start_stk[stk->zid] = stk->u.mem.prev_start;\ + mem_end_stk[stk->zid] = stk->u.mem.prev_end;\ + }\ + else if (stk->type == STK_MEM_END) {\ + mem_start_stk[stk->zid] = stk->u.mem.prev_start;\ + mem_end_stk[stk->zid] = stk->u.mem.prev_end;\ + }\ + POP_REPEAT_INC \ + POP_EMPTY_CHECK_START \ + POP_CALL \ + /* Don't call callout here because negation of total success by (?!..) (?type == STK_MARK) {\ + if (k->zid == (sid)) {\ + k->type = STK_VOID;\ + break;\ + } /* don't void different id mark */ \ + }\ + else\ + k->type = STK_VOID;\ + }\ + }\ +} while(0) + +#define EMPTY_CHECK_START_SEARCH(sid, k) do {\ + k = stk;\ + while (1) {\ + k--;\ + STACK_BASE_CHECK(k, "EMPTY_CHECK_START_SEARCH"); \ + if (k->type == STK_EMPTY_CHECK_START) {\ + if (k->zid == (sid)) break;\ + }\ + }\ +} while(0) + +#ifdef USE_REPEAT_AND_EMPTY_CHECK_LOCAL_VAR + +#define GET_EMPTY_CHECK_START(sid, k) do {\ + if (reg->num_call == 0) {\ + k = STACK_AT(empty_check_stk[sid]);\ + }\ + else {\ + EMPTY_CHECK_START_SEARCH(sid, k);\ + }\ +} while(0) +#else + +#define GET_EMPTY_CHECK_START(sid, k) EMPTY_CHECK_START_SEARCH(sid, k) + +#endif + + +#define STACK_EMPTY_CHECK(isnull, sid, s) do {\ + StackType* k;\ + GET_EMPTY_CHECK_START(sid, k);\ + (isnull) = (k->u.empty_check.pstr == (s));\ +} while(0) + +#define STACK_MEM_START_GET_PREV_END_ADDR(k /* STK_MEM_START*/, reg, addr) do {\ + if (k->u.mem.prev_end.i == INVALID_STACK_INDEX) {\ + (addr) = 0;\ + }\ + else {\ + if (MEM_STATUS_AT((reg)->push_mem_end, k->zid))\ + (addr) = STACK_AT(k->u.mem.prev_end.i)->u.mem.pstr;\ + else\ + (addr) = k->u.mem.prev_end.s;\ + }\ +} while (0) + +#ifdef USE_RIGID_CHECK_CAPTURES_IN_EMPTY_REPEAT +#define STACK_EMPTY_CHECK_MEM(isnull, sid, empty_status_mem, s, reg) do {\ + StackType* klow;\ + GET_EMPTY_CHECK_START(sid, klow);\ + if (klow->u.empty_check.pstr != (s)) {\ + stack_empty_check_mem_not_empty:\ + (isnull) = 0;\ + }\ + else {\ + StackType *k, *kk;\ + MemStatusType ms = (empty_status_mem);\ + (isnull) = 1;\ + k = stk;\ + while (k > klow) {\ + k--;\ + if (k->type == STK_MEM_END && MEM_STATUS_LIMIT_AT(ms, k->zid)) {\ + kk = klow;\ + while (kk < k) {\ + if (kk->type == STK_MEM_START && kk->zid == k->zid) {\ + if (kk->u.mem.prev_end.i == INVALID_STACK_INDEX || \ + ((STACK_AT(kk->u.mem.prev_end.i)->u.mem.pstr != k->u.mem.pstr || STACK_AT(kk->u.mem.prev_start.i)->u.mem.pstr != STACK_AT(k->u.mem.prev_start.i)->u.mem.pstr) && (STACK_AT(k->u.mem.prev_start.i)->u.mem.pstr != k->u.mem.pstr || STACK_AT(kk->u.mem.prev_start.i)->u.mem.pstr != STACK_AT(kk->u.mem.prev_end.i)->u.mem.pstr))) {\ + goto stack_empty_check_mem_not_empty;\ + }\ + else {\ + ms &= ~((MemStatusType )1 << k->zid);\ + break;\ + }\ + }\ + kk++;\ + }\ + if (ms == 0) break;\ + }\ + }\ + }\ +} while(0) + +#define STACK_EMPTY_CHECK_MEM_REC(isnull,sid,empty_status_mem,s,reg) do {\ + int level = 0;\ + StackType* klow = stk;\ + while (1) {\ + klow--;\ + STACK_BASE_CHECK(klow, "STACK_EMPTY_CHECK_MEM_REC");\ + if (klow->type == STK_EMPTY_CHECK_START) {\ + if (klow->zid == (sid)) {\ + if (level == 0) {\ + if (klow->u.empty_check.pstr != (s)) {\ + stack_empty_check_mem_rec_not_empty:\ + (isnull) = 0;\ + break;\ + }\ + else {\ + StackType *k, *kk;\ + MemStatusType ms;\ + (isnull) = 1;\ + if ((empty_status_mem) == 0) break;\ + ms = (empty_status_mem);\ + k = stk;\ + while (k > klow) {\ + k--;\ + if (k->type == STK_MEM_END) {\ + if (level == 0 && MEM_STATUS_LIMIT_AT(ms, k->zid)) {\ + kk = klow;\ + kk++;\ + while (kk < k) {\ + if (kk->type == STK_MEM_START && kk->zid == k->zid) {\ + if (kk->u.mem.prev_end.i == INVALID_STACK_INDEX || \ + ((STACK_AT(kk->u.mem.prev_end.i)->u.mem.pstr != k->u.mem.pstr || STACK_AT(kk->u.mem.prev_start.i)->u.mem.pstr != STACK_AT(k->u.mem.prev_start.i)->u.mem.pstr) && (STACK_AT(k->u.mem.prev_start.i)->u.mem.pstr != k->u.mem.pstr || STACK_AT(kk->u.mem.prev_start.i)->u.mem.pstr != STACK_AT(kk->u.mem.prev_end.i)->u.mem.pstr))) {\ + goto stack_empty_check_mem_rec_not_empty;\ + }\ + else {\ + ms &= ~((MemStatusType )1 << k->zid);\ + break;\ + }\ + }\ + else if (kk->type == STK_EMPTY_CHECK_START) {\ + if (kk->zid == (sid)) level++;\ + }\ + else if (kk->type == STK_EMPTY_CHECK_END) {\ + if (kk->zid == (sid)) level--;\ + }\ + kk++;\ + }\ + level = 0;\ + if (ms == 0) break;\ + }\ + }\ + else if (k->type == STK_EMPTY_CHECK_START) {\ + if (k->zid == (sid)) level++;\ + }\ + else if (k->type == STK_EMPTY_CHECK_END) {\ + if (k->zid == (sid)) level--;\ + }\ + }\ + break;\ + }\ + }\ + else {\ + level--;\ + }\ + }\ + }\ + else if (klow->type == STK_EMPTY_CHECK_END) {\ + if (klow->zid == (sid)) level++;\ + }\ + }\ +} while(0) +#else +#define STACK_EMPTY_CHECK_REC(isnull,id,s) do {\ + int level = 0;\ + StackType* k = stk;\ + while (1) {\ + k--;\ + STACK_BASE_CHECK(k, "STACK_EMPTY_CHECK_REC"); \ + if (k->type == STK_EMPTY_CHECK_START) {\ + if (k->u.empty_check.num == (id)) {\ + if (level == 0) {\ + (isnull) = (k->u.empty_check.pstr == (s));\ + break;\ + }\ + }\ + level--;\ + }\ + else if (k->type == STK_EMPTY_CHECK_END) {\ + level++;\ + }\ + }\ +} while(0) +#endif /* USE_RIGID_CHECK_CAPTURES_IN_EMPTY_REPEAT */ + +#define STACK_GET_REPEAT_COUNT_SEARCH(sid, c) do {\ + StackType* k = stk;\ + while (1) {\ + (k)--;\ + STACK_BASE_CHECK(k, "STACK_GET_REPEAT_COUNT_SEARCH");\ + if ((k)->type == STK_REPEAT_INC) {\ + if ((k)->zid == (sid)) {\ + (c) = (k)->u.repeat_inc.count;\ + break;\ + }\ + }\ + else if ((k)->type == STK_RETURN) {\ + int level = -1;\ + while (1) {\ + (k)--;\ + if ((k)->type == STK_CALL_FRAME) {\ + level++;\ + if (level == 0) break;\ + }\ + else if ((k)->type == STK_RETURN) level--;\ + }\ + }\ + }\ +} while(0) + +#ifdef USE_REPEAT_AND_EMPTY_CHECK_LOCAL_VAR + +#define STACK_GET_REPEAT_COUNT(sid, c) do {\ + if (reg->num_call == 0) {\ + (c) = (STACK_AT(repeat_stk[sid]))->u.repeat_inc.count;\ + }\ + else {\ + STACK_GET_REPEAT_COUNT_SEARCH(sid, c);\ + }\ +} while(0) +#else +#define STACK_GET_REPEAT_COUNT(sid, c) STACK_GET_REPEAT_COUNT_SEARCH(sid, c) +#endif + +#ifdef USE_CALL +#define STACK_RETURN(addr) do {\ + int level = 0;\ + StackType* k = stk;\ + while (1) {\ + k--;\ + STACK_BASE_CHECK(k, "STACK_RETURN"); \ + if (k->type == STK_CALL_FRAME) {\ + if (level == 0) {\ + (addr) = k->u.call_frame.ret_addr;\ + break;\ + }\ + else level--;\ + }\ + else if (k->type == STK_RETURN)\ + level++;\ + }\ +} while(0) + +#define GET_STACK_RETURN_CALL(k,addr) do {\ + int level = 0;\ + k = stk;\ + while (1) {\ + k--;\ + STACK_BASE_CHECK(k, "GET_STACK_RETURN_CALL");\ + if (k->type == STK_CALL_FRAME) {\ + if (level == 0) {\ + (addr) = k->u.call_frame.ret_addr;\ + break;\ + }\ + else level--;\ + }\ + else if (k->type == STK_RETURN)\ + level++;\ + }\ +} while(0) +#endif + + +#define STRING_CMP(s1,s2,len) do {\ + while (len-- > 0) {\ + if (*s1++ != *s2++) goto fail;\ + }\ +} while(0) + +#define STRING_CMP_IC(case_fold_flag,s1,ps2,len) do {\ + if (string_cmp_ic(encode, case_fold_flag, s1, ps2, len) == 0) \ + goto fail; \ +} while(0) + +static int string_cmp_ic(OnigEncoding enc, int case_fold_flag, + UChar* s1, UChar** ps2, int mblen) +{ + UChar buf1[ONIGENC_MBC_CASE_FOLD_MAXLEN]; + UChar buf2[ONIGENC_MBC_CASE_FOLD_MAXLEN]; + UChar *p1, *p2, *end1, *s2, *end2; + int len1, len2; + + s2 = *ps2; + end1 = s1 + mblen; + end2 = s2 + mblen; + while (s1 < end1) { + len1 = ONIGENC_MBC_CASE_FOLD(enc, case_fold_flag, &s1, end1, buf1); + len2 = ONIGENC_MBC_CASE_FOLD(enc, case_fold_flag, &s2, end2, buf2); + if (len1 != len2) return 0; + p1 = buf1; + p2 = buf2; + while (len1-- > 0) { + if (*p1 != *p2) return 0; + p1++; + p2++; + } + if (s2 >= end2) { + if (s1 < end1) return 0; + else break; + } + } + + *ps2 = s2; + return 1; +} + +#define STRING_CMP_VALUE(s1,s2,len,is_fail) do {\ + is_fail = 0;\ + while (len-- > 0) {\ + if (*s1++ != *s2++) {\ + is_fail = 1; break;\ + }\ + }\ +} while(0) + +#define STRING_CMP_VALUE_IC(case_fold_flag,s1,ps2,len,is_fail) do {\ + if (string_cmp_ic(encode, case_fold_flag, s1, ps2, len) == 0) \ + is_fail = 1; \ + else \ + is_fail = 0; \ +} while(0) + + +#define IS_EMPTY_STR (str == end) +#define ON_STR_BEGIN(s) ((s) == str) +#define ON_STR_END(s) ((s) == end) +#define DATA_ENSURE_CHECK1 (s < right_range) +#define DATA_ENSURE_CHECK(n) ((n) <= right_range - s) +#define DATA_ENSURE(n) if (right_range - s < (n)) goto fail + +#define INIT_RIGHT_RANGE right_range = (UChar* )in_right_range + +#ifdef USE_CAPTURE_HISTORY +static int +make_capture_history_tree(OnigCaptureTreeNode* node, StackType** kp, + StackType* stk_top, UChar* str, regex_t* reg) +{ + int n, r; + OnigCaptureTreeNode* child; + StackType* k = *kp; + + while (k < stk_top) { + if (k->type == STK_MEM_START) { + n = k->zid; + if (n <= ONIG_MAX_CAPTURE_HISTORY_GROUP && + MEM_STATUS_AT(reg->capture_history, n) != 0) { + child = history_node_new(); + CHECK_NULL_RETURN_MEMERR(child); + child->group = n; + child->beg = (int )(k->u.mem.pstr - str); + r = history_tree_add_child(node, child); + if (r != 0) return r; + *kp = (k + 1); + r = make_capture_history_tree(child, kp, stk_top, str, reg); + if (r != 0) return r; + + k = *kp; + child->end = (int )(k->u.mem.pstr - str); + } + } + else if (k->type == STK_MEM_END) { + if (k->zid == node->group) { + node->end = (int )(k->u.mem.pstr - str); + *kp = k; + return 0; + } + } + k++; + } + + return 1; /* 1: root node ending. */ +} +#endif + +#ifdef USE_BACKREF_WITH_LEVEL +static int mem_is_in_memp(int mem, int num, MemNumType* memp) +{ + int i; + + for (i = 0; i < num; i++) { + if (mem == (int )memp[i]) return 1; + } + return 0; +} + +static int +backref_match_at_nested_level(regex_t* reg, + StackType* top, StackType* stk_base, + int ignore_case, int case_fold_flag, + int nest, int mem_num, MemNumType* memp, + UChar** s, const UChar* send) +{ + UChar *ss, *p, *pstart, *pend = NULL_UCHARP; + int level; + StackType* k; + + level = 0; + k = top; + k--; + while (k >= stk_base) { + if (k->type == STK_CALL_FRAME) { + level--; + } + else if (k->type == STK_RETURN) { + level++; + } + else if (level == nest) { + if (k->type == STK_MEM_START) { + if (mem_is_in_memp(k->zid, mem_num, memp)) { + pstart = k->u.mem.pstr; + if (IS_NOT_NULL(pend)) { + if (pend - pstart > send - *s) return 0; /* or goto next_mem; */ + p = pstart; + ss = *s; + + if (ignore_case != 0) { + if (string_cmp_ic(reg->enc, case_fold_flag, + pstart, &ss, (int )(pend - pstart)) == 0) + return 0; /* or goto next_mem; */ + } + else { + while (p < pend) { + if (*p++ != *ss++) return 0; /* or goto next_mem; */ + } + } + + *s = ss; + return 1; + } + } + } + else if (k->type == STK_MEM_END) { + if (mem_is_in_memp(k->zid, mem_num, memp)) { + pend = k->u.mem.pstr; + } + } + } + k--; + } + + return 0; +} + +static int +backref_check_at_nested_level(regex_t* reg, + StackType* top, StackType* stk_base, + int nest, int mem_num, MemNumType* memp) +{ + int level; + StackType* k; + + level = 0; + k = top; + k--; + while (k >= stk_base) { + if (k->type == STK_CALL_FRAME) { + level--; + } + else if (k->type == STK_RETURN) { + level++; + } + else if (level == nest) { + if (k->type == STK_MEM_END) { + if (mem_is_in_memp(k->zid, mem_num, memp)) { + return 1; + } + } + } + k--; + } + + return 0; +} +#endif /* USE_BACKREF_WITH_LEVEL */ + +static int SubexpCallMaxNestLevel = DEFAULT_SUBEXP_CALL_MAX_NEST_LEVEL; + +#ifdef ONIG_DEBUG_STATISTICS + +#ifdef USE_TIMEOFDAY + +static struct timeval ts, te; +#define GETTIME(t) gettimeofday(&(t), (struct timezone* )0) +#define TIMEDIFF(te,ts) (((te).tv_usec - (ts).tv_usec) + \ + (((te).tv_sec - (ts).tv_sec)*1000000)) +#else + +static struct tms ts, te; +#define GETTIME(t) times(&(t)) +#define TIMEDIFF(te,ts) ((te).tms_utime - (ts).tms_utime) + +#endif /* USE_TIMEOFDAY */ + +static int OpCounter[256]; +static int OpPrevCounter[256]; +static unsigned long OpTime[256]; +static int OpCurr = OP_FINISH; +static int OpPrevTarget = OP_FAIL; +static int MaxStackDepth = 0; + +#define SOP_IN(opcode) do {\ + if (opcode == OpPrevTarget) OpPrevCounter[OpCurr]++;\ + OpCurr = opcode;\ + OpCounter[opcode]++;\ + GETTIME(ts);\ +} while(0) + +#define SOP_OUT do {\ + GETTIME(te);\ + OpTime[OpCurr] += TIMEDIFF(te, ts);\ +} while(0) + +extern void +onig_statistics_init(void) +{ + int i; + for (i = 0; i < 256; i++) { + OpCounter[i] = OpPrevCounter[i] = 0; OpTime[i] = 0; + } + MaxStackDepth = 0; +} + +extern int +onig_print_statistics(FILE* f) +{ + int r; + int i; + + r = fprintf(f, " count prev time\n"); + if (r < 0) return -1; + + for (i = 0; OpInfo[i].opcode >= 0; i++) { + r = fprintf(f, "%8d: %8d: %10ld: %s\n", + OpCounter[i], OpPrevCounter[i], OpTime[i], OpInfo[i].name); + if (r < 0) return -1; + } + r = fprintf(f, "\nmax stack depth: %d\n", MaxStackDepth); + if (r < 0) return -1; + + return 0; +} + +#define STACK_INC do {\ + stk++;\ + if (stk - stk_base > MaxStackDepth) \ + MaxStackDepth = stk - stk_base;\ +} while(0) + +#else +#define STACK_INC stk++ + +#define SOP_IN(opcode) +#define SOP_OUT +#endif + + +/* matching region of POSIX API */ +typedef int regoff_t; + +typedef struct { + regoff_t rm_so; + regoff_t rm_eo; +} posix_regmatch_t; + + + +#ifdef USE_THREADED_CODE + +#define BYTECODE_INTERPRETER_START GOTO_OP; +#define BYTECODE_INTERPRETER_END +#define CASE_OP(x) L_##x: SOP_IN(OP_##x); MATCH_DEBUG_OUT(0) +#define DEFAULT_OP /* L_DEFAULT: */ +#define NEXT_OP JUMP_OP +#define JUMP_OP GOTO_OP +#ifdef USE_DIRECT_THREADED_CODE +#define GOTO_OP goto *(p->opaddr) +#else +#define GOTO_OP goto *opcode_to_label[p->opcode] +#endif +#define BREAK_OP /* Nothing */ + +#else + +#define BYTECODE_INTERPRETER_START \ + while (1) {\ + MATCH_DEBUG_OUT(0)\ + switch (p->opcode) { +#define BYTECODE_INTERPRETER_END } } +#define CASE_OP(x) case OP_##x: SOP_IN(OP_##x); +#define DEFAULT_OP default: +#define NEXT_OP break +#define JUMP_OP GOTO_OP +#define GOTO_OP continue; break +#define BREAK_OP break + +#endif /* USE_THREADED_CODE */ + +#define INC_OP p++ +#define JUMP_OUT_WITH_SPREV_SET SOP_OUT; NEXT_OP +#define JUMP_OUT SOP_OUT; JUMP_OP +#define BREAK_OUT SOP_OUT; BREAK_OP +#define CHECK_INTERRUPT_JUMP_OUT SOP_OUT; CHECK_INTERRUPT_IN_MATCH; JUMP_OP + + +#ifdef ONIG_DEBUG_MATCH +#define MATCH_DEBUG_OUT(offset) do {\ + Operation *xp;\ + UChar *q, *bp, buf[50];\ + int len, spos;\ + spos = IS_NOT_NULL(s) ? (int )(s - str) : -1;\ + xp = p - (offset);\ + fprintf(DBGFP, "%7u: %7ld: %4d> \"",\ + counter, GET_STACK_INDEX(stk), spos);\ + counter++;\ + bp = buf;\ + if (IS_NOT_NULL(s)) {\ + for (i = 0, q = s; i < 7 && q < end; i++) {\ + len = enclen(encode, q);\ + while (len-- > 0) *bp++ = *q++;\ + }\ + if (q < end) { xmemcpy(bp, "...\"", 4); bp += 4; }\ + else { xmemcpy(bp, "\"", 1); bp += 1; }\ + }\ + else {\ + xmemcpy(bp, "\"", 1); bp += 1;\ + }\ + *bp = 0;\ + fputs((char* )buf, DBGFP);\ + for (i = 0; i < 20 - (bp - buf); i++) fputc(' ', DBGFP);\ + if (xp == FinishCode)\ + fprintf(DBGFP, "----: finish");\ + else {\ + int index;\ + enum OpCode zopcode;\ + Operation* addr;\ + index = (int )(xp - reg->ops);\ + fprintf(DBGFP, "%4d: ", index);\ + print_compiled_byte_code(DBGFP, reg, index, reg->ops, encode); \ + zopcode = GET_OPCODE(reg, index);\ + if (zopcode == OP_RETURN) {\ + GET_STACK_RETURN_CALL(stkp, addr);\ + fprintf(DBGFP, " f:%ld -> %d", \ + GET_STACK_INDEX(stkp), (int )(addr - reg->ops));\ + }\ + }\ + fprintf(DBGFP, "\n");\ + } while(0); +#else +#define MATCH_DEBUG_OUT(offset) +#endif + +#define MATCH_AT_ERROR_RETURN(err_code) do {\ + best_len = err_code; goto match_at_end;\ +} while(0) + +#define MATCH_COUNTER_OUT(title) do {\ + int i;\ + fprintf(DBGFP, "%s (%ld): retry limit: %8lu/%8lu, subexp_call: %8lu\n", (title), (sstart - str), retry_in_match_counter, retry_limit_in_match, msa->subexp_call_in_search_counter); \ + fprintf(DBGFP, " ");\ + for (i = 0; i < MAX_SUBEXP_CALL_COUNTERS; i++) {\ + fprintf(DBGFP, " %6lu", subexp_call_counters[i]);\ + }\ + fprintf(DBGFP, "\n");\ + fflush(DBGFP);\ +} while (0) + + +/* match data(str - end) from position (sstart). */ +static int +match_at(regex_t* reg, const UChar* str, const UChar* end, + const UChar* in_right_range, const UChar* sstart, + MatchArg* msa) +{ + +#if defined(USE_DIRECT_THREADED_CODE) + static Operation FinishCode[] = { { .opaddr=&&L_FINISH } }; +#else + static Operation FinishCode[] = { { OP_FINISH } }; +#endif + +#ifdef USE_THREADED_CODE + static const void *opcode_to_label[] = { + &&L_FINISH, + &&L_END, + &&L_STR_1, + &&L_STR_2, + &&L_STR_3, + &&L_STR_4, + &&L_STR_5, + &&L_STR_N, + &&L_STR_MB2N1, + &&L_STR_MB2N2, + &&L_STR_MB2N3, + &&L_STR_MB2N, + &&L_STR_MB3N, + &&L_STR_MBN, + &&L_CCLASS, + &&L_CCLASS_MB, + &&L_CCLASS_MIX, + &&L_CCLASS_NOT, + &&L_CCLASS_MB_NOT, + &&L_CCLASS_MIX_NOT, + &&L_ANYCHAR, + &&L_ANYCHAR_ML, + &&L_ANYCHAR_STAR, + &&L_ANYCHAR_ML_STAR, + &&L_ANYCHAR_STAR_PEEK_NEXT, + &&L_ANYCHAR_ML_STAR_PEEK_NEXT, + &&L_WORD, + &&L_WORD_ASCII, + &&L_NO_WORD, + &&L_NO_WORD_ASCII, + &&L_WORD_BOUNDARY, + &&L_NO_WORD_BOUNDARY, + &&L_WORD_BEGIN, + &&L_WORD_END, + &&L_TEXT_SEGMENT_BOUNDARY, + &&L_BEGIN_BUF, + &&L_END_BUF, + &&L_BEGIN_LINE, + &&L_END_LINE, + &&L_SEMI_END_BUF, + &&L_CHECK_POSITION, + &&L_BACKREF1, + &&L_BACKREF2, + &&L_BACKREF_N, + &&L_BACKREF_N_IC, + &&L_BACKREF_MULTI, + &&L_BACKREF_MULTI_IC, +#ifdef USE_BACKREF_WITH_LEVEL + &&L_BACKREF_WITH_LEVEL, + &&L_BACKREF_WITH_LEVEL_IC, +#endif + &&L_BACKREF_CHECK, +#ifdef USE_BACKREF_WITH_LEVEL + &&L_BACKREF_CHECK_WITH_LEVEL, +#endif + &&L_MEM_START, + &&L_MEM_START_PUSH, + &&L_MEM_END_PUSH, +#ifdef USE_CALL + &&L_MEM_END_PUSH_REC, +#endif + &&L_MEM_END, +#ifdef USE_CALL + &&L_MEM_END_REC, +#endif + &&L_FAIL, + &&L_JUMP, + &&L_PUSH, + &&L_PUSH_SUPER, + &&L_POP, + &&L_POP_TO_MARK, +#ifdef USE_OP_PUSH_OR_JUMP_EXACT + &&L_PUSH_OR_JUMP_EXACT1, +#endif + &&L_PUSH_IF_PEEK_NEXT, + &&L_REPEAT, + &&L_REPEAT_NG, + &&L_REPEAT_INC, + &&L_REPEAT_INC_NG, + &&L_EMPTY_CHECK_START, + &&L_EMPTY_CHECK_END, + &&L_EMPTY_CHECK_END_MEMST, +#ifdef USE_CALL + &&L_EMPTY_CHECK_END_MEMST_PUSH, +#endif + &&L_MOVE, + &&L_STEP_BACK_START, + &&L_STEP_BACK_NEXT, + &&L_CUT_TO_MARK, + &&L_MARK, + &&L_SAVE_VAL, + &&L_UPDATE_VAR, +#ifdef USE_CALL + &&L_CALL, + &&L_RETURN, +#endif +#ifdef USE_CALLOUT + &&L_CALLOUT_CONTENTS, + &&L_CALLOUT_NAME, +#endif + }; +#endif + + int i, n, num_mem, best_len, pop_level; + LengthType tlen, tlen2; + MemNumType mem; + RelAddrType addr; + UChar *s, *ps; + UChar *right_range; + int is_alloca; + char *alloc_base; + StackType *stk_base, *stk, *stk_end; + StackType *stkp; /* used as any purpose. */ + StkPtrType *mem_start_stk, *mem_end_stk; + UChar* keep; + OnigRegion* region; + +#ifdef USE_REPEAT_AND_EMPTY_CHECK_LOCAL_VAR + StackIndex *repeat_stk; + StackIndex *empty_check_stk; +#endif +#ifdef USE_RETRY_LIMIT + unsigned long retry_limit_in_match; + unsigned long retry_in_match_counter; +#endif +#ifdef USE_CALLOUT + int of; +#endif +#ifdef ONIG_DEBUG_MATCH_COUNTER +#define MAX_SUBEXP_CALL_COUNTERS 9 + unsigned long subexp_call_counters[MAX_SUBEXP_CALL_COUNTERS]; +#endif + + OnigOptionType options; + Operation* p = reg->ops; + OnigEncoding encode = reg->enc; + OnigCaseFoldType case_fold_flag = reg->case_fold_flag; + +#ifdef USE_CALL + unsigned long subexp_call_nest_counter = 0; +#endif + +#ifdef ONIG_DEBUG_MATCH + static unsigned int counter = 1; +#endif + +#ifdef ONIG_DEBUG_MATCH_COUNTER + for (i = 0; i < MAX_SUBEXP_CALL_COUNTERS; i++) { + subexp_call_counters[i] = 0; + } +#endif + +#ifdef USE_DIRECT_THREADED_CODE + if (IS_NULL(msa)) { + for (i = 0; i < reg->ops_used; i++) { + const void* addr; + addr = opcode_to_label[reg->ocs[i]]; + p->opaddr = addr; + p++; + } + return ONIG_NORMAL; + } +#endif + + options = msa->options; + +#ifdef USE_CALLOUT + msa->mp->match_at_call_counter++; +#endif + +#ifdef USE_RETRY_LIMIT + retry_limit_in_match = msa->retry_limit_in_match; + if (msa->retry_limit_in_search != 0) { + unsigned long rem = msa->retry_limit_in_search + - msa->retry_limit_in_search_counter; + if (rem < retry_limit_in_match || retry_limit_in_match == 0) + retry_limit_in_match = rem; + } +#endif + + pop_level = reg->stack_pop_level; + num_mem = reg->num_mem; + STACK_INIT(INIT_MATCH_STACK_SIZE); + UPDATE_FOR_STACK_REALLOC; + for (i = 1; i <= num_mem; i++) { + mem_start_stk[i].i = mem_end_stk[i].i = INVALID_STACK_INDEX; + } + +#ifdef ONIG_DEBUG_MATCH + fprintf(DBGFP, "match_at: str: %p, end: %p, start: %p\n", str, end, sstart); + fprintf(DBGFP, "size: %d, start offset: %d\n", + (int )(end - str), (int )(sstart - str)); +#endif + + best_len = ONIG_MISMATCH; + keep = s = (UChar* )sstart; + STACK_PUSH_BOTTOM(STK_ALT, FinishCode); /* bottom stack */ + INIT_RIGHT_RANGE; + +#ifdef USE_RETRY_LIMIT + retry_in_match_counter = 0; +#endif + + BYTECODE_INTERPRETER_START { + CASE_OP(END) + if (OPTON_MATCH_WHOLE_STRING(options)) { + if (! ON_STR_END(s)) goto fail; + } + + n = (int )(s - sstart); + if (n == 0 && OPTON_FIND_NOT_EMPTY(options)) { + best_len = ONIG_MISMATCH; + goto fail; /* for retry */ + } + +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE + if (OPTON_FIND_LONGEST(options)) { + if (n > best_len) { + if (n > msa->best_len) { + best_len = n; + msa->best_len = n; + msa->best_s = (UChar* )sstart; + } + else { + if (s >= in_right_range && msa->best_s == sstart) { + goto op_end_out; + } + else { + goto fail; /* for retry */ + } + } + } + else { + goto fail; /* for retry */ + } + } + else { + best_len = n; + } +#else + best_len = n; +#endif + + /* set region */ + region = msa->region; + if (region) { + if (keep > s) keep = s; + +#ifdef USE_POSIX_API + if (OPTON_POSIX_REGION(options)) { + posix_regmatch_t* rmt = (posix_regmatch_t* )region; + + rmt[0].rm_so = (regoff_t )(keep - str); + rmt[0].rm_eo = (regoff_t )(s - str); + for (i = 1; i <= num_mem; i++) { + if (mem_end_stk[i].i != INVALID_STACK_INDEX) { + rmt[i].rm_so = (regoff_t )(STACK_MEM_START(reg, i) - str); + rmt[i].rm_eo = (regoff_t )(STACK_MEM_END(reg, i) - str); + } + else { + rmt[i].rm_so = rmt[i].rm_eo = ONIG_REGION_NOTPOS; + } + } + } + else { +#endif /* USE_POSIX_API */ + region->beg[0] = (int )(keep - str); + region->end[0] = (int )(s - str); + for (i = 1; i <= num_mem; i++) { + if (mem_end_stk[i].i != INVALID_STACK_INDEX) { + region->beg[i] = (int )(STACK_MEM_START(reg, i) - str); + region->end[i] = (int )(STACK_MEM_END(reg, i) - str); + } + else { + region->beg[i] = region->end[i] = ONIG_REGION_NOTPOS; + } + } + +#ifdef USE_CAPTURE_HISTORY + if (reg->capture_history != 0) { + OnigCaptureTreeNode* node; + + if (IS_NULL(region->history_root)) { + region->history_root = node = history_node_new(); + CHECK_NULL_RETURN_MEMERR(node); + } + else { + node = region->history_root; + history_tree_clear(node); + } + + node->group = 0; + node->beg = (int )(keep - str); + node->end = (int )(s - str); + + stkp = stk_base; + i = make_capture_history_tree(region->history_root, &stkp, + stk, (UChar* )str, reg); + if (i < 0) MATCH_AT_ERROR_RETURN(i); + } +#endif /* USE_CAPTURE_HISTORY */ +#ifdef USE_POSIX_API + } /* else OPTON_POSIX_REGION() */ +#endif + } /* if (region) */ + + if (OPTON_CALLBACK_EACH_MATCH(options) && + IS_NOT_NULL(CallbackEachMatch)) { + i = CallbackEachMatch(str, end, sstart, region, + msa->mp->callout_user_data); + if (i < 0) { + SOP_OUT; + MATCH_AT_ERROR_RETURN(i); + } +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE + if (! OPTON_FIND_LONGEST(options)) +#endif + best_len = ONIG_MISMATCH; + + goto fail; + } + +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE + if (OPTON_FIND_LONGEST(options)) goto fail; +#endif + + op_end_out: + /* default behavior: return first-matching result. */ + SOP_OUT; + goto match_at_end; + + CASE_OP(STR_1) + DATA_ENSURE(1); + ps = p->exact.s; + if (*ps != *s) goto fail; + s++; + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(STR_2) + DATA_ENSURE(2); + ps = p->exact.s; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + s++; + INC_OP; + JUMP_OUT; + + CASE_OP(STR_3) + DATA_ENSURE(3); + ps = p->exact.s; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + s++; + INC_OP; + JUMP_OUT; + + CASE_OP(STR_4) + DATA_ENSURE(4); + ps = p->exact.s; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + s++; + INC_OP; + JUMP_OUT; + + CASE_OP(STR_5) + DATA_ENSURE(5); + ps = p->exact.s; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + s++; + INC_OP; + JUMP_OUT; + + CASE_OP(STR_N) + tlen = p->exact_n.n; + DATA_ENSURE(tlen); + ps = p->exact_n.s; + while (tlen-- > 0) { + if (*ps++ != *s++) goto fail; + } + INC_OP; + JUMP_OUT; + + CASE_OP(STR_MB2N1) + DATA_ENSURE(2); + ps = p->exact.s; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + s++; + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(STR_MB2N2) + DATA_ENSURE(4); + ps = p->exact.s; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + s++; + INC_OP; + JUMP_OUT; + + CASE_OP(STR_MB2N3) + DATA_ENSURE(6); + ps = p->exact.s; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + INC_OP; + JUMP_OUT; + + CASE_OP(STR_MB2N) + tlen = p->exact_n.n; + DATA_ENSURE(tlen * 2); + ps = p->exact_n.s; + while (tlen-- > 0) { + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + } + INC_OP; + JUMP_OUT; + + CASE_OP(STR_MB3N) + tlen = p->exact_n.n; + DATA_ENSURE(tlen * 3); + ps = p->exact_n.s; + while (tlen-- > 0) { + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + if (*ps != *s) goto fail; + ps++; s++; + } + INC_OP; + JUMP_OUT; + + CASE_OP(STR_MBN) + tlen = p->exact_len_n.len; /* mb byte len */ + tlen2 = p->exact_len_n.n; /* number of chars */ + tlen2 *= tlen; + DATA_ENSURE(tlen2); + ps = p->exact_len_n.s; + while (tlen2-- > 0) { + if (*ps != *s) goto fail; + ps++; s++; + } + INC_OP; + JUMP_OUT; + + CASE_OP(CCLASS) + DATA_ENSURE(1); + if (BITSET_AT(p->cclass.bsp, *s) == 0) goto fail; + if (ONIGENC_IS_MBC_HEAD(encode, s)) goto fail; + s++; + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(CCLASS_MB) + DATA_ENSURE(1); + if (! ONIGENC_IS_MBC_HEAD(encode, s)) goto fail; + + cclass_mb: + { + OnigCodePoint code; + UChar *ss; + int mb_len; + + mb_len = enclen(encode, s); + DATA_ENSURE(mb_len); + ss = s; + s += mb_len; + code = ONIGENC_MBC_TO_CODE(encode, ss, s); + if (! onig_is_in_code_range(p->cclass_mb.mb, code)) goto fail; + } + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(CCLASS_MIX) + DATA_ENSURE(1); + if (ONIGENC_IS_MBC_HEAD(encode, s)) { + goto cclass_mb; + } + else { + if (BITSET_AT(p->cclass_mix.bsp, *s) == 0) + goto fail; + + s++; + } + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(CCLASS_NOT) + DATA_ENSURE(1); + if (BITSET_AT(p->cclass.bsp, *s) != 0) goto fail; + s += enclen(encode, s); + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(CCLASS_MB_NOT) + DATA_ENSURE(1); + if (! ONIGENC_IS_MBC_HEAD(encode, s)) { + s++; + goto cc_mb_not_success; + } + + cclass_mb_not: + { + OnigCodePoint code; + UChar *ss; + int mb_len = enclen(encode, s); + + if (! DATA_ENSURE_CHECK(mb_len)) { + DATA_ENSURE(1); + s = (UChar* )end; + goto cc_mb_not_success; + } + + ss = s; + s += mb_len; + code = ONIGENC_MBC_TO_CODE(encode, ss, s); + if (onig_is_in_code_range(p->cclass_mb.mb, code)) goto fail; + } + + cc_mb_not_success: + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(CCLASS_MIX_NOT) + DATA_ENSURE(1); + if (ONIGENC_IS_MBC_HEAD(encode, s)) { + goto cclass_mb_not; + } + else { + if (BITSET_AT(p->cclass_mix.bsp, *s) != 0) + goto fail; + + s++; + } + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(ANYCHAR) + DATA_ENSURE(1); + n = enclen(encode, s); + DATA_ENSURE(n); + if (ONIGENC_IS_MBC_NEWLINE(encode, s, end)) goto fail; + s += n; + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(ANYCHAR_ML) + DATA_ENSURE(1); + n = enclen(encode, s); + DATA_ENSURE(n); + s += n; + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(ANYCHAR_STAR) + INC_OP; + while (DATA_ENSURE_CHECK1) { + STACK_PUSH_ALT(p, s); + n = enclen(encode, s); + DATA_ENSURE(n); + if (ONIGENC_IS_MBC_NEWLINE(encode, s, end)) goto fail; + s += n; + } + JUMP_OUT; + + CASE_OP(ANYCHAR_ML_STAR) + INC_OP; + while (DATA_ENSURE_CHECK1) { + STACK_PUSH_ALT(p, s); + n = enclen(encode, s); + if (n > 1) { + DATA_ENSURE(n); + s += n; + } + else { + s++; + } + } + JUMP_OUT; + + CASE_OP(ANYCHAR_STAR_PEEK_NEXT) + { + UChar c; + + c = p->anychar_star_peek_next.c; + INC_OP; + while (DATA_ENSURE_CHECK1) { + if (c == *s) { + STACK_PUSH_ALT(p, s); + } + n = enclen(encode, s); + DATA_ENSURE(n); + if (ONIGENC_IS_MBC_NEWLINE(encode, s, end)) goto fail; + s += n; + } + } + JUMP_OUT; + + CASE_OP(ANYCHAR_ML_STAR_PEEK_NEXT) + { + UChar c; + + c = p->anychar_star_peek_next.c; + INC_OP; + while (DATA_ENSURE_CHECK1) { + if (c == *s) { + STACK_PUSH_ALT(p, s); + } + n = enclen(encode, s); + if (n > 1) { + DATA_ENSURE(n); + s += n; + } + else { + s++; + } + } + } + JUMP_OUT; + + CASE_OP(WORD) + DATA_ENSURE(1); + if (! ONIGENC_IS_MBC_WORD(encode, s, end)) + goto fail; + + s += enclen(encode, s); + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(WORD_ASCII) + DATA_ENSURE(1); + if (! ONIGENC_IS_MBC_WORD_ASCII(encode, s, end)) + goto fail; + + s += enclen(encode, s); + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(NO_WORD) + DATA_ENSURE(1); + if (ONIGENC_IS_MBC_WORD(encode, s, end)) + goto fail; + + s += enclen(encode, s); + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(NO_WORD_ASCII) + DATA_ENSURE(1); + if (ONIGENC_IS_MBC_WORD_ASCII(encode, s, end)) + goto fail; + + s += enclen(encode, s); + INC_OP; + JUMP_OUT_WITH_SPREV_SET; + + CASE_OP(WORD_BOUNDARY) + { + ModeType mode; + + mode = p->word_boundary.mode; + if (ON_STR_BEGIN(s)) { + DATA_ENSURE(1); + if (! IS_MBC_WORD_ASCII_MODE(encode, s, end, mode)) + goto fail; + } + else { + UChar* sprev = (UChar* )onigenc_get_prev_char_head(encode, str, s); + if (ON_STR_END(s)) { + if (! IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) + goto fail; + } + else { + if (IS_MBC_WORD_ASCII_MODE(encode, s, end, mode) + == IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) + goto fail; + } + } + } + INC_OP; + JUMP_OUT; + + CASE_OP(NO_WORD_BOUNDARY) + { + ModeType mode; + + mode = p->word_boundary.mode; + if (ON_STR_BEGIN(s)) { + if (DATA_ENSURE_CHECK1 && IS_MBC_WORD_ASCII_MODE(encode, s, end, mode)) + goto fail; + } + else { + UChar* sprev = (UChar* )onigenc_get_prev_char_head(encode, str, s); + if (ON_STR_END(s)) { + if (IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) + goto fail; + } + else { + if (IS_MBC_WORD_ASCII_MODE(encode, s, end, mode) + != IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) + goto fail; + } + } + } + INC_OP; + JUMP_OUT; + +#ifdef USE_WORD_BEGIN_END + CASE_OP(WORD_BEGIN) + { + ModeType mode; + + mode = p->word_boundary.mode; + if (DATA_ENSURE_CHECK1 && IS_MBC_WORD_ASCII_MODE(encode, s, end, mode)) { + UChar* sprev; + if (ON_STR_BEGIN(s)) { + INC_OP; + JUMP_OUT; + } + sprev = (UChar* )onigenc_get_prev_char_head(encode, str, s); + if (! IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) { + INC_OP; + JUMP_OUT; + } + } + } + goto fail; + + CASE_OP(WORD_END) + { + ModeType mode; + + mode = p->word_boundary.mode; + if (! ON_STR_BEGIN(s)) { + UChar* sprev = (UChar* )onigenc_get_prev_char_head(encode, str, s); + if (IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) { + if (ON_STR_END(s) || ! IS_MBC_WORD_ASCII_MODE(encode, s, end, mode)) { + INC_OP; + JUMP_OUT; + } + } + } + } + goto fail; +#endif + + CASE_OP(TEXT_SEGMENT_BOUNDARY) + { + int is_break; + UChar* sprev = (UChar* )onigenc_get_prev_char_head(encode, str, s); + + switch (p->text_segment_boundary.type) { + case EXTENDED_GRAPHEME_CLUSTER_BOUNDARY: + is_break = onigenc_egcb_is_break_position(encode, s, sprev, str, end); + break; +#ifdef USE_UNICODE_WORD_BREAK + case WORD_BOUNDARY: + is_break = onigenc_wb_is_break_position(encode, s, sprev, str, end); + break; +#endif + default: + MATCH_AT_ERROR_RETURN(ONIGERR_UNDEFINED_BYTECODE); + break; + } + + if (p->text_segment_boundary.not != 0) + is_break = ! is_break; + + if (is_break != 0) { + INC_OP; + JUMP_OUT; + } + else { + goto fail; + } + } + + CASE_OP(BEGIN_BUF) + if (! ON_STR_BEGIN(s)) goto fail; + if (OPTON_NOTBOL(options)) goto fail; + if (OPTON_NOT_BEGIN_STRING(options)) goto fail; + + INC_OP; + JUMP_OUT; + + CASE_OP(END_BUF) + if (! ON_STR_END(s)) goto fail; + if (OPTON_NOTEOL(options)) goto fail; + if (OPTON_NOT_END_STRING(options)) goto fail; + + INC_OP; + JUMP_OUT; + + CASE_OP(BEGIN_LINE) + if (ON_STR_BEGIN(s)) { + if (OPTON_NOTBOL(options)) goto fail; + INC_OP; + JUMP_OUT; + } + else if (! ON_STR_END(s)) { + UChar* sprev = (UChar* )onigenc_get_prev_char_head(encode, str, s); + if (ONIGENC_IS_MBC_NEWLINE(encode, sprev, end)) { + INC_OP; + JUMP_OUT; + } + } + goto fail; + + CASE_OP(END_LINE) + if (ON_STR_END(s)) { +#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE + UChar* sprev = (UChar* )onigenc_get_prev_char_head(encode, str, s); + if (IS_EMPTY_STR || !ONIGENC_IS_MBC_NEWLINE(encode, sprev, end)) { +#endif + if (OPTON_NOTEOL(options)) goto fail; + INC_OP; + JUMP_OUT; +#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE + } +#endif + } + else if (ONIGENC_IS_MBC_NEWLINE(encode, s, end)) { + INC_OP; + JUMP_OUT; + } +#ifdef USE_CRNL_AS_LINE_TERMINATOR + else if (ONIGENC_IS_MBC_CRNL(encode, s, end)) { + INC_OP; + JUMP_OUT; + } +#endif + goto fail; + + CASE_OP(SEMI_END_BUF) + if (ON_STR_END(s)) { +#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE + UChar* sprev = (UChar* )onigenc_get_prev_char_head(encode, str, s); + if (IS_EMPTY_STR || !ONIGENC_IS_MBC_NEWLINE(encode, sprev, end)) { +#endif + if (OPTON_NOTEOL(options)) goto fail; + if (OPTON_NOT_END_STRING(options)) goto fail; + INC_OP; + JUMP_OUT; +#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE + } +#endif + } + else if (ONIGENC_IS_MBC_NEWLINE(encode, s, end) && + ON_STR_END(s + enclen(encode, s))) { + if (OPTON_NOTEOL(options)) goto fail; + if (OPTON_NOT_END_STRING(options)) goto fail; + INC_OP; + JUMP_OUT; + } +#ifdef USE_CRNL_AS_LINE_TERMINATOR + else if (ONIGENC_IS_MBC_CRNL(encode, s, end)) { + UChar* ss = s + enclen(encode, s); + ss += enclen(encode, ss); + if (ON_STR_END(ss)) { + if (OPTON_NOTEOL(options)) goto fail; + if (OPTON_NOT_END_STRING(options)) goto fail; + INC_OP; + JUMP_OUT; + } + } +#endif + goto fail; + + CASE_OP(CHECK_POSITION) + switch (p->check_position.type) { + case CHECK_POSITION_SEARCH_START: + if (s != msa->start) goto fail; + if (OPTON_NOT_BEGIN_POSITION(options)) goto fail; + break; + case CHECK_POSITION_CURRENT_RIGHT_RANGE: + if (s != right_range) goto fail; + break; + default: + break; + } + INC_OP; + JUMP_OUT; + + CASE_OP(MEM_START_PUSH) + mem = p->memory_start.num; + STACK_PUSH_MEM_START(mem, s); + INC_OP; + JUMP_OUT; + + CASE_OP(MEM_START) + mem = p->memory_start.num; + mem_start_stk[mem].s = s; + INC_OP; + JUMP_OUT; + + CASE_OP(MEM_END_PUSH) + mem = p->memory_end.num; + STACK_PUSH_MEM_END(mem, s); + INC_OP; + JUMP_OUT; + + CASE_OP(MEM_END) + mem = p->memory_end.num; + mem_end_stk[mem].s = s; + INC_OP; + JUMP_OUT; + +#ifdef USE_CALL + CASE_OP(MEM_END_PUSH_REC) + { + StackIndex si; + + mem = p->memory_end.num; + STACK_GET_MEM_START(mem, stkp); /* should be before push mem-end. */ + si = GET_STACK_INDEX(stkp); + STACK_PUSH_MEM_END(mem, s); + mem_start_stk[mem].i = si; + INC_OP; + JUMP_OUT; + } + + CASE_OP(MEM_END_REC) + mem = p->memory_end.num; + mem_end_stk[mem].s = s; + STACK_GET_MEM_START(mem, stkp); + + if (MEM_STATUS_AT(reg->push_mem_start, mem)) + mem_start_stk[mem].i = GET_STACK_INDEX(stkp); + else + mem_start_stk[mem].s = stkp->u.mem.pstr; + + STACK_PUSH_MEM_END_MARK(mem); + INC_OP; + JUMP_OUT; +#endif + + CASE_OP(BACKREF1) + mem = 1; + goto backref; + + CASE_OP(BACKREF2) + mem = 2; + goto backref; + + CASE_OP(BACKREF_N) + mem = p->backref_n.n1; + backref: + { + UChar *pstart, *pend; + + if (mem_end_stk[mem].i == INVALID_STACK_INDEX) goto fail; + if (mem_start_stk[mem].i == INVALID_STACK_INDEX) goto fail; + + pstart = STACK_MEM_START(reg, mem); + pend = STACK_MEM_END(reg, mem); + n = (int )(pend - pstart); + if (n != 0) { + DATA_ENSURE(n); + STRING_CMP(s, pstart, n); + } + } + INC_OP; + JUMP_OUT; + + CASE_OP(BACKREF_N_IC) + mem = p->backref_n.n1; + { + UChar *pstart, *pend; + + if (mem_end_stk[mem].i == INVALID_STACK_INDEX) goto fail; + if (mem_start_stk[mem].i == INVALID_STACK_INDEX) goto fail; + + pstart = STACK_MEM_START(reg, mem); + pend = STACK_MEM_END(reg, mem); + n = (int )(pend - pstart); + if (n != 0) { + DATA_ENSURE(n); + STRING_CMP_IC(case_fold_flag, pstart, &s, n); + } + } + INC_OP; + JUMP_OUT; + + CASE_OP(BACKREF_MULTI) + { + int is_fail; + UChar *pstart, *pend, *swork; + + tlen = p->backref_general.num; + for (i = 0; i < tlen; i++) { + mem = tlen == 1 ? p->backref_general.n1 : p->backref_general.ns[i]; + + if (mem_end_stk[mem].i == INVALID_STACK_INDEX) continue; + if (mem_start_stk[mem].i == INVALID_STACK_INDEX) continue; + + pstart = STACK_MEM_START(reg, mem); + pend = STACK_MEM_END(reg, mem); + n = (int )(pend - pstart); + if (n != 0) { + if (! DATA_ENSURE_CHECK(n)) continue; + swork = s; + STRING_CMP_VALUE(swork, pstart, n, is_fail); + if (is_fail) continue; + s = swork; + } + break; /* success */ + } + if (i == tlen) goto fail; + } + INC_OP; + JUMP_OUT; + + CASE_OP(BACKREF_MULTI_IC) + { + int is_fail; + UChar *pstart, *pend, *swork; + + tlen = p->backref_general.num; + for (i = 0; i < tlen; i++) { + mem = tlen == 1 ? p->backref_general.n1 : p->backref_general.ns[i]; + + if (mem_end_stk[mem].i == INVALID_STACK_INDEX) continue; + if (mem_start_stk[mem].i == INVALID_STACK_INDEX) continue; + + pstart = STACK_MEM_START(reg, mem); + pend = STACK_MEM_END(reg, mem); + n = (int )(pend - pstart); + if (n != 0) { + if (! DATA_ENSURE_CHECK(n)) continue; + swork = s; + STRING_CMP_VALUE_IC(case_fold_flag, pstart, &swork, n, is_fail); + if (is_fail) continue; + s = swork; + } + break; /* success */ + } + if (i == tlen) goto fail; + } + INC_OP; + JUMP_OUT; + +#ifdef USE_BACKREF_WITH_LEVEL + CASE_OP(BACKREF_WITH_LEVEL_IC) + n = 1; /* ignore case */ + goto backref_with_level; + CASE_OP(BACKREF_WITH_LEVEL) + { + int level; + MemNumType* mems; + + n = 0; + backref_with_level: + level = p->backref_general.nest_level; + tlen = p->backref_general.num; + mems = tlen == 1 ? &(p->backref_general.n1) : p->backref_general.ns; + + if (! backref_match_at_nested_level(reg, stk, stk_base, n, + case_fold_flag, level, (int )tlen, mems, &s, end)) { + goto fail; + } + } + INC_OP; + JUMP_OUT; +#endif + + CASE_OP(BACKREF_CHECK) + { + MemNumType* mems; + + tlen = p->backref_general.num; + mems = tlen == 1 ? &(p->backref_general.n1) : p->backref_general.ns; + + for (i = 0; i < tlen; i++) { + mem = mems[i]; + if (mem_end_stk[mem].i == INVALID_STACK_INDEX) continue; + if (mem_start_stk[mem].i == INVALID_STACK_INDEX) continue; + break; /* success */ + } + if (i == tlen) goto fail; + } + INC_OP; + JUMP_OUT; + +#ifdef USE_BACKREF_WITH_LEVEL + CASE_OP(BACKREF_CHECK_WITH_LEVEL) + { + LengthType level; + MemNumType* mems; + + level = p->backref_general.nest_level; + tlen = p->backref_general.num; + mems = tlen == 1 ? &(p->backref_general.n1) : p->backref_general.ns; + + if (backref_check_at_nested_level(reg, stk, stk_base, + (int )level, (int )tlen, mems) == 0) + goto fail; + } + INC_OP; + JUMP_OUT; +#endif + + CASE_OP(EMPTY_CHECK_START) + mem = p->empty_check_start.mem; /* mem: null check id */ + STACK_PUSH_EMPTY_CHECK_START(mem, s); + INC_OP; + JUMP_OUT; + + CASE_OP(EMPTY_CHECK_END) + { + int is_empty; + + mem = p->empty_check_end.mem; /* mem: null check id */ + STACK_EMPTY_CHECK(is_empty, mem, s); + INC_OP; + if (is_empty) { +#ifdef ONIG_DEBUG_MATCH + fprintf(DBGFP, "EMPTY_CHECK_END: skip id:%d, s:%p\n", (int )mem, s); +#endif + empty_check_found: + /* empty loop founded, skip next instruction */ +#if defined(ONIG_DEBUG) && !defined(USE_DIRECT_THREADED_CODE) + switch (p->opcode) { + case OP_JUMP: + case OP_PUSH: + case OP_REPEAT_INC: + case OP_REPEAT_INC_NG: + INC_OP; + break; + default: + MATCH_AT_ERROR_RETURN(ONIGERR_UNEXPECTED_BYTECODE); + break; + } +#else + INC_OP; +#endif + } + } + JUMP_OUT; + +#ifdef USE_RIGID_CHECK_CAPTURES_IN_EMPTY_REPEAT + CASE_OP(EMPTY_CHECK_END_MEMST) + { + int is_empty; + + mem = p->empty_check_end.mem; /* mem: null check id */ + STACK_EMPTY_CHECK_MEM(is_empty, mem, p->empty_check_end.empty_status_mem, s, reg); + INC_OP; + if (is_empty) { +#ifdef ONIG_DEBUG_MATCH + fprintf(DBGFP, "EMPTY_CHECK_END_MEM: skip id:%d, s:%p\n", (int)mem, s); +#endif + if (is_empty == -1) goto fail; + goto empty_check_found; + } + } + JUMP_OUT; +#endif + +#ifdef USE_CALL + CASE_OP(EMPTY_CHECK_END_MEMST_PUSH) + { + int is_empty; + + mem = p->empty_check_end.mem; /* mem: null check id */ +#ifdef USE_RIGID_CHECK_CAPTURES_IN_EMPTY_REPEAT + STACK_EMPTY_CHECK_MEM_REC(is_empty, mem, p->empty_check_end.empty_status_mem, s, reg); +#else + STACK_EMPTY_CHECK_REC(is_empty, mem, s); +#endif + INC_OP; + if (is_empty) { +#ifdef ONIG_DEBUG_MATCH + fprintf(DBGFP, "EMPTY_CHECK_END_MEM_PUSH: skip id:%d, s:%p\n", + (int )mem, s); +#endif + if (is_empty == -1) goto fail; + goto empty_check_found; + } + else { + STACK_PUSH_EMPTY_CHECK_END(mem); + } + } + JUMP_OUT; +#endif + + CASE_OP(JUMP) + addr = p->jump.addr; + p += addr; + CHECK_INTERRUPT_JUMP_OUT; + + CASE_OP(PUSH) + addr = p->push.addr; + STACK_PUSH_ALT(p + addr, s); + INC_OP; + JUMP_OUT; + + CASE_OP(PUSH_SUPER) + addr = p->push.addr; + STACK_PUSH_SUPER_ALT(p + addr, s); + INC_OP; + JUMP_OUT; + + CASE_OP(POP) + STACK_POP_ONE; + INC_OP; + JUMP_OUT; + + CASE_OP(POP_TO_MARK) + STACK_POP_TO_MARK(p->pop_to_mark.id); + INC_OP; + JUMP_OUT; + + #ifdef USE_OP_PUSH_OR_JUMP_EXACT + CASE_OP(PUSH_OR_JUMP_EXACT1) + { + UChar c; + + addr = p->push_or_jump_exact1.addr; + c = p->push_or_jump_exact1.c; + if (DATA_ENSURE_CHECK1 && c == *s) { + STACK_PUSH_ALT(p + addr, s); + INC_OP; + JUMP_OUT; + } + } + p += addr; + JUMP_OUT; +#endif + + CASE_OP(PUSH_IF_PEEK_NEXT) + { + UChar c; + + addr = p->push_if_peek_next.addr; + c = p->push_if_peek_next.c; + if (DATA_ENSURE_CHECK1 && c == *s) { + STACK_PUSH_ALT(p + addr, s); + } + } + INC_OP; + JUMP_OUT; + + CASE_OP(REPEAT) + mem = p->repeat.id; /* mem: OP_REPEAT ID */ + addr = p->repeat.addr; + + STACK_PUSH_REPEAT_INC(mem, 0); + if (reg->repeat_range[mem].lower == 0) { + STACK_PUSH_ALT(p + addr, s); + } + INC_OP; + JUMP_OUT; + + CASE_OP(REPEAT_NG) + mem = p->repeat.id; /* mem: OP_REPEAT ID */ + addr = p->repeat.addr; + + STACK_PUSH_REPEAT_INC(mem, 0); + if (reg->repeat_range[mem].lower == 0) { + STACK_PUSH_ALT(p + 1, s); + p += addr; + } + else + INC_OP; + JUMP_OUT; + + CASE_OP(REPEAT_INC) + mem = p->repeat_inc.id; /* mem: OP_REPEAT ID */ + STACK_GET_REPEAT_COUNT(mem, n); + n++; + if (n >= reg->repeat_range[mem].upper) { + /* end of repeat. Nothing to do. */ + INC_OP; + } + else if (n >= reg->repeat_range[mem].lower) { + INC_OP; + STACK_PUSH_ALT(p, s); + p = reg->repeat_range[mem].u.pcode; + } + else { + p = reg->repeat_range[mem].u.pcode; + } + STACK_PUSH_REPEAT_INC(mem, n); + CHECK_INTERRUPT_JUMP_OUT; + + CASE_OP(REPEAT_INC_NG) + mem = p->repeat_inc.id; /* mem: OP_REPEAT ID */ + STACK_GET_REPEAT_COUNT(mem, n); + n++; + STACK_PUSH_REPEAT_INC(mem, n); + if (n == reg->repeat_range[mem].upper) { + INC_OP; + } + else { + if (n >= reg->repeat_range[mem].lower) { + STACK_PUSH_ALT(reg->repeat_range[mem].u.pcode, s); + INC_OP; + } + else { + p = reg->repeat_range[mem].u.pcode; + } + } + CHECK_INTERRUPT_JUMP_OUT; + +#ifdef USE_CALL + CASE_OP(CALL) + if (subexp_call_nest_counter == SubexpCallMaxNestLevel) + goto fail; + subexp_call_nest_counter++; + + if (SubexpCallLimitInSearch != 0) { + msa->subexp_call_in_search_counter++; +#ifdef ONIG_DEBUG_MATCH_COUNTER + if (p->call.called_mem < MAX_SUBEXP_CALL_COUNTERS) + subexp_call_counters[p->call.called_mem]++; + if (msa->subexp_call_in_search_counter % 1000 == 0) + MATCH_COUNTER_OUT("CALL"); +#endif + if (msa->subexp_call_in_search_counter > + SubexpCallLimitInSearch) { + MATCH_AT_ERROR_RETURN(ONIGERR_SUBEXP_CALL_LIMIT_IN_SEARCH_OVER); + } + } + +#ifdef ONIG_DEBUG_CALL + fprintf(DBGFP, "CALL: id:%d, at:%ld, level:%lu\n", p->call.called_mem, s - str, subexp_call_nest_counter); +#endif + addr = p->call.addr; + INC_OP; STACK_PUSH_CALL_FRAME(p); + p = reg->ops + addr; + + JUMP_OUT; + + CASE_OP(RETURN) + STACK_RETURN(p); + STACK_PUSH_RETURN; + subexp_call_nest_counter--; + JUMP_OUT; +#endif + + CASE_OP(MOVE) + if (p->move.n < 0) { + s = (UChar* )ONIGENC_STEP_BACK(encode, str, s, -p->move.n); + if (IS_NULL(s)) goto fail; + } + else { + int len; + + for (tlen = p->move.n; tlen > 0; tlen--) { + len = enclen(encode, s); + s += len; + if (s > end) goto fail; + if (s == end) { + if (tlen != 1) goto fail; + else break; + } + } + } + INC_OP; + JUMP_OUT; + + CASE_OP(STEP_BACK_START) + tlen = p->step_back_start.initial; + if (tlen != 0) { + s = (UChar* )ONIGENC_STEP_BACK(encode, str, s, (int )tlen); + if (IS_NULL(s)) goto fail; + } + if (p->step_back_start.remaining != 0) { + STACK_PUSH_ALT_WITH_ZID(p + 1, s, p->step_back_start.remaining); + p += p->step_back_start.addr; + } + else + INC_OP; + JUMP_OUT; + + CASE_OP(STEP_BACK_NEXT) + tlen = (LengthType )stk->zid; /* remaining count */ + if (tlen != INFINITE_LEN) tlen--; + s = (UChar* )ONIGENC_STEP_BACK(encode, str, s, 1); + if (IS_NULL(s)) goto fail; + if (tlen != 0) { + STACK_PUSH_ALT_WITH_ZID(p, s, (int )tlen); + } + INC_OP; + JUMP_OUT; + + CASE_OP(CUT_TO_MARK) + mem = p->cut_to_mark.id; /* mem: mark id */ + STACK_TO_VOID_TO_MARK(stkp, mem); + if (p->cut_to_mark.restore_pos != 0) { + s = stkp->u.val.v; + } + INC_OP; + JUMP_OUT; + + CASE_OP(MARK) + mem = p->mark.id; /* mem: mark id */ + if (p->mark.save_pos != 0) + STACK_PUSH_MARK_WITH_POS(mem, s); + else + STACK_PUSH_MARK(mem); + + INC_OP; + JUMP_OUT; + + CASE_OP(SAVE_VAL) + { + SaveType type; + + type = p->save_val.type; + mem = p->save_val.id; /* mem: save id */ + switch ((enum SaveType )type) { + case SAVE_KEEP: + STACK_PUSH_SAVE_VAL(mem, type, s); + break; + + case SAVE_S: + STACK_PUSH_SAVE_VAL_WITH_SPREV(mem, type, s); + break; + + case SAVE_RIGHT_RANGE: + STACK_PUSH_SAVE_VAL(mem, SAVE_RIGHT_RANGE, right_range); + break; + } + } + INC_OP; + JUMP_OUT; + + CASE_OP(UPDATE_VAR) + { + UpdateVarType type; + enum SaveType save_type; + + type = p->update_var.type; + + switch ((enum UpdateVarType )type) { + case UPDATE_VAR_KEEP_FROM_STACK_LAST: + STACK_GET_SAVE_VAL_TYPE_LAST(SAVE_KEEP, keep); + break; + case UPDATE_VAR_S_FROM_STACK: + mem = p->update_var.id; /* mem: save id */ + STACK_GET_SAVE_VAL_TYPE_LAST_ID_WITH_SPREV(SAVE_S, mem, s); + break; + case UPDATE_VAR_RIGHT_RANGE_FROM_S_STACK: + save_type = SAVE_S; + goto get_save_val_type_last_id; + break; + case UPDATE_VAR_RIGHT_RANGE_FROM_STACK: + save_type = SAVE_RIGHT_RANGE; + get_save_val_type_last_id: + mem = p->update_var.id; /* mem: save id */ + STACK_GET_SAVE_VAL_TYPE_LAST_ID(save_type, mem, right_range, p->update_var.clear); + break; + case UPDATE_VAR_RIGHT_RANGE_TO_S: + right_range = s; + break; + case UPDATE_VAR_RIGHT_RANGE_INIT: + INIT_RIGHT_RANGE; + break; + } + } + INC_OP; + JUMP_OUT; + +#ifdef USE_CALLOUT + CASE_OP(CALLOUT_CONTENTS) + of = ONIG_CALLOUT_OF_CONTENTS; + mem = p->callout_contents.num; + goto callout_common_entry; + BREAK_OUT; + + CASE_OP(CALLOUT_NAME) + { + int call_result; + int name_id; + int in; + CalloutListEntry* e; + OnigCalloutFunc func; + OnigCalloutArgs args; + + of = ONIG_CALLOUT_OF_NAME; + mem = p->callout_name.num; + + callout_common_entry: + e = onig_reg_callout_list_at(reg, mem); + in = e->in; + if (of == ONIG_CALLOUT_OF_NAME) { + name_id = p->callout_name.id; + func = onig_get_callout_start_func(reg, mem); + } + else { + name_id = ONIG_NON_NAME_ID; + func = msa->mp->progress_callout_of_contents; + } + + if (IS_NOT_NULL(func) && (in & ONIG_CALLOUT_IN_PROGRESS) != 0) { + CALLOUT_BODY(func, ONIG_CALLOUT_IN_PROGRESS, name_id, + (int )mem, msa->mp->callout_user_data, args, call_result); + switch (call_result) { + case ONIG_CALLOUT_FAIL: + goto fail; + break; + case ONIG_CALLOUT_SUCCESS: + goto retraction_callout2; + break; + default: /* error code */ + if (call_result > 0) { + call_result = ONIGERR_INVALID_ARGUMENT; + } + best_len = call_result; + goto match_at_end; + break; + } + } + else { + retraction_callout2: + if ((in & ONIG_CALLOUT_IN_RETRACTION) != 0) { + if (of == ONIG_CALLOUT_OF_NAME) { + if (IS_NOT_NULL(func)) { + STACK_PUSH_CALLOUT_NAME(name_id, mem, func); + } + } + else { + func = msa->mp->retraction_callout_of_contents; + if (IS_NOT_NULL(func)) { + STACK_PUSH_CALLOUT_CONTENTS(mem, func); + } + } + } + } + } + INC_OP; + JUMP_OUT; +#endif + + CASE_OP(FINISH) +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE + if (OPTON_FIND_LONGEST(options)) { + best_len = ONIG_MISMATCH; + } +#endif + goto match_at_end; + +#ifdef ONIG_DEBUG_STATISTICS + fail: + SOP_OUT; + goto fail2; +#endif + CASE_OP(FAIL) +#ifdef ONIG_DEBUG_STATISTICS + fail2: +#else + fail: +#endif + STACK_POP; + p = stk->u.state.pcode; + s = stk->u.state.pstr; + CHECK_RETRY_LIMIT_IN_MATCH; + JUMP_OUT; + + DEFAULT_OP + MATCH_AT_ERROR_RETURN(ONIGERR_UNDEFINED_BYTECODE); + + } BYTECODE_INTERPRETER_END; + + match_at_end: + if (msa->retry_limit_in_search != 0) { +#ifdef ONIG_DEBUG + if (retry_in_match_counter > + ULONG_MAX - msa->retry_limit_in_search_counter) { + fprintf(DBGFP, "retry limit counter overflow: %8lu/%8lu\n", + retry_in_match_counter, msa->retry_limit_in_search_counter); + } +#endif + msa->retry_limit_in_search_counter += retry_in_match_counter; + } + +#ifdef ONIG_DEBUG_MATCH_COUNTER + MATCH_COUNTER_OUT("END"); +#endif + + STACK_SAVE(msa, is_alloca, alloc_base); + return best_len; +} + + +#ifdef USE_REGSET + +typedef struct { + regex_t* reg; + OnigRegion* region; +} RR; + +struct OnigRegSetStruct { + RR* rs; + int n; + int alloc; + OnigEncoding enc; + int anchor; /* BEGIN_BUF, BEGIN_POS, (SEMI_)END_BUF */ + OnigLen anc_dmin; /* (SEMI_)END_BUF anchor distance */ + OnigLen anc_dmax; /* (SEMI_)END_BUF anchor distance */ + int all_low_high; + int anychar_inf; +}; + +enum SearchRangeStatus { + SRS_DEAD = 0, + SRS_LOW_HIGH = 1, + SRS_ALL_RANGE = 2 +}; + +typedef struct { + int state; /* value of enum SearchRangeStatus */ + UChar* low; + UChar* high; + UChar* sch_range; +} SearchRange; + +#define REGSET_MATCH_AND_RETURN_CHECK(upper_range) \ + r = match_at(reg, str, end, (upper_range), s, msas + i); \ + if (r != ONIG_MISMATCH) {\ + if (r >= 0) {\ + goto match;\ + }\ + else goto finish; /* error */ \ + } + +static inline int +regset_search_body_position_lead(OnigRegSet* set, + const UChar* str, const UChar* end, + const UChar* start, const UChar* range, /* match start range */ + const UChar* orig_range, /* data range */ + OnigOptionType option, MatchArg* msas, int* rmatch_pos) +{ + int r, n, i; + UChar *s; + UChar *low, *high; + UChar* sch_range; + regex_t* reg; + OnigEncoding enc; + SearchRange* sr; + + n = set->n; + enc = set->enc; + s = (UChar* )start; + + sr = (SearchRange* )xmalloc(sizeof(*sr) * n); + CHECK_NULL_RETURN_MEMERR(sr); + + for (i = 0; i < n; i++) { + reg = set->rs[i].reg; + + sr[i].state = SRS_DEAD; + if (reg->optimize != OPTIMIZE_NONE) { + if (reg->dist_max != INFINITE_LEN) { + if (DIST_CAST(end - range) > reg->dist_max) + sch_range = (UChar* )range + reg->dist_max; + else + sch_range = (UChar* )end; + + if (forward_search(reg, str, end, s, sch_range, &low, &high)) { + sr[i].state = SRS_LOW_HIGH; + sr[i].low = low; + sr[i].high = high; + sr[i].sch_range = sch_range; + } + } + else { + sch_range = (UChar* )end; + if (forward_search(reg, str, end, s, sch_range, &low, &high)) { + goto total_active; + } + } + } + else { + total_active: + sr[i].state = SRS_ALL_RANGE; + sr[i].low = s; + sr[i].high = (UChar* )range; + } + } + +#define ACTIVATE_ALL_LOW_HIGH_SEARCH_THRESHOLD_LEN 500 + + if (set->all_low_high != 0 + && range - start > ACTIVATE_ALL_LOW_HIGH_SEARCH_THRESHOLD_LEN) { + do { + int try_count = 0; + for (i = 0; i < n; i++) { + if (sr[i].state == SRS_DEAD) continue; + + if (s < sr[i].low) continue; + if (s >= sr[i].high) { + if (forward_search(set->rs[i].reg, str, end, s, sr[i].sch_range, + &low, &high) != 0) { + sr[i].low = low; + sr[i].high = high; + if (s < low) continue; + } + else { + sr[i].state = SRS_DEAD; + continue; + } + } + + reg = set->rs[i].reg; + REGSET_MATCH_AND_RETURN_CHECK(orig_range); + try_count++; + } /* for (i) */ + + if (s >= range) break; + + if (try_count == 0) { + low = (UChar* )range; + for (i = 0; i < n; i++) { + if (sr[i].state == SRS_LOW_HIGH && low > sr[i].low) { + low = sr[i].low; + } + } + if (low == range) break; + + s = low; + } + else { + s += enclen(enc, s); + } + } while (1); + } + else { + int prev_is_newline = 1; + do { + for (i = 0; i < n; i++) { + if (sr[i].state == SRS_DEAD) continue; + if (sr[i].state == SRS_LOW_HIGH) { + if (s < sr[i].low) continue; + if (s >= sr[i].high) { + if (forward_search(set->rs[i].reg, str, end, s, sr[i].sch_range, + &low, &high) != 0) { + sr[i].low = low; + sr[i].high = high; + if (s < low) continue; + } + else { + sr[i].state = SRS_DEAD; + continue; + } + } + } + + reg = set->rs[i].reg; + if ((reg->anchor & ANCR_ANYCHAR_INF) == 0 || prev_is_newline != 0) { + REGSET_MATCH_AND_RETURN_CHECK(orig_range); + } + } + + if (s >= range) break; + + if (set->anychar_inf != 0) + prev_is_newline = ONIGENC_IS_MBC_NEWLINE(set->enc, s, end); + + s += enclen(enc, s); + } while (1); + } + + xfree(sr); + return ONIG_MISMATCH; + + finish: + xfree(sr); + return r; + + match: + xfree(sr); + *rmatch_pos = (int )(s - str); + return i; +} + +static inline int +regset_search_body_regex_lead(OnigRegSet* set, + const UChar* str, const UChar* end, + const UChar* start, const UChar* orig_range, OnigRegSetLead lead, + OnigOptionType option, OnigMatchParam* mps[], int* rmatch_pos) +{ + int r; + int i; + int n; + int match_index; + const UChar* ep; + regex_t* reg; + OnigRegion* region; + + n = set->n; + + match_index = ONIG_MISMATCH; + ep = orig_range; + for (i = 0; i < n; i++) { + reg = set->rs[i].reg; + region = set->rs[i].region; + r = search_in_range(reg, str, end, start, ep, orig_range, region, option, mps[i]); + if (r > 0) { + if (str + r < ep) { + match_index = i; + *rmatch_pos = r; + if (lead == ONIG_REGSET_PRIORITY_TO_REGEX_ORDER) + break; + + ep = str + r; + } + } + else if (r == 0) { + match_index = i; + *rmatch_pos = r; + break; + } + } + + return match_index; +} + +extern int +onig_regset_search_with_param(OnigRegSet* set, + const UChar* str, const UChar* end, + const UChar* start, const UChar* range, + OnigRegSetLead lead, OnigOptionType option, OnigMatchParam* mps[], + int* rmatch_pos) +{ + int r; + int i; + UChar *s; + regex_t* reg; + OnigEncoding enc; + OnigRegion* region; + MatchArg* msas; + const UChar *orig_start = start; + const UChar *orig_range = range; + + if (set->n == 0) + return ONIG_MISMATCH; + + if (OPTON_POSIX_REGION(option) || OPTON_CALLBACK_EACH_MATCH(option)) + return ONIGERR_INVALID_ARGUMENT; + + r = 0; + enc = set->enc; + msas = (MatchArg* )NULL; + + for (i = 0; i < set->n; i++) { + reg = set->rs[i].reg; + region = set->rs[i].region; + ADJUST_MATCH_PARAM(reg, mps[i]); + if (IS_NOT_NULL(region)) { + r = onig_region_resize_clear(region, reg->num_mem + 1); + if (r != 0) goto finish_no_msa; + } + } + + if (start > end || start < str) goto mismatch_no_msa; + if (str < end) { + /* forward search only */ + if (range < start) + return ONIGERR_INVALID_ARGUMENT; + } + + if (OPTON_CHECK_VALIDITY_OF_STRING(option)) { + if (! ONIGENC_IS_VALID_MBC_STRING(enc, str, end)) { + r = ONIGERR_INVALID_WIDE_CHAR_VALUE; + goto finish_no_msa; + } + } + + if (set->anchor != OPTIMIZE_NONE && str < end) { + UChar *min_semi_end, *max_semi_end; + + if ((set->anchor & ANCR_BEGIN_POSITION) != 0) { + /* search start-position only */ + begin_position: + range = start + 1; + } + else if ((set->anchor & ANCR_BEGIN_BUF) != 0) { + /* search str-position only */ + if (start != str) goto mismatch_no_msa; + range = str + 1; + } + else if ((set->anchor & ANCR_END_BUF) != 0) { + min_semi_end = max_semi_end = (UChar* )end; + + end_buf: + if ((OnigLen )(max_semi_end - str) < set->anc_dmin) + goto mismatch_no_msa; + + if ((OnigLen )(min_semi_end - start) > set->anc_dmax) { + start = min_semi_end - set->anc_dmax; + if (start < end) + start = onigenc_get_right_adjust_char_head(enc, str, start); + } + if ((OnigLen )(max_semi_end - (range - 1)) < set->anc_dmin) { + range = max_semi_end - set->anc_dmin + 1; + } + if (start > range) goto mismatch_no_msa; + } + else if ((set->anchor & ANCR_SEMI_END_BUF) != 0) { + UChar* pre_end = ONIGENC_STEP_BACK(enc, str, end, 1); + + max_semi_end = (UChar* )end; + if (ONIGENC_IS_MBC_NEWLINE(enc, pre_end, end)) { + min_semi_end = pre_end; + +#ifdef USE_CRNL_AS_LINE_TERMINATOR + pre_end = ONIGENC_STEP_BACK(enc, str, pre_end, 1); + if (IS_NOT_NULL(pre_end) && + ONIGENC_IS_MBC_CRNL(enc, pre_end, end)) { + min_semi_end = pre_end; + } +#endif + if (min_semi_end > str && start <= min_semi_end) { + goto end_buf; + } + } + else { + min_semi_end = (UChar* )end; + goto end_buf; + } + } + else if ((set->anchor & ANCR_ANYCHAR_INF_ML) != 0) { + goto begin_position; + } + } + else if (str == end) { /* empty string */ + start = end = str; + s = (UChar* )start; + + msas = (MatchArg* )xmalloc(sizeof(*msas) * set->n); + CHECK_NULL_RETURN_MEMERR(msas); + for (i = 0; i < set->n; i++) { + reg = set->rs[i].reg; + MATCH_ARG_INIT(msas[i], reg, option, set->rs[i].region, start, mps[i]); + } + for (i = 0; i < set->n; i++) { + reg = set->rs[i].reg; + if (reg->threshold_len == 0) { + /* REGSET_MATCH_AND_RETURN_CHECK(end); */ + /* Can't use REGSET_MATCH_AND_RETURN_CHECK() + because r must be set regex index (i) + */ + r = match_at(reg, str, end, end, s, msas + i); + if (r != ONIG_MISMATCH) { + if (r >= 0) { + r = i; + goto match; + } + else goto finish; /* error */ + } + } + } + + goto mismatch; + } + + if (lead == ONIG_REGSET_POSITION_LEAD) { + msas = (MatchArg* )xmalloc(sizeof(*msas) * set->n); + CHECK_NULL_RETURN_MEMERR(msas); + + for (i = 0; i < set->n; i++) { + MATCH_ARG_INIT(msas[i], set->rs[i].reg, option, set->rs[i].region, + orig_start, mps[i]); + } + + r = regset_search_body_position_lead(set, str, end, start, range, + orig_range, option, msas, rmatch_pos); + } + else { + r = regset_search_body_regex_lead(set, str, end, start, orig_range, + lead, option, mps, rmatch_pos); + } + if (r < 0) goto finish; + else goto match2; + + mismatch: + r = ONIG_MISMATCH; + finish: + for (i = 0; i < set->n; i++) { + if (IS_NOT_NULL(msas)) + MATCH_ARG_FREE(msas[i]); + if (OPTON_FIND_NOT_EMPTY(set->rs[i].reg->options) && + IS_NOT_NULL(set->rs[i].region)) { + onig_region_clear(set->rs[i].region); + } + } + if (IS_NOT_NULL(msas)) xfree(msas); + return r; + + mismatch_no_msa: + r = ONIG_MISMATCH; + finish_no_msa: + return r; + + match: + *rmatch_pos = (int )(s - str); + match2: + for (i = 0; i < set->n; i++) { + if (IS_NOT_NULL(msas)) + MATCH_ARG_FREE(msas[i]); + if (OPTON_FIND_NOT_EMPTY(set->rs[i].reg->options) && + IS_NOT_NULL(set->rs[i].region)) { + onig_region_clear(set->rs[i].region); + } + } + if (IS_NOT_NULL(msas)) xfree(msas); + return r; /* regex index */ +} + +extern int +onig_regset_search(OnigRegSet* set, const UChar* str, const UChar* end, + const UChar* start, const UChar* range, + OnigRegSetLead lead, OnigOptionType option, int* rmatch_pos) +{ + int r; + int i; + OnigMatchParam* mp; + OnigMatchParam** mps; + + mps = (OnigMatchParam** )xmalloc((sizeof(OnigMatchParam*) + sizeof(OnigMatchParam)) * set->n); + CHECK_NULL_RETURN_MEMERR(mps); + + mp = (OnigMatchParam* )(mps + set->n); + + for (i = 0; i < set->n; i++) { + onig_initialize_match_param(mp + i); + mps[i] = mp + i; + } + + r = onig_regset_search_with_param(set, str, end, start, range, lead, option, mps, + rmatch_pos); + for (i = 0; i < set->n; i++) + onig_free_match_param_content(mp + i); + + xfree(mps); + + return r; +} + +#endif /* USE_REGSET */ + + +static UChar* +slow_search(OnigEncoding enc, UChar* target, UChar* target_end, + const UChar* text, const UChar* text_end, UChar* text_range) +{ + UChar *t, *p, *s, *end; + + end = (UChar* )text_end; + end -= target_end - target - 1; + if (end > text_range) + end = text_range; + + s = (UChar* )text; + + while (s < end) { + if (*s == *target) { + p = s + 1; + t = target + 1; + while (t < target_end) { + if (*t != *p++) + break; + t++; + } + if (t == target_end) + return s; + } + s += enclen(enc, s); + } + + return (UChar* )NULL; +} + +static UChar* +slow_search_backward(OnigEncoding enc, UChar* target, UChar* target_end, + const UChar* text, const UChar* adjust_text, + const UChar* text_end, const UChar* text_start) +{ + UChar *t, *p, *s; + + s = (UChar* )text_end; + s -= (target_end - target); + if (s > text_start) + s = (UChar* )text_start; + else + s = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, adjust_text, s); + + while (PTR_GE(s, text)) { + if (*s == *target) { + p = s + 1; + t = target + 1; + while (t < target_end) { + if (*t != *p++) + break; + t++; + } + if (t == target_end) + return s; + } + s = (UChar* )onigenc_get_prev_char_head(enc, adjust_text, s); + } + + return (UChar* )NULL; +} + +static UChar* +sunday_quick_search_step_forward(regex_t* reg, + const UChar* target, const UChar* target_end, + const UChar* text, const UChar* text_end, + const UChar* text_range) +{ + const UChar *s, *se, *t, *p, *end; + const UChar *tail, *next; + int skip, tlen1; + int map_offset; + OnigEncoding enc; + +#ifdef ONIG_DEBUG_SEARCH + fprintf(DBGFP, + "sunday_quick_search_step_forward: text: %p, text_end: %p, text_range: %p\n", + text, text_end, text_range); +#endif + + enc = reg->enc; + + tail = target_end - 1; + tlen1 = (int )(tail - target); + end = text_range; + if (tlen1 > text_end - end) + end = text_end - tlen1; + + map_offset = reg->map_offset; + s = text; + + while (s < end) { + p = se = s + tlen1; + t = tail; + while (*p == *t) { + if (t == target) return (UChar* )s; + p--; t--; + } + if (se + map_offset >= text_end) break; + skip = reg->map[*(se + map_offset)]; +#if 0 + t = s; + do { + s += enclen(enc, s); + } while ((s - t) < skip && s < end); +#else + next = s + skip; + if (next < end) + s = onigenc_get_right_adjust_char_head(enc, s, next); + else + break; +#endif + } + + return (UChar* )NULL; +} + +static UChar* +sunday_quick_search(regex_t* reg, const UChar* target, const UChar* target_end, + const UChar* text, const UChar* text_end, + const UChar* text_range) +{ + const UChar *s, *t, *p, *end; + const UChar *tail; + int map_offset; + ptrdiff_t target_len; + + map_offset = reg->map_offset; + tail = target_end - 1; + target_len = target_end - target; + + if (target_len > text_end - text_range) { + end = text_end; + if (target_len > text_end - text) + return (UChar* )NULL; + } + else { + end = text_range + target_len; + } + + s = text + target_len - 1; + +#ifdef USE_STRICT_POINTER_ADDRESS + if (s < end) { + while (TRUE) { + p = s; + t = tail; + while (*p == *t) { + if (t == target) return (UChar* )p; + p--; t--; + } + if (text_end - s <= map_offset) break; + if (reg->map[*(s + map_offset)] >= end - s) break; + s += reg->map[*(s + map_offset)]; + } + } +#else + while (s < end) { + p = s; + t = tail; + while (*p == *t) { + if (t == target) return (UChar* )p; + p--; t--; + } + if (text_end - s <= map_offset) break; + s += reg->map[*(s + map_offset)]; + } +#endif + + return (UChar* )NULL; +} + +static UChar* +map_search(OnigEncoding enc, UChar map[], + const UChar* text, const UChar* text_range) +{ + const UChar *s = text; + + while (s < text_range) { + if (map[*s]) return (UChar* )s; + + s += enclen(enc, s); + } + return (UChar* )NULL; +} + +static UChar* +map_search_backward(OnigEncoding enc, UChar map[], + const UChar* text, const UChar* adjust_text, + const UChar* text_start) +{ + const UChar *s = text_start; + + while (PTR_GE(s, text)) { + if (map[*s]) return (UChar* )s; + + s = onigenc_get_prev_char_head(enc, adjust_text, s); + } + return (UChar* )NULL; +} +extern int +onig_match(regex_t* reg, const UChar* str, const UChar* end, const UChar* at, + OnigRegion* region, OnigOptionType option) +{ + int r; + OnigMatchParam mp; + + onig_initialize_match_param(&mp); + r = onig_match_with_param(reg, str, end, at, region, option, &mp); + onig_free_match_param_content(&mp); + return r; +} + +extern int +onig_match_with_param(regex_t* reg, const UChar* str, const UChar* end, + const UChar* at, OnigRegion* region, OnigOptionType option, + OnigMatchParam* mp) +{ + int r; + MatchArg msa; + +#ifndef USE_POSIX_API + if (OPTON_POSIX_REGION(option)) return ONIGERR_INVALID_ARGUMENT; +#endif + + ADJUST_MATCH_PARAM(reg, mp); + MATCH_ARG_INIT(msa, reg, option, region, at, mp); + if (region +#ifdef USE_POSIX_API + && !OPTON_POSIX_REGION(option) +#endif + ) { + r = onig_region_resize_clear(region, reg->num_mem + 1); + } + else + r = 0; + + if (r == 0) { + if (OPTON_CHECK_VALIDITY_OF_STRING(option)) { + if (! ONIGENC_IS_VALID_MBC_STRING(reg->enc, str, end)) { + r = ONIGERR_INVALID_WIDE_CHAR_VALUE; + goto end; + } + } + + r = match_at(reg, str, end, end, at, &msa); +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE + if (OPTON_FIND_LONGEST(option) && r == ONIG_MISMATCH) { + if (msa.best_len >= 0) { + r = msa.best_len; + } + } +#endif + } + + end: + MATCH_ARG_FREE(msa); + return r; +} + +static int +forward_search(regex_t* reg, const UChar* str, const UChar* end, UChar* start, + UChar* range, UChar** low, UChar** high) +{ + UChar *p, *pprev = (UChar* )NULL; + +#ifdef ONIG_DEBUG_SEARCH + fprintf(DBGFP, "forward_search: str: %p, end: %p, start: %p, range: %p\n", + str, end, start, range); +#endif + + p = start; + if (reg->dist_min != 0) { + if (DIST_CAST(end - p) <= reg->dist_min) + return 0; /* fail */ + + if (ONIGENC_IS_SINGLEBYTE(reg->enc)) { + p += reg->dist_min; + } + else { + UChar *q = p + reg->dist_min; + while (p < q) p += enclen(reg->enc, p); + } + } + + retry: + switch (reg->optimize) { + case OPTIMIZE_STR: + p = slow_search(reg->enc, reg->exact, reg->exact_end, p, end, range); + break; + + case OPTIMIZE_STR_FAST: + p = sunday_quick_search(reg, reg->exact, reg->exact_end, p, end, range); + break; + + case OPTIMIZE_STR_FAST_STEP_FORWARD: + p = sunday_quick_search_step_forward(reg, reg->exact, reg->exact_end, + p, end, range); + break; + + case OPTIMIZE_MAP: + p = map_search(reg->enc, reg->map, p, range); + break; + } + + if (p && p < range) { + if (DIST_CAST(p - start) < reg->dist_min) { + retry_gate: + pprev = p; + p += enclen(reg->enc, p); + goto retry; + } + + if (reg->sub_anchor) { + UChar* prev; + + switch (reg->sub_anchor) { + case ANCR_BEGIN_LINE: + if (!ON_STR_BEGIN(p)) { + prev = onigenc_get_prev_char_head(reg->enc, (pprev ? pprev : str), p); + if (!ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) + goto retry_gate; + } + break; + + case ANCR_END_LINE: + if (ON_STR_END(p)) { +#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE + prev = (UChar* )onigenc_get_prev_char_head(reg->enc, + (pprev ? pprev : str), p); + if (prev && ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) + goto retry_gate; +#endif + } + else if (! ONIGENC_IS_MBC_NEWLINE(reg->enc, p, end) +#ifdef USE_CRNL_AS_LINE_TERMINATOR + && ! ONIGENC_IS_MBC_CRNL(reg->enc, p, end) +#endif + ) + goto retry_gate; + + break; + } + } + + if (reg->dist_max == 0) { + *low = p; + *high = p; + } + else { + if (reg->dist_max != INFINITE_LEN) { + if (DIST_CAST(p - str) < reg->dist_max) { + *low = (UChar* )str; + } + else { + *low = p - reg->dist_max; + if (*low > start) { + *low = onigenc_get_right_adjust_char_head(reg->enc, start, *low); + } + } + } + /* no needs to adjust *high, *high is used as range check only */ + if (DIST_CAST(p - str) < reg->dist_min) + *high = (UChar* )str; + else + *high = p - reg->dist_min; + } + +#ifdef ONIG_DEBUG_SEARCH + fprintf(DBGFP, + "forward_search success: low: %d, high: %d, dmin: %u, dmax: %u\n", + (int )(*low - str), (int )(*high - str), + reg->dist_min, reg->dist_max); +#endif + return 1; /* success */ + } + + return 0; /* fail */ +} + + +static int +backward_search(regex_t* reg, const UChar* str, const UChar* end, UChar* s, + const UChar* range, UChar* adjrange, UChar** low, UChar** high) +{ + UChar *p; + + p = s; + + retry: + switch (reg->optimize) { + case OPTIMIZE_STR: + exact_method: + p = slow_search_backward(reg->enc, reg->exact, reg->exact_end, + range, adjrange, end, p); + break; + + case OPTIMIZE_STR_FAST: + case OPTIMIZE_STR_FAST_STEP_FORWARD: + goto exact_method; + break; + + case OPTIMIZE_MAP: + p = map_search_backward(reg->enc, reg->map, range, adjrange, p); + break; + } + + if (p) { + if (reg->sub_anchor) { + UChar* prev; + + switch (reg->sub_anchor) { + case ANCR_BEGIN_LINE: + if (!ON_STR_BEGIN(p)) { + prev = onigenc_get_prev_char_head(reg->enc, str, p); + if (IS_NOT_NULL(prev) && !ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) { + p = prev; + goto retry; + } + } + break; + + case ANCR_END_LINE: + if (ON_STR_END(p)) { +#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE + prev = onigenc_get_prev_char_head(reg->enc, adjrange, p); + if (IS_NULL(prev)) goto fail; + if (ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) { + p = prev; + goto retry; + } +#endif + } + else if (! ONIGENC_IS_MBC_NEWLINE(reg->enc, p, end) +#ifdef USE_CRNL_AS_LINE_TERMINATOR + && ! ONIGENC_IS_MBC_CRNL(reg->enc, p, end) +#endif + ) { + p = onigenc_get_prev_char_head(reg->enc, adjrange, p); + if (IS_NULL(p)) goto fail; + goto retry; + } + break; + } + } + + if (reg->dist_max != INFINITE_LEN) { + if (DIST_CAST(p - str) < reg->dist_max) + *low = (UChar* )str; + else + *low = p - reg->dist_max; + + if (reg->dist_min != 0) { + if (DIST_CAST(p - str) < reg->dist_min) + *high = (UChar* )str; + else + *high = p - reg->dist_min; + } + else { + *high = p; + } + + *high = onigenc_get_right_adjust_char_head(reg->enc, adjrange, *high); + } + +#ifdef ONIG_DEBUG_SEARCH + fprintf(DBGFP, "backward_search: low: %d, high: %d\n", + (int )(*low - str), (int )(*high - str)); +#endif + return 1; /* success */ + } + + fail: +#ifdef ONIG_DEBUG_SEARCH + fprintf(DBGFP, "backward_search: fail.\n"); +#endif + return 0; /* fail */ +} + + +extern int +onig_search(regex_t* reg, const UChar* str, const UChar* end, + const UChar* start, const UChar* range, OnigRegion* region, + OnigOptionType option) +{ + int r; + OnigMatchParam mp; + const UChar* data_range; + + onig_initialize_match_param(&mp); + + /* The following is an expanded code of onig_search_with_param() */ + if (range > start) + data_range = range; + else + data_range = end; + + r = search_in_range(reg, str, end, start, range, data_range, region, + option, &mp); + + onig_free_match_param_content(&mp); + return r; + +} + +static int +search_in_range(regex_t* reg, const UChar* str, const UChar* end, + const UChar* start, const UChar* range, /* match start range */ + const UChar* data_range, /* subject string range */ + OnigRegion* region, + OnigOptionType option, OnigMatchParam* mp) +{ + int r; + int forward; + UChar *s; + MatchArg msa; + const UChar *orig_start = start; + +#ifdef ONIG_DEBUG_SEARCH + fprintf(DBGFP, + "onig_search (entry point): str: %p, end: %d, start: %d, range: %d\n", + str, (int )(end - str), (int )(start - str), (int )(range - str)); +#endif + + ADJUST_MATCH_PARAM(reg, mp); + +#ifndef USE_POSIX_API + if (OPTON_POSIX_REGION(option)) { + r = ONIGERR_INVALID_ARGUMENT; + goto finish_no_msa; + } +#endif + + if (region +#ifdef USE_POSIX_API + && ! OPTON_POSIX_REGION(option) +#endif + ) { + r = onig_region_resize_clear(region, reg->num_mem + 1); + if (r != 0) goto finish_no_msa; + } + + if (start > end || start < str) goto mismatch_no_msa; + + if (OPTON_CHECK_VALIDITY_OF_STRING(option)) { + if (! ONIGENC_IS_VALID_MBC_STRING(reg->enc, str, end)) { + r = ONIGERR_INVALID_WIDE_CHAR_VALUE; + goto finish_no_msa; + } + } + + +#define MATCH_AND_RETURN_CHECK(upper_range) \ + r = match_at(reg, str, end, (upper_range), s, &msa);\ + if (r != ONIG_MISMATCH) {\ + if (r >= 0) {\ + goto match;\ + }\ + else goto finish; /* error */ \ + } + + forward = (range > start); + + /* anchor optimize: resume search range */ + if (reg->anchor != 0 && str < end) { + UChar *min_semi_end, *max_semi_end; + + if (reg->anchor & ANCR_BEGIN_POSITION) { + /* search start-position only */ + begin_position: + if (range > start) + range = start + 1; + else + range = start; + } + else if (reg->anchor & ANCR_BEGIN_BUF) { + /* search str-position only */ + if (range > start) { + if (start != str) goto mismatch_no_msa; + range = str + 1; + } + else { + if (range <= str) { + start = str; + range = str; + } + else + goto mismatch_no_msa; + } + } + else if (reg->anchor & ANCR_END_BUF) { + min_semi_end = max_semi_end = (UChar* )end; + + end_buf: + if ((OnigLen )(max_semi_end - str) < reg->anc_dist_min) + goto mismatch_no_msa; + + if (range > start) { + if (reg->anc_dist_max != INFINITE_LEN && + DIST_CAST(min_semi_end - start) > reg->anc_dist_max) { + start = min_semi_end - reg->anc_dist_max; + if (start < end) + start = onigenc_get_right_adjust_char_head(reg->enc, str, start); + } + if (DIST_CAST(max_semi_end - (range - 1)) < reg->anc_dist_min) { + if (DIST_CAST(max_semi_end - str + 1) < reg->anc_dist_min) + goto mismatch_no_msa; + else + range = max_semi_end - reg->anc_dist_min + 1; + } + + if (start > range) goto mismatch_no_msa; + /* If start == range, match with empty at end. + Backward search is used. */ + } + else { + if (reg->anc_dist_max != INFINITE_LEN && + DIST_CAST(min_semi_end - range) > reg->anc_dist_max) { + range = min_semi_end - reg->anc_dist_max; + } + if (DIST_CAST(max_semi_end - start) < reg->anc_dist_min) { + if (DIST_CAST(max_semi_end - str) < reg->anc_dist_min) + goto mismatch_no_msa; + else { + start = max_semi_end - reg->anc_dist_min; + start = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, str, start); + } + } + if (range > start) goto mismatch_no_msa; + } + } + else if (reg->anchor & ANCR_SEMI_END_BUF) { + UChar* pre_end = ONIGENC_STEP_BACK(reg->enc, str, end, 1); + + max_semi_end = (UChar* )end; + if (ONIGENC_IS_MBC_NEWLINE(reg->enc, pre_end, end)) { + min_semi_end = pre_end; + +#ifdef USE_CRNL_AS_LINE_TERMINATOR + pre_end = ONIGENC_STEP_BACK(reg->enc, str, pre_end, 1); + if (IS_NOT_NULL(pre_end) && + ONIGENC_IS_MBC_CRNL(reg->enc, pre_end, end)) { + min_semi_end = pre_end; + } +#endif + if (min_semi_end > str && start <= min_semi_end) { + goto end_buf; + } + } + else { + min_semi_end = (UChar* )end; + goto end_buf; + } + } + else if ((reg->anchor & ANCR_ANYCHAR_INF_ML) && range > start) { + goto begin_position; + } + } + else if (str == end) { /* empty string */ + static const UChar* address_for_empty_string = (UChar* )""; + +#ifdef ONIG_DEBUG_SEARCH + fprintf(DBGFP, "onig_search: empty string.\n"); +#endif + + if (reg->threshold_len == 0) { + start = end = str = address_for_empty_string; + s = (UChar* )start; + + MATCH_ARG_INIT(msa, reg, option, region, start, mp); + MATCH_AND_RETURN_CHECK(end); + goto mismatch; + } + goto mismatch_no_msa; + } + +#ifdef ONIG_DEBUG_SEARCH + fprintf(DBGFP, "onig_search(apply anchor): end: %d, start: %d, range: %d\n", + (int )(end - str), (int )(start - str), (int )(range - str)); +#endif + + MATCH_ARG_INIT(msa, reg, option, region, orig_start, mp); + + s = (UChar* )start; + if (forward != 0) { /* forward search */ + if (reg->optimize != OPTIMIZE_NONE) { + UChar *sch_range, *low, *high; + + if (reg->dist_max != 0) { + if (reg->dist_max == INFINITE_LEN) + sch_range = (UChar* )end; + else { + if (DIST_CAST(end - range) < reg->dist_max) + sch_range = (UChar* )end; + else { + sch_range = (UChar* )range + reg->dist_max; + } + } + } + else + sch_range = (UChar* )range; + + if ((end - start) < reg->threshold_len) + goto mismatch; + + if (reg->dist_max != INFINITE_LEN) { + do { + if (! forward_search(reg, str, end, s, sch_range, &low, &high)) + goto mismatch; + if (s < low) { + s = low; + } + while (s <= high) { + MATCH_AND_RETURN_CHECK(data_range); + s += enclen(reg->enc, s); +#ifdef USE_SKIP_SEARCH + if (s < msa.skip_search) s = msa.skip_search; +#endif + } + } while (s < range); + goto mismatch; + } + else { /* check only. */ + if (! forward_search(reg, str, end, s, sch_range, &low, &high)) + goto mismatch; + + if ((reg->anchor & ANCR_ANYCHAR_INF) != 0 && + (reg->anchor & (ANCR_LOOK_BEHIND | ANCR_PREC_READ_NOT)) == 0) { + while (s < range) { + UChar* prev; + + MATCH_AND_RETURN_CHECK(data_range); + prev = s; + s += enclen(reg->enc, s); + +#ifdef USE_SKIP_SEARCH + if (s < msa.skip_search) s = msa.skip_search; + else { +#endif + while (!ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end) && + s < range) { + prev = s; + s += enclen(reg->enc, s); + } +#ifdef USE_SKIP_SEARCH + } +#endif + } + goto mismatch; + } + } + } + + while (1 == 1) { + MATCH_AND_RETURN_CHECK(data_range); + if (s >= range) break; + s += enclen(reg->enc, s); + +#ifdef USE_SKIP_SEARCH + if (s < msa.skip_search) { + s = msa.skip_search; + if (s > range) break; + } +#endif + } + } + else { /* backward search */ + if (range < str) goto mismatch; + + if (orig_start < end) + orig_start += enclen(reg->enc, orig_start); /* is upper range */ + + if (reg->optimize != OPTIMIZE_NONE) { + UChar *low, *high, *adjrange, *sch_start; + const UChar *min_range; + + if ((end - range) < reg->threshold_len) goto mismatch; + + if (range < end) + adjrange = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, str, range); + else + adjrange = (UChar* )end; + + if (DIST_CAST(end - range) > reg->dist_min) + min_range = range + reg->dist_min; + else + min_range = end; + + if (reg->dist_max != INFINITE_LEN) { + do { + if (DIST_CAST(end - s) > reg->dist_max) + sch_start = s + reg->dist_max; + else { + sch_start = onigenc_get_prev_char_head(reg->enc, str, end); + } + + if (backward_search(reg, str, end, sch_start, min_range, adjrange, + &low, &high) <= 0) + goto mismatch; + + if (s > high) + s = high; + + while (PTR_GE(s, low)) { + MATCH_AND_RETURN_CHECK(orig_start); + s = onigenc_get_prev_char_head(reg->enc, str, s); + } + } while (PTR_GE(s, range)); + goto mismatch; + } + else { /* check only. */ + sch_start = onigenc_get_prev_char_head(reg->enc, str, end); + + if (backward_search(reg, str, end, sch_start, min_range, adjrange, + &low, &high) <= 0) goto mismatch; + } + } + + do { + MATCH_AND_RETURN_CHECK(orig_start); + s = onigenc_get_prev_char_head(reg->enc, str, s); + } while (PTR_GE(s, range)); + } + + mismatch: +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE + if (OPTON_FIND_LONGEST(reg->options)) { + if (msa.best_len >= 0) { + s = msa.best_s; + goto match; + } + } +#endif + r = ONIG_MISMATCH; + + finish: + MATCH_ARG_FREE(msa); + + /* If result is mismatch and no FIND_NOT_EMPTY option, + then the region is not set in match_at(). */ + if (OPTON_FIND_NOT_EMPTY(reg->options) && region +#ifdef USE_POSIX_API + && !OPTON_POSIX_REGION(option) +#endif + ) { + onig_region_clear(region); + } + +#ifdef ONIG_DEBUG + if (r != ONIG_MISMATCH) + fprintf(DBGFP, "onig_search: error %d\n", r); +#endif + return r; + + mismatch_no_msa: + r = ONIG_MISMATCH; + finish_no_msa: +#ifdef ONIG_DEBUG + if (r != ONIG_MISMATCH) + fprintf(DBGFP, "onig_search: error %d\n", r); +#endif + return r; + + match: + MATCH_ARG_FREE(msa); + return (int )(s - str); +} + +extern int +onig_search_with_param(regex_t* reg, const UChar* str, const UChar* end, + const UChar* start, const UChar* range, OnigRegion* region, + OnigOptionType option, OnigMatchParam* mp) +{ + const UChar* data_range; + + if (range > start) + data_range = range; + else + data_range = end; + + return search_in_range(reg, str, end, start, range, data_range, region, + option, mp); +} + +extern int +onig_scan(regex_t* reg, const UChar* str, const UChar* end, + OnigRegion* region, OnigOptionType option, + int (*scan_callback)(int, int, OnigRegion*, void*), + void* callback_arg) +{ + int r; + int n; + int rs; + const UChar* start; + + if (OPTON_CHECK_VALIDITY_OF_STRING(option)) { + if (! ONIGENC_IS_VALID_MBC_STRING(reg->enc, str, end)) + return ONIGERR_INVALID_WIDE_CHAR_VALUE; + + ONIG_OPTION_OFF(option, ONIG_OPTION_CHECK_VALIDITY_OF_STRING); + } + + n = 0; + start = str; + while (1) { + r = onig_search(reg, str, end, start, end, region, option); + if (r >= 0) { + rs = scan_callback(n, r, region, callback_arg); + n++; + if (rs != 0) + return rs; + + if (region->end[0] == start - str) { + if (start >= end) break; + start += enclen(reg->enc, start); + } + else + start = str + region->end[0]; + + if (start > end) + break; + } + else if (r == ONIG_MISMATCH) { + break; + } + else { /* error */ + return r; + } + } + + return n; +} + +extern int +onig_get_subexp_call_max_nest_level(void) +{ + return SubexpCallMaxNestLevel; +} + +extern int +onig_set_subexp_call_max_nest_level(int level) +{ + SubexpCallMaxNestLevel = level; + return 0; +} + +extern OnigEncoding +onig_get_encoding(regex_t* reg) +{ + return reg->enc; +} + +extern OnigOptionType +onig_get_options(regex_t* reg) +{ + return reg->options; +} + +extern OnigCaseFoldType +onig_get_case_fold_flag(regex_t* reg) +{ + return reg->case_fold_flag; +} + +extern OnigSyntaxType* +onig_get_syntax(regex_t* reg) +{ + return reg->syntax; +} + +extern int +onig_number_of_captures(regex_t* reg) +{ + return reg->num_mem; +} + +extern int +onig_number_of_capture_histories(regex_t* reg) +{ +#ifdef USE_CAPTURE_HISTORY + int i, n; + + n = 0; + for (i = 0; i <= ONIG_MAX_CAPTURE_HISTORY_GROUP; i++) { + if (MEM_STATUS_AT(reg->capture_history, i) != 0) + n++; + } + return n; +#else + return 0; +#endif +} + +extern void +onig_copy_encoding(OnigEncoding to, OnigEncoding from) +{ + *to = *from; +} + +#ifdef USE_REGSET + +extern int +onig_regset_new(OnigRegSet** rset, int n, regex_t* regs[]) +{ +#define REGSET_INITIAL_ALLOC_SIZE 10 + + int i; + int r; + int alloc; + OnigRegSet* set; + RR* rs; + + *rset = 0; + + set = (OnigRegSet* )xmalloc(sizeof(*set)); + CHECK_NULL_RETURN_MEMERR(set); + + alloc = n > REGSET_INITIAL_ALLOC_SIZE ? n : REGSET_INITIAL_ALLOC_SIZE; + rs = (RR* )xmalloc(sizeof(set->rs[0]) * alloc); + if (IS_NULL(rs)) { + xfree(set); + return ONIGERR_MEMORY; + } + + set->rs = rs; + set->n = 0; + set->alloc = alloc; + + for (i = 0; i < n; i++) { + regex_t* reg = regs[i]; + + r = onig_regset_add(set, reg); + if (r != 0) { + for (i = 0; i < set->n; i++) { + OnigRegion* region = set->rs[i].region; + if (IS_NOT_NULL(region)) + onig_region_free(region, 1); + } + xfree(set->rs); + xfree(set); + return r; + } + } + + *rset = set; + return 0; +} + +static void +update_regset_by_reg(OnigRegSet* set, regex_t* reg) +{ + if (set->n == 1) { + set->enc = reg->enc; + set->anchor = reg->anchor; + set->anc_dmin = reg->anc_dist_min; + set->anc_dmax = reg->anc_dist_max; + set->all_low_high = + (reg->optimize == OPTIMIZE_NONE || reg->dist_max == INFINITE_LEN) ? 0 : 1; + set->anychar_inf = (reg->anchor & ANCR_ANYCHAR_INF) != 0 ? 1 : 0; + } + else { + int anchor; + + anchor = set->anchor & reg->anchor; + if (anchor != 0) { + OnigLen anc_dmin; + OnigLen anc_dmax; + + anc_dmin = set->anc_dmin; + anc_dmax = set->anc_dmax; + if (anc_dmin > reg->anc_dist_min) anc_dmin = reg->anc_dist_min; + if (anc_dmax < reg->anc_dist_max) anc_dmax = reg->anc_dist_max; + set->anc_dmin = anc_dmin; + set->anc_dmax = anc_dmax; + } + + set->anchor = anchor; + + if (reg->optimize == OPTIMIZE_NONE || reg->dist_max == INFINITE_LEN) + set->all_low_high = 0; + + if ((reg->anchor & ANCR_ANYCHAR_INF) != 0) + set->anychar_inf = 1; + } +} + +extern int +onig_regset_add(OnigRegSet* set, regex_t* reg) +{ + OnigRegion* region; + +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE + if (OPTON_FIND_LONGEST(reg->options)) + return ONIGERR_INVALID_ARGUMENT; +#endif + + if (set->n != 0 && reg->enc != set->enc) + return ONIGERR_INVALID_ARGUMENT; + + if (set->n >= set->alloc) { + RR* nrs; + int new_alloc; + + new_alloc = set->alloc * 2; + nrs = (RR* )xrealloc(set->rs, sizeof(set->rs[0]) * new_alloc); + CHECK_NULL_RETURN_MEMERR(nrs); + + set->rs = nrs; + set->alloc = new_alloc; + } + + region = onig_region_new(); + CHECK_NULL_RETURN_MEMERR(region); + + set->rs[set->n].reg = reg; + set->rs[set->n].region = region; + set->n++; + + update_regset_by_reg(set, reg); + return 0; +} + +extern int +onig_regset_replace(OnigRegSet* set, int at, regex_t* reg) +{ + int i; + + if (at < 0 || at >= set->n) + return ONIGERR_INVALID_ARGUMENT; + + if (IS_NULL(reg)) { + onig_region_free(set->rs[at].region, 1); + for (i = at; i < set->n - 1; i++) { + set->rs[i].reg = set->rs[i+1].reg; + set->rs[i].region = set->rs[i+1].region; + } + set->n--; + } + else { +#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE + if (OPTON_FIND_LONGEST(reg->options)) + return ONIGERR_INVALID_ARGUMENT; +#endif + + if (set->n > 1 && reg->enc != set->enc) + return ONIGERR_INVALID_ARGUMENT; + + set->rs[at].reg = reg; + } + + for (i = 0; i < set->n; i++) + update_regset_by_reg(set, set->rs[i].reg); + + return 0; +} + +extern void +onig_regset_free(OnigRegSet* set) +{ + int i; + + for (i = 0; i < set->n; i++) { + regex_t* reg; + OnigRegion* region; + + reg = set->rs[i].reg; + region = set->rs[i].region; + onig_free(reg); + if (IS_NOT_NULL(region)) + onig_region_free(region, 1); + } + + xfree(set->rs); + xfree(set); +} + +extern int +onig_regset_number_of_regex(OnigRegSet* set) +{ + return set->n; +} + +extern regex_t* +onig_regset_get_regex(OnigRegSet* set, int at) +{ + if (at < 0 || at >= set->n) + return (regex_t* )0; + + return set->rs[at].reg; +} + +extern OnigRegion* +onig_regset_get_region(OnigRegSet* set, int at) +{ + if (at < 0 || at >= set->n) + return (OnigRegion* )0; + + return set->rs[at].region; +} + +#endif /* USE_REGSET */ + + +#ifdef USE_DIRECT_THREADED_CODE +extern int +onig_init_for_match_at(regex_t* reg) +{ + return match_at(reg, (const UChar* )NULL, (const UChar* )NULL, + (const UChar* )NULL, (const UChar* )NULL, + (MatchArg* )NULL); +} +#endif + + +/* for callout functions */ + +#ifdef USE_CALLOUT + +extern OnigCalloutFunc +onig_get_progress_callout(void) +{ + return DefaultProgressCallout; +} + +extern int +onig_set_progress_callout(OnigCalloutFunc f) +{ + DefaultProgressCallout = f; + return ONIG_NORMAL; +} + +extern OnigCalloutFunc +onig_get_retraction_callout(void) +{ + return DefaultRetractionCallout; +} + +extern int +onig_set_retraction_callout(OnigCalloutFunc f) +{ + DefaultRetractionCallout = f; + return ONIG_NORMAL; +} + +extern int +onig_get_callout_num_by_callout_args(OnigCalloutArgs* args) +{ + return args->num; +} + +extern OnigCalloutIn +onig_get_callout_in_by_callout_args(OnigCalloutArgs* args) +{ + return args->in; +} + +extern int +onig_get_name_id_by_callout_args(OnigCalloutArgs* args) +{ + return args->name_id; +} + +extern const UChar* +onig_get_contents_by_callout_args(OnigCalloutArgs* args) +{ + int num; + CalloutListEntry* e; + + num = args->num; + e = onig_reg_callout_list_at(args->regex, num); + if (IS_NULL(e)) return 0; + if (e->of == ONIG_CALLOUT_OF_CONTENTS) { + return e->u.content.start; + } + + return 0; +} + +extern const UChar* +onig_get_contents_end_by_callout_args(OnigCalloutArgs* args) +{ + int num; + CalloutListEntry* e; + + num = args->num; + e = onig_reg_callout_list_at(args->regex, num); + if (IS_NULL(e)) return 0; + if (e->of == ONIG_CALLOUT_OF_CONTENTS) { + return e->u.content.end; + } + + return 0; +} + +extern int +onig_get_args_num_by_callout_args(OnigCalloutArgs* args) +{ + int num; + CalloutListEntry* e; + + num = args->num; + e = onig_reg_callout_list_at(args->regex, num); + if (IS_NULL(e)) return ONIGERR_INVALID_ARGUMENT; + if (e->of == ONIG_CALLOUT_OF_NAME) { + return e->u.arg.num; + } + + return ONIGERR_INVALID_ARGUMENT; +} + +extern int +onig_get_passed_args_num_by_callout_args(OnigCalloutArgs* args) +{ + int num; + CalloutListEntry* e; + + num = args->num; + e = onig_reg_callout_list_at(args->regex, num); + if (IS_NULL(e)) return ONIGERR_INVALID_ARGUMENT; + if (e->of == ONIG_CALLOUT_OF_NAME) { + return e->u.arg.passed_num; + } + + return ONIGERR_INVALID_ARGUMENT; +} + +extern int +onig_get_arg_by_callout_args(OnigCalloutArgs* args, int index, + OnigType* type, OnigValue* val) +{ + int num; + CalloutListEntry* e; + + num = args->num; + e = onig_reg_callout_list_at(args->regex, num); + if (IS_NULL(e)) return ONIGERR_INVALID_ARGUMENT; + if (e->of == ONIG_CALLOUT_OF_NAME) { + if (IS_NOT_NULL(type)) *type = e->u.arg.types[index]; + if (IS_NOT_NULL(val)) *val = e->u.arg.vals[index]; + return ONIG_NORMAL; + } + + return ONIGERR_INVALID_ARGUMENT; +} + +extern const UChar* +onig_get_string_by_callout_args(OnigCalloutArgs* args) +{ + return args->string; +} + +extern const UChar* +onig_get_string_end_by_callout_args(OnigCalloutArgs* args) +{ + return args->string_end; +} + +extern const UChar* +onig_get_start_by_callout_args(OnigCalloutArgs* args) +{ + return args->start; +} + +extern const UChar* +onig_get_right_range_by_callout_args(OnigCalloutArgs* args) +{ + return args->right_range; +} + +extern const UChar* +onig_get_current_by_callout_args(OnigCalloutArgs* args) +{ + return args->current; +} + +extern OnigRegex +onig_get_regex_by_callout_args(OnigCalloutArgs* args) +{ + return args->regex; +} + +extern unsigned long +onig_get_retry_counter_by_callout_args(OnigCalloutArgs* args) +{ + return args->retry_in_match_counter; +} + + +extern int +onig_get_capture_range_in_callout(OnigCalloutArgs* a, int mem_num, int* begin, int* end) +{ + OnigRegex reg; + const UChar* str; + StackType* stk_base; + int i; + StkPtrType* mem_start_stk; + StkPtrType* mem_end_stk; + + i = mem_num; + reg = a->regex; + str = a->string; + stk_base = a->stk_base; + mem_start_stk = a->mem_start_stk; + mem_end_stk = a->mem_end_stk; + + if (i > 0) { + if (a->mem_end_stk[i].i != INVALID_STACK_INDEX) { + *begin = (int )(STACK_MEM_START(reg, i) - str); + *end = (int )(STACK_MEM_END(reg, i) - str); + } + else { + *begin = *end = ONIG_REGION_NOTPOS; + } + } + else + return ONIGERR_INVALID_ARGUMENT; + + return ONIG_NORMAL; +} + +extern int +onig_get_used_stack_size_in_callout(OnigCalloutArgs* a, int* used_num, int* used_bytes) +{ + int n; + + n = (int )(a->stk - a->stk_base); + + if (used_num != 0) + *used_num = n; + + if (used_bytes != 0) + *used_bytes = n * sizeof(StackType); + + return ONIG_NORMAL; +} + + +/* builtin callout functions */ + +extern int +onig_builtin_fail(OnigCalloutArgs* args ARG_UNUSED, void* user_data ARG_UNUSED) +{ + return ONIG_CALLOUT_FAIL; +} + +extern int +onig_builtin_mismatch(OnigCalloutArgs* args ARG_UNUSED, void* user_data ARG_UNUSED) +{ + return ONIG_MISMATCH; +} + +extern int +onig_builtin_error(OnigCalloutArgs* args, void* user_data ARG_UNUSED) +{ + int r; + int n; + OnigValue val; + + r = onig_get_arg_by_callout_args(args, 0, 0, &val); + if (r != ONIG_NORMAL) return r; + + n = (int )val.l; + if (n >= 0) { + n = ONIGERR_INVALID_CALLOUT_BODY; + } + else if (onig_is_error_code_needs_param(n)) { + n = ONIGERR_INVALID_CALLOUT_BODY; + } + + return n; +} + +#ifdef USE_SKIP_SEARCH +extern int +onig_builtin_skip(OnigCalloutArgs* args, void* user_data ARG_UNUSED) +{ + if (args->current > args->msa->skip_search) + args->msa->skip_search = (UChar* )args->current; + + return ONIG_NORMAL; +} +#endif + +extern int +onig_builtin_count(OnigCalloutArgs* args, void* user_data) +{ + (void )onig_check_callout_data_and_clear_old_values(args); + + return onig_builtin_total_count(args, user_data); +} + +extern int +onig_builtin_total_count(OnigCalloutArgs* args, void* user_data ARG_UNUSED) +{ + int r; + int slot; + OnigType type; + OnigValue val; + OnigValue aval; + OnigCodePoint count_type; + + r = onig_get_arg_by_callout_args(args, 0, &type, &aval); + if (r != ONIG_NORMAL) return r; + + count_type = aval.c; + if (count_type != '>' && count_type != 'X' && count_type != '<') + return ONIGERR_INVALID_CALLOUT_ARG; + + r = onig_get_callout_data_by_callout_args_self_dont_clear_old(args, 0, + &type, &val); + if (r < ONIG_NORMAL) + return r; + else if (r > ONIG_NORMAL) { + /* type == void: initial state */ + val.l = 0; + } + + if (args->in == ONIG_CALLOUT_IN_RETRACTION) { + slot = 2; + if (count_type == '<') + val.l++; + else if (count_type == 'X') + val.l--; + } + else { + slot = 1; + if (count_type != '<') + val.l++; + } + + r = onig_set_callout_data_by_callout_args_self(args, 0, ONIG_TYPE_LONG, &val); + if (r != ONIG_NORMAL) return r; + + /* slot 1: in progress counter, slot 2: in retraction counter */ + r = onig_get_callout_data_by_callout_args_self_dont_clear_old(args, slot, + &type, &val); + if (r < ONIG_NORMAL) + return r; + else if (r > ONIG_NORMAL) { + val.l = 0; + } + + val.l++; + r = onig_set_callout_data_by_callout_args_self(args, slot, ONIG_TYPE_LONG, &val); + if (r != ONIG_NORMAL) return r; + + return ONIG_CALLOUT_SUCCESS; +} + +extern int +onig_builtin_max(OnigCalloutArgs* args, void* user_data ARG_UNUSED) +{ + int r; + int slot; + long max_val; + OnigCodePoint count_type; + OnigType type; + OnigValue val; + OnigValue aval; + + (void )onig_check_callout_data_and_clear_old_values(args); + + slot = 0; + r = onig_get_callout_data_by_callout_args_self(args, slot, &type, &val); + if (r < ONIG_NORMAL) + return r; + else if (r > ONIG_NORMAL) { + /* type == void: initial state */ + type = ONIG_TYPE_LONG; + val.l = 0; + } + + r = onig_get_arg_by_callout_args(args, 0, &type, &aval); + if (r != ONIG_NORMAL) return r; + if (type == ONIG_TYPE_TAG) { + r = onig_get_callout_data_by_callout_args(args, aval.tag, 0, &type, &aval); + if (r < ONIG_NORMAL) return r; + else if (r > ONIG_NORMAL) + max_val = 0L; + else + max_val = aval.l; + } + else { /* LONG */ + max_val = aval.l; + } + + r = onig_get_arg_by_callout_args(args, 1, &type, &aval); + if (r != ONIG_NORMAL) return r; + + count_type = aval.c; + if (count_type != '>' && count_type != 'X' && count_type != '<') + return ONIGERR_INVALID_CALLOUT_ARG; + + if (args->in == ONIG_CALLOUT_IN_RETRACTION) { + if (count_type == '<') { + if (val.l >= max_val) return ONIG_CALLOUT_FAIL; + val.l++; + } + else if (count_type == 'X') + val.l--; + } + else { + if (count_type != '<') { + if (val.l >= max_val) return ONIG_CALLOUT_FAIL; + val.l++; + } + } + + r = onig_set_callout_data_by_callout_args_self(args, slot, ONIG_TYPE_LONG, &val); + if (r != ONIG_NORMAL) return r; + + return ONIG_CALLOUT_SUCCESS; +} + +enum OP_CMP { + OP_EQ, + OP_NE, + OP_LT, + OP_GT, + OP_LE, + OP_GE +}; + +extern int +onig_builtin_cmp(OnigCalloutArgs* args, void* user_data ARG_UNUSED) +{ + int r; + int slot; + long lv; + long rv; + OnigType type; + OnigValue val; + regex_t* reg; + enum OP_CMP op; + + reg = args->regex; + + r = onig_get_arg_by_callout_args(args, 0, &type, &val); + if (r != ONIG_NORMAL) return r; + + if (type == ONIG_TYPE_TAG) { + r = onig_get_callout_data_by_callout_args(args, val.tag, 0, &type, &val); + if (r < ONIG_NORMAL) return r; + else if (r > ONIG_NORMAL) + lv = 0L; + else + lv = val.l; + } + else { /* ONIG_TYPE_LONG */ + lv = val.l; + } + + r = onig_get_arg_by_callout_args(args, 2, &type, &val); + if (r != ONIG_NORMAL) return r; + + if (type == ONIG_TYPE_TAG) { + r = onig_get_callout_data_by_callout_args(args, val.tag, 0, &type, &val); + if (r < ONIG_NORMAL) return r; + else if (r > ONIG_NORMAL) + rv = 0L; + else + rv = val.l; + } + else { /* ONIG_TYPE_LONG */ + rv = val.l; + } + + slot = 0; + r = onig_get_callout_data_by_callout_args_self(args, slot, &type, &val); + if (r < ONIG_NORMAL) + return r; + else if (r > ONIG_NORMAL) { + /* type == void: initial state */ + OnigCodePoint c1, c2; + UChar* p; + + r = onig_get_arg_by_callout_args(args, 1, &type, &val); + if (r != ONIG_NORMAL) return r; + + p = val.s.start; + c1 = ONIGENC_MBC_TO_CODE(reg->enc, p, val.s.end); + p += ONIGENC_MBC_ENC_LEN(reg->enc, p); + if (p < val.s.end) { + c2 = ONIGENC_MBC_TO_CODE(reg->enc, p, val.s.end); + p += ONIGENC_MBC_ENC_LEN(reg->enc, p); + if (p != val.s.end) return ONIGERR_INVALID_CALLOUT_ARG; + } + else + c2 = 0; + + switch (c1) { + case '=': + if (c2 != '=') return ONIGERR_INVALID_CALLOUT_ARG; + op = OP_EQ; + break; + case '!': + if (c2 != '=') return ONIGERR_INVALID_CALLOUT_ARG; + op = OP_NE; + break; + case '<': + if (c2 == '=') op = OP_LE; + else if (c2 == 0) op = OP_LT; + else return ONIGERR_INVALID_CALLOUT_ARG; + break; + case '>': + if (c2 == '=') op = OP_GE; + else if (c2 == 0) op = OP_GT; + else return ONIGERR_INVALID_CALLOUT_ARG; + break; + default: + return ONIGERR_INVALID_CALLOUT_ARG; + break; + } + val.l = (long )op; + r = onig_set_callout_data_by_callout_args_self(args, slot, ONIG_TYPE_LONG, &val); + if (r != ONIG_NORMAL) return r; + } + else { + op = (enum OP_CMP )val.l; + } + + switch (op) { + case OP_EQ: r = (lv == rv); break; + case OP_NE: r = (lv != rv); break; + case OP_LT: r = (lv < rv); break; + case OP_GT: r = (lv > rv); break; + case OP_LE: r = (lv <= rv); break; + case OP_GE: r = (lv >= rv); break; + } + + return r == 0 ? ONIG_CALLOUT_FAIL : ONIG_CALLOUT_SUCCESS; +} + + +#ifndef ONIG_NO_PRINT + +static FILE* OutFp; + +/* name start with "onig_" for macros. */ +static int +onig_builtin_monitor(OnigCalloutArgs* args, void* user_data) +{ + int r; + int num; + size_t tag_len; + const UChar* start; + const UChar* right; + const UChar* current; + const UChar* string; + const UChar* strend; + const UChar* tag_start; + const UChar* tag_end; + regex_t* reg; + OnigCalloutIn in; + OnigType type; + OnigValue val; + char buf[20]; + FILE* fp; + + fp = OutFp; + + r = onig_get_arg_by_callout_args(args, 0, &type, &val); + if (r != ONIG_NORMAL) return r; + + in = onig_get_callout_in_by_callout_args(args); + if (in == ONIG_CALLOUT_IN_PROGRESS) { + if (val.c == '<') + return ONIG_CALLOUT_SUCCESS; + } + else { + if (val.c != 'X' && val.c != '<') + return ONIG_CALLOUT_SUCCESS; + } + + num = onig_get_callout_num_by_callout_args(args); + start = onig_get_start_by_callout_args(args); + right = onig_get_right_range_by_callout_args(args); + current = onig_get_current_by_callout_args(args); + string = onig_get_string_by_callout_args(args); + strend = onig_get_string_end_by_callout_args(args); + reg = onig_get_regex_by_callout_args(args); + tag_start = onig_get_callout_tag_start(reg, num); + tag_end = onig_get_callout_tag_end(reg, num); + + if (tag_start == 0) + xsnprintf(buf, sizeof(buf), "#%d", num); + else { + /* CAUTION: tag string is not terminated with NULL. */ + int i; + + tag_len = tag_end - tag_start; + if (tag_len >= sizeof(buf)) tag_len = sizeof(buf) - 1; + for (i = 0; i < (int )tag_len; i++) buf[i] = tag_start[i]; + buf[tag_len] = '\0'; + } + + fprintf(fp, "ONIG-MONITOR: %-4s %s at: %d [%d - %d] len: %d\n", + buf, + in == ONIG_CALLOUT_IN_PROGRESS ? "=>" : "<=", + (int )(current - string), + (int )(start - string), + (int )(right - string), + (int )(strend - string)); + fflush(fp); + + return ONIG_CALLOUT_SUCCESS; +} + +extern int +onig_setup_builtin_monitors_by_ascii_encoded_name(void* fp /* FILE* */) +{ + int id; + char* name; + OnigEncoding enc; + unsigned int ts[4]; + OnigValue opts[4]; + + if (IS_NOT_NULL(fp)) + OutFp = (FILE* )fp; + else + OutFp = stdout; + + enc = ONIG_ENCODING_ASCII; + + name = "MON"; + ts[0] = ONIG_TYPE_CHAR; + opts[0].c = '>'; + BC_B_O(name, monitor, 1, ts, 1, opts); + + return ONIG_NORMAL; +} + +#endif /* ONIG_NO_PRINT */ + +#endif /* USE_CALLOUT */ diff --git a/thirdparty/oniguruma/regint.h b/thirdparty/oniguruma/regint.h new file mode 100644 index 000000000..df4b5292d --- /dev/null +++ b/thirdparty/oniguruma/regint.h @@ -0,0 +1,1058 @@ +#ifndef REGINT_H +#define REGINT_H +/********************************************************************** + regint.h - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* for debug */ +/* #define ONIG_DEBUG_PARSE */ +/* #define ONIG_DEBUG_COMPILE */ +/* #define ONIG_DEBUG_SEARCH */ +/* #define ONIG_DEBUG_MATCH */ +/* #define ONIG_DEBUG_MATCH_COUNTER */ +/* #define ONIG_DEBUG_CALL */ +/* #define ONIG_DONT_OPTIMIZE */ +/* #define ONIG_DEBUG */ + +/* for byte-code statistical data. */ +/* #define ONIG_DEBUG_STATISTICS */ + +#if defined(ONIG_DEBUG_PARSE) || defined(ONIG_DEBUG_MATCH) || \ + defined(ONIG_DEBUG_SEARCH) || defined(ONIG_DEBUG_COMPILE) || \ + defined(ONIG_DEBUG_MATCH_COUNTER) || defined(ONIG_DEBUG_CALL) || \ + defined(ONIG_DEBUG_STATISTICS) +#ifndef ONIG_DEBUG +#define ONIG_DEBUG +#endif +#endif + +#ifdef ONIG_DEBUG +#define DBGFP stderr +#endif + +#ifndef ONIG_DISABLE_DIRECT_THREADING +#ifdef __GNUC__ +#define USE_GOTO_LABELS_AS_VALUES +#endif +#endif + +#ifndef ONIG_PRINTFLIKE +#if defined(__clang__) || defined(__GNUC__) +#define ONIG_PRINTFLIKE(x, y) __attribute__((format(printf, x, y))) +#else +#define ONIG_PRINTFLIKE(x, y) +#endif +#endif + +/* config */ +/* spec. config */ +#define USE_REGSET +#define USE_CALL +#define USE_CALLOUT +#define USE_SKIP_SEARCH +#define USE_BACKREF_WITH_LEVEL /* \k, \k */ +#define USE_WHOLE_OPTIONS +#define USE_RIGID_CHECK_CAPTURES_IN_EMPTY_REPEAT /* /(?:()|())*\2/ */ +#define USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE /* /\n$/ =~ "\n" */ +#define USE_WARNING_REDUNDANT_NESTED_REPEAT_OPERATOR +#define USE_RETRY_LIMIT +#ifdef USE_GOTO_LABELS_AS_VALUES +#define USE_THREADED_CODE +#define USE_DIRECT_THREADED_CODE +#endif + +/* internal config */ +#define USE_CHECK_VALIDITY_OF_STRING_IN_TREE +#define USE_OP_PUSH_OR_JUMP_EXACT +#define USE_QUANT_PEEK_NEXT +#define USE_ST_LIBRARY +#define USE_TIMEOFDAY +#define USE_STRICT_POINTER_ADDRESS +#define USE_STRICT_POINTER_COMPARISON + +#define USE_WORD_BEGIN_END /* "\<", "\>" */ +#define USE_CAPTURE_HISTORY +#define USE_VARIABLE_META_CHARS +#define USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE +/* #define USE_REPEAT_AND_EMPTY_CHECK_LOCAL_VAR */ + +/* enabled by configure --enable-posix-api=yes */ +/* #define USE_POSIX_API */ + +#define DEFAULT_PARSE_DEPTH_LIMIT 4096 +#define INIT_MATCH_STACK_SIZE 160 +#define DEFAULT_MATCH_STACK_LIMIT_SIZE 0 /* unlimited */ +#define DEFAULT_RETRY_LIMIT_IN_MATCH 10000000 +#define DEFAULT_RETRY_LIMIT_IN_SEARCH 0 /* unlimited */ +#define DEFAULT_SUBEXP_CALL_LIMIT_IN_SEARCH 0 /* unlimited */ +#define DEFAULT_SUBEXP_CALL_MAX_NEST_LEVEL 20 + + +#include "regenc.h" + +#ifndef ONIG_NO_STANDARD_C_HEADERS + +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_STDINT_H +#include +#endif + +#if defined(HAVE_ALLOCA_H) +#include +#endif + +#ifdef HAVE_SYS_TYPES_H +#ifndef __BORLANDC__ +#include +#endif +#endif + +#ifdef HAVE_INTTYPES_H +#include +#endif + +#if defined(_WIN32) || defined(__BORLANDC__) +#include +#endif + +#if defined(ONIG_DEBUG) || defined(NEED_TO_INCLUDE_STDIO) +# include +#endif + +#ifdef ONIG_DEBUG_STATISTICS +#ifdef USE_TIMEOFDAY + +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +#else /* USE_TIMEOFDAY */ + +#ifdef HAVE_SYS_TIMES_H +#include +#endif + +#endif /* USE_TIMEOFDAY */ +#endif /* ONIG_DEBUG_STATISTICS */ + +/* I don't think these x....'s need to be included in + ONIG_NO_STANDARD_C_HEADERS, but they are required by Issue #170 + and do so since there is no problem. + */ +#ifndef xmemset +#define xmemset memset +#endif + +#ifndef xmemcpy +#define xmemcpy memcpy +#endif + +#ifndef xmemmove +#define xmemmove memmove +#endif + +#endif /* ONIG_NO_STANDARD_C_HEADERS */ + + +#ifdef MIN +#undef MIN +#endif +#ifdef MAX +#undef MAX +#endif + +#define MIN(a,b) (((a)>(b))?(b):(a)) +#define MAX(a,b) (((a)<(b))?(b):(a)) + +#define IS_NULL(p) (((void*)(p)) == (void*)0) +#define IS_NOT_NULL(p) (((void*)(p)) != (void*)0) +#define CHECK_NULL_RETURN(p) if (IS_NULL(p)) return NULL +#define CHECK_NULL_RETURN_MEMERR(p) if (IS_NULL(p)) return ONIGERR_MEMORY +#define NULL_UCHARP ((UChar* )0) + +#ifdef USE_STRICT_POINTER_COMPARISON +#define PTR_GE(p,q) ((p) != NULL && (p) >= (q)) +#else +#define PTR_GE(p,q) (p) >= (q) +#endif + +#ifndef ONIG_INT_MAX +#define ONIG_INT_MAX INT_MAX +#endif + +#define CHAR_MAP_SIZE 256 +#define INFINITE_LEN ONIG_INFINITE_DISTANCE +#define STEP_BACK_MAX_CHAR_LEN 65535 /* INT_MAX is too big */ +#define LOOK_BEHIND_MAX_CHAR_LEN STEP_BACK_MAX_CHAR_LEN + +/* escape other system UChar definition */ +#ifdef ONIG_ESCAPE_UCHAR_COLLISION +#undef ONIG_ESCAPE_UCHAR_COLLISION +#endif + +#define xmalloc malloc +#define xrealloc realloc +#define xcalloc calloc +#define xfree free + +#define st_init_table onig_st_init_table +#define st_init_table_with_size onig_st_init_table_with_size +#define st_init_numtable onig_st_init_numtable +#define st_init_numtable_with_size onig_st_init_numtable_with_size +#define st_init_strtable onig_st_init_strtable +#define st_init_strtable_with_size onig_st_init_strtable_with_size +#define st_delete onig_st_delete +#define st_delete_safe onig_st_delete_safe +#define st_insert onig_st_insert +#define st_lookup onig_st_lookup +#define st_foreach onig_st_foreach +#define st_add_direct onig_st_add_direct +#define st_free_table onig_st_free_table +#define st_cleanup_safe onig_st_cleanup_safe +#define st_copy onig_st_copy +#define st_nothing_key_clone onig_st_nothing_key_clone +#define st_nothing_key_free onig_st_nothing_key_free +/* */ +#define onig_st_is_member st_is_member + + +#if defined(_WIN32) && !defined(__GNUC__) + +#ifndef xalloca +#define xalloca _alloca +#endif +#ifndef xvsnprintf +#define xvsnprintf(buf,size,fmt,args) _vsnprintf_s(buf,size,_TRUNCATE,fmt,args) +#endif +#ifndef xsnprintf +#define xsnprintf sprintf_s +#endif +#ifndef xstrcat +#define xstrcat(dest,src,size) strcat_s(dest,size,src) +#endif + +#else + +#ifndef xalloca +#define xalloca alloca +#endif +#ifndef xvsnprintf +#define xvsnprintf vsnprintf +#endif +#ifndef xsnprintf +#define xsnprintf snprintf +#endif +#ifndef xstrcat +#define xstrcat(dest,src,size) strcat(dest,src) +#endif + +#endif /* defined(_WIN32) && !defined(__GNUC__) */ + + +#ifdef _WIN32 +#ifdef _MSC_VER + +#if _MSC_VER < 1300 +typedef int intptr_t; +typedef unsigned int uintptr_t; +#endif + +#if _MSC_VER < 1600 +typedef __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#endif + +#endif +#endif /* _WIN32 */ + +#if SIZEOF_VOIDP == SIZEOF_LONG +typedef unsigned long hash_data_type; +#elif SIZEOF_VOIDP == SIZEOF_LONG_LONG +typedef unsigned long long hash_data_type; +#endif + +/* strend hash */ +typedef void* hash_table_type; + + +#ifdef USE_CALLOUT + +typedef struct { + int flag; + OnigCalloutOf of; + int in; + int name_id; + const UChar* tag_start; + const UChar* tag_end; + OnigCalloutType type; + OnigCalloutFunc start_func; + OnigCalloutFunc end_func; + union { + struct { + const UChar* start; + const UChar* end; + } content; + struct { + int num; + int passed_num; + OnigType types[ONIG_CALLOUT_MAX_ARGS_NUM]; + OnigValue vals[ONIG_CALLOUT_MAX_ARGS_NUM]; + } arg; + } u; +} CalloutListEntry; + +#endif + +/* stack pop level */ +enum StackPopLevel { + STACK_POP_LEVEL_FREE = 0, + STACK_POP_LEVEL_MEM_START = 1, + STACK_POP_LEVEL_ALL = 2 +}; + +/* optimize flags */ +enum OptimizeType { + OPTIMIZE_NONE = 0, + OPTIMIZE_STR, /* Slow Search */ + OPTIMIZE_STR_FAST, /* Sunday quick search / BMH */ + OPTIMIZE_STR_FAST_STEP_FORWARD, /* Sunday quick search / BMH */ + OPTIMIZE_MAP /* char map */ +}; + +/* bit status */ +typedef unsigned int MemStatusType; + +#define MEM_STATUS_BITS_NUM (sizeof(MemStatusType) * 8) +#define MEM_STATUS_CLEAR(stats) (stats) = 0 +#define MEM_STATUS_ON_ALL(stats) (stats) = ~((MemStatusType )0) +#define MEM_STATUS_AT(stats,n) \ + ((n) < (int )MEM_STATUS_BITS_NUM ? ((stats) & ((MemStatusType )1 << n)) : ((stats) & 1)) +#define MEM_STATUS_AT0(stats,n) \ + ((n) > 0 && (n) < (int )MEM_STATUS_BITS_NUM ? ((stats) & ((MemStatusType )1 << n)) : ((stats) & 1)) + +#define MEM_STATUS_IS_ALL_ON(stats) (((stats) & 1) != 0) + +#define MEM_STATUS_ON(stats,n) do {\ + if ((n) < (int )MEM_STATUS_BITS_NUM) {\ + if ((n) != 0)\ + (stats) |= ((MemStatusType )1 << (n));\ + }\ + else\ + (stats) |= 1;\ +} while (0) + +#define MEM_STATUS_ON_SIMPLE(stats,n) do {\ + if ((n) < (int )MEM_STATUS_BITS_NUM)\ + (stats) |= ((MemStatusType )1 << (n));\ +} while (0) + +#define MEM_STATUS_LIMIT_AT(stats,n) \ + ((n) < (int )MEM_STATUS_BITS_NUM ? ((stats) & ((MemStatusType )1 << n)) : 0) +#define MEM_STATUS_LIMIT_ON(stats,n) do {\ + if ((n) < (int )MEM_STATUS_BITS_NUM && (n) != 0) {\ + (stats) |= ((MemStatusType )1 << (n));\ + }\ +} while (0) + + +#define IS_CODE_WORD_ASCII(enc,code) \ + (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_WORD(enc,code)) +#define IS_CODE_DIGIT_ASCII(enc, code) \ + (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_DIGIT(enc,code)) +#define IS_CODE_XDIGIT_ASCII(enc, code) \ + (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_XDIGIT(enc,code)) + +#define DIGITVAL(code) ((code) - '0') +#define ODIGITVAL(code) DIGITVAL(code) +#define XDIGITVAL(enc,code) \ + (IS_CODE_DIGIT_ASCII(enc,code) ? DIGITVAL(code) \ + : (ONIGENC_IS_CODE_UPPER(enc,code) ? (code) - 'A' + 10 : (code) - 'a' + 10)) + +#define OPTON_CALLBACK_EACH_MATCH(option) \ + ((option) & ONIG_OPTION_CALLBACK_EACH_MATCH) +#define OPTON_FIND_LONGEST(option) ((option) & ONIG_OPTION_FIND_LONGEST) +#define OPTON_FIND_NOT_EMPTY(option) ((option) & ONIG_OPTION_FIND_NOT_EMPTY) +#define OPTON_NEGATE_SINGLELINE(option) ((option) & \ + ONIG_OPTION_NEGATE_SINGLELINE) +#define OPTON_DONT_CAPTURE_GROUP(option) ((option) & \ + ONIG_OPTION_DONT_CAPTURE_GROUP) +#define OPTON_CAPTURE_GROUP(option) ((option) & ONIG_OPTION_CAPTURE_GROUP) +#define OPTON_NOTBOL(option) ((option) & ONIG_OPTION_NOTBOL) +#define OPTON_NOTEOL(option) ((option) & ONIG_OPTION_NOTEOL) +#define OPTON_POSIX_REGION(option) ((option) & ONIG_OPTION_POSIX_REGION) +#define OPTON_CHECK_VALIDITY_OF_STRING(option) ((option) & \ + ONIG_OPTION_CHECK_VALIDITY_OF_STRING) +#define OPTON_NOT_BEGIN_STRING(option) ((option) & ONIG_OPTION_NOT_BEGIN_STRING) +#define OPTON_NOT_END_STRING(option) ((option) & ONIG_OPTION_NOT_END_STRING) +#define OPTON_NOT_BEGIN_POSITION(option) ((option) & ONIG_OPTION_NOT_BEGIN_POSITION) +#define OPTON_MATCH_WHOLE_STRING(option) ((option) & ONIG_OPTION_MATCH_WHOLE_STRING) + + +#define INFINITE_REPEAT -1 +#define IS_INFINITE_REPEAT(n) ((n) == INFINITE_REPEAT) + +/* bitset */ +#define BITS_PER_BYTE 8 +#define SINGLE_BYTE_SIZE (1 << BITS_PER_BYTE) +#define BITS_IN_ROOM 32 /* 4 * BITS_PER_BYTE */ +#define BITSET_REAL_SIZE (SINGLE_BYTE_SIZE / BITS_IN_ROOM) + +typedef uint32_t Bits; +typedef Bits BitSet[BITSET_REAL_SIZE]; +typedef Bits* BitSetRef; + +#define SIZE_BITSET sizeof(BitSet) + +#define BITSET_CLEAR(bs) do {\ + int i;\ + for (i = 0; i < (int )BITSET_REAL_SIZE; i++) { (bs)[i] = 0; } \ +} while (0) + +#define BS_ROOM(bs,pos) (bs)[(unsigned int )(pos) >> 5] +#define BS_BIT(pos) (1u << ((unsigned int )(pos) & 0x1f)) + +#define BITSET_AT(bs, pos) (BS_ROOM(bs,pos) & BS_BIT(pos)) +#define BITSET_SET_BIT(bs, pos) BS_ROOM(bs,pos) |= BS_BIT(pos) +#define BITSET_CLEAR_BIT(bs, pos) BS_ROOM(bs,pos) &= ~(BS_BIT(pos)) +#define BITSET_INVERT_BIT(bs, pos) BS_ROOM(bs,pos) ^= BS_BIT(pos) + +/* has body */ +#define ANCR_PREC_READ (1<<0) +#define ANCR_PREC_READ_NOT (1<<1) +#define ANCR_LOOK_BEHIND (1<<2) +#define ANCR_LOOK_BEHIND_NOT (1<<3) +/* no body */ +#define ANCR_BEGIN_BUF (1<<4) +#define ANCR_BEGIN_LINE (1<<5) +#define ANCR_BEGIN_POSITION (1<<6) +#define ANCR_END_BUF (1<<7) +#define ANCR_SEMI_END_BUF (1<<8) +#define ANCR_END_LINE (1<<9) +#define ANCR_WORD_BOUNDARY (1<<10) +#define ANCR_NO_WORD_BOUNDARY (1<<11) +#define ANCR_WORD_BEGIN (1<<12) +#define ANCR_WORD_END (1<<13) +#define ANCR_ANYCHAR_INF (1<<14) +#define ANCR_ANYCHAR_INF_ML (1<<15) +#define ANCR_TEXT_SEGMENT_BOUNDARY (1<<16) +#define ANCR_NO_TEXT_SEGMENT_BOUNDARY (1<<17) + + +#define ANCHOR_HAS_BODY(a) ((a)->type < ANCR_BEGIN_BUF) + +#define IS_WORD_ANCHOR_TYPE(type) \ + ((type) == ANCR_WORD_BOUNDARY || (type) == ANCR_NO_WORD_BOUNDARY || \ + (type) == ANCR_WORD_BEGIN || (type) == ANCR_WORD_END) + +/* operation code */ +enum OpCode { + OP_FINISH = 0, /* matching process terminator (no more alternative) */ + OP_END, /* pattern code terminator (success end) */ + OP_STR_1, /* single byte, N = 1 */ + OP_STR_2, /* single byte, N = 2 */ + OP_STR_3, /* single byte, N = 3 */ + OP_STR_4, /* single byte, N = 4 */ + OP_STR_5, /* single byte, N = 5 */ + OP_STR_N, /* single byte */ + OP_STR_MB2N1, /* mb-length = 2 N = 1 */ + OP_STR_MB2N2, /* mb-length = 2 N = 2 */ + OP_STR_MB2N3, /* mb-length = 2 N = 3 */ + OP_STR_MB2N, /* mb-length = 2 */ + OP_STR_MB3N, /* mb-length = 3 */ + OP_STR_MBN, /* other length */ + OP_CCLASS, + OP_CCLASS_MB, + OP_CCLASS_MIX, + OP_CCLASS_NOT, + OP_CCLASS_MB_NOT, + OP_CCLASS_MIX_NOT, + OP_ANYCHAR, /* "." */ + OP_ANYCHAR_ML, /* "." multi-line */ + OP_ANYCHAR_STAR, /* ".*" */ + OP_ANYCHAR_ML_STAR, /* ".*" multi-line */ + OP_ANYCHAR_STAR_PEEK_NEXT, + OP_ANYCHAR_ML_STAR_PEEK_NEXT, + OP_WORD, + OP_WORD_ASCII, + OP_NO_WORD, + OP_NO_WORD_ASCII, + OP_WORD_BOUNDARY, + OP_NO_WORD_BOUNDARY, + OP_WORD_BEGIN, + OP_WORD_END, + OP_TEXT_SEGMENT_BOUNDARY, + OP_BEGIN_BUF, + OP_END_BUF, + OP_BEGIN_LINE, + OP_END_LINE, + OP_SEMI_END_BUF, + OP_CHECK_POSITION, + OP_BACKREF1, + OP_BACKREF2, + OP_BACKREF_N, + OP_BACKREF_N_IC, + OP_BACKREF_MULTI, + OP_BACKREF_MULTI_IC, +#ifdef USE_BACKREF_WITH_LEVEL + OP_BACKREF_WITH_LEVEL, /* \k, \k */ + OP_BACKREF_WITH_LEVEL_IC, /* \k, \k */ +#endif + OP_BACKREF_CHECK, /* (?(n)), (?('name')) */ +#ifdef USE_BACKREF_WITH_LEVEL + OP_BACKREF_CHECK_WITH_LEVEL, /* (?(n-level)), (?('name-level')) */ +#endif + OP_MEM_START, + OP_MEM_START_PUSH, /* push back-tracker to stack */ + OP_MEM_END_PUSH, /* push back-tracker to stack */ +#ifdef USE_CALL + OP_MEM_END_PUSH_REC, /* push back-tracker to stack */ +#endif + OP_MEM_END, +#ifdef USE_CALL + OP_MEM_END_REC, /* push marker to stack */ +#endif + OP_FAIL, /* pop stack and move */ + OP_JUMP, + OP_PUSH, + OP_PUSH_SUPER, + OP_POP, + OP_POP_TO_MARK, +#ifdef USE_OP_PUSH_OR_JUMP_EXACT + OP_PUSH_OR_JUMP_EXACT1, /* if match exact then push, else jump. */ +#endif + OP_PUSH_IF_PEEK_NEXT, /* if match exact then push, else none. */ + OP_REPEAT, /* {n,m} */ + OP_REPEAT_NG, /* {n,m}? (non greedy) */ + OP_REPEAT_INC, + OP_REPEAT_INC_NG, /* non greedy */ + OP_EMPTY_CHECK_START, /* null loop checker start */ + OP_EMPTY_CHECK_END, /* null loop checker end */ + OP_EMPTY_CHECK_END_MEMST, /* null loop checker end (with capture status) */ +#ifdef USE_CALL + OP_EMPTY_CHECK_END_MEMST_PUSH, /* with capture status and push check-end */ +#endif + OP_MOVE, + OP_STEP_BACK_START, + OP_STEP_BACK_NEXT, + OP_CUT_TO_MARK, + OP_MARK, + OP_SAVE_VAL, + OP_UPDATE_VAR, +#ifdef USE_CALL + OP_CALL, /* \g */ + OP_RETURN, +#endif +#ifdef USE_CALLOUT + OP_CALLOUT_CONTENTS, /* (?{...}) (?{{...}}) */ + OP_CALLOUT_NAME, /* (*name) (*name[tag](args...)) */ +#endif +}; + +enum SaveType { + SAVE_KEEP = 0, /* SAVE S */ + SAVE_S = 1, + SAVE_RIGHT_RANGE = 2, +}; + +enum UpdateVarType { + UPDATE_VAR_KEEP_FROM_STACK_LAST = 0, + UPDATE_VAR_S_FROM_STACK = 1, + UPDATE_VAR_RIGHT_RANGE_FROM_STACK = 2, + UPDATE_VAR_RIGHT_RANGE_FROM_S_STACK = 3, + UPDATE_VAR_RIGHT_RANGE_TO_S = 4, + UPDATE_VAR_RIGHT_RANGE_INIT = 5, +}; + +enum CheckPositionType { + CHECK_POSITION_SEARCH_START = 0, + CHECK_POSITION_CURRENT_RIGHT_RANGE = 1, +}; + +enum TextSegmentBoundaryType { + EXTENDED_GRAPHEME_CLUSTER_BOUNDARY = 0, + WORD_BOUNDARY = 1, +}; + +typedef int RelAddrType; +typedef int AbsAddrType; +typedef int LengthType; +typedef int RelPositionType; +typedef int RepeatNumType; +typedef int MemNumType; +typedef void* PointerType; +typedef int SaveType; +typedef int UpdateVarType; +typedef int ModeType; + +#define SIZE_OPCODE 1 +#define SIZE_RELADDR sizeof(RelAddrType) +#define SIZE_ABSADDR sizeof(AbsAddrType) +#define SIZE_LENGTH sizeof(LengthType) +#define SIZE_MEMNUM sizeof(MemNumType) +#define SIZE_REPEATNUM sizeof(RepeatNumType) +#define SIZE_OPTION sizeof(OnigOptionType) +#define SIZE_CODE_POINT sizeof(OnigCodePoint) +#define SIZE_POINTER sizeof(PointerType) +#define SIZE_SAVE_TYPE sizeof(SaveType) +#define SIZE_UPDATE_VAR_TYPE sizeof(UpdateVarType) +#define SIZE_MODE sizeof(ModeType) + +/* code point's address must be aligned address. */ +#define GET_CODE_POINT(code,p) code = *((OnigCodePoint* )(p)) + + +/* op-code + arg size */ + +/* for relative address increment to go next op. */ +#define SIZE_INC 1 + +#define OPSIZE_ANYCHAR_STAR 1 +#define OPSIZE_ANYCHAR_STAR_PEEK_NEXT 1 +#define OPSIZE_JUMP 1 +#define OPSIZE_PUSH 1 +#define OPSIZE_PUSH_SUPER 1 +#define OPSIZE_POP 1 +#define OPSIZE_POP_TO_MARK 1 +#ifdef USE_OP_PUSH_OR_JUMP_EXACT +#define OPSIZE_PUSH_OR_JUMP_EXACT1 1 +#endif +#define OPSIZE_PUSH_IF_PEEK_NEXT 1 +#define OPSIZE_REPEAT 1 +#define OPSIZE_REPEAT_INC 1 +#define OPSIZE_REPEAT_INC_NG 1 +#define OPSIZE_WORD_BOUNDARY 1 +#define OPSIZE_BACKREF 1 +#define OPSIZE_FAIL 1 +#define OPSIZE_MEM_START 1 +#define OPSIZE_MEM_START_PUSH 1 +#define OPSIZE_MEM_END_PUSH 1 +#define OPSIZE_MEM_END_PUSH_REC 1 +#define OPSIZE_MEM_END 1 +#define OPSIZE_MEM_END_REC 1 +#define OPSIZE_EMPTY_CHECK_START 1 +#define OPSIZE_EMPTY_CHECK_END 1 +#define OPSIZE_CHECK_POSITION 1 +#define OPSIZE_CALL 1 +#define OPSIZE_RETURN 1 +#define OPSIZE_MOVE 1 +#define OPSIZE_STEP_BACK_START 1 +#define OPSIZE_STEP_BACK_NEXT 1 +#define OPSIZE_CUT_TO_MARK 1 +#define OPSIZE_MARK 1 +#define OPSIZE_SAVE_VAL 1 +#define OPSIZE_UPDATE_VAR 1 + +#ifdef USE_CALLOUT +#define OPSIZE_CALLOUT_CONTENTS 1 +#define OPSIZE_CALLOUT_NAME 1 +#endif + + +#define MC_ESC(syn) (syn)->meta_char_table.esc +#define MC_ANYCHAR(syn) (syn)->meta_char_table.anychar +#define MC_ANYTIME(syn) (syn)->meta_char_table.anytime +#define MC_ZERO_OR_ONE_TIME(syn) (syn)->meta_char_table.zero_or_one_time +#define MC_ONE_OR_MORE_TIME(syn) (syn)->meta_char_table.one_or_more_time +#define MC_ANYCHAR_ANYTIME(syn) (syn)->meta_char_table.anychar_anytime + +#define IS_MC_ESC_CODE(code, syn) \ + ((code) == MC_ESC(syn) && \ + !IS_SYNTAX_OP2((syn), ONIG_SYN_OP2_INEFFECTIVE_ESCAPE)) + + +#define SYN_POSIX_COMMON_OP \ + ( ONIG_SYN_OP_DOT_ANYCHAR | ONIG_SYN_OP_POSIX_BRACKET | \ + ONIG_SYN_OP_DECIMAL_BACKREF | \ + ONIG_SYN_OP_BRACKET_CC | ONIG_SYN_OP_ASTERISK_ZERO_INF | \ + ONIG_SYN_OP_LINE_ANCHOR | \ + ONIG_SYN_OP_ESC_CONTROL_CHARS ) + +#define SYN_GNU_REGEX_OP \ + ( ONIG_SYN_OP_DOT_ANYCHAR | ONIG_SYN_OP_BRACKET_CC | \ + ONIG_SYN_OP_POSIX_BRACKET | ONIG_SYN_OP_DECIMAL_BACKREF | \ + ONIG_SYN_OP_BRACE_INTERVAL | ONIG_SYN_OP_LPAREN_SUBEXP | \ + ONIG_SYN_OP_VBAR_ALT | \ + ONIG_SYN_OP_ASTERISK_ZERO_INF | ONIG_SYN_OP_PLUS_ONE_INF | \ + ONIG_SYN_OP_QMARK_ZERO_ONE | \ + ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR | ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR | \ + ONIG_SYN_OP_ESC_W_WORD | \ + ONIG_SYN_OP_ESC_B_WORD_BOUND | ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END | \ + ONIG_SYN_OP_ESC_S_WHITE_SPACE | ONIG_SYN_OP_ESC_D_DIGIT | \ + ONIG_SYN_OP_LINE_ANCHOR ) + +#define SYN_GNU_REGEX_BV \ + ( ONIG_SYN_CONTEXT_INDEP_ANCHORS | ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS | \ + ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS | ONIG_SYN_ALLOW_INVALID_INTERVAL | \ + ONIG_SYN_BACKSLASH_ESCAPE_IN_CC | ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC ) + + +#define NCCLASS_FLAGS(cc) ((cc)->flags) +#define NCCLASS_FLAG_SET(cc,flag) (NCCLASS_FLAGS(cc) |= (flag)) +#define NCCLASS_FLAG_CLEAR(cc,flag) (NCCLASS_FLAGS(cc) &= ~(flag)) +#define IS_NCCLASS_FLAG_ON(cc,flag) ((NCCLASS_FLAGS(cc) & (flag)) != 0) + +/* cclass node */ +#define FLAG_NCCLASS_NOT (1<<0) +#define FLAG_NCCLASS_SHARE (1<<1) + +#define NCCLASS_SET_NOT(nd) NCCLASS_FLAG_SET(nd, FLAG_NCCLASS_NOT) +#define NCCLASS_CLEAR_NOT(nd) NCCLASS_FLAG_CLEAR(nd, FLAG_NCCLASS_NOT) +#define IS_NCCLASS_NOT(nd) IS_NCCLASS_FLAG_ON(nd, FLAG_NCCLASS_NOT) + + +typedef struct { +#ifdef USE_DIRECT_THREADED_CODE + const void* opaddr; +#else + enum OpCode opcode; +#endif + union { + struct { + UChar s[16]; /* Now used first 7 bytes only. */ + } exact; + struct { + UChar* s; + LengthType n; /* number of chars */ + } exact_n; /* EXACTN, EXACTN_IC, EXACTMB2N, EXACTMB3N */ + struct { + UChar* s; + LengthType n; /* number of chars */ + LengthType len; /* char byte length */ + } exact_len_n; /* EXACTMBN */ + struct { + BitSetRef bsp; + } cclass; + struct { + void* mb; + } cclass_mb; + struct { + void* mb; /* mb must be same position with cclass_mb for match_at(). */ + BitSetRef bsp; + } cclass_mix; + struct { + UChar c; + } anychar_star_peek_next; + struct { + ModeType mode; + } word_boundary; /* OP_WORD_BOUNDARY, OP_NO_WORD_BOUNDARY, OP_WORD_BEGIN, OP_WORD_END */ + struct { + enum TextSegmentBoundaryType type; + int not; + } text_segment_boundary; + struct { + enum CheckPositionType type; + } check_position; + struct { + union { + MemNumType n1; /* num == 1 */ + MemNumType* ns; /* num > 1 */ + }; + int num; + int nest_level; + } backref_general; /* BACKREF_MULTI, BACKREF_MULTI_IC, BACKREF_WITH_LEVEL, BACKREF_CHECK, BACKREF_CHECK_WITH_LEVEL, */ + struct { + MemNumType n1; + } backref_n; /* BACKREF_N, BACKREF_N_IC */ + struct { + MemNumType num; + } memory_start; /* MEMORY_START, MEMORY_START_PUSH */ + struct { + MemNumType num; + } memory_end; /* MEMORY_END, MEMORY_END_REC, MEMORY_END_PUSH, MEMORY_END_PUSH_REC */ + struct { + RelAddrType addr; + } jump; + struct { + RelAddrType addr; + } push; + struct { + RelAddrType addr; + UChar c; + } push_or_jump_exact1; + struct { + RelAddrType addr; + UChar c; + } push_if_peek_next; + struct { + MemNumType id; + } pop_to_mark; + struct { + MemNumType id; + RelAddrType addr; + } repeat; /* REPEAT, REPEAT_NG */ + struct { + MemNumType id; + } repeat_inc; /* REPEAT_INC, REPEAT_INC_NG */ + struct { + MemNumType mem; + } empty_check_start; + struct { + MemNumType mem; + MemStatusType empty_status_mem; + } empty_check_end; /* EMPTY_CHECK_END, EMPTY_CHECK_END_MEMST, EMPTY_CHECK_END_MEMST_PUSH */ + struct { + RelAddrType addr; + } prec_read_not_start; + struct { + LengthType len; + } look_behind; + struct { + LengthType len; + RelAddrType addr; + } look_behind_not_start; + struct { + RelPositionType n; /* char relative position */ + } move; + struct { + LengthType initial; /* char length */ + LengthType remaining; /* char length */ + RelAddrType addr; + } step_back_start; + struct { + MemNumType id; + int restore_pos; /* flag: restore current string position */ + } cut_to_mark; + struct { + MemNumType id; + int save_pos; /* flag: save current string position */ + } mark; + struct { + SaveType type; + MemNumType id; + } save_val; + struct { + UpdateVarType type; + MemNumType id; + int clear; /* UPDATE_VAR_RIGHT_RANGE_FROM_S_STACK or UPDATE_VAR_RIGHT_RANGE_FROM_STACK */ + } update_var; + struct { + AbsAddrType addr; +#if defined(ONIG_DEBUG_MATCH_COUNTER) || defined(ONIG_DEBUG_CALL) + MemNumType called_mem; +#endif + } call; +#ifdef USE_CALLOUT + struct { + MemNumType num; + } callout_contents; + struct { + MemNumType num; + MemNumType id; + } callout_name; +#endif + }; +} Operation; + +typedef struct { + const UChar* pattern; + const UChar* pattern_end; +#ifdef USE_CALLOUT + void* tag_table; + int callout_num; + int callout_list_alloc; + CalloutListEntry* callout_list; /* index: callout num */ +#endif +} RegexExt; + +typedef struct { + int lower; + int upper; + union { + Operation* pcode; /* address of repeated body */ + int offset; + } u; +} RepeatRange; + +struct re_pattern_buffer { + /* common members of BBuf(bytes-buffer) */ + Operation* ops; +#ifdef USE_DIRECT_THREADED_CODE + enum OpCode* ocs; +#endif + Operation* ops_curr; + unsigned int ops_used; /* used space for ops */ + unsigned int ops_alloc; /* allocated space for ops */ + unsigned char* string_pool; + unsigned char* string_pool_end; + + int num_mem; /* used memory(...) num counted from 1 */ + int num_repeat; /* OP_REPEAT/OP_REPEAT_NG id-counter */ + int num_empty_check; /* OP_EMPTY_CHECK_START/END id counter */ + int num_call; /* number of subexp call */ + MemStatusType capture_history; /* (?@...) flag (1-31) */ + MemStatusType push_mem_start; /* need backtrack flag */ + MemStatusType push_mem_end; /* need backtrack flag */ + int stack_pop_level; + int repeat_range_alloc; + RepeatRange* repeat_range; + + OnigEncoding enc; + OnigOptionType options; + OnigSyntaxType* syntax; + OnigCaseFoldType case_fold_flag; + void* name_table; + + /* optimization info (string search, char-map and anchors) */ + int optimize; /* optimize flag */ + int threshold_len; /* search str-length for apply optimize */ + int anchor; /* BEGIN_BUF, BEGIN_POS, (SEMI_)END_BUF */ + OnigLen anc_dist_min; /* (SEMI_)END_BUF anchor distance */ + OnigLen anc_dist_max; /* (SEMI_)END_BUF anchor distance */ + int sub_anchor; /* start-anchor for exact or map */ + unsigned char *exact; + unsigned char *exact_end; + unsigned char map[CHAR_MAP_SIZE]; /* used as BMH skip or char-map */ + int map_offset; + OnigLen dist_min; /* min-distance of exact or map */ + OnigLen dist_max; /* max-distance of exact or map */ + RegexExt* extp; +}; + +#define COP(reg) ((reg)->ops_curr) +#define COP_CURR_OFFSET(reg) ((reg)->ops_used - 1) +#define COP_CURR_OFFSET_BYTES(reg, p) \ + ((int )((char* )(&((reg)->ops_curr->p)) - (char* )((reg)->ops))) + + +extern void onig_add_end_call(void (*func)(void)); +extern void onig_warning(const char* s); +extern UChar* onig_error_code_to_format P_((int code)); +extern void ONIG_VARIADIC_FUNC_ATTR ONIG_PRINTFLIKE(6, 7) onig_snprintf_with_pattern PV_((UChar buf[], int bufsize, OnigEncoding enc, UChar* pat, UChar* pat_end, const char *fmt, ...)); +extern int onig_compile P_((regex_t* reg, const UChar* pattern, const UChar* pattern_end, OnigErrorInfo* einfo)); +extern int onig_is_code_in_cc_len P_((int enclen, OnigCodePoint code, void* /* CClassNode* */ cc)); +extern RegexExt* onig_get_regex_ext(regex_t* reg); +extern int onig_ext_set_pattern(regex_t* reg, const UChar* pattern, const UChar* pattern_end); +extern int onig_positive_int_multiply(int x, int y); +extern hash_table_type onig_st_init_strend_table_with_size P_((int size)); +extern int onig_st_lookup_strend P_((hash_table_type table, const UChar* str_key, const UChar* end_key, hash_data_type *value)); +extern int onig_st_insert_strend P_((hash_table_type table, const UChar* str_key, const UChar* end_key, hash_data_type value)); + +#ifdef ONIG_DEBUG + +#ifdef ONIG_DEBUG_COMPILE +extern void onig_print_compiled_byte_code_list(FILE* f, regex_t* reg); +#endif + +#ifdef ONIG_DEBUG_STATISTICS +extern void onig_statistics_init P_((void)); +extern int onig_print_statistics P_((FILE* f)); +#endif + +#endif /* ONIG_DEBUG */ + +#ifdef USE_CALLOUT + +extern OnigCalloutType onig_get_callout_type_by_name_id(int name_id); +extern OnigCalloutFunc onig_get_callout_start_func_by_name_id(int id); +extern OnigCalloutFunc onig_get_callout_end_func_by_name_id(int id); +extern int onig_callout_tag_table_free(void* table); +extern void onig_free_reg_callout_list(int n, CalloutListEntry* list); +extern CalloutListEntry* onig_reg_callout_list_at(regex_t* reg, int num); +extern OnigCalloutFunc onig_get_callout_start_func(regex_t* reg, int callout_num); + +/* for definition of builtin callout */ +#define BC0_P(name, func) do {\ + int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ + id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ + (UChar* )(name), (UChar* )((name) + len),\ + ONIG_CALLOUT_IN_PROGRESS,\ + onig_builtin_ ## func, 0, 0, 0, 0, 0);\ + if (id < 0) return id;\ +} while(0) + +#define BC0_R(name, func) do {\ + int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ + id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ + (UChar* )(name), (UChar* )((name) + len),\ + ONIG_CALLOUT_IN_RETRACTION,\ + onig_builtin_ ## func, 0, 0, 0, 0, 0);\ + if (id < 0) return id;\ +} while(0) + +#define BC0_B(name, func) do {\ + int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ + id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ + (UChar* )(name), (UChar* )((name) + len),\ + ONIG_CALLOUT_IN_BOTH,\ + onig_builtin_ ## func, 0, 0, 0, 0, 0);\ + if (id < 0) return id;\ +} while(0) + +#define BC_P(name, func, na, ts) do {\ + int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ + id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ + (UChar* )(name), (UChar* )((name) + len),\ + ONIG_CALLOUT_IN_PROGRESS,\ + onig_builtin_ ## func, 0, (na), (ts), 0, 0); \ + if (id < 0) return id;\ +} while(0) + +#define BC_P_O(name, func, nts, ts, nopts, opts) do {\ + int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ + id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ + (UChar* )(name), (UChar* )((name) + len),\ + ONIG_CALLOUT_IN_PROGRESS,\ + onig_builtin_ ## func, 0, (nts), (ts), (nopts), (opts));\ + if (id < 0) return id;\ +} while(0) + +#define BC_B(name, func, na, ts) do {\ + int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ + id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ + (UChar* )(name), (UChar* )((name) + len),\ + ONIG_CALLOUT_IN_BOTH,\ + onig_builtin_ ## func, 0, (na), (ts), 0, 0);\ + if (id < 0) return id;\ +} while(0) + +#define BC_B_O(name, func, nts, ts, nopts, opts) do {\ + int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ + id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ + (UChar* )(name), (UChar* )((name) + len),\ + ONIG_CALLOUT_IN_BOTH,\ + onig_builtin_ ## func, 0, (nts), (ts), (nopts), (opts));\ + if (id < 0) return id;\ +} while(0) + +#endif /* USE_CALLOUT */ + + +typedef int (*ONIGENC_INIT_PROPERTY_LIST_FUNC_TYPE)(void); + +#endif /* REGINT_H */ diff --git a/thirdparty/oniguruma/regparse.c b/thirdparty/oniguruma/regparse.c new file mode 100644 index 000000000..55b43a7f0 --- /dev/null +++ b/thirdparty/oniguruma/regparse.c @@ -0,0 +1,9455 @@ +/********************************************************************** + regparse.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifdef DEBUG_ND_FREE +#ifndef NEED_TO_INCLUDE_STDIO +#define NEED_TO_INCLUDE_STDIO +#endif +#endif + +#include "regparse.h" +#include "st.h" + +#define INIT_TAG_NAMES_ALLOC_NUM 5 + +#define WARN_BUFSIZE 256 + +#define CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS + +#define IS_ALLOWED_CODE_IN_CALLOUT_NAME(c) \ + ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '_' /* || c == '!' */) +#define IS_ALLOWED_CODE_IN_CALLOUT_TAG_NAME(c) \ + ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '_') + +#define OPTON_SINGLELINE(option) ((option) & ONIG_OPTION_SINGLELINE) +#define OPTON_MULTILINE(option) ((option) & ONIG_OPTION_MULTILINE) +#define OPTON_IGNORECASE(option) ((option) & ONIG_OPTION_IGNORECASE) +#define OPTON_EXTEND(option) ((option) & ONIG_OPTION_EXTEND) +#define OPTON_WORD_ASCII(option) \ + ((option) & (ONIG_OPTION_WORD_IS_ASCII | ONIG_OPTION_POSIX_IS_ASCII)) +#define OPTON_DIGIT_ASCII(option) \ + ((option) & (ONIG_OPTION_DIGIT_IS_ASCII | ONIG_OPTION_POSIX_IS_ASCII)) +#define OPTON_SPACE_ASCII(option) \ + ((option) & (ONIG_OPTION_SPACE_IS_ASCII | ONIG_OPTION_POSIX_IS_ASCII)) +#define OPTON_POSIX_ASCII(option) ((option) & ONIG_OPTION_POSIX_IS_ASCII) +#define OPTON_TEXT_SEGMENT_WORD(option) ((option) & ONIG_OPTION_TEXT_SEGMENT_WORD) + +#define OPTON_IS_ASCII_MODE_CTYPE(ctype, options) \ + ((ctype) >= 0 && \ + (((ctype) < ONIGENC_CTYPE_ASCII && OPTON_POSIX_ASCII(options)) ||\ + ((ctype) == ONIGENC_CTYPE_WORD && OPTON_WORD_ASCII(options)) ||\ + ((ctype) == ONIGENC_CTYPE_DIGIT && OPTON_DIGIT_ASCII(options)) ||\ + ((ctype) == ONIGENC_CTYPE_SPACE && OPTON_SPACE_ASCII(options)))) + + +OnigSyntaxType OnigSyntaxOniguruma = { + (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY | + ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 | + ONIG_SYN_OP_ESC_X_BRACE_HEX8 | ONIG_SYN_OP_ESC_O_BRACE_OCTAL | + ONIG_SYN_OP_ESC_CONTROL_CHARS | + ONIG_SYN_OP_ESC_C_CONTROL ) + & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END ) + , ( ONIG_SYN_OP2_QMARK_GROUP_EFFECT | + ONIG_SYN_OP2_OPTION_ONIGURUMA | + ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP | ONIG_SYN_OP2_ESC_K_NAMED_BACKREF | + ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE | + ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP | + ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS | + ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME | + ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT | + ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE | + ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT | + ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP | + ONIG_SYN_OP2_ESC_G_SUBEXP_CALL | + ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY | + ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT | + ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT | + ONIG_SYN_OP2_CCLASS_SET_OP | ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL | + ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META | ONIG_SYN_OP2_ESC_V_VTAB | + ONIG_SYN_OP2_ESC_H_XDIGIT | ONIG_SYN_OP2_ESC_U_HEX4 ) + , ( SYN_GNU_REGEX_BV | + ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV | + ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND | + ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND | + ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP | + ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME | + ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY | + ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC | + ONIG_SYN_WARN_CC_OP_NOT_ESCAPED | +#ifdef USE_WHOLE_OPTIONS + ONIG_SYN_WHOLE_OPTIONS | +#endif + ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT + ) + , ONIG_OPTION_NONE + , + { + (OnigCodePoint )'\\' /* esc */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ + } +}; + +OnigSyntaxType OnigSyntaxRuby = { + (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY | + ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 | + ONIG_SYN_OP_ESC_X_BRACE_HEX8 | ONIG_SYN_OP_ESC_O_BRACE_OCTAL | + ONIG_SYN_OP_ESC_CONTROL_CHARS | + ONIG_SYN_OP_ESC_C_CONTROL ) + & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END ) + , ( ONIG_SYN_OP2_QMARK_GROUP_EFFECT | + ONIG_SYN_OP2_OPTION_RUBY | + ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP | ONIG_SYN_OP2_ESC_K_NAMED_BACKREF | + ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE | + ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP | + ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT | + ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE | + ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP | + ONIG_SYN_OP2_ESC_G_SUBEXP_CALL | + ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY | + ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT | + ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT | + ONIG_SYN_OP2_CCLASS_SET_OP | ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL | + ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META | ONIG_SYN_OP2_ESC_V_VTAB | + ONIG_SYN_OP2_ESC_H_XDIGIT | ONIG_SYN_OP2_ESC_U_HEX4 ) + , ( SYN_GNU_REGEX_BV | + ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV | + ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND | + ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP | + ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME | + ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY | + ONIG_SYN_WARN_CC_OP_NOT_ESCAPED | + ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT ) + , ONIG_OPTION_NONE + , + { + (OnigCodePoint )'\\' /* esc */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ + , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ + } +}; + +OnigSyntaxType* OnigDefaultSyntax = ONIG_SYNTAX_ONIGURUMA; + + +#define BB_INIT(buf,size) bbuf_init((BBuf* )(buf), (size)) + +#define BB_EXPAND(buf,low) do{\ + do { (buf)->alloc *= 2; } while ((buf)->alloc < (unsigned int )low);\ + (buf)->p = (UChar* )xrealloc((buf)->p, (buf)->alloc);\ + if (IS_NULL((buf)->p)) return(ONIGERR_MEMORY);\ +} while (0) + +#define BB_ENSURE_SIZE(buf,size) do{\ + unsigned int new_alloc = (buf)->alloc;\ + while (new_alloc < (unsigned int )(size)) { new_alloc *= 2; }\ + if ((buf)->alloc != new_alloc) {\ + (buf)->p = (UChar* )xrealloc((buf)->p, new_alloc);\ + if (IS_NULL((buf)->p)) return(ONIGERR_MEMORY);\ + (buf)->alloc = new_alloc;\ + }\ +} while (0) + +#define BB_WRITE(buf,pos,bytes,n) do{\ + int used = (pos) + (n);\ + if ((buf)->alloc < (unsigned int )used) BB_EXPAND((buf),used);\ + xmemcpy((buf)->p + (pos), (bytes), (n));\ + if ((buf)->used < (unsigned int )used) (buf)->used = used;\ +} while (0) + +#define BB_WRITE1(buf,pos,byte) do{\ + int used = (pos) + 1;\ + if ((buf)->alloc < (unsigned int )used) BB_EXPAND((buf),used);\ + (buf)->p[(pos)] = (byte);\ + if ((buf)->used < (unsigned int )used) (buf)->used = used;\ +} while (0) + +#define BB_ADD(buf,bytes,n) BB_WRITE((buf),(buf)->used,(bytes),(n)) +#define BB_ADD1(buf,byte) BB_WRITE1((buf),(buf)->used,(byte)) +#define BB_GET_ADD_ADDRESS(buf) ((buf)->p + (buf)->used) +#define BB_GET_OFFSET_POS(buf) ((buf)->used) + +/* from < to */ +#define BB_MOVE_RIGHT(buf,from,to,n) do {\ + if ((unsigned int )((to)+(n)) > (buf)->alloc) BB_EXPAND((buf),(to) + (n));\ + xmemmove((buf)->p + (to), (buf)->p + (from), (n));\ + if ((unsigned int )((to)+(n)) > (buf)->used) (buf)->used = (to) + (n);\ +} while (0) + +/* from > to */ +#define BB_MOVE_LEFT(buf,from,to,n) do {\ + xmemmove((buf)->p + (to), (buf)->p + (from), (n));\ +} while (0) + +/* from > to */ +#define BB_MOVE_LEFT_REDUCE(buf,from,to) do {\ + xmemmove((buf)->p + (to), (buf)->p + (from), (buf)->used - (from));\ + (buf)->used -= (from - to);\ +} while (0) + +#define BB_INSERT(buf,pos,bytes,n) do {\ + if (pos >= (buf)->used) {\ + BB_WRITE(buf,pos,bytes,n);\ + }\ + else {\ + BB_MOVE_RIGHT((buf),(pos),(pos) + (n),((buf)->used - (pos)));\ + xmemcpy((buf)->p + (pos), (bytes), (n));\ + }\ +} while (0) + +#define BB_GET_BYTE(buf, pos) (buf)->p[(pos)] + + +typedef enum { + CS_VALUE, + CS_RANGE, + CS_COMPLETE, + CS_START +} CSTATE; + +typedef enum { + CV_UNDEF, + CV_SB, + CV_MB, + CV_CPROP +} CVAL; + +extern void onig_null_warn(const char* s ARG_UNUSED) { } + +#ifdef DEFAULT_WARN_FUNCTION +static OnigWarnFunc onig_warn = (OnigWarnFunc )DEFAULT_WARN_FUNCTION; +#else +static OnigWarnFunc onig_warn = onig_null_warn; +#endif + +#ifdef DEFAULT_VERB_WARN_FUNCTION +static OnigWarnFunc onig_verb_warn = (OnigWarnFunc )DEFAULT_VERB_WARN_FUNCTION; +#else +static OnigWarnFunc onig_verb_warn = onig_null_warn; +#endif + +extern void onig_set_warn_func(OnigWarnFunc f) +{ + onig_warn = f; +} + +extern void onig_set_verb_warn_func(OnigWarnFunc f) +{ + onig_verb_warn = f; +} + +extern void +onig_warning(const char* s) +{ + if (onig_warn == onig_null_warn) return ; + + (*onig_warn)(s); +} + +#define DEFAULT_MAX_CAPTURE_NUM 32767 + +static int MaxCaptureNum = DEFAULT_MAX_CAPTURE_NUM; + +extern int +onig_set_capture_num_limit(int num) +{ + if (num < 0) return -1; + + MaxCaptureNum = num; + return 0; +} + +static unsigned int ParseDepthLimit = DEFAULT_PARSE_DEPTH_LIMIT; + +extern unsigned int +onig_get_parse_depth_limit(void) +{ + return ParseDepthLimit; +} + +extern int +onig_set_parse_depth_limit(unsigned int depth) +{ + if (depth == 0) + ParseDepthLimit = DEFAULT_PARSE_DEPTH_LIMIT; + else + ParseDepthLimit = depth; + return 0; +} + +#ifdef ONIG_DEBUG_PARSE +#define INC_PARSE_DEPTH(d) do {\ + (d)++;\ + if (env->max_parse_depth < (d)) env->max_parse_depth = d;\ + if ((d) > ParseDepthLimit) \ + return ONIGERR_PARSE_DEPTH_LIMIT_OVER;\ +} while (0) +#else +#define INC_PARSE_DEPTH(d) do {\ + (d)++;\ + if ((d) > ParseDepthLimit) \ + return ONIGERR_PARSE_DEPTH_LIMIT_OVER;\ +} while (0) +#endif + +#define DEC_PARSE_DEPTH(d) (d)-- + + +static int +bbuf_init(BBuf* buf, int size) +{ + if (size <= 0) { + size = 0; + buf->p = NULL; + } + else { + buf->p = (UChar* )xmalloc(size); + if (IS_NULL(buf->p)) return(ONIGERR_MEMORY); + } + + buf->alloc = size; + buf->used = 0; + return 0; +} + +static void +bbuf_free(BBuf* bbuf) +{ + if (IS_NOT_NULL(bbuf)) { + if (IS_NOT_NULL(bbuf->p)) xfree(bbuf->p); + xfree(bbuf); + } +} + +static int +bbuf_clone(BBuf** rto, BBuf* from) +{ + int r; + BBuf *to; + + *rto = to = (BBuf* )xmalloc(sizeof(BBuf)); + CHECK_NULL_RETURN_MEMERR(to); + r = BB_INIT(to, from->alloc); + if (r != 0) { + bbuf_free(to); + *rto = 0; + return r; + } + to->used = from->used; + xmemcpy(to->p, from->p, from->used); + return 0; +} + +static int +backref_rel_to_abs(int rel_no, ParseEnv* env) +{ + if (rel_no > 0) { + if (rel_no > ONIG_INT_MAX - env->num_mem) + return ONIGERR_INVALID_BACKREF; + return env->num_mem + rel_no; + } + else { + return env->num_mem + 1 + rel_no; + } +} + +#define OPTION_ON(v,f) ((v) |= (f)) +#define OPTION_OFF(v,f) ((v) &= ~(f)) + +#define OPTION_NEGATE(v,f,negative) (negative) ? ((v) &= ~(f)) : ((v) |= (f)) + +#define MBCODE_START_POS(enc) \ + (OnigCodePoint )(ONIGENC_MBC_MINLEN(enc) > 1 ? 0 : 0x80) + +#define SET_ALL_MULTI_BYTE_RANGE(enc, pbuf) \ + add_code_range_to_buf(pbuf, MBCODE_START_POS(enc), ~((OnigCodePoint )0)) + +#define ADD_ALL_MULTI_BYTE_RANGE(enc, mbuf) do {\ + if (! ONIGENC_IS_SINGLEBYTE(enc)) {\ + r = SET_ALL_MULTI_BYTE_RANGE(enc, &(mbuf));\ + if (r != 0) return r;\ + }\ +} while (0) + + +#define BITSET_IS_EMPTY(bs,empty) do {\ + int i;\ + empty = 1;\ + for (i = 0; i < (int )BITSET_REAL_SIZE; i++) {\ + if ((bs)[i] != 0) {\ + empty = 0; break;\ + }\ + }\ +} while (0) + +static void +bitset_set_range(BitSetRef bs, int from, int to) +{ + int i; + for (i = from; i <= to && i < SINGLE_BYTE_SIZE; i++) { + BITSET_SET_BIT(bs, i); + } +} + +static void +bitset_invert(BitSetRef bs) +{ + int i; + for (i = 0; i < (int )BITSET_REAL_SIZE; i++) { bs[i] = ~(bs[i]); } +} + +static void +bitset_invert_to(BitSetRef from, BitSetRef to) +{ + int i; + for (i = 0; i < (int )BITSET_REAL_SIZE; i++) { to[i] = ~(from[i]); } +} + +static void +bitset_and(BitSetRef dest, BitSetRef bs) +{ + int i; + for (i = 0; i < (int )BITSET_REAL_SIZE; i++) { dest[i] &= bs[i]; } +} + +static void +bitset_or(BitSetRef dest, BitSetRef bs) +{ + int i; + for (i = 0; i < (int )BITSET_REAL_SIZE; i++) { dest[i] |= bs[i]; } +} + +static void +bitset_copy(BitSetRef dest, BitSetRef bs) +{ + int i; + for (i = 0; i < (int )BITSET_REAL_SIZE; i++) { dest[i] = bs[i]; } +} + +extern int +onig_strncmp(const UChar* s1, const UChar* s2, int n) +{ + int x; + + while (n-- > 0) { + x = *s2++ - *s1++; + if (x) return x; + } + return 0; +} + +extern void +onig_strcpy(UChar* dest, const UChar* src, const UChar* end) +{ + int len = (int )(end - src); + if (len > 0) { + xmemcpy(dest, src, len); + dest[len] = (UChar )0; + } +} + +/* scan pattern methods */ +#define PEND_VALUE 0 + +#define PFETCH_READY UChar* pfetch_prev +#define PEND (p < end ? 0 : 1) +#define PUNFETCH p = pfetch_prev +#define PPREV pfetch_prev +#define PINC do { \ + pfetch_prev = p; \ + p += ONIGENC_MBC_ENC_LEN(enc, p); \ +} while (0) +#define PFETCH(c) do { \ + c = ONIGENC_MBC_TO_CODE(enc, p, end); \ + pfetch_prev = p; \ + p += ONIGENC_MBC_ENC_LEN(enc, p); \ +} while (0) + +#define PINC_S do { \ + p += ONIGENC_MBC_ENC_LEN(enc, p); \ +} while (0) +#define PFETCH_S(c) do { \ + c = ONIGENC_MBC_TO_CODE(enc, p, end); \ + p += ONIGENC_MBC_ENC_LEN(enc, p); \ +} while (0) + +#define PPEEK (p < end ? ONIGENC_MBC_TO_CODE(enc, p, end) : PEND_VALUE) +#define PPEEK_IS(c) (PPEEK == (OnigCodePoint )c) + +static UChar* +strcat_capa(UChar* dest, UChar* dest_end, const UChar* src, const UChar* src_end, + int capa) +{ + UChar* r; + ptrdiff_t dest_delta = dest_end - dest; + + if (dest) + r = (UChar* )xrealloc(dest, capa + 1); + else + r = (UChar* )xmalloc(capa + 1); + + CHECK_NULL_RETURN(r); + onig_strcpy(r + dest_delta, src, src_end); + return r; +} + +/* dest on static area */ +static UChar* +strcat_capa_from_static(UChar* dest, UChar* dest_end, + const UChar* src, const UChar* src_end, int capa) +{ + UChar* r; + + r = (UChar* )xmalloc(capa + 1); + CHECK_NULL_RETURN(r); + onig_strcpy(r, dest, dest_end); + onig_strcpy(r + (dest_end - dest), src, src_end); + return r; +} + + +#ifdef USE_ST_LIBRARY + +typedef struct { + UChar* s; + UChar* end; +} st_str_end_key; + +static int +str_end_cmp(st_data_t ax, st_data_t ay) +{ + st_str_end_key* x = (st_str_end_key* )ax; + st_str_end_key* y = (st_str_end_key* )ay; + UChar *p, *q; + int c; + + if ((x->end - x->s) != (y->end - y->s)) + return 1; + + p = x->s; + q = y->s; + while (p < x->end) { + c = (int )*p - (int )*q; + if (c != 0) return c; + + p++; q++; + } + + return 0; +} + +static int +str_end_hash(st_data_t ax) +{ + st_str_end_key* x = (st_str_end_key* )ax; + UChar *p; + unsigned val = 0; + + p = x->s; + while (p < x->end) { + val = val * 997 + (unsigned )*p++; + } + + return (int) (val + (val >> 5)); +} + +extern hash_table_type +onig_st_init_strend_table_with_size(int size) +{ + static struct st_hash_type hashType = { + str_end_cmp, + str_end_hash, + }; + + return (hash_table_type )onig_st_init_table_with_size(&hashType, size); +} + +extern int +onig_st_lookup_strend(hash_table_type table, const UChar* str_key, + const UChar* end_key, hash_data_type *value) +{ + st_str_end_key key; + + key.s = (UChar* )str_key; + key.end = (UChar* )end_key; + + return onig_st_lookup(table, (st_data_t )(&key), value); +} + +extern int +onig_st_insert_strend(hash_table_type table, const UChar* str_key, + const UChar* end_key, hash_data_type value) +{ + st_str_end_key* key; + int result; + + key = (st_str_end_key* )xmalloc(sizeof(st_str_end_key)); + CHECK_NULL_RETURN_MEMERR(key); + + key->s = (UChar* )str_key; + key->end = (UChar* )end_key; + result = onig_st_insert(table, (st_data_t )key, value); + if (result) { + xfree(key); + } + return result; +} + + +#ifdef USE_CALLOUT + +typedef struct { + OnigEncoding enc; + int type; /* callout type: single or not */ + UChar* s; + UChar* end; +} st_callout_name_key; + +static int +callout_name_table_cmp(st_data_t ax, st_data_t ay) +{ + st_callout_name_key* x = (st_callout_name_key* )ax; + st_callout_name_key* y = (st_callout_name_key* )ay; + UChar *p, *q; + int c; + + if (x->enc != y->enc) return 1; + if (x->type != y->type) return 1; + if ((x->end - x->s) != (y->end - y->s)) + return 1; + + p = x->s; + q = y->s; + while (p < x->end) { + c = (int )*p - (int )*q; + if (c != 0) return c; + + p++; q++; + } + + return 0; +} + +static int +callout_name_table_hash(st_data_t ax) +{ + st_callout_name_key* x = (st_callout_name_key* )ax; + UChar *p; + unsigned int val = 0; + + p = x->s; + while (p < x->end) { + val = val * 997 + (unsigned int )*p++; + } + + /* use intptr_t for escape warning in Windows */ + return (int )(val + (val >> 5) + ((intptr_t )x->enc & 0xffff) + x->type); +} + +extern hash_table_type +onig_st_init_callout_name_table_with_size(int size) +{ + static struct st_hash_type hashType = { + callout_name_table_cmp, + callout_name_table_hash, + }; + + return (hash_table_type )onig_st_init_table_with_size(&hashType, size); +} + +extern int +onig_st_lookup_callout_name_table(hash_table_type table, + OnigEncoding enc, + int type, + const UChar* str_key, + const UChar* end_key, + hash_data_type *value) +{ + st_callout_name_key key; + + key.enc = enc; + key.type = type; + key.s = (UChar* )str_key; + key.end = (UChar* )end_key; + + return onig_st_lookup(table, (st_data_t )(&key), value); +} + +static int +st_insert_callout_name_table(hash_table_type table, + OnigEncoding enc, int type, + UChar* str_key, UChar* end_key, + hash_data_type value) +{ + st_callout_name_key* key; + int result; + + key = (st_callout_name_key* )xmalloc(sizeof(st_callout_name_key)); + CHECK_NULL_RETURN_MEMERR(key); + + /* key->s: don't duplicate, because str_key is duped in callout_name_entry() */ + key->enc = enc; + key->type = type; + key->s = str_key; + key->end = end_key; + result = onig_st_insert(table, (st_data_t )key, value); + if (result) { + xfree(key); + } + return result; +} +#endif + +#endif /* USE_ST_LIBRARY */ + + +#define INIT_NAME_BACKREFS_ALLOC_NUM 8 + +typedef struct { + UChar* name; + int name_len; /* byte length */ + int back_num; /* number of backrefs */ + int back_alloc; + int back_ref1; + int* back_refs; +} NameEntry; + +#ifdef USE_ST_LIBRARY + +#define INIT_NAMES_ALLOC_NUM 5 + +typedef st_table NameTable; +typedef st_data_t HashDataType; /* 1.6 st.h doesn't define st_data_t type */ + +#define NAMEBUF_SIZE 24 +#define NAMEBUF_SIZE_1 25 + +#ifdef ONIG_DEBUG +static int +i_print_name_entry(st_data_t akey, st_data_t ae, st_data_t arg) +{ + int i; + FILE* fp; + NameEntry* e; + + e = (NameEntry* )ae; + fp = (FILE* )arg; + + fprintf(fp, "%s: ", e->name); + if (e->back_num == 0) + fputs("-", fp); + else if (e->back_num == 1) + fprintf(fp, "%d", e->back_ref1); + else { + for (i = 0; i < e->back_num; i++) { + if (i > 0) fprintf(fp, ", "); + fprintf(fp, "%d", e->back_refs[i]); + } + } + fputs("\n", fp); + return ST_CONTINUE; +} + +extern int +onig_print_names(FILE* fp, regex_t* reg) +{ + NameTable* t = (NameTable* )reg->name_table; + + if (IS_NOT_NULL(t)) { + fprintf(fp, "name table\n"); + onig_st_foreach(t, i_print_name_entry, (HashDataType )fp); + fputs("\n", fp); + } + return 0; +} +#endif /* ONIG_DEBUG */ + +static int +i_free_name_entry(st_data_t akey, st_data_t ae, st_data_t arg ARG_UNUSED) +{ + UChar* key; + NameEntry* e; + + key = (UChar* )akey; + e = (NameEntry* )ae; + xfree(e->name); + if (IS_NOT_NULL(e->back_refs)) xfree(e->back_refs); + xfree(key); + xfree(e); + return ST_DELETE; +} + +static int +names_clear(regex_t* reg) +{ + NameTable* t = (NameTable* )reg->name_table; + + if (IS_NOT_NULL(t)) { + onig_st_foreach(t, i_free_name_entry, 0); + } + return 0; +} + +extern int +onig_names_free(regex_t* reg) +{ + int r; + NameTable* t; + + r = names_clear(reg); + if (r != 0) return r; + + t = (NameTable* )reg->name_table; + if (IS_NOT_NULL(t)) onig_st_free_table(t); + reg->name_table = (void* )NULL; + return 0; +} + +static NameEntry* +name_find(regex_t* reg, const UChar* name, const UChar* name_end) +{ + NameEntry* e; + NameTable* t = (NameTable* )reg->name_table; + + e = (NameEntry* )NULL; + if (IS_NOT_NULL(t)) { + onig_st_lookup_strend(t, name, name_end, (HashDataType* )((void* )(&e))); + } + return e; +} + +typedef struct { + int (*func)(const UChar*, const UChar*,int,int*,regex_t*,void*); + regex_t* reg; + void* arg; + int ret; + OnigEncoding enc; +} INamesArg; + +static int +i_names(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t aarg) +{ + NameEntry* e; + INamesArg* arg; + + e = (NameEntry* )ae; + arg = (INamesArg* )aarg; + + int r = (*(arg->func))(e->name, + e->name + e->name_len, + e->back_num, + (e->back_num > 1 ? e->back_refs : &(e->back_ref1)), + arg->reg, arg->arg); + if (r != 0) { + arg->ret = r; + return ST_STOP; + } + return ST_CONTINUE; +} + +extern int +onig_foreach_name(regex_t* reg, + int (*func)(const UChar*, const UChar*,int,int*,regex_t*,void*), void* arg) +{ + INamesArg narg; + NameTable* t = (NameTable* )reg->name_table; + + narg.ret = 0; + if (IS_NOT_NULL(t)) { + narg.func = func; + narg.reg = reg; + narg.arg = arg; + narg.enc = reg->enc; /* should be pattern encoding. */ + onig_st_foreach(t, i_names, (HashDataType )&narg); + } + return narg.ret; +} + +static int +i_renumber_name(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t amap) +{ + int i; + NameEntry* e; + GroupNumMap* map; + + e = (NameEntry* )ae; + map = (GroupNumMap* )amap; + + if (e->back_num > 1) { + for (i = 0; i < e->back_num; i++) { + e->back_refs[i] = map[e->back_refs[i]].new_val; + } + } + else if (e->back_num == 1) { + e->back_ref1 = map[e->back_ref1].new_val; + } + + return ST_CONTINUE; +} + +extern int +onig_renumber_name_table(regex_t* reg, GroupNumMap* map) +{ + NameTable* t = (NameTable* )reg->name_table; + + if (IS_NOT_NULL(t)) { + onig_st_foreach(t, i_renumber_name, (HashDataType )map); + } + return 0; +} + + +extern int +onig_number_of_names(regex_t* reg) +{ + NameTable* t = (NameTable* )reg->name_table; + + if (IS_NOT_NULL(t)) + return t->num_entries; + else + return 0; +} + +#else /* USE_ST_LIBRARY */ + +#define INIT_NAMES_ALLOC_NUM 8 + +typedef struct { + NameEntry* e; + int num; + int alloc; +} NameTable; + +#ifdef ONIG_DEBUG +extern int +onig_print_names(FILE* fp, regex_t* reg) +{ + int i, j; + NameEntry* e; + NameTable* t = (NameTable* )reg->name_table; + + if (IS_NOT_NULL(t) && t->num > 0) { + fprintf(fp, "name table\n"); + for (i = 0; i < t->num; i++) { + e = &(t->e[i]); + fprintf(fp, "%s: ", e->name); + if (e->back_num == 0) { + fputs("-", fp); + } + else if (e->back_num == 1) { + fprintf(fp, "%d", e->back_ref1); + } + else { + for (j = 0; j < e->back_num; j++) { + if (j > 0) fprintf(fp, ", "); + fprintf(fp, "%d", e->back_refs[j]); + } + } + fputs("\n", fp); + } + fputs("\n", fp); + } + return 0; +} +#endif + +static int +names_clear(regex_t* reg) +{ + int i; + NameEntry* e; + NameTable* t = (NameTable* )reg->name_table; + + if (IS_NOT_NULL(t)) { + for (i = 0; i < t->num; i++) { + e = &(t->e[i]); + if (IS_NOT_NULL(e->name)) { + xfree(e->name); + e->name = NULL; + e->name_len = 0; + e->back_num = 0; + e->back_alloc = 0; + if (IS_NOT_NULL(e->back_refs)) xfree(e->back_refs); + e->back_refs = (int* )NULL; + } + } + if (IS_NOT_NULL(t->e)) { + xfree(t->e); + t->e = NULL; + } + t->num = 0; + } + return 0; +} + +extern int +onig_names_free(regex_t* reg) +{ + int r; + NameTable* t; + + r = names_clear(reg); + if (r != 0) return r; + + t = (NameTable* )reg->name_table; + if (IS_NOT_NULL(t)) xfree(t); + reg->name_table = NULL; + return 0; +} + +static NameEntry* +name_find(regex_t* reg, UChar* name, UChar* name_end) +{ + int i, len; + NameEntry* e; + NameTable* t = (NameTable* )reg->name_table; + + if (IS_NOT_NULL(t)) { + len = name_end - name; + for (i = 0; i < t->num; i++) { + e = &(t->e[i]); + if (len == e->name_len && onig_strncmp(name, e->name, len) == 0) + return e; + } + } + return (NameEntry* )NULL; +} + +extern int +onig_foreach_name(regex_t* reg, + int (*func)(const UChar*, const UChar*,int,int*,regex_t*,void*), void* arg) +{ + int i, r; + NameEntry* e; + NameTable* t = (NameTable* )reg->name_table; + + if (IS_NOT_NULL(t)) { + for (i = 0; i < t->num; i++) { + e = &(t->e[i]); + r = (*func)(e->name, e->name + e->name_len, e->back_num, + (e->back_num > 1 ? e->back_refs : &(e->back_ref1)), + reg, arg); + if (r != 0) return r; + } + } + return 0; +} + +extern int +onig_number_of_names(regex_t* reg) +{ + NameTable* t = (NameTable* )reg->name_table; + + if (IS_NOT_NULL(t)) + return t->num; + else + return 0; +} + +#endif /* else USE_ST_LIBRARY */ + +static int +name_add(regex_t* reg, UChar* name, UChar* name_end, int backref, ParseEnv* env) +{ + int r; + int alloc; + NameEntry* e; + NameTable* t = (NameTable* )reg->name_table; + + if (name_end - name <= 0) + return ONIGERR_EMPTY_GROUP_NAME; + + e = name_find(reg, name, name_end); + if (IS_NULL(e)) { +#ifdef USE_ST_LIBRARY + if (IS_NULL(t)) { + t = onig_st_init_strend_table_with_size(INIT_NAMES_ALLOC_NUM); + CHECK_NULL_RETURN_MEMERR(t); + reg->name_table = (void* )t; + } + e = (NameEntry* )xmalloc(sizeof(NameEntry)); + CHECK_NULL_RETURN_MEMERR(e); + + e->name = onigenc_strdup(reg->enc, name, name_end); + if (IS_NULL(e->name)) { + xfree(e); return ONIGERR_MEMORY; + } + r = onig_st_insert_strend(t, e->name, (e->name + (name_end - name)), + (HashDataType )e); + if (r < 0) return r; + + e->name_len = (int )(name_end - name); + e->back_num = 0; + e->back_alloc = 0; + e->back_refs = (int* )NULL; + +#else + + if (IS_NULL(t)) { + alloc = INIT_NAMES_ALLOC_NUM; + t = (NameTable* )xmalloc(sizeof(NameTable)); + CHECK_NULL_RETURN_MEMERR(t); + t->e = NULL; + t->alloc = 0; + t->num = 0; + + t->e = (NameEntry* )xmalloc(sizeof(NameEntry) * alloc); + if (IS_NULL(t->e)) { + xfree(t); + return ONIGERR_MEMORY; + } + t->alloc = alloc; + reg->name_table = t; + goto clear; + } + else if (t->num == t->alloc) { + int i; + + alloc = t->alloc * 2; + t->e = (NameEntry* )xrealloc(t->e, sizeof(NameEntry) * alloc); + CHECK_NULL_RETURN_MEMERR(t->e); + t->alloc = alloc; + + clear: + for (i = t->num; i < t->alloc; i++) { + t->e[i].name = NULL; + t->e[i].name_len = 0; + t->e[i].back_num = 0; + t->e[i].back_alloc = 0; + t->e[i].back_refs = (int* )NULL; + } + } + e = &(t->e[t->num]); + t->num++; + e->name = onigenc_strdup(reg->enc, name, name_end); + if (IS_NULL(e->name)) return ONIGERR_MEMORY; + e->name_len = name_end - name; +#endif + } + + if (e->back_num >= 1 && + ! IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME)) { + onig_scan_env_set_error_string(env, ONIGERR_MULTIPLEX_DEFINED_NAME, + name, name_end); + return ONIGERR_MULTIPLEX_DEFINED_NAME; + } + + e->back_num++; + if (e->back_num == 1) { + e->back_ref1 = backref; + } + else { + if (e->back_num == 2) { + alloc = INIT_NAME_BACKREFS_ALLOC_NUM; + e->back_refs = (int* )xmalloc(sizeof(int) * alloc); + CHECK_NULL_RETURN_MEMERR(e->back_refs); + e->back_alloc = alloc; + e->back_refs[0] = e->back_ref1; + e->back_refs[1] = backref; + } + else { + if (e->back_num > e->back_alloc) { + alloc = e->back_alloc * 2; + e->back_refs = (int* )xrealloc(e->back_refs, sizeof(int) * alloc); + CHECK_NULL_RETURN_MEMERR(e->back_refs); + e->back_alloc = alloc; + } + e->back_refs[e->back_num - 1] = backref; + } + } + + return 0; +} + +extern int +onig_name_to_group_numbers(regex_t* reg, const UChar* name, + const UChar* name_end, int** nums) +{ + NameEntry* e = name_find(reg, name, name_end); + + if (IS_NULL(e)) return ONIGERR_UNDEFINED_NAME_REFERENCE; + + switch (e->back_num) { + case 0: + break; + case 1: + *nums = &(e->back_ref1); + break; + default: + *nums = e->back_refs; + break; + } + return e->back_num; +} + +static int +name_to_group_numbers(ParseEnv* env, const UChar* name, const UChar* name_end, + int** nums) +{ + regex_t* reg; + NameEntry* e; + + reg = env->reg; + e = name_find(reg, name, name_end); + + if (IS_NULL(e)) { + onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE, + (UChar* )name, (UChar* )name_end); + return ONIGERR_UNDEFINED_NAME_REFERENCE; + } + + switch (e->back_num) { + case 0: + break; + case 1: + *nums = &(e->back_ref1); + break; + default: + *nums = e->back_refs; + break; + } + return e->back_num; +} + +extern int +onig_name_to_backref_number(regex_t* reg, const UChar* name, + const UChar* name_end, OnigRegion *region) +{ + int i, n, *nums; + + n = onig_name_to_group_numbers(reg, name, name_end, &nums); + if (n < 0) + return n; + else if (n == 0) + return ONIGERR_PARSER_BUG; + else if (n == 1) + return nums[0]; + else { + if (IS_NOT_NULL(region)) { + for (i = n - 1; i >= 0; i--) { + if (region->beg[nums[i]] != ONIG_REGION_NOTPOS) + return nums[i]; + } + } + return nums[n - 1]; + } +} + +extern int +onig_noname_group_capture_is_active(regex_t* reg) +{ + if (OPTON_DONT_CAPTURE_GROUP(reg->options)) + return 0; + + if (onig_number_of_names(reg) > 0 && + IS_SYNTAX_BV(reg->syntax, ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP) && + ! OPTON_CAPTURE_GROUP(reg->options)) { + return 0; + } + + return 1; +} + +#ifdef USE_CALLOUT + +typedef struct { + OnigCalloutType type; + int in; + OnigCalloutFunc start_func; + OnigCalloutFunc end_func; + int arg_num; + int opt_arg_num; + unsigned int arg_types[ONIG_CALLOUT_MAX_ARGS_NUM]; + OnigValue opt_defaults[ONIG_CALLOUT_MAX_ARGS_NUM]; + UChar* name; /* reference to GlobalCalloutNameTable entry: e->name */ +} CalloutNameListEntry; + +typedef struct { + int n; + int alloc; + CalloutNameListEntry* v; +} CalloutNameListType; + +static CalloutNameListType* GlobalCalloutNameList; + +static int +make_callout_func_list(CalloutNameListType** rs, int init_size) +{ + CalloutNameListType* s; + CalloutNameListEntry* v; + + *rs = 0; + + s = xmalloc(sizeof(*s)); + if (IS_NULL(s)) return ONIGERR_MEMORY; + + v = (CalloutNameListEntry* )xmalloc(sizeof(CalloutNameListEntry) * init_size); + if (IS_NULL(v)) { + xfree(s); + return ONIGERR_MEMORY; + } + + s->n = 0; + s->alloc = init_size; + s->v = v; + + *rs = s; + return ONIG_NORMAL; +} + +static void +free_callout_func_list(CalloutNameListType* s) +{ + if (IS_NOT_NULL(s)) { + if (IS_NOT_NULL(s->v)) { + int i, j; + + for (i = 0; i < s->n; i++) { + CalloutNameListEntry* e = s->v + i; + for (j = e->arg_num - e->opt_arg_num; j < e->arg_num; j++) { + if (e->arg_types[j] == ONIG_TYPE_STRING) { + UChar* p = e->opt_defaults[j].s.start; + if (IS_NOT_NULL(p)) xfree(p); + } + } + } + xfree(s->v); + } + xfree(s); + } +} + +static int +callout_func_list_add(CalloutNameListType* s, int* rid) +{ + if (s->n >= s->alloc) { + int new_size = s->alloc * 2; + CalloutNameListEntry* nv = (CalloutNameListEntry* ) + xrealloc(s->v, sizeof(CalloutNameListEntry) * new_size); + if (IS_NULL(nv)) return ONIGERR_MEMORY; + + s->alloc = new_size; + s->v = nv; + } + + *rid = s->n; + + xmemset(&(s->v[s->n]), 0, sizeof(*(s->v))); + s->n++; + return ONIG_NORMAL; +} + + +typedef struct { + UChar* name; + int name_len; /* byte length */ + int id; +} CalloutNameEntry; + +#ifdef USE_ST_LIBRARY +typedef st_table CalloutNameTable; +#else +typedef struct { + CalloutNameEntry* e; + int num; + int alloc; +} CalloutNameTable; +#endif + +static CalloutNameTable* GlobalCalloutNameTable; +static int CalloutNameIDCounter; + +#ifdef USE_ST_LIBRARY + +static int +i_free_callout_name_entry(st_data_t akey, st_data_t ae, st_data_t arg ARG_UNUSED) +{ + st_callout_name_key* key; + CalloutNameEntry* e; + + key = (st_callout_name_key* )akey; + e = (CalloutNameEntry* )ae; + + if (IS_NOT_NULL(e)) { + xfree(e->name); + } + /*xfree(key->s); */ /* is same as e->name */ + xfree(key); + xfree(e); + return ST_DELETE; +} + +static int +callout_name_table_clear(CalloutNameTable* t) +{ + if (IS_NOT_NULL(t)) { + onig_st_foreach(t, i_free_callout_name_entry, 0); + } + return 0; +} + +static int +global_callout_name_table_free(void) +{ + if (IS_NOT_NULL(GlobalCalloutNameTable)) { + int r = callout_name_table_clear(GlobalCalloutNameTable); + if (r != 0) return r; + + onig_st_free_table(GlobalCalloutNameTable); + GlobalCalloutNameTable = 0; + CalloutNameIDCounter = 0; + } + + return 0; +} + +static CalloutNameEntry* +callout_name_find(OnigEncoding enc, int is_not_single, + const UChar* name, const UChar* name_end) +{ + int r; + CalloutNameEntry* e; + CalloutNameTable* t = GlobalCalloutNameTable; + + e = (CalloutNameEntry* )NULL; + if (IS_NOT_NULL(t)) { + r = onig_st_lookup_callout_name_table(t, enc, is_not_single, name, name_end, + (HashDataType* )((void* )(&e))); + if (r == 0) { /* not found */ + if (enc != ONIG_ENCODING_ASCII && + ONIGENC_IS_ASCII_COMPATIBLE_ENCODING(enc)) { + enc = ONIG_ENCODING_ASCII; + onig_st_lookup_callout_name_table(t, enc, is_not_single, name, name_end, + (HashDataType* )((void* )(&e))); + } + } + } + return e; +} + +#else + +static int +callout_name_table_clear(CalloutNameTable* t) +{ + int i; + CalloutNameEntry* e; + + if (IS_NOT_NULL(t)) { + for (i = 0; i < t->num; i++) { + e = &(t->e[i]); + if (IS_NOT_NULL(e->name)) { + xfree(e->name); + e->name = NULL; + e->name_len = 0; + e->id = 0; + e->func = 0; + } + } + if (IS_NOT_NULL(t->e)) { + xfree(t->e); + t->e = NULL; + } + t->num = 0; + } + return 0; +} + +static int +global_callout_name_table_free(void) +{ + if (IS_NOT_NULL(GlobalCalloutNameTable)) { + int r = callout_name_table_clear(GlobalCalloutNameTable); + if (r != 0) return r; + + xfree(GlobalCalloutNameTable); + GlobalCalloutNameTable = 0; + CalloutNameIDCounter = 0; + } + return 0; +} + +static CalloutNameEntry* +callout_name_find(UChar* name, UChar* name_end) +{ + int i, len; + CalloutNameEntry* e; + CalloutNameTable* t = Calloutnames; + + if (IS_NOT_NULL(t)) { + len = name_end - name; + for (i = 0; i < t->num; i++) { + e = &(t->e[i]); + if (len == e->name_len && onig_strncmp(name, e->name, len) == 0) + return e; + } + } + return (CalloutNameEntry* )NULL; +} + +#endif + +/* name string must be single byte char string. */ +static int +callout_name_entry(CalloutNameEntry** rentry, OnigEncoding enc, + int is_not_single, UChar* name, UChar* name_end) +{ + int r; + CalloutNameEntry* e; + CalloutNameTable* t = GlobalCalloutNameTable; + + *rentry = 0; + if (name_end - name <= 0) + return ONIGERR_INVALID_CALLOUT_NAME; + + e = callout_name_find(enc, is_not_single, name, name_end); + if (IS_NULL(e)) { +#ifdef USE_ST_LIBRARY + if (IS_NULL(t)) { + t = onig_st_init_callout_name_table_with_size(INIT_NAMES_ALLOC_NUM); + CHECK_NULL_RETURN_MEMERR(t); + GlobalCalloutNameTable = t; + } + e = (CalloutNameEntry* )xmalloc(sizeof(CalloutNameEntry)); + CHECK_NULL_RETURN_MEMERR(e); + + e->name = onigenc_strdup(enc, name, name_end); + if (IS_NULL(e->name)) { + xfree(e); return ONIGERR_MEMORY; + } + + r = st_insert_callout_name_table(t, enc, is_not_single, + e->name, (e->name + (name_end - name)), + (HashDataType )e); + if (r < 0) return r; + +#else + + int alloc; + + if (IS_NULL(t)) { + alloc = INIT_NAMES_ALLOC_NUM; + t = (CalloutNameTable* )xmalloc(sizeof(CalloutNameTable)); + CHECK_NULL_RETURN_MEMERR(t); + t->e = NULL; + t->alloc = 0; + t->num = 0; + + t->e = (CalloutNameEntry* )xmalloc(sizeof(CalloutNameEntry) * alloc); + if (IS_NULL(t->e)) { + xfree(t); + return ONIGERR_MEMORY; + } + t->alloc = alloc; + GlobalCalloutNameTable = t; + goto clear; + } + else if (t->num == t->alloc) { + int i; + + alloc = t->alloc * 2; + t->e = (CalloutNameEntry* )xrealloc(t->e, sizeof(CalloutNameEntry) * alloc); + CHECK_NULL_RETURN_MEMERR(t->e); + t->alloc = alloc; + + clear: + for (i = t->num; i < t->alloc; i++) { + t->e[i].name = NULL; + t->e[i].name_len = 0; + t->e[i].id = 0; + } + } + e = &(t->e[t->num]); + t->num++; + e->name = onigenc_strdup(enc, name, name_end); + if (IS_NULL(e->name)) return ONIGERR_MEMORY; +#endif + + CalloutNameIDCounter++; + e->id = CalloutNameIDCounter; + e->name_len = (int )(name_end - name); + } + + *rentry = e; + return e->id; +} + +static int +is_allowed_callout_name(OnigEncoding enc, UChar* name, UChar* name_end) +{ + UChar* p; + OnigCodePoint c; + + if (name >= name_end) return 0; + + p = name; + while (p < name_end) { + c = ONIGENC_MBC_TO_CODE(enc, p, name_end); + if (! IS_ALLOWED_CODE_IN_CALLOUT_NAME(c)) + return 0; + + if (p == name) { + if (c >= '0' && c <= '9') return 0; + } + + p += ONIGENC_MBC_ENC_LEN(enc, p); + } + + return 1; +} + +static int +is_allowed_callout_tag_name(OnigEncoding enc, UChar* name, UChar* name_end) +{ + UChar* p; + OnigCodePoint c; + + if (name >= name_end) return 0; + + p = name; + while (p < name_end) { + c = ONIGENC_MBC_TO_CODE(enc, p, name_end); + if (! IS_ALLOWED_CODE_IN_CALLOUT_TAG_NAME(c)) + return 0; + + if (p == name) { + if (c >= '0' && c <= '9') return 0; + } + + p += ONIGENC_MBC_ENC_LEN(enc, p); + } + + return 1; +} + +extern int +onig_set_callout_of_name(OnigEncoding enc, OnigCalloutType callout_type, + UChar* name, UChar* name_end, int in, + OnigCalloutFunc start_func, + OnigCalloutFunc end_func, + int arg_num, unsigned int arg_types[], + int opt_arg_num, OnigValue opt_defaults[]) +{ + int r; + int i; + int j; + int id; + int is_not_single; + CalloutNameEntry* e; + CalloutNameListEntry* fe; + + if (callout_type != ONIG_CALLOUT_TYPE_SINGLE) + return ONIGERR_INVALID_ARGUMENT; + + if (arg_num < 0 || arg_num > ONIG_CALLOUT_MAX_ARGS_NUM) + return ONIGERR_INVALID_CALLOUT_ARG; + + if (opt_arg_num < 0 || opt_arg_num > arg_num) + return ONIGERR_INVALID_CALLOUT_ARG; + + if (start_func == 0 && end_func == 0) + return ONIGERR_INVALID_CALLOUT_ARG; + + if ((in & ONIG_CALLOUT_IN_PROGRESS) == 0 && (in & ONIG_CALLOUT_IN_RETRACTION) == 0) + return ONIGERR_INVALID_CALLOUT_ARG; + + for (i = 0; i < arg_num; i++) { + unsigned int t = arg_types[i]; + if (t == ONIG_TYPE_VOID) + return ONIGERR_INVALID_CALLOUT_ARG; + else { + if (i >= arg_num - opt_arg_num) { + if (t != ONIG_TYPE_LONG && t != ONIG_TYPE_CHAR && t != ONIG_TYPE_STRING && + t != ONIG_TYPE_TAG) + return ONIGERR_INVALID_CALLOUT_ARG; + } + else { + if (t != ONIG_TYPE_LONG) { + t = t & ~ONIG_TYPE_LONG; + if (t != ONIG_TYPE_CHAR && t != ONIG_TYPE_STRING && t != ONIG_TYPE_TAG) + return ONIGERR_INVALID_CALLOUT_ARG; + } + } + } + } + + if (! is_allowed_callout_name(enc, name, name_end)) { + return ONIGERR_INVALID_CALLOUT_NAME; + } + + is_not_single = (callout_type != ONIG_CALLOUT_TYPE_SINGLE); + id = callout_name_entry(&e, enc, is_not_single, name, name_end); + if (id < 0) return id; + + r = ONIG_NORMAL; + if (IS_NULL(GlobalCalloutNameList)) { + r = make_callout_func_list(&GlobalCalloutNameList, 10); + if (r != ONIG_NORMAL) return r; + } + + while (id >= GlobalCalloutNameList->n) { + int rid; + r = callout_func_list_add(GlobalCalloutNameList, &rid); + if (r != ONIG_NORMAL) return r; + } + + fe = GlobalCalloutNameList->v + id; + fe->type = callout_type; + fe->in = in; + fe->start_func = start_func; + fe->end_func = end_func; + fe->arg_num = arg_num; + fe->opt_arg_num = opt_arg_num; + fe->name = e->name; + + for (i = 0; i < arg_num; i++) { + fe->arg_types[i] = arg_types[i]; + } + for (i = arg_num - opt_arg_num, j = 0; i < arg_num; i++, j++) { + if (IS_NULL(opt_defaults)) return ONIGERR_INVALID_ARGUMENT; + if (fe->arg_types[i] == ONIG_TYPE_STRING) { + OnigValue* val; + UChar* ds; + + val = opt_defaults + j; + ds = onigenc_strdup(enc, val->s.start, val->s.end); + CHECK_NULL_RETURN_MEMERR(ds); + + fe->opt_defaults[i].s.start = ds; + fe->opt_defaults[i].s.end = ds + (val->s.end - val->s.start); + } + else { + fe->opt_defaults[i] = opt_defaults[j]; + } + } + + r = id; + return r; +} + +static int +get_callout_name_id_by_name(OnigEncoding enc, int is_not_single, + UChar* name, UChar* name_end, int* rid) +{ + int r; + CalloutNameEntry* e; + + if (! is_allowed_callout_name(enc, name, name_end)) { + return ONIGERR_INVALID_CALLOUT_NAME; + } + + e = callout_name_find(enc, is_not_single, name, name_end); + if (IS_NULL(e)) { + return ONIGERR_UNDEFINED_CALLOUT_NAME; + } + + r = ONIG_NORMAL; + *rid = e->id; + + return r; +} + +extern OnigCalloutFunc +onig_get_callout_start_func(regex_t* reg, int callout_num) +{ + /* If used for callouts of contents, return 0. */ + CalloutListEntry* e; + + e = onig_reg_callout_list_at(reg, callout_num); + CHECK_NULL_RETURN(e); + return e->start_func; +} + +extern const UChar* +onig_get_callout_tag_start(regex_t* reg, int callout_num) +{ + CalloutListEntry* e = onig_reg_callout_list_at(reg, callout_num); + CHECK_NULL_RETURN(e); + return e->tag_start; +} + +extern const UChar* +onig_get_callout_tag_end(regex_t* reg, int callout_num) +{ + CalloutListEntry* e = onig_reg_callout_list_at(reg, callout_num); + CHECK_NULL_RETURN(e); + return e->tag_end; +} + + +extern OnigCalloutType +onig_get_callout_type_by_name_id(int name_id) +{ + if (name_id < 0 || name_id >= GlobalCalloutNameList->n) + return 0; + + return GlobalCalloutNameList->v[name_id].type; +} + +extern OnigCalloutFunc +onig_get_callout_start_func_by_name_id(int name_id) +{ + if (name_id < 0 || name_id >= GlobalCalloutNameList->n) + return 0; + + return GlobalCalloutNameList->v[name_id].start_func; +} + +extern OnigCalloutFunc +onig_get_callout_end_func_by_name_id(int name_id) +{ + if (name_id < 0 || name_id >= GlobalCalloutNameList->n) + return 0; + + return GlobalCalloutNameList->v[name_id].end_func; +} + +extern int +onig_get_callout_in_by_name_id(int name_id) +{ + if (name_id < 0 || name_id >= GlobalCalloutNameList->n) + return 0; + + return GlobalCalloutNameList->v[name_id].in; +} + +static int +get_callout_arg_num_by_name_id(int name_id) +{ + return GlobalCalloutNameList->v[name_id].arg_num; +} + +static int +get_callout_opt_arg_num_by_name_id(int name_id) +{ + return GlobalCalloutNameList->v[name_id].opt_arg_num; +} + +static unsigned int +get_callout_arg_type_by_name_id(int name_id, int index) +{ + return GlobalCalloutNameList->v[name_id].arg_types[index]; +} + +static OnigValue +get_callout_opt_default_by_name_id(int name_id, int index) +{ + return GlobalCalloutNameList->v[name_id].opt_defaults[index]; +} + +extern UChar* +onig_get_callout_name_by_name_id(int name_id) +{ + if (name_id < 0 || name_id >= GlobalCalloutNameList->n) + return 0; + + return GlobalCalloutNameList->v[name_id].name; +} + +extern int +onig_global_callout_names_free(void) +{ + free_callout_func_list(GlobalCalloutNameList); + GlobalCalloutNameList = 0; + + global_callout_name_table_free(); + return ONIG_NORMAL; +} + + +typedef st_table CalloutTagTable; +typedef intptr_t CalloutTagVal; + +#define CALLOUT_TAG_LIST_FLAG_TAG_EXIST (1<<0) + +static int +i_callout_callout_list_set(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t arg) +{ + int num; + CalloutTagVal e; + RegexExt* ext; + + e = (CalloutTagVal )ae; + ext = (RegexExt* )arg; + + num = (int )e - 1; + ext->callout_list[num].flag |= CALLOUT_TAG_LIST_FLAG_TAG_EXIST; + return ST_CONTINUE; +} + +static int +setup_ext_callout_list_values(regex_t* reg) +{ + int i, j; + RegexExt* ext; + + ext = reg->extp; + if (IS_NOT_NULL(ext->tag_table)) { + onig_st_foreach((CalloutTagTable *)ext->tag_table, i_callout_callout_list_set, + (st_data_t )ext); + } + + for (i = 0; i < ext->callout_num; i++) { + CalloutListEntry* e = ext->callout_list + i; + if (e->of == ONIG_CALLOUT_OF_NAME) { + for (j = 0; j < e->u.arg.num; j++) { + if (e->u.arg.types[j] == ONIG_TYPE_TAG) { + UChar* start; + UChar* end; + int num; + start = e->u.arg.vals[j].s.start; + end = e->u.arg.vals[j].s.end; + num = onig_get_callout_num_by_tag(reg, start, end); + if (num < 0) return num; + e->u.arg.vals[j].tag = num; + } + } + } + } + + return ONIG_NORMAL; +} + +extern int +onig_callout_tag_is_exist_at_callout_num(regex_t* reg, int callout_num) +{ + RegexExt* ext = reg->extp; + + if (IS_NULL(ext) || IS_NULL(ext->callout_list)) return 0; + if (callout_num > ext->callout_num) return 0; + + return (ext->callout_list[callout_num].flag & + CALLOUT_TAG_LIST_FLAG_TAG_EXIST) != 0; +} + +static int +i_free_callout_tag_entry(st_data_t akey, st_data_t e ARG_UNUSED, st_data_t arg ARG_UNUSED) +{ + UChar* key; + + key = (UChar* )akey; + xfree(key); + return ST_DELETE; +} + +static int +callout_tag_table_clear(CalloutTagTable* t) +{ + if (IS_NOT_NULL(t)) { + onig_st_foreach(t, i_free_callout_tag_entry, 0); + } + return 0; +} + +extern int +onig_callout_tag_table_free(void* table) +{ + CalloutTagTable* t = (CalloutTagTable* )table; + + if (IS_NOT_NULL(t)) { + int r = callout_tag_table_clear(t); + if (r != 0) return r; + + onig_st_free_table(t); + } + + return 0; +} + +extern int +onig_get_callout_num_by_tag(regex_t* reg, + const UChar* tag, const UChar* tag_end) +{ + int r; + RegexExt* ext; + CalloutTagVal e; + + ext = reg->extp; + if (IS_NULL(ext) || IS_NULL(ext->tag_table)) + return ONIGERR_INVALID_CALLOUT_TAG_NAME; + + r = onig_st_lookup_strend(ext->tag_table, tag, tag_end, + (HashDataType* )((void* )(&e))); + if (r == 0) return ONIGERR_INVALID_CALLOUT_TAG_NAME; + return (int )e; +} + +static CalloutTagVal +callout_tag_find(CalloutTagTable* t, const UChar* name, const UChar* name_end) +{ + CalloutTagVal e; + + e = -1; + if (IS_NOT_NULL(t)) { + onig_st_lookup_strend(t, name, name_end, (HashDataType* )((void* )(&e))); + } + return e; +} + +static int +callout_tag_table_new(CalloutTagTable** rt) +{ + CalloutTagTable* t; + + *rt = 0; + t = onig_st_init_strend_table_with_size(INIT_TAG_NAMES_ALLOC_NUM); + CHECK_NULL_RETURN_MEMERR(t); + + *rt = t; + return ONIG_NORMAL; +} + +static int +callout_tag_entry_raw(ParseEnv* env, CalloutTagTable* t, UChar* name, + UChar* name_end, CalloutTagVal entry_val) +{ + int r; + CalloutTagVal val; + + if (name_end - name <= 0) + return ONIGERR_INVALID_CALLOUT_TAG_NAME; + + val = callout_tag_find(t, name, name_end); + if (val >= 0) { + onig_scan_env_set_error_string(env, ONIGERR_MULTIPLEX_DEFINED_NAME, + name, name_end); + return ONIGERR_MULTIPLEX_DEFINED_NAME; + } + + r = onig_st_insert_strend(t, name, name_end, (HashDataType )entry_val); + if (r < 0) return r; + + return ONIG_NORMAL; +} + +static int +ext_ensure_tag_table(regex_t* reg) +{ + int r; + RegexExt* ext; + CalloutTagTable* t; + + ext = onig_get_regex_ext(reg); + CHECK_NULL_RETURN_MEMERR(ext); + + if (IS_NULL(ext->tag_table)) { + r = callout_tag_table_new(&t); + if (r != ONIG_NORMAL) return r; + + ext->tag_table = t; + } + + return ONIG_NORMAL; +} + +static int +callout_tag_entry(ParseEnv* env, regex_t* reg, UChar* name, UChar* name_end, + CalloutTagVal entry_val) +{ + int r; + RegexExt* ext; + CalloutListEntry* e; + + r = ext_ensure_tag_table(reg); + if (r != ONIG_NORMAL) return r; + + ext = onig_get_regex_ext(reg); + CHECK_NULL_RETURN_MEMERR(ext); + r = callout_tag_entry_raw(env, ext->tag_table, name, name_end, entry_val); + + e = onig_reg_callout_list_at(reg, (int )entry_val); + CHECK_NULL_RETURN_MEMERR(e); + e->tag_start = name; + e->tag_end = name_end; + + return r; +} + +#endif /* USE_CALLOUT */ + + +#define INIT_PARSEENV_MEMENV_ALLOC_SIZE 16 + +static void +scan_env_clear(ParseEnv* env) +{ + MEM_STATUS_CLEAR(env->cap_history); + MEM_STATUS_CLEAR(env->backtrack_mem); + MEM_STATUS_CLEAR(env->backrefed_mem); + env->error = (UChar* )NULL; + env->error_end = (UChar* )NULL; + env->num_call = 0; + +#ifdef USE_CALL + env->unset_addr_list = NULL; +#endif + + env->num_mem = 0; + env->num_named = 0; + env->mem_alloc = 0; + env->mem_env_dynamic = (MemEnv* )NULL; + + xmemset(env->mem_env_static, 0, sizeof(env->mem_env_static)); + + env->parse_depth = 0; +#ifdef ONIG_DEBUG_PARSE + env->max_parse_depth = 0; +#endif + env->backref_num = 0; + env->keep_num = 0; + env->id_num = 0; + env->save_alloc_num = 0; + env->saves = 0; + env->flags = 0; +} + +static int +scan_env_add_mem_entry(ParseEnv* env) +{ + int i, need, alloc; + MemEnv* p; + + need = env->num_mem + 1; + if (need > MaxCaptureNum && MaxCaptureNum != 0) + return ONIGERR_TOO_MANY_CAPTURES; + + if (need >= PARSEENV_MEMENV_SIZE) { + if (env->mem_alloc <= need) { + if (IS_NULL(env->mem_env_dynamic)) { + alloc = INIT_PARSEENV_MEMENV_ALLOC_SIZE; + p = (MemEnv* )xmalloc(sizeof(MemEnv) * alloc); + CHECK_NULL_RETURN_MEMERR(p); + xmemcpy(p, env->mem_env_static, sizeof(env->mem_env_static)); + } + else { + alloc = env->mem_alloc * 2; + p = (MemEnv* )xrealloc(env->mem_env_dynamic, sizeof(MemEnv) * alloc); + CHECK_NULL_RETURN_MEMERR(p); + } + + for (i = env->num_mem + 1; i < alloc; i++) { + p[i].mem_node = NULL_NODE; + p[i].empty_repeat_node = NULL_NODE; + } + + env->mem_env_dynamic = p; + env->mem_alloc = alloc; + } + } + + env->num_mem++; + return env->num_mem; +} + +static int +scan_env_set_mem_node(ParseEnv* env, int num, Node* node) +{ + if (env->num_mem >= num) + PARSEENV_MEMENV(env)[num].mem_node = node; + else + return ONIGERR_PARSER_BUG; + return 0; +} + +static void +node_free_body(Node* node) +{ + if (IS_NULL(node)) return ; + + switch (ND_TYPE(node)) { + case ND_STRING: + if (STR_(node)->capacity != 0 && + IS_NOT_NULL(STR_(node)->s) && STR_(node)->s != STR_(node)->buf) { + xfree(STR_(node)->s); + } + break; + + case ND_LIST: + case ND_ALT: + onig_node_free(ND_CAR(node)); + node = ND_CDR(node); + while (IS_NOT_NULL(node)) { + Node* next = ND_CDR(node); + onig_node_free(ND_CAR(node)); + xfree(node); + node = next; + } + break; + + case ND_CCLASS: + { + CClassNode* cc = CCLASS_(node); + + if (cc->mbuf) + bbuf_free(cc->mbuf); + } + break; + + case ND_BACKREF: + if (IS_NOT_NULL(BACKREF_(node)->back_dynamic)) + xfree(BACKREF_(node)->back_dynamic); + break; + + case ND_BAG: + if (ND_BODY(node)) + onig_node_free(ND_BODY(node)); + + { + BagNode* en = BAG_(node); + if (en->type == BAG_IF_ELSE) { + onig_node_free(en->te.Then); + onig_node_free(en->te.Else); + } + } + break; + + case ND_QUANT: + if (ND_BODY(node)) + onig_node_free(ND_BODY(node)); + break; + + case ND_ANCHOR: + if (ND_BODY(node)) + onig_node_free(ND_BODY(node)); + if (IS_NOT_NULL(ANCHOR_(node)->lead_node)) + onig_node_free(ANCHOR_(node)->lead_node); + break; + + case ND_CTYPE: + case ND_CALL: + case ND_GIMMICK: + break; + } +} + +extern void +onig_node_free(Node* node) +{ + if (IS_NULL(node)) return ; + +#ifdef DEBUG_ND_FREE + fprintf(stderr, "onig_node_free: %p\n", node); +#endif + + node_free_body(node); + xfree(node); +} + +static void +cons_node_free_alone(Node* node) +{ + ND_CAR(node) = 0; + ND_CDR(node) = 0; + onig_node_free(node); +} + +static Node* +node_new(void) +{ + Node* node; + + node = (Node* )xmalloc(sizeof(Node)); + CHECK_NULL_RETURN(node); + xmemset(node, 0, sizeof(*node)); + +#ifdef DEBUG_ND_FREE + fprintf(stderr, "node_new: %p\n", node); +#endif + return node; +} + +extern int +onig_node_copy(Node** rcopy, Node* from) +{ + int r; + Node* copy; + + *rcopy = NULL_NODE; + + switch (ND_TYPE(from)) { + case ND_LIST: + case ND_ALT: + case ND_ANCHOR: + /* These node's link to other nodes are processed by caller. */ + break; + case ND_STRING: + case ND_CCLASS: + case ND_CTYPE: + /* Fixed contents after copy. */ + break; + default: + /* Not supported yet. */ + return ONIGERR_TYPE_BUG; + break; + } + + copy = node_new(); + CHECK_NULL_RETURN_MEMERR(copy); + xmemcpy(copy, from, sizeof(*copy)); + + switch (ND_TYPE(copy)) { + case ND_STRING: + r = onig_node_str_set(copy, STR_(from)->s, STR_(from)->end, FALSE); + if (r != 0) { + err: + onig_node_free(copy); + return r; + } + break; + + case ND_CCLASS: + { + CClassNode *fcc, *tcc; + + fcc = CCLASS_(from); + tcc = CCLASS_(copy); + if (IS_NOT_NULL(fcc->mbuf)) { + r = bbuf_clone(&(tcc->mbuf), fcc->mbuf); + if (r != 0) goto err; + } + } + break; + + default: + break; + } + + *rcopy = copy; + return ONIG_NORMAL; +} + + +static void +initialize_cclass(CClassNode* cc) +{ + BITSET_CLEAR(cc->bs); + cc->flags = 0; + cc->mbuf = NULL; +} + +static Node* +node_new_cclass(void) +{ + Node* node = node_new(); + CHECK_NULL_RETURN(node); + + ND_SET_TYPE(node, ND_CCLASS); + initialize_cclass(CCLASS_(node)); + return node; +} + +static Node* +node_new_ctype(int type, int not, OnigOptionType options) +{ + Node* node = node_new(); + CHECK_NULL_RETURN(node); + + ND_SET_TYPE(node, ND_CTYPE); + CTYPE_(node)->ctype = type; + CTYPE_(node)->not = not; + CTYPE_(node)->ascii_mode = OPTON_IS_ASCII_MODE_CTYPE(type, options); + return node; +} + +static Node* +node_new_anychar(OnigOptionType options) +{ + Node* node; + + node = node_new_ctype(CTYPE_ANYCHAR, FALSE, options); + CHECK_NULL_RETURN(node); + + if (OPTON_MULTILINE(options)) + ND_STATUS_ADD(node, MULTILINE); + return node; +} + +static int +node_new_no_newline(Node** node, ParseEnv* env) +{ + Node* n; + + n = node_new_anychar(ONIG_OPTION_NONE); + CHECK_NULL_RETURN_MEMERR(n); + *node = n; + return 0; +} + +static int +node_new_true_anychar(Node** node) +{ + Node* n; + + n = node_new_anychar(ONIG_OPTION_MULTILINE); + CHECK_NULL_RETURN_MEMERR(n); + *node = n; + return 0; +} + +static Node* +node_new_list(Node* left, Node* right) +{ + Node* node = node_new(); + CHECK_NULL_RETURN(node); + + ND_SET_TYPE(node, ND_LIST); + ND_CAR(node) = left; + ND_CDR(node) = right; + return node; +} + +extern Node* +onig_node_new_list(Node* left, Node* right) +{ + return node_new_list(left, right); +} + +extern Node* +onig_node_new_alt(Node* left, Node* right) +{ + Node* node = node_new(); + CHECK_NULL_RETURN(node); + + ND_SET_TYPE(node, ND_ALT); + ND_CAR(node) = left; + ND_CDR(node) = right; + return node; +} + +static Node* +make_list_or_alt(NodeType type, int n, Node* ns[]) +{ + Node* r; + + if (n <= 0) return NULL_NODE; + + if (n == 1) { + r = node_new(); + CHECK_NULL_RETURN(r); + ND_SET_TYPE(r, type); + ND_CAR(r) = ns[0]; + ND_CDR(r) = NULL_NODE; + } + else { + Node* right; + + r = node_new(); + CHECK_NULL_RETURN(r); + + right = make_list_or_alt(type, n - 1, ns + 1); + if (IS_NULL(right)) { + onig_node_free(r); + return NULL_NODE; + } + + ND_SET_TYPE(r, type); + ND_CAR(r) = ns[0]; + ND_CDR(r) = right; + } + + return r; +} + +static Node* +make_list(int n, Node* ns[]) +{ + return make_list_or_alt(ND_LIST, n, ns); +} + +static Node* +make_alt(int n, Node* ns[]) +{ + return make_list_or_alt(ND_ALT, n, ns); +} + +static Node* +node_new_anchor(int type) +{ + Node* node; + + node = node_new(); + CHECK_NULL_RETURN(node); + + ND_SET_TYPE(node, ND_ANCHOR); + ANCHOR_(node)->type = type; + ANCHOR_(node)->char_min_len = 0; + ANCHOR_(node)->char_max_len = INFINITE_LEN; + ANCHOR_(node)->ascii_mode = 0; + ANCHOR_(node)->lead_node = NULL_NODE; + return node; +} + +static Node* +node_new_anchor_with_options(int type, OnigOptionType options) +{ + int ascii_mode; + Node* node; + + node = node_new_anchor(type); + CHECK_NULL_RETURN(node); + + ascii_mode = OPTON_WORD_ASCII(options) && IS_WORD_ANCHOR_TYPE(type) ? 1 : 0; + ANCHOR_(node)->ascii_mode = ascii_mode; + + if (type == ANCR_TEXT_SEGMENT_BOUNDARY || + type == ANCR_NO_TEXT_SEGMENT_BOUNDARY) { + if (OPTON_TEXT_SEGMENT_WORD(options)) + ND_STATUS_ADD(node, TEXT_SEGMENT_WORD); + } + + return node; +} + +static Node* +node_new_backref(int back_num, int* backrefs, int by_name, +#ifdef USE_BACKREF_WITH_LEVEL + int exist_level, int nest_level, +#endif + ParseEnv* env) +{ + int i; + Node* node; + + node = node_new(); + CHECK_NULL_RETURN(node); + + ND_SET_TYPE(node, ND_BACKREF); + BACKREF_(node)->back_num = back_num; + BACKREF_(node)->back_dynamic = (int* )NULL; + if (by_name != 0) + ND_STATUS_ADD(node, BY_NAME); + + if (OPTON_IGNORECASE(env->options)) + ND_STATUS_ADD(node, IGNORECASE); + +#ifdef USE_BACKREF_WITH_LEVEL + if (exist_level != 0) { + ND_STATUS_ADD(node, NEST_LEVEL); + BACKREF_(node)->nest_level = nest_level; + } +#endif + + for (i = 0; i < back_num; i++) { + if (backrefs[i] <= env->num_mem && + IS_NULL(PARSEENV_MEMENV(env)[backrefs[i]].mem_node)) { + ND_STATUS_ADD(node, RECURSION); /* /...(\1).../ */ + break; + } + } + + if (back_num <= ND_BACKREFS_SIZE) { + for (i = 0; i < back_num; i++) + BACKREF_(node)->back_static[i] = backrefs[i]; + } + else { + int* p = (int* )xmalloc(sizeof(int) * back_num); + if (IS_NULL(p)) { + onig_node_free(node); + return NULL; + } + BACKREF_(node)->back_dynamic = p; + for (i = 0; i < back_num; i++) + p[i] = backrefs[i]; + } + + env->backref_num++; + return node; +} + +static Node* +node_new_backref_checker(int back_num, int* backrefs, int by_name, +#ifdef USE_BACKREF_WITH_LEVEL + int exist_level, int nest_level, +#endif + ParseEnv* env) +{ + Node* node; + + node = node_new_backref(back_num, backrefs, by_name, +#ifdef USE_BACKREF_WITH_LEVEL + exist_level, nest_level, +#endif + env); + CHECK_NULL_RETURN(node); + + ND_STATUS_ADD(node, CHECKER); + return node; +} + +#ifdef USE_CALL +static Node* +node_new_call(UChar* name, UChar* name_end, int gnum, int by_number) +{ + Node* node = node_new(); + CHECK_NULL_RETURN(node); + + ND_SET_TYPE(node, ND_CALL); + CALL_(node)->by_number = by_number; + CALL_(node)->name = name; + CALL_(node)->name_end = name_end; + CALL_(node)->called_gnum = gnum; + CALL_(node)->entry_count = 1; + return node; +} +#endif + +static Node* +node_new_quantifier(int lower, int upper, int by_number) +{ + Node* node = node_new(); + CHECK_NULL_RETURN(node); + + ND_SET_TYPE(node, ND_QUANT); + QUANT_(node)->lower = lower; + QUANT_(node)->upper = upper; + QUANT_(node)->greedy = 1; + QUANT_(node)->emptiness = BODY_IS_NOT_EMPTY; + QUANT_(node)->head_exact = NULL_NODE; + QUANT_(node)->next_head_exact = NULL_NODE; + QUANT_(node)->include_referred = 0; + QUANT_(node)->empty_status_mem = 0; + if (by_number != 0) + ND_STATUS_ADD(node, BY_NUMBER); + + return node; +} + +static Node* +node_new_bag(enum BagType type) +{ + Node* node = node_new(); + CHECK_NULL_RETURN(node); + + ND_SET_TYPE(node, ND_BAG); + BAG_(node)->type = type; + + switch (type) { + case BAG_MEMORY: + BAG_(node)->m.regnum = 0; + BAG_(node)->m.called_addr = -1; + BAG_(node)->m.entry_count = 1; + BAG_(node)->m.called_state = 0; + break; + + case BAG_OPTION: + BAG_(node)->o.options = 0; + break; + + case BAG_STOP_BACKTRACK: + break; + + case BAG_IF_ELSE: + BAG_(node)->te.Then = 0; + BAG_(node)->te.Else = 0; + break; + } + + BAG_(node)->opt_count = 0; + return node; +} + +extern Node* +onig_node_new_bag(enum BagType type) +{ + return node_new_bag(type); +} + +static Node* +node_new_bag_if_else(Node* cond, Node* Then, Node* Else) +{ + Node* n; + n = node_new_bag(BAG_IF_ELSE); + CHECK_NULL_RETURN(n); + + ND_BODY(n) = cond; + BAG_(n)->te.Then = Then; + BAG_(n)->te.Else = Else; + return n; +} + +static Node* +node_new_memory(int is_named) +{ + Node* node = node_new_bag(BAG_MEMORY); + CHECK_NULL_RETURN(node); + if (is_named != 0) + ND_STATUS_ADD(node, NAMED_GROUP); + + return node; +} + +static Node* +node_new_option(OnigOptionType option) +{ + Node* node = node_new_bag(BAG_OPTION); + CHECK_NULL_RETURN(node); + BAG_(node)->o.options = option; + return node; +} + +static Node* +node_new_group(Node* content) +{ + Node* node; + + node = node_new(); + CHECK_NULL_RETURN(node); + ND_SET_TYPE(node, ND_LIST); + ND_CAR(node) = content; + ND_CDR(node) = NULL_NODE; + + return node; +} + +static Node* +node_drop_group(Node* group) +{ + Node* content; + + content = ND_CAR(group); + ND_CAR(group) = NULL_NODE; + onig_node_free(group); + return content; +} + +static int +node_set_fail(Node* node) +{ + ND_SET_TYPE(node, ND_GIMMICK); + GIMMICK_(node)->type = GIMMICK_FAIL; + return ONIG_NORMAL; +} + +static int +node_new_fail(Node** node, ParseEnv* env) +{ + *node = node_new(); + CHECK_NULL_RETURN_MEMERR(*node); + + return node_set_fail(*node); +} + +extern int +onig_node_reset_fail(Node* node) +{ + node_free_body(node); + return node_set_fail(node); +} + +static int +node_new_save_gimmick(Node** node, enum SaveType save_type, ParseEnv* env) +{ + int id; + + ID_ENTRY(env, id); + + *node = node_new(); + CHECK_NULL_RETURN_MEMERR(*node); + + ND_SET_TYPE(*node, ND_GIMMICK); + GIMMICK_(*node)->id = id; + GIMMICK_(*node)->type = GIMMICK_SAVE; + GIMMICK_(*node)->detail_type = (int )save_type; + + return ONIG_NORMAL; +} + +static int +node_new_update_var_gimmick(Node** node, enum UpdateVarType update_var_type, + int id, ParseEnv* env) +{ + *node = node_new(); + CHECK_NULL_RETURN_MEMERR(*node); + + ND_SET_TYPE(*node, ND_GIMMICK); + GIMMICK_(*node)->id = id; + GIMMICK_(*node)->type = GIMMICK_UPDATE_VAR; + GIMMICK_(*node)->detail_type = (int )update_var_type; + + return ONIG_NORMAL; +} + +static int +node_new_keep(Node** node, ParseEnv* env) +{ + int r; + + r = node_new_save_gimmick(node, SAVE_KEEP, env); + if (r != 0) return r; + + env->keep_num++; + return ONIG_NORMAL; +} + +#ifdef USE_CALLOUT + +extern void +onig_free_reg_callout_list(int n, CalloutListEntry* list) +{ + int i; + int j; + + if (IS_NULL(list)) return ; + + for (i = 0; i < n; i++) { + if (list[i].of == ONIG_CALLOUT_OF_NAME) { + for (j = 0; j < list[i].u.arg.passed_num; j++) { + if (list[i].u.arg.types[j] == ONIG_TYPE_STRING) { + if (IS_NOT_NULL(list[i].u.arg.vals[j].s.start)) + xfree(list[i].u.arg.vals[j].s.start); + } + } + } + else { /* ONIG_CALLOUT_OF_CONTENTS */ + if (IS_NOT_NULL(list[i].u.content.start)) { + xfree((void* )list[i].u.content.start); + } + } + } + + xfree(list); +} + +extern CalloutListEntry* +onig_reg_callout_list_at(regex_t* reg, int num) +{ + RegexExt* ext = reg->extp; + CHECK_NULL_RETURN(ext); + + if (num <= 0 || num > ext->callout_num) + return 0; + + num--; + return ext->callout_list + num; +} + +static int +reg_callout_list_entry(ParseEnv* env, int* rnum) +{ +#define INIT_CALLOUT_LIST_NUM 3 + + int num; + CalloutListEntry* list; + CalloutListEntry* e; + RegexExt* ext; + + ext = onig_get_regex_ext(env->reg); + CHECK_NULL_RETURN_MEMERR(ext); + + if (IS_NULL(ext->callout_list)) { + list = (CalloutListEntry* )xmalloc(sizeof(*list) * INIT_CALLOUT_LIST_NUM); + CHECK_NULL_RETURN_MEMERR(list); + + ext->callout_list = list; + ext->callout_list_alloc = INIT_CALLOUT_LIST_NUM; + ext->callout_num = 0; + } + + num = ext->callout_num + 1; + if (num > ext->callout_list_alloc) { + int alloc = ext->callout_list_alloc * 2; + list = (CalloutListEntry* )xrealloc(ext->callout_list, + sizeof(CalloutListEntry) * alloc); + CHECK_NULL_RETURN_MEMERR(list); + + ext->callout_list = list; + ext->callout_list_alloc = alloc; + } + + e = ext->callout_list + (num - 1); + + e->flag = 0; + e->of = 0; + e->in = ONIG_CALLOUT_OF_CONTENTS; + e->type = 0; + e->tag_start = 0; + e->tag_end = 0; + e->start_func = 0; + e->end_func = 0; + e->u.arg.num = 0; + e->u.arg.passed_num = 0; + + ext->callout_num = num; + *rnum = num; + return ONIG_NORMAL; +} + +static int +node_new_callout(Node** node, OnigCalloutOf callout_of, int num, int id, + ParseEnv* env) +{ + *node = node_new(); + CHECK_NULL_RETURN_MEMERR(*node); + + ND_SET_TYPE(*node, ND_GIMMICK); + GIMMICK_(*node)->id = id; + GIMMICK_(*node)->num = num; + GIMMICK_(*node)->type = GIMMICK_CALLOUT; + GIMMICK_(*node)->detail_type = (int )callout_of; + + return ONIG_NORMAL; +} +#endif + +static int +make_text_segment(Node** node, ParseEnv* env) +{ + int r; + int i; + Node* x; + Node* ns[2]; + + /* \X == (?>\O(?:\Y\O)*) */ + + ns[1] = NULL_NODE; + + r = ONIGERR_MEMORY; + ns[0] = node_new_anchor_with_options(ANCR_NO_TEXT_SEGMENT_BOUNDARY, env->options); + if (IS_NULL(ns[0])) goto err; + + r = node_new_true_anychar(&ns[1]); + if (r != 0) goto err1; + + x = make_list(2, ns); + if (IS_NULL(x)) goto err; + ns[0] = x; + ns[1] = NULL_NODE; + + x = node_new_quantifier(0, INFINITE_REPEAT, TRUE); + if (IS_NULL(x)) goto err; + + ND_BODY(x) = ns[0]; + ns[0] = NULL_NODE; + ns[1] = x; + + r = node_new_true_anychar(&ns[0]); + if (r != 0) goto err1; + + x = make_list(2, ns); + if (IS_NULL(x)) goto err; + + ns[0] = x; + ns[1] = NULL_NODE; + + x = node_new_bag(BAG_STOP_BACKTRACK); + if (IS_NULL(x)) goto err; + + ND_BODY(x) = ns[0]; + + *node = x; + return ONIG_NORMAL; + + err: + r = ONIGERR_MEMORY; + err1: + for (i = 0; i < 2; i++) onig_node_free(ns[i]); + return r; +} + +static int +make_absent_engine(Node** node, int pre_save_right_id, Node* absent, + Node* step_one, int lower, int upper, int possessive, + int is_range_cutter, ParseEnv* env) +{ + int r; + int i; + int id; + Node* x; + Node* ns[4]; + + for (i = 0; i < 4; i++) ns[i] = NULL_NODE; + + ns[1] = absent; + ns[3] = step_one; /* for err */ + r = node_new_save_gimmick(&ns[0], SAVE_S, env); + if (r != 0) goto err; + + id = GIMMICK_(ns[0])->id; + r = node_new_update_var_gimmick(&ns[2], UPDATE_VAR_RIGHT_RANGE_FROM_S_STACK, + id, env); + if (r != 0) goto err; + + if (is_range_cutter != 0) + ND_STATUS_ADD(ns[2], ABSENT_WITH_SIDE_EFFECTS); + + r = node_new_fail(&ns[3], env); + if (r != 0) goto err; + + x = make_list(4, ns); + if (IS_NULL(x)) goto err0; + + ns[0] = x; + ns[1] = step_one; + ns[2] = ns[3] = NULL_NODE; + + x = make_alt(2, ns); + if (IS_NULL(x)) goto err0; + + ns[0] = x; + + x = node_new_quantifier(lower, upper, FALSE); + if (IS_NULL(x)) goto err0; + + ND_BODY(x) = ns[0]; + ns[0] = x; + + if (possessive != 0) { + x = node_new_bag(BAG_STOP_BACKTRACK); + if (IS_NULL(x)) goto err0; + + ND_BODY(x) = ns[0]; + ns[0] = x; + } + + r = node_new_update_var_gimmick(&ns[1], UPDATE_VAR_RIGHT_RANGE_FROM_STACK, + pre_save_right_id, env); + if (r != 0) goto err; + + r = node_new_fail(&ns[2], env); + if (r != 0) goto err; + + x = make_list(2, ns + 1); + if (IS_NULL(x)) goto err0; + + ns[1] = x; ns[2] = NULL_NODE; + + x = make_alt(2, ns); + if (IS_NULL(x)) goto err0; + + if (is_range_cutter != FALSE) + ND_STATUS_ADD(x, SUPER); + + *node = x; + return ONIG_NORMAL; + + err0: + r = ONIGERR_MEMORY; + err: + for (i = 0; i < 4; i++) onig_node_free(ns[i]); + return r; +} + +static int +make_absent_tail(Node** node1, Node** node2, int pre_save_right_id, + ParseEnv* env) +{ + int r; + int id; + Node* save; + Node* x; + Node* ns[2]; + + *node1 = *node2 = NULL_NODE; + save = ns[0] = ns[1] = NULL_NODE; + + r = node_new_save_gimmick(&save, SAVE_RIGHT_RANGE, env); + if (r != 0) goto err; + + id = GIMMICK_(save)->id; + r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_FROM_STACK, + id, env); + if (r != 0) goto err; + + r = node_new_fail(&ns[1], env); + if (r != 0) goto err; + + x = make_list(2, ns); + if (IS_NULL(x)) goto err0; + + ns[0] = NULL_NODE; ns[1] = x; + + r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_FROM_STACK, + pre_save_right_id, env); + if (r != 0) goto err; + + x = make_alt(2, ns); + if (IS_NULL(x)) goto err0; + + *node1 = save; + *node2 = x; + return ONIG_NORMAL; + + err0: + r = ONIGERR_MEMORY; + err: + onig_node_free(save); + onig_node_free(ns[0]); + onig_node_free(ns[1]); + return r; +} + +static int +make_range_clear(Node** node, ParseEnv* env) +{ + int r; + int id; + Node* save; + Node* x; + Node* ns[2]; + + *node = NULL_NODE; + save = ns[0] = ns[1] = NULL_NODE; + + r = node_new_save_gimmick(&save, SAVE_RIGHT_RANGE, env); + if (r != 0) goto err; + + id = GIMMICK_(save)->id; + r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_FROM_STACK, + id, env); + if (r != 0) goto err; + + r = node_new_fail(&ns[1], env); + if (r != 0) goto err; + + x = make_list(2, ns); + if (IS_NULL(x)) goto err0; + + ns[0] = NULL_NODE; ns[1] = x; + +#define ID_NOT_USED_DONT_CARE_ME 0 + + r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_INIT, + ID_NOT_USED_DONT_CARE_ME, env); + if (r != 0) goto err; + ND_STATUS_ADD(ns[0], ABSENT_WITH_SIDE_EFFECTS); + + x = make_alt(2, ns); + if (IS_NULL(x)) goto err0; + + ND_STATUS_ADD(x, SUPER); + + ns[0] = save; + ns[1] = x; + save = NULL_NODE; + x = make_list(2, ns); + if (IS_NULL(x)) goto err0; + + *node = x; + return ONIG_NORMAL; + + err0: + r = ONIGERR_MEMORY; + err: + onig_node_free(save); + onig_node_free(ns[0]); + onig_node_free(ns[1]); + return r; +} + +static int +is_simple_one_char_repeat(Node* node, Node** rquant, Node** rbody, + int* is_possessive, ParseEnv* env) +{ + Node* quant; + Node* body; + + *rquant = *rbody = 0; + *is_possessive = 0; + + if (ND_TYPE(node) == ND_QUANT) { + quant = node; + } + else { + if (ND_TYPE(node) == ND_BAG) { + BagNode* en = BAG_(node); + if (en->type == BAG_STOP_BACKTRACK) { + *is_possessive = 1; + quant = ND_BAG_BODY(en); + if (ND_TYPE(quant) != ND_QUANT) + return 0; + } + else + return 0; + } + else + return 0; + } + + if (QUANT_(quant)->greedy == 0) + return 0; + + body = ND_BODY(quant); + switch (ND_TYPE(body)) { + case ND_STRING: + { + int len; + StrNode* sn = STR_(body); + UChar *s = sn->s; + + len = 0; + while (s < sn->end) { + s += enclen(env->enc, s); + len++; + } + if (len != 1) + return 0; + } + + case ND_CCLASS: + break; + + default: + return 0; + break; + } + + if (node != quant) { + ND_BODY(node) = 0; + onig_node_free(node); + } + ND_BODY(quant) = NULL_NODE; + *rquant = quant; + *rbody = body; + return 1; +} + +static int +make_absent_tree_for_simple_one_char_repeat(Node** node, + Node* absent, Node* quant, Node* body, int possessive, ParseEnv* env) +{ + int r; + int i; + int id1; + int lower, upper; + Node* x; + Node* ns[4]; + + *node = NULL_NODE; + r = ONIGERR_MEMORY; + ns[0] = ns[1] = NULL_NODE; + ns[2] = body, ns[3] = absent; + + lower = QUANT_(quant)->lower; + upper = QUANT_(quant)->upper; + + r = node_new_save_gimmick(&ns[0], SAVE_RIGHT_RANGE, env); + if (r != 0) goto err; + + id1 = GIMMICK_(ns[0])->id; + + r = make_absent_engine(&ns[1], id1, absent, body, lower, upper, possessive, + FALSE, env); + if (r != 0) goto err; + + ns[2] = ns[3] = NULL_NODE; + + r = node_new_update_var_gimmick(&ns[2], UPDATE_VAR_RIGHT_RANGE_FROM_STACK, + id1, env); + if (r != 0) goto err; + + x = make_list(3, ns); + if (IS_NULL(x)) goto err0; + + *node = x; + return ONIG_NORMAL; + + err0: + r = ONIGERR_MEMORY; + err: + for (i = 0; i < 4; i++) onig_node_free(ns[i]); + return r; +} + +static int +make_absent_tree(Node** node, Node* absent, Node* expr, int is_range_cutter, + ParseEnv* env) +{ + int r; + int i; + int id1, id2; + int possessive; + Node* x; + Node* ns[7]; + + r = ONIGERR_MEMORY; + for (i = 0; i < 7; i++) ns[i] = NULL_NODE; + ns[4] = expr; ns[5] = absent; + + if (is_range_cutter == 0) { + Node* quant; + Node* body; + + if (expr == NULL_NODE) { + /* default expr \O* */ + quant = node_new_quantifier(0, INFINITE_REPEAT, FALSE); + if (IS_NULL(quant)) goto err0; + + r = node_new_true_anychar(&body); + if (r != 0) { + onig_node_free(quant); + goto err; + } + possessive = 0; + goto simple; + } + else { + if (is_simple_one_char_repeat(expr, &quant, &body, &possessive, env)) { + simple: + r = make_absent_tree_for_simple_one_char_repeat(node, absent, quant, + body, possessive, env); + onig_node_free(quant); + if (r != 0) { + ns[4] = NULL_NODE; + onig_node_free(body); + goto err; + } + + return ONIG_NORMAL; + } + } + } + + r = node_new_save_gimmick(&ns[0], SAVE_RIGHT_RANGE, env); + if (r != 0) goto err; + + id1 = GIMMICK_(ns[0])->id; + + r = node_new_save_gimmick(&ns[1], SAVE_S, env); + if (r != 0) goto err; + + id2 = GIMMICK_(ns[1])->id; + + r = node_new_true_anychar(&ns[3]); + if (r != 0) goto err; + + possessive = 1; + r = make_absent_engine(&ns[2], id1, absent, ns[3], 0, INFINITE_REPEAT, + possessive, is_range_cutter, env); + if (r != 0) goto err; + + ns[3] = NULL_NODE; + ns[5] = NULL_NODE; + + r = node_new_update_var_gimmick(&ns[3], UPDATE_VAR_S_FROM_STACK, id2, env); + if (r != 0) goto err; + + if (is_range_cutter != 0) { + x = make_list(4, ns); + if (IS_NULL(x)) goto err0; + } + else { + r = make_absent_tail(&ns[5], &ns[6], id1, env); + if (r != 0) goto err; + + x = make_list(7, ns); + if (IS_NULL(x)) goto err0; + } + + *node = x; + return ONIG_NORMAL; + + err0: + r = ONIGERR_MEMORY; + err: + for (i = 0; i < 7; i++) onig_node_free(ns[i]); + return r; +} + +extern int +onig_node_str_cat(Node* node, const UChar* s, const UChar* end) +{ + int addlen = (int )(end - s); + + if (addlen > 0) { + int len = (int )(STR_(node)->end - STR_(node)->s); + + if (STR_(node)->capacity > 0 || (len + addlen > ND_STRING_BUF_SIZE - 1)) { + UChar* p; + int capa = len + addlen + ND_STRING_MARGIN; + + if (capa <= STR_(node)->capacity) { + onig_strcpy(STR_(node)->s + len, s, end); + } + else { + if (STR_(node)->s == STR_(node)->buf) + p = strcat_capa_from_static(STR_(node)->s, STR_(node)->end, + s, end, capa); + else + p = strcat_capa(STR_(node)->s, STR_(node)->end, s, end, capa); + + CHECK_NULL_RETURN_MEMERR(p); + STR_(node)->s = p; + STR_(node)->capacity = capa; + } + } + else { + onig_strcpy(STR_(node)->s + len, s, end); + } + STR_(node)->end = STR_(node)->s + len + addlen; + } + + return 0; +} + +extern int +onig_node_str_set(Node* node, const UChar* s, const UChar* end, int need_free) +{ + onig_node_str_clear(node, need_free); + return onig_node_str_cat(node, s, end); +} + +static int +node_str_remove_char(Node* node, UChar c) +{ + UChar* p; + int n; + + n = 0; + p = STR_(node)->s; + while (p < STR_(node)->end) { + if (*p == c) { + UChar *q, *q1; + q = q1 = p; + q1++; + while (q1 < STR_(node)->end) { + *q = *q1; + q++; q1++; + } + n++; + STR_(node)->end--; + } + else { + p++; + } + } + + return n; +} + +static int +node_str_cat_char(Node* node, UChar c) +{ + UChar s[1]; + + s[0] = c; + return onig_node_str_cat(node, s, s + 1); +} + +extern void +onig_node_str_clear(Node* node, int need_free) +{ + if (need_free != 0 && + STR_(node)->capacity != 0 && + IS_NOT_NULL(STR_(node)->s) && STR_(node)->s != STR_(node)->buf) { + xfree(STR_(node)->s); + } + + STR_(node)->flag = 0; + STR_(node)->s = STR_(node)->buf; + STR_(node)->end = STR_(node)->buf; + STR_(node)->capacity = 0; +} + +static int +node_set_str(Node* node, const UChar* s, const UChar* end) +{ + int r; + + ND_SET_TYPE(node, ND_STRING); + STR_(node)->flag = 0; + STR_(node)->s = STR_(node)->buf; + STR_(node)->end = STR_(node)->buf; + STR_(node)->capacity = 0; + + r = onig_node_str_cat(node, s, end); + return r; +} + +static Node* +node_new_str(const UChar* s, const UChar* end) +{ + int r; + Node* node = node_new(); + CHECK_NULL_RETURN(node); + + r = node_set_str(node, s, end); + if (r != 0) { + onig_node_free(node); + return NULL; + } + + return node; +} + +static int +node_reset_str(Node* node, const UChar* s, const UChar* end) +{ + node_free_body(node); + return node_set_str(node, s, end); +} + +extern int +onig_node_reset_empty(Node* node) +{ + return node_reset_str(node, NULL, NULL); +} + +extern Node* +onig_node_new_str(const UChar* s, const UChar* end) +{ + return node_new_str(s, end); +} + +static Node* +node_new_str_with_options(const UChar* s, const UChar* end, + OnigOptionType options) +{ + Node* node; + node = node_new_str(s, end); + + if (OPTON_IGNORECASE(options)) + ND_STATUS_ADD(node, IGNORECASE); + + return node; +} + +static Node* +node_new_str_crude(UChar* s, UChar* end, OnigOptionType options) +{ + Node* node = node_new_str_with_options(s, end, options); + CHECK_NULL_RETURN(node); + ND_STRING_SET_CRUDE(node); + return node; +} + +static Node* +node_new_empty(void) +{ + return node_new_str(NULL, NULL); +} + +static Node* +node_new_str_crude_char(UChar c, OnigOptionType options) +{ + int i; + UChar p[1]; + Node* node; + + p[0] = c; + node = node_new_str_crude(p, p + 1, options); + CHECK_NULL_RETURN(node); + + /* clear buf tail */ + for (i = 1; i < ND_STRING_BUF_SIZE; i++) + STR_(node)->buf[i] = '\0'; + + return node; +} + +static Node* +str_node_split_last_char(Node* node, OnigEncoding enc) +{ + const UChar *p; + Node* rn; + StrNode* sn; + + sn = STR_(node); + rn = NULL_NODE; + if (sn->end > sn->s) { + p = onigenc_get_prev_char_head(enc, sn->s, sn->end); + if (p && p > sn->s) { /* can be split. */ + rn = node_new_str(p, sn->end); + CHECK_NULL_RETURN(rn); + + sn->end = (UChar* )p; + STR_(rn)->flag = sn->flag; + ND_STATUS(rn) = ND_STATUS(node); + } + } + + return rn; +} + +static int +str_node_can_be_split(Node* node, OnigEncoding enc) +{ + StrNode* sn = STR_(node); + if (sn->end > sn->s) { + return ((enclen(enc, sn->s) < sn->end - sn->s) ? 1 : 0); + } + return 0; +} + +static int +scan_number(UChar** src, const UChar* end, OnigEncoding enc) +{ + int num, val; + OnigCodePoint c; + UChar* p; + PFETCH_READY; + + p = *src; + num = 0; + while (! PEND) { + PFETCH(c); + if (IS_CODE_DIGIT_ASCII(enc, c)) { + val = (int )DIGITVAL(c); + if ((ONIG_INT_MAX - val) / 10 < num) + return -1; /* overflow */ + + num = num * 10 + val; + } + else { + PUNFETCH; + break; + } + } + *src = p; + return num; +} + +static int +scan_hexadecimal_number(UChar** src, UChar* end, int minlen, int maxlen, + OnigEncoding enc, OnigCodePoint* rcode) +{ + OnigCodePoint code; + OnigCodePoint c; + unsigned int val; + int n; + UChar* p; + PFETCH_READY; + + p = *src; + code = 0; + n = 0; + while (! PEND && n < maxlen) { + PFETCH(c); + if (IS_CODE_XDIGIT_ASCII(enc, c)) { + n++; + val = (unsigned int )XDIGITVAL(enc, c); + if ((UINT_MAX - val) / 16UL < code) + return ONIGERR_TOO_BIG_NUMBER; /* overflow */ + + code = (code << 4) + val; + } + else { + PUNFETCH; + break; + } + } + + if (n < minlen) + return ONIGERR_INVALID_CODE_POINT_VALUE; + + *rcode = code; + *src = p; + return ONIG_NORMAL; +} + +static int +scan_octal_number(UChar** src, UChar* end, int minlen, int maxlen, + OnigEncoding enc, OnigCodePoint* rcode) +{ + OnigCodePoint code; + OnigCodePoint c; + unsigned int val; + int n; + UChar* p; + PFETCH_READY; + + p = *src; + code = 0; + n = 0; + while (! PEND && n < maxlen) { + PFETCH(c); + if (IS_CODE_DIGIT_ASCII(enc, c) && c < '8') { + n++; + val = (unsigned int )ODIGITVAL(c); + if ((UINT_MAX - val) / 8UL < code) + return ONIGERR_TOO_BIG_NUMBER; /* overflow */ + + code = (code << 3) + val; + } + else { + PUNFETCH; + break; + } + } + + if (n < minlen) + return ONIGERR_INVALID_CODE_POINT_VALUE; + + *rcode = code; + *src = p; + return ONIG_NORMAL; +} + +static int +scan_number_of_base(UChar** src, UChar* end, int minlen, + OnigEncoding enc, OnigCodePoint* rcode, int base) +{ + int r; + + if (base == 16) + r = scan_hexadecimal_number(src, end, minlen, 8, enc, rcode); + else if (base == 8) + r = scan_octal_number(src, end, minlen, 11, enc, rcode); + else + r = ONIGERR_INVALID_CODE_POINT_VALUE; + + return r; +} + +#define IS_CODE_POINT_DIVIDE(c) ((c) == ' ' || (c) == '\n') + +enum CPS_STATE { + CPS_EMPTY = 0, + CPS_START = 1, + CPS_RANGE = 2 +}; + +static int +check_code_point_sequence_cc(UChar* p, UChar* end, int base, + OnigEncoding enc, int state) +{ + int r; + int n; + int end_digit; + OnigCodePoint code; + OnigCodePoint c; + PFETCH_READY; + + end_digit = FALSE; + n = 0; + while (! PEND) { + start: + PFETCH(c); + if (c == '}') { + end_char: + if (state == CPS_RANGE) return ONIGERR_INVALID_CODE_POINT_VALUE; + return n; + } + + if (IS_CODE_POINT_DIVIDE(c)) { + while (! PEND) { + PFETCH(c); + if (! IS_CODE_POINT_DIVIDE(c)) break; + } + if (IS_CODE_POINT_DIVIDE(c)) + return ONIGERR_INVALID_CODE_POINT_VALUE; + } + else if (c == '-') { + range: + if (state != CPS_START) return ONIGERR_INVALID_CODE_POINT_VALUE; + if (PEND) return ONIGERR_INVALID_CODE_POINT_VALUE; + end_digit = FALSE; + state = CPS_RANGE; + goto start; + } + else if (end_digit == TRUE) { + if (base == 16) { + if (IS_CODE_XDIGIT_ASCII(enc, c)) + return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE; + } + else if (base == 8) { + if (IS_CODE_DIGIT_ASCII(enc, c) && c < '8') + return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE; + } + + return ONIGERR_INVALID_CODE_POINT_VALUE; + } + + if (c == '}') goto end_char; + if (c == '-') goto range; + + PUNFETCH; + r = scan_number_of_base(&p, end, 1, enc, &code, base); + if (r != 0) return r; + n++; + end_digit = TRUE; + state = (state == CPS_RANGE) ? CPS_EMPTY : CPS_START; + } + + return ONIGERR_INVALID_CODE_POINT_VALUE; +} + +static int +check_code_point_sequence(UChar* p, UChar* end, int base, OnigEncoding enc) +{ + int r; + int n; + int end_digit; + OnigCodePoint code; + OnigCodePoint c; + PFETCH_READY; + + end_digit = FALSE; + n = 0; + while (! PEND) { + PFETCH(c); + if (c == '}') { + end_char: + return n; + } + + if (IS_CODE_POINT_DIVIDE(c)) { + while (! PEND) { + PFETCH(c); + if (! IS_CODE_POINT_DIVIDE(c)) break; + } + if (IS_CODE_POINT_DIVIDE(c)) + return ONIGERR_INVALID_CODE_POINT_VALUE; + } + else if (end_digit == TRUE) { + if (base == 16) { + if (IS_CODE_XDIGIT_ASCII(enc, c)) + return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE; + } + else if (base == 8) { + if (IS_CODE_DIGIT_ASCII(enc, c) && c < '8') + return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE; + } + + return ONIGERR_INVALID_CODE_POINT_VALUE; + } + + if (c == '}') goto end_char; + + PUNFETCH; + r = scan_number_of_base(&p, end, 1, enc, &code, base); + if (r != 0) return r; + n++; + end_digit = TRUE; + } + + return ONIGERR_INVALID_CODE_POINT_VALUE; +} + +static int +get_next_code_point(UChar** src, UChar* end, int base, OnigEncoding enc, int in_cc, OnigCodePoint* rcode) +{ + int r; + OnigCodePoint c; + UChar* p; + PFETCH_READY; + + p = *src; + while (! PEND) { + PFETCH(c); + if (! IS_CODE_POINT_DIVIDE(c)) { + if (c == '}') { + *src = p; + return 1; /* end of sequence */ + } + else if (c == '-' && in_cc == TRUE) { + *src = p; + return 2; /* range */ + } + PUNFETCH; + break; + } + else { + if (PEND) + return ONIGERR_INVALID_CODE_POINT_VALUE; + } + } + + r = scan_number_of_base(&p, end, 1, enc, rcode, base); + if (r != 0) return r; + + *src = p; + return ONIG_NORMAL; +} + + +#define BB_WRITE_CODE_POINT(bbuf,pos,code) \ + BB_WRITE(bbuf, pos, &(code), SIZE_CODE_POINT) + +/* data format: + [n][from-1][to-1][from-2][to-2] ... [from-n][to-n] + (all data size is OnigCodePoint) + */ +static int +new_code_range(BBuf** pbuf) +{ +#define INIT_MULTI_BYTE_RANGE_SIZE (SIZE_CODE_POINT * 5) + int r; + OnigCodePoint n; + BBuf* bbuf; + + bbuf = *pbuf = (BBuf* )xmalloc(sizeof(BBuf)); + CHECK_NULL_RETURN_MEMERR(bbuf); + r = BB_INIT(bbuf, INIT_MULTI_BYTE_RANGE_SIZE); + if (r != 0) { + xfree(bbuf); + *pbuf = 0; + return r; + } + + n = 0; + BB_WRITE_CODE_POINT(bbuf, 0, n); + return 0; +} + +static int +add_code_range_to_buf(BBuf** pbuf, OnigCodePoint from, OnigCodePoint to) +{ + int r, inc_n, pos; + int low, high, bound, x; + OnigCodePoint n, *data; + BBuf* bbuf; + + if (from > to) { + n = from; from = to; to = n; + } + + if (IS_NULL(*pbuf)) { + r = new_code_range(pbuf); + if (r != 0) return r; + bbuf = *pbuf; + n = 0; + } + else { + bbuf = *pbuf; + GET_CODE_POINT(n, bbuf->p); + } + data = (OnigCodePoint* )(bbuf->p); + data++; + + for (low = 0, bound = n; low < bound; ) { + x = (low + bound) >> 1; + if (from > data[x*2 + 1]) + low = x + 1; + else + bound = x; + } + + high = (to == ~((OnigCodePoint )0)) ? n : low; + for (bound = n; high < bound; ) { + x = (high + bound) >> 1; + if (to + 1 >= data[x*2]) + high = x + 1; + else + bound = x; + } + + inc_n = low + 1 - high; + if (n + inc_n > ONIG_MAX_MULTI_BYTE_RANGES_NUM) + return ONIGERR_TOO_MANY_MULTI_BYTE_RANGES; + + if (inc_n != 1) { + if (from > data[low*2]) + from = data[low*2]; + if (to < data[(high - 1)*2 + 1]) + to = data[(high - 1)*2 + 1]; + } + + if (inc_n != 0 && (OnigCodePoint )high < n) { + int from_pos = SIZE_CODE_POINT * (1 + high * 2); + int to_pos = SIZE_CODE_POINT * (1 + (low + 1) * 2); + int size = (n - high) * 2 * SIZE_CODE_POINT; + + if (inc_n > 0) { + BB_MOVE_RIGHT(bbuf, from_pos, to_pos, size); + } + else { + BB_MOVE_LEFT_REDUCE(bbuf, from_pos, to_pos); + } + } + + pos = SIZE_CODE_POINT * (1 + low * 2); + BB_ENSURE_SIZE(bbuf, pos + SIZE_CODE_POINT * 2); + BB_WRITE_CODE_POINT(bbuf, pos, from); + BB_WRITE_CODE_POINT(bbuf, pos + SIZE_CODE_POINT, to); + n += inc_n; + BB_WRITE_CODE_POINT(bbuf, 0, n); + + return 0; +} + +static int +add_code_range(BBuf** pbuf, ParseEnv* env, OnigCodePoint from, OnigCodePoint to) +{ + if (from > to) { + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC)) + return 0; + else + return ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS; + } + + return add_code_range_to_buf(pbuf, from, to); +} + +static int +not_code_range_buf(OnigEncoding enc, BBuf* bbuf, BBuf** pbuf) +{ + int r, i, n; + OnigCodePoint pre, from, *data, to = 0; + + *pbuf = (BBuf* )NULL; + if (IS_NULL(bbuf)) { + set_all: + return SET_ALL_MULTI_BYTE_RANGE(enc, pbuf); + } + + data = (OnigCodePoint* )(bbuf->p); + GET_CODE_POINT(n, data); + data++; + if (n <= 0) goto set_all; + + r = 0; + pre = MBCODE_START_POS(enc); + for (i = 0; i < n; i++) { + from = data[i*2]; + to = data[i*2+1]; + if (pre <= from - 1) { + r = add_code_range_to_buf(pbuf, pre, from - 1); + if (r != 0) { + bbuf_free(*pbuf); + return r; + } + } + if (to == ~((OnigCodePoint )0)) break; + pre = to + 1; + } + if (to < ~((OnigCodePoint )0)) { + r = add_code_range_to_buf(pbuf, to + 1, ~((OnigCodePoint )0)); + if (r != 0) bbuf_free(*pbuf); + } + return r; +} + +#define SWAP_BB_NOT(bbuf1, not1, bbuf2, not2) do {\ + BBuf *tbuf; \ + int tnot; \ + tnot = not1; not1 = not2; not2 = tnot; \ + tbuf = bbuf1; bbuf1 = bbuf2; bbuf2 = tbuf; \ +} while (0) + +static int +or_code_range_buf(OnigEncoding enc, BBuf* bbuf1, int not1, + BBuf* bbuf2, int not2, BBuf** pbuf) +{ + int r; + OnigCodePoint i, n1, *data1; + OnigCodePoint from, to; + + *pbuf = (BBuf* )NULL; + if (IS_NULL(bbuf1) && IS_NULL(bbuf2)) { + if (not1 != 0 || not2 != 0) + return SET_ALL_MULTI_BYTE_RANGE(enc, pbuf); + return 0; + } + + r = 0; + if (IS_NULL(bbuf2)) + SWAP_BB_NOT(bbuf1, not1, bbuf2, not2); + + if (IS_NULL(bbuf1)) { + if (not1 != 0) { + return SET_ALL_MULTI_BYTE_RANGE(enc, pbuf); + } + else { + if (not2 == 0) { + return bbuf_clone(pbuf, bbuf2); + } + else { + return not_code_range_buf(enc, bbuf2, pbuf); + } + } + } + + if (not1 != 0) + SWAP_BB_NOT(bbuf1, not1, bbuf2, not2); + + data1 = (OnigCodePoint* )(bbuf1->p); + GET_CODE_POINT(n1, data1); + data1++; + + if (not2 == 0 && not1 == 0) { /* 1 OR 2 */ + r = bbuf_clone(pbuf, bbuf2); + } + else if (not1 == 0) { /* 1 OR (not 2) */ + r = not_code_range_buf(enc, bbuf2, pbuf); + } + if (r != 0) return r; + + for (i = 0; i < n1; i++) { + from = data1[i*2]; + to = data1[i*2+1]; + r = add_code_range_to_buf(pbuf, from, to); + if (r != 0) return r; + } + return 0; +} + +static int +and_code_range1(BBuf** pbuf, OnigCodePoint from1, OnigCodePoint to1, + OnigCodePoint* data, int n) +{ + int i, r; + OnigCodePoint from2, to2; + + for (i = 0; i < n; i++) { + from2 = data[i*2]; + to2 = data[i*2+1]; + if (from2 < from1) { + if (to2 < from1) continue; + else { + from1 = to2 + 1; + } + } + else if (from2 <= to1) { + if (to2 < to1) { + if (from1 <= from2 - 1) { + r = add_code_range_to_buf(pbuf, from1, from2-1); + if (r != 0) return r; + } + from1 = to2 + 1; + } + else { + to1 = from2 - 1; + } + } + else { + from1 = from2; + } + if (from1 > to1) break; + } + if (from1 <= to1) { + r = add_code_range_to_buf(pbuf, from1, to1); + if (r != 0) return r; + } + return 0; +} + +static int +and_code_range_buf(BBuf* bbuf1, int not1, BBuf* bbuf2, int not2, BBuf** pbuf) +{ + int r; + OnigCodePoint i, j, n1, n2, *data1, *data2; + OnigCodePoint from, to, from1, to1, from2, to2; + + *pbuf = (BBuf* )NULL; + if (IS_NULL(bbuf1)) { + if (not1 != 0 && IS_NOT_NULL(bbuf2)) /* not1 != 0 -> not2 == 0 */ + return bbuf_clone(pbuf, bbuf2); + return 0; + } + else if (IS_NULL(bbuf2)) { + if (not2 != 0) + return bbuf_clone(pbuf, bbuf1); + return 0; + } + + if (not1 != 0) + SWAP_BB_NOT(bbuf1, not1, bbuf2, not2); + + data1 = (OnigCodePoint* )(bbuf1->p); + data2 = (OnigCodePoint* )(bbuf2->p); + GET_CODE_POINT(n1, data1); + GET_CODE_POINT(n2, data2); + data1++; + data2++; + + if (not2 == 0 && not1 == 0) { /* 1 AND 2 */ + for (i = 0; i < n1; i++) { + from1 = data1[i*2]; + to1 = data1[i*2+1]; + for (j = 0; j < n2; j++) { + from2 = data2[j*2]; + to2 = data2[j*2+1]; + if (from2 > to1) break; + if (to2 < from1) continue; + from = MAX(from1, from2); + to = MIN(to1, to2); + r = add_code_range_to_buf(pbuf, from, to); + if (r != 0) return r; + } + } + } + else if (not1 == 0) { /* 1 AND (not 2) */ + for (i = 0; i < n1; i++) { + from1 = data1[i*2]; + to1 = data1[i*2+1]; + r = and_code_range1(pbuf, from1, to1, data2, n2); + if (r != 0) return r; + } + } + + return 0; +} + +static int +and_cclass(CClassNode* dest, CClassNode* cc, OnigEncoding enc) +{ + int r, not1, not2; + BBuf *buf1, *buf2, *pbuf; + BitSetRef bsr1, bsr2; + BitSet bs1, bs2; + + not1 = IS_NCCLASS_NOT(dest); + bsr1 = dest->bs; + buf1 = dest->mbuf; + not2 = IS_NCCLASS_NOT(cc); + bsr2 = cc->bs; + buf2 = cc->mbuf; + + if (not1 != 0) { + bitset_invert_to(bsr1, bs1); + bsr1 = bs1; + } + if (not2 != 0) { + bitset_invert_to(bsr2, bs2); + bsr2 = bs2; + } + bitset_and(bsr1, bsr2); + if (bsr1 != dest->bs) { + bitset_copy(dest->bs, bsr1); + } + if (not1 != 0) { + bitset_invert(dest->bs); + } + + if (! ONIGENC_IS_SINGLEBYTE(enc)) { + if (not1 != 0 && not2 != 0) { + r = or_code_range_buf(enc, buf1, 0, buf2, 0, &pbuf); + } + else { + r = and_code_range_buf(buf1, not1, buf2, not2, &pbuf); + if (r == 0 && not1 != 0) { + BBuf *tbuf; + r = not_code_range_buf(enc, pbuf, &tbuf); + if (r != 0) { + bbuf_free(pbuf); + return r; + } + bbuf_free(pbuf); + pbuf = tbuf; + } + } + if (r != 0) return r; + + dest->mbuf = pbuf; + bbuf_free(buf1); + return r; + } + return 0; +} + +static int +or_cclass(CClassNode* dest, CClassNode* cc, OnigEncoding enc) +{ + int r, not1, not2; + BBuf *buf1, *buf2, *pbuf; + BitSetRef bsr1, bsr2; + BitSet bs1, bs2; + + not1 = IS_NCCLASS_NOT(dest); + bsr1 = dest->bs; + buf1 = dest->mbuf; + not2 = IS_NCCLASS_NOT(cc); + bsr2 = cc->bs; + buf2 = cc->mbuf; + + if (not1 != 0) { + bitset_invert_to(bsr1, bs1); + bsr1 = bs1; + } + if (not2 != 0) { + bitset_invert_to(bsr2, bs2); + bsr2 = bs2; + } + bitset_or(bsr1, bsr2); + if (bsr1 != dest->bs) { + bitset_copy(dest->bs, bsr1); + } + if (not1 != 0) { + bitset_invert(dest->bs); + } + + if (! ONIGENC_IS_SINGLEBYTE(enc)) { + if (not1 != 0 && not2 != 0) { + r = and_code_range_buf(buf1, 0, buf2, 0, &pbuf); + } + else { + r = or_code_range_buf(enc, buf1, not1, buf2, not2, &pbuf); + if (r == 0 && not1 != 0) { + BBuf *tbuf; + r = not_code_range_buf(enc, pbuf, &tbuf); + if (r != 0) { + bbuf_free(pbuf); + return r; + } + bbuf_free(pbuf); + pbuf = tbuf; + } + } + if (r != 0) return r; + + dest->mbuf = pbuf; + bbuf_free(buf1); + return r; + } + else + return 0; +} + +static OnigCodePoint +conv_backslash_value(OnigCodePoint c, ParseEnv* env) +{ + if (IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_CONTROL_CHARS)) { + switch (c) { + case 'n': return '\n'; + case 't': return '\t'; + case 'r': return '\r'; + case 'f': return '\f'; + case 'a': return '\007'; + case 'b': return '\010'; + case 'e': return '\033'; + case 'v': + if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ESC_V_VTAB)) + return '\v'; + break; + + default: + break; + } + } + return c; +} + +static int +is_invalid_quantifier_target(Node* node) +{ + switch (ND_TYPE(node)) { + case ND_ANCHOR: + case ND_GIMMICK: + return 1; + break; + + case ND_BAG: + /* allow enclosed elements */ + /* return is_invalid_quantifier_target(ND_BODY(node)); */ + break; + + case ND_LIST: + do { + if (! is_invalid_quantifier_target(ND_CAR(node))) return 0; + } while (IS_NOT_NULL(node = ND_CDR(node))); + return 0; + break; + + case ND_ALT: + do { + if (is_invalid_quantifier_target(ND_CAR(node))) return 1; + } while (IS_NOT_NULL(node = ND_CDR(node))); + break; + + default: + break; + } + return 0; +} + +/* ?:0, *:1, +:2, ??:3, *?:4, +?:5 */ +static int +quantifier_type_num(QuantNode* q) +{ + if (q->greedy) { + if (q->lower == 0) { + if (q->upper == 1) return 0; + else if (IS_INFINITE_REPEAT(q->upper)) return 1; + } + else if (q->lower == 1) { + if (IS_INFINITE_REPEAT(q->upper)) return 2; + } + } + else { + if (q->lower == 0) { + if (q->upper == 1) return 3; + else if (IS_INFINITE_REPEAT(q->upper)) return 4; + } + else if (q->lower == 1) { + if (IS_INFINITE_REPEAT(q->upper)) return 5; + } + } + return -1; +} + + +enum ReduceType { + RQ_ASIS = 0, /* as is */ + RQ_DEL, /* delete parent */ + RQ_A, /* to '*' */ + RQ_P, /* to '+' */ + RQ_AQ, /* to '*?' */ + RQ_QQ, /* to '??' */ + RQ_P_QQ, /* to '+)??' */ +}; + +static enum ReduceType ReduceTypeTable[6][6] = { + {RQ_DEL, RQ_A, RQ_A, RQ_QQ, RQ_AQ, RQ_ASIS}, /* '?' */ + {RQ_DEL, RQ_DEL, RQ_DEL, RQ_P_QQ, RQ_P_QQ, RQ_DEL}, /* '*' */ + {RQ_A, RQ_A, RQ_DEL, RQ_ASIS, RQ_P_QQ, RQ_DEL}, /* '+' */ + {RQ_DEL, RQ_AQ, RQ_AQ, RQ_DEL, RQ_AQ, RQ_AQ}, /* '??' */ + {RQ_DEL, RQ_DEL, RQ_DEL, RQ_DEL, RQ_DEL, RQ_DEL}, /* '*?' */ + {RQ_ASIS, RQ_A, RQ_P, RQ_AQ, RQ_AQ, RQ_DEL} /* '+?' */ +}; + +extern int +onig_reduce_nested_quantifier(Node* pnode) +{ + int pnum, cnum; + QuantNode *p, *c; + Node* cnode; + + cnode = ND_BODY(pnode); + + p = QUANT_(pnode); + c = QUANT_(cnode); + pnum = quantifier_type_num(p); + cnum = quantifier_type_num(c); + if (pnum < 0 || cnum < 0) { + if (p->lower == p->upper && c->lower == c->upper) { + int n = onig_positive_int_multiply(p->lower, c->lower); + if (n < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; + + p->lower = p->upper = n; + ND_BODY(pnode) = ND_BODY(cnode); + goto remove_cnode; + } + + return 0; + } + + switch(ReduceTypeTable[cnum][pnum]) { + case RQ_DEL: + *pnode = *cnode; + goto remove_cnode; + break; + case RQ_A: + ND_BODY(pnode) = ND_BODY(cnode); + p->lower = 0; p->upper = INFINITE_REPEAT; p->greedy = 1; + goto remove_cnode; + break; + case RQ_P: + ND_BODY(pnode) = ND_BODY(cnode); + p->lower = 1; p->upper = INFINITE_REPEAT; p->greedy = 1; + goto remove_cnode; + break; + case RQ_AQ: + ND_BODY(pnode) = ND_BODY(cnode); + p->lower = 0; p->upper = INFINITE_REPEAT; p->greedy = 0; + goto remove_cnode; + break; + case RQ_QQ: + ND_BODY(pnode) = ND_BODY(cnode); + p->lower = 0; p->upper = 1; p->greedy = 0; + goto remove_cnode; + break; + case RQ_P_QQ: + p->lower = 0; p->upper = 1; p->greedy = 0; + c->lower = 1; c->upper = INFINITE_REPEAT; c->greedy = 1; + break; + case RQ_ASIS: + break; + } + + return 0; + + remove_cnode: + ND_BODY(cnode) = NULL_NODE; + onig_node_free(cnode); + return 0; +} + +static int +node_new_general_newline(Node** node, ParseEnv* env) +{ + int r; + int dlen, alen; + UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN * 2]; + Node* crnl; + Node* ncc; + Node* x; + CClassNode* cc; + + dlen = ONIGENC_CODE_TO_MBC(env->enc, 0x0d, buf); + if (dlen < 0) return dlen; + alen = ONIGENC_CODE_TO_MBC(env->enc, NEWLINE_CODE, buf + dlen); + if (alen < 0) return alen; + + crnl = node_new_str_crude(buf, buf + dlen + alen, ONIG_OPTION_NONE); + CHECK_NULL_RETURN_MEMERR(crnl); + + ncc = node_new_cclass(); + if (IS_NULL(ncc)) goto err2; + + cc = CCLASS_(ncc); + if (dlen == 1) { + bitset_set_range(cc->bs, NEWLINE_CODE, 0x0d); + } + else { + r = add_code_range(&(cc->mbuf), env, NEWLINE_CODE, 0x0d); + if (r != 0) { + err1: + onig_node_free(ncc); + err2: + onig_node_free(crnl); + return ONIGERR_MEMORY; + } + } + + if (ONIGENC_IS_UNICODE_ENCODING(env->enc)) { + r = add_code_range(&(cc->mbuf), env, 0x85, 0x85); + if (r != 0) goto err1; + r = add_code_range(&(cc->mbuf), env, 0x2028, 0x2029); + if (r != 0) goto err1; + } + + x = node_new_bag_if_else(crnl, NULL_NODE, ncc); + if (IS_NULL(x)) goto err1; + + *node = x; + return 0; +} + +enum TokenSyms { + TK_EOT = 0, /* end of token */ + TK_CRUDE_BYTE, + TK_CHAR, + TK_STRING, + TK_CODE_POINT, + TK_ANYCHAR, + TK_CHAR_TYPE, + TK_BACKREF, + TK_CALL, + TK_ANCHOR, + TK_REPEAT, + TK_INTERVAL, + TK_ANYCHAR_ANYTIME, /* SQL '%' == .* */ + TK_ALT, + TK_SUBEXP_OPEN, + TK_SUBEXP_CLOSE, + TK_OPEN_CC, + TK_QUOTE_OPEN, + TK_CHAR_PROPERTY, /* \p{...}, \P{...} */ + TK_KEEP, /* \K */ + TK_GENERAL_NEWLINE, /* \R */ + TK_NO_NEWLINE, /* \N */ + TK_TRUE_ANYCHAR, /* \O */ + TK_TEXT_SEGMENT, /* \X */ + + /* in cc */ + TK_CC_CLOSE, + TK_CC_RANGE, + TK_CC_POSIX_BRACKET_OPEN, + TK_CC_AND, /* && */ + TK_CC_OPEN_CC /* [ */ +}; + +typedef struct { + enum TokenSyms type; + int code_point_continue; + int escaped; + int base_num; /* is number: 8, 16 (used in [....]) */ + UChar* backp; + union { + UChar* s; + UChar byte; + OnigCodePoint code; + int anchor; + int subtype; + struct { + int lower; + int upper; + int greedy; + int possessive; + } repeat; + struct { + int num; + int ref1; + int* refs; + int by_name; +#ifdef USE_BACKREF_WITH_LEVEL + int exist_level; + int level; /* \k */ +#endif + } backref; + struct { + UChar* name; + UChar* name_end; + int gnum; + int by_number; + } call; + struct { + int ctype; + int not; + } prop; + } u; +} PToken; + +static void +ptoken_init(PToken* tok) +{ + tok->code_point_continue = 0; +} + +static int +fetch_interval(UChar** src, UChar* end, PToken* tok, ParseEnv* env) +{ + int low, up, syn_allow, non_low; + int r; + OnigCodePoint c; + OnigEncoding enc; + UChar* p; + PFETCH_READY; + + p = *src; + r = 0; + non_low = 0; + enc = env->enc; + syn_allow = IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_INVALID_INTERVAL); + + if (PEND) { + if (syn_allow) + return 1; /* "....{" : OK! */ + else + return ONIGERR_END_PATTERN_AT_LEFT_BRACE; /* "....{" syntax error */ + } + + if (! syn_allow) { + c = PPEEK; + if (c == ')' || c == '(' || c == '|') { + return ONIGERR_END_PATTERN_AT_LEFT_BRACE; + } + } + + low = scan_number(&p, end, env->enc); + if (low < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; + if (low > ONIG_MAX_REPEAT_NUM) + return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; + + if (p == *src) { /* can't read low */ + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV)) { + /* allow {,n} as {0,n} */ + low = 0; + non_low = 1; + } + else + goto invalid; + } + + if (PEND) goto invalid; + PFETCH(c); + if (c == ',') { + UChar* prev = p; + up = scan_number(&p, end, env->enc); + if (up < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; + if (up > ONIG_MAX_REPEAT_NUM) + return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; + + if (p == prev) { + if (non_low != 0) + goto invalid; + up = INFINITE_REPEAT; /* {n,} : {n,infinite} */ + } + } + else { + if (non_low != 0) + goto invalid; + + PUNFETCH; + up = low; /* {n} : exact n times */ + r = 2; /* fixed */ + } + + if (PEND) goto invalid; + PFETCH(c); + if (IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_BRACE_INTERVAL)) { + if (c != MC_ESC(env->syntax) || PEND) goto invalid; + PFETCH(c); + } + if (c != '}') goto invalid; + + if (!IS_INFINITE_REPEAT(up) && low > up) { + /* {n,m}+ supported case */ + if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL)) + return ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE; + + tok->u.repeat.possessive = 1; + { + int tmp; + tmp = low; low = up; up = tmp; + } + } + else + tok->u.repeat.possessive = 0; + + tok->type = TK_INTERVAL; + tok->u.repeat.lower = low; + tok->u.repeat.upper = up; + *src = p; + return r; /* 0: normal {n,m}, 2: fixed {n} */ + + invalid: + if (syn_allow) { + /* *src = p; */ /* !!! Don't do this line !!! */ + return 1; /* OK */ + } + else + return ONIGERR_INVALID_REPEAT_RANGE_PATTERN; +} + +/* \M-, \C-, \c, or \... */ +static int +fetch_escaped_value_raw(UChar** src, UChar* end, ParseEnv* env, + OnigCodePoint* val) +{ + int v; + OnigCodePoint c; + OnigEncoding enc = env->enc; + UChar* p = *src; + + if (PEND) return ONIGERR_END_PATTERN_AT_ESCAPE; + + PFETCH_S(c); + switch (c) { + case 'M': + if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META)) { + if (PEND) return ONIGERR_END_PATTERN_AT_META; + PFETCH_S(c); + if (c != '-') return ONIGERR_META_CODE_SYNTAX; + if (PEND) return ONIGERR_END_PATTERN_AT_META; + PFETCH_S(c); + if (c == MC_ESC(env->syntax)) { + v = fetch_escaped_value_raw(&p, end, env, &c); + if (v < 0) return v; + } + c = ((c & 0xff) | 0x80); + } + else + goto backslash; + break; + + case 'C': + if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL)) { + if (PEND) return ONIGERR_END_PATTERN_AT_CONTROL; + PFETCH_S(c); + if (c != '-') return ONIGERR_CONTROL_CODE_SYNTAX; + goto control; + } + else + goto backslash; + + case 'c': + if (IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_C_CONTROL)) { + control: + if (PEND) return ONIGERR_END_PATTERN_AT_CONTROL; + PFETCH_S(c); + if (c == '?') { + c = 0177; + } + else { + if (c == MC_ESC(env->syntax)) { + v = fetch_escaped_value_raw(&p, end, env, &c); + if (v < 0) return v; + } + c &= 0x9f; + } + break; + } + /* fall through */ + + default: + { + backslash: + c = conv_backslash_value(c, env); + } + break; + } + + *src = p; + *val = c; + return 0; +} + +static int +fetch_escaped_value(UChar** src, UChar* end, ParseEnv* env, OnigCodePoint* val) +{ + int r; + int len; + + r = fetch_escaped_value_raw(src, end, env, val); + if (r != 0) return r; + + len = ONIGENC_CODE_TO_MBCLEN(env->enc, *val); + if (len < 0) return len; + + return 0; +} + +static int fetch_token(PToken* tok, UChar** src, UChar* end, ParseEnv* env); + +static OnigCodePoint +get_name_end_code_point(OnigCodePoint start) +{ + switch (start) { + case '<': return (OnigCodePoint )'>'; break; + case '\'': return (OnigCodePoint )'\''; break; + case '(': return (OnigCodePoint )')'; break; + default: + break; + } + + return (OnigCodePoint )0; +} + +enum REF_NUM { + IS_NOT_NUM = 0, + IS_ABS_NUM = 1, + IS_REL_NUM = 2 +}; + +#ifdef USE_BACKREF_WITH_LEVEL +/* + \k, \k + \k, \k + \k<-num+n>, \k<-num-n> + \k<+num+n>, \k<+num-n> +*/ +static int +fetch_name_with_level(OnigCodePoint start_code, UChar** src, UChar* end, + UChar** rname_end, ParseEnv* env, + int* rback_num, int* rlevel, enum REF_NUM* num_type) +{ + int r, sign, exist_level; + int digit_count; + OnigCodePoint end_code; + OnigCodePoint c; + OnigEncoding enc; + UChar *name_end; + UChar *pnum_head; + UChar *p; + PFETCH_READY; + + p = *src; + c = 0; + enc = env->enc; + *rback_num = 0; + exist_level = 0; + *num_type = IS_NOT_NUM; + sign = 1; + pnum_head = *src; + + end_code = get_name_end_code_point(start_code); + + *rlevel = 0; + digit_count = 0; + name_end = end; + r = 0; + if (PEND) { + return ONIGERR_EMPTY_GROUP_NAME; + } + else { + PFETCH(c); + if (c == end_code) + return ONIGERR_EMPTY_GROUP_NAME; + + if (IS_CODE_DIGIT_ASCII(enc, c)) { + *num_type = IS_ABS_NUM; + digit_count++; + } + else if (c == '-') { + *num_type = IS_REL_NUM; + sign = -1; + pnum_head = p; + } + else if (c == '+') { + *num_type = IS_REL_NUM; + sign = 1; + pnum_head = p; + } + else if (!ONIGENC_IS_CODE_WORD(enc, c)) { + r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME; + } + } + + while (!PEND) { + name_end = p; + PFETCH(c); + if (c == end_code || c == ')' || c == '+' || c == '-') { + if (*num_type != IS_NOT_NUM && digit_count == 0) + r = ONIGERR_INVALID_GROUP_NAME; + break; + } + + if (*num_type != IS_NOT_NUM) { + if (IS_CODE_DIGIT_ASCII(enc, c)) { + digit_count++; + } + else { + r = ONIGERR_INVALID_GROUP_NAME; + *num_type = IS_NOT_NUM; + } + } + else if (!ONIGENC_IS_CODE_WORD(enc, c)) { + r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME; + } + } + + if (r == 0 && c != end_code) { + if (c == '+' || c == '-') { + int level; + int flag = (c == '-' ? -1 : 1); + + if (PEND) { + r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME; + goto end; + } + PFETCH(c); + if (! IS_CODE_DIGIT_ASCII(enc, c)) goto err; + PUNFETCH; + level = scan_number(&p, end, enc); + if (level < 0) return ONIGERR_TOO_BIG_NUMBER; + *rlevel = (level * flag); + exist_level = 1; + + if (!PEND) { + PFETCH(c); + if (c == end_code) + goto end; + } + } + + err: + name_end = end; + err2: + r = ONIGERR_INVALID_GROUP_NAME; + } + + end: + if (r == 0) { + if (*num_type != IS_NOT_NUM) { + *rback_num = scan_number(&pnum_head, name_end, enc); + if (*rback_num < 0) return ONIGERR_TOO_BIG_NUMBER; + else if (*rback_num == 0) { + if (*num_type == IS_REL_NUM) + goto err2; + } + + *rback_num *= sign; + } + + *rname_end = name_end; + *src = p; + return (exist_level ? 1 : 0); + } + else { + onig_scan_env_set_error_string(env, r, *src, name_end); + return r; + } +} +#endif /* USE_BACKREF_WITH_LEVEL */ + +/* + ref: 0 -> define name (don't allow number name) + 1 -> reference name (allow number name) +*/ +static int +fetch_name(OnigCodePoint start_code, UChar** src, UChar* end, + UChar** rname_end, ParseEnv* env, int* rback_num, + enum REF_NUM* num_type, int is_ref) +{ + int r, sign; + int digit_count; + OnigCodePoint end_code; + OnigCodePoint c = 0; + OnigEncoding enc = env->enc; + UChar *name_end; + UChar *pnum_head; + UChar *p = *src; + + *rback_num = 0; + + end_code = get_name_end_code_point(start_code); + + digit_count = 0; + name_end = end; + pnum_head = *src; + r = 0; + *num_type = IS_NOT_NUM; + sign = 1; + if (PEND) { + return ONIGERR_EMPTY_GROUP_NAME; + } + else { + PFETCH_S(c); + if (c == end_code) + return ONIGERR_EMPTY_GROUP_NAME; + + if (IS_CODE_DIGIT_ASCII(enc, c)) { + if (is_ref == TRUE) + *num_type = IS_ABS_NUM; + else { + r = ONIGERR_INVALID_GROUP_NAME; + } + digit_count++; + } + else if (c == '-') { + if (is_ref == TRUE) { + *num_type = IS_REL_NUM; + sign = -1; + pnum_head = p; + } + else { + r = ONIGERR_INVALID_GROUP_NAME; + } + } + else if (c == '+') { + if (is_ref == TRUE) { + *num_type = IS_REL_NUM; + sign = 1; + pnum_head = p; + } + else { + r = ONIGERR_INVALID_GROUP_NAME; + } + } + else if (!ONIGENC_IS_CODE_WORD(enc, c)) { + r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME; + } + } + + if (r == 0) { + while (!PEND) { + name_end = p; + PFETCH_S(c); + if (c == end_code || c == ')') { + if (*num_type != IS_NOT_NUM && digit_count == 0) + r = ONIGERR_INVALID_GROUP_NAME; + break; + } + + if (*num_type != IS_NOT_NUM) { + if (IS_CODE_DIGIT_ASCII(enc, c)) { + digit_count++; + } + else { + if (!ONIGENC_IS_CODE_WORD(enc, c)) + r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME; + else + r = ONIGERR_INVALID_GROUP_NAME; + + *num_type = IS_NOT_NUM; + } + } + else { + if (!ONIGENC_IS_CODE_WORD(enc, c)) { + r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME; + } + } + } + + if (c != end_code) { + r = ONIGERR_INVALID_GROUP_NAME; + goto err; + } + + if (*num_type != IS_NOT_NUM) { + *rback_num = scan_number(&pnum_head, name_end, enc); + if (*rback_num < 0) return ONIGERR_TOO_BIG_NUMBER; + else if (*rback_num == 0) { + if (*num_type == IS_REL_NUM) { + r = ONIGERR_INVALID_GROUP_NAME; + goto err; + } + } + + *rback_num *= sign; + } + + *rname_end = name_end; + *src = p; + return 0; + } + else { + while (!PEND) { + name_end = p; + PFETCH_S(c); + if (c == end_code || c == ')') + break; + } + if (PEND) + name_end = end; + + err: + onig_scan_env_set_error_string(env, r, *src, name_end); + return r; + } +} + +static void +CC_ESC_WARN(ParseEnv* env, UChar *c) +{ + if (onig_warn == onig_null_warn) return ; + + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_WARN_CC_OP_NOT_ESCAPED) && + IS_SYNTAX_BV(env->syntax, ONIG_SYN_BACKSLASH_ESCAPE_IN_CC)) { + UChar buf[WARN_BUFSIZE]; + onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc, + env->pattern, env->pattern_end, + "character class has '%s' without escape", + c); + (*onig_warn)((char* )buf); + } +} + +static void +CLOSE_BRACKET_WITHOUT_ESC_WARN(ParseEnv* env, UChar* c) +{ + if (onig_warn == onig_null_warn) return ; + + if (IS_SYNTAX_BV((env)->syntax, ONIG_SYN_WARN_CC_OP_NOT_ESCAPED)) { + UChar buf[WARN_BUFSIZE]; + onig_snprintf_with_pattern(buf, WARN_BUFSIZE, (env)->enc, + (env)->pattern, (env)->pattern_end, + "regular expression has '%s' without escape", c); + (*onig_warn)((char* )buf); + } +} + +static UChar* +find_str_position(OnigCodePoint s[], int n, UChar* from, UChar* to, + UChar **next, OnigEncoding enc) +{ + int i; + OnigCodePoint x; + UChar *q; + UChar *p = from; + + while (p < to) { + x = ONIGENC_MBC_TO_CODE(enc, p, to); + q = p + enclen(enc, p); + if (x == s[0]) { + for (i = 1; i < n && q < to; i++) { + x = ONIGENC_MBC_TO_CODE(enc, q, to); + if (x != s[i]) break; + q += enclen(enc, q); + } + if (i >= n) { + if (IS_NOT_NULL(next)) + *next = q; + return p; + } + } + p = q; + } + return NULL_UCHARP; +} + +static int +is_head_of_bre_subexp(UChar* p, UChar* end, OnigEncoding enc, ParseEnv* env) +{ + UChar* start; + OnigCodePoint code; + + start = env->pattern; + if (p > start) { + p = onigenc_get_prev_char_head(enc, start, p); + if (p > start) { + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (code == '(' || + (code == '|' && + IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_VBAR_ALT))) { + p = onigenc_get_prev_char_head(enc, start, p); + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (IS_MC_ESC_CODE(code, env->syntax)) { + int count = 0; + while (p > start) { + p = onigenc_get_prev_char_head(enc, start, p); + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (! IS_MC_ESC_CODE(code, env->syntax)) break; + count++; + } + return (count % 2 == 0); + } + } + } + return FALSE; + } + else { + return TRUE; + } +} + +static int +is_end_of_bre_subexp(UChar* p, UChar* end, OnigEncoding enc, ParseEnv* env) +{ + OnigCodePoint code; + + if (p == end) return TRUE; + + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (IS_MC_ESC_CODE(code, env->syntax)) { + p += ONIGENC_MBC_ENC_LEN(enc, p); + if (p < end) { + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (code == ')' || + (code == '|' && + IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_VBAR_ALT))) + return TRUE; + } + } + + return FALSE; +} + +static int +is_posix_bracket_start(UChar* from, UChar* to, OnigEncoding enc) +{ + int n; + OnigCodePoint x; + UChar *p; + + n = 0; + p = from; + while (p < to) { + x = ONIGENC_MBC_TO_CODE(enc, p, to); + p += enclen(enc, p); + if (x == ':') { + if (p < to) { + x = ONIGENC_MBC_TO_CODE(enc, p, to); + if (x == ']') { + if (n == 0) return FALSE; + else return TRUE; + } + } + + return FALSE; + } + else if (x == '^' && n == 0) { + ; + } + else if (! ONIGENC_IS_CODE_ALPHA(enc, x)) { + break; + } + + n += 1; + } + + return FALSE; +} + +static int +fetch_token_cc(PToken* tok, UChar** src, UChar* end, ParseEnv* env, int state) +{ + int r; + OnigCodePoint code; + OnigCodePoint c, c2; + int mindigits, maxdigits; + OnigSyntaxType* syn; + OnigEncoding enc; + UChar* prev; + UChar* p; + PFETCH_READY; + + p = *src; + enc = env->enc; + syn = env->syntax; + if (tok->code_point_continue != 0) { + r = get_next_code_point(&p, end, tok->base_num, enc, TRUE, &code); + if (r == 1) { + tok->code_point_continue = 0; + } + else if (r == 2) { + tok->type = TK_CC_RANGE; + goto end; + } + else if (r == 0) { + tok->type = TK_CODE_POINT; + tok->u.code = code; + goto end; + } + else + return r; /* error */ + } + + if (PEND) { + tok->type = TK_EOT; + return tok->type; + } + + PFETCH(c); + tok->type = TK_CHAR; + tok->base_num = 0; + tok->u.code = c; + tok->escaped = 0; + + if (c == ']') { + tok->type = TK_CC_CLOSE; + } + else if (c == '-') { + tok->type = TK_CC_RANGE; + } + else if (c == MC_ESC(syn)) { + if (! IS_SYNTAX_BV(syn, ONIG_SYN_BACKSLASH_ESCAPE_IN_CC)) + goto end; + + if (PEND) return ONIGERR_END_PATTERN_AT_ESCAPE; + + PFETCH(c); + tok->escaped = 1; + tok->u.code = c; + switch (c) { + case 'w': + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_WORD; + tok->u.prop.not = 0; + break; + case 'W': + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_WORD; + tok->u.prop.not = 1; + break; + case 'd': + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_DIGIT; + tok->u.prop.not = 0; + break; + case 'D': + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_DIGIT; + tok->u.prop.not = 1; + break; + case 's': + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_SPACE; + tok->u.prop.not = 0; + break; + case 'S': + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_SPACE; + tok->u.prop.not = 1; + break; + case 'h': + if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_H_XDIGIT)) break; + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_XDIGIT; + tok->u.prop.not = 0; + break; + case 'H': + if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_H_XDIGIT)) break; + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_XDIGIT; + tok->u.prop.not = 1; + break; + + case 'p': + case 'P': + if (PEND) break; + + c2 = PPEEK; + if (c2 == '{' && + IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY)) { + PINC; + tok->type = TK_CHAR_PROPERTY; + tok->u.prop.not = c == 'P'; + + if (!PEND && IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT)) { + PFETCH(c2); + if (c2 == '^') { + tok->u.prop.not = tok->u.prop.not == 0; + } + else + PUNFETCH; + } + } + break; + + case 'o': + if (PEND) break; + + prev = p; + if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_O_BRACE_OCTAL)) { + PINC; + r = scan_octal_number(&p, end, 0, 11, enc, &code); + if (r < 0) return r; + if (!PEND) { + c2 = PPEEK; + if (IS_CODE_DIGIT_ASCII(enc, c2)) + return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE; + } + + tok->base_num = 8; + goto brace_code_point_entry; + } + break; + + case 'x': + if (PEND) break; + + prev = p; + if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_BRACE_HEX8)) { + PINC; + r = scan_hexadecimal_number(&p, end, 0, 8, enc, &code); + if (r < 0) return r; + if (!PEND) { + c2 = PPEEK; + if (IS_CODE_XDIGIT_ASCII(enc, c2)) + return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE; + } + + tok->base_num = 16; + brace_code_point_entry: + if ((p > prev + enclen(enc, prev))) { + if (PEND) return ONIGERR_INVALID_CODE_POINT_VALUE; + if (PPEEK_IS('}')) { + PINC; + } + else { + int curr_state; + + curr_state = (state == CS_RANGE) ? CPS_EMPTY : CPS_START; + r = check_code_point_sequence_cc(p, end, tok->base_num, enc, + curr_state); + if (r < 0) return r; + if (r == 0) return ONIGERR_INVALID_CODE_POINT_VALUE; + tok->code_point_continue = TRUE; + } + tok->type = TK_CODE_POINT; + tok->u.code = code; + } + else { + /* can't read nothing or invalid format */ + p = prev; + } + } + else if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_HEX2)) { + r = scan_hexadecimal_number(&p, end, 0, 2, enc, &code); + if (r < 0) return r; + if (p == prev) { /* can't read nothing. */ + code = 0; /* but, it's not error */ + } + tok->type = TK_CRUDE_BYTE; + tok->base_num = 16; + tok->u.byte = (UChar )code; + } + break; + + case 'u': + if (PEND) break; + prev = p; + if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_U_HEX4)) { + mindigits = maxdigits = 4; + u_hex_digits: + r = scan_hexadecimal_number(&p, end, mindigits, maxdigits, enc, &code); + if (r < 0) return r; + if (p == prev) { /* can't read nothing. */ + code = 0; /* but, it's not error */ + } + tok->type = TK_CODE_POINT; + tok->base_num = 16; + tok->u.code = code; + } + break; + + case 'U': + if (PEND) break; + prev = p; + if (IS_SYNTAX_BV(syn, ONIG_SYN_PYTHON)) { + mindigits = maxdigits = 8; + goto u_hex_digits; + } + break; + + case '0': + case '1': case '2': case '3': case '4': case '5': case '6': case '7': + if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_OCTAL3)) { + PUNFETCH; + prev = p; + r = scan_octal_number(&p, end, 0, 3, enc, &code); + if (r < 0) return r; + if (code >= 256) return ONIGERR_TOO_BIG_NUMBER; + if (p == prev) { /* can't read nothing. */ + code = 0; /* but, it's not error */ + } + tok->type = TK_CRUDE_BYTE; + tok->base_num = 8; + tok->u.byte = (UChar )code; + } + break; + + default: + PUNFETCH; + r = fetch_escaped_value(&p, end, env, &c2); + if (r < 0) return r; + if (tok->u.code != c2) { + tok->u.code = c2; + tok->type = TK_CODE_POINT; + } + break; + } + } + else if (c == '[') { + if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_POSIX_BRACKET) && (PPEEK_IS(':'))) { + tok->backp = p; /* point at '[' is read */ + PINC; + if (is_posix_bracket_start(p, end, enc)) { + tok->type = TK_CC_POSIX_BRACKET_OPEN; + } + else { + PUNFETCH; + goto cc_in_cc; + } + } + else { + cc_in_cc: + if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_CCLASS_SET_OP)) { + tok->type = TK_CC_OPEN_CC; + } + else { + CC_ESC_WARN(env, (UChar* )"["); + } + } + } + else if (c == '&') { + if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_CCLASS_SET_OP) && + !PEND && (PPEEK_IS('&'))) { + PINC; + tok->type = TK_CC_AND; + } + } + + end: + *src = p; + return tok->type; +} + +static int +fetch_token(PToken* tok, UChar** src, UChar* end, ParseEnv* env) +{ + int r; + OnigCodePoint code; + OnigCodePoint c; + int mindigits, maxdigits; + UChar* prev; + int allow_num; + OnigEncoding enc; + OnigSyntaxType* syn; + UChar* p; + PFETCH_READY; + + enc = env->enc; + syn = env->syntax; + p = *src; + + if (tok->code_point_continue != 0) { + r = get_next_code_point(&p, end, tok->base_num, enc, FALSE, &code); + if (r == 1) { + tok->code_point_continue = 0; + } + else if (r == 0) { + tok->type = TK_CODE_POINT; + tok->u.code = code; + goto out; + } + else + return r; /* error */ + } + + start: + if (PEND) { + tok->type = TK_EOT; + return tok->type; + } + + tok->type = TK_STRING; + tok->base_num = 0; + tok->backp = p; + + PFETCH(c); + if (IS_MC_ESC_CODE(c, syn)) { + if (PEND) return ONIGERR_END_PATTERN_AT_ESCAPE; + + tok->backp = p; + PFETCH(c); + + tok->u.code = c; + tok->escaped = 1; + switch (c) { + case '*': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF)) break; + tok->type = TK_REPEAT; + tok->u.repeat.lower = 0; + tok->u.repeat.upper = INFINITE_REPEAT; + goto greedy_check; + break; + + case '+': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_PLUS_ONE_INF)) break; + tok->type = TK_REPEAT; + tok->u.repeat.lower = 1; + tok->u.repeat.upper = INFINITE_REPEAT; + goto greedy_check; + break; + + case '?': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_QMARK_ZERO_ONE)) break; + tok->type = TK_REPEAT; + tok->u.repeat.lower = 0; + tok->u.repeat.upper = 1; + greedy_check: + tok->u.repeat.possessive = 0; + greedy_check2: + if (!PEND && PPEEK_IS('?') && + IS_SYNTAX_OP(syn, ONIG_SYN_OP_QMARK_NON_GREEDY) && + tok->u.repeat.possessive == 0) { + PFETCH(c); + tok->u.repeat.greedy = 0; + tok->u.repeat.possessive = 0; + } + else { + possessive_check: + tok->u.repeat.greedy = 1; + if (!PEND && PPEEK_IS('+') && + ((IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT) && + tok->type != TK_INTERVAL) || + (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL) && + tok->type == TK_INTERVAL)) && + tok->u.repeat.possessive == 0) { + PFETCH(c); + tok->u.repeat.possessive = 1; + } + } + break; + + case '{': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_BRACE_INTERVAL)) break; + r = fetch_interval(&p, end, tok, env); + if (r < 0) return r; /* error */ + if (r == 0) goto greedy_check2; + else if (r == 2) { /* {n} */ + if (IS_SYNTAX_BV(syn, ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY)) + goto possessive_check; + + goto greedy_check2; + } + /* r == 1 : normal char */ + break; + + case '|': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_VBAR_ALT)) break; + tok->type = TK_ALT; + break; + + case '(': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_LPAREN_SUBEXP)) break; + tok->type = TK_SUBEXP_OPEN; + break; + + case ')': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_LPAREN_SUBEXP)) break; + tok->type = TK_SUBEXP_CLOSE; + break; + + case 'w': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_W_WORD)) break; + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_WORD; + tok->u.prop.not = 0; + break; + + case 'W': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_W_WORD)) break; + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_WORD; + tok->u.prop.not = 1; + break; + + case 'b': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_B_WORD_BOUND)) break; + tok->type = TK_ANCHOR; + tok->u.anchor = ANCR_WORD_BOUNDARY; + break; + + case 'B': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_B_WORD_BOUND)) break; + tok->type = TK_ANCHOR; + tok->u.anchor = ANCR_NO_WORD_BOUNDARY; + break; + + case 'y': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT)) break; + tok->type = TK_ANCHOR; + tok->u.anchor = ANCR_TEXT_SEGMENT_BOUNDARY; + break; + + case 'Y': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT)) break; + tok->type = TK_ANCHOR; + tok->u.anchor = ANCR_NO_TEXT_SEGMENT_BOUNDARY; + break; + +#ifdef USE_WORD_BEGIN_END + case '<': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END)) break; + tok->type = TK_ANCHOR; + tok->u.anchor = ANCR_WORD_BEGIN; + break; + + case '>': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END)) break; + tok->type = TK_ANCHOR; + tok->u.anchor = ANCR_WORD_END; + break; +#endif + + case 's': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_S_WHITE_SPACE)) break; + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_SPACE; + tok->u.prop.not = 0; + break; + + case 'S': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_S_WHITE_SPACE)) break; + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_SPACE; + tok->u.prop.not = 1; + break; + + case 'd': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_D_DIGIT)) break; + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_DIGIT; + tok->u.prop.not = 0; + break; + + case 'D': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_D_DIGIT)) break; + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_DIGIT; + tok->u.prop.not = 1; + break; + + case 'h': + if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_H_XDIGIT)) break; + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_XDIGIT; + tok->u.prop.not = 0; + break; + + case 'H': + if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_H_XDIGIT)) break; + tok->type = TK_CHAR_TYPE; + tok->u.prop.ctype = ONIGENC_CTYPE_XDIGIT; + tok->u.prop.not = 1; + break; + + case 'K': + if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP)) break; + tok->type = TK_KEEP; + break; + + case 'R': + if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE)) break; + tok->type = TK_GENERAL_NEWLINE; + break; + + case 'N': + if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT)) break; + tok->type = TK_NO_NEWLINE; + break; + + case 'O': + if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT)) break; + tok->type = TK_TRUE_ANYCHAR; + break; + + case 'X': + if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT)) break; + tok->type = TK_TEXT_SEGMENT; + break; + + case 'A': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR)) break; + begin_buf: + tok->type = TK_ANCHOR; + tok->u.subtype = ANCR_BEGIN_BUF; + break; + + case 'Z': + if (IS_SYNTAX_BV(syn, ONIG_SYN_PYTHON)) { + goto end_buf; + } + else { + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR)) break; + tok->type = TK_ANCHOR; + tok->u.subtype = ANCR_SEMI_END_BUF; + } + break; + + case 'z': + if (IS_SYNTAX_BV(syn, ONIG_SYN_PYTHON)) + return ONIGERR_UNDEFINED_OPERATOR; + + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR)) break; + end_buf: + tok->type = TK_ANCHOR; + tok->u.subtype = ANCR_END_BUF; + break; + + case 'G': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR)) break; + tok->type = TK_ANCHOR; + tok->u.subtype = ANCR_BEGIN_POSITION; + break; + + case '`': + if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR)) break; + goto begin_buf; + break; + + case '\'': + if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR)) break; + goto end_buf; + break; + + case 'o': + if (PEND) break; + + prev = p; + if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_O_BRACE_OCTAL)) { + PINC; + r = scan_octal_number(&p, end, 0, 11, enc, &code); + if (r < 0) return r; + if (!PEND) { + if (IS_CODE_DIGIT_ASCII(enc, PPEEK)) + return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE; + } + + tok->base_num = 8; + goto brace_code_point_entry; + } + break; + + case 'x': + if (PEND) break; + + prev = p; + if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_BRACE_HEX8)) { + PINC; + r = scan_hexadecimal_number(&p, end, 0, 8, enc, &code); + if (r < 0) return r; + if (!PEND) { + if (IS_CODE_XDIGIT_ASCII(enc, PPEEK)) + return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE; + } + + tok->base_num = 16; + brace_code_point_entry: + if ((p > prev + enclen(enc, prev))) { + if (PEND) return ONIGERR_INVALID_CODE_POINT_VALUE; + if (PPEEK_IS('}')) { + PINC; + } + else { + r = check_code_point_sequence(p, end, tok->base_num, enc); + if (r < 0) return r; + if (r == 0) return ONIGERR_INVALID_CODE_POINT_VALUE; + tok->code_point_continue = TRUE; + } + tok->type = TK_CODE_POINT; + tok->u.code = code; + } + else { + /* can't read nothing or invalid format */ + p = prev; + } + } + else if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_HEX2)) { + r = scan_hexadecimal_number(&p, end, 0, 2, enc, &code); + if (r < 0) return r; + if (p == prev) { /* can't read nothing. */ + code = 0; /* but, it's not error */ + } + tok->type = TK_CRUDE_BYTE; + tok->base_num = 16; + tok->u.byte = (UChar )code; + } + break; + + case 'u': + if (PEND) break; + prev = p; + mindigits = maxdigits = 4; + if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_U_HEX4)) { + u_hex_digits: + r = scan_hexadecimal_number(&p, end, mindigits, maxdigits, enc, &code); + if (r < 0) return r; + if (p == prev) { /* can't read nothing. */ + code = 0; /* but, it's not error */ + } + tok->type = TK_CODE_POINT; + tok->base_num = 16; + tok->u.code = code; + } + break; + + case 'U': + if (PEND) break; + prev = p; + if (IS_SYNTAX_BV(syn, ONIG_SYN_PYTHON)) { + mindigits = maxdigits = 8; + goto u_hex_digits; + } + break; + + case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + PUNFETCH; + prev = p; + r = scan_number(&p, end, enc); + if (r < 0 || r > ONIG_MAX_BACKREF_NUM) { + goto skip_backref; + } + + if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_DECIMAL_BACKREF) && + (r <= env->num_mem || r <= 9)) { /* This spec. from GNU regex */ + if (IS_SYNTAX_BV(syn, ONIG_SYN_STRICT_CHECK_BACKREF)) { + if (r > env->num_mem || IS_NULL(PARSEENV_MEMENV(env)[r].mem_node)) + return ONIGERR_INVALID_BACKREF; + } + + tok->type = TK_BACKREF; + tok->u.backref.num = 1; + tok->u.backref.ref1 = r; + tok->u.backref.by_name = 0; +#ifdef USE_BACKREF_WITH_LEVEL + tok->u.backref.exist_level = 0; + tok->u.backref.level = 0; +#endif + break; + } + + skip_backref: + if (c == '8' || c == '9') { + /* normal char */ + p = prev; PINC; + break; + } + + p = prev; + /* fall through */ + case '0': + if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_OCTAL3)) { + prev = p; + r = scan_octal_number(&p, end, 0, (c == '0' ? 2:3), enc, &code); + if (r < 0 || r >= 256) return ONIGERR_TOO_BIG_NUMBER; + if (p == prev) { /* can't read nothing. */ + code = 0; /* but, it's not error */ + } + tok->type = TK_CRUDE_BYTE; + tok->base_num = 8; + tok->u.byte = (UChar )code; + } + else if (c != '0') { + PINC; + } + break; + + case 'k': + if (!PEND && IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_K_NAMED_BACKREF)) { + PFETCH(c); + if (c == '<' || c == '\'') { + UChar* name_end; + int* backs; + int back_num; + enum REF_NUM num_type; + + allow_num = 1; + + backref_start: + prev = p; + +#ifdef USE_BACKREF_WITH_LEVEL + name_end = NULL_UCHARP; /* no need. escape gcc warning. */ + r = fetch_name_with_level((OnigCodePoint )c, &p, end, &name_end, + env, &back_num, &tok->u.backref.level, &num_type); + if (r == 1) tok->u.backref.exist_level = 1; + else tok->u.backref.exist_level = 0; +#else + r = fetch_name(c, &p, end, &name_end, env, &back_num, &num_type, TRUE); +#endif + if (r < 0) return r; + + if (num_type != IS_NOT_NUM) { + if (allow_num == 0) return ONIGERR_INVALID_BACKREF; + + if (num_type == IS_REL_NUM) { + back_num = backref_rel_to_abs(back_num, env); + } + if (back_num <= 0) + return ONIGERR_INVALID_BACKREF; + + if (IS_SYNTAX_BV(syn, ONIG_SYN_STRICT_CHECK_BACKREF)) { + if (back_num > env->num_mem || + IS_NULL(PARSEENV_MEMENV(env)[back_num].mem_node)) + return ONIGERR_INVALID_BACKREF; + } + tok->type = TK_BACKREF; + tok->u.backref.by_name = 0; + tok->u.backref.num = 1; + tok->u.backref.ref1 = back_num; + } + else { + int num = name_to_group_numbers(env, prev, name_end, &backs); + if (num <= 0) { + return ONIGERR_UNDEFINED_NAME_REFERENCE; + } + if (IS_SYNTAX_BV(syn, ONIG_SYN_STRICT_CHECK_BACKREF)) { + int i; + for (i = 0; i < num; i++) { + if (backs[i] > env->num_mem || + IS_NULL(PARSEENV_MEMENV(env)[backs[i]].mem_node)) + return ONIGERR_INVALID_BACKREF; + } + } + + tok->type = TK_BACKREF; + tok->u.backref.by_name = 1; + if (num == 1) { + tok->u.backref.num = 1; + tok->u.backref.ref1 = backs[0]; + } + else { + tok->u.backref.num = num; + tok->u.backref.refs = backs; + } + } + } + else + PUNFETCH; + } + break; + +#ifdef USE_CALL + case 'g': + if (!PEND && IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_G_SUBEXP_CALL)) { + PFETCH(c); + if (c == '<' || c == '\'') { + int gnum; + UChar* name_end; + enum REF_NUM num_type; + + allow_num = 1; + + call_start: + prev = p; + r = fetch_name((OnigCodePoint )c, &p, end, &name_end, env, + &gnum, &num_type, TRUE); + if (r < 0) return r; + + if (num_type != IS_NOT_NUM) { + if (allow_num == 0) return ONIGERR_UNDEFINED_GROUP_REFERENCE; + + if (num_type == IS_REL_NUM) { + gnum = backref_rel_to_abs(gnum, env); + if (gnum < 0) { + onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE, + prev, name_end); + return ONIGERR_UNDEFINED_GROUP_REFERENCE; + } + } + tok->u.call.by_number = 1; + tok->u.call.gnum = gnum; + } + else { + tok->u.call.by_number = 0; + tok->u.call.gnum = 0; + } + + tok->type = TK_CALL; + tok->u.call.name = prev; + tok->u.call.name_end = name_end; + } + else + PUNFETCH; + } + break; +#endif + + case 'Q': + if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE)) { + tok->type = TK_QUOTE_OPEN; + } + break; + + case 'p': + case 'P': + if (!PEND && PPEEK_IS('{') && + IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY)) { + PINC; + tok->type = TK_CHAR_PROPERTY; + tok->u.prop.not = c == 'P'; + + if (!PEND && + IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT)) { + PFETCH(c); + if (c == '^') { + tok->u.prop.not = tok->u.prop.not == 0; + } + else + PUNFETCH; + } + } + break; + + default: + { + OnigCodePoint c2; + + PUNFETCH; + r = fetch_escaped_value(&p, end, env, &c2); + if (r < 0) return r; + if (tok->u.code != c2) { + tok->type = TK_CODE_POINT; + tok->u.code = c2; + } + else { /* string */ + p = tok->backp + enclen(enc, tok->backp); + } + } + break; + } + } + else { + tok->u.code = c; + tok->escaped = 0; + +#ifdef USE_VARIABLE_META_CHARS + if ((c != ONIG_INEFFECTIVE_META_CHAR) && + IS_SYNTAX_OP(syn, ONIG_SYN_OP_VARIABLE_META_CHARACTERS)) { + if (c == MC_ANYCHAR(syn)) + goto any_char; + else if (c == MC_ANYTIME(syn)) + goto any_time; + else if (c == MC_ZERO_OR_ONE_TIME(syn)) + goto zero_or_one_time; + else if (c == MC_ONE_OR_MORE_TIME(syn)) + goto one_or_more_time; + else if (c == MC_ANYCHAR_ANYTIME(syn)) { + tok->type = TK_ANYCHAR_ANYTIME; + goto out; + } + } +#endif + + switch (c) { + case '.': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_DOT_ANYCHAR)) break; +#ifdef USE_VARIABLE_META_CHARS + any_char: +#endif + tok->type = TK_ANYCHAR; + break; + + case '*': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ASTERISK_ZERO_INF)) break; +#ifdef USE_VARIABLE_META_CHARS + any_time: +#endif + tok->type = TK_REPEAT; + tok->u.repeat.lower = 0; + tok->u.repeat.upper = INFINITE_REPEAT; + goto greedy_check; + break; + + case '+': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_PLUS_ONE_INF)) break; +#ifdef USE_VARIABLE_META_CHARS + one_or_more_time: +#endif + tok->type = TK_REPEAT; + tok->u.repeat.lower = 1; + tok->u.repeat.upper = INFINITE_REPEAT; + goto greedy_check; + break; + + case '?': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_QMARK_ZERO_ONE)) break; +#ifdef USE_VARIABLE_META_CHARS + zero_or_one_time: +#endif + tok->type = TK_REPEAT; + tok->u.repeat.lower = 0; + tok->u.repeat.upper = 1; + goto greedy_check; + break; + + case '{': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_BRACE_INTERVAL)) break; + r = fetch_interval(&p, end, tok, env); + if (r < 0) return r; /* error */ + if (r == 0) goto greedy_check2; + else if (r == 2) { /* {n} */ + if (IS_SYNTAX_BV(syn, ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY)) + goto possessive_check; + + goto greedy_check2; + } + /* r == 1 : normal char */ + break; + + case '|': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_VBAR_ALT)) break; + tok->type = TK_ALT; + break; + + case '(': + if (!PEND && PPEEK_IS('?') && + IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_QMARK_GROUP_EFFECT)) { + prev = p; + PINC; + if (! PEND) { + c = PPEEK; + if (c == '#') { + PFETCH(c); + while (1) { + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + PFETCH(c); + if (c == MC_ESC(syn)) { + if (! PEND) PFETCH(c); + } + else { + if (c == ')') break; + } + } + goto start; + } + else if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_QMARK_PERL_SUBEXP_CALL)) { + int gnum; + UChar* name; + UChar* name_end; + enum REF_NUM num_type; + + switch (c) { + case '&': + { + PINC; + name = p; + r = fetch_name((OnigCodePoint )'(', &p, end, &name_end, env, + &gnum, &num_type, FALSE); + if (r < 0) return r; + + tok->type = TK_CALL; + tok->u.call.by_number = 0; + tok->u.call.gnum = 0; + tok->u.call.name = name; + tok->u.call.name_end = name_end; + } + break; + + case 'R': + tok->type = TK_CALL; + tok->u.call.by_number = 1; + tok->u.call.gnum = 0; + tok->u.call.name = p; + PINC; + if (! PPEEK_IS(')')) return ONIGERR_UNDEFINED_GROUP_OPTION; + tok->u.call.name_end = p; + break; + + case '-': + case '+': + if (! PEND) { + PINC; + if (! PEND) { + c = PPEEK; + if (ONIGENC_IS_CODE_DIGIT(enc, c)) { + PUNFETCH; + goto lparen_qmark_num; + } + } + } + p = prev; + goto lparen_qmark_end2; + break; + + default: + if (! ONIGENC_IS_CODE_DIGIT(enc, c)) goto lparen_qmark_end; + + lparen_qmark_num: + { + name = p; + r = fetch_name((OnigCodePoint )'(', &p, end, &name_end, env, + &gnum, &num_type, TRUE); + if (r < 0) return r; + + if (num_type == IS_NOT_NUM) { + return ONIGERR_INVALID_GROUP_NAME; + } + else { + if (num_type == IS_REL_NUM) { + gnum = backref_rel_to_abs(gnum, env); + if (gnum < 0) { + onig_scan_env_set_error_string(env, + ONIGERR_UNDEFINED_NAME_REFERENCE, name, name_end); + return ONIGERR_UNDEFINED_GROUP_REFERENCE; + } + } + tok->u.call.by_number = 1; + tok->u.call.gnum = gnum; + } + + tok->type = TK_CALL; + tok->u.call.name = name; + tok->u.call.name_end = name_end; + } + break; + } + break; + } + else if (c == 'P' && + IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_CAPITAL_P_NAME)) { + PINC; /* skip 'P' */ + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + PFETCH(c); + allow_num = 0; + if (c == '=') { + c = '('; + goto backref_start; + } + else if (c == '>') { +#ifdef USE_CALL + c = '('; + goto call_start; +#else + return ONIGERR_UNDEFINED_OPERATOR; +#endif + } + else { + p = prev; + goto lparen_qmark_end2; + } + } + } + lparen_qmark_end: + PUNFETCH; + } + + lparen_qmark_end2: + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LPAREN_SUBEXP)) break; + tok->type = TK_SUBEXP_OPEN; + break; + + case ')': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LPAREN_SUBEXP)) break; + tok->type = TK_SUBEXP_CLOSE; + break; + + case '^': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LINE_ANCHOR)) break; + if (IS_SYNTAX_BV(syn, ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP)) { + if (! is_head_of_bre_subexp(PPREV, end, enc, env)) break; + } + tok->type = TK_ANCHOR; + tok->u.subtype = (OPTON_SINGLELINE(env->options) + ? ANCR_BEGIN_BUF : ANCR_BEGIN_LINE); + break; + + case '$': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LINE_ANCHOR)) break; + if (IS_SYNTAX_BV(syn, ONIG_SYN_BRE_ANCHOR_AT_EDGE_OF_SUBEXP)) { + if (! is_end_of_bre_subexp(p, end, enc, env)) break; + } + tok->type = TK_ANCHOR; + tok->u.subtype = (OPTON_SINGLELINE(env->options) + ? ANCR_SEMI_END_BUF : ANCR_END_LINE); + break; + + case '[': + if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_BRACKET_CC)) break; + tok->type = TK_OPEN_CC; + break; + + case ']': + if (*src > env->pattern) /* /].../ is allowed. */ + CLOSE_BRACKET_WITHOUT_ESC_WARN(env, (UChar* )"]"); + break; + + case '#': + if (OPTON_EXTEND(env->options)) { + while (!PEND) { + PFETCH(c); + if (ONIGENC_IS_CODE_NEWLINE(enc, c)) + break; + } + goto start; + break; + } + break; + + case ' ': case '\t': case '\n': case '\r': case '\f': + if (OPTON_EXTEND(env->options)) + goto start; + break; + + default: + /* string */ + break; + } + } + + out: + *src = p; + return tok->type; +} + +static int +add_ctype_to_cc_by_range(CClassNode* cc, int ctype ARG_UNUSED, int not, + OnigEncoding enc ARG_UNUSED, OnigCodePoint sb_out, + const OnigCodePoint mbr[]) +{ + int i, r; + OnigCodePoint j; + + int n = ONIGENC_CODE_RANGE_NUM(mbr); + + if (not == 0) { + for (i = 0; i < n; i++) { + for (j = ONIGENC_CODE_RANGE_FROM(mbr, i); + j <= ONIGENC_CODE_RANGE_TO(mbr, i); j++) { + if (j >= sb_out) { + if (j > ONIGENC_CODE_RANGE_FROM(mbr, i)) { + r = add_code_range_to_buf(&(cc->mbuf), j, + ONIGENC_CODE_RANGE_TO(mbr, i)); + if (r != 0) return r; + i++; + } + + goto sb_end; + } + BITSET_SET_BIT(cc->bs, j); + } + } + + sb_end: + for ( ; i < n; i++) { + r = add_code_range_to_buf(&(cc->mbuf), + ONIGENC_CODE_RANGE_FROM(mbr, i), + ONIGENC_CODE_RANGE_TO(mbr, i)); + if (r != 0) return r; + } + } + else { + OnigCodePoint prev = 0; + + for (i = 0; i < n; i++) { + for (j = prev; j < ONIGENC_CODE_RANGE_FROM(mbr, i); j++) { + if (j >= sb_out) { + goto sb_end2; + } + BITSET_SET_BIT(cc->bs, j); + } + prev = ONIGENC_CODE_RANGE_TO(mbr, i) + 1; + } + for (j = prev; j < sb_out; j++) { + BITSET_SET_BIT(cc->bs, j); + } + + sb_end2: + prev = sb_out; + + for (i = 0; i < n; i++) { + if (prev < ONIGENC_CODE_RANGE_FROM(mbr, i)) { + r = add_code_range_to_buf(&(cc->mbuf), prev, + ONIGENC_CODE_RANGE_FROM(mbr, i) - 1); + if (r != 0) return r; + } + prev = ONIGENC_CODE_RANGE_TO(mbr, i) + 1; + if (prev == 0) goto end; + } + + r = add_code_range_to_buf(&(cc->mbuf), prev, MAX_CODE_POINT); + if (r != 0) return r; + } + + end: + return 0; +} + +static int +add_ctype_to_cc_by_range_limit(CClassNode* cc, int ctype ARG_UNUSED, int not, + OnigEncoding enc ARG_UNUSED, + OnigCodePoint sb_out, + const OnigCodePoint mbr[], OnigCodePoint limit) +{ + int i, r; + OnigCodePoint j; + OnigCodePoint from; + OnigCodePoint to; + + int n = ONIGENC_CODE_RANGE_NUM(mbr); + + if (not == 0) { + for (i = 0; i < n; i++) { + for (j = ONIGENC_CODE_RANGE_FROM(mbr, i); + j <= ONIGENC_CODE_RANGE_TO(mbr, i); j++) { + if (j > limit) goto end; + if (j >= sb_out) { + if (j > ONIGENC_CODE_RANGE_FROM(mbr, i)) { + to = ONIGENC_CODE_RANGE_TO(mbr, i); + if (to > limit) to = limit; + r = add_code_range_to_buf(&(cc->mbuf), j, to); + if (r != 0) return r; + i++; + } + + goto sb_end; + } + BITSET_SET_BIT(cc->bs, j); + } + } + + sb_end: + for ( ; i < n; i++) { + from = ONIGENC_CODE_RANGE_FROM(mbr, i); + to = ONIGENC_CODE_RANGE_TO(mbr, i); + if (from > limit) break; + if (to > limit) to = limit; + r = add_code_range_to_buf(&(cc->mbuf), from, to); + if (r != 0) return r; + } + } + else { + OnigCodePoint prev = 0; + + for (i = 0; i < n; i++) { + from = ONIGENC_CODE_RANGE_FROM(mbr, i); + if (from > limit) { + for (j = prev; j < sb_out; j++) { + BITSET_SET_BIT(cc->bs, j); + } + goto sb_end2; + } + for (j = prev; j < from; j++) { + if (j >= sb_out) goto sb_end2; + BITSET_SET_BIT(cc->bs, j); + } + prev = ONIGENC_CODE_RANGE_TO(mbr, i); + if (prev > limit) prev = limit; + prev++; + if (prev == 0) goto end; + } + for (j = prev; j < sb_out; j++) { + BITSET_SET_BIT(cc->bs, j); + } + + sb_end2: + prev = sb_out; + + for (i = 0; i < n; i++) { + from = ONIGENC_CODE_RANGE_FROM(mbr, i); + if (from > limit) goto last; + + if (prev < from) { + r = add_code_range_to_buf(&(cc->mbuf), prev, from - 1); + if (r != 0) return r; + } + prev = ONIGENC_CODE_RANGE_TO(mbr, i); + if (prev > limit) prev = limit; + prev++; + if (prev == 0) goto end; + } + + last: + r = add_code_range_to_buf(&(cc->mbuf), prev, MAX_CODE_POINT); + if (r != 0) return r; + } + + end: + return 0; +} + +static int +add_ctype_to_cc(CClassNode* cc, int ctype, int not, ParseEnv* env) +{ + int c, r; + int ascii_mode; + int is_single; + const OnigCodePoint *ranges; + OnigCodePoint limit; + OnigCodePoint sb_out; + OnigEncoding enc = env->enc; + + ascii_mode = OPTON_IS_ASCII_MODE_CTYPE(ctype, env->options); + + r = ONIGENC_GET_CTYPE_CODE_RANGE(enc, ctype, &sb_out, &ranges); + if (r == 0) { + if (ascii_mode == 0) + r = add_ctype_to_cc_by_range(cc, ctype, not, env->enc, sb_out, ranges); + else + r = add_ctype_to_cc_by_range_limit(cc, ctype, not, env->enc, sb_out, + ranges, ASCII_LIMIT); + return r; + } + else if (r != ONIG_NO_SUPPORT_CONFIG) { + return r; + } + + r = 0; + is_single = ONIGENC_IS_SINGLEBYTE(enc); + limit = ascii_mode ? ASCII_LIMIT : SINGLE_BYTE_SIZE; + + switch (ctype) { + case ONIGENC_CTYPE_ALPHA: + case ONIGENC_CTYPE_BLANK: + case ONIGENC_CTYPE_CNTRL: + case ONIGENC_CTYPE_DIGIT: + case ONIGENC_CTYPE_LOWER: + case ONIGENC_CTYPE_PUNCT: + case ONIGENC_CTYPE_SPACE: + case ONIGENC_CTYPE_UPPER: + case ONIGENC_CTYPE_XDIGIT: + case ONIGENC_CTYPE_ASCII: + case ONIGENC_CTYPE_ALNUM: + if (not != 0) { + for (c = 0; c < (int )limit; c++) { + if (is_single != 0 || ONIGENC_CODE_TO_MBCLEN(enc, c) == 1) { + if (! ONIGENC_IS_CODE_CTYPE(enc, (OnigCodePoint )c, ctype)) + BITSET_SET_BIT(cc->bs, c); + } + } + for (c = limit; c < SINGLE_BYTE_SIZE; c++) { + if (is_single != 0 || ONIGENC_CODE_TO_MBCLEN(enc, c) == 1) + BITSET_SET_BIT(cc->bs, c); + } + + if (is_single == 0) + ADD_ALL_MULTI_BYTE_RANGE(enc, cc->mbuf); + } + else { + for (c = 0; c < (int )limit; c++) { + if (is_single != 0 || ONIGENC_CODE_TO_MBCLEN(enc, c) == 1) { + if (ONIGENC_IS_CODE_CTYPE(enc, (OnigCodePoint )c, ctype)) + BITSET_SET_BIT(cc->bs, c); + } + } + } + break; + + case ONIGENC_CTYPE_GRAPH: + case ONIGENC_CTYPE_PRINT: + case ONIGENC_CTYPE_WORD: + if (not != 0) { + for (c = 0; c < (int )limit; c++) { + /* check invalid code point */ + if ((is_single != 0 || ONIGENC_CODE_TO_MBCLEN(enc, c) == 1) + && ! ONIGENC_IS_CODE_CTYPE(enc, (OnigCodePoint )c, ctype)) + BITSET_SET_BIT(cc->bs, c); + } + for (c = limit; c < SINGLE_BYTE_SIZE; c++) { + if (is_single != 0 || ONIGENC_CODE_TO_MBCLEN(enc, c) == 1) + BITSET_SET_BIT(cc->bs, c); + } + if (ascii_mode != 0 && is_single == 0) + ADD_ALL_MULTI_BYTE_RANGE(enc, cc->mbuf); + } + else { + for (c = 0; c < (int )limit; c++) { + if ((is_single != 0 || ONIGENC_CODE_TO_MBCLEN(enc, c) == 1) + && ONIGENC_IS_CODE_CTYPE(enc, (OnigCodePoint )c, ctype)) + BITSET_SET_BIT(cc->bs, c); + } + if (ascii_mode == 0 && is_single == 0) + ADD_ALL_MULTI_BYTE_RANGE(enc, cc->mbuf); + } + break; + + default: + return ONIGERR_PARSER_BUG; + break; + } + + return r; +} + +static int +prs_posix_bracket(CClassNode* cc, UChar** src, UChar* end, ParseEnv* env) +{ + static PosixBracketEntryType PBS[] = { + { (UChar* )"alnum", ONIGENC_CTYPE_ALNUM, 5 }, + { (UChar* )"alpha", ONIGENC_CTYPE_ALPHA, 5 }, + { (UChar* )"blank", ONIGENC_CTYPE_BLANK, 5 }, + { (UChar* )"cntrl", ONIGENC_CTYPE_CNTRL, 5 }, + { (UChar* )"digit", ONIGENC_CTYPE_DIGIT, 5 }, + { (UChar* )"graph", ONIGENC_CTYPE_GRAPH, 5 }, + { (UChar* )"lower", ONIGENC_CTYPE_LOWER, 5 }, + { (UChar* )"print", ONIGENC_CTYPE_PRINT, 5 }, + { (UChar* )"punct", ONIGENC_CTYPE_PUNCT, 5 }, + { (UChar* )"space", ONIGENC_CTYPE_SPACE, 5 }, + { (UChar* )"upper", ONIGENC_CTYPE_UPPER, 5 }, + { (UChar* )"xdigit", ONIGENC_CTYPE_XDIGIT, 6 }, + { (UChar* )"ascii", ONIGENC_CTYPE_ASCII, 5 }, + { (UChar* )"word", ONIGENC_CTYPE_WORD, 4 }, + { (UChar* )NULL, -1, 0 } + }; + + PosixBracketEntryType *pb; + int not, r; + OnigEncoding enc = env->enc; + UChar *p = *src; + + if (PPEEK_IS('^')) { + PINC_S; + not = 1; + } + else + not = 0; + + for (pb = PBS; IS_NOT_NULL(pb->name); pb++) { + if (onigenc_with_ascii_strncmp(enc, p, end, pb->name, pb->len) == 0) { + p = (UChar* )onigenc_step(enc, p, end, pb->len); + if (onigenc_with_ascii_strncmp(enc, p, end, (UChar* )":]", 2) != 0) + break; + + r = add_ctype_to_cc(cc, pb->ctype, not, env); + if (r != 0) return r; + + PINC_S; PINC_S; + *src = p; + return 0; + } + } + + return ONIGERR_INVALID_POSIX_BRACKET_TYPE; +} + +static int +fetch_char_property_to_ctype(UChar** src, UChar* end, ParseEnv* env) +{ + int r; + OnigCodePoint c; + OnigEncoding enc; + UChar *prev, *start, *p; + + p = *src; + enc = env->enc; + r = ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS; + start = prev = p; + + while (!PEND) { + prev = p; + PFETCH_S(c); + if (c == '}') { + r = ONIGENC_PROPERTY_NAME_TO_CTYPE(enc, start, prev); + if (r >= 0) { + *src = p; + } + else { + onig_scan_env_set_error_string(env, r, *src, prev); + } + + return r; + } + else if (c == '(' || c == ')' || c == '{' || c == '|') { + break; + } + } + + return r; +} + +static int +prs_char_property(Node** np, PToken* tok, UChar** src, UChar* end, + ParseEnv* env) +{ + int r, ctype; + CClassNode* cc; + + ctype = fetch_char_property_to_ctype(src, end, env); + if (ctype < 0) return ctype; + + if (ctype == ONIGENC_CTYPE_WORD) { + *np = node_new_ctype(ctype, tok->u.prop.not, env->options); + CHECK_NULL_RETURN_MEMERR(*np); + return 0; + } + + *np = node_new_cclass(); + CHECK_NULL_RETURN_MEMERR(*np); + cc = CCLASS_(*np); + r = add_ctype_to_cc(cc, ctype, FALSE, env); + if (r != 0) return r; + if (tok->u.prop.not != 0) NCCLASS_SET_NOT(cc); + + return 0; +} + + +static int +cc_cprop_next(CClassNode* cc, OnigCodePoint* pcode, CVAL* val, CSTATE* state, + ParseEnv* env) +{ + int r; + + if (*state == CS_RANGE) + return ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE; + + if (*state == CS_VALUE) { + if (*val == CV_SB) + BITSET_SET_BIT(cc->bs, (int )(*pcode)); + else if (*val == CV_MB) { + r = add_code_range(&(cc->mbuf), env, *pcode, *pcode); + if (r < 0) return r; + } + } + + *state = CS_VALUE; + *val = CV_CPROP; + return 0; +} + +static int +cc_char_next(CClassNode* cc, OnigCodePoint *from, OnigCodePoint to, + int* from_raw, int to_raw, CVAL intype, CVAL* type, + CSTATE* state, ParseEnv* env) +{ + int r; + + switch (*state) { + case CS_VALUE: + if (*type == CV_SB) { + if (*from > 0xff) + return ONIGERR_INVALID_CODE_POINT_VALUE; + + BITSET_SET_BIT(cc->bs, (int )(*from)); + } + else if (*type == CV_MB) { + r = add_code_range(&(cc->mbuf), env, *from, *from); + if (r < 0) return r; + } + break; + + case CS_RANGE: + if (intype == *type) { + if (intype == CV_SB) { + if (*from > 0xff || to > 0xff) + return ONIGERR_INVALID_CODE_POINT_VALUE; + + if (*from > to) { + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC)) + goto ccs_range_end; + else + return ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS; + } + bitset_set_range(cc->bs, (int )*from, (int )to); + } + else { + r = add_code_range(&(cc->mbuf), env, *from, to); + if (r < 0) return r; + } + } + else { + if (*from > to) { + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC)) + goto ccs_range_end; + else + return ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS; + } + bitset_set_range(cc->bs, (int )*from, (int )(to < 0xff ? to : 0xff)); + r = add_code_range(&(cc->mbuf), env, (OnigCodePoint )*from, to); + if (r < 0) return r; + } + ccs_range_end: + *state = CS_COMPLETE; + break; + + case CS_COMPLETE: + case CS_START: + *state = CS_VALUE; + break; + + default: + break; + } + + *from_raw = to_raw; + *from = to; + *type = intype; + return 0; +} + +static int +code_exist_check(OnigCodePoint c, UChar* from, UChar* end, int ignore_escaped, + ParseEnv* env) +{ + int in_esc; + OnigCodePoint code; + OnigEncoding enc = env->enc; + UChar* p = from; + + in_esc = 0; + while (! PEND) { + if (ignore_escaped && in_esc) { + in_esc = 0; + } + else { + PFETCH_S(code); + if (code == c) return 1; + if (code == MC_ESC(env->syntax)) in_esc = 1; + } + } + return 0; +} + +static int +prs_cc(Node** np, PToken* tok, UChar** src, UChar* end, ParseEnv* env) +{ + int r, neg, len, fetched, and_start; + OnigCodePoint in_code, curr_code; + UChar *p; + Node* node; + CClassNode *cc, *prev_cc; + CClassNode work_cc; + int curr_raw, in_raw; + CSTATE state; + CVAL in_type; + CVAL curr_type; + + *np = NULL_NODE; + INC_PARSE_DEPTH(env->parse_depth); + + state = CS_START; + prev_cc = (CClassNode* )NULL; + r = fetch_token_cc(tok, src, end, env, state); + if (r == TK_CHAR && tok->u.code == (OnigCodePoint )'^' && tok->escaped == 0) { + neg = 1; + r = fetch_token_cc(tok, src, end, env, state); + } + else { + neg = 0; + } + + if (r < 0) return r; + if (r == TK_CC_CLOSE) { + if (! code_exist_check((OnigCodePoint )']', + *src, env->pattern_end, 1, env)) + return ONIGERR_EMPTY_CHAR_CLASS; + + CC_ESC_WARN(env, (UChar* )"]"); + r = tok->type = TK_CHAR; /* allow []...] */ + } + + *np = node = node_new_cclass(); + CHECK_NULL_RETURN_MEMERR(node); + cc = CCLASS_(node); + + and_start = 0; + curr_type = CV_UNDEF; + + p = *src; + while (r != TK_CC_CLOSE) { + fetched = 0; + switch (r) { + case TK_CHAR: + any_char_in: + len = ONIGENC_CODE_TO_MBCLEN(env->enc, tok->u.code); + if (len < 0) { + r = len; + goto err; + } + in_type = (len == 1) ? CV_SB : CV_MB; + in_code = tok->u.code; + in_raw = 0; + goto val_entry2; + break; + + case TK_CRUDE_BYTE: + /* tok->base_num != 0 : octal or hexadec. */ + if (! ONIGENC_IS_SINGLEBYTE(env->enc) && tok->base_num != 0) { + int i, j; + UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN]; + UChar* bufe = buf + ONIGENC_CODE_TO_MBC_MAXLEN; + UChar* psave = p; + int base_num = tok->base_num; + + buf[0] = tok->u.byte; + for (i = 1; i < ONIGENC_MBC_MAXLEN(env->enc); i++) { + r = fetch_token_cc(tok, &p, end, env, CS_COMPLETE); + if (r < 0) goto err; + if (r != TK_CRUDE_BYTE || tok->base_num != base_num) { + fetched = 1; + break; + } + buf[i] = tok->u.byte; + } + + if (i < ONIGENC_MBC_MINLEN(env->enc)) { + r = ONIGERR_TOO_SHORT_MULTI_BYTE_STRING; + goto err; + } + + /* clear buf tail */ + for (j = i; j < ONIGENC_CODE_TO_MBC_MAXLEN; j++) buf[j] = '\0'; + + len = enclen(env->enc, buf); + if (i < len) { + r = ONIGERR_TOO_SHORT_MULTI_BYTE_STRING; + goto err; + } + else if (i > len) { /* fetch back */ + p = psave; + for (i = 1; i < len; i++) { + r = fetch_token_cc(tok, &p, end, env, CS_COMPLETE); + if (r < 0) goto err; + } + fetched = 0; + } + + if (i == 1) { + in_code = (OnigCodePoint )buf[0]; + goto crude_single; + } + else { + if (! ONIGENC_IS_VALID_MBC_STRING(env->enc, buf, buf + len)) { + r = ONIGERR_INVALID_WIDE_CHAR_VALUE; + goto err; + } + + in_code = ONIGENC_MBC_TO_CODE(env->enc, buf, bufe); + in_type = CV_MB; + } + } + else { + in_code = (OnigCodePoint )tok->u.byte; + crude_single: + in_type = CV_SB; + } + in_raw = 1; + goto val_entry2; + break; + + case TK_CODE_POINT: + in_code = tok->u.code; + in_raw = 1; + val_entry: + len = ONIGENC_CODE_TO_MBCLEN(env->enc, in_code); + if (len < 0) { + if (state != CS_RANGE || + ! IS_SYNTAX_BV(env->syntax, + ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC) || + in_code < 0x100 || ONIGENC_MBC_MAXLEN(env->enc) == 1) { + r = len; + goto err; + } + } + in_type = (len == 1 ? CV_SB : CV_MB); + val_entry2: + r = cc_char_next(cc, &curr_code, in_code, &curr_raw, in_raw, in_type, + &curr_type, &state, env); + if (r != 0) goto err; + break; + + case TK_CC_POSIX_BRACKET_OPEN: + r = prs_posix_bracket(cc, &p, end, env); + if (r < 0) goto err; + if (r == 1) { /* is not POSIX bracket */ + CC_ESC_WARN(env, (UChar* )"["); + p = tok->backp; + in_code = tok->u.code; + in_raw = 0; + goto val_entry; + } + goto next_cprop; + break; + + case TK_CHAR_TYPE: + r = add_ctype_to_cc(cc, tok->u.prop.ctype, tok->u.prop.not, env); + if (r != 0) goto err; + + next_cprop: + r = cc_cprop_next(cc, &curr_code, &curr_type, &state, env); + if (r != 0) goto err; + break; + + case TK_CHAR_PROPERTY: + { + int ctype = fetch_char_property_to_ctype(&p, end, env); + if (ctype < 0) { + r = ctype; + goto err; + } + r = add_ctype_to_cc(cc, ctype, tok->u.prop.not, env); + if (r != 0) goto err; + goto next_cprop; + } + break; + + case TK_CC_RANGE: + if (state == CS_VALUE) { + r = fetch_token_cc(tok, &p, end, env, CS_RANGE); + if (r < 0) goto err; + + fetched = 1; + if (r == TK_CC_CLOSE) { /* allow [x-] */ + range_end_val: + in_code = (OnigCodePoint )'-'; + in_raw = 0; + goto val_entry; + } + else if (r == TK_CC_AND) { + range_end_val_with_warning: + CC_ESC_WARN(env, (UChar* )"-"); + goto range_end_val; + } + + if (curr_type == CV_CPROP) { + if (IS_SYNTAX_BV(env->syntax, + ONIG_SYN_ALLOW_CHAR_TYPE_FOLLOWED_BY_MINUS_IN_CC)) { + goto range_end_val_with_warning; + } + r = ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS; + goto err; + } + + state = CS_RANGE; + } + else if (state == CS_START) { + /* [-xa] is allowed */ + in_code = tok->u.code; + in_raw = 0; + + r = fetch_token_cc(tok, &p, end, env, CS_VALUE); + if (r < 0) goto err; + + fetched = 1; + /* [--x] or [a&&-x] is warned. */ + if (r == TK_CC_RANGE || and_start != 0) + CC_ESC_WARN(env, (UChar* )"-"); + + goto val_entry; + } + else if (state == CS_RANGE) { + CC_ESC_WARN(env, (UChar* )"-"); + goto any_char_in; /* [!--] is allowed */ + } + else { /* CS_COMPLETE */ + r = fetch_token_cc(tok, &p, end, env, CS_VALUE); + if (r < 0) goto err; + + fetched = 1; + if (r == TK_CC_CLOSE) { + goto range_end_val; /* allow [a-b-] */ + } + else if (r == TK_CC_AND) { + goto range_end_val_with_warning; + } + + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC)) { + /* [0-9-a] is allowed as [0-9\-a] */ + goto range_end_val_with_warning; + } + r = ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS; + goto err; + } + break; + + case TK_CC_OPEN_CC: /* [ */ + { + Node *anode; + CClassNode* acc; + + if (state == CS_VALUE) { + r = cc_char_next(cc, &curr_code, 0, &curr_raw, 0, curr_type, &curr_type, + &state, env); + if (r != 0) goto err; + } + state = CS_COMPLETE; + + r = prs_cc(&anode, tok, &p, end, env); + if (r != 0) { + onig_node_free(anode); + goto cc_open_err; + } + acc = CCLASS_(anode); + r = or_cclass(cc, acc, env->enc); + onig_node_free(anode); + + cc_open_err: + if (r != 0) goto err; + } + break; + + case TK_CC_AND: /* && */ + { + if (state == CS_VALUE) { + r = cc_char_next(cc, &curr_code, 0, &curr_raw, 0, curr_type, &curr_type, + &state, env); + if (r != 0) goto err; + } + /* initialize local variables */ + and_start = 1; + state = CS_START; + + if (IS_NOT_NULL(prev_cc)) { + r = and_cclass(prev_cc, cc, env->enc); + if (r != 0) goto err; + bbuf_free(cc->mbuf); + } + else { + prev_cc = cc; + cc = &work_cc; + } + initialize_cclass(cc); + } + break; + + case TK_EOT: + r = ONIGERR_PREMATURE_END_OF_CHAR_CLASS; + goto err; + break; + default: + r = ONIGERR_PARSER_BUG; + goto err; + break; + } + + if (fetched) + r = tok->type; + else { + r = fetch_token_cc(tok, &p, end, env, state); + if (r < 0) goto err; + } + } + + if (state == CS_VALUE) { + r = cc_char_next(cc, &curr_code, 0, &curr_raw, 0, curr_type, &curr_type, + &state, env); + if (r != 0) goto err; + } + + if (IS_NOT_NULL(prev_cc)) { + r = and_cclass(prev_cc, cc, env->enc); + if (r != 0) goto err; + bbuf_free(cc->mbuf); + cc = prev_cc; + } + + if (neg != 0) + NCCLASS_SET_NOT(cc); + else + NCCLASS_CLEAR_NOT(cc); + if (IS_NCCLASS_NOT(cc) && + IS_SYNTAX_BV(env->syntax, ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC)) { + int is_empty = (IS_NULL(cc->mbuf) ? 1 : 0); + if (is_empty != 0) + BITSET_IS_EMPTY(cc->bs, is_empty); + + if (is_empty == 0) { + if (ONIGENC_IS_CODE_NEWLINE(env->enc, NEWLINE_CODE)) { + if (ONIGENC_CODE_TO_MBCLEN(env->enc, NEWLINE_CODE) == 1) + BITSET_SET_BIT(cc->bs, NEWLINE_CODE); + else + add_code_range(&(cc->mbuf), env, NEWLINE_CODE, NEWLINE_CODE); + } + } + } + *src = p; + DEC_PARSE_DEPTH(env->parse_depth); + return 0; + + err: + if (cc != CCLASS_(*np)) + bbuf_free(cc->mbuf); + return r; +} + +static int prs_alts(Node** top, PToken* tok, int term, + UChar** src, UChar* end, ParseEnv* env, int group_head); + +#ifdef USE_CALLOUT + +/* (?{...}[tag][+-]) (?{{...}}[tag][+-]) */ +static int +prs_callout_of_contents(Node** np, int cterm, UChar** src, UChar* end, + ParseEnv* env) +{ + int r; + int i; + int in; + int num; + OnigCodePoint c; + UChar* code_start; + UChar* code_end; + UChar* contents; + UChar* tag_start; + UChar* tag_end; + int brace_nest; + CalloutListEntry* e; + RegexExt* ext; + OnigEncoding enc = env->enc; + UChar* p = *src; + + if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN; + + brace_nest = 0; + while (PPEEK_IS('{')) { + brace_nest++; + PINC_S; + if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN; + } + + in = ONIG_CALLOUT_IN_PROGRESS; + code_start = p; + while (1) { + if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN; + + code_end = p; + PFETCH_S(c); + if (c == '}') { + i = brace_nest; + while (i > 0) { + if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN; + PFETCH_S(c); + if (c == '}') i--; + else break; + } + if (i == 0) break; + } + } + + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + + PFETCH_S(c); + if (c == '[') { + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + tag_end = tag_start = p; + while (! PEND) { + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + tag_end = p; + PFETCH_S(c); + if (c == ']') break; + } + if (! is_allowed_callout_tag_name(enc, tag_start, tag_end)) + return ONIGERR_INVALID_CALLOUT_TAG_NAME; + + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + PFETCH_S(c); + } + else { + tag_start = tag_end = 0; + } + + if (c == 'X') { + in |= ONIG_CALLOUT_IN_RETRACTION; + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + PFETCH_S(c); + } + else if (c == '<') { + in = ONIG_CALLOUT_IN_RETRACTION; + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + PFETCH_S(c); + } + else if (c == '>') { /* no needs (default) */ + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + PFETCH_S(c); + } + + if (c != cterm) + return ONIGERR_INVALID_CALLOUT_PATTERN; + + r = reg_callout_list_entry(env, &num); + if (r != 0) return r; + + ext = onig_get_regex_ext(env->reg); + CHECK_NULL_RETURN_MEMERR(ext); + if (IS_NULL(ext->pattern)) { + r = onig_ext_set_pattern(env->reg, env->pattern, env->pattern_end); + if (r != ONIG_NORMAL) return r; + } + + if (tag_start != tag_end) { + r = callout_tag_entry(env, env->reg, tag_start, tag_end, num); + if (r != ONIG_NORMAL) return r; + } + + contents = onigenc_strdup(enc, code_start, code_end); + CHECK_NULL_RETURN_MEMERR(contents); + + e = onig_reg_callout_list_at(env->reg, num); + if (IS_NULL(e)) { + xfree(contents); + return ONIGERR_MEMORY; + } + + r = node_new_callout(np, ONIG_CALLOUT_OF_CONTENTS, num, ONIG_NON_NAME_ID, env); + if (r != 0) { + xfree(contents); + return r; + } + + e->of = ONIG_CALLOUT_OF_CONTENTS; + e->in = in; + e->name_id = ONIG_NON_NAME_ID; + e->u.content.start = contents; + e->u.content.end = contents + (code_end - code_start); + + *src = p; + return 0; +} + +static long +prs_long(OnigEncoding enc, UChar* s, UChar* end, int sign_on, long max, long* rl) +{ + long v; + long d; + int flag; + UChar* p; + OnigCodePoint c; + + if (s >= end) return ONIGERR_INVALID_CALLOUT_ARG; + + flag = 1; + v = 0; + p = s; + while (p < end) { + c = ONIGENC_MBC_TO_CODE(enc, p, end); + p += ONIGENC_MBC_ENC_LEN(enc, p); + if (c >= '0' && c <= '9') { + d = (long )(c - '0'); + if (v > (max - d) / 10) + return ONIGERR_INVALID_CALLOUT_ARG; + + v = v * 10 + d; + } + else if (sign_on != 0 && (c == '-' || c == '+')) { + if (c == '-') flag = -1; + } + else + return ONIGERR_INVALID_CALLOUT_ARG; + + sign_on = 0; + } + + *rl = flag * v; + return ONIG_NORMAL; +} + +static void +clear_callout_args(int n, unsigned int types[], OnigValue vals[]) +{ + int i; + + for (i = 0; i < n; i++) { + switch (types[i]) { + case ONIG_TYPE_STRING: + if (IS_NOT_NULL(vals[i].s.start)) + xfree(vals[i].s.start); + break; + default: + break; + } + } +} + +static int +prs_callout_args(int skip_mode, int cterm, UChar** src, UChar* end, + int max_arg_num, unsigned int types[], OnigValue vals[], + ParseEnv* env) +{ +#define MAX_CALLOUT_ARG_BYTE_LENGTH 128 + + int r; + int n; + int esc; + int cn; + UChar* s; + UChar* e; + UChar* eesc; + OnigCodePoint c; + UChar* bufend; + UChar buf[MAX_CALLOUT_ARG_BYTE_LENGTH]; + OnigEncoding enc = env->enc; + UChar* p = *src; + + if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN; + + c = 0; + n = 0; + while (n < ONIG_CALLOUT_MAX_ARGS_NUM) { + cn = 0; + esc = 0; + eesc = 0; + bufend = buf; + s = e = p; + while (1) { + if (PEND) { + r = ONIGERR_INVALID_CALLOUT_PATTERN; + goto err_clear; + } + + e = p; + PFETCH_S(c); + if (esc != 0) { + esc = 0; + if (c == '\\' || c == cterm || c == ',') { + /* */ + } + else { + e = eesc; + cn++; + } + goto add_char; + } + else { + if (c == '\\') { + esc = 1; + eesc = e; + } + else if (c == cterm || c == ',') + break; + else { + size_t clen; + + add_char: + if (skip_mode == FALSE) { + clen = p - e; + if (bufend + clen > buf + MAX_CALLOUT_ARG_BYTE_LENGTH) { + r = ONIGERR_INVALID_CALLOUT_ARG; /* too long argument */ + goto err_clear; + } + + xmemcpy(bufend, e, clen); + bufend += clen; + } + cn++; + } + } + } + + if (cn != 0) { + if (max_arg_num >= 0 && n >= max_arg_num) { + r = ONIGERR_INVALID_CALLOUT_ARG; + goto err_clear; + } + + if (skip_mode == FALSE) { + if ((types[n] & ONIG_TYPE_LONG) != 0) { + int fixed = 0; + if (cn > 0) { + long rl; + r = prs_long(enc, buf, bufend, 1, LONG_MAX, &rl); + if (r == ONIG_NORMAL) { + vals[n].l = rl; + fixed = 1; + types[n] = ONIG_TYPE_LONG; + } + } + + if (fixed == 0) { + types[n] = (types[n] & ~ONIG_TYPE_LONG); + if (types[n] == ONIG_TYPE_VOID) { + r = ONIGERR_INVALID_CALLOUT_ARG; + goto err_clear; + } + } + } + + switch (types[n]) { + case ONIG_TYPE_LONG: + break; + + case ONIG_TYPE_CHAR: + if (cn != 1) { + r = ONIGERR_INVALID_CALLOUT_ARG; + goto err_clear; + } + vals[n].c = ONIGENC_MBC_TO_CODE(enc, buf, bufend); + break; + + case ONIG_TYPE_STRING: + { + UChar* rs = onigenc_strdup(enc, buf, bufend); + if (IS_NULL(rs)) { + r = ONIGERR_MEMORY; goto err_clear; + } + vals[n].s.start = rs; + vals[n].s.end = rs + (e - s); + } + break; + + case ONIG_TYPE_TAG: + if (eesc != 0 || ! is_allowed_callout_tag_name(enc, s, e)) { + r = ONIGERR_INVALID_CALLOUT_TAG_NAME; + goto err_clear; + } + + vals[n].s.start = s; + vals[n].s.end = e; + break; + + case ONIG_TYPE_VOID: + case ONIG_TYPE_POINTER: + r = ONIGERR_PARSER_BUG; + goto err_clear; + break; + } + } + + n++; + } + + if (c == cterm) break; + } + + if (c != cterm) { + r = ONIGERR_INVALID_CALLOUT_PATTERN; + goto err_clear; + } + + *src = p; + return n; + + err_clear: + if (skip_mode == FALSE) + clear_callout_args(n, types, vals); + return r; +} + +/* (*name[TAG]) (*name[TAG]{a,b,..}) */ +static int +prs_callout_of_name(Node** np, int cterm, UChar** src, UChar* end, + ParseEnv* env) +{ + int r; + int i; + int in; + int num; + int name_id; + int arg_num; + int max_arg_num; + int opt_arg_num; + int is_not_single; + OnigCodePoint c; + UChar* name_start; + UChar* name_end; + UChar* tag_start; + UChar* tag_end; + Node* node; + CalloutListEntry* e; + RegexExt* ext; + unsigned int types[ONIG_CALLOUT_MAX_ARGS_NUM]; + OnigValue vals[ONIG_CALLOUT_MAX_ARGS_NUM]; + OnigEncoding enc = env->enc; + UChar* p = *src; + + /* PFETCH_READY; */ + if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN; + + node = 0; + name_start = p; + while (1) { + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + name_end = p; + PFETCH_S(c); + if (c == cterm || c == '[' || c == '{') break; + } + + if (! is_allowed_callout_name(enc, name_start, name_end)) + return ONIGERR_INVALID_CALLOUT_NAME; + + if (c == '[') { + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + tag_end = tag_start = p; + while (! PEND) { + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + tag_end = p; + PFETCH_S(c); + if (c == ']') break; + } + if (! is_allowed_callout_tag_name(enc, tag_start, tag_end)) + return ONIGERR_INVALID_CALLOUT_TAG_NAME; + + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + PFETCH_S(c); + } + else { + tag_start = tag_end = 0; + } + + if (c == '{') { + UChar* save; + + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + + /* read for single check only */ + save = p; + arg_num = prs_callout_args(TRUE, '}', &p, end, -1, NULL, NULL, env); + if (arg_num < 0) return arg_num; + + is_not_single = PPEEK_IS(cterm) ? 0 : 1; + p = save; + r = get_callout_name_id_by_name(enc, is_not_single, name_start, name_end, + &name_id); + if (r != ONIG_NORMAL) return r; + + max_arg_num = get_callout_arg_num_by_name_id(name_id); + for (i = 0; i < max_arg_num; i++) { + types[i] = get_callout_arg_type_by_name_id(name_id, i); + } + + arg_num = prs_callout_args(FALSE, '}', &p, end, max_arg_num, types, vals, env); + if (arg_num < 0) return arg_num; + + if (PEND) { + r = ONIGERR_END_PATTERN_IN_GROUP; + goto err_clear; + } + PFETCH_S(c); + } + else { + arg_num = 0; + + is_not_single = 0; + r = get_callout_name_id_by_name(enc, is_not_single, name_start, name_end, + &name_id); + if (r != ONIG_NORMAL) return r; + + max_arg_num = get_callout_arg_num_by_name_id(name_id); + for (i = 0; i < max_arg_num; i++) { + types[i] = get_callout_arg_type_by_name_id(name_id, i); + } + } + + in = onig_get_callout_in_by_name_id(name_id); + opt_arg_num = get_callout_opt_arg_num_by_name_id(name_id); + if (arg_num > max_arg_num || arg_num < (max_arg_num - opt_arg_num)) { + r = ONIGERR_INVALID_CALLOUT_ARG; + goto err_clear; + } + + if (c != cterm) { + r = ONIGERR_INVALID_CALLOUT_PATTERN; + goto err_clear; + } + + r = reg_callout_list_entry(env, &num); + if (r != 0) goto err_clear; + + ext = onig_get_regex_ext(env->reg); + if (IS_NULL(ext)) { + r = ONIGERR_MEMORY; goto err_clear; + } + if (IS_NULL(ext->pattern)) { + r = onig_ext_set_pattern(env->reg, env->pattern, env->pattern_end); + if (r != ONIG_NORMAL) goto err_clear; + } + + if (tag_start != tag_end) { + r = callout_tag_entry(env, env->reg, tag_start, tag_end, num); + if (r != ONIG_NORMAL) goto err_clear; + } + + e = onig_reg_callout_list_at(env->reg, num); + if (IS_NULL(e)) { + r = ONIGERR_MEMORY; goto err_clear; + } + + r = node_new_callout(&node, ONIG_CALLOUT_OF_NAME, num, name_id, env); + if (r != ONIG_NORMAL) goto err_clear; + + e->of = ONIG_CALLOUT_OF_NAME; + e->in = in; + e->name_id = name_id; + e->type = onig_get_callout_type_by_name_id(name_id); + e->start_func = onig_get_callout_start_func_by_name_id(name_id); + e->end_func = onig_get_callout_end_func_by_name_id(name_id); + e->u.arg.num = max_arg_num; + e->u.arg.passed_num = arg_num; + for (i = 0; i < max_arg_num; i++) { + e->u.arg.types[i] = types[i]; + if (i < arg_num) + e->u.arg.vals[i] = vals[i]; + else + e->u.arg.vals[i] = get_callout_opt_default_by_name_id(name_id, i); + } + + *np = node; + *src = p; + return 0; + + err_clear: + clear_callout_args(arg_num, types, vals); + return r; +} +#endif + +#ifdef USE_WHOLE_OPTIONS +static int +set_whole_options(OnigOptionType option, ParseEnv* env) +{ + if ((env->flags & PE_FLAG_HAS_WHOLE_OPTIONS) != 0) + return ONIGERR_INVALID_GROUP_OPTION; + + env->flags |= PE_FLAG_HAS_WHOLE_OPTIONS; + + if (OPTON_DONT_CAPTURE_GROUP(option)) { + env->reg->options |= ONIG_OPTION_DONT_CAPTURE_GROUP; + if ((option & (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) == (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) + return ONIGERR_INVALID_COMBINATION_OF_OPTIONS; + } + + if ((option & ONIG_OPTION_IGNORECASE_IS_ASCII) != 0) { + env->reg->case_fold_flag &= + ~(INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR | + ONIGENC_CASE_FOLD_TURKISH_AZERI); + env->reg->case_fold_flag |= ONIGENC_CASE_FOLD_ASCII_ONLY; + env->reg->options |= ONIG_OPTION_IGNORECASE_IS_ASCII; + } + + if (OPTON_FIND_LONGEST(option)) { + env->reg->options |= ONIG_OPTION_FIND_LONGEST; + } + + return 0; +} +#endif + +static int +prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, + ParseEnv* env) +{ + int r, num; + Node *target; + OnigOptionType option; + OnigCodePoint c; + int list_capture; + OnigEncoding enc; + UChar* p; + PFETCH_READY; + + p = *src; + enc = env->enc; + *np = NULL; + if (PEND) return ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS; + + option = env->options; + c = PPEEK; + if (c == '?' && IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_GROUP_EFFECT)) { + PINC; + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + + PFETCH(c); + switch (c) { + case ':': /* (?:...) grouping only */ + group: + r = fetch_token(tok, &p, end, env); + if (r < 0) return r; + r = prs_alts(np, tok, term, &p, end, env, FALSE); + if (r < 0) return r; + *src = p; + return 1; /* group */ + break; + + case '=': + *np = node_new_anchor(ANCR_PREC_READ); + break; + case '!': /* preceding read */ + *np = node_new_anchor(ANCR_PREC_READ_NOT); + break; + case '>': /* (?>...) stop backtrack */ + *np = node_new_bag(BAG_STOP_BACKTRACK); + break; + + case '\'': + if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP)) { + goto named_group1; + } + else + return ONIGERR_UNDEFINED_GROUP_OPTION; + break; + + case '<': /* look behind (?<=...), (?syntax, ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP)) { + UChar *name; + UChar *name_end; + enum REF_NUM num_type; + + PUNFETCH; + c = '<'; + + named_group1: + list_capture = 0; + +#ifdef USE_CAPTURE_HISTORY + named_group2: +#endif + name = p; + r = fetch_name((OnigCodePoint )c, &p, end, &name_end, env, &num, + &num_type, FALSE); + if (r < 0) return r; + + num = scan_env_add_mem_entry(env); + if (num < 0) return num; + if (list_capture != 0 && num >= (int )MEM_STATUS_BITS_NUM) + return ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY; + + r = name_add(env->reg, name, name_end, num, env); + if (r != 0) return r; + *np = node_new_memory(1); + CHECK_NULL_RETURN_MEMERR(*np); + BAG_(*np)->m.regnum = num; + if (list_capture != 0) + MEM_STATUS_ON_SIMPLE(env->cap_history, num); + env->num_named++; + } + else { + return ONIGERR_UNDEFINED_GROUP_OPTION; + } + } + break; + + case '~': + if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP)) { + Node* absent; + Node* expr; + int head_bar; + int is_range_cutter; + + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + + if (PPEEK_IS('|')) { /* (?~|generator|absent) */ + PINC; + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + + head_bar = 1; + if (PPEEK_IS(')')) { /* (?~|) : range clear */ + PINC; + r = make_range_clear(np, env); + if (r != 0) return r; + env->flags |= PE_FLAG_HAS_ABSENT_STOPPER; + goto end; + } + } + else + head_bar = 0; + + r = fetch_token(tok, &p, end, env); + if (r < 0) return r; + r = prs_alts(&absent, tok, term, &p, end, env, TRUE); + if (r < 0) { + onig_node_free(absent); + return r; + } + + expr = NULL_NODE; + is_range_cutter = 0; + if (head_bar != 0) { + Node* top = absent; + if (ND_TYPE(top) != ND_ALT || IS_NULL(ND_CDR(top))) { + expr = NULL_NODE; + is_range_cutter = 1; + env->flags |= PE_FLAG_HAS_ABSENT_STOPPER; + } + else { + absent = ND_CAR(top); + expr = ND_CDR(top); + ND_CAR(top) = NULL_NODE; + ND_CDR(top) = NULL_NODE; + onig_node_free(top); + if (IS_NULL(ND_CDR(expr))) { + top = expr; + expr = ND_CAR(top); + ND_CAR(top) = NULL_NODE; + onig_node_free(top); + } + } + } + + r = make_absent_tree(np, absent, expr, is_range_cutter, env); + if (r != 0) { + return r; + } + goto end; + } + else { + return ONIGERR_UNDEFINED_GROUP_OPTION; + } + break; + +#ifdef USE_CALLOUT + case '{': + if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + + r = prs_callout_of_contents(np, ')', &p, end, env); + if (r != 0) return r; + + goto end; + break; +#endif + + case '(': + /* (?()...) */ + if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE)) { + UChar *prev; + Node* condition; + int condition_is_checker; + + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + PFETCH(c); + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + + if (IS_CODE_DIGIT_ASCII(enc, c) + || c == '-' || c == '+' || c == '<' || c == '\'') { +#ifdef USE_BACKREF_WITH_LEVEL + int exist_level; + int level; +#endif + UChar* name_end; + int back_num; + enum REF_NUM num_type; + int is_enclosed; + + is_enclosed = (c == '<' || c == '\'') ? 1 : 0; + if (! is_enclosed) + PUNFETCH; + prev = p; +#ifdef USE_BACKREF_WITH_LEVEL + exist_level = 0; + name_end = NULL_UCHARP; /* no need. escape gcc warning. */ + r = fetch_name_with_level( + (OnigCodePoint )(is_enclosed != 0 ? c : '('), + &p, end, &name_end, + env, &back_num, &level, &num_type); + if (r == 1) exist_level = 1; +#else + r = fetch_name((OnigCodePoint )(is_enclosed != 0 ? c : '('), + &p, end, &name_end, env, &back_num, &num_type, TRUE); +#endif + if (r < 0) { + if (is_enclosed == 0) { + goto any_condition; + } + else + return r; + } + + condition_is_checker = 1; + if (num_type != IS_NOT_NUM) { + if (num_type == IS_REL_NUM) { + back_num = backref_rel_to_abs(back_num, env); + } + if (back_num <= 0) + return ONIGERR_INVALID_BACKREF; + + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_STRICT_CHECK_BACKREF)) { + if (back_num > env->num_mem || + IS_NULL(PARSEENV_MEMENV(env)[back_num].mem_node)) + return ONIGERR_INVALID_BACKREF; + } + + condition = node_new_backref_checker(1, &back_num, FALSE, +#ifdef USE_BACKREF_WITH_LEVEL + exist_level, level, +#endif + env); + } + else { + int num; + int* backs; + + num = name_to_group_numbers(env, prev, name_end, &backs); + if (num <= 0) { + return ONIGERR_UNDEFINED_NAME_REFERENCE; + } + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_STRICT_CHECK_BACKREF)) { + int i; + for (i = 0; i < num; i++) { + if (backs[i] > env->num_mem || + IS_NULL(PARSEENV_MEMENV(env)[backs[i]].mem_node)) + return ONIGERR_INVALID_BACKREF; + } + } + + condition = node_new_backref_checker(num, backs, TRUE, +#ifdef USE_BACKREF_WITH_LEVEL + exist_level, level, +#endif + env); + } + + if (is_enclosed != 0) { + if (PEND) goto err_if_else; + PFETCH(c); + if (c != ')') goto err_if_else; + } + } +#ifdef USE_CALLOUT + else if (c == '?') { + if (IS_SYNTAX_OP2(env->syntax, + ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS)) { + if (! PEND && PPEEK_IS('{')) { + /* condition part is callouts of contents: (?(?{...})THEN|ELSE) */ + condition_is_checker = 0; + PFETCH(c); + r = prs_callout_of_contents(&condition, ')', &p, end, env); + if (r != 0) return r; + goto end_condition; + } + } + goto any_condition; + } + else if (c == '*' && + IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME)) { + condition_is_checker = 0; + r = prs_callout_of_name(&condition, ')', &p, end, env); + if (r != 0) return r; + goto end_condition; + } +#endif + else { + any_condition: + PUNFETCH; + condition_is_checker = 0; + r = fetch_token(tok, &p, end, env); + if (r < 0) return r; + r = prs_alts(&condition, tok, term, &p, end, env, FALSE); + if (r < 0) { + onig_node_free(condition); + return r; + } + } + +#ifdef USE_CALLOUT + end_condition: +#endif + CHECK_NULL_RETURN_MEMERR(condition); + + if (PEND) { + err_if_else: + onig_node_free(condition); + return ONIGERR_END_PATTERN_IN_GROUP; + } + + if (PPEEK_IS(')')) { /* case: empty body: make backref checker */ + if (condition_is_checker == 0) { + onig_node_free(condition); + return ONIGERR_INVALID_IF_ELSE_SYNTAX; + } + PFETCH(c); + *np = condition; + } + else { /* if-else */ + int then_is_empty; + Node *Then, *Else; + + Then = 0; + if (PPEEK_IS('|')) { + PFETCH(c); + then_is_empty = 1; + } + else + then_is_empty = 0; + + r = fetch_token(tok, &p, end, env); + if (r < 0) { + onig_node_free(condition); + return r; + } + r = prs_alts(&target, tok, term, &p, end, env, TRUE); + if (r < 0) { + onig_node_free(condition); + onig_node_free(target); + return r; + } + + if (then_is_empty != 0) { + Else = target; + } + else { + if (ND_TYPE(target) == ND_ALT) { + Then = ND_CAR(target); + if (ND_CDR(ND_CDR(target)) == NULL_NODE) { + Else = ND_CAR(ND_CDR(target)); + cons_node_free_alone(ND_CDR(target)); + } + else { + Else = ND_CDR(target); + } + cons_node_free_alone(target); + } + else { + Then = target; + Else = 0; + } + } + + *np = node_new_bag_if_else(condition, Then, Else); + if (IS_NULL(*np)) { + onig_node_free(condition); + onig_node_free(Then); + onig_node_free(Else); + return ONIGERR_MEMORY; + } + } + goto end; + } + else { + return ONIGERR_UNDEFINED_GROUP_OPTION; + } + break; + +#ifdef USE_CAPTURE_HISTORY + case '@': + if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY)) { + if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP)) { + PFETCH(c); + if (c == '<' || c == '\'') { + list_capture = 1; + goto named_group2; /* (?@...) */ + } + PUNFETCH; + } + + *np = node_new_memory(0); + CHECK_NULL_RETURN_MEMERR(*np); + num = scan_env_add_mem_entry(env); + if (num < 0) { + return num; + } + else if (num >= (int )MEM_STATUS_BITS_NUM) { + return ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY; + } + BAG_(*np)->m.regnum = num; + MEM_STATUS_ON_SIMPLE(env->cap_history, num); + } + else { + return ONIGERR_UNDEFINED_GROUP_OPTION; + } + break; +#endif + +#ifdef USE_WHOLE_OPTIONS + case 'C': + case 'I': + case 'L': + if (! IS_SYNTAX_BV(env->syntax, ONIG_SYN_WHOLE_OPTIONS)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + + goto options_start; + break; +#endif + + case 'P': + if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_CAPITAL_P_NAME)) { + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + PFETCH(c); + if (c == '<') goto named_group1; + + return ONIGERR_UNDEFINED_GROUP_OPTION; + } + /* else fall */ + case 'W': case 'D': case 'S': + case 'y': + if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_ONIGURUMA)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + /* else fall */ + +#ifdef USE_POSIXLINE_OPTION + case 'p': +#endif + case 'a': + case '-': case 'i': case 'm': case 's': case 'x': +#ifdef USE_WHOLE_OPTIONS + options_start: +#endif + { + int neg; +#ifdef USE_WHOLE_OPTIONS + int whole_options; + whole_options = FALSE; +#endif + neg = FALSE; + while (1) { + switch (c) { + case ':': + case ')': + break; + + case '-': neg = TRUE; break; + case 'x': OPTION_NEGATE(option, ONIG_OPTION_EXTEND, neg); break; + case 'i': OPTION_NEGATE(option, ONIG_OPTION_IGNORECASE, neg); break; + case 's': + if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_PERL)) { + OPTION_NEGATE(option, ONIG_OPTION_MULTILINE, neg); + } + else + return ONIGERR_UNDEFINED_GROUP_OPTION; + break; + + case 'm': + if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_PERL)) { + OPTION_NEGATE(option, ONIG_OPTION_SINGLELINE, (neg == FALSE ? TRUE : FALSE)); + } + else if (IS_SYNTAX_OP2(env->syntax, + ONIG_SYN_OP2_OPTION_ONIGURUMA|ONIG_SYN_OP2_OPTION_RUBY)) { + OPTION_NEGATE(option, ONIG_OPTION_MULTILINE, neg); + } + else + return ONIGERR_UNDEFINED_GROUP_OPTION; + break; +#ifdef USE_POSIXLINE_OPTION + case 'p': + OPTION_NEGATE(option, ONIG_OPTION_MULTILINE|ONIG_OPTION_SINGLELINE, neg); + break; +#endif + case 'W': + if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_ONIGURUMA)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + OPTION_NEGATE(option, ONIG_OPTION_WORD_IS_ASCII, neg); + break; + case 'D': + if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_ONIGURUMA)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + OPTION_NEGATE(option, ONIG_OPTION_DIGIT_IS_ASCII, neg); + break; + case 'S': + if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_ONIGURUMA)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + OPTION_NEGATE(option, ONIG_OPTION_SPACE_IS_ASCII, neg); + break; + case 'P': + if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_ONIGURUMA)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + OPTION_NEGATE(option, ONIG_OPTION_POSIX_IS_ASCII, neg); + break; + + case 'y': /* y{g}, y{w} */ + { + if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_ONIGURUMA)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + + if (neg == TRUE) return ONIGERR_UNDEFINED_GROUP_OPTION; + + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + if (! PPEEK_IS('{')) return ONIGERR_UNDEFINED_GROUP_OPTION; + PFETCH(c); + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + PFETCH(c); + switch (c) { + case 'g': + if (! ONIGENC_IS_UNICODE_ENCODING(enc)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + + OPTION_NEGATE(option, ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER, FALSE); + OPTION_NEGATE(option, ONIG_OPTION_TEXT_SEGMENT_WORD, TRUE); + break; +#ifdef USE_UNICODE_WORD_BREAK + case 'w': + if (! ONIGENC_IS_UNICODE_ENCODING(enc)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + + OPTION_NEGATE(option, ONIG_OPTION_TEXT_SEGMENT_WORD, FALSE); + OPTION_NEGATE(option, ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER, TRUE); + break; +#endif + default: + return ONIGERR_UNDEFINED_GROUP_OPTION; + break; + } + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + PFETCH(c); + if (c != '}') + return ONIGERR_UNDEFINED_GROUP_OPTION; + } /* case 'y' */ + break; + + case 'a': + if (! IS_SYNTAX_BV(env->syntax, ONIG_SYN_PYTHON)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + + OPTION_NEGATE(option, ONIG_OPTION_POSIX_IS_ASCII, neg); + break; + +#ifdef USE_WHOLE_OPTIONS + case 'C': + if (! IS_SYNTAX_BV(env->syntax, ONIG_SYN_WHOLE_OPTIONS)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + + if (neg == TRUE) return ONIGERR_INVALID_GROUP_OPTION; + OPTION_NEGATE(option, ONIG_OPTION_DONT_CAPTURE_GROUP, neg); + whole_options = TRUE; + break; + + case 'I': + if (! IS_SYNTAX_BV(env->syntax, ONIG_SYN_WHOLE_OPTIONS)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + + if (neg == TRUE) return ONIGERR_INVALID_GROUP_OPTION; + OPTION_NEGATE(option, ONIG_OPTION_IGNORECASE_IS_ASCII, neg); + whole_options = TRUE; + break; + + case 'L': + if (! IS_SYNTAX_BV(env->syntax, ONIG_SYN_WHOLE_OPTIONS)) + return ONIGERR_UNDEFINED_GROUP_OPTION; + + if (neg == TRUE) return ONIGERR_INVALID_GROUP_OPTION; + OPTION_NEGATE(option, ONIG_OPTION_FIND_LONGEST, neg); + whole_options = TRUE; + break; +#endif + + default: + return ONIGERR_UNDEFINED_GROUP_OPTION; + } + + if (c == ')') { + *np = node_new_option(option); + CHECK_NULL_RETURN_MEMERR(*np); + +#ifdef USE_WHOLE_OPTIONS + if (whole_options == TRUE) { + r = set_whole_options(option, env); + if (r != 0) return r; + ND_STATUS_ADD(*np, WHOLE_OPTIONS); + } +#endif + *src = p; + return 2; /* option only */ + } + else if (c == ':') { + OnigOptionType prev = env->options; + + env->options = option; +#ifdef USE_WHOLE_OPTIONS + if (whole_options == TRUE) { + r = set_whole_options(option, env); + if (r != 0) return r; + } +#endif + r = fetch_token(tok, &p, end, env); + if (r < 0) return r; + r = prs_alts(&target, tok, term, &p, end, env, FALSE); + env->options = prev; + if (r < 0) { + onig_node_free(target); + return r; + } + + *np = node_new_option(option); + CHECK_NULL_RETURN_MEMERR(*np); + ND_BODY(*np) = target; + ND_STATUS_ADD(*np, WHOLE_OPTIONS); + + *src = p; + return 0; + } + + if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; + PFETCH(c); + } /* while (1) */ + } + break; + + default: + return ONIGERR_UNDEFINED_GROUP_OPTION; + } + } +#ifdef USE_CALLOUT + else if (c == '*' && + IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME)) { + PINC; + r = prs_callout_of_name(np, ')', &p, end, env); + if (r != 0) return r; + + goto end; + } +#endif + else { + if (OPTON_DONT_CAPTURE_GROUP(env->options)) + goto group; + + *np = node_new_memory(0); + CHECK_NULL_RETURN_MEMERR(*np); + num = scan_env_add_mem_entry(env); + if (num < 0) return num; + BAG_(*np)->m.regnum = num; + } + + CHECK_NULL_RETURN_MEMERR(*np); + r = fetch_token(tok, &p, end, env); + if (r < 0) return r; + r = prs_alts(&target, tok, term, &p, end, env, FALSE); + if (r < 0) { + onig_node_free(target); + return r; + } + + ND_BODY(*np) = target; + + if (ND_TYPE(*np) == ND_BAG) { + if (BAG_(*np)->type == BAG_MEMORY) { + /* Don't move this to previous of prs_alts() */ + r = scan_env_set_mem_node(env, BAG_(*np)->m.regnum, *np); + if (r != 0) return r; + } + } + + end: + *src = p; + return 0; +} + +static const char* PopularQStr[] = { + "?", "*", "+", "??", "*?", "+?" +}; + +static const char* ReduceQStr[] = { + "", "", "*", "*?", "??", "+ and ??", "+? and ?" +}; + +static int +assign_quantifier_body(Node* qnode, Node* target, int group, ParseEnv* env) +{ + QuantNode* qn; + + qn = QUANT_(qnode); + if (qn->lower == 1 && qn->upper == 1) + return 1; + + switch (ND_TYPE(target)) { + case ND_STRING: + if (group == 0) { + if (str_node_can_be_split(target, env->enc)) { + Node* n = str_node_split_last_char(target, env->enc); + if (IS_NOT_NULL(n)) { + ND_BODY(qnode) = n; + return 2; + } + } + } + break; + + case ND_QUANT: + { /* check redundant double repeat. */ + /* verbose warn (?:.?)? etc... but not warn (.?)? etc... */ + QuantNode* qnt = QUANT_(target); + int nestq_num = quantifier_type_num(qn); + int targetq_num = quantifier_type_num(qnt); + +#ifdef USE_WARNING_REDUNDANT_NESTED_REPEAT_OPERATOR + if (targetq_num >= 0 && nestq_num >= 0 && + IS_SYNTAX_BV(env->syntax, ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT)) { + UChar buf[WARN_BUFSIZE]; + + switch(ReduceTypeTable[targetq_num][nestq_num]) { + case RQ_ASIS: + break; + + case RQ_DEL: + if (onig_verb_warn != onig_null_warn) { + onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc, + env->pattern, env->pattern_end, + "redundant nested repeat operator"); + (*onig_verb_warn)((char* )buf); + } + goto warn_exit; + break; + + default: + if (onig_verb_warn != onig_null_warn) { + onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc, + env->pattern, env->pattern_end, + "nested repeat operator %s and %s was replaced with '%s'", + PopularQStr[targetq_num], PopularQStr[nestq_num], + ReduceQStr[ReduceTypeTable[targetq_num][nestq_num]]); + (*onig_verb_warn)((char* )buf); + } + goto warn_exit; + break; + } + } + + warn_exit: +#endif + if (targetq_num >= 0 && nestq_num < 0) { + if (targetq_num == 1 || targetq_num == 2) { /* * or + */ + /* (?:a*){n,m}, (?:a+){n,m} => (?:a*){n,n}, (?:a+){n,n} */ + if (! IS_INFINITE_REPEAT(qn->upper) && qn->upper > 1 && qn->greedy) { + qn->upper = (qn->lower == 0 ? 1 : qn->lower); + } + } + } + else { + int r; + + ND_BODY(qnode) = target; + r = onig_reduce_nested_quantifier(qnode); + return r; + } + } + break; + + default: + break; + } + + ND_BODY(qnode) = target; + return 0; +} + + +#ifndef CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS +static int +clear_not_flag_cclass(CClassNode* cc, OnigEncoding enc) +{ + BBuf *tbuf; + int r; + + if (IS_NCCLASS_NOT(cc)) { + bitset_invert(cc->bs); + + if (! ONIGENC_IS_SINGLEBYTE(enc)) { + r = not_code_range_buf(enc, cc->mbuf, &tbuf); + if (r != 0) return r; + + bbuf_free(cc->mbuf); + cc->mbuf = tbuf; + } + + NCCLASS_CLEAR_NOT(cc); + } + + return 0; +} +#endif /* CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS */ + +#define ADD_CODE_INTO_CC(cc, code, enc) do {\ + if (ONIGENC_MBC_MINLEN(enc) > 1 || ONIGENC_CODE_TO_MBCLEN(enc, code) != 1) {\ + add_code_range_to_buf(&((cc)->mbuf), code, code);\ + }\ + else {\ + BITSET_SET_BIT((cc)->bs, code);\ + }\ +} while (0) + +extern int +onig_new_cclass_with_code_list(Node** rnode, OnigEncoding enc, + int n, OnigCodePoint codes[]) +{ + int i; + Node* node; + CClassNode* cc; + + *rnode = NULL_NODE; + + node = node_new_cclass(); + CHECK_NULL_RETURN_MEMERR(node); + + cc = CCLASS_(node); + + for (i = 0; i < n; i++) { + ADD_CODE_INTO_CC(cc, codes[i], enc); + } + + *rnode = node; + return 0; +} + +typedef struct { + ParseEnv* env; + CClassNode* cc; + Node* alt_root; + Node** ptail; +} IApplyCaseFoldArg; + +static int +i_apply_case_fold(OnigCodePoint from, OnigCodePoint to[], int to_len, + void* arg) +{ + IApplyCaseFoldArg* iarg; + ParseEnv* env; + OnigEncoding enc; + CClassNode* cc; + + iarg = (IApplyCaseFoldArg* )arg; + env = iarg->env; + cc = iarg->cc; + enc = env->enc; + + if (to_len == 1) { + int is_in = onig_is_code_in_cc(enc, from, cc); +#ifdef CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS + if ((is_in != 0 && !IS_NCCLASS_NOT(cc)) || + (is_in == 0 && IS_NCCLASS_NOT(cc))) { + ADD_CODE_INTO_CC(cc, *to, enc); + } +#else + if (is_in != 0) { + if (ONIGENC_MBC_MINLEN(enc) > 1 || + ONIGENC_CODE_TO_MBCLEN(enc, *to) != 1) { + if (IS_NCCLASS_NOT(cc)) clear_not_flag_cclass(cc, enc); + add_code_range(&(cc->mbuf), env, *to, *to); + } + else { + if (IS_NCCLASS_NOT(cc)) { + BITSET_CLEAR_BIT(cc->bs, *to); + } + else + BITSET_SET_BIT(cc->bs, *to); + } + } +#endif /* CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS */ + } + else { + int r, i, len; + UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN]; + + if (onig_is_code_in_cc(enc, from, cc) +#ifdef CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS + && !IS_NCCLASS_NOT(cc) +#endif + ) { + int n, j, m, index; + Node* list_node; + Node* ns[3]; + + n = 0; + for (i = 0; i < to_len; i++) { + OnigCodePoint code; + Node* csnode; + CClassNode* cs_cc; + + index = 0; + if (ONIGENC_IS_UNICODE_ENCODING(enc) && + (index = onigenc_unicode_fold1_key(&to[i])) >= 0) { + csnode = node_new_cclass(); + cs_cc = CCLASS_(csnode); + if (IS_NULL(csnode)) { + err_free_ns: + for (j = 0; j < n; j++) onig_node_free(ns[j]); + return ONIGERR_MEMORY; + } + m = FOLDS1_UNFOLDS_NUM(index); + for (j = 0; j < m; j++) { + code = FOLDS1_UNFOLDS(index)[j]; + ADD_CODE_INTO_CC(cs_cc, code, enc); + } + ADD_CODE_INTO_CC(cs_cc, to[i], enc); + ns[n++] = csnode; + } + else { + len = ONIGENC_CODE_TO_MBC(enc, to[i], buf); + if (n == 0 || ND_TYPE(ns[n-1]) != ND_STRING) { + csnode = node_new_str(buf, buf + len); + if (IS_NULL(csnode)) goto err_free_ns; + + if (index == 0) + ND_STATUS_ADD(csnode, IGNORECASE); + else + ND_STRING_SET_CASE_EXPANDED(csnode); + + ns[n++] = csnode; + } + else { + r = onig_node_str_cat(ns[n-1], buf, buf + len); + if (r < 0) goto err_free_ns; + } + } + } + + if (n == 1) + list_node = ns[0]; + else + list_node = make_list(n, ns); + + *(iarg->ptail) = onig_node_new_alt(list_node, NULL_NODE); + if (IS_NULL(*(iarg->ptail))) { + onig_node_free(list_node); + return ONIGERR_MEMORY; + } + iarg->ptail = &(ND_CDR((*(iarg->ptail)))); + } + } + + return 0; +} + +static int +prs_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, + ParseEnv* env, int group_head) +{ + int r, len, group; + Node* qn; + Node** tp; + unsigned int parse_depth; + + retry: + group = 0; + *np = NULL; + if (tok->type == (enum TokenSyms )term) + goto end_of_token; + + parse_depth = env->parse_depth; + + switch (tok->type) { + case TK_ALT: + case TK_EOT: + end_of_token: + *np = node_new_empty(); + CHECK_NULL_RETURN_MEMERR(*np); + return tok->type; + break; + + case TK_SUBEXP_OPEN: + r = prs_bag(np, tok, TK_SUBEXP_CLOSE, src, end, env); + if (r < 0) return r; + if (r == 1) { /* group */ + if (group_head == 0) + group = 1; + else { + Node* target = *np; + *np = node_new_group(target); + if (IS_NULL(*np)) { + onig_node_free(target); + return ONIGERR_MEMORY; + } + group = 2; + } + } + else if (r == 2) { /* option only */ + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH)) { + env->options = BAG_(*np)->o.options; + r = fetch_token(tok, src, end, env); + if (r < 0) return r; + onig_node_free(*np); + goto retry; + } + else { + Node* target; + OnigOptionType prev = env->options; + + env->options = BAG_(*np)->o.options; + r = fetch_token(tok, src, end, env); + if (r < 0) return r; + r = prs_alts(&target, tok, term, src, end, env, FALSE); + env->options = prev; + if (r < 0) { + onig_node_free(target); + return r; + } + ND_BODY(*np) = target; + } + return tok->type; + } + break; + + case TK_SUBEXP_CLOSE: + if (! IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP)) + return ONIGERR_UNMATCHED_CLOSE_PARENTHESIS; + + if (tok->escaped) goto tk_crude_byte; + else goto tk_byte; + break; + + case TK_STRING: + tk_byte: + { + *np = node_new_str_with_options(tok->backp, *src, env->options); + tk_byte2: + CHECK_NULL_RETURN_MEMERR(*np); + + while (1) { + r = fetch_token(tok, src, end, env); + if (r < 0) return r; + if (r != TK_STRING) break; + + r = onig_node_str_cat(*np, tok->backp, *src); + if (r < 0) return r; + } + + string_end: + tp = np; + goto repeat; + } + break; + + case TK_CRUDE_BYTE: + tk_crude_byte: + { + *np = node_new_str_crude_char(tok->u.byte, env->options); + CHECK_NULL_RETURN_MEMERR(*np); + len = 1; + while (1) { + if (len >= ONIGENC_MBC_MINLEN(env->enc)) { + if (len == enclen(env->enc, STR_(*np)->s)) { + r = fetch_token(tok, src, end, env); + goto tk_crude_byte_end; + } + } + + r = fetch_token(tok, src, end, env); + if (r < 0) return r; + if (r != TK_CRUDE_BYTE) + return ONIGERR_TOO_SHORT_MULTI_BYTE_STRING; + + r = node_str_cat_char(*np, tok->u.byte); + if (r < 0) return r; + + len++; + } + + tk_crude_byte_end: + if (! ONIGENC_IS_VALID_MBC_STRING(env->enc, STR_(*np)->s, STR_(*np)->end)) + return ONIGERR_INVALID_WIDE_CHAR_VALUE; + + ND_STRING_CLEAR_CRUDE(*np); + goto string_end; + } + break; + + case TK_CODE_POINT: + { + UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN]; + len = ONIGENC_CODE_TO_MBCLEN(env->enc, tok->u.code); + if (len < 0) return len; + len = ONIGENC_CODE_TO_MBC(env->enc, tok->u.code, buf); +#ifdef NUMBERED_CHAR_IS_NOT_CASE_AMBIG + *np = node_new_str_crude(buf, buf + len, env->options); +#else + *np = node_new_str_with_options(buf, buf + len, env->options); +#endif + CHECK_NULL_RETURN_MEMERR(*np); + } + break; + + case TK_QUOTE_OPEN: + { + OnigCodePoint end_op[2]; + UChar *qstart, *qend, *nextp; + + end_op[0] = (OnigCodePoint )MC_ESC(env->syntax); + end_op[1] = (OnigCodePoint )'E'; + qstart = *src; + qend = find_str_position(end_op, 2, qstart, end, &nextp, env->enc); + if (IS_NULL(qend)) { + nextp = qend = end; + } + *np = node_new_str_with_options(qstart, qend, env->options); + CHECK_NULL_RETURN_MEMERR(*np); + *src = nextp; + } + break; + + case TK_CHAR_TYPE: + { + switch (tok->u.prop.ctype) { + case ONIGENC_CTYPE_WORD: + *np = node_new_ctype(tok->u.prop.ctype, tok->u.prop.not, env->options); + CHECK_NULL_RETURN_MEMERR(*np); + break; + + case ONIGENC_CTYPE_SPACE: + case ONIGENC_CTYPE_DIGIT: + case ONIGENC_CTYPE_XDIGIT: + { + CClassNode* cc; + + *np = node_new_cclass(); + CHECK_NULL_RETURN_MEMERR(*np); + cc = CCLASS_(*np); + r = add_ctype_to_cc(cc, tok->u.prop.ctype, FALSE, env); + if (r != 0) { + onig_node_free(*np); + *np = NULL_NODE; + return r; + } + if (tok->u.prop.not != 0) NCCLASS_SET_NOT(cc); + } + break; + + default: + return ONIGERR_PARSER_BUG; + break; + } + } + break; + + case TK_CHAR_PROPERTY: + r = prs_char_property(np, tok, src, end, env); + if (r != 0) return r; + break; + + case TK_OPEN_CC: + { + CClassNode* cc; + + r = prs_cc(np, tok, src, end, env); + if (r != 0) return r; + + cc = CCLASS_(*np); + if (OPTON_IGNORECASE(env->options)) { + IApplyCaseFoldArg iarg; + + iarg.env = env; + iarg.cc = cc; + iarg.alt_root = NULL_NODE; + iarg.ptail = &(iarg.alt_root); + + r = ONIGENC_APPLY_ALL_CASE_FOLD(env->enc, env->reg->case_fold_flag, + i_apply_case_fold, &iarg); + if (r != 0) { + onig_node_free(iarg.alt_root); + return r; + } + if (IS_NOT_NULL(iarg.alt_root)) { + Node* work = onig_node_new_alt(*np, iarg.alt_root); + if (IS_NULL(work)) { + onig_node_free(iarg.alt_root); + return ONIGERR_MEMORY; + } + *np = work; + } + } + } + break; + + case TK_ANYCHAR: + *np = node_new_anychar(env->options); + CHECK_NULL_RETURN_MEMERR(*np); + break; + + case TK_ANYCHAR_ANYTIME: + *np = node_new_anychar(env->options); + CHECK_NULL_RETURN_MEMERR(*np); + qn = node_new_quantifier(0, INFINITE_REPEAT, FALSE); + CHECK_NULL_RETURN_MEMERR(qn); + ND_BODY(qn) = *np; + *np = qn; + break; + + case TK_BACKREF: + len = tok->u.backref.num; + *np = node_new_backref(len, + (len > 1 ? tok->u.backref.refs : &(tok->u.backref.ref1)), + tok->u.backref.by_name, +#ifdef USE_BACKREF_WITH_LEVEL + tok->u.backref.exist_level, + tok->u.backref.level, +#endif + env); + CHECK_NULL_RETURN_MEMERR(*np); + break; + +#ifdef USE_CALL + case TK_CALL: + { + int gnum = tok->u.call.gnum; + + *np = node_new_call(tok->u.call.name, tok->u.call.name_end, + gnum, tok->u.call.by_number); + CHECK_NULL_RETURN_MEMERR(*np); + env->num_call++; + if (tok->u.call.by_number != 0 && gnum == 0) { + env->flags |= PE_FLAG_HAS_CALL_ZERO; + } + } + break; +#endif + + case TK_ANCHOR: + *np = node_new_anchor_with_options(tok->u.anchor, env->options); + CHECK_NULL_RETURN_MEMERR(*np); + break; + + case TK_REPEAT: + case TK_INTERVAL: + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS)) { + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS)) + return ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED; + else { + *np = node_new_empty(); + CHECK_NULL_RETURN_MEMERR(*np); + } + } + else { + if (tok->type == TK_INTERVAL && + IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_BRACE_INTERVAL)) { + *np = node_new_str_with_options(tok->backp, *src, env->options); + node_str_remove_char(*np, (UChar )'\\'); + goto tk_byte2; + } + else { + goto tk_byte; + } + } + break; + + case TK_KEEP: + r = node_new_keep(np, env); + if (r < 0) return r; + break; + + case TK_GENERAL_NEWLINE: + r = node_new_general_newline(np, env); + if (r < 0) return r; + break; + + case TK_NO_NEWLINE: + r = node_new_no_newline(np, env); + if (r < 0) return r; + break; + + case TK_TRUE_ANYCHAR: + r = node_new_true_anychar(np); + if (r < 0) return r; + break; + + case TK_TEXT_SEGMENT: + r = make_text_segment(np, env); + if (r < 0) return r; + break; + + default: + return ONIGERR_PARSER_BUG; + break; + } + + { + tp = np; + + re_entry: + r = fetch_token(tok, src, end, env); + if (r < 0) return r; + + repeat: + if (r == TK_REPEAT || r == TK_INTERVAL) { + Node* target; + + if (is_invalid_quantifier_target(*tp)) { + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS)) { + if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS)) + return ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID; + } + + return r; + } + + INC_PARSE_DEPTH(parse_depth); + + qn = node_new_quantifier(tok->u.repeat.lower, tok->u.repeat.upper, + r == TK_INTERVAL); + CHECK_NULL_RETURN_MEMERR(qn); + QUANT_(qn)->greedy = tok->u.repeat.greedy; + if (group == 2) { + target = node_drop_group(*tp); + *tp = NULL_NODE; + } + else { + target = *tp; + } + r = assign_quantifier_body(qn, target, group, env); + if (r < 0) { + onig_node_free(qn); + *tp = NULL_NODE; + return r; + } + + if (tok->u.repeat.possessive != 0) { + Node* en; + en = node_new_bag(BAG_STOP_BACKTRACK); + if (IS_NULL(en)) { + onig_node_free(qn); + return ONIGERR_MEMORY; + } + ND_BODY(en) = qn; + qn = en; + } + + if (r == 0) { + *tp = qn; + } + else if (r == 1) { /* x{1,1} ==> x */ + onig_node_free(qn); + *tp = target; + } + else if (r == 2) { /* split case: /abc+/ */ + Node *tmp; + + *tp = node_new_list(*tp, NULL); + if (IS_NULL(*tp)) { + onig_node_free(qn); + return ONIGERR_MEMORY; + } + tmp = ND_CDR(*tp) = node_new_list(qn, NULL); + if (IS_NULL(tmp)) { + onig_node_free(qn); + return ONIGERR_MEMORY; + } + tp = &(ND_CAR(tmp)); + } + group = 0; + goto re_entry; + } + } + + return r; +} + +static int +prs_branch(Node** top, PToken* tok, int term, UChar** src, UChar* end, + ParseEnv* env, int group_head) +{ + int r; + Node *node, **headp; + + *top = NULL; + INC_PARSE_DEPTH(env->parse_depth); + + r = prs_exp(&node, tok, term, src, end, env, group_head); + if (r < 0) { + onig_node_free(node); + return r; + } + + if (r == TK_EOT || r == term || r == TK_ALT) { + *top = node; + } + else { + *top = node_new_list(node, NULL); + if (IS_NULL(*top)) { + mem_err: + onig_node_free(node); + return ONIGERR_MEMORY; + } + + headp = &(ND_CDR(*top)); + while (r != TK_EOT && r != term && r != TK_ALT) { + r = prs_exp(&node, tok, term, src, end, env, FALSE); + if (r < 0) { + onig_node_free(node); + return r; + } + + if (ND_TYPE(node) == ND_LIST) { + *headp = node; + while (IS_NOT_NULL(ND_CDR(node))) node = ND_CDR(node); + headp = &(ND_CDR(node)); + } + else { + *headp = node_new_list(node, NULL); + if (IS_NULL(*headp)) goto mem_err; + headp = &(ND_CDR(*headp)); + } + } + } + + DEC_PARSE_DEPTH(env->parse_depth); + return r; +} + +/* term_tok: TK_EOT or TK_SUBEXP_CLOSE */ +static int +prs_alts(Node** top, PToken* tok, int term, UChar** src, UChar* end, + ParseEnv* env, int group_head) +{ + int r; + Node *node, **headp; + OnigOptionType save_options; + + *top = NULL; + INC_PARSE_DEPTH(env->parse_depth); + save_options = env->options; + + r = prs_branch(&node, tok, term, src, end, env, group_head); + if (r < 0) { + onig_node_free(node); + return r; + } + + if (r == term) { + *top = node; + } + else if (r == TK_ALT) { + *top = onig_node_new_alt(node, NULL); + if (IS_NULL(*top)) { + onig_node_free(node); + return ONIGERR_MEMORY; + } + + headp = &(ND_CDR(*top)); + while (r == TK_ALT) { + r = fetch_token(tok, src, end, env); + if (r < 0) return r; + r = prs_branch(&node, tok, term, src, end, env, FALSE); + if (r < 0) { + onig_node_free(node); + return r; + } + *headp = onig_node_new_alt(node, NULL); + if (IS_NULL(*headp)) { + onig_node_free(node); + onig_node_free(*top); + *top = NULL_NODE; + return ONIGERR_MEMORY; + } + + headp = &(ND_CDR(*headp)); + } + + if (tok->type != (enum TokenSyms )term) + goto err; + } + else { + onig_node_free(node); + err: + if (term == TK_SUBEXP_CLOSE) + return ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS; + else + return ONIGERR_PARSER_BUG; + } + + env->options = save_options; + DEC_PARSE_DEPTH(env->parse_depth); + return r; +} + +static int +prs_regexp(Node** top, UChar** src, UChar* end, ParseEnv* env) +{ + int r; + PToken tok; + + ptoken_init(&tok); + r = fetch_token(&tok, src, end, env); + if (r < 0) return r; + r = prs_alts(top, &tok, TK_EOT, src, end, env, FALSE); + if (r < 0) return r; + + return 0; +} + +#ifdef USE_CALL +static int +make_call_zero_body(Node* node, ParseEnv* env, Node** rnode) +{ + int r; + + Node* x = node_new_memory(0 /* 0: is not named */); + CHECK_NULL_RETURN_MEMERR(x); + + ND_BODY(x) = node; + BAG_(x)->m.regnum = 0; + r = scan_env_set_mem_node(env, 0, x); + if (r != 0) { + onig_node_free(x); + return r; + } + + *rnode = x; + return 0; +} +#endif + +extern int +onig_parse_tree(Node** root, const UChar* pattern, const UChar* end, + regex_t* reg, ParseEnv* env) +{ + int r; + UChar* p; +#ifdef USE_CALLOUT + RegexExt* ext; +#endif + + reg->string_pool = 0; + reg->string_pool_end = 0; + reg->num_mem = 0; + reg->num_repeat = 0; + reg->num_empty_check = 0; + reg->repeat_range_alloc = 0; + reg->repeat_range = (RepeatRange* )NULL; + + names_clear(reg); + + scan_env_clear(env); + env->options = reg->options; + env->case_fold_flag = reg->case_fold_flag; + env->enc = reg->enc; + env->syntax = reg->syntax; + env->pattern = (UChar* )pattern; + env->pattern_end = (UChar* )end; + env->reg = reg; + + *root = NULL; + + if (! ONIGENC_IS_VALID_MBC_STRING(env->enc, pattern, end)) + return ONIGERR_INVALID_WIDE_CHAR_VALUE; + + p = (UChar* )pattern; + r = prs_regexp(root, &p, (UChar* )end, env); + if (r != 0) return r; + +#ifdef USE_CALL + if ((env->flags & PE_FLAG_HAS_CALL_ZERO) != 0) { + Node* zero_node; + r = make_call_zero_body(*root, env, &zero_node); + if (r != 0) return r; + + *root = zero_node; + } +#endif + + reg->num_mem = env->num_mem; + +#ifdef USE_CALLOUT + ext = reg->extp; + if (IS_NOT_NULL(ext) && ext->callout_num > 0) { + r = setup_ext_callout_list_values(reg); + } +#endif + + return r; +} + +extern void +onig_scan_env_set_error_string(ParseEnv* env, int ecode ARG_UNUSED, + UChar* arg, UChar* arg_end) +{ + env->error = arg; + env->error_end = arg_end; +} diff --git a/thirdparty/oniguruma/regparse.h b/thirdparty/oniguruma/regparse.h new file mode 100644 index 000000000..b8a6f6bdc --- /dev/null +++ b/thirdparty/oniguruma/regparse.h @@ -0,0 +1,494 @@ +#ifndef REGPARSE_H +#define REGPARSE_H +/********************************************************************** + regparse.h - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2022 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regint.h" + +#define ND_STRING_MARGIN 16 +#define ND_STRING_BUF_SIZE 24 /* sizeof(CClassNode) - sizeof(int)*4 */ +#define ND_BACKREFS_SIZE 6 + +/* node type */ +typedef enum { + ND_STRING = 0, + ND_CCLASS = 1, + ND_CTYPE = 2, + ND_BACKREF = 3, + ND_QUANT = 4, + ND_BAG = 5, + ND_ANCHOR = 6, + ND_LIST = 7, + ND_ALT = 8, + ND_CALL = 9, + ND_GIMMICK = 10 +} NodeType; + +enum BagType { + BAG_MEMORY = 0, + BAG_OPTION = 1, + BAG_STOP_BACKTRACK = 2, + BAG_IF_ELSE = 3, +}; + +enum GimmickType { + GIMMICK_FAIL = 0, + GIMMICK_SAVE = 1, + GIMMICK_UPDATE_VAR = 2, +#ifdef USE_CALLOUT + GIMMICK_CALLOUT = 3, +#endif +}; + +enum BodyEmptyType { + BODY_IS_NOT_EMPTY = 0, + BODY_MAY_BE_EMPTY = 1, + BODY_MAY_BE_EMPTY_MEM = 2, + BODY_MAY_BE_EMPTY_REC = 3 +}; + +/* bytes buffer */ +typedef struct _BBuf { + UChar* p; + unsigned int used; + unsigned int alloc; +} BBuf; + + +struct _Node; + +typedef struct { + NodeType node_type; + int status; + struct _Node* parent; + + UChar* s; + UChar* end; + unsigned int flag; + UChar buf[ND_STRING_BUF_SIZE]; + int capacity; /* (allocated size - 1) or 0: use buf[] */ +} StrNode; + +typedef struct { + NodeType node_type; + int status; + struct _Node* parent; + + unsigned int flags; + BitSet bs; + BBuf* mbuf; /* multi-byte info or NULL */ +} CClassNode; + +typedef struct { + NodeType node_type; + int status; + struct _Node* parent; + struct _Node* body; + + int lower; + int upper; + int greedy; + enum BodyEmptyType emptiness; + struct _Node* head_exact; + struct _Node* next_head_exact; + int include_referred; /* include called node. don't eliminate even if {0} */ + MemStatusType empty_status_mem; +} QuantNode; + +typedef struct { + NodeType node_type; + int status; + struct _Node* parent; + struct _Node* body; + + enum BagType type; + union { + struct { + int regnum; + AbsAddrType called_addr; + int entry_count; + int called_state; + } m; + struct { + OnigOptionType options; + } o; + struct { + /* body is condition */ + struct _Node* Then; + struct _Node* Else; + } te; + }; + /* for multiple call reference */ + OnigLen min_len; /* min length (byte) */ + OnigLen max_len; /* max length (byte) */ + OnigLen min_char_len; + OnigLen max_char_len; + int opt_count; /* referenced count in optimize_nodes() */ +} BagNode; + +#ifdef USE_CALL + +typedef struct { + int offset; + struct _Node* target; +} UnsetAddr; + +typedef struct { + int num; + int alloc; + UnsetAddr* us; +} UnsetAddrList; + +typedef struct { + NodeType node_type; + int status; + struct _Node* parent; + struct _Node* body; /* to BagNode : BAG_MEMORY */ + + int by_number; + int called_gnum; + UChar* name; + UChar* name_end; + int entry_count; +} CallNode; + +#endif + +typedef struct { + NodeType node_type; + int status; + struct _Node* parent; + + int back_num; + int back_static[ND_BACKREFS_SIZE]; + int* back_dynamic; + int nest_level; +} BackRefNode; + +typedef struct { + NodeType node_type; + int status; + struct _Node* parent; + struct _Node* body; + + int type; + OnigLen char_min_len; + OnigLen char_max_len; + int ascii_mode; + struct _Node* lead_node; +} AnchorNode; + +typedef struct { + NodeType node_type; + int status; + struct _Node* parent; + + struct _Node* car; + struct _Node* cdr; +} ConsAltNode; + +typedef struct { + NodeType node_type; + int status; + struct _Node* parent; + + int ctype; + int not; + int ascii_mode; +} CtypeNode; + +typedef struct { + NodeType node_type; + int status; + struct _Node* parent; + + enum GimmickType type; + int detail_type; + int num; + int id; +} GimmickNode; + +typedef struct _Node { + union { + struct { + NodeType node_type; + int status; + struct _Node* parent; + struct _Node* body; + } base; + + StrNode str; + CClassNode cclass; + QuantNode quant; + BagNode bag; + BackRefNode backref; + AnchorNode anchor; + ConsAltNode cons; + CtypeNode ctype; +#ifdef USE_CALL + CallNode call; +#endif + GimmickNode gimmick; + } u; +} Node; + +typedef struct { + int new_val; +} GroupNumMap; + + +#define NULL_NODE ((Node* )0) + + +/* node type bit */ +#define ND_TYPE2BIT(type) (1<<(type)) + +#define ND_BIT_STRING ND_TYPE2BIT(ND_STRING) +#define ND_BIT_CCLASS ND_TYPE2BIT(ND_CCLASS) +#define ND_BIT_CTYPE ND_TYPE2BIT(ND_CTYPE) +#define ND_BIT_BACKREF ND_TYPE2BIT(ND_BACKREF) +#define ND_BIT_QUANT ND_TYPE2BIT(ND_QUANT) +#define ND_BIT_BAG ND_TYPE2BIT(ND_BAG) +#define ND_BIT_ANCHOR ND_TYPE2BIT(ND_ANCHOR) +#define ND_BIT_LIST ND_TYPE2BIT(ND_LIST) +#define ND_BIT_ALT ND_TYPE2BIT(ND_ALT) +#define ND_BIT_CALL ND_TYPE2BIT(ND_CALL) +#define ND_BIT_GIMMICK ND_TYPE2BIT(ND_GIMMICK) + +#define ND_TYPE(node) ((node)->u.base.node_type) +#define ND_SET_TYPE(node, ntype) (node)->u.base.node_type = (ntype) + +#define STR_(node) (&((node)->u.str)) +#define CCLASS_(node) (&((node)->u.cclass)) +#define CTYPE_(node) (&((node)->u.ctype)) +#define BACKREF_(node) (&((node)->u.backref)) +#define QUANT_(node) (&((node)->u.quant)) +#define BAG_(node) (&((node)->u.bag)) +#define ANCHOR_(node) (&((node)->u.anchor)) +#define CONS_(node) (&((node)->u.cons)) +#define CALL_(node) (&((node)->u.call)) +#define GIMMICK_(node) (&((node)->u.gimmick)) + +#define ND_CAR(node) (CONS_(node)->car) +#define ND_CDR(node) (CONS_(node)->cdr) + +#define CTYPE_ANYCHAR -1 +#define ND_IS_ANYCHAR(node) \ + (ND_TYPE(node) == ND_CTYPE && CTYPE_(node)->ctype == CTYPE_ANYCHAR) + + +#define ANCR_ANYCHAR_INF_MASK (ANCR_ANYCHAR_INF | ANCR_ANYCHAR_INF_ML) +#define ANCR_END_BUF_MASK (ANCR_END_BUF | ANCR_SEMI_END_BUF) + +#define ND_STRING_CRUDE (1<<0) +#define ND_STRING_CASE_EXPANDED (1<<1) + +#define ND_STRING_LEN(node) (int )((node)->u.str.end - (node)->u.str.s) +#define ND_STRING_SET_CRUDE(node) (node)->u.str.flag |= ND_STRING_CRUDE +#define ND_STRING_CLEAR_CRUDE(node) (node)->u.str.flag &= ~ND_STRING_CRUDE +#define ND_STRING_SET_CASE_EXPANDED(node) (node)->u.str.flag |= ND_STRING_CASE_EXPANDED +#define ND_STRING_IS_CRUDE(node) \ + (((node)->u.str.flag & ND_STRING_CRUDE) != 0) +#define ND_STRING_IS_CASE_EXPANDED(node) \ + (((node)->u.str.flag & ND_STRING_CASE_EXPANDED) != 0) + +#define BACKREFS_P(br) \ + (IS_NOT_NULL((br)->back_dynamic) ? (br)->back_dynamic : (br)->back_static) + +/* node status bits */ +#define ND_ST_FIXED_MIN (1<<0) +#define ND_ST_FIXED_MAX (1<<1) +#define ND_ST_FIXED_CLEN (1<<2) +#define ND_ST_MARK1 (1<<3) +#define ND_ST_MARK2 (1<<4) +#define ND_ST_STRICT_REAL_REPEAT (1<<5) +#define ND_ST_RECURSION (1<<6) +#define ND_ST_CALLED (1<<7) +#define ND_ST_FIXED_ADDR (1<<8) +#define ND_ST_NAMED_GROUP (1<<9) +#define ND_ST_IN_REAL_REPEAT (1<<10) /* STK_REPEAT is nested in stack. */ +#define ND_ST_IN_ZERO_REPEAT (1<<11) /* (....){0} */ +#define ND_ST_IN_MULTI_ENTRY (1<<12) +#define ND_ST_NEST_LEVEL (1<<13) +#define ND_ST_BY_NUMBER (1<<14) /* {n,m} */ +#define ND_ST_BY_NAME (1<<15) /* backref by name */ +#define ND_ST_BACKREF (1<<16) +#define ND_ST_CHECKER (1<<17) +#define ND_ST_PROHIBIT_RECURSION (1<<18) +#define ND_ST_SUPER (1<<19) +#define ND_ST_EMPTY_STATUS_CHECK (1<<20) +#define ND_ST_IGNORECASE (1<<21) +#define ND_ST_MULTILINE (1<<22) +#define ND_ST_TEXT_SEGMENT_WORD (1<<23) +#define ND_ST_ABSENT_WITH_SIDE_EFFECTS (1<<24) /* stopper or clear */ +#define ND_ST_FIXED_CLEN_MIN_SURE (1<<25) +#define ND_ST_REFERENCED (1<<26) +#define ND_ST_INPEEK (1<<27) +#define ND_ST_WHOLE_OPTIONS (1<<28) + + +#define ND_STATUS(node) (((Node* )node)->u.base.status) +#define ND_STATUS_ADD(node,f) (ND_STATUS(node) |= (ND_ST_ ## f)) +#define ND_STATUS_REMOVE(node,f) (ND_STATUS(node) &= ~(ND_ST_ ## f)) + +#define ND_IS_BY_NUMBER(node) ((ND_STATUS(node) & ND_ST_BY_NUMBER) != 0) +#define ND_IS_IN_REAL_REPEAT(node) ((ND_STATUS(node) & ND_ST_IN_REAL_REPEAT) != 0) +#define ND_IS_CALLED(node) ((ND_STATUS(node) & ND_ST_CALLED) != 0) +#define ND_IS_IN_MULTI_ENTRY(node) ((ND_STATUS(node) & ND_ST_IN_MULTI_ENTRY) != 0) +#define ND_IS_RECURSION(node) ((ND_STATUS(node) & ND_ST_RECURSION) != 0) +#define ND_IS_IN_ZERO_REPEAT(node) ((ND_STATUS(node) & ND_ST_IN_ZERO_REPEAT) != 0) +#define ND_IS_NAMED_GROUP(node) ((ND_STATUS(node) & ND_ST_NAMED_GROUP) != 0) +#define ND_IS_FIXED_ADDR(node) ((ND_STATUS(node) & ND_ST_FIXED_ADDR) != 0) +#define ND_IS_FIXED_CLEN(node) ((ND_STATUS(node) & ND_ST_FIXED_CLEN) != 0) +#define ND_IS_FIXED_MIN(node) ((ND_STATUS(node) & ND_ST_FIXED_MIN) != 0) +#define ND_IS_FIXED_MAX(node) ((ND_STATUS(node) & ND_ST_FIXED_MAX) != 0) +#define ND_IS_MARK1(node) ((ND_STATUS(node) & ND_ST_MARK1) != 0) +#define ND_IS_MARK2(node) ((ND_STATUS(node) & ND_ST_MARK2) != 0) +#define ND_IS_NEST_LEVEL(node) ((ND_STATUS(node) & ND_ST_NEST_LEVEL) != 0) +#define ND_IS_BY_NAME(node) ((ND_STATUS(node) & ND_ST_BY_NAME) != 0) +#define ND_IS_BACKREF(node) ((ND_STATUS(node) & ND_ST_BACKREF) != 0) +#define ND_IS_CHECKER(node) ((ND_STATUS(node) & ND_ST_CHECKER) != 0) +#define ND_IS_SUPER(node) ((ND_STATUS(node) & ND_ST_SUPER) != 0) +#define ND_IS_PROHIBIT_RECURSION(node) \ + ((ND_STATUS(node) & ND_ST_PROHIBIT_RECURSION) != 0) +#define ND_IS_STRICT_REAL_REPEAT(node) \ + ((ND_STATUS(node) & ND_ST_STRICT_REAL_REPEAT) != 0) +#define ND_IS_EMPTY_STATUS_CHECK(node) \ + ((ND_STATUS(node) & ND_ST_EMPTY_STATUS_CHECK) != 0) +#define ND_IS_IGNORECASE(node) ((ND_STATUS(node) & ND_ST_IGNORECASE) != 0) +#define ND_IS_MULTILINE(node) ((ND_STATUS(node) & ND_ST_MULTILINE) != 0) +#define ND_IS_TEXT_SEGMENT_WORD(node) ((ND_STATUS(node) & ND_ST_TEXT_SEGMENT_WORD) != 0) +#define ND_IS_ABSENT_WITH_SIDE_EFFECTS(node) ((ND_STATUS(node) & ND_ST_ABSENT_WITH_SIDE_EFFECTS) != 0) +#define ND_IS_FIXED_CLEN_MIN_SURE(node) ((ND_STATUS(node) & ND_ST_FIXED_CLEN_MIN_SURE) != 0) +#define ND_IS_REFERENCED(node) ((ND_STATUS(node) & ND_ST_REFERENCED) != 0) +#define ND_IS_INPEEK(node) ((ND_STATUS(node) & ND_ST_INPEEK) != 0) +#define ND_IS_WHOLE_OPTIONS(node) ((ND_STATUS(node) & ND_ST_WHOLE_OPTIONS) != 0) + +#define ND_PARENT(node) ((node)->u.base.parent) +#define ND_BODY(node) ((node)->u.base.body) +#define ND_QUANT_BODY(node) ((node)->body) +#define ND_BAG_BODY(node) ((node)->body) +#define ND_CALL_BODY(node) ((node)->body) +#define ND_ANCHOR_BODY(node) ((node)->body) + +#define PARSEENV_MEMENV_SIZE 8 +#define PARSEENV_MEMENV(senv) \ + (IS_NOT_NULL((senv)->mem_env_dynamic) ? \ + (senv)->mem_env_dynamic : (senv)->mem_env_static) + +#define IS_SYNTAX_OP(syn, opm) (((syn)->op & (opm)) != 0) +#define IS_SYNTAX_OP2(syn, opm) (((syn)->op2 & (opm)) != 0) +#define IS_SYNTAX_BV(syn, bvm) (((syn)->behavior & (bvm)) != 0) + +#define ID_ENTRY(env, id) do {\ + id = (env)->id_num++;\ +} while(0) + + +typedef struct { + Node* mem_node; + Node* empty_repeat_node; +} MemEnv; + +typedef struct { + enum SaveType type; +} SaveItem; + +typedef struct { + OnigOptionType options; + OnigCaseFoldType case_fold_flag; + OnigEncoding enc; + OnigSyntaxType* syntax; + MemStatusType cap_history; + MemStatusType backtrack_mem; /* backtrack/recursion */ + MemStatusType backrefed_mem; + UChar* pattern; + UChar* pattern_end; + UChar* error; + UChar* error_end; + regex_t* reg; /* for reg->names only */ + int num_call; + int num_mem; + int num_named; + int mem_alloc; + MemEnv mem_env_static[PARSEENV_MEMENV_SIZE]; + MemEnv* mem_env_dynamic; + int backref_num; + int keep_num; + int id_num; + int save_alloc_num; + SaveItem* saves; +#ifdef USE_CALL + UnsetAddrList* unset_addr_list; +#endif + unsigned int parse_depth; +#ifdef ONIG_DEBUG_PARSE + unsigned int max_parse_depth; +#endif + unsigned int flags; +} ParseEnv; + +#define PE_FLAG_HAS_CALL_ZERO (1<<0) +#define PE_FLAG_HAS_WHOLE_OPTIONS (1<<1) +#define PE_FLAG_HAS_ABSENT_STOPPER (1<<2) + + +extern int onig_renumber_name_table P_((regex_t* reg, GroupNumMap* map)); + +extern int onig_strncmp P_((const UChar* s1, const UChar* s2, int n)); +extern void onig_strcpy P_((UChar* dest, const UChar* src, const UChar* end)); +extern void onig_scan_env_set_error_string P_((ParseEnv* env, int ecode, UChar* arg, UChar* arg_end)); +extern int onig_reduce_nested_quantifier P_((Node* pnode)); +extern int onig_node_copy(Node** rcopy, Node* from); +extern int onig_node_str_cat P_((Node* node, const UChar* s, const UChar* end)); +extern int onig_node_str_set P_((Node* node, const UChar* s, const UChar* end, int need_free)); +extern void onig_node_str_clear P_((Node* node, int need_free)); +extern void onig_node_free P_((Node* node)); +extern int onig_node_reset_empty P_((Node* node)); +extern int onig_node_reset_fail P_((Node* node)); +extern Node* onig_node_new_bag P_((enum BagType type)); +extern Node* onig_node_new_str P_((const UChar* s, const UChar* end)); +extern Node* onig_node_new_list P_((Node* left, Node* right)); +extern Node* onig_node_new_alt P_((Node* left, Node* right)); +extern int onig_names_free P_((regex_t* reg)); +extern int onig_parse_tree P_((Node** root, const UChar* pattern, const UChar* end, regex_t* reg, ParseEnv* env)); +extern int onig_free_shared_cclass_table P_((void)); +extern int onig_is_code_in_cc P_((OnigEncoding enc, OnigCodePoint code, CClassNode* cc)); +extern int onig_new_cclass_with_code_list(Node** rnode, OnigEncoding enc, int n, OnigCodePoint codes[]); +extern OnigLen onig_get_tiny_min_len(Node* node, unsigned int inhibit_node_types, int* invalid_node); + +#ifdef USE_CALLOUT +extern int onig_global_callout_names_free(void); +#endif + +#ifdef ONIG_DEBUG +extern int onig_print_names(FILE*, regex_t*); +#endif + +#endif /* REGPARSE_H */ diff --git a/thirdparty/oniguruma/st.c b/thirdparty/oniguruma/st.c new file mode 100644 index 000000000..0570dcb31 --- /dev/null +++ b/thirdparty/oniguruma/st.c @@ -0,0 +1,562 @@ +/* This is a public domain general purpose hash table package written by Peter Moore @ UCB. */ + +/* static char sccsid[] = "@(#) st.c 5.1 89/12/14 Crucible"; */ + +#ifndef NEED_TO_INCLUDE_STDIO +#define NEED_TO_INCLUDE_STDIO +#endif + +#include "regint.h" +#include "st.h" + + +typedef struct st_table_entry st_table_entry; + +struct st_table_entry { + unsigned int hash; + st_data_t key; + st_data_t record; + st_table_entry *next; +}; + +#define ST_DEFAULT_MAX_DENSITY 5 +#define ST_DEFAULT_INIT_TABLE_SIZE 11 + + /* + * DEFAULT_MAX_DENSITY is the default for the largest we allow the + * average number of items per bin before increasing the number of + * bins + * + * DEFAULT_INIT_TABLE_SIZE is the default for the number of bins + * allocated initially + * + */ + +static int numcmp(st_data_t, st_data_t); +static int numhash(st_data_t); +static struct st_hash_type type_numhash = { + numcmp, + numhash, +}; + +static int str_cmp(st_data_t, st_data_t); +static int str_hash(st_data_t); +static struct st_hash_type type_strhash = { + str_cmp, + str_hash, +}; + +static void rehash(st_table *); + +#define alloc(type) (type*)xmalloc((unsigned)sizeof(type)) +#define Calloc(n,s) (char*)xcalloc((n),(s)) + +#define EQUAL(table,x,y) ((x)==(y) || (*table->type->compare)((x),(y)) == 0) + +#define do_hash(key,table) (unsigned int)(*(table)->type->hash)((key)) +#define do_hash_bin(key,table) (do_hash(key, table)%(table)->num_bins) + +/* + * MINSIZE is the minimum size of a dictionary. + */ + +#define MINSIZE 8 + +/* +Table of prime numbers 2^n+a, 2<=n<=30. +*/ +static const long primes[] = { + 8 + 3, + 16 + 3, + 32 + 5, + 64 + 3, + 128 + 3, + 256 + 27, + 512 + 9, + 1024 + 9, + 2048 + 5, + 4096 + 3, + 8192 + 27, + 16384 + 43, + 32768 + 3, + 65536 + 45, + 131072 + 29, + 262144 + 3, + 524288 + 21, + 1048576 + 7, + 2097152 + 17, + 4194304 + 15, + 8388608 + 9, + 16777216 + 43, + 33554432 + 35, + 67108864 + 15, + 134217728 + 29, + 268435456 + 3, + 536870912 + 11, + 1073741824 + 85, + 0 +}; + +static int new_size(int size) +{ + int i; + +#if 0 + for (i=3; i<31; i++) { + if ((1< size) return 1< size) return primes[i]; + } + /* Ran out of polynomials */ + return -1; /* should raise exception */ +#endif +} + +#ifdef HASH_LOG +static int collision = 0; +static int init_st = 0; + +static void +stat_col(void) +{ + FILE *f = fopen("/tmp/col", "w"); + if (f == 0) return ; + + (void) fprintf(f, "collision: %d\n", collision); + (void) fclose(f); +} +#endif + +extern st_table* +st_init_table_with_size(struct st_hash_type* type, int size) +{ + st_table *tbl; + +#ifdef HASH_LOG + if (init_st == 0) { + init_st = 1; + atexit(stat_col); + } +#endif + + size = new_size(size); /* round up to prime number */ + if (size <= 0) return 0; + + tbl = alloc(st_table); + if (tbl == 0) return 0; + + tbl->type = type; + tbl->num_entries = 0; + tbl->num_bins = size; + tbl->bins = (st_table_entry **)Calloc(size, sizeof(st_table_entry*)); + if (tbl->bins == 0) { + free(tbl); + return 0; + } + + return tbl; +} + +extern st_table* +st_init_table(struct st_hash_type* type) +{ + return st_init_table_with_size(type, 0); +} + +extern st_table* +st_init_numtable(void) +{ + return st_init_table(&type_numhash); +} + +extern st_table* +st_init_numtable_with_size(int size) +{ + return st_init_table_with_size(&type_numhash, size); +} + +extern st_table* +st_init_strtable(void) +{ + return st_init_table(&type_strhash); +} + +extern st_table* +st_init_strtable_with_size(int size) +{ + return st_init_table_with_size(&type_strhash, size); +} + +extern void +st_free_table(st_table* table) +{ + register st_table_entry *ptr, *next; + int i; + + for(i = 0; i < table->num_bins; i++) { + ptr = table->bins[i]; + while (ptr != 0) { + next = ptr->next; + free(ptr); + ptr = next; + } + } + free(table->bins); + free(table); +} + +#define PTR_NOT_EQUAL(table, ptr, hash_val, key) \ +((ptr) != 0 && (ptr->hash != (hash_val) || !EQUAL((table), (key), (ptr)->key))) + +#ifdef HASH_LOG +#define COLLISION collision++ +#else +#define COLLISION +#endif + +#define FIND_ENTRY(table, ptr, hash_val, bin_pos) do {\ + bin_pos = hash_val%(table)->num_bins;\ + ptr = (table)->bins[bin_pos];\ + if (PTR_NOT_EQUAL(table, ptr, hash_val, key)) {\ + COLLISION;\ + while (PTR_NOT_EQUAL(table, ptr->next, hash_val, key)) {\ + ptr = ptr->next;\ + }\ + ptr = ptr->next;\ + }\ +} while (0) + +extern int +st_lookup(st_table* table, register st_data_t key, st_data_t* value) +{ + unsigned int hash_val, bin_pos; + register st_table_entry *ptr; + + hash_val = do_hash(key, table); + FIND_ENTRY(table, ptr, hash_val, bin_pos); + + if (ptr == 0) { + return 0; + } + else { + if (value != 0) *value = ptr->record; + return 1; + } +} + +#define ADD_DIRECT(table, key, value, hash_val, bin_pos, ret) \ +do {\ + st_table_entry *entry;\ + if (table->num_entries/(table->num_bins) > ST_DEFAULT_MAX_DENSITY) {\ + rehash(table);\ + bin_pos = hash_val % table->num_bins;\ + }\ + entry = alloc(st_table_entry);\ + if (IS_NULL(entry)) return ret;\ + entry->hash = hash_val;\ + entry->key = key;\ + entry->record = value;\ + entry->next = table->bins[bin_pos];\ + table->bins[bin_pos] = entry;\ + table->num_entries++;\ +} while (0) + +extern int +st_insert(register st_table* table, register st_data_t key, st_data_t value) +{ + unsigned int hash_val, bin_pos; + register st_table_entry *ptr; + + hash_val = do_hash(key, table); + FIND_ENTRY(table, ptr, hash_val, bin_pos); + + if (ptr == 0) { + ADD_DIRECT(table, key, value, hash_val, bin_pos, ONIGERR_MEMORY); + return 0; + } + else { + ptr->record = value; + return 1; + } +} + +extern void +st_add_direct(st_table* table, st_data_t key, st_data_t value) +{ + unsigned int hash_val, bin_pos; + + hash_val = do_hash(key, table); + bin_pos = hash_val % table->num_bins; + ADD_DIRECT(table, key, value, hash_val, bin_pos,); +} + +static void +rehash(register st_table* table) +{ + register st_table_entry *ptr, *next, **new_bins; + int i, new_num_bins, old_num_bins; + unsigned int hash_val; + + old_num_bins = table->num_bins; + new_num_bins = new_size(old_num_bins + 1); + if (new_num_bins <= 0) return ; + + new_bins = (st_table_entry**)Calloc(new_num_bins, sizeof(st_table_entry*)); + if (new_bins == 0) { + return ; + } + + for(i = 0; i < old_num_bins; i++) { + ptr = table->bins[i]; + while (ptr != 0) { + next = ptr->next; + hash_val = ptr->hash % new_num_bins; + ptr->next = new_bins[hash_val]; + new_bins[hash_val] = ptr; + ptr = next; + } + } + free(table->bins); + table->num_bins = new_num_bins; + table->bins = new_bins; +} + +extern st_table* +st_copy(st_table* old_table) +{ + st_table *new_table; + st_table_entry *ptr, *entry; + int i, num_bins = old_table->num_bins; + + new_table = alloc(st_table); + if (new_table == 0) { + return 0; + } + + *new_table = *old_table; + new_table->bins = (st_table_entry**) + Calloc((unsigned)num_bins, sizeof(st_table_entry*)); + + if (new_table->bins == 0) { + free(new_table); + return 0; + } + + for(i = 0; i < num_bins; i++) { + new_table->bins[i] = 0; + ptr = old_table->bins[i]; + while (ptr != 0) { + entry = alloc(st_table_entry); + if (entry == 0) { + free(new_table->bins); + free(new_table); + return 0; + } + *entry = *ptr; + entry->next = new_table->bins[i]; + new_table->bins[i] = entry; + ptr = ptr->next; + } + } + return new_table; +} + +extern int +st_delete(register st_table* table, register st_data_t* key, st_data_t* value) +{ + unsigned int hash_val; + st_table_entry *tmp; + register st_table_entry *ptr; + + hash_val = do_hash_bin(*key, table); + ptr = table->bins[hash_val]; + + if (ptr == 0) { + if (value != 0) *value = 0; + return 0; + } + + if (EQUAL(table, *key, ptr->key)) { + table->bins[hash_val] = ptr->next; + table->num_entries--; + if (value != 0) *value = ptr->record; + *key = ptr->key; + free(ptr); + return 1; + } + + for(; ptr->next != 0; ptr = ptr->next) { + if (EQUAL(table, ptr->next->key, *key)) { + tmp = ptr->next; + ptr->next = ptr->next->next; + table->num_entries--; + if (value != 0) *value = tmp->record; + *key = tmp->key; + free(tmp); + return 1; + } + } + + return 0; +} + +extern int +st_delete_safe(register st_table* table, register st_data_t* key, st_data_t* value, st_data_t never) +{ + unsigned int hash_val; + register st_table_entry *ptr; + + hash_val = do_hash_bin(*key, table); + ptr = table->bins[hash_val]; + + if (ptr == 0) { + if (value != 0) *value = 0; + return 0; + } + + for(; ptr != 0; ptr = ptr->next) { + if ((ptr->key != never) && EQUAL(table, ptr->key, *key)) { + table->num_entries--; + *key = ptr->key; + if (value != 0) *value = ptr->record; + ptr->key = ptr->record = never; + return 1; + } + } + + return 0; +} + +static int +#if defined(__GNUC__) +delete_never(st_data_t key __attribute__ ((unused)), st_data_t value, + st_data_t never) +#else +delete_never(st_data_t key, st_data_t value, st_data_t never) +#endif +{ + if (value == never) return ST_DELETE; + return ST_CONTINUE; +} + +extern void +st_cleanup_safe(st_table* table, st_data_t never) +{ + int num_entries = table->num_entries; + + st_foreach(table, delete_never, never); + table->num_entries = num_entries; +} + +extern int +st_foreach(st_table* table, int (*func)(st_data_t, st_data_t, st_data_t), st_data_t arg) +{ + st_table_entry *ptr, *last, *tmp; + enum st_retval retval; + int i; + + for(i = 0; i < table->num_bins; i++) { + last = 0; + for(ptr = table->bins[i]; ptr != 0;) { + retval = (*func)(ptr->key, ptr->record, arg); + switch (retval) { + case ST_CHECK: /* check if hash is modified during iteration */ + tmp = 0; + if (i < table->num_bins) { + for (tmp = table->bins[i]; tmp; tmp=tmp->next) { + if (tmp == ptr) break; + } + } + if (!tmp) { + /* call func with error notice */ + return 1; + } + /* fall through */ + case ST_CONTINUE: + last = ptr; + ptr = ptr->next; + break; + case ST_STOP: + return 0; + case ST_DELETE: + tmp = ptr; + if (last == 0) { + table->bins[i] = ptr->next; + } + else { + last->next = ptr->next; + } + ptr = ptr->next; + free(tmp); + table->num_entries--; + } + } + } + return 0; +} + +static int +str_cmp(st_data_t a1, st_data_t a2) +{ + const char* s1 = (const char* )a1; + const char* s2 = (const char* )a2; + return strcmp(s1, s2); +} + +static int +str_hash(st_data_t astring) +{ + const char* string = (const char* )astring; + register int c; + +#ifdef HASH_ELFHASH + register unsigned int h = 0, g; + + while ((c = *string++) != '\0') { + h = ( h << 4 ) + c; + if ( g = h & 0xF0000000 ) + h ^= g >> 24; + h &= ~g; + } + return h; +#elif HASH_PERL + register int val = 0; + + while ((c = *string++) != '\0') { + val += c; + val += (val << 10); + val ^= (val >> 6); + } + val += (val << 3); + val ^= (val >> 11); + + return val + (val << 15); +#else + register int val = 0; + + while ((c = *string++) != '\0') { + val = val*997 + c; + } + + return val + (val>>5); +#endif +} + +static int +numcmp(st_data_t x, st_data_t y) +{ + return x != y; +} + +static int +numhash(st_data_t n) +{ + return n; +} diff --git a/thirdparty/oniguruma/st.h b/thirdparty/oniguruma/st.h new file mode 100644 index 000000000..e1936e262 --- /dev/null +++ b/thirdparty/oniguruma/st.h @@ -0,0 +1,60 @@ +/* This is a public domain general purpose hash table package written by Peter Moore @ UCB. */ + +/* @(#) st.h 5.1 89/12/14 */ + +#ifndef ST_INCLUDED +#define ST_INCLUDED + +#if SIZEOF_VOIDP == SIZEOF_LONG +typedef unsigned long st_data_t; +#elif SIZEOF_VOIDP == SIZEOF_LONG_LONG +typedef unsigned long long st_data_t; +#endif + +#define ST_DATA_T_DEFINED + +typedef struct st_table st_table; + +struct st_hash_type { + int (*compare)(st_data_t, st_data_t); + int (*hash)(st_data_t); +}; + +struct st_table { + struct st_hash_type *type; + int num_bins; + int num_entries; + struct st_table_entry **bins; +}; + +#define st_is_member(table,key) st_lookup(table,key,(st_data_t *)0) + +enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK}; + +#ifndef _ +# define _(args) args +#endif + +st_table *st_init_table _((struct st_hash_type *)); +st_table *st_init_table_with_size _((struct st_hash_type *, int)); +st_table *st_init_numtable _((void)); +st_table *st_init_numtable_with_size _((int)); +st_table *st_init_strtable _((void)); +st_table *st_init_strtable_with_size _((int)); +int st_delete _((st_table *, st_data_t *, st_data_t *)); +int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t)); +int st_insert _((st_table *, st_data_t, st_data_t)); +int st_lookup _((st_table *, st_data_t, st_data_t *)); +int st_foreach _((st_table *, int (*)(st_data_t, st_data_t, st_data_t), st_data_t)); +void st_add_direct _((st_table *, st_data_t, st_data_t)); +void st_free_table _((st_table *)); +void st_cleanup_safe _((st_table *, st_data_t)); +st_table *st_copy _((st_table *)); + +#define ST_NUMCMP ((int (*)()) 0) +#define ST_NUMHASH ((int (*)()) -2) + +#define st_numcmp ST_NUMCMP +#define st_numhash ST_NUMHASH + +#endif /* ST_INCLUDED */ diff --git a/thirdparty/oniguruma/unicode.c b/thirdparty/oniguruma/unicode.c new file mode 100644 index 000000000..791c33d39 --- /dev/null +++ b/thirdparty/oniguruma/unicode.c @@ -0,0 +1,1239 @@ +/********************************************************************** + unicode.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2020 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regint.h" + +struct PoolPropertyNameCtype { + short int name; + short int ctype; +}; + +#define ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code,ctype) \ + ((EncUNICODE_ISO_8859_1_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) + +static const unsigned short EncUNICODE_ISO_8859_1_CtypeTable[256] = { + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x428c, 0x4289, 0x4288, 0x4288, 0x4288, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, + 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, + 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, + 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, + 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, + 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, + 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0288, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0284, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x30e2, 0x01a0, 0x01a0, 0x00a8, 0x01a0, 0x01a0, + 0x01a0, 0x01a0, 0x10a0, 0x10a0, 0x01a0, 0x30e2, 0x01a0, 0x01a0, + 0x01a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0, + 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x01a0, + 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 +}; + +#include "st.h" + +#include "unicode_fold_data.c" + +extern int +onigenc_unicode_mbc_case_fold(OnigEncoding enc, OnigCaseFoldType flag, + const UChar** pp, const UChar* end, UChar* fold) +{ + const struct ByUnfoldKey* buk; + + OnigCodePoint code; + int i, len, rlen; + const UChar *p = *pp; + + code = ONIGENC_MBC_TO_CODE(enc, p, end); + len = enclen(enc, p); + *pp += len; + +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { + if (code == 0x0130) { + return ONIGENC_CODE_TO_MBC(enc, 0x0069, fold); + } +#if 0 + if (code == 0x0049) { + return ONIGENC_CODE_TO_MBC(enc, 0x0131, fold); + } +#endif + } +#endif + + if (CASE_FOLD_IS_NOT_ASCII_ONLY(flag) || ONIGENC_IS_ASCII_CODE(code)) { + buk = onigenc_unicode_unfold_key(code); + if (buk != 0) { + if (buk->fold_len == 1) { + if (CASE_FOLD_IS_NOT_ASCII_ONLY(flag) || + ONIGENC_IS_ASCII_CODE(*FOLDS1_FOLD(buk->index))) + return ONIGENC_CODE_TO_MBC(enc, *FOLDS1_FOLD(buk->index), fold); + } + else { + OnigCodePoint* addr; + + FOLDS_FOLD_ADDR_BUK(buk, addr); + rlen = 0; + for (i = 0; i < buk->fold_len; i++) { + OnigCodePoint c = addr[i]; + len = ONIGENC_CODE_TO_MBC(enc, c, fold); + fold += len; + rlen += len; + } + return rlen; + } + } + } + + for (i = 0; i < len; i++) { + *fold++ = *p++; + } + return len; +} + +static int +apply_case_fold1(OnigCaseFoldType flag, int from, int to, + OnigApplyAllCaseFoldFunc f, void* arg) +{ + int i, j, k, n, r; + + for (i = from; i < to; ) { + OnigCodePoint fold = *FOLDS1_FOLD(i); + if (CASE_FOLD_IS_ASCII_ONLY(flag) && ! ONIGENC_IS_ASCII_CODE(fold)) break; + + n = FOLDS1_UNFOLDS_NUM(i); + for (j = 0; j < n; j++) { + OnigCodePoint unfold = FOLDS1_UNFOLDS(i)[j]; + + if (CASE_FOLD_IS_ASCII_ONLY(flag) && ! ONIGENC_IS_ASCII_CODE(unfold)) + continue; + + r = (*f)(fold, &unfold, 1, arg); + if (r != 0) return r; + r = (*f)(unfold, &fold, 1, arg); + if (r != 0) return r; + + for (k = 0; k < j; k++) { + OnigCodePoint unfold2 = FOLDS1_UNFOLDS(i)[k]; + if (CASE_FOLD_IS_ASCII_ONLY(flag) && + ! ONIGENC_IS_ASCII_CODE(unfold2)) continue; + + r = (*f)(unfold, &unfold2, 1, arg); + if (r != 0) return r; + r = (*f)(unfold2, &unfold, 1, arg); + if (r != 0) return r; + } + } + + i = FOLDS1_NEXT_INDEX(i); + } + + return 0; +} + +static int +apply_case_fold2(int from, int to, OnigApplyAllCaseFoldFunc f, void* arg) +{ + int i, j, k, n, r; + + for (i = from; i < to; ) { + OnigCodePoint* fold = FOLDS2_FOLD(i); + n = FOLDS2_UNFOLDS_NUM(i); + for (j = 0; j < n; j++) { + OnigCodePoint unfold = FOLDS2_UNFOLDS(i)[j]; + + r = (*f)(unfold, fold, 2, arg); + if (r != 0) return r; + + for (k = 0; k < j; k++) { + OnigCodePoint unfold2 = FOLDS2_UNFOLDS(i)[k]; + r = (*f)(unfold, &unfold2, 1, arg); + if (r != 0) return r; + r = (*f)(unfold2, &unfold, 1, arg); + if (r != 0) return r; + } + } + + i = FOLDS2_NEXT_INDEX(i); + } + + return 0; +} + +static int +apply_case_fold3(int from, int to, OnigApplyAllCaseFoldFunc f, void* arg) +{ + int i, j, k, n, r; + + for (i = from; i < to; ) { + OnigCodePoint* fold = FOLDS3_FOLD(i); + n = FOLDS3_UNFOLDS_NUM(i); + for (j = 0; j < n; j++) { + OnigCodePoint unfold = FOLDS3_UNFOLDS(i)[j]; + + r = (*f)(unfold, fold, 3, arg); + if (r != 0) return r; + + for (k = 0; k < j; k++) { + OnigCodePoint unfold2 = FOLDS3_UNFOLDS(i)[k]; + r = (*f)(unfold, &unfold2, 1, arg); + if (r != 0) return r; + r = (*f)(unfold2, &unfold, 1, arg); + if (r != 0) return r; + } + } + + i = FOLDS3_NEXT_INDEX(i); + } + + return 0; +} + +extern int +onigenc_unicode_apply_all_case_fold(OnigCaseFoldType flag, + OnigApplyAllCaseFoldFunc f, void* arg) +{ + int r; + + r = apply_case_fold1(flag, 0, FOLDS1_NORMAL_END_INDEX, f, arg); + if (r != 0) return r; + +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { + code = 0x0131; + r = (*f)(0x0049, &code, 1, arg); + if (r != 0) return r; + code = 0x0049; + r = (*f)(0x0131, &code, 1, arg); + if (r != 0) return r; + + code = 0x0130; + r = (*f)(0x0069, &code, 1, arg); + if (r != 0) return r; + code = 0x0069; + r = (*f)(0x0130, &code, 1, arg); + if (r != 0) return r; + } + else { +#endif + r = apply_case_fold1(flag, FOLDS1_NORMAL_END_INDEX, FOLDS1_END_INDEX, f, arg); + if (r != 0) return r; +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + } +#endif + + if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) == 0) + return 0; + + r = apply_case_fold2(0, FOLDS2_NORMAL_END_INDEX, f, arg); + if (r != 0) return r; + +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) == 0) { +#endif + r = apply_case_fold2(FOLDS2_NORMAL_END_INDEX, FOLDS2_END_INDEX, f, arg); + if (r != 0) return r; +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + } +#endif + + r = apply_case_fold3(0, FOLDS3_NORMAL_END_INDEX, f, arg); + if (r != 0) return r; + + return 0; +} + +extern int +onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc, + OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, + OnigCaseFoldCodeItem items[]) +{ + int n, m, i, j, k, len, lens[3]; + int index; + int fn, ncs[3]; + OnigCodePoint cs[3][4]; + OnigCodePoint code, codes[3], orig_codes[3]; + const struct ByUnfoldKey* buk1; + + n = 0; + + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (CASE_FOLD_IS_ASCII_ONLY(flag)) { + if (! ONIGENC_IS_ASCII_CODE(code)) return n; + } + len = enclen(enc, p); + +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { + if (code == 0x0049) { + items[0].byte_len = len; + items[0].code_len = 1; + items[0].code[0] = 0x0131; + return 1; + } + else if (code == 0x0130) { + items[0].byte_len = len; + items[0].code_len = 1; + items[0].code[0] = 0x0069; + return 1; + } + else if (code == 0x0131) { + items[0].byte_len = len; + items[0].code_len = 1; + items[0].code[0] = 0x0049; + return 1; + } + else if (code == 0x0069) { + items[0].byte_len = len; + items[0].code_len = 1; + items[0].code[0] = 0x0130; + return 1; + } + } +#endif + + orig_codes[0] = code; + lens[0] = len; + p += len; + + buk1 = onigenc_unicode_unfold_key(orig_codes[0]); + if (buk1 != 0 && buk1->fold_len == 1) { + codes[0] = *FOLDS1_FOLD(buk1->index); + } + else + codes[0] = orig_codes[0]; + + if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) == 0) + goto fold1; + + if (p < end) { + const struct ByUnfoldKey* buk; + + code = ONIGENC_MBC_TO_CODE(enc, p, end); + orig_codes[1] = code; + len = enclen(enc, p); + lens[1] = lens[0] + len; + buk = onigenc_unicode_unfold_key(orig_codes[1]); + if (buk != 0 && buk->fold_len == 1) { + codes[1] = *FOLDS1_FOLD(buk->index); + } + else + codes[1] = orig_codes[1]; + + p += len; + if (p < end) { + code = ONIGENC_MBC_TO_CODE(enc, p, end); + orig_codes[2] = code; + len = enclen(enc, p); + lens[2] = lens[1] + len; + buk = onigenc_unicode_unfold_key(orig_codes[2]); + if (buk != 0 && buk->fold_len == 1) { + codes[2] = *FOLDS1_FOLD(buk->index); + } + else + codes[2] = orig_codes[2]; + + index = onigenc_unicode_fold3_key(codes); + if (index >= 0) { + m = FOLDS3_UNFOLDS_NUM(index); + for (i = 0; i < m; i++) { + items[n].byte_len = lens[2]; + items[n].code_len = 1; + items[n].code[0] = FOLDS3_UNFOLDS(index)[i]; + n++; + } + + for (fn = 0; fn < 3; fn++) { + int sindex; + cs[fn][0] = FOLDS3_FOLD(index)[fn]; + ncs[fn] = 1; + sindex = onigenc_unicode_fold1_key(&cs[fn][0]); + if (sindex >= 0) { + int m = FOLDS1_UNFOLDS_NUM(sindex); + for (i = 0; i < m; i++) { + cs[fn][i+1] = FOLDS1_UNFOLDS(sindex)[i]; + } + ncs[fn] += m; + } + } + + for (i = 0; i < ncs[0]; i++) { + for (j = 0; j < ncs[1]; j++) { + for (k = 0; k < ncs[2]; k++) { + if (cs[0][i] == orig_codes[0] && cs[1][j] == orig_codes[1] && + cs[2][k] == orig_codes[2]) + continue; + + items[n].byte_len = lens[2]; + items[n].code_len = 3; + items[n].code[0] = cs[0][i]; + items[n].code[1] = cs[1][j]; + items[n].code[2] = cs[2][k]; + n++; + } + } + } + + return n; + } + } + + index = onigenc_unicode_fold2_key(codes); + if (index >= 0) { + m = FOLDS2_UNFOLDS_NUM(index); + for (i = 0; i < m; i++) { + items[n].byte_len = lens[1]; + items[n].code_len = 1; + items[n].code[0] = FOLDS2_UNFOLDS(index)[i]; + n++; + } + + for (fn = 0; fn < 2; fn++) { + int sindex; + cs[fn][0] = FOLDS2_FOLD(index)[fn]; + ncs[fn] = 1; + sindex = onigenc_unicode_fold1_key(&cs[fn][0]); + if (sindex >= 0) { + int m = FOLDS1_UNFOLDS_NUM(sindex); + for (i = 0; i < m; i++) { + cs[fn][i+1] = FOLDS1_UNFOLDS(sindex)[i]; + } + ncs[fn] += m; + } + } + + for (i = 0; i < ncs[0]; i++) { + for (j = 0; j < ncs[1]; j++) { + if (cs[0][i] == orig_codes[0] && cs[1][j] == orig_codes[1]) + continue; + items[n].byte_len = lens[1]; + items[n].code_len = 2; + items[n].code[0] = cs[0][i]; + items[n].code[1] = cs[1][j]; + n++; + } + } + + return n; + } + } + + fold1: + if (buk1 != 0) { + if (buk1->fold_len == 1) { + int un; + + if (CASE_FOLD_IS_NOT_ASCII_ONLY(flag) || + ONIGENC_IS_ASCII_CODE(*FOLDS1_FOLD(buk1->index))) { + items[0].byte_len = lens[0]; + items[0].code_len = 1; + items[0].code[0] = *FOLDS1_FOLD(buk1->index); + n++; + } + + un = FOLDS1_UNFOLDS_NUM(buk1->index); + for (i = 0; i < un; i++) { + OnigCodePoint unfold = FOLDS1_UNFOLDS(buk1->index)[i]; + if (unfold != orig_codes[0]) { + if (CASE_FOLD_IS_NOT_ASCII_ONLY(flag) || + ONIGENC_IS_ASCII_CODE(unfold)) { + items[n].byte_len = lens[0]; + items[n].code_len = 1; + items[n].code[0] = unfold; + n++; + } + } + } + } + else if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { + if (buk1->fold_len == 2) { + m = FOLDS2_UNFOLDS_NUM(buk1->index); + for (i = 0; i < m; i++) { + OnigCodePoint unfold = FOLDS2_UNFOLDS(buk1->index)[i]; + if (unfold == orig_codes[0]) continue; + + items[n].byte_len = lens[0]; + items[n].code_len = 1; + items[n].code[0] = unfold; + n++; + } + + for (fn = 0; fn < 2; fn++) { + int index; + cs[fn][0] = FOLDS2_FOLD(buk1->index)[fn]; + ncs[fn] = 1; + index = onigenc_unicode_fold1_key(&cs[fn][0]); + if (index >= 0) { + int m = FOLDS1_UNFOLDS_NUM(index); + for (i = 0; i < m; i++) { + cs[fn][i+1] = FOLDS1_UNFOLDS(index)[i]; + } + ncs[fn] += m; + } + } + + for (i = 0; i < ncs[0]; i++) { + for (j = 0; j < ncs[1]; j++) { + items[n].byte_len = lens[0]; + items[n].code_len = 2; + items[n].code[0] = cs[0][i]; + items[n].code[1] = cs[1][j]; + n++; + } + } + } + else { /* fold_len == 3 */ + m = FOLDS3_UNFOLDS_NUM(buk1->index); + for (i = 0; i < m; i++) { + OnigCodePoint unfold = FOLDS3_UNFOLDS(buk1->index)[i]; + if (unfold == orig_codes[0]) continue; + + items[n].byte_len = lens[0]; + items[n].code_len = 1; + items[n].code[0] = unfold; + n++; + } + + for (fn = 0; fn < 3; fn++) { + int index; + cs[fn][0] = FOLDS3_FOLD(buk1->index)[fn]; + ncs[fn] = 1; + index = onigenc_unicode_fold1_key(&cs[fn][0]); + if (index >= 0) { + int m = FOLDS1_UNFOLDS_NUM(index); + for (i = 0; i < m; i++) { + cs[fn][i+1] = FOLDS1_UNFOLDS(index)[i]; + } + ncs[fn] += m; + } + } + + for (i = 0; i < ncs[0]; i++) { + for (j = 0; j < ncs[1]; j++) { + for (k = 0; k < ncs[2]; k++) { + items[n].byte_len = lens[0]; + items[n].code_len = 3; + items[n].code[0] = cs[0][i]; + items[n].code[1] = cs[1][j]; + items[n].code[2] = cs[2][k]; + n++; + } + } + } + } + } + } + else { + int index = onigenc_unicode_fold1_key(orig_codes); + if (index >= 0) { + int m = FOLDS1_UNFOLDS_NUM(index); + for (i = 0; i < m; i++) { + code = FOLDS1_UNFOLDS(index)[i]; + if (CASE_FOLD_IS_NOT_ASCII_ONLY(flag)||ONIGENC_IS_ASCII_CODE(code)) { + items[n].byte_len = lens[0]; + items[n].code_len = 1; + items[n].code[0] = code; + n++; + } + } + } + } + + return n; +} + +#ifdef USE_UNICODE_PROPERTIES +#include "unicode_property_data.c" +#else +#include "unicode_property_data_posix.c" +#endif + + +#ifdef USE_UNICODE_WORD_BREAK + +enum WB_TYPE { + WB_Any = 0, + WB_ALetter, + WB_CR, + WB_Double_Quote, + WB_Extend, + WB_ExtendNumLet, + WB_Format, + WB_Hebrew_Letter, + WB_Katakana, + WB_LF, + WB_MidLetter, + WB_MidNum, + WB_MidNumLet, + WB_Newline, + WB_Numeric, + WB_Regional_Indicator, + WB_Single_Quote, + WB_WSegSpace, + WB_ZWJ, +}; + +typedef struct { + OnigCodePoint start; + OnigCodePoint end; + enum WB_TYPE type; +} WB_RANGE_TYPE; + +#include "unicode_wb_data.c" + +static enum WB_TYPE +wb_get_type(OnigCodePoint code) +{ + OnigCodePoint low, high, x; + enum WB_TYPE type; + + for (low = 0, high = (OnigCodePoint )WB_RANGE_NUM; low < high; ) { + x = (low + high) >> 1; + if (code > WB_RANGES[x].end) + low = x + 1; + else + high = x; + } + + type = (low < (OnigCodePoint )WB_RANGE_NUM && + code >= WB_RANGES[low].start) ? + WB_RANGES[low].type : WB_Any; + + return type; +} + +#define IS_WB_IGNORE_TAIL(t) ((t) == WB_Extend || (t) == WB_Format || (t) == WB_ZWJ) +#define IS_WB_AHLetter(t) ((t) == WB_ALetter || (t) == WB_Hebrew_Letter) +#define IS_WB_MidNumLetQ(t) ((t) == WB_MidNumLet || (t) == WB_Single_Quote) + +static int +wb_get_next_main_code(OnigEncoding enc, UChar* p, const UChar* end, + OnigCodePoint* rcode, enum WB_TYPE* rtype) +{ + OnigCodePoint code; + enum WB_TYPE type; + + while (TRUE) { + p += enclen(enc, p); + if (p >= end) break; + + code = ONIGENC_MBC_TO_CODE(enc, p, end); + type = wb_get_type(code); + if (! IS_WB_IGNORE_TAIL(type)) { + *rcode = code; + *rtype = type; + return 1; + } + } + + return 0; +} + +extern int +onigenc_wb_is_break_position(OnigEncoding enc, UChar* p, UChar* prev, + const UChar* start, const UChar* end) +{ + int r; + UChar* pp; + OnigCodePoint cfrom; + OnigCodePoint cfrom2; + OnigCodePoint cto; + OnigCodePoint cto2; + enum WB_TYPE from; + enum WB_TYPE from2; + enum WB_TYPE to; + enum WB_TYPE to2; + + /* WB1: sot / Any */ + if (p == start) return TRUE; + /* WB2: Any / eot */ + if (p == end) return TRUE; + + if (IS_NULL(prev)) { + prev = onigenc_get_prev_char_head(enc, start, p); + if (IS_NULL(prev)) return TRUE; + } + + cfrom = ONIGENC_MBC_TO_CODE(enc, prev, end); + cto = ONIGENC_MBC_TO_CODE(enc, p, end); + + from = wb_get_type(cfrom); + to = wb_get_type(cto); + + /* short cut */ + if (from == 0 && to == 0) goto WB999; + + /* WB3: CR + LF */ + if (from == WB_CR && to == WB_LF) return FALSE; + + /* WB3a: (Newline|CR|LF) / */ + if (from == WB_Newline || from == WB_CR || from == WB_LF) return TRUE; + /* WB3b: / (Newline|CR|LF) */ + if (to == WB_Newline || to == WB_CR || to == WB_LF) return TRUE; + + /* WB3c: ZWJ + {Extended_Pictographic} */ + if (from == WB_ZWJ) { + if (onigenc_unicode_is_code_ctype(cto, PROP_INDEX_EXTENDEDPICTOGRAPHIC)) + return FALSE; + } + + /* WB3d: WSegSpace + WSegSpace */ + if (from == WB_WSegSpace && to == WB_WSegSpace) return FALSE; + + /* WB4: X (Extend|Format|ZWJ)* -> X */ + if (IS_WB_IGNORE_TAIL(to)) return FALSE; + if (IS_WB_IGNORE_TAIL(from)) { + while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { + prev = pp; + cfrom = ONIGENC_MBC_TO_CODE(enc, prev, end); + from = wb_get_type(cfrom); + if (! IS_WB_IGNORE_TAIL(from)) + break; + } + } + + if (IS_WB_AHLetter(from)) { + /* WB5: AHLetter + AHLetter */ + if (IS_WB_AHLetter(to)) return FALSE; + + /* WB6: AHLetter + (MidLetter | MidNumLetQ) AHLetter */ + if (to == WB_MidLetter || IS_WB_MidNumLetQ(to)) { + r = wb_get_next_main_code(enc, p, end, &cto2, &to2); + if (r == 1) { + if (IS_WB_AHLetter(to2)) return FALSE; + } + } + } + + /* WB7: AHLetter (MidLetter | MidNumLetQ) + AHLetter */ + if (from == WB_MidLetter || IS_WB_MidNumLetQ(from)) { + if (IS_WB_AHLetter(to)) { + from2 = WB_Any; + while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { + prev = pp; + cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end); + from2 = wb_get_type(cfrom2); + if (! IS_WB_IGNORE_TAIL(from2)) + break; + } + + if (IS_WB_AHLetter(from2)) return FALSE; + } + } + + if (from == WB_Hebrew_Letter) { + /* WB7a: Hebrew_Letter + Single_Quote */ + if (to == WB_Single_Quote) return FALSE; + + /* WB7b: Hebrew_Letter + Double_Quote Hebrew_Letter */ + if (to == WB_Double_Quote) { + r = wb_get_next_main_code(enc, p, end, &cto2, &to2); + if (r == 1) { + if (to2 == WB_Hebrew_Letter) return FALSE; + } + } + } + + /* WB7c: Hebrew_Letter Double_Quote + Hebrew_Letter */ + if (from == WB_Double_Quote) { + if (to == WB_Hebrew_Letter) { + from2 = WB_Any; + while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { + prev = pp; + cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end); + from2 = wb_get_type(cfrom2); + if (! IS_WB_IGNORE_TAIL(from2)) + break; + } + + if (from2 == WB_Hebrew_Letter) return FALSE; + } + } + + if (to == WB_Numeric) { + /* WB8: Numeric + Numeric */ + if (from == WB_Numeric) return FALSE; + + /* WB9: AHLetter + Numeric */ + if (IS_WB_AHLetter(from)) return FALSE; + + /* WB11: Numeric (MidNum | MidNumLetQ) + Numeric */ + if (from == WB_MidNum || IS_WB_MidNumLetQ(from)) { + from2 = WB_Any; + while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { + prev = pp; + cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end); + from2 = wb_get_type(cfrom2); + if (! IS_WB_IGNORE_TAIL(from2)) + break; + } + + if (from2 == WB_Numeric) return FALSE; + } + } + + if (from == WB_Numeric) { + /* WB10: Numeric + AHLetter */ + if (IS_WB_AHLetter(to)) return FALSE; + + /* WB12: Numeric + (MidNum | MidNumLetQ) Numeric */ + if (to == WB_MidNum || IS_WB_MidNumLetQ(to)) { + r = wb_get_next_main_code(enc, p, end, &cto2, &to2); + if (r == 1) { + if (to2 == WB_Numeric) return FALSE; + } + } + } + + /* WB13: Katakana + Katakana */ + if (from == WB_Katakana && to == WB_Katakana) return FALSE; + + /* WB13a: (AHLetter | Numeric | Katakana | ExtendNumLet) + ExtendNumLet */ + if (IS_WB_AHLetter(from) || from == WB_Numeric || from == WB_Katakana + || from == WB_ExtendNumLet) { + if (to == WB_ExtendNumLet) return FALSE; + } + + /* WB13b: ExtendNumLet + (AHLetter | Numeric | Katakana) */ + if (from == WB_ExtendNumLet) { + if (IS_WB_AHLetter(to) || to == WB_Numeric || to == WB_Katakana) + return FALSE; + } + + + /* WB15: sot (RI RI)* RI + RI */ + /* WB16: [^RI] (RI RI)* RI + RI */ + if (from == WB_Regional_Indicator && to == WB_Regional_Indicator) { + int n = 0; + while ((prev = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { + cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end); + from2 = wb_get_type(cfrom2); + if (from2 != WB_Regional_Indicator) + break; + + n++; + } + if ((n % 2) == 0) return FALSE; + } + + WB999: + /* WB999: Any / Any */ + return TRUE; +} + +#endif /* USE_UNICODE_WORD_BREAK */ + + +#ifdef USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER + +enum EGCB_BREAK_TYPE { + EGCB_NOT_BREAK = 0, + EGCB_BREAK = 1, + EGCB_BREAK_UNDEF_GB11 = 2, + EGCB_BREAK_UNDEF_RI_RI = 3 +}; + +enum EGCB_TYPE { + EGCB_Other = 0, + EGCB_CR = 1, + EGCB_LF = 2, + EGCB_Control = 3, + EGCB_Extend = 4, + EGCB_Prepend = 5, + EGCB_Regional_Indicator = 6, + EGCB_SpacingMark = 7, + EGCB_ZWJ = 8, +#if 0 + /* obsoleted */ + EGCB_E_Base = 9, + EGCB_E_Base_GAZ = 10, + EGCB_E_Modifier = 11, + EGCB_Glue_After_Zwj = 12, +#endif + EGCB_L = 13, + EGCB_LV = 14, + EGCB_LVT = 15, + EGCB_T = 16, + EGCB_V = 17 +}; + +typedef struct { + OnigCodePoint start; + OnigCodePoint end; + enum EGCB_TYPE type; +} EGCB_RANGE_TYPE; + +#include "unicode_egcb_data.c" + +static enum EGCB_TYPE +egcb_get_type(OnigCodePoint code) +{ + OnigCodePoint low, high, x; + enum EGCB_TYPE type; + + for (low = 0, high = (OnigCodePoint )EGCB_RANGE_NUM; low < high; ) { + x = (low + high) >> 1; + if (code > EGCB_RANGES[x].end) + low = x + 1; + else + high = x; + } + + type = (low < (OnigCodePoint )EGCB_RANGE_NUM && + code >= EGCB_RANGES[low].start) ? + EGCB_RANGES[low].type : EGCB_Other; + + return type; +} + +#define IS_CONTROL_CR_LF(code) ((code) <= EGCB_Control && (code) >= EGCB_CR) +#define IS_HANGUL(code) ((code) >= EGCB_L) + +/* GB1 and GB2 are outside of this function. */ +static enum EGCB_BREAK_TYPE +unicode_egcb_is_break_2code(OnigCodePoint from_code, OnigCodePoint to_code) +{ + enum EGCB_TYPE from; + enum EGCB_TYPE to; + + from = egcb_get_type(from_code); + to = egcb_get_type(to_code); + + /* short cut */ + if (from == 0 && to == 0) goto GB999; + + /* GB3 */ + if (from == EGCB_CR && to == EGCB_LF) return EGCB_NOT_BREAK; + /* GB4 */ + if (IS_CONTROL_CR_LF(from)) return EGCB_BREAK; + /* GB5 */ + if (IS_CONTROL_CR_LF(to)) return EGCB_BREAK; + + if (IS_HANGUL(from) && IS_HANGUL(to)) { + /* GB6 */ + if (from == EGCB_L && to != EGCB_T) return EGCB_NOT_BREAK; + /* GB7 */ + if ((from == EGCB_LV || from == EGCB_V) + && (to == EGCB_V || to == EGCB_T)) return EGCB_NOT_BREAK; + + /* GB8 */ + if ((to == EGCB_T) && (from == EGCB_LVT || from == EGCB_T)) + return EGCB_NOT_BREAK; + + goto GB999; + } + + /* GB9 */ + if (to == EGCB_Extend || to == EGCB_ZWJ) return EGCB_NOT_BREAK; + + /* GB9a */ + if (to == EGCB_SpacingMark) return EGCB_NOT_BREAK; + /* GB9b */ + if (from == EGCB_Prepend) return EGCB_NOT_BREAK; + + /* GB10 removed */ + + /* GB11 */ + if (from == EGCB_ZWJ) { + if (onigenc_unicode_is_code_ctype(to_code, PROP_INDEX_EXTENDEDPICTOGRAPHIC)) + return EGCB_BREAK_UNDEF_GB11; + + goto GB999; + } + + /* GB12, GB13 */ + if (from == EGCB_Regional_Indicator && to == EGCB_Regional_Indicator) { + return EGCB_BREAK_UNDEF_RI_RI; + } + + GB999: + return EGCB_BREAK; +} + +#endif /* USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER */ + +extern int +onigenc_egcb_is_break_position(OnigEncoding enc, UChar* p, UChar* prev, + const UChar* start, const UChar* end) +{ + OnigCodePoint from; + OnigCodePoint to; +#ifdef USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER + enum EGCB_BREAK_TYPE btype; + enum EGCB_TYPE type; +#endif + + /* GB1 and GB2 */ + if (p == start) return 1; + if (p == end) return 1; + + if (IS_NULL(prev)) { + prev = onigenc_get_prev_char_head(enc, start, p); + if (IS_NULL(prev)) return 1; + } + + from = ONIGENC_MBC_TO_CODE(enc, prev, end); + to = ONIGENC_MBC_TO_CODE(enc, p, end); + +#ifdef USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER + if (! ONIGENC_IS_UNICODE_ENCODING(enc)) { + return from != 0x000d || to != NEWLINE_CODE; + } + + btype = unicode_egcb_is_break_2code(from, to); + switch (btype) { + case EGCB_NOT_BREAK: + return 0; + break; + case EGCB_BREAK: + return 1; + break; + + case EGCB_BREAK_UNDEF_GB11: + while ((prev = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { + from = ONIGENC_MBC_TO_CODE(enc, prev, end); + if (onigenc_unicode_is_code_ctype(from, PROP_INDEX_EXTENDEDPICTOGRAPHIC)) + return 0; + + type = egcb_get_type(from); + if (type != EGCB_Extend) + break; + } + break; + + case EGCB_BREAK_UNDEF_RI_RI: + { + int n = 0; + while ((prev = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { + from = ONIGENC_MBC_TO_CODE(enc, prev, end); + type = egcb_get_type(from); + if (type != EGCB_Regional_Indicator) + break; + + n++; + } + if ((n % 2) == 0) return 0; + } + break; + } + + return 1; + +#else + return from != 0x000d || to != NEWLINE_CODE; +#endif /* USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER */ +} + + +#define USER_DEFINED_PROPERTY_MAX_NUM 20 + +typedef struct { + int ctype; + OnigCodePoint* ranges; +} UserDefinedPropertyValue; + +static int UserDefinedPropertyNum; +static UserDefinedPropertyValue +UserDefinedPropertyRanges[USER_DEFINED_PROPERTY_MAX_NUM]; +static st_table* UserDefinedPropertyTable; + +extern int +onig_unicode_define_user_property(const char* name, OnigCodePoint* ranges) +{ + UserDefinedPropertyValue* e; + int r; + int i; + int n; + int len; + int c; + char* s; + UChar* uname; + + if (UserDefinedPropertyNum >= USER_DEFINED_PROPERTY_MAX_NUM) + return ONIGERR_TOO_MANY_USER_DEFINED_OBJECTS; + + len = (int )strlen(name); + if (len >= PROPERTY_NAME_MAX_SIZE) + return ONIGERR_TOO_LONG_PROPERTY_NAME; + + s = (char* )xmalloc(len + 1); + if (s == 0) + return ONIGERR_MEMORY; + + uname = (UChar* )name; + n = 0; + for (i = 0; i < len; i++) { + c = uname[i]; + if (c < 0x20 || c >= 0x80) { + xfree(s); + return ONIGERR_INVALID_CHAR_PROPERTY_NAME; + } + + if (c != ' ' && c != '-' && c != '_') { + s[n] = c; + n++; + } + } + s[n] = '\0'; + + if (UserDefinedPropertyTable == 0) { + UserDefinedPropertyTable = onig_st_init_strend_table_with_size(10); + if (IS_NULL(UserDefinedPropertyTable)) { + xfree(s); + return ONIGERR_MEMORY; + } + } + + e = UserDefinedPropertyRanges + UserDefinedPropertyNum; + e->ctype = CODE_RANGES_NUM + UserDefinedPropertyNum; + e->ranges = ranges; + r = onig_st_insert_strend(UserDefinedPropertyTable, + (const UChar* )s, (const UChar* )s + n, + (hash_data_type )((void* )e)); + if (r < 0) return r; + + UserDefinedPropertyNum++; + return 0; +} + +extern int +onigenc_unicode_is_code_ctype(OnigCodePoint code, unsigned int ctype) +{ + if ( +#ifdef USE_UNICODE_PROPERTIES + ctype <= ONIGENC_MAX_STD_CTYPE && +#endif + code < 256) { + return ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code, ctype); + } + + if (ctype >= CODE_RANGES_NUM) { + int index = ctype - CODE_RANGES_NUM; + if (index < UserDefinedPropertyNum) + return onig_is_in_code_range((UChar* )UserDefinedPropertyRanges[index].ranges, code); + else + return ONIGERR_TYPE_BUG; + } + + return onig_is_in_code_range((UChar* )CodeRanges[ctype], code); +} + + +extern int +onigenc_unicode_ctype_code_range(OnigCtype ctype, const OnigCodePoint* ranges[]) +{ + if (ctype >= CODE_RANGES_NUM) { + int index = ctype - CODE_RANGES_NUM; + if (index < UserDefinedPropertyNum) { + *ranges = UserDefinedPropertyRanges[index].ranges; + return 0; + } + else + return ONIGERR_TYPE_BUG; + } + + *ranges = CodeRanges[ctype]; + return 0; +} + +extern int +onigenc_utf16_32_get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out, + const OnigCodePoint* ranges[]) +{ + *sb_out = 0x00; + return onigenc_unicode_ctype_code_range(ctype, ranges); +} + +extern int +onigenc_unicode_property_name_to_ctype(OnigEncoding enc, UChar* name, UChar* end) +{ + int len; + UChar *p; + OnigCodePoint code; + const struct PoolPropertyNameCtype* pc; + char buf[PROPERTY_NAME_MAX_SIZE]; + + p = name; + len = 0; + while (p < end) { + code = ONIGENC_MBC_TO_CODE(enc, p, end); + if (code >= 0x80) + return ONIGERR_INVALID_CHAR_PROPERTY_NAME; + + if (code != ' ' && code != '-' && code != '_') { + buf[len++] = (char )code; + if (len >= PROPERTY_NAME_MAX_SIZE) + return ONIGERR_INVALID_CHAR_PROPERTY_NAME; + } + + p += enclen(enc, p); + } + + buf[len] = 0; + + if (UserDefinedPropertyTable != 0) { + UserDefinedPropertyValue* e; + e = (UserDefinedPropertyValue* )NULL; + onig_st_lookup_strend(UserDefinedPropertyTable, + (const UChar* )buf, (const UChar* )buf + len, + (hash_data_type* )((void* )(&e))); + if (e != 0) { + return e->ctype; + } + } + + pc = unicode_lookup_property_name(buf, len); + if (pc != 0) { + /* fprintf(stderr, "LOOKUP: %s: %d\n", buf, pc->ctype); */ +#ifndef USE_UNICODE_PROPERTIES + if (pc->ctype > ONIGENC_MAX_STD_CTYPE) + return ONIGERR_INVALID_CHAR_PROPERTY_NAME; +#endif + + return (int )pc->ctype; + } + + return ONIGERR_INVALID_CHAR_PROPERTY_NAME; +} diff --git a/thirdparty/oniguruma/unicode_egcb_data.c b/thirdparty/oniguruma/unicode_egcb_data.c new file mode 100644 index 000000000..36c93d504 --- /dev/null +++ b/thirdparty/oniguruma/unicode_egcb_data.c @@ -0,0 +1,1424 @@ +/* unicode_egcb_data.c: Generated by make_unicode_egcb_data.py. */ +/*- + * Copyright (c) 2017-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#define GRAPHEME_BREAK_PROPERTY_VERSION 160000 + +/* +CR +Control +Extend +L +LF +LV +LVT +Prepend +Regional_Indicator +SpacingMark +T +V +ZWJ +*/ + +static int EGCB_RANGE_NUM = 1376; +static EGCB_RANGE_TYPE EGCB_RANGES[] = { + {0x000000, 0x000009, EGCB_Control }, + {0x00000a, 0x00000a, EGCB_LF }, + {0x00000b, 0x00000c, EGCB_Control }, + {0x00000d, 0x00000d, EGCB_CR }, + {0x00000e, 0x00001f, EGCB_Control }, + {0x00007f, 0x00009f, EGCB_Control }, + {0x0000ad, 0x0000ad, EGCB_Control }, + {0x000300, 0x00036f, EGCB_Extend }, + {0x000483, 0x000489, EGCB_Extend }, + {0x000591, 0x0005bd, EGCB_Extend }, + {0x0005bf, 0x0005bf, EGCB_Extend }, + {0x0005c1, 0x0005c2, EGCB_Extend }, + {0x0005c4, 0x0005c5, EGCB_Extend }, + {0x0005c7, 0x0005c7, EGCB_Extend }, + {0x000600, 0x000605, EGCB_Prepend }, + {0x000610, 0x00061a, EGCB_Extend }, + {0x00061c, 0x00061c, EGCB_Control }, + {0x00064b, 0x00065f, EGCB_Extend }, + {0x000670, 0x000670, EGCB_Extend }, + {0x0006d6, 0x0006dc, EGCB_Extend }, + {0x0006dd, 0x0006dd, EGCB_Prepend }, + {0x0006df, 0x0006e4, EGCB_Extend }, + {0x0006e7, 0x0006e8, EGCB_Extend }, + {0x0006ea, 0x0006ed, EGCB_Extend }, + {0x00070f, 0x00070f, EGCB_Prepend }, + {0x000711, 0x000711, EGCB_Extend }, + {0x000730, 0x00074a, EGCB_Extend }, + {0x0007a6, 0x0007b0, EGCB_Extend }, + {0x0007eb, 0x0007f3, EGCB_Extend }, + {0x0007fd, 0x0007fd, EGCB_Extend }, + {0x000816, 0x000819, EGCB_Extend }, + {0x00081b, 0x000823, EGCB_Extend }, + {0x000825, 0x000827, EGCB_Extend }, + {0x000829, 0x00082d, EGCB_Extend }, + {0x000859, 0x00085b, EGCB_Extend }, + {0x000890, 0x000891, EGCB_Prepend }, + {0x000897, 0x00089f, EGCB_Extend }, + {0x0008ca, 0x0008e1, EGCB_Extend }, + {0x0008e2, 0x0008e2, EGCB_Prepend }, + {0x0008e3, 0x000902, EGCB_Extend }, + {0x000903, 0x000903, EGCB_SpacingMark }, + {0x00093a, 0x00093a, EGCB_Extend }, + {0x00093b, 0x00093b, EGCB_SpacingMark }, + {0x00093c, 0x00093c, EGCB_Extend }, + {0x00093e, 0x000940, EGCB_SpacingMark }, + {0x000941, 0x000948, EGCB_Extend }, + {0x000949, 0x00094c, EGCB_SpacingMark }, + {0x00094d, 0x00094d, EGCB_Extend }, + {0x00094e, 0x00094f, EGCB_SpacingMark }, + {0x000951, 0x000957, EGCB_Extend }, + {0x000962, 0x000963, EGCB_Extend }, + {0x000981, 0x000981, EGCB_Extend }, + {0x000982, 0x000983, EGCB_SpacingMark }, + {0x0009bc, 0x0009bc, EGCB_Extend }, + {0x0009be, 0x0009be, EGCB_Extend }, + {0x0009bf, 0x0009c0, EGCB_SpacingMark }, + {0x0009c1, 0x0009c4, EGCB_Extend }, + {0x0009c7, 0x0009c8, EGCB_SpacingMark }, + {0x0009cb, 0x0009cc, EGCB_SpacingMark }, + {0x0009cd, 0x0009cd, EGCB_Extend }, + {0x0009d7, 0x0009d7, EGCB_Extend }, + {0x0009e2, 0x0009e3, EGCB_Extend }, + {0x0009fe, 0x0009fe, EGCB_Extend }, + {0x000a01, 0x000a02, EGCB_Extend }, + {0x000a03, 0x000a03, EGCB_SpacingMark }, + {0x000a3c, 0x000a3c, EGCB_Extend }, + {0x000a3e, 0x000a40, EGCB_SpacingMark }, + {0x000a41, 0x000a42, EGCB_Extend }, + {0x000a47, 0x000a48, EGCB_Extend }, + {0x000a4b, 0x000a4d, EGCB_Extend }, + {0x000a51, 0x000a51, EGCB_Extend }, + {0x000a70, 0x000a71, EGCB_Extend }, + {0x000a75, 0x000a75, EGCB_Extend }, + {0x000a81, 0x000a82, EGCB_Extend }, + {0x000a83, 0x000a83, EGCB_SpacingMark }, + {0x000abc, 0x000abc, EGCB_Extend }, + {0x000abe, 0x000ac0, EGCB_SpacingMark }, + {0x000ac1, 0x000ac5, EGCB_Extend }, + {0x000ac7, 0x000ac8, EGCB_Extend }, + {0x000ac9, 0x000ac9, EGCB_SpacingMark }, + {0x000acb, 0x000acc, EGCB_SpacingMark }, + {0x000acd, 0x000acd, EGCB_Extend }, + {0x000ae2, 0x000ae3, EGCB_Extend }, + {0x000afa, 0x000aff, EGCB_Extend }, + {0x000b01, 0x000b01, EGCB_Extend }, + {0x000b02, 0x000b03, EGCB_SpacingMark }, + {0x000b3c, 0x000b3c, EGCB_Extend }, + {0x000b3e, 0x000b3f, EGCB_Extend }, + {0x000b40, 0x000b40, EGCB_SpacingMark }, + {0x000b41, 0x000b44, EGCB_Extend }, + {0x000b47, 0x000b48, EGCB_SpacingMark }, + {0x000b4b, 0x000b4c, EGCB_SpacingMark }, + {0x000b4d, 0x000b4d, EGCB_Extend }, + {0x000b55, 0x000b57, EGCB_Extend }, + {0x000b62, 0x000b63, EGCB_Extend }, + {0x000b82, 0x000b82, EGCB_Extend }, + {0x000bbe, 0x000bbe, EGCB_Extend }, + {0x000bbf, 0x000bbf, EGCB_SpacingMark }, + {0x000bc0, 0x000bc0, EGCB_Extend }, + {0x000bc1, 0x000bc2, EGCB_SpacingMark }, + {0x000bc6, 0x000bc8, EGCB_SpacingMark }, + {0x000bca, 0x000bcc, EGCB_SpacingMark }, + {0x000bcd, 0x000bcd, EGCB_Extend }, + {0x000bd7, 0x000bd7, EGCB_Extend }, + {0x000c00, 0x000c00, EGCB_Extend }, + {0x000c01, 0x000c03, EGCB_SpacingMark }, + {0x000c04, 0x000c04, EGCB_Extend }, + {0x000c3c, 0x000c3c, EGCB_Extend }, + {0x000c3e, 0x000c40, EGCB_Extend }, + {0x000c41, 0x000c44, EGCB_SpacingMark }, + {0x000c46, 0x000c48, EGCB_Extend }, + {0x000c4a, 0x000c4d, EGCB_Extend }, + {0x000c55, 0x000c56, EGCB_Extend }, + {0x000c62, 0x000c63, EGCB_Extend }, + {0x000c81, 0x000c81, EGCB_Extend }, + {0x000c82, 0x000c83, EGCB_SpacingMark }, + {0x000cbc, 0x000cbc, EGCB_Extend }, + {0x000cbe, 0x000cbe, EGCB_SpacingMark }, + {0x000cbf, 0x000cc0, EGCB_Extend }, + {0x000cc1, 0x000cc1, EGCB_SpacingMark }, + {0x000cc2, 0x000cc2, EGCB_Extend }, + {0x000cc3, 0x000cc4, EGCB_SpacingMark }, + {0x000cc6, 0x000cc8, EGCB_Extend }, + {0x000cca, 0x000ccd, EGCB_Extend }, + {0x000cd5, 0x000cd6, EGCB_Extend }, + {0x000ce2, 0x000ce3, EGCB_Extend }, + {0x000cf3, 0x000cf3, EGCB_SpacingMark }, + {0x000d00, 0x000d01, EGCB_Extend }, + {0x000d02, 0x000d03, EGCB_SpacingMark }, + {0x000d3b, 0x000d3c, EGCB_Extend }, + {0x000d3e, 0x000d3e, EGCB_Extend }, + {0x000d3f, 0x000d40, EGCB_SpacingMark }, + {0x000d41, 0x000d44, EGCB_Extend }, + {0x000d46, 0x000d48, EGCB_SpacingMark }, + {0x000d4a, 0x000d4c, EGCB_SpacingMark }, + {0x000d4d, 0x000d4d, EGCB_Extend }, + {0x000d4e, 0x000d4e, EGCB_Prepend }, + {0x000d57, 0x000d57, EGCB_Extend }, + {0x000d62, 0x000d63, EGCB_Extend }, + {0x000d81, 0x000d81, EGCB_Extend }, + {0x000d82, 0x000d83, EGCB_SpacingMark }, + {0x000dca, 0x000dca, EGCB_Extend }, + {0x000dcf, 0x000dcf, EGCB_Extend }, + {0x000dd0, 0x000dd1, EGCB_SpacingMark }, + {0x000dd2, 0x000dd4, EGCB_Extend }, + {0x000dd6, 0x000dd6, EGCB_Extend }, + {0x000dd8, 0x000dde, EGCB_SpacingMark }, + {0x000ddf, 0x000ddf, EGCB_Extend }, + {0x000df2, 0x000df3, EGCB_SpacingMark }, + {0x000e31, 0x000e31, EGCB_Extend }, + {0x000e33, 0x000e33, EGCB_SpacingMark }, + {0x000e34, 0x000e3a, EGCB_Extend }, + {0x000e47, 0x000e4e, EGCB_Extend }, + {0x000eb1, 0x000eb1, EGCB_Extend }, + {0x000eb3, 0x000eb3, EGCB_SpacingMark }, + {0x000eb4, 0x000ebc, EGCB_Extend }, + {0x000ec8, 0x000ece, EGCB_Extend }, + {0x000f18, 0x000f19, EGCB_Extend }, + {0x000f35, 0x000f35, EGCB_Extend }, + {0x000f37, 0x000f37, EGCB_Extend }, + {0x000f39, 0x000f39, EGCB_Extend }, + {0x000f3e, 0x000f3f, EGCB_SpacingMark }, + {0x000f71, 0x000f7e, EGCB_Extend }, + {0x000f7f, 0x000f7f, EGCB_SpacingMark }, + {0x000f80, 0x000f84, EGCB_Extend }, + {0x000f86, 0x000f87, EGCB_Extend }, + {0x000f8d, 0x000f97, EGCB_Extend }, + {0x000f99, 0x000fbc, EGCB_Extend }, + {0x000fc6, 0x000fc6, EGCB_Extend }, + {0x00102d, 0x001030, EGCB_Extend }, + {0x001031, 0x001031, EGCB_SpacingMark }, + {0x001032, 0x001037, EGCB_Extend }, + {0x001039, 0x00103a, EGCB_Extend }, + {0x00103b, 0x00103c, EGCB_SpacingMark }, + {0x00103d, 0x00103e, EGCB_Extend }, + {0x001056, 0x001057, EGCB_SpacingMark }, + {0x001058, 0x001059, EGCB_Extend }, + {0x00105e, 0x001060, EGCB_Extend }, + {0x001071, 0x001074, EGCB_Extend }, + {0x001082, 0x001082, EGCB_Extend }, + {0x001084, 0x001084, EGCB_SpacingMark }, + {0x001085, 0x001086, EGCB_Extend }, + {0x00108d, 0x00108d, EGCB_Extend }, + {0x00109d, 0x00109d, EGCB_Extend }, + {0x001100, 0x00115f, EGCB_L }, + {0x001160, 0x0011a7, EGCB_V }, + {0x0011a8, 0x0011ff, EGCB_T }, + {0x00135d, 0x00135f, EGCB_Extend }, + {0x001712, 0x001715, EGCB_Extend }, + {0x001732, 0x001734, EGCB_Extend }, + {0x001752, 0x001753, EGCB_Extend }, + {0x001772, 0x001773, EGCB_Extend }, + {0x0017b4, 0x0017b5, EGCB_Extend }, + {0x0017b6, 0x0017b6, EGCB_SpacingMark }, + {0x0017b7, 0x0017bd, EGCB_Extend }, + {0x0017be, 0x0017c5, EGCB_SpacingMark }, + {0x0017c6, 0x0017c6, EGCB_Extend }, + {0x0017c7, 0x0017c8, EGCB_SpacingMark }, + {0x0017c9, 0x0017d3, EGCB_Extend }, + {0x0017dd, 0x0017dd, EGCB_Extend }, + {0x00180b, 0x00180d, EGCB_Extend }, + {0x00180e, 0x00180e, EGCB_Control }, + {0x00180f, 0x00180f, EGCB_Extend }, + {0x001885, 0x001886, EGCB_Extend }, + {0x0018a9, 0x0018a9, EGCB_Extend }, + {0x001920, 0x001922, EGCB_Extend }, + {0x001923, 0x001926, EGCB_SpacingMark }, + {0x001927, 0x001928, EGCB_Extend }, + {0x001929, 0x00192b, EGCB_SpacingMark }, + {0x001930, 0x001931, EGCB_SpacingMark }, + {0x001932, 0x001932, EGCB_Extend }, + {0x001933, 0x001938, EGCB_SpacingMark }, + {0x001939, 0x00193b, EGCB_Extend }, + {0x001a17, 0x001a18, EGCB_Extend }, + {0x001a19, 0x001a1a, EGCB_SpacingMark }, + {0x001a1b, 0x001a1b, EGCB_Extend }, + {0x001a55, 0x001a55, EGCB_SpacingMark }, + {0x001a56, 0x001a56, EGCB_Extend }, + {0x001a57, 0x001a57, EGCB_SpacingMark }, + {0x001a58, 0x001a5e, EGCB_Extend }, + {0x001a60, 0x001a60, EGCB_Extend }, + {0x001a62, 0x001a62, EGCB_Extend }, + {0x001a65, 0x001a6c, EGCB_Extend }, + {0x001a6d, 0x001a72, EGCB_SpacingMark }, + {0x001a73, 0x001a7c, EGCB_Extend }, + {0x001a7f, 0x001a7f, EGCB_Extend }, + {0x001ab0, 0x001ace, EGCB_Extend }, + {0x001b00, 0x001b03, EGCB_Extend }, + {0x001b04, 0x001b04, EGCB_SpacingMark }, + {0x001b34, 0x001b3d, EGCB_Extend }, + {0x001b3e, 0x001b41, EGCB_SpacingMark }, + {0x001b42, 0x001b44, EGCB_Extend }, + {0x001b6b, 0x001b73, EGCB_Extend }, + {0x001b80, 0x001b81, EGCB_Extend }, + {0x001b82, 0x001b82, EGCB_SpacingMark }, + {0x001ba1, 0x001ba1, EGCB_SpacingMark }, + {0x001ba2, 0x001ba5, EGCB_Extend }, + {0x001ba6, 0x001ba7, EGCB_SpacingMark }, + {0x001ba8, 0x001bad, EGCB_Extend }, + {0x001be6, 0x001be6, EGCB_Extend }, + {0x001be7, 0x001be7, EGCB_SpacingMark }, + {0x001be8, 0x001be9, EGCB_Extend }, + {0x001bea, 0x001bec, EGCB_SpacingMark }, + {0x001bed, 0x001bed, EGCB_Extend }, + {0x001bee, 0x001bee, EGCB_SpacingMark }, + {0x001bef, 0x001bf3, EGCB_Extend }, + {0x001c24, 0x001c2b, EGCB_SpacingMark }, + {0x001c2c, 0x001c33, EGCB_Extend }, + {0x001c34, 0x001c35, EGCB_SpacingMark }, + {0x001c36, 0x001c37, EGCB_Extend }, + {0x001cd0, 0x001cd2, EGCB_Extend }, + {0x001cd4, 0x001ce0, EGCB_Extend }, + {0x001ce1, 0x001ce1, EGCB_SpacingMark }, + {0x001ce2, 0x001ce8, EGCB_Extend }, + {0x001ced, 0x001ced, EGCB_Extend }, + {0x001cf4, 0x001cf4, EGCB_Extend }, + {0x001cf7, 0x001cf7, EGCB_SpacingMark }, + {0x001cf8, 0x001cf9, EGCB_Extend }, + {0x001dc0, 0x001dff, EGCB_Extend }, + {0x00200b, 0x00200b, EGCB_Control }, + {0x00200c, 0x00200c, EGCB_Extend }, + {0x00200d, 0x00200d, EGCB_ZWJ }, + {0x00200e, 0x00200f, EGCB_Control }, + {0x002028, 0x00202e, EGCB_Control }, + {0x002060, 0x00206f, EGCB_Control }, + {0x0020d0, 0x0020f0, EGCB_Extend }, + {0x002cef, 0x002cf1, EGCB_Extend }, + {0x002d7f, 0x002d7f, EGCB_Extend }, + {0x002de0, 0x002dff, EGCB_Extend }, + {0x00302a, 0x00302f, EGCB_Extend }, + {0x003099, 0x00309a, EGCB_Extend }, + {0x00a66f, 0x00a672, EGCB_Extend }, + {0x00a674, 0x00a67d, EGCB_Extend }, + {0x00a69e, 0x00a69f, EGCB_Extend }, + {0x00a6f0, 0x00a6f1, EGCB_Extend }, + {0x00a802, 0x00a802, EGCB_Extend }, + {0x00a806, 0x00a806, EGCB_Extend }, + {0x00a80b, 0x00a80b, EGCB_Extend }, + {0x00a823, 0x00a824, EGCB_SpacingMark }, + {0x00a825, 0x00a826, EGCB_Extend }, + {0x00a827, 0x00a827, EGCB_SpacingMark }, + {0x00a82c, 0x00a82c, EGCB_Extend }, + {0x00a880, 0x00a881, EGCB_SpacingMark }, + {0x00a8b4, 0x00a8c3, EGCB_SpacingMark }, + {0x00a8c4, 0x00a8c5, EGCB_Extend }, + {0x00a8e0, 0x00a8f1, EGCB_Extend }, + {0x00a8ff, 0x00a8ff, EGCB_Extend }, + {0x00a926, 0x00a92d, EGCB_Extend }, + {0x00a947, 0x00a951, EGCB_Extend }, + {0x00a952, 0x00a952, EGCB_SpacingMark }, + {0x00a953, 0x00a953, EGCB_Extend }, + {0x00a960, 0x00a97c, EGCB_L }, + {0x00a980, 0x00a982, EGCB_Extend }, + {0x00a983, 0x00a983, EGCB_SpacingMark }, + {0x00a9b3, 0x00a9b3, EGCB_Extend }, + {0x00a9b4, 0x00a9b5, EGCB_SpacingMark }, + {0x00a9b6, 0x00a9b9, EGCB_Extend }, + {0x00a9ba, 0x00a9bb, EGCB_SpacingMark }, + {0x00a9bc, 0x00a9bd, EGCB_Extend }, + {0x00a9be, 0x00a9bf, EGCB_SpacingMark }, + {0x00a9c0, 0x00a9c0, EGCB_Extend }, + {0x00a9e5, 0x00a9e5, EGCB_Extend }, + {0x00aa29, 0x00aa2e, EGCB_Extend }, + {0x00aa2f, 0x00aa30, EGCB_SpacingMark }, + {0x00aa31, 0x00aa32, EGCB_Extend }, + {0x00aa33, 0x00aa34, EGCB_SpacingMark }, + {0x00aa35, 0x00aa36, EGCB_Extend }, + {0x00aa43, 0x00aa43, EGCB_Extend }, + {0x00aa4c, 0x00aa4c, EGCB_Extend }, + {0x00aa4d, 0x00aa4d, EGCB_SpacingMark }, + {0x00aa7c, 0x00aa7c, EGCB_Extend }, + {0x00aab0, 0x00aab0, EGCB_Extend }, + {0x00aab2, 0x00aab4, EGCB_Extend }, + {0x00aab7, 0x00aab8, EGCB_Extend }, + {0x00aabe, 0x00aabf, EGCB_Extend }, + {0x00aac1, 0x00aac1, EGCB_Extend }, + {0x00aaeb, 0x00aaeb, EGCB_SpacingMark }, + {0x00aaec, 0x00aaed, EGCB_Extend }, + {0x00aaee, 0x00aaef, EGCB_SpacingMark }, + {0x00aaf5, 0x00aaf5, EGCB_SpacingMark }, + {0x00aaf6, 0x00aaf6, EGCB_Extend }, + {0x00abe3, 0x00abe4, EGCB_SpacingMark }, + {0x00abe5, 0x00abe5, EGCB_Extend }, + {0x00abe6, 0x00abe7, EGCB_SpacingMark }, + {0x00abe8, 0x00abe8, EGCB_Extend }, + {0x00abe9, 0x00abea, EGCB_SpacingMark }, + {0x00abec, 0x00abec, EGCB_SpacingMark }, + {0x00abed, 0x00abed, EGCB_Extend }, + {0x00ac00, 0x00ac00, EGCB_LV }, + {0x00ac01, 0x00ac1b, EGCB_LVT }, + {0x00ac1c, 0x00ac1c, EGCB_LV }, + {0x00ac1d, 0x00ac37, EGCB_LVT }, + {0x00ac38, 0x00ac38, EGCB_LV }, + {0x00ac39, 0x00ac53, EGCB_LVT }, + {0x00ac54, 0x00ac54, EGCB_LV }, + {0x00ac55, 0x00ac6f, EGCB_LVT }, + {0x00ac70, 0x00ac70, EGCB_LV }, + {0x00ac71, 0x00ac8b, EGCB_LVT }, + {0x00ac8c, 0x00ac8c, EGCB_LV }, + {0x00ac8d, 0x00aca7, EGCB_LVT }, + {0x00aca8, 0x00aca8, EGCB_LV }, + {0x00aca9, 0x00acc3, EGCB_LVT }, + {0x00acc4, 0x00acc4, EGCB_LV }, + {0x00acc5, 0x00acdf, EGCB_LVT }, + {0x00ace0, 0x00ace0, EGCB_LV }, + {0x00ace1, 0x00acfb, EGCB_LVT }, + {0x00acfc, 0x00acfc, EGCB_LV }, + {0x00acfd, 0x00ad17, EGCB_LVT }, + {0x00ad18, 0x00ad18, EGCB_LV }, + {0x00ad19, 0x00ad33, EGCB_LVT }, + {0x00ad34, 0x00ad34, EGCB_LV }, + {0x00ad35, 0x00ad4f, EGCB_LVT }, + {0x00ad50, 0x00ad50, EGCB_LV }, + {0x00ad51, 0x00ad6b, EGCB_LVT }, + {0x00ad6c, 0x00ad6c, EGCB_LV }, + {0x00ad6d, 0x00ad87, EGCB_LVT }, + {0x00ad88, 0x00ad88, EGCB_LV }, + {0x00ad89, 0x00ada3, EGCB_LVT }, + {0x00ada4, 0x00ada4, EGCB_LV }, + {0x00ada5, 0x00adbf, EGCB_LVT }, + {0x00adc0, 0x00adc0, EGCB_LV }, + {0x00adc1, 0x00addb, EGCB_LVT }, + {0x00addc, 0x00addc, EGCB_LV }, + {0x00addd, 0x00adf7, EGCB_LVT }, + {0x00adf8, 0x00adf8, EGCB_LV }, + {0x00adf9, 0x00ae13, EGCB_LVT }, + {0x00ae14, 0x00ae14, EGCB_LV }, + {0x00ae15, 0x00ae2f, EGCB_LVT }, + {0x00ae30, 0x00ae30, EGCB_LV }, + {0x00ae31, 0x00ae4b, EGCB_LVT }, + {0x00ae4c, 0x00ae4c, EGCB_LV }, + {0x00ae4d, 0x00ae67, EGCB_LVT }, + {0x00ae68, 0x00ae68, EGCB_LV }, + {0x00ae69, 0x00ae83, EGCB_LVT }, + {0x00ae84, 0x00ae84, EGCB_LV }, + {0x00ae85, 0x00ae9f, EGCB_LVT }, + {0x00aea0, 0x00aea0, EGCB_LV }, + {0x00aea1, 0x00aebb, EGCB_LVT }, + {0x00aebc, 0x00aebc, EGCB_LV }, + {0x00aebd, 0x00aed7, EGCB_LVT }, + {0x00aed8, 0x00aed8, EGCB_LV }, + {0x00aed9, 0x00aef3, EGCB_LVT }, + {0x00aef4, 0x00aef4, EGCB_LV }, + {0x00aef5, 0x00af0f, EGCB_LVT }, + {0x00af10, 0x00af10, EGCB_LV }, + {0x00af11, 0x00af2b, EGCB_LVT }, + {0x00af2c, 0x00af2c, EGCB_LV }, + {0x00af2d, 0x00af47, EGCB_LVT }, + {0x00af48, 0x00af48, EGCB_LV }, + {0x00af49, 0x00af63, EGCB_LVT }, + {0x00af64, 0x00af64, EGCB_LV }, + {0x00af65, 0x00af7f, EGCB_LVT }, + {0x00af80, 0x00af80, EGCB_LV }, + {0x00af81, 0x00af9b, EGCB_LVT }, + {0x00af9c, 0x00af9c, EGCB_LV }, + {0x00af9d, 0x00afb7, EGCB_LVT }, + {0x00afb8, 0x00afb8, EGCB_LV }, + {0x00afb9, 0x00afd3, EGCB_LVT }, + {0x00afd4, 0x00afd4, EGCB_LV }, + {0x00afd5, 0x00afef, EGCB_LVT }, + {0x00aff0, 0x00aff0, EGCB_LV }, + {0x00aff1, 0x00b00b, EGCB_LVT }, + {0x00b00c, 0x00b00c, EGCB_LV }, + {0x00b00d, 0x00b027, EGCB_LVT }, + {0x00b028, 0x00b028, EGCB_LV }, + {0x00b029, 0x00b043, EGCB_LVT }, + {0x00b044, 0x00b044, EGCB_LV }, + {0x00b045, 0x00b05f, EGCB_LVT }, + {0x00b060, 0x00b060, EGCB_LV }, + {0x00b061, 0x00b07b, EGCB_LVT }, + {0x00b07c, 0x00b07c, EGCB_LV }, + {0x00b07d, 0x00b097, EGCB_LVT }, + {0x00b098, 0x00b098, EGCB_LV }, + {0x00b099, 0x00b0b3, EGCB_LVT }, + {0x00b0b4, 0x00b0b4, EGCB_LV }, + {0x00b0b5, 0x00b0cf, EGCB_LVT }, + {0x00b0d0, 0x00b0d0, EGCB_LV }, + {0x00b0d1, 0x00b0eb, EGCB_LVT }, + {0x00b0ec, 0x00b0ec, EGCB_LV }, + {0x00b0ed, 0x00b107, EGCB_LVT }, + {0x00b108, 0x00b108, EGCB_LV }, + {0x00b109, 0x00b123, EGCB_LVT }, + {0x00b124, 0x00b124, EGCB_LV }, + {0x00b125, 0x00b13f, EGCB_LVT }, + {0x00b140, 0x00b140, EGCB_LV }, + {0x00b141, 0x00b15b, EGCB_LVT }, + {0x00b15c, 0x00b15c, EGCB_LV }, + {0x00b15d, 0x00b177, EGCB_LVT }, + {0x00b178, 0x00b178, EGCB_LV }, + {0x00b179, 0x00b193, EGCB_LVT }, + {0x00b194, 0x00b194, EGCB_LV }, + {0x00b195, 0x00b1af, EGCB_LVT }, + {0x00b1b0, 0x00b1b0, EGCB_LV }, + {0x00b1b1, 0x00b1cb, EGCB_LVT }, + {0x00b1cc, 0x00b1cc, EGCB_LV }, + {0x00b1cd, 0x00b1e7, EGCB_LVT }, + {0x00b1e8, 0x00b1e8, EGCB_LV }, + {0x00b1e9, 0x00b203, EGCB_LVT }, + {0x00b204, 0x00b204, EGCB_LV }, + {0x00b205, 0x00b21f, EGCB_LVT }, + {0x00b220, 0x00b220, EGCB_LV }, + {0x00b221, 0x00b23b, EGCB_LVT }, + {0x00b23c, 0x00b23c, EGCB_LV }, + {0x00b23d, 0x00b257, EGCB_LVT }, + {0x00b258, 0x00b258, EGCB_LV }, + {0x00b259, 0x00b273, EGCB_LVT }, + {0x00b274, 0x00b274, EGCB_LV }, + {0x00b275, 0x00b28f, EGCB_LVT }, + {0x00b290, 0x00b290, EGCB_LV }, + {0x00b291, 0x00b2ab, EGCB_LVT }, + {0x00b2ac, 0x00b2ac, EGCB_LV }, + {0x00b2ad, 0x00b2c7, EGCB_LVT }, + {0x00b2c8, 0x00b2c8, EGCB_LV }, + {0x00b2c9, 0x00b2e3, EGCB_LVT }, + {0x00b2e4, 0x00b2e4, EGCB_LV }, + {0x00b2e5, 0x00b2ff, EGCB_LVT }, + {0x00b300, 0x00b300, EGCB_LV }, + {0x00b301, 0x00b31b, EGCB_LVT }, + {0x00b31c, 0x00b31c, EGCB_LV }, + {0x00b31d, 0x00b337, EGCB_LVT }, + {0x00b338, 0x00b338, EGCB_LV }, + {0x00b339, 0x00b353, EGCB_LVT }, + {0x00b354, 0x00b354, EGCB_LV }, + {0x00b355, 0x00b36f, EGCB_LVT }, + {0x00b370, 0x00b370, EGCB_LV }, + {0x00b371, 0x00b38b, EGCB_LVT }, + {0x00b38c, 0x00b38c, EGCB_LV }, + {0x00b38d, 0x00b3a7, EGCB_LVT }, + {0x00b3a8, 0x00b3a8, EGCB_LV }, + {0x00b3a9, 0x00b3c3, EGCB_LVT }, + {0x00b3c4, 0x00b3c4, EGCB_LV }, + {0x00b3c5, 0x00b3df, EGCB_LVT }, + {0x00b3e0, 0x00b3e0, EGCB_LV }, + {0x00b3e1, 0x00b3fb, EGCB_LVT }, + {0x00b3fc, 0x00b3fc, EGCB_LV }, + {0x00b3fd, 0x00b417, EGCB_LVT }, + {0x00b418, 0x00b418, EGCB_LV }, + {0x00b419, 0x00b433, EGCB_LVT }, + {0x00b434, 0x00b434, EGCB_LV }, + {0x00b435, 0x00b44f, EGCB_LVT }, + {0x00b450, 0x00b450, EGCB_LV }, + {0x00b451, 0x00b46b, EGCB_LVT }, + {0x00b46c, 0x00b46c, EGCB_LV }, + {0x00b46d, 0x00b487, EGCB_LVT }, + {0x00b488, 0x00b488, EGCB_LV }, + {0x00b489, 0x00b4a3, EGCB_LVT }, + {0x00b4a4, 0x00b4a4, EGCB_LV }, + {0x00b4a5, 0x00b4bf, EGCB_LVT }, + {0x00b4c0, 0x00b4c0, EGCB_LV }, + {0x00b4c1, 0x00b4db, EGCB_LVT }, + {0x00b4dc, 0x00b4dc, EGCB_LV }, + {0x00b4dd, 0x00b4f7, EGCB_LVT }, + {0x00b4f8, 0x00b4f8, EGCB_LV }, + {0x00b4f9, 0x00b513, EGCB_LVT }, + {0x00b514, 0x00b514, EGCB_LV }, + {0x00b515, 0x00b52f, EGCB_LVT }, + {0x00b530, 0x00b530, EGCB_LV }, + {0x00b531, 0x00b54b, EGCB_LVT }, + {0x00b54c, 0x00b54c, EGCB_LV }, + {0x00b54d, 0x00b567, EGCB_LVT }, + {0x00b568, 0x00b568, EGCB_LV }, + {0x00b569, 0x00b583, EGCB_LVT }, + {0x00b584, 0x00b584, EGCB_LV }, + {0x00b585, 0x00b59f, EGCB_LVT }, + {0x00b5a0, 0x00b5a0, EGCB_LV }, + {0x00b5a1, 0x00b5bb, EGCB_LVT }, + {0x00b5bc, 0x00b5bc, EGCB_LV }, + {0x00b5bd, 0x00b5d7, EGCB_LVT }, + {0x00b5d8, 0x00b5d8, EGCB_LV }, + {0x00b5d9, 0x00b5f3, EGCB_LVT }, + {0x00b5f4, 0x00b5f4, EGCB_LV }, + {0x00b5f5, 0x00b60f, EGCB_LVT }, + {0x00b610, 0x00b610, EGCB_LV }, + {0x00b611, 0x00b62b, EGCB_LVT }, + {0x00b62c, 0x00b62c, EGCB_LV }, + {0x00b62d, 0x00b647, EGCB_LVT }, + {0x00b648, 0x00b648, EGCB_LV }, + {0x00b649, 0x00b663, EGCB_LVT }, + {0x00b664, 0x00b664, EGCB_LV }, + {0x00b665, 0x00b67f, EGCB_LVT }, + {0x00b680, 0x00b680, EGCB_LV }, + {0x00b681, 0x00b69b, EGCB_LVT }, + {0x00b69c, 0x00b69c, EGCB_LV }, + {0x00b69d, 0x00b6b7, EGCB_LVT }, + {0x00b6b8, 0x00b6b8, EGCB_LV }, + {0x00b6b9, 0x00b6d3, EGCB_LVT }, + {0x00b6d4, 0x00b6d4, EGCB_LV }, + {0x00b6d5, 0x00b6ef, EGCB_LVT }, + {0x00b6f0, 0x00b6f0, EGCB_LV }, + {0x00b6f1, 0x00b70b, EGCB_LVT }, + {0x00b70c, 0x00b70c, EGCB_LV }, + {0x00b70d, 0x00b727, EGCB_LVT }, + {0x00b728, 0x00b728, EGCB_LV }, + {0x00b729, 0x00b743, EGCB_LVT }, + {0x00b744, 0x00b744, EGCB_LV }, + {0x00b745, 0x00b75f, EGCB_LVT }, + {0x00b760, 0x00b760, EGCB_LV }, + {0x00b761, 0x00b77b, EGCB_LVT }, + {0x00b77c, 0x00b77c, EGCB_LV }, + {0x00b77d, 0x00b797, EGCB_LVT }, + {0x00b798, 0x00b798, EGCB_LV }, + {0x00b799, 0x00b7b3, EGCB_LVT }, + {0x00b7b4, 0x00b7b4, EGCB_LV }, + {0x00b7b5, 0x00b7cf, EGCB_LVT }, + {0x00b7d0, 0x00b7d0, EGCB_LV }, + {0x00b7d1, 0x00b7eb, EGCB_LVT }, + {0x00b7ec, 0x00b7ec, EGCB_LV }, + {0x00b7ed, 0x00b807, EGCB_LVT }, + {0x00b808, 0x00b808, EGCB_LV }, + {0x00b809, 0x00b823, EGCB_LVT }, + {0x00b824, 0x00b824, EGCB_LV }, + {0x00b825, 0x00b83f, EGCB_LVT }, + {0x00b840, 0x00b840, EGCB_LV }, + {0x00b841, 0x00b85b, EGCB_LVT }, + {0x00b85c, 0x00b85c, EGCB_LV }, + {0x00b85d, 0x00b877, EGCB_LVT }, + {0x00b878, 0x00b878, EGCB_LV }, + {0x00b879, 0x00b893, EGCB_LVT }, + {0x00b894, 0x00b894, EGCB_LV }, + {0x00b895, 0x00b8af, EGCB_LVT }, + {0x00b8b0, 0x00b8b0, EGCB_LV }, + {0x00b8b1, 0x00b8cb, EGCB_LVT }, + {0x00b8cc, 0x00b8cc, EGCB_LV }, + {0x00b8cd, 0x00b8e7, EGCB_LVT }, + {0x00b8e8, 0x00b8e8, EGCB_LV }, + {0x00b8e9, 0x00b903, EGCB_LVT }, + {0x00b904, 0x00b904, EGCB_LV }, + {0x00b905, 0x00b91f, EGCB_LVT }, + {0x00b920, 0x00b920, EGCB_LV }, + {0x00b921, 0x00b93b, EGCB_LVT }, + {0x00b93c, 0x00b93c, EGCB_LV }, + {0x00b93d, 0x00b957, EGCB_LVT }, + {0x00b958, 0x00b958, EGCB_LV }, + {0x00b959, 0x00b973, EGCB_LVT }, + {0x00b974, 0x00b974, EGCB_LV }, + {0x00b975, 0x00b98f, EGCB_LVT }, + {0x00b990, 0x00b990, EGCB_LV }, + {0x00b991, 0x00b9ab, EGCB_LVT }, + {0x00b9ac, 0x00b9ac, EGCB_LV }, + {0x00b9ad, 0x00b9c7, EGCB_LVT }, + {0x00b9c8, 0x00b9c8, EGCB_LV }, + {0x00b9c9, 0x00b9e3, EGCB_LVT }, + {0x00b9e4, 0x00b9e4, EGCB_LV }, + {0x00b9e5, 0x00b9ff, EGCB_LVT }, + {0x00ba00, 0x00ba00, EGCB_LV }, + {0x00ba01, 0x00ba1b, EGCB_LVT }, + {0x00ba1c, 0x00ba1c, EGCB_LV }, + {0x00ba1d, 0x00ba37, EGCB_LVT }, + {0x00ba38, 0x00ba38, EGCB_LV }, + {0x00ba39, 0x00ba53, EGCB_LVT }, + {0x00ba54, 0x00ba54, EGCB_LV }, + {0x00ba55, 0x00ba6f, EGCB_LVT }, + {0x00ba70, 0x00ba70, EGCB_LV }, + {0x00ba71, 0x00ba8b, EGCB_LVT }, + {0x00ba8c, 0x00ba8c, EGCB_LV }, + {0x00ba8d, 0x00baa7, EGCB_LVT }, + {0x00baa8, 0x00baa8, EGCB_LV }, + {0x00baa9, 0x00bac3, EGCB_LVT }, + {0x00bac4, 0x00bac4, EGCB_LV }, + {0x00bac5, 0x00badf, EGCB_LVT }, + {0x00bae0, 0x00bae0, EGCB_LV }, + {0x00bae1, 0x00bafb, EGCB_LVT }, + {0x00bafc, 0x00bafc, EGCB_LV }, + {0x00bafd, 0x00bb17, EGCB_LVT }, + {0x00bb18, 0x00bb18, EGCB_LV }, + {0x00bb19, 0x00bb33, EGCB_LVT }, + {0x00bb34, 0x00bb34, EGCB_LV }, + {0x00bb35, 0x00bb4f, EGCB_LVT }, + {0x00bb50, 0x00bb50, EGCB_LV }, + {0x00bb51, 0x00bb6b, EGCB_LVT }, + {0x00bb6c, 0x00bb6c, EGCB_LV }, + {0x00bb6d, 0x00bb87, EGCB_LVT }, + {0x00bb88, 0x00bb88, EGCB_LV }, + {0x00bb89, 0x00bba3, EGCB_LVT }, + {0x00bba4, 0x00bba4, EGCB_LV }, + {0x00bba5, 0x00bbbf, EGCB_LVT }, + {0x00bbc0, 0x00bbc0, EGCB_LV }, + {0x00bbc1, 0x00bbdb, EGCB_LVT }, + {0x00bbdc, 0x00bbdc, EGCB_LV }, + {0x00bbdd, 0x00bbf7, EGCB_LVT }, + {0x00bbf8, 0x00bbf8, EGCB_LV }, + {0x00bbf9, 0x00bc13, EGCB_LVT }, + {0x00bc14, 0x00bc14, EGCB_LV }, + {0x00bc15, 0x00bc2f, EGCB_LVT }, + {0x00bc30, 0x00bc30, EGCB_LV }, + {0x00bc31, 0x00bc4b, EGCB_LVT }, + {0x00bc4c, 0x00bc4c, EGCB_LV }, + {0x00bc4d, 0x00bc67, EGCB_LVT }, + {0x00bc68, 0x00bc68, EGCB_LV }, + {0x00bc69, 0x00bc83, EGCB_LVT }, + {0x00bc84, 0x00bc84, EGCB_LV }, + {0x00bc85, 0x00bc9f, EGCB_LVT }, + {0x00bca0, 0x00bca0, EGCB_LV }, + {0x00bca1, 0x00bcbb, EGCB_LVT }, + {0x00bcbc, 0x00bcbc, EGCB_LV }, + {0x00bcbd, 0x00bcd7, EGCB_LVT }, + {0x00bcd8, 0x00bcd8, EGCB_LV }, + {0x00bcd9, 0x00bcf3, EGCB_LVT }, + {0x00bcf4, 0x00bcf4, EGCB_LV }, + {0x00bcf5, 0x00bd0f, EGCB_LVT }, + {0x00bd10, 0x00bd10, EGCB_LV }, + {0x00bd11, 0x00bd2b, EGCB_LVT }, + {0x00bd2c, 0x00bd2c, EGCB_LV }, + {0x00bd2d, 0x00bd47, EGCB_LVT }, + {0x00bd48, 0x00bd48, EGCB_LV }, + {0x00bd49, 0x00bd63, EGCB_LVT }, + {0x00bd64, 0x00bd64, EGCB_LV }, + {0x00bd65, 0x00bd7f, EGCB_LVT }, + {0x00bd80, 0x00bd80, EGCB_LV }, + {0x00bd81, 0x00bd9b, EGCB_LVT }, + {0x00bd9c, 0x00bd9c, EGCB_LV }, + {0x00bd9d, 0x00bdb7, EGCB_LVT }, + {0x00bdb8, 0x00bdb8, EGCB_LV }, + {0x00bdb9, 0x00bdd3, EGCB_LVT }, + {0x00bdd4, 0x00bdd4, EGCB_LV }, + {0x00bdd5, 0x00bdef, EGCB_LVT }, + {0x00bdf0, 0x00bdf0, EGCB_LV }, + {0x00bdf1, 0x00be0b, EGCB_LVT }, + {0x00be0c, 0x00be0c, EGCB_LV }, + {0x00be0d, 0x00be27, EGCB_LVT }, + {0x00be28, 0x00be28, EGCB_LV }, + {0x00be29, 0x00be43, EGCB_LVT }, + {0x00be44, 0x00be44, EGCB_LV }, + {0x00be45, 0x00be5f, EGCB_LVT }, + {0x00be60, 0x00be60, EGCB_LV }, + {0x00be61, 0x00be7b, EGCB_LVT }, + {0x00be7c, 0x00be7c, EGCB_LV }, + {0x00be7d, 0x00be97, EGCB_LVT }, + {0x00be98, 0x00be98, EGCB_LV }, + {0x00be99, 0x00beb3, EGCB_LVT }, + {0x00beb4, 0x00beb4, EGCB_LV }, + {0x00beb5, 0x00becf, EGCB_LVT }, + {0x00bed0, 0x00bed0, EGCB_LV }, + {0x00bed1, 0x00beeb, EGCB_LVT }, + {0x00beec, 0x00beec, EGCB_LV }, + {0x00beed, 0x00bf07, EGCB_LVT }, + {0x00bf08, 0x00bf08, EGCB_LV }, + {0x00bf09, 0x00bf23, EGCB_LVT }, + {0x00bf24, 0x00bf24, EGCB_LV }, + {0x00bf25, 0x00bf3f, EGCB_LVT }, + {0x00bf40, 0x00bf40, EGCB_LV }, + {0x00bf41, 0x00bf5b, EGCB_LVT }, + {0x00bf5c, 0x00bf5c, EGCB_LV }, + {0x00bf5d, 0x00bf77, EGCB_LVT }, + {0x00bf78, 0x00bf78, EGCB_LV }, + {0x00bf79, 0x00bf93, EGCB_LVT }, + {0x00bf94, 0x00bf94, EGCB_LV }, + {0x00bf95, 0x00bfaf, EGCB_LVT }, + {0x00bfb0, 0x00bfb0, EGCB_LV }, + {0x00bfb1, 0x00bfcb, EGCB_LVT }, + {0x00bfcc, 0x00bfcc, EGCB_LV }, + {0x00bfcd, 0x00bfe7, EGCB_LVT }, + {0x00bfe8, 0x00bfe8, EGCB_LV }, + {0x00bfe9, 0x00c003, EGCB_LVT }, + {0x00c004, 0x00c004, EGCB_LV }, + {0x00c005, 0x00c01f, EGCB_LVT }, + {0x00c020, 0x00c020, EGCB_LV }, + {0x00c021, 0x00c03b, EGCB_LVT }, + {0x00c03c, 0x00c03c, EGCB_LV }, + {0x00c03d, 0x00c057, EGCB_LVT }, + {0x00c058, 0x00c058, EGCB_LV }, + {0x00c059, 0x00c073, EGCB_LVT }, + {0x00c074, 0x00c074, EGCB_LV }, + {0x00c075, 0x00c08f, EGCB_LVT }, + {0x00c090, 0x00c090, EGCB_LV }, + {0x00c091, 0x00c0ab, EGCB_LVT }, + {0x00c0ac, 0x00c0ac, EGCB_LV }, + {0x00c0ad, 0x00c0c7, EGCB_LVT }, + {0x00c0c8, 0x00c0c8, EGCB_LV }, + {0x00c0c9, 0x00c0e3, EGCB_LVT }, + {0x00c0e4, 0x00c0e4, EGCB_LV }, + {0x00c0e5, 0x00c0ff, EGCB_LVT }, + {0x00c100, 0x00c100, EGCB_LV }, + {0x00c101, 0x00c11b, EGCB_LVT }, + {0x00c11c, 0x00c11c, EGCB_LV }, + {0x00c11d, 0x00c137, EGCB_LVT }, + {0x00c138, 0x00c138, EGCB_LV }, + {0x00c139, 0x00c153, EGCB_LVT }, + {0x00c154, 0x00c154, EGCB_LV }, + {0x00c155, 0x00c16f, EGCB_LVT }, + {0x00c170, 0x00c170, EGCB_LV }, + {0x00c171, 0x00c18b, EGCB_LVT }, + {0x00c18c, 0x00c18c, EGCB_LV }, + {0x00c18d, 0x00c1a7, EGCB_LVT }, + {0x00c1a8, 0x00c1a8, EGCB_LV }, + {0x00c1a9, 0x00c1c3, EGCB_LVT }, + {0x00c1c4, 0x00c1c4, EGCB_LV }, + {0x00c1c5, 0x00c1df, EGCB_LVT }, + {0x00c1e0, 0x00c1e0, EGCB_LV }, + {0x00c1e1, 0x00c1fb, EGCB_LVT }, + {0x00c1fc, 0x00c1fc, EGCB_LV }, + {0x00c1fd, 0x00c217, EGCB_LVT }, + {0x00c218, 0x00c218, EGCB_LV }, + {0x00c219, 0x00c233, EGCB_LVT }, + {0x00c234, 0x00c234, EGCB_LV }, + {0x00c235, 0x00c24f, EGCB_LVT }, + {0x00c250, 0x00c250, EGCB_LV }, + {0x00c251, 0x00c26b, EGCB_LVT }, + {0x00c26c, 0x00c26c, EGCB_LV }, + {0x00c26d, 0x00c287, EGCB_LVT }, + {0x00c288, 0x00c288, EGCB_LV }, + {0x00c289, 0x00c2a3, EGCB_LVT }, + {0x00c2a4, 0x00c2a4, EGCB_LV }, + {0x00c2a5, 0x00c2bf, EGCB_LVT }, + {0x00c2c0, 0x00c2c0, EGCB_LV }, + {0x00c2c1, 0x00c2db, EGCB_LVT }, + {0x00c2dc, 0x00c2dc, EGCB_LV }, + {0x00c2dd, 0x00c2f7, EGCB_LVT }, + {0x00c2f8, 0x00c2f8, EGCB_LV }, + {0x00c2f9, 0x00c313, EGCB_LVT }, + {0x00c314, 0x00c314, EGCB_LV }, + {0x00c315, 0x00c32f, EGCB_LVT }, + {0x00c330, 0x00c330, EGCB_LV }, + {0x00c331, 0x00c34b, EGCB_LVT }, + {0x00c34c, 0x00c34c, EGCB_LV }, + {0x00c34d, 0x00c367, EGCB_LVT }, + {0x00c368, 0x00c368, EGCB_LV }, + {0x00c369, 0x00c383, EGCB_LVT }, + {0x00c384, 0x00c384, EGCB_LV }, + {0x00c385, 0x00c39f, EGCB_LVT }, + {0x00c3a0, 0x00c3a0, EGCB_LV }, + {0x00c3a1, 0x00c3bb, EGCB_LVT }, + {0x00c3bc, 0x00c3bc, EGCB_LV }, + {0x00c3bd, 0x00c3d7, EGCB_LVT }, + {0x00c3d8, 0x00c3d8, EGCB_LV }, + {0x00c3d9, 0x00c3f3, EGCB_LVT }, + {0x00c3f4, 0x00c3f4, EGCB_LV }, + {0x00c3f5, 0x00c40f, EGCB_LVT }, + {0x00c410, 0x00c410, EGCB_LV }, + {0x00c411, 0x00c42b, EGCB_LVT }, + {0x00c42c, 0x00c42c, EGCB_LV }, + {0x00c42d, 0x00c447, EGCB_LVT }, + {0x00c448, 0x00c448, EGCB_LV }, + {0x00c449, 0x00c463, EGCB_LVT }, + {0x00c464, 0x00c464, EGCB_LV }, + {0x00c465, 0x00c47f, EGCB_LVT }, + {0x00c480, 0x00c480, EGCB_LV }, + {0x00c481, 0x00c49b, EGCB_LVT }, + {0x00c49c, 0x00c49c, EGCB_LV }, + {0x00c49d, 0x00c4b7, EGCB_LVT }, + {0x00c4b8, 0x00c4b8, EGCB_LV }, + {0x00c4b9, 0x00c4d3, EGCB_LVT }, + {0x00c4d4, 0x00c4d4, EGCB_LV }, + {0x00c4d5, 0x00c4ef, EGCB_LVT }, + {0x00c4f0, 0x00c4f0, EGCB_LV }, + {0x00c4f1, 0x00c50b, EGCB_LVT }, + {0x00c50c, 0x00c50c, EGCB_LV }, + {0x00c50d, 0x00c527, EGCB_LVT }, + {0x00c528, 0x00c528, EGCB_LV }, + {0x00c529, 0x00c543, EGCB_LVT }, + {0x00c544, 0x00c544, EGCB_LV }, + {0x00c545, 0x00c55f, EGCB_LVT }, + {0x00c560, 0x00c560, EGCB_LV }, + {0x00c561, 0x00c57b, EGCB_LVT }, + {0x00c57c, 0x00c57c, EGCB_LV }, + {0x00c57d, 0x00c597, EGCB_LVT }, + {0x00c598, 0x00c598, EGCB_LV }, + {0x00c599, 0x00c5b3, EGCB_LVT }, + {0x00c5b4, 0x00c5b4, EGCB_LV }, + {0x00c5b5, 0x00c5cf, EGCB_LVT }, + {0x00c5d0, 0x00c5d0, EGCB_LV }, + {0x00c5d1, 0x00c5eb, EGCB_LVT }, + {0x00c5ec, 0x00c5ec, EGCB_LV }, + {0x00c5ed, 0x00c607, EGCB_LVT }, + {0x00c608, 0x00c608, EGCB_LV }, + {0x00c609, 0x00c623, EGCB_LVT }, + {0x00c624, 0x00c624, EGCB_LV }, + {0x00c625, 0x00c63f, EGCB_LVT }, + {0x00c640, 0x00c640, EGCB_LV }, + {0x00c641, 0x00c65b, EGCB_LVT }, + {0x00c65c, 0x00c65c, EGCB_LV }, + {0x00c65d, 0x00c677, EGCB_LVT }, + {0x00c678, 0x00c678, EGCB_LV }, + {0x00c679, 0x00c693, EGCB_LVT }, + {0x00c694, 0x00c694, EGCB_LV }, + {0x00c695, 0x00c6af, EGCB_LVT }, + {0x00c6b0, 0x00c6b0, EGCB_LV }, + {0x00c6b1, 0x00c6cb, EGCB_LVT }, + {0x00c6cc, 0x00c6cc, EGCB_LV }, + {0x00c6cd, 0x00c6e7, EGCB_LVT }, + {0x00c6e8, 0x00c6e8, EGCB_LV }, + {0x00c6e9, 0x00c703, EGCB_LVT }, + {0x00c704, 0x00c704, EGCB_LV }, + {0x00c705, 0x00c71f, EGCB_LVT }, + {0x00c720, 0x00c720, EGCB_LV }, + {0x00c721, 0x00c73b, EGCB_LVT }, + {0x00c73c, 0x00c73c, EGCB_LV }, + {0x00c73d, 0x00c757, EGCB_LVT }, + {0x00c758, 0x00c758, EGCB_LV }, + {0x00c759, 0x00c773, EGCB_LVT }, + {0x00c774, 0x00c774, EGCB_LV }, + {0x00c775, 0x00c78f, EGCB_LVT }, + {0x00c790, 0x00c790, EGCB_LV }, + {0x00c791, 0x00c7ab, EGCB_LVT }, + {0x00c7ac, 0x00c7ac, EGCB_LV }, + {0x00c7ad, 0x00c7c7, EGCB_LVT }, + {0x00c7c8, 0x00c7c8, EGCB_LV }, + {0x00c7c9, 0x00c7e3, EGCB_LVT }, + {0x00c7e4, 0x00c7e4, EGCB_LV }, + {0x00c7e5, 0x00c7ff, EGCB_LVT }, + {0x00c800, 0x00c800, EGCB_LV }, + {0x00c801, 0x00c81b, EGCB_LVT }, + {0x00c81c, 0x00c81c, EGCB_LV }, + {0x00c81d, 0x00c837, EGCB_LVT }, + {0x00c838, 0x00c838, EGCB_LV }, + {0x00c839, 0x00c853, EGCB_LVT }, + {0x00c854, 0x00c854, EGCB_LV }, + {0x00c855, 0x00c86f, EGCB_LVT }, + {0x00c870, 0x00c870, EGCB_LV }, + {0x00c871, 0x00c88b, EGCB_LVT }, + {0x00c88c, 0x00c88c, EGCB_LV }, + {0x00c88d, 0x00c8a7, EGCB_LVT }, + {0x00c8a8, 0x00c8a8, EGCB_LV }, + {0x00c8a9, 0x00c8c3, EGCB_LVT }, + {0x00c8c4, 0x00c8c4, EGCB_LV }, + {0x00c8c5, 0x00c8df, EGCB_LVT }, + {0x00c8e0, 0x00c8e0, EGCB_LV }, + {0x00c8e1, 0x00c8fb, EGCB_LVT }, + {0x00c8fc, 0x00c8fc, EGCB_LV }, + {0x00c8fd, 0x00c917, EGCB_LVT }, + {0x00c918, 0x00c918, EGCB_LV }, + {0x00c919, 0x00c933, EGCB_LVT }, + {0x00c934, 0x00c934, EGCB_LV }, + {0x00c935, 0x00c94f, EGCB_LVT }, + {0x00c950, 0x00c950, EGCB_LV }, + {0x00c951, 0x00c96b, EGCB_LVT }, + {0x00c96c, 0x00c96c, EGCB_LV }, + {0x00c96d, 0x00c987, EGCB_LVT }, + {0x00c988, 0x00c988, EGCB_LV }, + {0x00c989, 0x00c9a3, EGCB_LVT }, + {0x00c9a4, 0x00c9a4, EGCB_LV }, + {0x00c9a5, 0x00c9bf, EGCB_LVT }, + {0x00c9c0, 0x00c9c0, EGCB_LV }, + {0x00c9c1, 0x00c9db, EGCB_LVT }, + {0x00c9dc, 0x00c9dc, EGCB_LV }, + {0x00c9dd, 0x00c9f7, EGCB_LVT }, + {0x00c9f8, 0x00c9f8, EGCB_LV }, + {0x00c9f9, 0x00ca13, EGCB_LVT }, + {0x00ca14, 0x00ca14, EGCB_LV }, + {0x00ca15, 0x00ca2f, EGCB_LVT }, + {0x00ca30, 0x00ca30, EGCB_LV }, + {0x00ca31, 0x00ca4b, EGCB_LVT }, + {0x00ca4c, 0x00ca4c, EGCB_LV }, + {0x00ca4d, 0x00ca67, EGCB_LVT }, + {0x00ca68, 0x00ca68, EGCB_LV }, + {0x00ca69, 0x00ca83, EGCB_LVT }, + {0x00ca84, 0x00ca84, EGCB_LV }, + {0x00ca85, 0x00ca9f, EGCB_LVT }, + {0x00caa0, 0x00caa0, EGCB_LV }, + {0x00caa1, 0x00cabb, EGCB_LVT }, + {0x00cabc, 0x00cabc, EGCB_LV }, + {0x00cabd, 0x00cad7, EGCB_LVT }, + {0x00cad8, 0x00cad8, EGCB_LV }, + {0x00cad9, 0x00caf3, EGCB_LVT }, + {0x00caf4, 0x00caf4, EGCB_LV }, + {0x00caf5, 0x00cb0f, EGCB_LVT }, + {0x00cb10, 0x00cb10, EGCB_LV }, + {0x00cb11, 0x00cb2b, EGCB_LVT }, + {0x00cb2c, 0x00cb2c, EGCB_LV }, + {0x00cb2d, 0x00cb47, EGCB_LVT }, + {0x00cb48, 0x00cb48, EGCB_LV }, + {0x00cb49, 0x00cb63, EGCB_LVT }, + {0x00cb64, 0x00cb64, EGCB_LV }, + {0x00cb65, 0x00cb7f, EGCB_LVT }, + {0x00cb80, 0x00cb80, EGCB_LV }, + {0x00cb81, 0x00cb9b, EGCB_LVT }, + {0x00cb9c, 0x00cb9c, EGCB_LV }, + {0x00cb9d, 0x00cbb7, EGCB_LVT }, + {0x00cbb8, 0x00cbb8, EGCB_LV }, + {0x00cbb9, 0x00cbd3, EGCB_LVT }, + {0x00cbd4, 0x00cbd4, EGCB_LV }, + {0x00cbd5, 0x00cbef, EGCB_LVT }, + {0x00cbf0, 0x00cbf0, EGCB_LV }, + {0x00cbf1, 0x00cc0b, EGCB_LVT }, + {0x00cc0c, 0x00cc0c, EGCB_LV }, + {0x00cc0d, 0x00cc27, EGCB_LVT }, + {0x00cc28, 0x00cc28, EGCB_LV }, + {0x00cc29, 0x00cc43, EGCB_LVT }, + {0x00cc44, 0x00cc44, EGCB_LV }, + {0x00cc45, 0x00cc5f, EGCB_LVT }, + {0x00cc60, 0x00cc60, EGCB_LV }, + {0x00cc61, 0x00cc7b, EGCB_LVT }, + {0x00cc7c, 0x00cc7c, EGCB_LV }, + {0x00cc7d, 0x00cc97, EGCB_LVT }, + {0x00cc98, 0x00cc98, EGCB_LV }, + {0x00cc99, 0x00ccb3, EGCB_LVT }, + {0x00ccb4, 0x00ccb4, EGCB_LV }, + {0x00ccb5, 0x00cccf, EGCB_LVT }, + {0x00ccd0, 0x00ccd0, EGCB_LV }, + {0x00ccd1, 0x00cceb, EGCB_LVT }, + {0x00ccec, 0x00ccec, EGCB_LV }, + {0x00cced, 0x00cd07, EGCB_LVT }, + {0x00cd08, 0x00cd08, EGCB_LV }, + {0x00cd09, 0x00cd23, EGCB_LVT }, + {0x00cd24, 0x00cd24, EGCB_LV }, + {0x00cd25, 0x00cd3f, EGCB_LVT }, + {0x00cd40, 0x00cd40, EGCB_LV }, + {0x00cd41, 0x00cd5b, EGCB_LVT }, + {0x00cd5c, 0x00cd5c, EGCB_LV }, + {0x00cd5d, 0x00cd77, EGCB_LVT }, + {0x00cd78, 0x00cd78, EGCB_LV }, + {0x00cd79, 0x00cd93, EGCB_LVT }, + {0x00cd94, 0x00cd94, EGCB_LV }, + {0x00cd95, 0x00cdaf, EGCB_LVT }, + {0x00cdb0, 0x00cdb0, EGCB_LV }, + {0x00cdb1, 0x00cdcb, EGCB_LVT }, + {0x00cdcc, 0x00cdcc, EGCB_LV }, + {0x00cdcd, 0x00cde7, EGCB_LVT }, + {0x00cde8, 0x00cde8, EGCB_LV }, + {0x00cde9, 0x00ce03, EGCB_LVT }, + {0x00ce04, 0x00ce04, EGCB_LV }, + {0x00ce05, 0x00ce1f, EGCB_LVT }, + {0x00ce20, 0x00ce20, EGCB_LV }, + {0x00ce21, 0x00ce3b, EGCB_LVT }, + {0x00ce3c, 0x00ce3c, EGCB_LV }, + {0x00ce3d, 0x00ce57, EGCB_LVT }, + {0x00ce58, 0x00ce58, EGCB_LV }, + {0x00ce59, 0x00ce73, EGCB_LVT }, + {0x00ce74, 0x00ce74, EGCB_LV }, + {0x00ce75, 0x00ce8f, EGCB_LVT }, + {0x00ce90, 0x00ce90, EGCB_LV }, + {0x00ce91, 0x00ceab, EGCB_LVT }, + {0x00ceac, 0x00ceac, EGCB_LV }, + {0x00cead, 0x00cec7, EGCB_LVT }, + {0x00cec8, 0x00cec8, EGCB_LV }, + {0x00cec9, 0x00cee3, EGCB_LVT }, + {0x00cee4, 0x00cee4, EGCB_LV }, + {0x00cee5, 0x00ceff, EGCB_LVT }, + {0x00cf00, 0x00cf00, EGCB_LV }, + {0x00cf01, 0x00cf1b, EGCB_LVT }, + {0x00cf1c, 0x00cf1c, EGCB_LV }, + {0x00cf1d, 0x00cf37, EGCB_LVT }, + {0x00cf38, 0x00cf38, EGCB_LV }, + {0x00cf39, 0x00cf53, EGCB_LVT }, + {0x00cf54, 0x00cf54, EGCB_LV }, + {0x00cf55, 0x00cf6f, EGCB_LVT }, + {0x00cf70, 0x00cf70, EGCB_LV }, + {0x00cf71, 0x00cf8b, EGCB_LVT }, + {0x00cf8c, 0x00cf8c, EGCB_LV }, + {0x00cf8d, 0x00cfa7, EGCB_LVT }, + {0x00cfa8, 0x00cfa8, EGCB_LV }, + {0x00cfa9, 0x00cfc3, EGCB_LVT }, + {0x00cfc4, 0x00cfc4, EGCB_LV }, + {0x00cfc5, 0x00cfdf, EGCB_LVT }, + {0x00cfe0, 0x00cfe0, EGCB_LV }, + {0x00cfe1, 0x00cffb, EGCB_LVT }, + {0x00cffc, 0x00cffc, EGCB_LV }, + {0x00cffd, 0x00d017, EGCB_LVT }, + {0x00d018, 0x00d018, EGCB_LV }, + {0x00d019, 0x00d033, EGCB_LVT }, + {0x00d034, 0x00d034, EGCB_LV }, + {0x00d035, 0x00d04f, EGCB_LVT }, + {0x00d050, 0x00d050, EGCB_LV }, + {0x00d051, 0x00d06b, EGCB_LVT }, + {0x00d06c, 0x00d06c, EGCB_LV }, + {0x00d06d, 0x00d087, EGCB_LVT }, + {0x00d088, 0x00d088, EGCB_LV }, + {0x00d089, 0x00d0a3, EGCB_LVT }, + {0x00d0a4, 0x00d0a4, EGCB_LV }, + {0x00d0a5, 0x00d0bf, EGCB_LVT }, + {0x00d0c0, 0x00d0c0, EGCB_LV }, + {0x00d0c1, 0x00d0db, EGCB_LVT }, + {0x00d0dc, 0x00d0dc, EGCB_LV }, + {0x00d0dd, 0x00d0f7, EGCB_LVT }, + {0x00d0f8, 0x00d0f8, EGCB_LV }, + {0x00d0f9, 0x00d113, EGCB_LVT }, + {0x00d114, 0x00d114, EGCB_LV }, + {0x00d115, 0x00d12f, EGCB_LVT }, + {0x00d130, 0x00d130, EGCB_LV }, + {0x00d131, 0x00d14b, EGCB_LVT }, + {0x00d14c, 0x00d14c, EGCB_LV }, + {0x00d14d, 0x00d167, EGCB_LVT }, + {0x00d168, 0x00d168, EGCB_LV }, + {0x00d169, 0x00d183, EGCB_LVT }, + {0x00d184, 0x00d184, EGCB_LV }, + {0x00d185, 0x00d19f, EGCB_LVT }, + {0x00d1a0, 0x00d1a0, EGCB_LV }, + {0x00d1a1, 0x00d1bb, EGCB_LVT }, + {0x00d1bc, 0x00d1bc, EGCB_LV }, + {0x00d1bd, 0x00d1d7, EGCB_LVT }, + {0x00d1d8, 0x00d1d8, EGCB_LV }, + {0x00d1d9, 0x00d1f3, EGCB_LVT }, + {0x00d1f4, 0x00d1f4, EGCB_LV }, + {0x00d1f5, 0x00d20f, EGCB_LVT }, + {0x00d210, 0x00d210, EGCB_LV }, + {0x00d211, 0x00d22b, EGCB_LVT }, + {0x00d22c, 0x00d22c, EGCB_LV }, + {0x00d22d, 0x00d247, EGCB_LVT }, + {0x00d248, 0x00d248, EGCB_LV }, + {0x00d249, 0x00d263, EGCB_LVT }, + {0x00d264, 0x00d264, EGCB_LV }, + {0x00d265, 0x00d27f, EGCB_LVT }, + {0x00d280, 0x00d280, EGCB_LV }, + {0x00d281, 0x00d29b, EGCB_LVT }, + {0x00d29c, 0x00d29c, EGCB_LV }, + {0x00d29d, 0x00d2b7, EGCB_LVT }, + {0x00d2b8, 0x00d2b8, EGCB_LV }, + {0x00d2b9, 0x00d2d3, EGCB_LVT }, + {0x00d2d4, 0x00d2d4, EGCB_LV }, + {0x00d2d5, 0x00d2ef, EGCB_LVT }, + {0x00d2f0, 0x00d2f0, EGCB_LV }, + {0x00d2f1, 0x00d30b, EGCB_LVT }, + {0x00d30c, 0x00d30c, EGCB_LV }, + {0x00d30d, 0x00d327, EGCB_LVT }, + {0x00d328, 0x00d328, EGCB_LV }, + {0x00d329, 0x00d343, EGCB_LVT }, + {0x00d344, 0x00d344, EGCB_LV }, + {0x00d345, 0x00d35f, EGCB_LVT }, + {0x00d360, 0x00d360, EGCB_LV }, + {0x00d361, 0x00d37b, EGCB_LVT }, + {0x00d37c, 0x00d37c, EGCB_LV }, + {0x00d37d, 0x00d397, EGCB_LVT }, + {0x00d398, 0x00d398, EGCB_LV }, + {0x00d399, 0x00d3b3, EGCB_LVT }, + {0x00d3b4, 0x00d3b4, EGCB_LV }, + {0x00d3b5, 0x00d3cf, EGCB_LVT }, + {0x00d3d0, 0x00d3d0, EGCB_LV }, + {0x00d3d1, 0x00d3eb, EGCB_LVT }, + {0x00d3ec, 0x00d3ec, EGCB_LV }, + {0x00d3ed, 0x00d407, EGCB_LVT }, + {0x00d408, 0x00d408, EGCB_LV }, + {0x00d409, 0x00d423, EGCB_LVT }, + {0x00d424, 0x00d424, EGCB_LV }, + {0x00d425, 0x00d43f, EGCB_LVT }, + {0x00d440, 0x00d440, EGCB_LV }, + {0x00d441, 0x00d45b, EGCB_LVT }, + {0x00d45c, 0x00d45c, EGCB_LV }, + {0x00d45d, 0x00d477, EGCB_LVT }, + {0x00d478, 0x00d478, EGCB_LV }, + {0x00d479, 0x00d493, EGCB_LVT }, + {0x00d494, 0x00d494, EGCB_LV }, + {0x00d495, 0x00d4af, EGCB_LVT }, + {0x00d4b0, 0x00d4b0, EGCB_LV }, + {0x00d4b1, 0x00d4cb, EGCB_LVT }, + {0x00d4cc, 0x00d4cc, EGCB_LV }, + {0x00d4cd, 0x00d4e7, EGCB_LVT }, + {0x00d4e8, 0x00d4e8, EGCB_LV }, + {0x00d4e9, 0x00d503, EGCB_LVT }, + {0x00d504, 0x00d504, EGCB_LV }, + {0x00d505, 0x00d51f, EGCB_LVT }, + {0x00d520, 0x00d520, EGCB_LV }, + {0x00d521, 0x00d53b, EGCB_LVT }, + {0x00d53c, 0x00d53c, EGCB_LV }, + {0x00d53d, 0x00d557, EGCB_LVT }, + {0x00d558, 0x00d558, EGCB_LV }, + {0x00d559, 0x00d573, EGCB_LVT }, + {0x00d574, 0x00d574, EGCB_LV }, + {0x00d575, 0x00d58f, EGCB_LVT }, + {0x00d590, 0x00d590, EGCB_LV }, + {0x00d591, 0x00d5ab, EGCB_LVT }, + {0x00d5ac, 0x00d5ac, EGCB_LV }, + {0x00d5ad, 0x00d5c7, EGCB_LVT }, + {0x00d5c8, 0x00d5c8, EGCB_LV }, + {0x00d5c9, 0x00d5e3, EGCB_LVT }, + {0x00d5e4, 0x00d5e4, EGCB_LV }, + {0x00d5e5, 0x00d5ff, EGCB_LVT }, + {0x00d600, 0x00d600, EGCB_LV }, + {0x00d601, 0x00d61b, EGCB_LVT }, + {0x00d61c, 0x00d61c, EGCB_LV }, + {0x00d61d, 0x00d637, EGCB_LVT }, + {0x00d638, 0x00d638, EGCB_LV }, + {0x00d639, 0x00d653, EGCB_LVT }, + {0x00d654, 0x00d654, EGCB_LV }, + {0x00d655, 0x00d66f, EGCB_LVT }, + {0x00d670, 0x00d670, EGCB_LV }, + {0x00d671, 0x00d68b, EGCB_LVT }, + {0x00d68c, 0x00d68c, EGCB_LV }, + {0x00d68d, 0x00d6a7, EGCB_LVT }, + {0x00d6a8, 0x00d6a8, EGCB_LV }, + {0x00d6a9, 0x00d6c3, EGCB_LVT }, + {0x00d6c4, 0x00d6c4, EGCB_LV }, + {0x00d6c5, 0x00d6df, EGCB_LVT }, + {0x00d6e0, 0x00d6e0, EGCB_LV }, + {0x00d6e1, 0x00d6fb, EGCB_LVT }, + {0x00d6fc, 0x00d6fc, EGCB_LV }, + {0x00d6fd, 0x00d717, EGCB_LVT }, + {0x00d718, 0x00d718, EGCB_LV }, + {0x00d719, 0x00d733, EGCB_LVT }, + {0x00d734, 0x00d734, EGCB_LV }, + {0x00d735, 0x00d74f, EGCB_LVT }, + {0x00d750, 0x00d750, EGCB_LV }, + {0x00d751, 0x00d76b, EGCB_LVT }, + {0x00d76c, 0x00d76c, EGCB_LV }, + {0x00d76d, 0x00d787, EGCB_LVT }, + {0x00d788, 0x00d788, EGCB_LV }, + {0x00d789, 0x00d7a3, EGCB_LVT }, + {0x00d7b0, 0x00d7c6, EGCB_V }, + {0x00d7cb, 0x00d7fb, EGCB_T }, + {0x00fb1e, 0x00fb1e, EGCB_Extend }, + {0x00fe00, 0x00fe0f, EGCB_Extend }, + {0x00fe20, 0x00fe2f, EGCB_Extend }, + {0x00feff, 0x00feff, EGCB_Control }, + {0x00ff9e, 0x00ff9f, EGCB_Extend }, + {0x00fff0, 0x00fffb, EGCB_Control }, + {0x0101fd, 0x0101fd, EGCB_Extend }, + {0x0102e0, 0x0102e0, EGCB_Extend }, + {0x010376, 0x01037a, EGCB_Extend }, + {0x010a01, 0x010a03, EGCB_Extend }, + {0x010a05, 0x010a06, EGCB_Extend }, + {0x010a0c, 0x010a0f, EGCB_Extend }, + {0x010a38, 0x010a3a, EGCB_Extend }, + {0x010a3f, 0x010a3f, EGCB_Extend }, + {0x010ae5, 0x010ae6, EGCB_Extend }, + {0x010d24, 0x010d27, EGCB_Extend }, + {0x010d69, 0x010d6d, EGCB_Extend }, + {0x010eab, 0x010eac, EGCB_Extend }, + {0x010efc, 0x010eff, EGCB_Extend }, + {0x010f46, 0x010f50, EGCB_Extend }, + {0x010f82, 0x010f85, EGCB_Extend }, + {0x011000, 0x011000, EGCB_SpacingMark }, + {0x011001, 0x011001, EGCB_Extend }, + {0x011002, 0x011002, EGCB_SpacingMark }, + {0x011038, 0x011046, EGCB_Extend }, + {0x011070, 0x011070, EGCB_Extend }, + {0x011073, 0x011074, EGCB_Extend }, + {0x01107f, 0x011081, EGCB_Extend }, + {0x011082, 0x011082, EGCB_SpacingMark }, + {0x0110b0, 0x0110b2, EGCB_SpacingMark }, + {0x0110b3, 0x0110b6, EGCB_Extend }, + {0x0110b7, 0x0110b8, EGCB_SpacingMark }, + {0x0110b9, 0x0110ba, EGCB_Extend }, + {0x0110bd, 0x0110bd, EGCB_Prepend }, + {0x0110c2, 0x0110c2, EGCB_Extend }, + {0x0110cd, 0x0110cd, EGCB_Prepend }, + {0x011100, 0x011102, EGCB_Extend }, + {0x011127, 0x01112b, EGCB_Extend }, + {0x01112c, 0x01112c, EGCB_SpacingMark }, + {0x01112d, 0x011134, EGCB_Extend }, + {0x011145, 0x011146, EGCB_SpacingMark }, + {0x011173, 0x011173, EGCB_Extend }, + {0x011180, 0x011181, EGCB_Extend }, + {0x011182, 0x011182, EGCB_SpacingMark }, + {0x0111b3, 0x0111b5, EGCB_SpacingMark }, + {0x0111b6, 0x0111be, EGCB_Extend }, + {0x0111bf, 0x0111bf, EGCB_SpacingMark }, + {0x0111c0, 0x0111c0, EGCB_Extend }, + {0x0111c2, 0x0111c3, EGCB_Prepend }, + {0x0111c9, 0x0111cc, EGCB_Extend }, + {0x0111ce, 0x0111ce, EGCB_SpacingMark }, + {0x0111cf, 0x0111cf, EGCB_Extend }, + {0x01122c, 0x01122e, EGCB_SpacingMark }, + {0x01122f, 0x011231, EGCB_Extend }, + {0x011232, 0x011233, EGCB_SpacingMark }, + {0x011234, 0x011237, EGCB_Extend }, + {0x01123e, 0x01123e, EGCB_Extend }, + {0x011241, 0x011241, EGCB_Extend }, + {0x0112df, 0x0112df, EGCB_Extend }, + {0x0112e0, 0x0112e2, EGCB_SpacingMark }, + {0x0112e3, 0x0112ea, EGCB_Extend }, + {0x011300, 0x011301, EGCB_Extend }, + {0x011302, 0x011303, EGCB_SpacingMark }, + {0x01133b, 0x01133c, EGCB_Extend }, + {0x01133e, 0x01133e, EGCB_Extend }, + {0x01133f, 0x01133f, EGCB_SpacingMark }, + {0x011340, 0x011340, EGCB_Extend }, + {0x011341, 0x011344, EGCB_SpacingMark }, + {0x011347, 0x011348, EGCB_SpacingMark }, + {0x01134b, 0x01134c, EGCB_SpacingMark }, + {0x01134d, 0x01134d, EGCB_Extend }, + {0x011357, 0x011357, EGCB_Extend }, + {0x011362, 0x011363, EGCB_SpacingMark }, + {0x011366, 0x01136c, EGCB_Extend }, + {0x011370, 0x011374, EGCB_Extend }, + {0x0113b8, 0x0113b8, EGCB_Extend }, + {0x0113b9, 0x0113ba, EGCB_SpacingMark }, + {0x0113bb, 0x0113c0, EGCB_Extend }, + {0x0113c2, 0x0113c2, EGCB_Extend }, + {0x0113c5, 0x0113c5, EGCB_Extend }, + {0x0113c7, 0x0113c9, EGCB_Extend }, + {0x0113ca, 0x0113ca, EGCB_SpacingMark }, + {0x0113cc, 0x0113cd, EGCB_SpacingMark }, + {0x0113ce, 0x0113d0, EGCB_Extend }, + {0x0113d1, 0x0113d1, EGCB_Prepend }, + {0x0113d2, 0x0113d2, EGCB_Extend }, + {0x0113e1, 0x0113e2, EGCB_Extend }, + {0x011435, 0x011437, EGCB_SpacingMark }, + {0x011438, 0x01143f, EGCB_Extend }, + {0x011440, 0x011441, EGCB_SpacingMark }, + {0x011442, 0x011444, EGCB_Extend }, + {0x011445, 0x011445, EGCB_SpacingMark }, + {0x011446, 0x011446, EGCB_Extend }, + {0x01145e, 0x01145e, EGCB_Extend }, + {0x0114b0, 0x0114b0, EGCB_Extend }, + {0x0114b1, 0x0114b2, EGCB_SpacingMark }, + {0x0114b3, 0x0114b8, EGCB_Extend }, + {0x0114b9, 0x0114b9, EGCB_SpacingMark }, + {0x0114ba, 0x0114ba, EGCB_Extend }, + {0x0114bb, 0x0114bc, EGCB_SpacingMark }, + {0x0114bd, 0x0114bd, EGCB_Extend }, + {0x0114be, 0x0114be, EGCB_SpacingMark }, + {0x0114bf, 0x0114c0, EGCB_Extend }, + {0x0114c1, 0x0114c1, EGCB_SpacingMark }, + {0x0114c2, 0x0114c3, EGCB_Extend }, + {0x0115af, 0x0115af, EGCB_Extend }, + {0x0115b0, 0x0115b1, EGCB_SpacingMark }, + {0x0115b2, 0x0115b5, EGCB_Extend }, + {0x0115b8, 0x0115bb, EGCB_SpacingMark }, + {0x0115bc, 0x0115bd, EGCB_Extend }, + {0x0115be, 0x0115be, EGCB_SpacingMark }, + {0x0115bf, 0x0115c0, EGCB_Extend }, + {0x0115dc, 0x0115dd, EGCB_Extend }, + {0x011630, 0x011632, EGCB_SpacingMark }, + {0x011633, 0x01163a, EGCB_Extend }, + {0x01163b, 0x01163c, EGCB_SpacingMark }, + {0x01163d, 0x01163d, EGCB_Extend }, + {0x01163e, 0x01163e, EGCB_SpacingMark }, + {0x01163f, 0x011640, EGCB_Extend }, + {0x0116ab, 0x0116ab, EGCB_Extend }, + {0x0116ac, 0x0116ac, EGCB_SpacingMark }, + {0x0116ad, 0x0116ad, EGCB_Extend }, + {0x0116ae, 0x0116af, EGCB_SpacingMark }, + {0x0116b0, 0x0116b7, EGCB_Extend }, + {0x01171d, 0x01171d, EGCB_Extend }, + {0x01171e, 0x01171e, EGCB_SpacingMark }, + {0x01171f, 0x01171f, EGCB_Extend }, + {0x011722, 0x011725, EGCB_Extend }, + {0x011726, 0x011726, EGCB_SpacingMark }, + {0x011727, 0x01172b, EGCB_Extend }, + {0x01182c, 0x01182e, EGCB_SpacingMark }, + {0x01182f, 0x011837, EGCB_Extend }, + {0x011838, 0x011838, EGCB_SpacingMark }, + {0x011839, 0x01183a, EGCB_Extend }, + {0x011930, 0x011930, EGCB_Extend }, + {0x011931, 0x011935, EGCB_SpacingMark }, + {0x011937, 0x011938, EGCB_SpacingMark }, + {0x01193b, 0x01193e, EGCB_Extend }, + {0x01193f, 0x01193f, EGCB_Prepend }, + {0x011940, 0x011940, EGCB_SpacingMark }, + {0x011941, 0x011941, EGCB_Prepend }, + {0x011942, 0x011942, EGCB_SpacingMark }, + {0x011943, 0x011943, EGCB_Extend }, + {0x0119d1, 0x0119d3, EGCB_SpacingMark }, + {0x0119d4, 0x0119d7, EGCB_Extend }, + {0x0119da, 0x0119db, EGCB_Extend }, + {0x0119dc, 0x0119df, EGCB_SpacingMark }, + {0x0119e0, 0x0119e0, EGCB_Extend }, + {0x0119e4, 0x0119e4, EGCB_SpacingMark }, + {0x011a01, 0x011a0a, EGCB_Extend }, + {0x011a33, 0x011a38, EGCB_Extend }, + {0x011a39, 0x011a39, EGCB_SpacingMark }, + {0x011a3a, 0x011a3a, EGCB_Prepend }, + {0x011a3b, 0x011a3e, EGCB_Extend }, + {0x011a47, 0x011a47, EGCB_Extend }, + {0x011a51, 0x011a56, EGCB_Extend }, + {0x011a57, 0x011a58, EGCB_SpacingMark }, + {0x011a59, 0x011a5b, EGCB_Extend }, + {0x011a84, 0x011a89, EGCB_Prepend }, + {0x011a8a, 0x011a96, EGCB_Extend }, + {0x011a97, 0x011a97, EGCB_SpacingMark }, + {0x011a98, 0x011a99, EGCB_Extend }, + {0x011c2f, 0x011c2f, EGCB_SpacingMark }, + {0x011c30, 0x011c36, EGCB_Extend }, + {0x011c38, 0x011c3d, EGCB_Extend }, + {0x011c3e, 0x011c3e, EGCB_SpacingMark }, + {0x011c3f, 0x011c3f, EGCB_Extend }, + {0x011c92, 0x011ca7, EGCB_Extend }, + {0x011ca9, 0x011ca9, EGCB_SpacingMark }, + {0x011caa, 0x011cb0, EGCB_Extend }, + {0x011cb1, 0x011cb1, EGCB_SpacingMark }, + {0x011cb2, 0x011cb3, EGCB_Extend }, + {0x011cb4, 0x011cb4, EGCB_SpacingMark }, + {0x011cb5, 0x011cb6, EGCB_Extend }, + {0x011d31, 0x011d36, EGCB_Extend }, + {0x011d3a, 0x011d3a, EGCB_Extend }, + {0x011d3c, 0x011d3d, EGCB_Extend }, + {0x011d3f, 0x011d45, EGCB_Extend }, + {0x011d46, 0x011d46, EGCB_Prepend }, + {0x011d47, 0x011d47, EGCB_Extend }, + {0x011d8a, 0x011d8e, EGCB_SpacingMark }, + {0x011d90, 0x011d91, EGCB_Extend }, + {0x011d93, 0x011d94, EGCB_SpacingMark }, + {0x011d95, 0x011d95, EGCB_Extend }, + {0x011d96, 0x011d96, EGCB_SpacingMark }, + {0x011d97, 0x011d97, EGCB_Extend }, + {0x011ef3, 0x011ef4, EGCB_Extend }, + {0x011ef5, 0x011ef6, EGCB_SpacingMark }, + {0x011f00, 0x011f01, EGCB_Extend }, + {0x011f02, 0x011f02, EGCB_Prepend }, + {0x011f03, 0x011f03, EGCB_SpacingMark }, + {0x011f34, 0x011f35, EGCB_SpacingMark }, + {0x011f36, 0x011f3a, EGCB_Extend }, + {0x011f3e, 0x011f3f, EGCB_SpacingMark }, + {0x011f40, 0x011f42, EGCB_Extend }, + {0x011f5a, 0x011f5a, EGCB_Extend }, + {0x013430, 0x01343f, EGCB_Control }, + {0x013440, 0x013440, EGCB_Extend }, + {0x013447, 0x013455, EGCB_Extend }, + {0x01611e, 0x016129, EGCB_Extend }, + {0x01612a, 0x01612c, EGCB_SpacingMark }, + {0x01612d, 0x01612f, EGCB_Extend }, + {0x016af0, 0x016af4, EGCB_Extend }, + {0x016b30, 0x016b36, EGCB_Extend }, + {0x016d63, 0x016d63, EGCB_V }, + {0x016d67, 0x016d6a, EGCB_V }, + {0x016f4f, 0x016f4f, EGCB_Extend }, + {0x016f51, 0x016f87, EGCB_SpacingMark }, + {0x016f8f, 0x016f92, EGCB_Extend }, + {0x016fe4, 0x016fe4, EGCB_Extend }, + {0x016ff0, 0x016ff1, EGCB_Extend }, + {0x01bc9d, 0x01bc9e, EGCB_Extend }, + {0x01bca0, 0x01bca3, EGCB_Control }, + {0x01cf00, 0x01cf2d, EGCB_Extend }, + {0x01cf30, 0x01cf46, EGCB_Extend }, + {0x01d165, 0x01d169, EGCB_Extend }, + {0x01d16d, 0x01d172, EGCB_Extend }, + {0x01d173, 0x01d17a, EGCB_Control }, + {0x01d17b, 0x01d182, EGCB_Extend }, + {0x01d185, 0x01d18b, EGCB_Extend }, + {0x01d1aa, 0x01d1ad, EGCB_Extend }, + {0x01d242, 0x01d244, EGCB_Extend }, + {0x01da00, 0x01da36, EGCB_Extend }, + {0x01da3b, 0x01da6c, EGCB_Extend }, + {0x01da75, 0x01da75, EGCB_Extend }, + {0x01da84, 0x01da84, EGCB_Extend }, + {0x01da9b, 0x01da9f, EGCB_Extend }, + {0x01daa1, 0x01daaf, EGCB_Extend }, + {0x01e000, 0x01e006, EGCB_Extend }, + {0x01e008, 0x01e018, EGCB_Extend }, + {0x01e01b, 0x01e021, EGCB_Extend }, + {0x01e023, 0x01e024, EGCB_Extend }, + {0x01e026, 0x01e02a, EGCB_Extend }, + {0x01e08f, 0x01e08f, EGCB_Extend }, + {0x01e130, 0x01e136, EGCB_Extend }, + {0x01e2ae, 0x01e2ae, EGCB_Extend }, + {0x01e2ec, 0x01e2ef, EGCB_Extend }, + {0x01e4ec, 0x01e4ef, EGCB_Extend }, + {0x01e5ee, 0x01e5ef, EGCB_Extend }, + {0x01e8d0, 0x01e8d6, EGCB_Extend }, + {0x01e944, 0x01e94a, EGCB_Extend }, + {0x01f1e6, 0x01f1ff, EGCB_Regional_Indicator }, + {0x01f3fb, 0x01f3ff, EGCB_Extend }, + {0x0e0000, 0x0e001f, EGCB_Control }, + {0x0e0020, 0x0e007f, EGCB_Extend }, + {0x0e0080, 0x0e00ff, EGCB_Control }, + {0x0e0100, 0x0e01ef, EGCB_Extend }, + {0x0e01f0, 0x0e0fff, EGCB_Control } +}; diff --git a/thirdparty/oniguruma/unicode_fold1_key.c b/thirdparty/oniguruma/unicode_fold1_key.c new file mode 100644 index 000000000..2834a2271 --- /dev/null +++ b/thirdparty/oniguruma/unicode_fold1_key.c @@ -0,0 +1,3137 @@ +/* This file was converted by gperf_fold_key_conv.py + from gperf output file. */ +/* ANSI-C code produced by gperf version 3.1 */ +/* Command-line: gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1 -N onigenc_unicode_fold1_key unicode_fold1_key.gperf */ +/* Computed positions: -k'1-3' */ + + + +/* This gperf source file was generated by make_unicode_fold_data.py */ + +/*- + * Copyright (c) 2017-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include "regint.h" + +#define TOTAL_KEYWORDS 1423 +#define MIN_WORD_LENGTH 3 +#define MAX_WORD_LENGTH 3 +#define MIN_HASH_VALUE 4 +#define MAX_HASH_VALUE 1846 +/* maximum key range = 1843, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +/*ARGSUSED*/ +static unsigned int +hash(OnigCodePoint codes[]) +{ + static const unsigned short asso_values[] = + { + 4, 2, 15, 124, 1, 9, 1398, 671, 1395, 664, + 1384, 84, 91, 75, 1529, 74, 99, 54, 1525, 26, + 1379, 552, 1374, 431, 144, 50, 1517, 24, 250, 557, + 0, 27, 1506, 262, 1505, 197, 131, 1310, 782, 350, + 781, 32, 771, 588, 5, 95, 1079, 463, 770, 455, + 1074, 1496, 824, 1495, 584, 1484, 762, 1465, 751, 1559, + 1372, 1339, 1350, 1365, 1347, 732, 1062, 951, 551, 701, + 543, 1334, 657, 1479, 743, 108, 724, 1549, 530, 7, + 522, 252, 503, 1541, 484, 1540, 425, 1532, 709, 1232, + 466, 1147, 666, 1138, 1041, 845, 1325, 36, 1317, 465, + 65, 1526, 301, 690, 45, 1301, 401, 1450, 381, 1437, + 25, 994, 636, 603, 591, 1281, 176, 997, 339, 1215, + 446, 1009, 571, 1175, 616, 473, 623, 386, 414, 1394, + 921, 1489, 1022, 612, 613, 173, 1002, 74, 308, 327, + 1471, 291, 1434, 202, 908, 1, 147, 1847, 1426, 226, + 1222, 73, 56, 1847, 1423, 48, 1294, 292, 1267, 14, + 275, 315, 205, 410, 990, 4, 17, 6, 974, 382, + 1255, 675, 1225, 26, 360, 1437, 886, 1268, 1189, 37, + 863, 267, 1167, 1190, 963, 1178, 936, 1133, 603, 137, + 933, 393, 897, 71, 853, 1427, 843, 1161, 831, 1111, + 1165, 1128, 1156, 1140, 830, 686, 1155, 1125, 507, 1116, + 1123, 818, 237, 1064, 576, 1046, 562, 1033, 196, 816, + 167, 815, 155, 793, 136, 131, 76, 795, 85, 1112, + 124, 1110, 116, 285, 232, 1026, 188, 1383, 371, 1087, + 350, 1045, 333, 1359, 812, 354, 270, 407, 801, 99, + 565, 555, 1104, 128, 1097, 31, 1419, 130, 1414 + }; + return asso_values[(unsigned char)onig_codes_byte_at(codes, 2)+3] + asso_values[(unsigned char)onig_codes_byte_at(codes, 1)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 0)]; +} + +int +onigenc_unicode_fold1_key(OnigCodePoint codes[]) +{ + static const short int wordlist[] = + { + -1, -1, -1, -1, + + 1915, + + 1876, + + 210, + + 171, + + 3453, + + 1936, + + 3558, + + 231, + + 993, + + 1321, + + 1282, + + 3153, + + 2669, + + 3714, + + 1342, + + 544, + + 505, + + 2105, + + 1141, + + 390, + + 562, + + 3693, + + 2804, + + 3309, + + 3711, + + 2036, + + 1069, + + 324, + + 2249, + + 27, + + 1612, + + 3249, + + 1618, + + 3732, + + 1384, + + 159, + + 2252, + + 1047, + + 3405, + + 402, + + 664, + + 2723, + + 3096, + + 1615, + + 3750, + + 2027, + + 1060, + + 315, + + 4131, + + 12, + + 2732, + + 3240, + + 1636, + + 2270, + + 1366, + + 3681, + + 2099, + + 1120, + + 372, + + 2306, + + 649, + + 2783, + + 3087, + + 1654, + + 2432, + + 2020, + + 1053, + + 309, + + 4113, + + 0, + + 2729, + + 3234, + + 2381, + + 3132, + + 1354, + + 3591, + + 2195, + + 1231, + + 459, + + 3288, + + 640, + + 2894, + + 3081, + + 1465, + + 3597, + + 2198, + + 1234, + + 462, + + 4101, + + 80, + + 2897, + + 1888, + + 2369, + + 183, + + 3456, + + 2993, + + 2915, + + 1696, + + 3660, + + 1894, + + 1294, + + 189, + + 1795, + + 144, + + 2918, + + 3366, + + 517, + + 3546, + + 1300, + + 980, + + 273, + + 1801, + + 2447, + + 2657, + + 523, + + 3609, + + 2204, + + 1240, + + 468, + + 2984, + + 92, + + 2960, + + 2996, + + 3603, + + 2201, + + 1237, + + 465, + + 3672, + + 86, + + 2900, + + 3588, + + 1924, + + 153, + + 219, + + 165, + + 3585, + + 2192, + + 1228, + + 456, + + 3393, + + 1330, + + 2891, + + 1813, + + 2450, + + 1906, + + 2978, + + 201, + + 2090, + + 1111, + + 2954, + + 1807, + + 2246, + + 2774, + + 1312, + + 3579, + + 2189, + + 1225, + + 1792, + + 2291, + + 535, + + 2888, + + 3363, + + 1789, + + 1684, + + 3123, + + 3876, + + 3573, + + 2186, + + 1222, + + 2948, + + 2942, + + 2285, + + 2885, + + 3360, + + 3882, + + 1513, + + 2045, + + 1078, + + 333, + + 2936, + + 46, + + 1783, + + 1459, + -1, + + 1519, + + 1402, + + 2939, + + 3621, + + 2210, + + 1246, + + 474, + + 673, + + 105, + + 1777, + + 2951, + + 798, + + 2183, + + 1219, + + 1582, + + 4149, + + 863, + + 2882, + + 3357, + + 2393, + + 366, + + 3894, + + 1135, + + 2552, + + 3279, + + 866, + + 2798, + + 3303, + + 3702, + + 3888, + + 1825, + + 1531, + + 2558, + + 709, + + 4095, + + 2912, + + 3873, + -1, + + 1771, + + 1525, + + 2288, + + 3870, + + 3011, + + 1594, + + 369, + + 1600, + + 1510, + + 3615, + + 2207, + + 1243, + + 471, + + 1507, + + 99, + + 2174, + + 1210, + + 2975, + + 872, + + 712, + + 2873, + + 3354, + + 3864, + -1, + + 3996, + + 2570, + + 869, + + 3939, + + 1912, + + 3564, + + 207, + + 999, + + 1501, + + 2564, + + 3858, + + 2675, + + 1819, + + 1318, + + 860, + + 784, + + 2549, + + 1753, + + 2441, + + 541, + + 1495, + + 2546, + -1, + + 3651, + + 2225, + + 1261, + + 486, + + 4092, + + 135, + + 2909, + + 1132, + + 3906, + + 4089, + + 857, + + 2795, + + 3300, + + 3696, + + 3411, + + 3612, + + 3852, + + 2540, + + 1543, + + 4215, + + 96, + + 715, + + 854, + + 3008, + + 1660, + + 378, + + 1489, + + 1855, + + 4083, + + 2534, + + 3687, + + 721, + + 2024, + + 1056, + + 312, + -1, + + 6, + + 703, + + 3237, + + 2078, + + 4077, + + 1360, + + 1816, + + 878, + + 2762, + + 3276, + + 4206, + + 643, + + 384, + + 3084, + + 2582, + + 851, + + 3900, + + 3699, + + 694, + + 4107, + + 3111, + + 3834, + + 2528, + + 2375, + + 363, + + 718, + + 1537, + + 3639, + + 2219, + + 1255, + + 483, + + 1471, + + 123, + + 4071, + + 2048, + + 1081, + + 336, + + 697, + + 52, + + 2747, + + 2987, + -1, -1, + + 1408, + + 3633, + + 2216, + + 1252, + + 480, + + 3648, + + 117, + -1, + + 875, + + 3002, + + 132, + + 1843, + + 2117, + + 1153, + + 4155, + + 2576, + -1, + + 2816, + + 2399, + + 3735, + + 2510, + + 1573, + + 3627, + + 2213, + + 1249, + + 477, + + 3897, + + 111, + + 1837, + + 2300, + + 4218, + + 4053, + + 1852, + + 2033, + + 1066, + + 321, + + 1534, + + 4296, + + 1639, + + 3246, + + 348, + + 3720, + + 1378, + + 754, + + 3261, + -1, + + 893, + + 1435, + + 658, + + 1831, + + 3093, + -1, + + 3780, + + 2030, + + 1063, + + 318, + + 4125, + + 18, + + 3654, + + 3243, + + 1624, + + 4182, + + 1372, + + 138, + + 3945, + + 2426, + + 2063, + + 1096, + + 2573, + + 3705, + + 3090, + + 1690, + -1, -1, + + 3924, + + 1438, + + 4119, + + 1999, + + 1014, + + 288, + + 2387, + + 682, + + 2690, + + 3213, + + 1561, + + 1858, + -1, + + 2504, + + 1606, + + 4185, + + 2459, + + 3918, + + 616, + + 2429, + + 3060, + + 3933, + -1, + + 3020, + + 2051, + + 1084, + + 339, + + 1555, + + 59, + -1, + + 2357, + + 1570, + + 3468, + + 1414, + + 3426, + + 887, + + 2282, + + 3972, + + 3912, + + 679, + + 3462, + + 724, + -1, -1, + + 2005, + + 1026, + + 294, + + 4161, + + 1549, + + 2702, + + 3219, + + 2405, + + 884, + + 345, + -1, + + 74, + + 890, + + 3258, + + 637, + + 625, + + 1429, + + 3066, + + 1996, + + 1008, + + 285, + + 3975, + + 4098, + + 2684, + + 3210, + -1, + + 2366, + + 2363, + -1, + + 881, + + 4176, + + 3438, + -1, + + 610, + + 2420, + + 3057, + + 3567, + + 1993, + + 1002, + + 282, + + 1576, + + 2168, + + 2678, + + 3207, + + 733, + + 2354, + + 2867, + + 3351, + + 2453, + + 3420, + -1, + + 791, + + 604, + + 3951, + + 3054, + + 3561, + + 1990, + + 996, + + 279, + -1, + + 2972, + + 2672, + + 3204, + + 3555, + + 1987, + + 990, + + 276, + + 1741, + + 3414, + + 2666, + + 3201, + + 601, + + 736, + + 3051, + -1, + + 1864, + + 3531, + + 1975, + + 965, + + 598, + + 3966, + + 3047, + + 2642, + + 3189, + + 3525, + + 1972, + + 956, + + 3408, + + 3666, + -1, + + 2636, + + 3186, + + 1873, + + 147, + + 3035, + + 3402, + + 2180, + + 1216, + + 3663, + + 2231, + + 1267, + + 2879, + + 3032, + -1, + + 2345, + + 2054, + + 1087, + + 342, + + 3378, + + 65, + + 2177, + + 1213, + + 2339, + + 2276, + + 1420, + + 2876, + + 3372, + + 3483, + + 1951, + + 912, + + 243, + + 3450, + + 1765, + + 2594, + + 3165, + + 2042, + + 1075, + + 330, + + 4167, + + 40, + + 3822, + + 3255, + + 2411, + + 577, + + 1396, + + 2465, + + 1759, + + 2138, + + 1174, + + 411, + + 670, + + 37, + + 2837, + + 3327, + + 3774, + + 2321, + + 1393, + + 2072, + + 4143, + + 357, + + 2057, + + 1090, + + 2756, + + 3270, + + 71, + + 1453, + + 1456, + + 2060, + + 1093, + + 1426, + + 4140, + + 688, + + 691, + + 1681, + + 3105, + + 845, + + 1432, + + 4200, + -1, -1, + + 2039, + + 1072, + + 327, + + 4173, + + 34, + -1, + + 3252, + + 2417, + + 3957, + + 1390, + + 4179, + + 2966, + + 2492, + + 4041, + + 2423, + + 3846, + + 2990, + + 3099, + + 1588, + -1, + + 3537, + + 1978, + + 971, + + 4137, + -1, + + 1483, + + 2648, + + 3192, + + 1585, + + 3840, + + 2008, + + 1032, + + 297, + -1, -1, + + 2708, + + 3222, + -1, + + 3038, + + 1477, + + 2495, + + 396, + -1, + + 896, + -1, + + 628, + + 3726, + + 3069, + + 2351, + + 3990, + + 3993, + + 1198, + + 3384, + + 3963, + -1, + + 2264, + + 3348, + + 2522, + + 9, + + 727, + + 3969, + + 3444, + + 2258, + + 1363, + + 3528, + + 1630, + + 960, + + 264, + + 4065, + + 646, + + 2639, + + 2516, + + 2471, + + 2002, + + 1020, + + 291, + + 1732, + + 4110, + + 2696, + + 3216, + + 589, + + 2378, + + 4059, + -1, -1, -1, -1, + + 3549, + + 1984, + + 983, + + 3063, + + 779, + + 2342, + + 2660, + + 3198, + + 3516, + + 3375, + + 946, + + 258, + + 2486, + + 2360, + + 2627, + + 4230, + + 595, + + 3432, + + 3044, + + 3543, + + 1981, + + 977, + -1, + + 4224, + + 730, + + 2654, + + 3195, + + 3495, + + 1957, + + 925, + + 249, + -1, + + 3396, + + 2606, + + 3171, + + 592, + + 2930, + + 3041, + + 3489, + + 1954, + + 919, + + 246, + -1, + + 2924, + + 2600, + + 3168, + + 3465, + + 1942, + + 1933, + + 237, + + 228, + + 3390, + + 3813, + + 3159, + + 3150, + + 2333, + + 1348, + + 1339, + + 1930, + + 1927, + + 225, + + 222, + + 568, + + 559, + + 3147, + + 3144, + + 2327, + + 1336, + + 1333, + + 3582, + -1, + + 3594, + + 453, + + 556, + + 553, + + 2309, + + 77, + + 3657, + + 2228, + + 1264, + + 490, + -1, + + 141, + -1, -1, + + 2303, + + 2297, + + 836, + + 3645, + + 2222, + + 1258, + + 3576, + + 3570, + + 129, + + 450, + + 447, + + 1786, + + 435, + + 1798, + + 2444, + + 3477, + + 1948, + + 905, + + 4293, + + 1861, + + 4032, + + 2588, + + 2162, + + 2153, + + 424, + + 2477, + + 4287, + + 2861, + + 2852, + + 3342, + + 1849, + + 574, + -1, + + 1780, + + 1774, + + 2150, + + 1750, + + 2438, + + 1041, + -1, + + 2849, + + 3339, + + 2717, + + 2315, + -1, + + 2147, + + 1183, + + 417, + + 1729, + + 1711, + + 2846, + + 3336, + + 634, + -1, -1, + + 2126, + + 1162, + + 3029, + + 3026, + + 4245, + + 2825, + + 1705, + + 3753, + + 4212, + -1, -1, -1, -1, + + 3023, + + 3017, + + 2483, + + 1699, + -1, -1, + + 3867, + -1, + + 3879, + + 2489, + + 2120, + + 1156, + + 399, + + 1657, + + 2435, + + 2819, + + 1504, + + 3741, + + 1516, + -1, -1, + + 2144, + + 1180, + + 414, + + 1579, + + 3930, + + 2843, + + 3333, + + 3861, + + 3855, + -1, + + 3831, + + 2087, + + 1108, + -1, + + 1567, + + 1645, + + 2771, + + 1498, + + 1492, + -1, + + 1468, + -1, + + 3810, + + 3792, + + 2066, + + 1099, + + 1693, + + 2543, + + 3120, + + 2555, + + 3264, + -1, -1, + + 1444, + -1, + + 3786, + + 2141, + + 1177, + + 4086, + + 2135, + + 1171, + + 2840, + + 3330, + + 3777, + + 2834, + + 3324, + + 3768, + + 4191, + -1, + + 2537, + + 2531, + -1, + + 2507, + + 3522, + -1, + + 953, + + 261, + + 832, + + 812, + + 2633, + + 4080, + + 4074, + + 1687, + + 4050, + -1, + + 1675, + + 2132, + + 1168, + -1, + + 586, + + 808, + + 2831, + + 3321, + + 3762, + + 1870, + + 4029, + + 4011, + + 2108, + + 1144, + + 393, + + 801, + + 2336, + + 2807, + + 3312, + + 3717, + -1, -1, + + 4290, + + 4005, + -1, + + 751, + -1, + + 1669, + + 2102, + + 1138, + + 387, + -1, + + 3981, + + 2801, + + 3306, + + 3708, + + 31, + + 2744, + + 1621, + + 49, + + 2075, + + 1387, + + 360, + -1, + + 1405, + + 2759, + + 3273, + + 667, + + 742, + + 1462, + + 676, + + 62, + + 2750, + + 4278, + + 1609, + + 4134, + + 1417, + + 3108, + + 4152, + + 795, + + 2069, + + 1102, + + 2396, + + 3618, + -1, + + 2753, + + 3267, + -1, + + 102, + + 1450, + + 4164, + -1, + + 4257, + + 444, + + 2408, + -1, -1, + + 3102, + -1, + + 2011, + + 1038, + + 300, + + 3636, + + 4251, + + 2714, + + 3225, + + 441, + + 120, + + 2906, + -1, + + 1822, + + 4227, + + 4209, + -1, + + 631, + + 788, + + 3072, + + 1768, + + 771, + + 3519, + + 1969, + + 950, + + 4203, + + 4197, + + 438, + + 2630, + + 3183, + -1, + + 3942, + + 1840, + + 1762, + + 3471, + + 1945, + + 3999, + + 240, + + 583, + + 3459, + + 1939, + + 3162, + + 234, + + 3954, + + 1351, + -1, + + 3156, + + 3630, + + 764, + + 1345, + + 571, + + 1756, + + 114, + + 2903, + -1, + + 565, + + 3987, + + 3675, + + 2237, + + 1273, + + 496, + + 3369, + + 156, + -1, + + 3669, + + 2234, + + 1270, + + 493, + + 4239, + + 150, + + 3606, + -1, + + 3600, + + 1189, + + 1834, + + 89, + + 3903, + + 83, + + 1204, + + 432, + -1, -1, -1, + + 3849, + + 2171, + + 1207, + + 1540, + + 1201, + + 428, + + 2870, + + 1192, + + 420, + -1, + + 1486, + -1, + + 3921, + + 3843, + + 1810, + + 1714, + + 1804, + + 1035, + + 3771, + + 1195, + + 1744, + + 2711, + + 1558, + + 1480, + + 3345, + -1, + + 1029, + + 1747, + -1, + + 1738, + + 2705, + + 3837, + + 1720, + + 2165, + + 2159, + + 2579, + -1, + + 1678, + + 2864, + + 2858, + + 1186, + + 1474, + + 2525, + + 2156, + + 1726, + + 2129, + + 1165, + + 3447, + + 2855, + -1, + + 2828, + + 1867, + + 3756, + + 4068, + + 3915, + + 2519, + + 3441, + + 68, + + 408, + + 1735, + + 1723, + + 2501, + + 1423, + + 3765, + + 1552, + + 1708, + + 4062, + + 2123, + + 1159, + + 1717, + + 405, + + 1663, + + 2822, + + 2513, + + 3747, + + 3759, + + 4170, + + 3891, + + 3795, + + 3885, + + 2414, + + 1591, + + 1672, + + 3825, + + 4056, + -1, -1, + + 1528, + -1, + + 1522, + + 3828, + -1, + + 3819, + + 1651, + + 1666, + + 3801, + -1, + + 56, + -1, + + 899, + + 2096, + + 1117, + + 1411, + + 2114, + + 1150, + + 2780, + + 3285, + + 3807, + + 2813, + + 3318, + + 3729, + + 1023, + + 4284, + + 816, + -1, + + 2699, + + 4158, + + 3129, + + 848, + + 2567, + + 2402, + + 2561, + + 3816, + + 3804, + -1, + + 622, + + 3960, + + 842, + + 3789, + + 1633, + + 822, + + 4014, + + 3798, + + 2111, + + 1147, + + 774, + + 4044, + + 2462, + + 2810, + + 3315, + + 3723, + + 3435, + + 829, + + 4047, + -1, + + 4038, + + 1129, + + 381, + + 4020, + + 2474, + + 2792, + + 3297, + + 3690, + + 3744, + -1, -1, -1, + + 839, + + 826, + + 1627, + + 4026, + -1, + + 3141, + + 43, + -1, -1, + + 3948, + + 819, + + 1399, + + 758, + -1, -1, + + 1648, + + 1126, + + 375, + + 4035, + + 4023, + + 2789, + + 3294, + + 3684, + + 768, + + 4008, + + 4146, + + 15, + + 2735, + + 4017, + + 2390, + -1, + + 1369, + + 3138, + -1, + + 748, + + 761, + -1, + + 652, + + 2017, + + 1050, + + 306, + -1, -1, + + 2726, + + 3231, + + 4116, + + 2014, + + 1044, + + 303, + + 2384, + -1, + + 2720, + + 3228, + -1, + + 3534, + + 3078, + + 968, + + 267, + + 2294, + + 3504, + + 2645, + + 934, + + 252, + + 3075, + -1, + + 2615, + + 4281, + + 3513, + + 1966, + + 943, + + 3507, + + 1963, + + 937, + + 2624, + + 3180, + + 3936, + + 2618, + + 3177, + + 4233, + + 3642, + -1, -1, + + 2348, + + 4221, + + 126, + + 3510, + + 3381, + + 940, + + 255, + -1, -1, + + 2621, + + 3501, + + 1960, + + 931, + + 1903, + -1, + + 198, + + 2612, + + 3174, + + 1900, + + 580, + + 195, + + 3624, + + 1309, + + 1885, + + 1846, + + 180, + + 108, + + 1306, + + 532, + -1, -1, + + 745, + + 1291, + + 529, + + 1882, + + 351, + + 177, + + 1879, + + 514, + + 174, + + 2279, + -1, + + 1441, + + 1288, + + 3014, + + 2273, + + 1285, + -1, + + 1828, + + 511, + + 2267, + -1, + + 508, + + 2243, + + 1279, + + 502, + + 4188, + + 168, + + 2240, + + 1276, + + 499, + + 2261, + + 162, + + 1123, + + 2255, + + 2093, + + 1114, + + 2786, + + 3291, + + 3678, + + 2777, + + 3282, + -1, + + 2084, + + 1105, + -1, + + 2480, + -1, + + 2768, + + 3135, + + 24, + + 2741, + + 3126, + + 3738, + -1, + + 1381, + -1, + + 3927, + + 706, + -1, + + 3117, + + 661, + + 1702, + + 21, + + 2738, + -1, -1, + + 1564, + + 1375, + + 4128, + -1, -1, + + 1642, + + 3492, + + 655, + + 922, + + 3978, + -1, + + 2969, + + 2603, + + 2081, + + 3909, + + 4122, + + 2963, + -1, + + 2765, + + 2468, + + 3540, + + 2933, + + 974, + + 270, + + 1546, + + 3486, + + 2651, + + 915, + + 700, + -1, + + 3114, + + 2597, + + 2927, + + 354, + + 2330, + + 2921, + + 3480, + + 3474, + + 908, + + 902, + + 1447, + -1, + + 2591, + + 2585, + -1, -1, + + 685, + + 1921, + + 1918, + + 216, + + 213, + -1, + + 3387, + + 2324, + -1, + + 1603, + + 1327, + + 1324, + + 3783, + + 1909, + + 1597, + + 204, + + 550, + + 547, + + 2318, + + 2312, + -1, + + 1897, + + 1315, + + 192, + -1, + + 1891, + + 3, + + 186, + + 538, + + 1017, + + 1303, + + 1357, + -1, + + 2693, + + 1297, + -1, + + 526, + + 1011, + + 1005, + + 2456, + + 520, + + 2687, + + 2681, + + 619, + + 3552, + + 4104, + + 986, + + 804, + -1, + + 2372, + + 2663, + + 613, + + 607, + -1, + + 3498, + -1, + + 928, + + 739, + + 3984, + + 3429, + + 2609, + -1, -1, -1, -1, + + 4002, + -1, + + 3423, + + 3417, + -1, -1, -1, -1, -1, -1, + -1, + + 3399, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + + 4194, + -1, -1, -1, -1, -1, -1, + + 3005, + + 2999, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, + + 2981, + -1, -1, -1, -1, -1, -1, + -1, + + 2957, + -1, + + 4266, + -1, + + 2945, + -1, -1, -1, -1, -1, + + 4275, + -1, -1, + + 4269, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, + + 4272, + -1, -1, -1, -1, -1, -1, + + 4263, + + 2498, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, + + 4254, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + + 4248, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, + + 4242, + + 4236, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, + + 4260 + }; + + + { + int key = hash(codes); + + if (key <= MAX_HASH_VALUE) + { + int index = wordlist[key]; + + if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds1 + index, 1) == 0) + return index; + } + } + return -1; +} diff --git a/thirdparty/oniguruma/unicode_fold2_key.c b/thirdparty/oniguruma/unicode_fold2_key.c new file mode 100644 index 000000000..fe0119246 --- /dev/null +++ b/thirdparty/oniguruma/unicode_fold2_key.c @@ -0,0 +1,226 @@ +/* This file was converted by gperf_fold_key_conv.py + from gperf output file. */ +/* ANSI-C code produced by gperf version 3.1 */ +/* Command-line: gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1 -N onigenc_unicode_fold2_key unicode_fold2_key.gperf */ +/* Computed positions: -k'3,6' */ + + + +/* This gperf source file was generated by make_unicode_fold_data.py */ + +/*- + * Copyright (c) 2017-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include "regint.h" + +#define TOTAL_KEYWORDS 59 +#define MIN_WORD_LENGTH 6 +#define MAX_WORD_LENGTH 6 +#define MIN_HASH_VALUE 0 +#define MAX_HASH_VALUE 58 +/* maximum key range = 59, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +/*ARGSUSED*/ +static unsigned int +hash(OnigCodePoint codes[]) +{ + static const unsigned char asso_values[] = + { + 58, 57, 56, 55, 54, 53, 52, 16, 50, 59, + 15, 59, 25, 59, 59, 59, 59, 59, 59, 3, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 49, 48, 47, 46, 45, 44, 43, 42, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 21, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 2, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 40, 20, 39, 38, + 37, 14, 5, 36, 20, 7, 25, 34, 29, 32, + 16, 59, 31, 59, 59, 2, 1, 59, 25, 15, + 59, 14, 59, 59, 28, 59, 2, 59, 59, 59, + 11, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 24, 59, 22, 59, 59, 11, 59, 59, + 59, 59, 59, 7, 59, 0, 59, 59, 16, 59, + 1, 59, 59, 16, 59, 59, 59, 15, 59, 59, + 59, 6, 59, 59, 59, 59, 0, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59 + }; + return asso_values[(unsigned char)onig_codes_byte_at(codes, 5)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 2)]; +} + +int +onigenc_unicode_fold2_key(OnigCodePoint codes[]) +{ + static const short int wordlist[] = + { + + 101, + + 253, + + 76, + + 29, + + 24, + + 239, + + 96, + + 71, + + 92, + + 67, + + 4, + + 62, + + 8, + + 58, + + 234, + + 109, + + 164, + + 88, + + 84, + + 80, + + 214, + + 0, + + 54, + + 261, + + 50, + + 105, + + 121, + + 125, + + 257, + + 42, + + 38, + + 249, + + 46, + + 117, + + 12, + + 113, + + 244, + + 229, + + 224, + + 219, + + 209, + + 16, + + 204, + + 199, + + 194, + + 189, + + 184, + + 179, + + 174, + + 169, + + 20, + + 34, + + 159, + + 154, + + 149, + + 144, + + 139, + + 134, + + 129 + }; + + + { + int key = hash(codes); + + if (key <= MAX_HASH_VALUE) + { + int index = wordlist[key]; + + if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds2 + index, 2) == 0) + return index; + } + } + return -1; +} diff --git a/thirdparty/oniguruma/unicode_fold3_key.c b/thirdparty/oniguruma/unicode_fold3_key.c new file mode 100644 index 000000000..06a620688 --- /dev/null +++ b/thirdparty/oniguruma/unicode_fold3_key.c @@ -0,0 +1,136 @@ +/* This file was converted by gperf_fold_key_conv.py + from gperf output file. */ +/* ANSI-C code produced by gperf version 3.1 */ +/* Command-line: gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1 -N onigenc_unicode_fold3_key unicode_fold3_key.gperf */ +/* Computed positions: -k'3,6,9' */ + + + +/* This gperf source file was generated by make_unicode_fold_data.py */ + +/*- + * Copyright (c) 2017-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include "regint.h" + +#define TOTAL_KEYWORDS 14 +#define MIN_WORD_LENGTH 9 +#define MAX_WORD_LENGTH 9 +#define MIN_HASH_VALUE 0 +#define MAX_HASH_VALUE 13 +/* maximum key range = 14, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +/*ARGSUSED*/ +static unsigned int +hash(OnigCodePoint codes[]) +{ + static const unsigned char asso_values[] = + { + 6, 3, 14, 14, 14, 14, 14, 14, 1, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 4, 14, 14, 5, 14, 14, 4, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 10, 14, 14, + 14, 14, 14, 9, 14, 1, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, + 14, 8, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14 + }; + return asso_values[(unsigned char)onig_codes_byte_at(codes, 8)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 5)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 2)]; +} + +int +onigenc_unicode_fold3_key(OnigCodePoint codes[]) +{ + static const short int wordlist[] = + { + + 62, + + 47, + + 31, + + 57, + + 41, + + 25, + + 52, + + 36, + + 20, + + 67, + + 15, + + 10, + + 5, + + 0 + }; + + + { + int key = hash(codes); + + if (key <= MAX_HASH_VALUE) + { + int index = wordlist[key]; + + if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds3 + index, 3) == 0) + return index; + } + } + return -1; +} diff --git a/thirdparty/oniguruma/unicode_fold_data.c b/thirdparty/oniguruma/unicode_fold_data.c new file mode 100644 index 000000000..c311d8277 --- /dev/null +++ b/thirdparty/oniguruma/unicode_fold_data.c @@ -0,0 +1,1619 @@ +/* This file was generated by make_unicode_fold_data.py. */ +/*- + * Copyright (c) 2017-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + +#include "regenc.h" + +#define UNICODE_CASEFOLD_VERSION 160000 + + +OnigCodePoint OnigUnicodeFolds1[] = { + /* 0*/ 0x0061, 1, 0x0041, /* LATIN CAPITAL LETTER A */ + /* 3*/ 0x0062, 1, 0x0042, /* LATIN CAPITAL LETTER B */ + /* 6*/ 0x0063, 1, 0x0043, /* LATIN CAPITAL LETTER C */ + /* 9*/ 0x0064, 1, 0x0044, /* LATIN CAPITAL LETTER D */ + /* 12*/ 0x0065, 1, 0x0045, /* LATIN CAPITAL LETTER E */ + /* 15*/ 0x0066, 1, 0x0046, /* LATIN CAPITAL LETTER F */ + /* 18*/ 0x0067, 1, 0x0047, /* LATIN CAPITAL LETTER G */ + /* 21*/ 0x0068, 1, 0x0048, /* LATIN CAPITAL LETTER H */ + /* 24*/ 0x006a, 1, 0x004a, /* LATIN CAPITAL LETTER J */ + /* 27*/ 0x006b, 2, 0x004b, 0x212a, /* LATIN CAPITAL LETTER K */ + /* 31*/ 0x006c, 1, 0x004c, /* LATIN CAPITAL LETTER L */ + /* 34*/ 0x006d, 1, 0x004d, /* LATIN CAPITAL LETTER M */ + /* 37*/ 0x006e, 1, 0x004e, /* LATIN CAPITAL LETTER N */ + /* 40*/ 0x006f, 1, 0x004f, /* LATIN CAPITAL LETTER O */ + /* 43*/ 0x0070, 1, 0x0050, /* LATIN CAPITAL LETTER P */ + /* 46*/ 0x0071, 1, 0x0051, /* LATIN CAPITAL LETTER Q */ + /* 49*/ 0x0072, 1, 0x0052, /* LATIN CAPITAL LETTER R */ + /* 52*/ 0x0073, 2, 0x0053, 0x017f, /* LATIN CAPITAL LETTER S */ + /* 56*/ 0x0074, 1, 0x0054, /* LATIN CAPITAL LETTER T */ + /* 59*/ 0x0075, 1, 0x0055, /* LATIN CAPITAL LETTER U */ + /* 62*/ 0x0076, 1, 0x0056, /* LATIN CAPITAL LETTER V */ + /* 65*/ 0x0077, 1, 0x0057, /* LATIN CAPITAL LETTER W */ + /* 68*/ 0x0078, 1, 0x0058, /* LATIN CAPITAL LETTER X */ + /* 71*/ 0x0079, 1, 0x0059, /* LATIN CAPITAL LETTER Y */ + /* 74*/ 0x007a, 1, 0x005a, /* LATIN CAPITAL LETTER Z */ + /* 77*/ 0x00e0, 1, 0x00c0, /* LATIN CAPITAL LETTER A WITH GRAVE */ + /* 80*/ 0x00e1, 1, 0x00c1, /* LATIN CAPITAL LETTER A WITH ACUTE */ + /* 83*/ 0x00e2, 1, 0x00c2, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ + /* 86*/ 0x00e3, 1, 0x00c3, /* LATIN CAPITAL LETTER A WITH TILDE */ + /* 89*/ 0x00e4, 1, 0x00c4, /* LATIN CAPITAL LETTER A WITH DIAER.. */ + /* 92*/ 0x00e5, 2, 0x00c5, 0x212b, /* LATIN CAPITAL LETTER A WITH RING .. */ + /* 96*/ 0x00e6, 1, 0x00c6, /* LATIN CAPITAL LETTER AE */ + /* 99*/ 0x00e7, 1, 0x00c7, /* LATIN CAPITAL LETTER C WITH CEDIL.. */ + /* 102*/ 0x00e8, 1, 0x00c8, /* LATIN CAPITAL LETTER E WITH GRAVE */ + /* 105*/ 0x00e9, 1, 0x00c9, /* LATIN CAPITAL LETTER E WITH ACUTE */ + /* 108*/ 0x00ea, 1, 0x00ca, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ + /* 111*/ 0x00eb, 1, 0x00cb, /* LATIN CAPITAL LETTER E WITH DIAER.. */ + /* 114*/ 0x00ec, 1, 0x00cc, /* LATIN CAPITAL LETTER I WITH GRAVE */ + /* 117*/ 0x00ed, 1, 0x00cd, /* LATIN CAPITAL LETTER I WITH ACUTE */ + /* 120*/ 0x00ee, 1, 0x00ce, /* LATIN CAPITAL LETTER I WITH CIRCU.. */ + /* 123*/ 0x00ef, 1, 0x00cf, /* LATIN CAPITAL LETTER I WITH DIAER.. */ + /* 126*/ 0x00f0, 1, 0x00d0, /* LATIN CAPITAL LETTER ETH */ + /* 129*/ 0x00f1, 1, 0x00d1, /* LATIN CAPITAL LETTER N WITH TILDE */ + /* 132*/ 0x00f2, 1, 0x00d2, /* LATIN CAPITAL LETTER O WITH GRAVE */ + /* 135*/ 0x00f3, 1, 0x00d3, /* LATIN CAPITAL LETTER O WITH ACUTE */ + /* 138*/ 0x00f4, 1, 0x00d4, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ + /* 141*/ 0x00f5, 1, 0x00d5, /* LATIN CAPITAL LETTER O WITH TILDE */ + /* 144*/ 0x00f6, 1, 0x00d6, /* LATIN CAPITAL LETTER O WITH DIAER.. */ + /* 147*/ 0x00f8, 1, 0x00d8, /* LATIN CAPITAL LETTER O WITH STROKE */ + /* 150*/ 0x00f9, 1, 0x00d9, /* LATIN CAPITAL LETTER U WITH GRAVE */ + /* 153*/ 0x00fa, 1, 0x00da, /* LATIN CAPITAL LETTER U WITH ACUTE */ + /* 156*/ 0x00fb, 1, 0x00db, /* LATIN CAPITAL LETTER U WITH CIRCU.. */ + /* 159*/ 0x00fc, 1, 0x00dc, /* LATIN CAPITAL LETTER U WITH DIAER.. */ + /* 162*/ 0x00fd, 1, 0x00dd, /* LATIN CAPITAL LETTER Y WITH ACUTE */ + /* 165*/ 0x00fe, 1, 0x00de, /* LATIN CAPITAL LETTER THORN */ + /* 168*/ 0x00ff, 1, 0x0178, /* LATIN CAPITAL LETTER Y WITH DIAER.. */ + /* 171*/ 0x0101, 1, 0x0100, /* LATIN CAPITAL LETTER A WITH MACRON */ + /* 174*/ 0x0103, 1, 0x0102, /* LATIN CAPITAL LETTER A WITH BREVE */ + /* 177*/ 0x0105, 1, 0x0104, /* LATIN CAPITAL LETTER A WITH OGONEK */ + /* 180*/ 0x0107, 1, 0x0106, /* LATIN CAPITAL LETTER C WITH ACUTE */ + /* 183*/ 0x0109, 1, 0x0108, /* LATIN CAPITAL LETTER C WITH CIRCU.. */ + /* 186*/ 0x010b, 1, 0x010a, /* LATIN CAPITAL LETTER C WITH DOT A.. */ + /* 189*/ 0x010d, 1, 0x010c, /* LATIN CAPITAL LETTER C WITH CARON */ + /* 192*/ 0x010f, 1, 0x010e, /* LATIN CAPITAL LETTER D WITH CARON */ + /* 195*/ 0x0111, 1, 0x0110, /* LATIN CAPITAL LETTER D WITH STROKE */ + /* 198*/ 0x0113, 1, 0x0112, /* LATIN CAPITAL LETTER E WITH MACRON */ + /* 201*/ 0x0115, 1, 0x0114, /* LATIN CAPITAL LETTER E WITH BREVE */ + /* 204*/ 0x0117, 1, 0x0116, /* LATIN CAPITAL LETTER E WITH DOT A.. */ + /* 207*/ 0x0119, 1, 0x0118, /* LATIN CAPITAL LETTER E WITH OGONEK */ + /* 210*/ 0x011b, 1, 0x011a, /* LATIN CAPITAL LETTER E WITH CARON */ + /* 213*/ 0x011d, 1, 0x011c, /* LATIN CAPITAL LETTER G WITH CIRCU.. */ + /* 216*/ 0x011f, 1, 0x011e, /* LATIN CAPITAL LETTER G WITH BREVE */ + /* 219*/ 0x0121, 1, 0x0120, /* LATIN CAPITAL LETTER G WITH DOT A.. */ + /* 222*/ 0x0123, 1, 0x0122, /* LATIN CAPITAL LETTER G WITH CEDIL.. */ + /* 225*/ 0x0125, 1, 0x0124, /* LATIN CAPITAL LETTER H WITH CIRCU.. */ + /* 228*/ 0x0127, 1, 0x0126, /* LATIN CAPITAL LETTER H WITH STROKE */ + /* 231*/ 0x0129, 1, 0x0128, /* LATIN CAPITAL LETTER I WITH TILDE */ + /* 234*/ 0x012b, 1, 0x012a, /* LATIN CAPITAL LETTER I WITH MACRON */ + /* 237*/ 0x012d, 1, 0x012c, /* LATIN CAPITAL LETTER I WITH BREVE */ + /* 240*/ 0x012f, 1, 0x012e, /* LATIN CAPITAL LETTER I WITH OGONEK */ + /* 243*/ 0x0133, 1, 0x0132, /* LATIN CAPITAL LIGATURE IJ */ + /* 246*/ 0x0135, 1, 0x0134, /* LATIN CAPITAL LETTER J WITH CIRCU.. */ + /* 249*/ 0x0137, 1, 0x0136, /* LATIN CAPITAL LETTER K WITH CEDIL.. */ + /* 252*/ 0x013a, 1, 0x0139, /* LATIN CAPITAL LETTER L WITH ACUTE */ + /* 255*/ 0x013c, 1, 0x013b, /* LATIN CAPITAL LETTER L WITH CEDIL.. */ + /* 258*/ 0x013e, 1, 0x013d, /* LATIN CAPITAL LETTER L WITH CARON */ + /* 261*/ 0x0140, 1, 0x013f, /* LATIN CAPITAL LETTER L WITH MIDDL.. */ + /* 264*/ 0x0142, 1, 0x0141, /* LATIN CAPITAL LETTER L WITH STROKE */ + /* 267*/ 0x0144, 1, 0x0143, /* LATIN CAPITAL LETTER N WITH ACUTE */ + /* 270*/ 0x0146, 1, 0x0145, /* LATIN CAPITAL LETTER N WITH CEDIL.. */ + /* 273*/ 0x0148, 1, 0x0147, /* LATIN CAPITAL LETTER N WITH CARON */ + /* 276*/ 0x014b, 1, 0x014a, /* LATIN CAPITAL LETTER ENG */ + /* 279*/ 0x014d, 1, 0x014c, /* LATIN CAPITAL LETTER O WITH MACRON */ + /* 282*/ 0x014f, 1, 0x014e, /* LATIN CAPITAL LETTER O WITH BREVE */ + /* 285*/ 0x0151, 1, 0x0150, /* LATIN CAPITAL LETTER O WITH DOUBL.. */ + /* 288*/ 0x0153, 1, 0x0152, /* LATIN CAPITAL LIGATURE OE */ + /* 291*/ 0x0155, 1, 0x0154, /* LATIN CAPITAL LETTER R WITH ACUTE */ + /* 294*/ 0x0157, 1, 0x0156, /* LATIN CAPITAL LETTER R WITH CEDIL.. */ + /* 297*/ 0x0159, 1, 0x0158, /* LATIN CAPITAL LETTER R WITH CARON */ + /* 300*/ 0x015b, 1, 0x015a, /* LATIN CAPITAL LETTER S WITH ACUTE */ + /* 303*/ 0x015d, 1, 0x015c, /* LATIN CAPITAL LETTER S WITH CIRCU.. */ + /* 306*/ 0x015f, 1, 0x015e, /* LATIN CAPITAL LETTER S WITH CEDIL.. */ + /* 309*/ 0x0161, 1, 0x0160, /* LATIN CAPITAL LETTER S WITH CARON */ + /* 312*/ 0x0163, 1, 0x0162, /* LATIN CAPITAL LETTER T WITH CEDIL.. */ + /* 315*/ 0x0165, 1, 0x0164, /* LATIN CAPITAL LETTER T WITH CARON */ + /* 318*/ 0x0167, 1, 0x0166, /* LATIN CAPITAL LETTER T WITH STROKE */ + /* 321*/ 0x0169, 1, 0x0168, /* LATIN CAPITAL LETTER U WITH TILDE */ + /* 324*/ 0x016b, 1, 0x016a, /* LATIN CAPITAL LETTER U WITH MACRON */ + /* 327*/ 0x016d, 1, 0x016c, /* LATIN CAPITAL LETTER U WITH BREVE */ + /* 330*/ 0x016f, 1, 0x016e, /* LATIN CAPITAL LETTER U WITH RING .. */ + /* 333*/ 0x0171, 1, 0x0170, /* LATIN CAPITAL LETTER U WITH DOUBL.. */ + /* 336*/ 0x0173, 1, 0x0172, /* LATIN CAPITAL LETTER U WITH OGONEK */ + /* 339*/ 0x0175, 1, 0x0174, /* LATIN CAPITAL LETTER W WITH CIRCU.. */ + /* 342*/ 0x0177, 1, 0x0176, /* LATIN CAPITAL LETTER Y WITH CIRCU.. */ + /* 345*/ 0x017a, 1, 0x0179, /* LATIN CAPITAL LETTER Z WITH ACUTE */ + /* 348*/ 0x017c, 1, 0x017b, /* LATIN CAPITAL LETTER Z WITH DOT A.. */ + /* 351*/ 0x017e, 1, 0x017d, /* LATIN CAPITAL LETTER Z WITH CARON */ + /* 354*/ 0x0180, 1, 0x0243, /* LATIN CAPITAL LETTER B WITH STROKE */ + /* 357*/ 0x0183, 1, 0x0182, /* LATIN CAPITAL LETTER B WITH TOPBAR */ + /* 360*/ 0x0185, 1, 0x0184, /* LATIN CAPITAL LETTER TONE SIX */ + /* 363*/ 0x0188, 1, 0x0187, /* LATIN CAPITAL LETTER C WITH HOOK */ + /* 366*/ 0x018c, 1, 0x018b, /* LATIN CAPITAL LETTER D WITH TOPBAR */ + /* 369*/ 0x0192, 1, 0x0191, /* LATIN CAPITAL LETTER F WITH HOOK */ + /* 372*/ 0x0195, 1, 0x01f6, /* LATIN CAPITAL LETTER HWAIR */ + /* 375*/ 0x0199, 1, 0x0198, /* LATIN CAPITAL LETTER K WITH HOOK */ + /* 378*/ 0x019a, 1, 0x023d, /* LATIN CAPITAL LETTER L WITH BAR */ + /* 381*/ 0x019b, 1, 0xa7dc, /* LATIN CAPITAL LETTER LAMBDA WITH .. */ + /* 384*/ 0x019e, 1, 0x0220, /* LATIN CAPITAL LETTER N WITH LONG .. */ + /* 387*/ 0x01a1, 1, 0x01a0, /* LATIN CAPITAL LETTER O WITH HORN */ + /* 390*/ 0x01a3, 1, 0x01a2, /* LATIN CAPITAL LETTER OI */ + /* 393*/ 0x01a5, 1, 0x01a4, /* LATIN CAPITAL LETTER P WITH HOOK */ + /* 396*/ 0x01a8, 1, 0x01a7, /* LATIN CAPITAL LETTER TONE TWO */ + /* 399*/ 0x01ad, 1, 0x01ac, /* LATIN CAPITAL LETTER T WITH HOOK */ + /* 402*/ 0x01b0, 1, 0x01af, /* LATIN CAPITAL LETTER U WITH HORN */ + /* 405*/ 0x01b4, 1, 0x01b3, /* LATIN CAPITAL LETTER Y WITH HOOK */ + /* 408*/ 0x01b6, 1, 0x01b5, /* LATIN CAPITAL LETTER Z WITH STROKE */ + /* 411*/ 0x01b9, 1, 0x01b8, /* LATIN CAPITAL LETTER EZH REVERSED */ + /* 414*/ 0x01bd, 1, 0x01bc, /* LATIN CAPITAL LETTER TONE FIVE */ + /* 417*/ 0x01bf, 1, 0x01f7, /* LATIN CAPITAL LETTER WYNN */ + /* 420*/ 0x01c6, 2, 0x01c4, 0x01c5, /* LATIN CAPITAL LETTER DZ WITH CARON */ + /* 424*/ 0x01c9, 2, 0x01c7, 0x01c8, /* LATIN CAPITAL LETTER LJ */ + /* 428*/ 0x01cc, 2, 0x01ca, 0x01cb, /* LATIN CAPITAL LETTER NJ */ + /* 432*/ 0x01ce, 1, 0x01cd, /* LATIN CAPITAL LETTER A WITH CARON */ + /* 435*/ 0x01d0, 1, 0x01cf, /* LATIN CAPITAL LETTER I WITH CARON */ + /* 438*/ 0x01d2, 1, 0x01d1, /* LATIN CAPITAL LETTER O WITH CARON */ + /* 441*/ 0x01d4, 1, 0x01d3, /* LATIN CAPITAL LETTER U WITH CARON */ + /* 444*/ 0x01d6, 1, 0x01d5, /* LATIN CAPITAL LETTER U WITH DIAER.. */ + /* 447*/ 0x01d8, 1, 0x01d7, /* LATIN CAPITAL LETTER U WITH DIAER.. */ + /* 450*/ 0x01da, 1, 0x01d9, /* LATIN CAPITAL LETTER U WITH DIAER.. */ + /* 453*/ 0x01dc, 1, 0x01db, /* LATIN CAPITAL LETTER U WITH DIAER.. */ + /* 456*/ 0x01dd, 1, 0x018e, /* LATIN CAPITAL LETTER REVERSED E */ + /* 459*/ 0x01df, 1, 0x01de, /* LATIN CAPITAL LETTER A WITH DIAER.. */ + /* 462*/ 0x01e1, 1, 0x01e0, /* LATIN CAPITAL LETTER A WITH DOT A.. */ + /* 465*/ 0x01e3, 1, 0x01e2, /* LATIN CAPITAL LETTER AE WITH MACR.. */ + /* 468*/ 0x01e5, 1, 0x01e4, /* LATIN CAPITAL LETTER G WITH STROKE */ + /* 471*/ 0x01e7, 1, 0x01e6, /* LATIN CAPITAL LETTER G WITH CARON */ + /* 474*/ 0x01e9, 1, 0x01e8, /* LATIN CAPITAL LETTER K WITH CARON */ + /* 477*/ 0x01eb, 1, 0x01ea, /* LATIN CAPITAL LETTER O WITH OGONEK */ + /* 480*/ 0x01ed, 1, 0x01ec, /* LATIN CAPITAL LETTER O WITH OGONE.. */ + /* 483*/ 0x01ef, 1, 0x01ee, /* LATIN CAPITAL LETTER EZH WITH CAR.. */ + /* 486*/ 0x01f3, 2, 0x01f1, 0x01f2, /* LATIN CAPITAL LETTER DZ */ + /* 490*/ 0x01f5, 1, 0x01f4, /* LATIN CAPITAL LETTER G WITH ACUTE */ + /* 493*/ 0x01f9, 1, 0x01f8, /* LATIN CAPITAL LETTER N WITH GRAVE */ + /* 496*/ 0x01fb, 1, 0x01fa, /* LATIN CAPITAL LETTER A WITH RING .. */ + /* 499*/ 0x01fd, 1, 0x01fc, /* LATIN CAPITAL LETTER AE WITH ACUTE */ + /* 502*/ 0x01ff, 1, 0x01fe, /* LATIN CAPITAL LETTER O WITH STROK.. */ + /* 505*/ 0x0201, 1, 0x0200, /* LATIN CAPITAL LETTER A WITH DOUBL.. */ + /* 508*/ 0x0203, 1, 0x0202, /* LATIN CAPITAL LETTER A WITH INVER.. */ + /* 511*/ 0x0205, 1, 0x0204, /* LATIN CAPITAL LETTER E WITH DOUBL.. */ + /* 514*/ 0x0207, 1, 0x0206, /* LATIN CAPITAL LETTER E WITH INVER.. */ + /* 517*/ 0x0209, 1, 0x0208, /* LATIN CAPITAL LETTER I WITH DOUBL.. */ + /* 520*/ 0x020b, 1, 0x020a, /* LATIN CAPITAL LETTER I WITH INVER.. */ + /* 523*/ 0x020d, 1, 0x020c, /* LATIN CAPITAL LETTER O WITH DOUBL.. */ + /* 526*/ 0x020f, 1, 0x020e, /* LATIN CAPITAL LETTER O WITH INVER.. */ + /* 529*/ 0x0211, 1, 0x0210, /* LATIN CAPITAL LETTER R WITH DOUBL.. */ + /* 532*/ 0x0213, 1, 0x0212, /* LATIN CAPITAL LETTER R WITH INVER.. */ + /* 535*/ 0x0215, 1, 0x0214, /* LATIN CAPITAL LETTER U WITH DOUBL.. */ + /* 538*/ 0x0217, 1, 0x0216, /* LATIN CAPITAL LETTER U WITH INVER.. */ + /* 541*/ 0x0219, 1, 0x0218, /* LATIN CAPITAL LETTER S WITH COMMA.. */ + /* 544*/ 0x021b, 1, 0x021a, /* LATIN CAPITAL LETTER T WITH COMMA.. */ + /* 547*/ 0x021d, 1, 0x021c, /* LATIN CAPITAL LETTER YOGH */ + /* 550*/ 0x021f, 1, 0x021e, /* LATIN CAPITAL LETTER H WITH CARON */ + /* 553*/ 0x0223, 1, 0x0222, /* LATIN CAPITAL LETTER OU */ + /* 556*/ 0x0225, 1, 0x0224, /* LATIN CAPITAL LETTER Z WITH HOOK */ + /* 559*/ 0x0227, 1, 0x0226, /* LATIN CAPITAL LETTER A WITH DOT A.. */ + /* 562*/ 0x0229, 1, 0x0228, /* LATIN CAPITAL LETTER E WITH CEDIL.. */ + /* 565*/ 0x022b, 1, 0x022a, /* LATIN CAPITAL LETTER O WITH DIAER.. */ + /* 568*/ 0x022d, 1, 0x022c, /* LATIN CAPITAL LETTER O WITH TILDE.. */ + /* 571*/ 0x022f, 1, 0x022e, /* LATIN CAPITAL LETTER O WITH DOT A.. */ + /* 574*/ 0x0231, 1, 0x0230, /* LATIN CAPITAL LETTER O WITH DOT A.. */ + /* 577*/ 0x0233, 1, 0x0232, /* LATIN CAPITAL LETTER Y WITH MACRON */ + /* 580*/ 0x023c, 1, 0x023b, /* LATIN CAPITAL LETTER C WITH STROKE */ + /* 583*/ 0x023f, 1, 0x2c7e, /* LATIN CAPITAL LETTER S WITH SWASH.. */ + /* 586*/ 0x0240, 1, 0x2c7f, /* LATIN CAPITAL LETTER Z WITH SWASH.. */ + /* 589*/ 0x0242, 1, 0x0241, /* LATIN CAPITAL LETTER GLOTTAL STOP */ + /* 592*/ 0x0247, 1, 0x0246, /* LATIN CAPITAL LETTER E WITH STROKE */ + /* 595*/ 0x0249, 1, 0x0248, /* LATIN CAPITAL LETTER J WITH STROKE */ + /* 598*/ 0x024b, 1, 0x024a, /* LATIN CAPITAL LETTER SMALL Q WITH.. */ + /* 601*/ 0x024d, 1, 0x024c, /* LATIN CAPITAL LETTER R WITH STROKE */ + /* 604*/ 0x024f, 1, 0x024e, /* LATIN CAPITAL LETTER Y WITH STROKE */ + /* 607*/ 0x0250, 1, 0x2c6f, /* LATIN CAPITAL LETTER TURNED A */ + /* 610*/ 0x0251, 1, 0x2c6d, /* LATIN CAPITAL LETTER ALPHA */ + /* 613*/ 0x0252, 1, 0x2c70, /* LATIN CAPITAL LETTER TURNED ALPHA */ + /* 616*/ 0x0253, 1, 0x0181, /* LATIN CAPITAL LETTER B WITH HOOK */ + /* 619*/ 0x0254, 1, 0x0186, /* LATIN CAPITAL LETTER OPEN O */ + /* 622*/ 0x0256, 1, 0x0189, /* LATIN CAPITAL LETTER AFRICAN D */ + /* 625*/ 0x0257, 1, 0x018a, /* LATIN CAPITAL LETTER D WITH HOOK */ + /* 628*/ 0x0259, 1, 0x018f, /* LATIN CAPITAL LETTER SCHWA */ + /* 631*/ 0x025b, 1, 0x0190, /* LATIN CAPITAL LETTER OPEN E */ + /* 634*/ 0x025c, 1, 0xa7ab, /* LATIN CAPITAL LETTER REVERSED OPE.. */ + /* 637*/ 0x0260, 1, 0x0193, /* LATIN CAPITAL LETTER G WITH HOOK */ + /* 640*/ 0x0261, 1, 0xa7ac, /* LATIN CAPITAL LETTER SCRIPT G */ + /* 643*/ 0x0263, 1, 0x0194, /* LATIN CAPITAL LETTER GAMMA */ + /* 646*/ 0x0264, 1, 0xa7cb, /* LATIN CAPITAL LETTER RAMS HORN */ + /* 649*/ 0x0265, 1, 0xa78d, /* LATIN CAPITAL LETTER TURNED H */ + /* 652*/ 0x0266, 1, 0xa7aa, /* LATIN CAPITAL LETTER H WITH HOOK */ + /* 655*/ 0x0268, 1, 0x0197, /* LATIN CAPITAL LETTER I WITH STROKE */ + /* 658*/ 0x0269, 1, 0x0196, /* LATIN CAPITAL LETTER IOTA */ + /* 661*/ 0x026a, 1, 0xa7ae, /* LATIN CAPITAL LETTER SMALL CAPITA.. */ + /* 664*/ 0x026b, 1, 0x2c62, /* LATIN CAPITAL LETTER L WITH MIDDL.. */ + /* 667*/ 0x026c, 1, 0xa7ad, /* LATIN CAPITAL LETTER L WITH BELT */ + /* 670*/ 0x026f, 1, 0x019c, /* LATIN CAPITAL LETTER TURNED M */ + /* 673*/ 0x0271, 1, 0x2c6e, /* LATIN CAPITAL LETTER M WITH HOOK */ + /* 676*/ 0x0272, 1, 0x019d, /* LATIN CAPITAL LETTER N WITH LEFT .. */ + /* 679*/ 0x0275, 1, 0x019f, /* LATIN CAPITAL LETTER O WITH MIDDL.. */ + /* 682*/ 0x027d, 1, 0x2c64, /* LATIN CAPITAL LETTER R WITH TAIL */ + /* 685*/ 0x0280, 1, 0x01a6, /* LATIN LETTER YR */ + /* 688*/ 0x0282, 1, 0xa7c5, /* LATIN CAPITAL LETTER S WITH HOOK */ + /* 691*/ 0x0283, 1, 0x01a9, /* LATIN CAPITAL LETTER ESH */ + /* 694*/ 0x0287, 1, 0xa7b1, /* LATIN CAPITAL LETTER TURNED T */ + /* 697*/ 0x0288, 1, 0x01ae, /* LATIN CAPITAL LETTER T WITH RETRO.. */ + /* 700*/ 0x0289, 1, 0x0244, /* LATIN CAPITAL LETTER U BAR */ + /* 703*/ 0x028a, 1, 0x01b1, /* LATIN CAPITAL LETTER UPSILON */ + /* 706*/ 0x028b, 1, 0x01b2, /* LATIN CAPITAL LETTER V WITH HOOK */ + /* 709*/ 0x028c, 1, 0x0245, /* LATIN CAPITAL LETTER TURNED V */ + /* 712*/ 0x0292, 1, 0x01b7, /* LATIN CAPITAL LETTER EZH */ + /* 715*/ 0x029d, 1, 0xa7b2, /* LATIN CAPITAL LETTER J WITH CROSS.. */ + /* 718*/ 0x029e, 1, 0xa7b0, /* LATIN CAPITAL LETTER TURNED K */ + /* 721*/ 0x0371, 1, 0x0370, /* GREEK CAPITAL LETTER HETA */ + /* 724*/ 0x0373, 1, 0x0372, /* GREEK CAPITAL LETTER ARCHAIC SAMPI */ + /* 727*/ 0x0377, 1, 0x0376, /* GREEK CAPITAL LETTER PAMPHYLIAN D.. */ + /* 730*/ 0x037b, 1, 0x03fd, /* GREEK CAPITAL REVERSED LUNATE SIG.. */ + /* 733*/ 0x037c, 1, 0x03fe, /* GREEK CAPITAL DOTTED LUNATE SIGMA.. */ + /* 736*/ 0x037d, 1, 0x03ff, /* GREEK CAPITAL REVERSED DOTTED LUN.. */ + /* 739*/ 0x03ac, 1, 0x0386, /* GREEK CAPITAL LETTER ALPHA WITH T.. */ + /* 742*/ 0x03ad, 1, 0x0388, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /* 745*/ 0x03ae, 1, 0x0389, /* GREEK CAPITAL LETTER ETA WITH TON.. */ + /* 748*/ 0x03af, 1, 0x038a, /* GREEK CAPITAL LETTER IOTA WITH TO.. */ + /* 751*/ 0x03b1, 1, 0x0391, /* GREEK CAPITAL LETTER ALPHA */ + /* 754*/ 0x03b2, 2, 0x0392, 0x03d0, /* GREEK CAPITAL LETTER BETA */ + /* 758*/ 0x03b3, 1, 0x0393, /* GREEK CAPITAL LETTER GAMMA */ + /* 761*/ 0x03b4, 1, 0x0394, /* GREEK CAPITAL LETTER DELTA */ + /* 764*/ 0x03b5, 2, 0x0395, 0x03f5, /* GREEK CAPITAL LETTER EPSILON */ + /* 768*/ 0x03b6, 1, 0x0396, /* GREEK CAPITAL LETTER ZETA */ + /* 771*/ 0x03b7, 1, 0x0397, /* GREEK CAPITAL LETTER ETA */ + /* 774*/ 0x03b8, 3, 0x0398, 0x03d1, 0x03f4, /* GREEK CAPITAL LETTER THETA */ + /* 779*/ 0x03b9, 3, 0x0345, 0x0399, 0x1fbe, /* COMBINING GREEK YPOGEGRAMMENI */ + /* 784*/ 0x03ba, 2, 0x039a, 0x03f0, /* GREEK CAPITAL LETTER KAPPA */ + /* 788*/ 0x03bb, 1, 0x039b, /* GREEK CAPITAL LETTER LAMDA */ + /* 791*/ 0x03bc, 2, 0x00b5, 0x039c, /* MICRO SIGN */ + /* 795*/ 0x03bd, 1, 0x039d, /* GREEK CAPITAL LETTER NU */ + /* 798*/ 0x03be, 1, 0x039e, /* GREEK CAPITAL LETTER XI */ + /* 801*/ 0x03bf, 1, 0x039f, /* GREEK CAPITAL LETTER OMICRON */ + /* 804*/ 0x03c0, 2, 0x03a0, 0x03d6, /* GREEK CAPITAL LETTER PI */ + /* 808*/ 0x03c1, 2, 0x03a1, 0x03f1, /* GREEK CAPITAL LETTER RHO */ + /* 812*/ 0x03c3, 2, 0x03a3, 0x03c2, /* GREEK CAPITAL LETTER SIGMA */ + /* 816*/ 0x03c4, 1, 0x03a4, /* GREEK CAPITAL LETTER TAU */ + /* 819*/ 0x03c5, 1, 0x03a5, /* GREEK CAPITAL LETTER UPSILON */ + /* 822*/ 0x03c6, 2, 0x03a6, 0x03d5, /* GREEK CAPITAL LETTER PHI */ + /* 826*/ 0x03c7, 1, 0x03a7, /* GREEK CAPITAL LETTER CHI */ + /* 829*/ 0x03c8, 1, 0x03a8, /* GREEK CAPITAL LETTER PSI */ + /* 832*/ 0x03c9, 2, 0x03a9, 0x2126, /* GREEK CAPITAL LETTER OMEGA */ + /* 836*/ 0x03ca, 1, 0x03aa, /* GREEK CAPITAL LETTER IOTA WITH DI.. */ + /* 839*/ 0x03cb, 1, 0x03ab, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /* 842*/ 0x03cc, 1, 0x038c, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /* 845*/ 0x03cd, 1, 0x038e, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /* 848*/ 0x03ce, 1, 0x038f, /* GREEK CAPITAL LETTER OMEGA WITH T.. */ + /* 851*/ 0x03d7, 1, 0x03cf, /* GREEK CAPITAL KAI SYMBOL */ + /* 854*/ 0x03d9, 1, 0x03d8, /* GREEK LETTER ARCHAIC KOPPA */ + /* 857*/ 0x03db, 1, 0x03da, /* GREEK LETTER STIGMA */ + /* 860*/ 0x03dd, 1, 0x03dc, /* GREEK LETTER DIGAMMA */ + /* 863*/ 0x03df, 1, 0x03de, /* GREEK LETTER KOPPA */ + /* 866*/ 0x03e1, 1, 0x03e0, /* GREEK LETTER SAMPI */ + /* 869*/ 0x03e3, 1, 0x03e2, /* COPTIC CAPITAL LETTER SHEI */ + /* 872*/ 0x03e5, 1, 0x03e4, /* COPTIC CAPITAL LETTER FEI */ + /* 875*/ 0x03e7, 1, 0x03e6, /* COPTIC CAPITAL LETTER KHEI */ + /* 878*/ 0x03e9, 1, 0x03e8, /* COPTIC CAPITAL LETTER HORI */ + /* 881*/ 0x03eb, 1, 0x03ea, /* COPTIC CAPITAL LETTER GANGIA */ + /* 884*/ 0x03ed, 1, 0x03ec, /* COPTIC CAPITAL LETTER SHIMA */ + /* 887*/ 0x03ef, 1, 0x03ee, /* COPTIC CAPITAL LETTER DEI */ + /* 890*/ 0x03f2, 1, 0x03f9, /* GREEK CAPITAL LUNATE SIGMA SYMBOL */ + /* 893*/ 0x03f3, 1, 0x037f, /* GREEK CAPITAL LETTER YOT */ + /* 896*/ 0x03f8, 1, 0x03f7, /* GREEK CAPITAL LETTER SHO */ + /* 899*/ 0x03fb, 1, 0x03fa, /* GREEK CAPITAL LETTER SAN */ + /* 902*/ 0x0430, 1, 0x0410, /* CYRILLIC CAPITAL LETTER A */ + /* 905*/ 0x0431, 1, 0x0411, /* CYRILLIC CAPITAL LETTER BE */ + /* 908*/ 0x0432, 2, 0x0412, 0x1c80, /* CYRILLIC CAPITAL LETTER VE */ + /* 912*/ 0x0433, 1, 0x0413, /* CYRILLIC CAPITAL LETTER GHE */ + /* 915*/ 0x0434, 2, 0x0414, 0x1c81, /* CYRILLIC CAPITAL LETTER DE */ + /* 919*/ 0x0435, 1, 0x0415, /* CYRILLIC CAPITAL LETTER IE */ + /* 922*/ 0x0436, 1, 0x0416, /* CYRILLIC CAPITAL LETTER ZHE */ + /* 925*/ 0x0437, 1, 0x0417, /* CYRILLIC CAPITAL LETTER ZE */ + /* 928*/ 0x0438, 1, 0x0418, /* CYRILLIC CAPITAL LETTER I */ + /* 931*/ 0x0439, 1, 0x0419, /* CYRILLIC CAPITAL LETTER SHORT I */ + /* 934*/ 0x043a, 1, 0x041a, /* CYRILLIC CAPITAL LETTER KA */ + /* 937*/ 0x043b, 1, 0x041b, /* CYRILLIC CAPITAL LETTER EL */ + /* 940*/ 0x043c, 1, 0x041c, /* CYRILLIC CAPITAL LETTER EM */ + /* 943*/ 0x043d, 1, 0x041d, /* CYRILLIC CAPITAL LETTER EN */ + /* 946*/ 0x043e, 2, 0x041e, 0x1c82, /* CYRILLIC CAPITAL LETTER O */ + /* 950*/ 0x043f, 1, 0x041f, /* CYRILLIC CAPITAL LETTER PE */ + /* 953*/ 0x0440, 1, 0x0420, /* CYRILLIC CAPITAL LETTER ER */ + /* 956*/ 0x0441, 2, 0x0421, 0x1c83, /* CYRILLIC CAPITAL LETTER ES */ + /* 960*/ 0x0442, 3, 0x0422, 0x1c84, 0x1c85, /* CYRILLIC CAPITAL LETTER TE */ + /* 965*/ 0x0443, 1, 0x0423, /* CYRILLIC CAPITAL LETTER U */ + /* 968*/ 0x0444, 1, 0x0424, /* CYRILLIC CAPITAL LETTER EF */ + /* 971*/ 0x0445, 1, 0x0425, /* CYRILLIC CAPITAL LETTER HA */ + /* 974*/ 0x0446, 1, 0x0426, /* CYRILLIC CAPITAL LETTER TSE */ + /* 977*/ 0x0447, 1, 0x0427, /* CYRILLIC CAPITAL LETTER CHE */ + /* 980*/ 0x0448, 1, 0x0428, /* CYRILLIC CAPITAL LETTER SHA */ + /* 983*/ 0x0449, 1, 0x0429, /* CYRILLIC CAPITAL LETTER SHCHA */ + /* 986*/ 0x044a, 2, 0x042a, 0x1c86, /* CYRILLIC CAPITAL LETTER HARD SIGN */ + /* 990*/ 0x044b, 1, 0x042b, /* CYRILLIC CAPITAL LETTER YERU */ + /* 993*/ 0x044c, 1, 0x042c, /* CYRILLIC CAPITAL LETTER SOFT SIGN */ + /* 996*/ 0x044d, 1, 0x042d, /* CYRILLIC CAPITAL LETTER E */ + /* 999*/ 0x044e, 1, 0x042e, /* CYRILLIC CAPITAL LETTER YU */ + /*1002*/ 0x044f, 1, 0x042f, /* CYRILLIC CAPITAL LETTER YA */ + /*1005*/ 0x0450, 1, 0x0400, /* CYRILLIC CAPITAL LETTER IE WITH G.. */ + /*1008*/ 0x0451, 1, 0x0401, /* CYRILLIC CAPITAL LETTER IO */ + /*1011*/ 0x0452, 1, 0x0402, /* CYRILLIC CAPITAL LETTER DJE */ + /*1014*/ 0x0453, 1, 0x0403, /* CYRILLIC CAPITAL LETTER GJE */ + /*1017*/ 0x0454, 1, 0x0404, /* CYRILLIC CAPITAL LETTER UKRAINIAN.. */ + /*1020*/ 0x0455, 1, 0x0405, /* CYRILLIC CAPITAL LETTER DZE */ + /*1023*/ 0x0456, 1, 0x0406, /* CYRILLIC CAPITAL LETTER BYELORUSS.. */ + /*1026*/ 0x0457, 1, 0x0407, /* CYRILLIC CAPITAL LETTER YI */ + /*1029*/ 0x0458, 1, 0x0408, /* CYRILLIC CAPITAL LETTER JE */ + /*1032*/ 0x0459, 1, 0x0409, /* CYRILLIC CAPITAL LETTER LJE */ + /*1035*/ 0x045a, 1, 0x040a, /* CYRILLIC CAPITAL LETTER NJE */ + /*1038*/ 0x045b, 1, 0x040b, /* CYRILLIC CAPITAL LETTER TSHE */ + /*1041*/ 0x045c, 1, 0x040c, /* CYRILLIC CAPITAL LETTER KJE */ + /*1044*/ 0x045d, 1, 0x040d, /* CYRILLIC CAPITAL LETTER I WITH GR.. */ + /*1047*/ 0x045e, 1, 0x040e, /* CYRILLIC CAPITAL LETTER SHORT U */ + /*1050*/ 0x045f, 1, 0x040f, /* CYRILLIC CAPITAL LETTER DZHE */ + /*1053*/ 0x0461, 1, 0x0460, /* CYRILLIC CAPITAL LETTER OMEGA */ + /*1056*/ 0x0463, 2, 0x0462, 0x1c87, /* CYRILLIC CAPITAL LETTER YAT */ + /*1060*/ 0x0465, 1, 0x0464, /* CYRILLIC CAPITAL LETTER IOTIFIED E */ + /*1063*/ 0x0467, 1, 0x0466, /* CYRILLIC CAPITAL LETTER LITTLE YUS */ + /*1066*/ 0x0469, 1, 0x0468, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ + /*1069*/ 0x046b, 1, 0x046a, /* CYRILLIC CAPITAL LETTER BIG YUS */ + /*1072*/ 0x046d, 1, 0x046c, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ + /*1075*/ 0x046f, 1, 0x046e, /* CYRILLIC CAPITAL LETTER KSI */ + /*1078*/ 0x0471, 1, 0x0470, /* CYRILLIC CAPITAL LETTER PSI */ + /*1081*/ 0x0473, 1, 0x0472, /* CYRILLIC CAPITAL LETTER FITA */ + /*1084*/ 0x0475, 1, 0x0474, /* CYRILLIC CAPITAL LETTER IZHITSA */ + /*1087*/ 0x0477, 1, 0x0476, /* CYRILLIC CAPITAL LETTER IZHITSA W.. */ + /*1090*/ 0x0479, 1, 0x0478, /* CYRILLIC CAPITAL LETTER UK */ + /*1093*/ 0x047b, 1, 0x047a, /* CYRILLIC CAPITAL LETTER ROUND OME.. */ + /*1096*/ 0x047d, 1, 0x047c, /* CYRILLIC CAPITAL LETTER OMEGA WIT.. */ + /*1099*/ 0x047f, 1, 0x047e, /* CYRILLIC CAPITAL LETTER OT */ + /*1102*/ 0x0481, 1, 0x0480, /* CYRILLIC CAPITAL LETTER KOPPA */ + /*1105*/ 0x048b, 1, 0x048a, /* CYRILLIC CAPITAL LETTER SHORT I W.. */ + /*1108*/ 0x048d, 1, 0x048c, /* CYRILLIC CAPITAL LETTER SEMISOFT .. */ + /*1111*/ 0x048f, 1, 0x048e, /* CYRILLIC CAPITAL LETTER ER WITH T.. */ + /*1114*/ 0x0491, 1, 0x0490, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ + /*1117*/ 0x0493, 1, 0x0492, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ + /*1120*/ 0x0495, 1, 0x0494, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ + /*1123*/ 0x0497, 1, 0x0496, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */ + /*1126*/ 0x0499, 1, 0x0498, /* CYRILLIC CAPITAL LETTER ZE WITH D.. */ + /*1129*/ 0x049b, 1, 0x049a, /* CYRILLIC CAPITAL LETTER KA WITH D.. */ + /*1132*/ 0x049d, 1, 0x049c, /* CYRILLIC CAPITAL LETTER KA WITH V.. */ + /*1135*/ 0x049f, 1, 0x049e, /* CYRILLIC CAPITAL LETTER KA WITH S.. */ + /*1138*/ 0x04a1, 1, 0x04a0, /* CYRILLIC CAPITAL LETTER BASHKIR KA */ + /*1141*/ 0x04a3, 1, 0x04a2, /* CYRILLIC CAPITAL LETTER EN WITH D.. */ + /*1144*/ 0x04a5, 1, 0x04a4, /* CYRILLIC CAPITAL LIGATURE EN GHE */ + /*1147*/ 0x04a7, 1, 0x04a6, /* CYRILLIC CAPITAL LETTER PE WITH M.. */ + /*1150*/ 0x04a9, 1, 0x04a8, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ + /*1153*/ 0x04ab, 1, 0x04aa, /* CYRILLIC CAPITAL LETTER ES WITH D.. */ + /*1156*/ 0x04ad, 1, 0x04ac, /* CYRILLIC CAPITAL LETTER TE WITH D.. */ + /*1159*/ 0x04af, 1, 0x04ae, /* CYRILLIC CAPITAL LETTER STRAIGHT U */ + /*1162*/ 0x04b1, 1, 0x04b0, /* CYRILLIC CAPITAL LETTER STRAIGHT .. */ + /*1165*/ 0x04b3, 1, 0x04b2, /* CYRILLIC CAPITAL LETTER HA WITH D.. */ + /*1168*/ 0x04b5, 1, 0x04b4, /* CYRILLIC CAPITAL LIGATURE TE TSE */ + /*1171*/ 0x04b7, 1, 0x04b6, /* CYRILLIC CAPITAL LETTER CHE WITH .. */ + /*1174*/ 0x04b9, 1, 0x04b8, /* CYRILLIC CAPITAL LETTER CHE WITH .. */ + /*1177*/ 0x04bb, 1, 0x04ba, /* CYRILLIC CAPITAL LETTER SHHA */ + /*1180*/ 0x04bd, 1, 0x04bc, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ + /*1183*/ 0x04bf, 1, 0x04be, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ + /*1186*/ 0x04c2, 1, 0x04c1, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */ + /*1189*/ 0x04c4, 1, 0x04c3, /* CYRILLIC CAPITAL LETTER KA WITH H.. */ + /*1192*/ 0x04c6, 1, 0x04c5, /* CYRILLIC CAPITAL LETTER EL WITH T.. */ + /*1195*/ 0x04c8, 1, 0x04c7, /* CYRILLIC CAPITAL LETTER EN WITH H.. */ + /*1198*/ 0x04ca, 1, 0x04c9, /* CYRILLIC CAPITAL LETTER EN WITH T.. */ + /*1201*/ 0x04cc, 1, 0x04cb, /* CYRILLIC CAPITAL LETTER KHAKASSIA.. */ + /*1204*/ 0x04ce, 1, 0x04cd, /* CYRILLIC CAPITAL LETTER EM WITH T.. */ + /*1207*/ 0x04cf, 1, 0x04c0, /* CYRILLIC LETTER PALOCHKA */ + /*1210*/ 0x04d1, 1, 0x04d0, /* CYRILLIC CAPITAL LETTER A WITH BR.. */ + /*1213*/ 0x04d3, 1, 0x04d2, /* CYRILLIC CAPITAL LETTER A WITH DI.. */ + /*1216*/ 0x04d5, 1, 0x04d4, /* CYRILLIC CAPITAL LIGATURE A IE */ + /*1219*/ 0x04d7, 1, 0x04d6, /* CYRILLIC CAPITAL LETTER IE WITH B.. */ + /*1222*/ 0x04d9, 1, 0x04d8, /* CYRILLIC CAPITAL LETTER SCHWA */ + /*1225*/ 0x04db, 1, 0x04da, /* CYRILLIC CAPITAL LETTER SCHWA WIT.. */ + /*1228*/ 0x04dd, 1, 0x04dc, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */ + /*1231*/ 0x04df, 1, 0x04de, /* CYRILLIC CAPITAL LETTER ZE WITH D.. */ + /*1234*/ 0x04e1, 1, 0x04e0, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ + /*1237*/ 0x04e3, 1, 0x04e2, /* CYRILLIC CAPITAL LETTER I WITH MA.. */ + /*1240*/ 0x04e5, 1, 0x04e4, /* CYRILLIC CAPITAL LETTER I WITH DI.. */ + /*1243*/ 0x04e7, 1, 0x04e6, /* CYRILLIC CAPITAL LETTER O WITH DI.. */ + /*1246*/ 0x04e9, 1, 0x04e8, /* CYRILLIC CAPITAL LETTER BARRED O */ + /*1249*/ 0x04eb, 1, 0x04ea, /* CYRILLIC CAPITAL LETTER BARRED O .. */ + /*1252*/ 0x04ed, 1, 0x04ec, /* CYRILLIC CAPITAL LETTER E WITH DI.. */ + /*1255*/ 0x04ef, 1, 0x04ee, /* CYRILLIC CAPITAL LETTER U WITH MA.. */ + /*1258*/ 0x04f1, 1, 0x04f0, /* CYRILLIC CAPITAL LETTER U WITH DI.. */ + /*1261*/ 0x04f3, 1, 0x04f2, /* CYRILLIC CAPITAL LETTER U WITH DO.. */ + /*1264*/ 0x04f5, 1, 0x04f4, /* CYRILLIC CAPITAL LETTER CHE WITH .. */ + /*1267*/ 0x04f7, 1, 0x04f6, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ + /*1270*/ 0x04f9, 1, 0x04f8, /* CYRILLIC CAPITAL LETTER YERU WITH.. */ + /*1273*/ 0x04fb, 1, 0x04fa, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ + /*1276*/ 0x04fd, 1, 0x04fc, /* CYRILLIC CAPITAL LETTER HA WITH H.. */ + /*1279*/ 0x04ff, 1, 0x04fe, /* CYRILLIC CAPITAL LETTER HA WITH S.. */ + /*1282*/ 0x0501, 1, 0x0500, /* CYRILLIC CAPITAL LETTER KOMI DE */ + /*1285*/ 0x0503, 1, 0x0502, /* CYRILLIC CAPITAL LETTER KOMI DJE */ + /*1288*/ 0x0505, 1, 0x0504, /* CYRILLIC CAPITAL LETTER KOMI ZJE */ + /*1291*/ 0x0507, 1, 0x0506, /* CYRILLIC CAPITAL LETTER KOMI DZJE */ + /*1294*/ 0x0509, 1, 0x0508, /* CYRILLIC CAPITAL LETTER KOMI LJE */ + /*1297*/ 0x050b, 1, 0x050a, /* CYRILLIC CAPITAL LETTER KOMI NJE */ + /*1300*/ 0x050d, 1, 0x050c, /* CYRILLIC CAPITAL LETTER KOMI SJE */ + /*1303*/ 0x050f, 1, 0x050e, /* CYRILLIC CAPITAL LETTER KOMI TJE */ + /*1306*/ 0x0511, 1, 0x0510, /* CYRILLIC CAPITAL LETTER REVERSED .. */ + /*1309*/ 0x0513, 1, 0x0512, /* CYRILLIC CAPITAL LETTER EL WITH H.. */ + /*1312*/ 0x0515, 1, 0x0514, /* CYRILLIC CAPITAL LETTER LHA */ + /*1315*/ 0x0517, 1, 0x0516, /* CYRILLIC CAPITAL LETTER RHA */ + /*1318*/ 0x0519, 1, 0x0518, /* CYRILLIC CAPITAL LETTER YAE */ + /*1321*/ 0x051b, 1, 0x051a, /* CYRILLIC CAPITAL LETTER QA */ + /*1324*/ 0x051d, 1, 0x051c, /* CYRILLIC CAPITAL LETTER WE */ + /*1327*/ 0x051f, 1, 0x051e, /* CYRILLIC CAPITAL LETTER ALEUT KA */ + /*1330*/ 0x0521, 1, 0x0520, /* CYRILLIC CAPITAL LETTER EL WITH M.. */ + /*1333*/ 0x0523, 1, 0x0522, /* CYRILLIC CAPITAL LETTER EN WITH M.. */ + /*1336*/ 0x0525, 1, 0x0524, /* CYRILLIC CAPITAL LETTER PE WITH D.. */ + /*1339*/ 0x0527, 1, 0x0526, /* CYRILLIC CAPITAL LETTER SHHA WITH.. */ + /*1342*/ 0x0529, 1, 0x0528, /* CYRILLIC CAPITAL LETTER EN WITH L.. */ + /*1345*/ 0x052b, 1, 0x052a, /* CYRILLIC CAPITAL LETTER DZZHE */ + /*1348*/ 0x052d, 1, 0x052c, /* CYRILLIC CAPITAL LETTER DCHE */ + /*1351*/ 0x052f, 1, 0x052e, /* CYRILLIC CAPITAL LETTER EL WITH D.. */ + /*1354*/ 0x0561, 1, 0x0531, /* ARMENIAN CAPITAL LETTER AYB */ + /*1357*/ 0x0562, 1, 0x0532, /* ARMENIAN CAPITAL LETTER BEN */ + /*1360*/ 0x0563, 1, 0x0533, /* ARMENIAN CAPITAL LETTER GIM */ + /*1363*/ 0x0564, 1, 0x0534, /* ARMENIAN CAPITAL LETTER DA */ + /*1366*/ 0x0565, 1, 0x0535, /* ARMENIAN CAPITAL LETTER ECH */ + /*1369*/ 0x0566, 1, 0x0536, /* ARMENIAN CAPITAL LETTER ZA */ + /*1372*/ 0x0567, 1, 0x0537, /* ARMENIAN CAPITAL LETTER EH */ + /*1375*/ 0x0568, 1, 0x0538, /* ARMENIAN CAPITAL LETTER ET */ + /*1378*/ 0x0569, 1, 0x0539, /* ARMENIAN CAPITAL LETTER TO */ + /*1381*/ 0x056a, 1, 0x053a, /* ARMENIAN CAPITAL LETTER ZHE */ + /*1384*/ 0x056b, 1, 0x053b, /* ARMENIAN CAPITAL LETTER INI */ + /*1387*/ 0x056c, 1, 0x053c, /* ARMENIAN CAPITAL LETTER LIWN */ + /*1390*/ 0x056d, 1, 0x053d, /* ARMENIAN CAPITAL LETTER XEH */ + /*1393*/ 0x056e, 1, 0x053e, /* ARMENIAN CAPITAL LETTER CA */ + /*1396*/ 0x056f, 1, 0x053f, /* ARMENIAN CAPITAL LETTER KEN */ + /*1399*/ 0x0570, 1, 0x0540, /* ARMENIAN CAPITAL LETTER HO */ + /*1402*/ 0x0571, 1, 0x0541, /* ARMENIAN CAPITAL LETTER JA */ + /*1405*/ 0x0572, 1, 0x0542, /* ARMENIAN CAPITAL LETTER GHAD */ + /*1408*/ 0x0573, 1, 0x0543, /* ARMENIAN CAPITAL LETTER CHEH */ + /*1411*/ 0x0574, 1, 0x0544, /* ARMENIAN CAPITAL LETTER MEN */ + /*1414*/ 0x0575, 1, 0x0545, /* ARMENIAN CAPITAL LETTER YI */ + /*1417*/ 0x0576, 1, 0x0546, /* ARMENIAN CAPITAL LETTER NOW */ + /*1420*/ 0x0577, 1, 0x0547, /* ARMENIAN CAPITAL LETTER SHA */ + /*1423*/ 0x0578, 1, 0x0548, /* ARMENIAN CAPITAL LETTER VO */ + /*1426*/ 0x0579, 1, 0x0549, /* ARMENIAN CAPITAL LETTER CHA */ + /*1429*/ 0x057a, 1, 0x054a, /* ARMENIAN CAPITAL LETTER PEH */ + /*1432*/ 0x057b, 1, 0x054b, /* ARMENIAN CAPITAL LETTER JHEH */ + /*1435*/ 0x057c, 1, 0x054c, /* ARMENIAN CAPITAL LETTER RA */ + /*1438*/ 0x057d, 1, 0x054d, /* ARMENIAN CAPITAL LETTER SEH */ + /*1441*/ 0x057e, 1, 0x054e, /* ARMENIAN CAPITAL LETTER VEW */ + /*1444*/ 0x057f, 1, 0x054f, /* ARMENIAN CAPITAL LETTER TIWN */ + /*1447*/ 0x0580, 1, 0x0550, /* ARMENIAN CAPITAL LETTER REH */ + /*1450*/ 0x0581, 1, 0x0551, /* ARMENIAN CAPITAL LETTER CO */ + /*1453*/ 0x0582, 1, 0x0552, /* ARMENIAN CAPITAL LETTER YIWN */ + /*1456*/ 0x0583, 1, 0x0553, /* ARMENIAN CAPITAL LETTER PIWR */ + /*1459*/ 0x0584, 1, 0x0554, /* ARMENIAN CAPITAL LETTER KEH */ + /*1462*/ 0x0585, 1, 0x0555, /* ARMENIAN CAPITAL LETTER OH */ + /*1465*/ 0x0586, 1, 0x0556, /* ARMENIAN CAPITAL LETTER FEH */ + /*1468*/ 0x10d0, 1, 0x1c90, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1471*/ 0x10d1, 1, 0x1c91, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1474*/ 0x10d2, 1, 0x1c92, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1477*/ 0x10d3, 1, 0x1c93, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1480*/ 0x10d4, 1, 0x1c94, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1483*/ 0x10d5, 1, 0x1c95, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1486*/ 0x10d6, 1, 0x1c96, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1489*/ 0x10d7, 1, 0x1c97, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1492*/ 0x10d8, 1, 0x1c98, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1495*/ 0x10d9, 1, 0x1c99, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1498*/ 0x10da, 1, 0x1c9a, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1501*/ 0x10db, 1, 0x1c9b, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1504*/ 0x10dc, 1, 0x1c9c, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1507*/ 0x10dd, 1, 0x1c9d, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1510*/ 0x10de, 1, 0x1c9e, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1513*/ 0x10df, 1, 0x1c9f, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1516*/ 0x10e0, 1, 0x1ca0, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1519*/ 0x10e1, 1, 0x1ca1, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1522*/ 0x10e2, 1, 0x1ca2, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1525*/ 0x10e3, 1, 0x1ca3, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1528*/ 0x10e4, 1, 0x1ca4, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1531*/ 0x10e5, 1, 0x1ca5, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1534*/ 0x10e6, 1, 0x1ca6, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1537*/ 0x10e7, 1, 0x1ca7, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1540*/ 0x10e8, 1, 0x1ca8, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1543*/ 0x10e9, 1, 0x1ca9, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1546*/ 0x10ea, 1, 0x1caa, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1549*/ 0x10eb, 1, 0x1cab, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1552*/ 0x10ec, 1, 0x1cac, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1555*/ 0x10ed, 1, 0x1cad, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1558*/ 0x10ee, 1, 0x1cae, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1561*/ 0x10ef, 1, 0x1caf, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1564*/ 0x10f0, 1, 0x1cb0, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1567*/ 0x10f1, 1, 0x1cb1, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1570*/ 0x10f2, 1, 0x1cb2, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1573*/ 0x10f3, 1, 0x1cb3, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1576*/ 0x10f4, 1, 0x1cb4, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1579*/ 0x10f5, 1, 0x1cb5, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1582*/ 0x10f6, 1, 0x1cb6, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1585*/ 0x10f7, 1, 0x1cb7, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1588*/ 0x10f8, 1, 0x1cb8, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1591*/ 0x10f9, 1, 0x1cb9, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1594*/ 0x10fa, 1, 0x1cba, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1597*/ 0x10fd, 1, 0x1cbd, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1600*/ 0x10fe, 1, 0x1cbe, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1603*/ 0x10ff, 1, 0x1cbf, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ + /*1606*/ 0x13a0, 1, 0xab70, /* CHEROKEE SMALL LETTER A */ + /*1609*/ 0x13a1, 1, 0xab71, /* CHEROKEE SMALL LETTER E */ + /*1612*/ 0x13a2, 1, 0xab72, /* CHEROKEE SMALL LETTER I */ + /*1615*/ 0x13a3, 1, 0xab73, /* CHEROKEE SMALL LETTER O */ + /*1618*/ 0x13a4, 1, 0xab74, /* CHEROKEE SMALL LETTER U */ + /*1621*/ 0x13a5, 1, 0xab75, /* CHEROKEE SMALL LETTER V */ + /*1624*/ 0x13a6, 1, 0xab76, /* CHEROKEE SMALL LETTER GA */ + /*1627*/ 0x13a7, 1, 0xab77, /* CHEROKEE SMALL LETTER KA */ + /*1630*/ 0x13a8, 1, 0xab78, /* CHEROKEE SMALL LETTER GE */ + /*1633*/ 0x13a9, 1, 0xab79, /* CHEROKEE SMALL LETTER GI */ + /*1636*/ 0x13aa, 1, 0xab7a, /* CHEROKEE SMALL LETTER GO */ + /*1639*/ 0x13ab, 1, 0xab7b, /* CHEROKEE SMALL LETTER GU */ + /*1642*/ 0x13ac, 1, 0xab7c, /* CHEROKEE SMALL LETTER GV */ + /*1645*/ 0x13ad, 1, 0xab7d, /* CHEROKEE SMALL LETTER HA */ + /*1648*/ 0x13ae, 1, 0xab7e, /* CHEROKEE SMALL LETTER HE */ + /*1651*/ 0x13af, 1, 0xab7f, /* CHEROKEE SMALL LETTER HI */ + /*1654*/ 0x13b0, 1, 0xab80, /* CHEROKEE SMALL LETTER HO */ + /*1657*/ 0x13b1, 1, 0xab81, /* CHEROKEE SMALL LETTER HU */ + /*1660*/ 0x13b2, 1, 0xab82, /* CHEROKEE SMALL LETTER HV */ + /*1663*/ 0x13b3, 1, 0xab83, /* CHEROKEE SMALL LETTER LA */ + /*1666*/ 0x13b4, 1, 0xab84, /* CHEROKEE SMALL LETTER LE */ + /*1669*/ 0x13b5, 1, 0xab85, /* CHEROKEE SMALL LETTER LI */ + /*1672*/ 0x13b6, 1, 0xab86, /* CHEROKEE SMALL LETTER LO */ + /*1675*/ 0x13b7, 1, 0xab87, /* CHEROKEE SMALL LETTER LU */ + /*1678*/ 0x13b8, 1, 0xab88, /* CHEROKEE SMALL LETTER LV */ + /*1681*/ 0x13b9, 1, 0xab89, /* CHEROKEE SMALL LETTER MA */ + /*1684*/ 0x13ba, 1, 0xab8a, /* CHEROKEE SMALL LETTER ME */ + /*1687*/ 0x13bb, 1, 0xab8b, /* CHEROKEE SMALL LETTER MI */ + /*1690*/ 0x13bc, 1, 0xab8c, /* CHEROKEE SMALL LETTER MO */ + /*1693*/ 0x13bd, 1, 0xab8d, /* CHEROKEE SMALL LETTER MU */ + /*1696*/ 0x13be, 1, 0xab8e, /* CHEROKEE SMALL LETTER NA */ + /*1699*/ 0x13bf, 1, 0xab8f, /* CHEROKEE SMALL LETTER HNA */ + /*1702*/ 0x13c0, 1, 0xab90, /* CHEROKEE SMALL LETTER NAH */ + /*1705*/ 0x13c1, 1, 0xab91, /* CHEROKEE SMALL LETTER NE */ + /*1708*/ 0x13c2, 1, 0xab92, /* CHEROKEE SMALL LETTER NI */ + /*1711*/ 0x13c3, 1, 0xab93, /* CHEROKEE SMALL LETTER NO */ + /*1714*/ 0x13c4, 1, 0xab94, /* CHEROKEE SMALL LETTER NU */ + /*1717*/ 0x13c5, 1, 0xab95, /* CHEROKEE SMALL LETTER NV */ + /*1720*/ 0x13c6, 1, 0xab96, /* CHEROKEE SMALL LETTER QUA */ + /*1723*/ 0x13c7, 1, 0xab97, /* CHEROKEE SMALL LETTER QUE */ + /*1726*/ 0x13c8, 1, 0xab98, /* CHEROKEE SMALL LETTER QUI */ + /*1729*/ 0x13c9, 1, 0xab99, /* CHEROKEE SMALL LETTER QUO */ + /*1732*/ 0x13ca, 1, 0xab9a, /* CHEROKEE SMALL LETTER QUU */ + /*1735*/ 0x13cb, 1, 0xab9b, /* CHEROKEE SMALL LETTER QUV */ + /*1738*/ 0x13cc, 1, 0xab9c, /* CHEROKEE SMALL LETTER SA */ + /*1741*/ 0x13cd, 1, 0xab9d, /* CHEROKEE SMALL LETTER S */ + /*1744*/ 0x13ce, 1, 0xab9e, /* CHEROKEE SMALL LETTER SE */ + /*1747*/ 0x13cf, 1, 0xab9f, /* CHEROKEE SMALL LETTER SI */ + /*1750*/ 0x13d0, 1, 0xaba0, /* CHEROKEE SMALL LETTER SO */ + /*1753*/ 0x13d1, 1, 0xaba1, /* CHEROKEE SMALL LETTER SU */ + /*1756*/ 0x13d2, 1, 0xaba2, /* CHEROKEE SMALL LETTER SV */ + /*1759*/ 0x13d3, 1, 0xaba3, /* CHEROKEE SMALL LETTER DA */ + /*1762*/ 0x13d4, 1, 0xaba4, /* CHEROKEE SMALL LETTER TA */ + /*1765*/ 0x13d5, 1, 0xaba5, /* CHEROKEE SMALL LETTER DE */ + /*1768*/ 0x13d6, 1, 0xaba6, /* CHEROKEE SMALL LETTER TE */ + /*1771*/ 0x13d7, 1, 0xaba7, /* CHEROKEE SMALL LETTER DI */ + /*1774*/ 0x13d8, 1, 0xaba8, /* CHEROKEE SMALL LETTER TI */ + /*1777*/ 0x13d9, 1, 0xaba9, /* CHEROKEE SMALL LETTER DO */ + /*1780*/ 0x13da, 1, 0xabaa, /* CHEROKEE SMALL LETTER DU */ + /*1783*/ 0x13db, 1, 0xabab, /* CHEROKEE SMALL LETTER DV */ + /*1786*/ 0x13dc, 1, 0xabac, /* CHEROKEE SMALL LETTER DLA */ + /*1789*/ 0x13dd, 1, 0xabad, /* CHEROKEE SMALL LETTER TLA */ + /*1792*/ 0x13de, 1, 0xabae, /* CHEROKEE SMALL LETTER TLE */ + /*1795*/ 0x13df, 1, 0xabaf, /* CHEROKEE SMALL LETTER TLI */ + /*1798*/ 0x13e0, 1, 0xabb0, /* CHEROKEE SMALL LETTER TLO */ + /*1801*/ 0x13e1, 1, 0xabb1, /* CHEROKEE SMALL LETTER TLU */ + /*1804*/ 0x13e2, 1, 0xabb2, /* CHEROKEE SMALL LETTER TLV */ + /*1807*/ 0x13e3, 1, 0xabb3, /* CHEROKEE SMALL LETTER TSA */ + /*1810*/ 0x13e4, 1, 0xabb4, /* CHEROKEE SMALL LETTER TSE */ + /*1813*/ 0x13e5, 1, 0xabb5, /* CHEROKEE SMALL LETTER TSI */ + /*1816*/ 0x13e6, 1, 0xabb6, /* CHEROKEE SMALL LETTER TSO */ + /*1819*/ 0x13e7, 1, 0xabb7, /* CHEROKEE SMALL LETTER TSU */ + /*1822*/ 0x13e8, 1, 0xabb8, /* CHEROKEE SMALL LETTER TSV */ + /*1825*/ 0x13e9, 1, 0xabb9, /* CHEROKEE SMALL LETTER WA */ + /*1828*/ 0x13ea, 1, 0xabba, /* CHEROKEE SMALL LETTER WE */ + /*1831*/ 0x13eb, 1, 0xabbb, /* CHEROKEE SMALL LETTER WI */ + /*1834*/ 0x13ec, 1, 0xabbc, /* CHEROKEE SMALL LETTER WO */ + /*1837*/ 0x13ed, 1, 0xabbd, /* CHEROKEE SMALL LETTER WU */ + /*1840*/ 0x13ee, 1, 0xabbe, /* CHEROKEE SMALL LETTER WV */ + /*1843*/ 0x13ef, 1, 0xabbf, /* CHEROKEE SMALL LETTER YA */ + /*1846*/ 0x13f0, 1, 0x13f8, /* CHEROKEE SMALL LETTER YE */ + /*1849*/ 0x13f1, 1, 0x13f9, /* CHEROKEE SMALL LETTER YI */ + /*1852*/ 0x13f2, 1, 0x13fa, /* CHEROKEE SMALL LETTER YO */ + /*1855*/ 0x13f3, 1, 0x13fb, /* CHEROKEE SMALL LETTER YU */ + /*1858*/ 0x13f4, 1, 0x13fc, /* CHEROKEE SMALL LETTER YV */ + /*1861*/ 0x13f5, 1, 0x13fd, /* CHEROKEE SMALL LETTER MV */ + /*1864*/ 0x1c8a, 1, 0x1c89, /* CYRILLIC CAPITAL LETTER TJE */ + /*1867*/ 0x1d79, 1, 0xa77d, /* LATIN CAPITAL LETTER INSULAR G */ + /*1870*/ 0x1d7d, 1, 0x2c63, /* LATIN CAPITAL LETTER P WITH STROKE */ + /*1873*/ 0x1d8e, 1, 0xa7c6, /* LATIN CAPITAL LETTER Z WITH PALAT.. */ + /*1876*/ 0x1e01, 1, 0x1e00, /* LATIN CAPITAL LETTER A WITH RING .. */ + /*1879*/ 0x1e03, 1, 0x1e02, /* LATIN CAPITAL LETTER B WITH DOT A.. */ + /*1882*/ 0x1e05, 1, 0x1e04, /* LATIN CAPITAL LETTER B WITH DOT B.. */ + /*1885*/ 0x1e07, 1, 0x1e06, /* LATIN CAPITAL LETTER B WITH LINE .. */ + /*1888*/ 0x1e09, 1, 0x1e08, /* LATIN CAPITAL LETTER C WITH CEDIL.. */ + /*1891*/ 0x1e0b, 1, 0x1e0a, /* LATIN CAPITAL LETTER D WITH DOT A.. */ + /*1894*/ 0x1e0d, 1, 0x1e0c, /* LATIN CAPITAL LETTER D WITH DOT B.. */ + /*1897*/ 0x1e0f, 1, 0x1e0e, /* LATIN CAPITAL LETTER D WITH LINE .. */ + /*1900*/ 0x1e11, 1, 0x1e10, /* LATIN CAPITAL LETTER D WITH CEDIL.. */ + /*1903*/ 0x1e13, 1, 0x1e12, /* LATIN CAPITAL LETTER D WITH CIRCU.. */ + /*1906*/ 0x1e15, 1, 0x1e14, /* LATIN CAPITAL LETTER E WITH MACRO.. */ + /*1909*/ 0x1e17, 1, 0x1e16, /* LATIN CAPITAL LETTER E WITH MACRO.. */ + /*1912*/ 0x1e19, 1, 0x1e18, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ + /*1915*/ 0x1e1b, 1, 0x1e1a, /* LATIN CAPITAL LETTER E WITH TILDE.. */ + /*1918*/ 0x1e1d, 1, 0x1e1c, /* LATIN CAPITAL LETTER E WITH CEDIL.. */ + /*1921*/ 0x1e1f, 1, 0x1e1e, /* LATIN CAPITAL LETTER F WITH DOT A.. */ + /*1924*/ 0x1e21, 1, 0x1e20, /* LATIN CAPITAL LETTER G WITH MACRON */ + /*1927*/ 0x1e23, 1, 0x1e22, /* LATIN CAPITAL LETTER H WITH DOT A.. */ + /*1930*/ 0x1e25, 1, 0x1e24, /* LATIN CAPITAL LETTER H WITH DOT B.. */ + /*1933*/ 0x1e27, 1, 0x1e26, /* LATIN CAPITAL LETTER H WITH DIAER.. */ + /*1936*/ 0x1e29, 1, 0x1e28, /* LATIN CAPITAL LETTER H WITH CEDIL.. */ + /*1939*/ 0x1e2b, 1, 0x1e2a, /* LATIN CAPITAL LETTER H WITH BREVE.. */ + /*1942*/ 0x1e2d, 1, 0x1e2c, /* LATIN CAPITAL LETTER I WITH TILDE.. */ + /*1945*/ 0x1e2f, 1, 0x1e2e, /* LATIN CAPITAL LETTER I WITH DIAER.. */ + /*1948*/ 0x1e31, 1, 0x1e30, /* LATIN CAPITAL LETTER K WITH ACUTE */ + /*1951*/ 0x1e33, 1, 0x1e32, /* LATIN CAPITAL LETTER K WITH DOT B.. */ + /*1954*/ 0x1e35, 1, 0x1e34, /* LATIN CAPITAL LETTER K WITH LINE .. */ + /*1957*/ 0x1e37, 1, 0x1e36, /* LATIN CAPITAL LETTER L WITH DOT B.. */ + /*1960*/ 0x1e39, 1, 0x1e38, /* LATIN CAPITAL LETTER L WITH DOT B.. */ + /*1963*/ 0x1e3b, 1, 0x1e3a, /* LATIN CAPITAL LETTER L WITH LINE .. */ + /*1966*/ 0x1e3d, 1, 0x1e3c, /* LATIN CAPITAL LETTER L WITH CIRCU.. */ + /*1969*/ 0x1e3f, 1, 0x1e3e, /* LATIN CAPITAL LETTER M WITH ACUTE */ + /*1972*/ 0x1e41, 1, 0x1e40, /* LATIN CAPITAL LETTER M WITH DOT A.. */ + /*1975*/ 0x1e43, 1, 0x1e42, /* LATIN CAPITAL LETTER M WITH DOT B.. */ + /*1978*/ 0x1e45, 1, 0x1e44, /* LATIN CAPITAL LETTER N WITH DOT A.. */ + /*1981*/ 0x1e47, 1, 0x1e46, /* LATIN CAPITAL LETTER N WITH DOT B.. */ + /*1984*/ 0x1e49, 1, 0x1e48, /* LATIN CAPITAL LETTER N WITH LINE .. */ + /*1987*/ 0x1e4b, 1, 0x1e4a, /* LATIN CAPITAL LETTER N WITH CIRCU.. */ + /*1990*/ 0x1e4d, 1, 0x1e4c, /* LATIN CAPITAL LETTER O WITH TILDE.. */ + /*1993*/ 0x1e4f, 1, 0x1e4e, /* LATIN CAPITAL LETTER O WITH TILDE.. */ + /*1996*/ 0x1e51, 1, 0x1e50, /* LATIN CAPITAL LETTER O WITH MACRO.. */ + /*1999*/ 0x1e53, 1, 0x1e52, /* LATIN CAPITAL LETTER O WITH MACRO.. */ + /*2002*/ 0x1e55, 1, 0x1e54, /* LATIN CAPITAL LETTER P WITH ACUTE */ + /*2005*/ 0x1e57, 1, 0x1e56, /* LATIN CAPITAL LETTER P WITH DOT A.. */ + /*2008*/ 0x1e59, 1, 0x1e58, /* LATIN CAPITAL LETTER R WITH DOT A.. */ + /*2011*/ 0x1e5b, 1, 0x1e5a, /* LATIN CAPITAL LETTER R WITH DOT B.. */ + /*2014*/ 0x1e5d, 1, 0x1e5c, /* LATIN CAPITAL LETTER R WITH DOT B.. */ + /*2017*/ 0x1e5f, 1, 0x1e5e, /* LATIN CAPITAL LETTER R WITH LINE .. */ + /*2020*/ 0x1e61, 2, 0x1e60, 0x1e9b, /* LATIN CAPITAL LETTER S WITH DOT A.. */ + /*2024*/ 0x1e63, 1, 0x1e62, /* LATIN CAPITAL LETTER S WITH DOT B.. */ + /*2027*/ 0x1e65, 1, 0x1e64, /* LATIN CAPITAL LETTER S WITH ACUTE.. */ + /*2030*/ 0x1e67, 1, 0x1e66, /* LATIN CAPITAL LETTER S WITH CARON.. */ + /*2033*/ 0x1e69, 1, 0x1e68, /* LATIN CAPITAL LETTER S WITH DOT B.. */ + /*2036*/ 0x1e6b, 1, 0x1e6a, /* LATIN CAPITAL LETTER T WITH DOT A.. */ + /*2039*/ 0x1e6d, 1, 0x1e6c, /* LATIN CAPITAL LETTER T WITH DOT B.. */ + /*2042*/ 0x1e6f, 1, 0x1e6e, /* LATIN CAPITAL LETTER T WITH LINE .. */ + /*2045*/ 0x1e71, 1, 0x1e70, /* LATIN CAPITAL LETTER T WITH CIRCU.. */ + /*2048*/ 0x1e73, 1, 0x1e72, /* LATIN CAPITAL LETTER U WITH DIAER.. */ + /*2051*/ 0x1e75, 1, 0x1e74, /* LATIN CAPITAL LETTER U WITH TILDE.. */ + /*2054*/ 0x1e77, 1, 0x1e76, /* LATIN CAPITAL LETTER U WITH CIRCU.. */ + /*2057*/ 0x1e79, 1, 0x1e78, /* LATIN CAPITAL LETTER U WITH TILDE.. */ + /*2060*/ 0x1e7b, 1, 0x1e7a, /* LATIN CAPITAL LETTER U WITH MACRO.. */ + /*2063*/ 0x1e7d, 1, 0x1e7c, /* LATIN CAPITAL LETTER V WITH TILDE */ + /*2066*/ 0x1e7f, 1, 0x1e7e, /* LATIN CAPITAL LETTER V WITH DOT B.. */ + /*2069*/ 0x1e81, 1, 0x1e80, /* LATIN CAPITAL LETTER W WITH GRAVE */ + /*2072*/ 0x1e83, 1, 0x1e82, /* LATIN CAPITAL LETTER W WITH ACUTE */ + /*2075*/ 0x1e85, 1, 0x1e84, /* LATIN CAPITAL LETTER W WITH DIAER.. */ + /*2078*/ 0x1e87, 1, 0x1e86, /* LATIN CAPITAL LETTER W WITH DOT A.. */ + /*2081*/ 0x1e89, 1, 0x1e88, /* LATIN CAPITAL LETTER W WITH DOT B.. */ + /*2084*/ 0x1e8b, 1, 0x1e8a, /* LATIN CAPITAL LETTER X WITH DOT A.. */ + /*2087*/ 0x1e8d, 1, 0x1e8c, /* LATIN CAPITAL LETTER X WITH DIAER.. */ + /*2090*/ 0x1e8f, 1, 0x1e8e, /* LATIN CAPITAL LETTER Y WITH DOT A.. */ + /*2093*/ 0x1e91, 1, 0x1e90, /* LATIN CAPITAL LETTER Z WITH CIRCU.. */ + /*2096*/ 0x1e93, 1, 0x1e92, /* LATIN CAPITAL LETTER Z WITH DOT B.. */ + /*2099*/ 0x1e95, 1, 0x1e94, /* LATIN CAPITAL LETTER Z WITH LINE .. */ + /*2102*/ 0x1ea1, 1, 0x1ea0, /* LATIN CAPITAL LETTER A WITH DOT B.. */ + /*2105*/ 0x1ea3, 1, 0x1ea2, /* LATIN CAPITAL LETTER A WITH HOOK .. */ + /*2108*/ 0x1ea5, 1, 0x1ea4, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ + /*2111*/ 0x1ea7, 1, 0x1ea6, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ + /*2114*/ 0x1ea9, 1, 0x1ea8, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ + /*2117*/ 0x1eab, 1, 0x1eaa, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ + /*2120*/ 0x1ead, 1, 0x1eac, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ + /*2123*/ 0x1eaf, 1, 0x1eae, /* LATIN CAPITAL LETTER A WITH BREVE.. */ + /*2126*/ 0x1eb1, 1, 0x1eb0, /* LATIN CAPITAL LETTER A WITH BREVE.. */ + /*2129*/ 0x1eb3, 1, 0x1eb2, /* LATIN CAPITAL LETTER A WITH BREVE.. */ + /*2132*/ 0x1eb5, 1, 0x1eb4, /* LATIN CAPITAL LETTER A WITH BREVE.. */ + /*2135*/ 0x1eb7, 1, 0x1eb6, /* LATIN CAPITAL LETTER A WITH BREVE.. */ + /*2138*/ 0x1eb9, 1, 0x1eb8, /* LATIN CAPITAL LETTER E WITH DOT B.. */ + /*2141*/ 0x1ebb, 1, 0x1eba, /* LATIN CAPITAL LETTER E WITH HOOK .. */ + /*2144*/ 0x1ebd, 1, 0x1ebc, /* LATIN CAPITAL LETTER E WITH TILDE */ + /*2147*/ 0x1ebf, 1, 0x1ebe, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ + /*2150*/ 0x1ec1, 1, 0x1ec0, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ + /*2153*/ 0x1ec3, 1, 0x1ec2, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ + /*2156*/ 0x1ec5, 1, 0x1ec4, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ + /*2159*/ 0x1ec7, 1, 0x1ec6, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ + /*2162*/ 0x1ec9, 1, 0x1ec8, /* LATIN CAPITAL LETTER I WITH HOOK .. */ + /*2165*/ 0x1ecb, 1, 0x1eca, /* LATIN CAPITAL LETTER I WITH DOT B.. */ + /*2168*/ 0x1ecd, 1, 0x1ecc, /* LATIN CAPITAL LETTER O WITH DOT B.. */ + /*2171*/ 0x1ecf, 1, 0x1ece, /* LATIN CAPITAL LETTER O WITH HOOK .. */ + /*2174*/ 0x1ed1, 1, 0x1ed0, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ + /*2177*/ 0x1ed3, 1, 0x1ed2, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ + /*2180*/ 0x1ed5, 1, 0x1ed4, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ + /*2183*/ 0x1ed7, 1, 0x1ed6, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ + /*2186*/ 0x1ed9, 1, 0x1ed8, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ + /*2189*/ 0x1edb, 1, 0x1eda, /* LATIN CAPITAL LETTER O WITH HORN .. */ + /*2192*/ 0x1edd, 1, 0x1edc, /* LATIN CAPITAL LETTER O WITH HORN .. */ + /*2195*/ 0x1edf, 1, 0x1ede, /* LATIN CAPITAL LETTER O WITH HORN .. */ + /*2198*/ 0x1ee1, 1, 0x1ee0, /* LATIN CAPITAL LETTER O WITH HORN .. */ + /*2201*/ 0x1ee3, 1, 0x1ee2, /* LATIN CAPITAL LETTER O WITH HORN .. */ + /*2204*/ 0x1ee5, 1, 0x1ee4, /* LATIN CAPITAL LETTER U WITH DOT B.. */ + /*2207*/ 0x1ee7, 1, 0x1ee6, /* LATIN CAPITAL LETTER U WITH HOOK .. */ + /*2210*/ 0x1ee9, 1, 0x1ee8, /* LATIN CAPITAL LETTER U WITH HORN .. */ + /*2213*/ 0x1eeb, 1, 0x1eea, /* LATIN CAPITAL LETTER U WITH HORN .. */ + /*2216*/ 0x1eed, 1, 0x1eec, /* LATIN CAPITAL LETTER U WITH HORN .. */ + /*2219*/ 0x1eef, 1, 0x1eee, /* LATIN CAPITAL LETTER U WITH HORN .. */ + /*2222*/ 0x1ef1, 1, 0x1ef0, /* LATIN CAPITAL LETTER U WITH HORN .. */ + /*2225*/ 0x1ef3, 1, 0x1ef2, /* LATIN CAPITAL LETTER Y WITH GRAVE */ + /*2228*/ 0x1ef5, 1, 0x1ef4, /* LATIN CAPITAL LETTER Y WITH DOT B.. */ + /*2231*/ 0x1ef7, 1, 0x1ef6, /* LATIN CAPITAL LETTER Y WITH HOOK .. */ + /*2234*/ 0x1ef9, 1, 0x1ef8, /* LATIN CAPITAL LETTER Y WITH TILDE */ + /*2237*/ 0x1efb, 1, 0x1efa, /* LATIN CAPITAL LETTER MIDDLE-WELSH.. */ + /*2240*/ 0x1efd, 1, 0x1efc, /* LATIN CAPITAL LETTER MIDDLE-WELSH.. */ + /*2243*/ 0x1eff, 1, 0x1efe, /* LATIN CAPITAL LETTER Y WITH LOOP */ + /*2246*/ 0x1f00, 1, 0x1f08, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ + /*2249*/ 0x1f01, 1, 0x1f09, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ + /*2252*/ 0x1f02, 1, 0x1f0a, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ + /*2255*/ 0x1f03, 1, 0x1f0b, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ + /*2258*/ 0x1f04, 1, 0x1f0c, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ + /*2261*/ 0x1f05, 1, 0x1f0d, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ + /*2264*/ 0x1f06, 1, 0x1f0e, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ + /*2267*/ 0x1f07, 1, 0x1f0f, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ + /*2270*/ 0x1f10, 1, 0x1f18, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2273*/ 0x1f11, 1, 0x1f19, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2276*/ 0x1f12, 1, 0x1f1a, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2279*/ 0x1f13, 1, 0x1f1b, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2282*/ 0x1f14, 1, 0x1f1c, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2285*/ 0x1f15, 1, 0x1f1d, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2288*/ 0x1f20, 1, 0x1f28, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ + /*2291*/ 0x1f21, 1, 0x1f29, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ + /*2294*/ 0x1f22, 1, 0x1f2a, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ + /*2297*/ 0x1f23, 1, 0x1f2b, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ + /*2300*/ 0x1f24, 1, 0x1f2c, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ + /*2303*/ 0x1f25, 1, 0x1f2d, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ + /*2306*/ 0x1f26, 1, 0x1f2e, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ + /*2309*/ 0x1f27, 1, 0x1f2f, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ + /*2312*/ 0x1f30, 1, 0x1f38, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ + /*2315*/ 0x1f31, 1, 0x1f39, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ + /*2318*/ 0x1f32, 1, 0x1f3a, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ + /*2321*/ 0x1f33, 1, 0x1f3b, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ + /*2324*/ 0x1f34, 1, 0x1f3c, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ + /*2327*/ 0x1f35, 1, 0x1f3d, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ + /*2330*/ 0x1f36, 1, 0x1f3e, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ + /*2333*/ 0x1f37, 1, 0x1f3f, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ + /*2336*/ 0x1f40, 1, 0x1f48, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2339*/ 0x1f41, 1, 0x1f49, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2342*/ 0x1f42, 1, 0x1f4a, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2345*/ 0x1f43, 1, 0x1f4b, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2348*/ 0x1f44, 1, 0x1f4c, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2351*/ 0x1f45, 1, 0x1f4d, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2354*/ 0x1f51, 1, 0x1f59, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2357*/ 0x1f53, 1, 0x1f5b, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2360*/ 0x1f55, 1, 0x1f5d, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2363*/ 0x1f57, 1, 0x1f5f, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2366*/ 0x1f60, 1, 0x1f68, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ + /*2369*/ 0x1f61, 1, 0x1f69, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ + /*2372*/ 0x1f62, 1, 0x1f6a, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ + /*2375*/ 0x1f63, 1, 0x1f6b, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ + /*2378*/ 0x1f64, 1, 0x1f6c, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ + /*2381*/ 0x1f65, 1, 0x1f6d, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ + /*2384*/ 0x1f66, 1, 0x1f6e, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ + /*2387*/ 0x1f67, 1, 0x1f6f, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ + /*2390*/ 0x1f70, 1, 0x1fba, /* GREEK CAPITAL LETTER ALPHA WITH V.. */ + /*2393*/ 0x1f71, 1, 0x1fbb, /* GREEK CAPITAL LETTER ALPHA WITH O.. */ + /*2396*/ 0x1f72, 1, 0x1fc8, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2399*/ 0x1f73, 1, 0x1fc9, /* GREEK CAPITAL LETTER EPSILON WITH.. */ + /*2402*/ 0x1f74, 1, 0x1fca, /* GREEK CAPITAL LETTER ETA WITH VAR.. */ + /*2405*/ 0x1f75, 1, 0x1fcb, /* GREEK CAPITAL LETTER ETA WITH OXIA */ + /*2408*/ 0x1f76, 1, 0x1fda, /* GREEK CAPITAL LETTER IOTA WITH VA.. */ + /*2411*/ 0x1f77, 1, 0x1fdb, /* GREEK CAPITAL LETTER IOTA WITH OX.. */ + /*2414*/ 0x1f78, 1, 0x1ff8, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2417*/ 0x1f79, 1, 0x1ff9, /* GREEK CAPITAL LETTER OMICRON WITH.. */ + /*2420*/ 0x1f7a, 1, 0x1fea, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2423*/ 0x1f7b, 1, 0x1feb, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2426*/ 0x1f7c, 1, 0x1ffa, /* GREEK CAPITAL LETTER OMEGA WITH V.. */ + /*2429*/ 0x1f7d, 1, 0x1ffb, /* GREEK CAPITAL LETTER OMEGA WITH O.. */ + /*2432*/ 0x1fb0, 1, 0x1fb8, /* GREEK CAPITAL LETTER ALPHA WITH V.. */ + /*2435*/ 0x1fb1, 1, 0x1fb9, /* GREEK CAPITAL LETTER ALPHA WITH M.. */ + /*2438*/ 0x1fd0, 1, 0x1fd8, /* GREEK CAPITAL LETTER IOTA WITH VR.. */ + /*2441*/ 0x1fd1, 1, 0x1fd9, /* GREEK CAPITAL LETTER IOTA WITH MA.. */ + /*2444*/ 0x1fe0, 1, 0x1fe8, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2447*/ 0x1fe1, 1, 0x1fe9, /* GREEK CAPITAL LETTER UPSILON WITH.. */ + /*2450*/ 0x1fe5, 1, 0x1fec, /* GREEK CAPITAL LETTER RHO WITH DAS.. */ + /*2453*/ 0x214e, 1, 0x2132, /* TURNED CAPITAL F */ + /*2456*/ 0x2170, 1, 0x2160, /* ROMAN NUMERAL ONE */ + /*2459*/ 0x2171, 1, 0x2161, /* ROMAN NUMERAL TWO */ + /*2462*/ 0x2172, 1, 0x2162, /* ROMAN NUMERAL THREE */ + /*2465*/ 0x2173, 1, 0x2163, /* ROMAN NUMERAL FOUR */ + /*2468*/ 0x2174, 1, 0x2164, /* ROMAN NUMERAL FIVE */ + /*2471*/ 0x2175, 1, 0x2165, /* ROMAN NUMERAL SIX */ + /*2474*/ 0x2176, 1, 0x2166, /* ROMAN NUMERAL SEVEN */ + /*2477*/ 0x2177, 1, 0x2167, /* ROMAN NUMERAL EIGHT */ + /*2480*/ 0x2178, 1, 0x2168, /* ROMAN NUMERAL NINE */ + /*2483*/ 0x2179, 1, 0x2169, /* ROMAN NUMERAL TEN */ + /*2486*/ 0x217a, 1, 0x216a, /* ROMAN NUMERAL ELEVEN */ + /*2489*/ 0x217b, 1, 0x216b, /* ROMAN NUMERAL TWELVE */ + /*2492*/ 0x217c, 1, 0x216c, /* ROMAN NUMERAL FIFTY */ + /*2495*/ 0x217d, 1, 0x216d, /* ROMAN NUMERAL ONE HUNDRED */ + /*2498*/ 0x217e, 1, 0x216e, /* ROMAN NUMERAL FIVE HUNDRED */ + /*2501*/ 0x217f, 1, 0x216f, /* ROMAN NUMERAL ONE THOUSAND */ + /*2504*/ 0x2184, 1, 0x2183, /* ROMAN NUMERAL REVERSED ONE HUNDRED */ + /*2507*/ 0x24d0, 1, 0x24b6, /* CIRCLED LATIN CAPITAL LETTER A */ + /*2510*/ 0x24d1, 1, 0x24b7, /* CIRCLED LATIN CAPITAL LETTER B */ + /*2513*/ 0x24d2, 1, 0x24b8, /* CIRCLED LATIN CAPITAL LETTER C */ + /*2516*/ 0x24d3, 1, 0x24b9, /* CIRCLED LATIN CAPITAL LETTER D */ + /*2519*/ 0x24d4, 1, 0x24ba, /* CIRCLED LATIN CAPITAL LETTER E */ + /*2522*/ 0x24d5, 1, 0x24bb, /* CIRCLED LATIN CAPITAL LETTER F */ + /*2525*/ 0x24d6, 1, 0x24bc, /* CIRCLED LATIN CAPITAL LETTER G */ + /*2528*/ 0x24d7, 1, 0x24bd, /* CIRCLED LATIN CAPITAL LETTER H */ + /*2531*/ 0x24d8, 1, 0x24be, /* CIRCLED LATIN CAPITAL LETTER I */ + /*2534*/ 0x24d9, 1, 0x24bf, /* CIRCLED LATIN CAPITAL LETTER J */ + /*2537*/ 0x24da, 1, 0x24c0, /* CIRCLED LATIN CAPITAL LETTER K */ + /*2540*/ 0x24db, 1, 0x24c1, /* CIRCLED LATIN CAPITAL LETTER L */ + /*2543*/ 0x24dc, 1, 0x24c2, /* CIRCLED LATIN CAPITAL LETTER M */ + /*2546*/ 0x24dd, 1, 0x24c3, /* CIRCLED LATIN CAPITAL LETTER N */ + /*2549*/ 0x24de, 1, 0x24c4, /* CIRCLED LATIN CAPITAL LETTER O */ + /*2552*/ 0x24df, 1, 0x24c5, /* CIRCLED LATIN CAPITAL LETTER P */ + /*2555*/ 0x24e0, 1, 0x24c6, /* CIRCLED LATIN CAPITAL LETTER Q */ + /*2558*/ 0x24e1, 1, 0x24c7, /* CIRCLED LATIN CAPITAL LETTER R */ + /*2561*/ 0x24e2, 1, 0x24c8, /* CIRCLED LATIN CAPITAL LETTER S */ + /*2564*/ 0x24e3, 1, 0x24c9, /* CIRCLED LATIN CAPITAL LETTER T */ + /*2567*/ 0x24e4, 1, 0x24ca, /* CIRCLED LATIN CAPITAL LETTER U */ + /*2570*/ 0x24e5, 1, 0x24cb, /* CIRCLED LATIN CAPITAL LETTER V */ + /*2573*/ 0x24e6, 1, 0x24cc, /* CIRCLED LATIN CAPITAL LETTER W */ + /*2576*/ 0x24e7, 1, 0x24cd, /* CIRCLED LATIN CAPITAL LETTER X */ + /*2579*/ 0x24e8, 1, 0x24ce, /* CIRCLED LATIN CAPITAL LETTER Y */ + /*2582*/ 0x24e9, 1, 0x24cf, /* CIRCLED LATIN CAPITAL LETTER Z */ + /*2585*/ 0x2c30, 1, 0x2c00, /* GLAGOLITIC CAPITAL LETTER AZU */ + /*2588*/ 0x2c31, 1, 0x2c01, /* GLAGOLITIC CAPITAL LETTER BUKY */ + /*2591*/ 0x2c32, 1, 0x2c02, /* GLAGOLITIC CAPITAL LETTER VEDE */ + /*2594*/ 0x2c33, 1, 0x2c03, /* GLAGOLITIC CAPITAL LETTER GLAGOLI */ + /*2597*/ 0x2c34, 1, 0x2c04, /* GLAGOLITIC CAPITAL LETTER DOBRO */ + /*2600*/ 0x2c35, 1, 0x2c05, /* GLAGOLITIC CAPITAL LETTER YESTU */ + /*2603*/ 0x2c36, 1, 0x2c06, /* GLAGOLITIC CAPITAL LETTER ZHIVETE */ + /*2606*/ 0x2c37, 1, 0x2c07, /* GLAGOLITIC CAPITAL LETTER DZELO */ + /*2609*/ 0x2c38, 1, 0x2c08, /* GLAGOLITIC CAPITAL LETTER ZEMLJA */ + /*2612*/ 0x2c39, 1, 0x2c09, /* GLAGOLITIC CAPITAL LETTER IZHE */ + /*2615*/ 0x2c3a, 1, 0x2c0a, /* GLAGOLITIC CAPITAL LETTER INITIAL.. */ + /*2618*/ 0x2c3b, 1, 0x2c0b, /* GLAGOLITIC CAPITAL LETTER I */ + /*2621*/ 0x2c3c, 1, 0x2c0c, /* GLAGOLITIC CAPITAL LETTER DJERVI */ + /*2624*/ 0x2c3d, 1, 0x2c0d, /* GLAGOLITIC CAPITAL LETTER KAKO */ + /*2627*/ 0x2c3e, 1, 0x2c0e, /* GLAGOLITIC CAPITAL LETTER LJUDIJE */ + /*2630*/ 0x2c3f, 1, 0x2c0f, /* GLAGOLITIC CAPITAL LETTER MYSLITE */ + /*2633*/ 0x2c40, 1, 0x2c10, /* GLAGOLITIC CAPITAL LETTER NASHI */ + /*2636*/ 0x2c41, 1, 0x2c11, /* GLAGOLITIC CAPITAL LETTER ONU */ + /*2639*/ 0x2c42, 1, 0x2c12, /* GLAGOLITIC CAPITAL LETTER POKOJI */ + /*2642*/ 0x2c43, 1, 0x2c13, /* GLAGOLITIC CAPITAL LETTER RITSI */ + /*2645*/ 0x2c44, 1, 0x2c14, /* GLAGOLITIC CAPITAL LETTER SLOVO */ + /*2648*/ 0x2c45, 1, 0x2c15, /* GLAGOLITIC CAPITAL LETTER TVRIDO */ + /*2651*/ 0x2c46, 1, 0x2c16, /* GLAGOLITIC CAPITAL LETTER UKU */ + /*2654*/ 0x2c47, 1, 0x2c17, /* GLAGOLITIC CAPITAL LETTER FRITU */ + /*2657*/ 0x2c48, 1, 0x2c18, /* GLAGOLITIC CAPITAL LETTER HERU */ + /*2660*/ 0x2c49, 1, 0x2c19, /* GLAGOLITIC CAPITAL LETTER OTU */ + /*2663*/ 0x2c4a, 1, 0x2c1a, /* GLAGOLITIC CAPITAL LETTER PE */ + /*2666*/ 0x2c4b, 1, 0x2c1b, /* GLAGOLITIC CAPITAL LETTER SHTA */ + /*2669*/ 0x2c4c, 1, 0x2c1c, /* GLAGOLITIC CAPITAL LETTER TSI */ + /*2672*/ 0x2c4d, 1, 0x2c1d, /* GLAGOLITIC CAPITAL LETTER CHRIVI */ + /*2675*/ 0x2c4e, 1, 0x2c1e, /* GLAGOLITIC CAPITAL LETTER SHA */ + /*2678*/ 0x2c4f, 1, 0x2c1f, /* GLAGOLITIC CAPITAL LETTER YERU */ + /*2681*/ 0x2c50, 1, 0x2c20, /* GLAGOLITIC CAPITAL LETTER YERI */ + /*2684*/ 0x2c51, 1, 0x2c21, /* GLAGOLITIC CAPITAL LETTER YATI */ + /*2687*/ 0x2c52, 1, 0x2c22, /* GLAGOLITIC CAPITAL LETTER SPIDERY.. */ + /*2690*/ 0x2c53, 1, 0x2c23, /* GLAGOLITIC CAPITAL LETTER YU */ + /*2693*/ 0x2c54, 1, 0x2c24, /* GLAGOLITIC CAPITAL LETTER SMALL Y.. */ + /*2696*/ 0x2c55, 1, 0x2c25, /* GLAGOLITIC CAPITAL LETTER SMALL Y.. */ + /*2699*/ 0x2c56, 1, 0x2c26, /* GLAGOLITIC CAPITAL LETTER YO */ + /*2702*/ 0x2c57, 1, 0x2c27, /* GLAGOLITIC CAPITAL LETTER IOTATED.. */ + /*2705*/ 0x2c58, 1, 0x2c28, /* GLAGOLITIC CAPITAL LETTER BIG YUS */ + /*2708*/ 0x2c59, 1, 0x2c29, /* GLAGOLITIC CAPITAL LETTER IOTATED.. */ + /*2711*/ 0x2c5a, 1, 0x2c2a, /* GLAGOLITIC CAPITAL LETTER FITA */ + /*2714*/ 0x2c5b, 1, 0x2c2b, /* GLAGOLITIC CAPITAL LETTER IZHITSA */ + /*2717*/ 0x2c5c, 1, 0x2c2c, /* GLAGOLITIC CAPITAL LETTER SHTAPIC */ + /*2720*/ 0x2c5d, 1, 0x2c2d, /* GLAGOLITIC CAPITAL LETTER TROKUTA.. */ + /*2723*/ 0x2c5e, 1, 0x2c2e, /* GLAGOLITIC CAPITAL LETTER LATINAT.. */ + /*2726*/ 0x2c5f, 1, 0x2c2f, /* GLAGOLITIC CAPITAL LETTER CAUDATE.. */ + /*2729*/ 0x2c61, 1, 0x2c60, /* LATIN CAPITAL LETTER L WITH DOUBL.. */ + /*2732*/ 0x2c65, 1, 0x023a, /* LATIN CAPITAL LETTER A WITH STROKE */ + /*2735*/ 0x2c66, 1, 0x023e, /* LATIN CAPITAL LETTER T WITH DIAGO.. */ + /*2738*/ 0x2c68, 1, 0x2c67, /* LATIN CAPITAL LETTER H WITH DESCE.. */ + /*2741*/ 0x2c6a, 1, 0x2c69, /* LATIN CAPITAL LETTER K WITH DESCE.. */ + /*2744*/ 0x2c6c, 1, 0x2c6b, /* LATIN CAPITAL LETTER Z WITH DESCE.. */ + /*2747*/ 0x2c73, 1, 0x2c72, /* LATIN CAPITAL LETTER W WITH HOOK */ + /*2750*/ 0x2c76, 1, 0x2c75, /* LATIN CAPITAL LETTER HALF H */ + /*2753*/ 0x2c81, 1, 0x2c80, /* COPTIC CAPITAL LETTER ALFA */ + /*2756*/ 0x2c83, 1, 0x2c82, /* COPTIC CAPITAL LETTER VIDA */ + /*2759*/ 0x2c85, 1, 0x2c84, /* COPTIC CAPITAL LETTER GAMMA */ + /*2762*/ 0x2c87, 1, 0x2c86, /* COPTIC CAPITAL LETTER DALDA */ + /*2765*/ 0x2c89, 1, 0x2c88, /* COPTIC CAPITAL LETTER EIE */ + /*2768*/ 0x2c8b, 1, 0x2c8a, /* COPTIC CAPITAL LETTER SOU */ + /*2771*/ 0x2c8d, 1, 0x2c8c, /* COPTIC CAPITAL LETTER ZATA */ + /*2774*/ 0x2c8f, 1, 0x2c8e, /* COPTIC CAPITAL LETTER HATE */ + /*2777*/ 0x2c91, 1, 0x2c90, /* COPTIC CAPITAL LETTER THETHE */ + /*2780*/ 0x2c93, 1, 0x2c92, /* COPTIC CAPITAL LETTER IAUDA */ + /*2783*/ 0x2c95, 1, 0x2c94, /* COPTIC CAPITAL LETTER KAPA */ + /*2786*/ 0x2c97, 1, 0x2c96, /* COPTIC CAPITAL LETTER LAULA */ + /*2789*/ 0x2c99, 1, 0x2c98, /* COPTIC CAPITAL LETTER MI */ + /*2792*/ 0x2c9b, 1, 0x2c9a, /* COPTIC CAPITAL LETTER NI */ + /*2795*/ 0x2c9d, 1, 0x2c9c, /* COPTIC CAPITAL LETTER KSI */ + /*2798*/ 0x2c9f, 1, 0x2c9e, /* COPTIC CAPITAL LETTER O */ + /*2801*/ 0x2ca1, 1, 0x2ca0, /* COPTIC CAPITAL LETTER PI */ + /*2804*/ 0x2ca3, 1, 0x2ca2, /* COPTIC CAPITAL LETTER RO */ + /*2807*/ 0x2ca5, 1, 0x2ca4, /* COPTIC CAPITAL LETTER SIMA */ + /*2810*/ 0x2ca7, 1, 0x2ca6, /* COPTIC CAPITAL LETTER TAU */ + /*2813*/ 0x2ca9, 1, 0x2ca8, /* COPTIC CAPITAL LETTER UA */ + /*2816*/ 0x2cab, 1, 0x2caa, /* COPTIC CAPITAL LETTER FI */ + /*2819*/ 0x2cad, 1, 0x2cac, /* COPTIC CAPITAL LETTER KHI */ + /*2822*/ 0x2caf, 1, 0x2cae, /* COPTIC CAPITAL LETTER PSI */ + /*2825*/ 0x2cb1, 1, 0x2cb0, /* COPTIC CAPITAL LETTER OOU */ + /*2828*/ 0x2cb3, 1, 0x2cb2, /* COPTIC CAPITAL LETTER DIALECT-P A.. */ + /*2831*/ 0x2cb5, 1, 0x2cb4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2834*/ 0x2cb7, 1, 0x2cb6, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ + /*2837*/ 0x2cb9, 1, 0x2cb8, /* COPTIC CAPITAL LETTER DIALECT-P K.. */ + /*2840*/ 0x2cbb, 1, 0x2cba, /* COPTIC CAPITAL LETTER DIALECT-P NI */ + /*2843*/ 0x2cbd, 1, 0x2cbc, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ + /*2846*/ 0x2cbf, 1, 0x2cbe, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2849*/ 0x2cc1, 1, 0x2cc0, /* COPTIC CAPITAL LETTER SAMPI */ + /*2852*/ 0x2cc3, 1, 0x2cc2, /* COPTIC CAPITAL LETTER CROSSED SHEI */ + /*2855*/ 0x2cc5, 1, 0x2cc4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2858*/ 0x2cc7, 1, 0x2cc6, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2861*/ 0x2cc9, 1, 0x2cc8, /* COPTIC CAPITAL LETTER AKHMIMIC KH.. */ + /*2864*/ 0x2ccb, 1, 0x2cca, /* COPTIC CAPITAL LETTER DIALECT-P H.. */ + /*2867*/ 0x2ccd, 1, 0x2ccc, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2870*/ 0x2ccf, 1, 0x2cce, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2873*/ 0x2cd1, 1, 0x2cd0, /* COPTIC CAPITAL LETTER L-SHAPED HA */ + /*2876*/ 0x2cd3, 1, 0x2cd2, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2879*/ 0x2cd5, 1, 0x2cd4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2882*/ 0x2cd7, 1, 0x2cd6, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2885*/ 0x2cd9, 1, 0x2cd8, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2888*/ 0x2cdb, 1, 0x2cda, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ + /*2891*/ 0x2cdd, 1, 0x2cdc, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ + /*2894*/ 0x2cdf, 1, 0x2cde, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ + /*2897*/ 0x2ce1, 1, 0x2ce0, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ + /*2900*/ 0x2ce3, 1, 0x2ce2, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ + /*2903*/ 0x2cec, 1, 0x2ceb, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ + /*2906*/ 0x2cee, 1, 0x2ced, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ + /*2909*/ 0x2cf3, 1, 0x2cf2, /* COPTIC CAPITAL LETTER BOHAIRIC KH.. */ + /*2912*/ 0x2d00, 1, 0x10a0, /* GEORGIAN CAPITAL LETTER AN */ + /*2915*/ 0x2d01, 1, 0x10a1, /* GEORGIAN CAPITAL LETTER BAN */ + /*2918*/ 0x2d02, 1, 0x10a2, /* GEORGIAN CAPITAL LETTER GAN */ + /*2921*/ 0x2d03, 1, 0x10a3, /* GEORGIAN CAPITAL LETTER DON */ + /*2924*/ 0x2d04, 1, 0x10a4, /* GEORGIAN CAPITAL LETTER EN */ + /*2927*/ 0x2d05, 1, 0x10a5, /* GEORGIAN CAPITAL LETTER VIN */ + /*2930*/ 0x2d06, 1, 0x10a6, /* GEORGIAN CAPITAL LETTER ZEN */ + /*2933*/ 0x2d07, 1, 0x10a7, /* GEORGIAN CAPITAL LETTER TAN */ + /*2936*/ 0x2d08, 1, 0x10a8, /* GEORGIAN CAPITAL LETTER IN */ + /*2939*/ 0x2d09, 1, 0x10a9, /* GEORGIAN CAPITAL LETTER KAN */ + /*2942*/ 0x2d0a, 1, 0x10aa, /* GEORGIAN CAPITAL LETTER LAS */ + /*2945*/ 0x2d0b, 1, 0x10ab, /* GEORGIAN CAPITAL LETTER MAN */ + /*2948*/ 0x2d0c, 1, 0x10ac, /* GEORGIAN CAPITAL LETTER NAR */ + /*2951*/ 0x2d0d, 1, 0x10ad, /* GEORGIAN CAPITAL LETTER ON */ + /*2954*/ 0x2d0e, 1, 0x10ae, /* GEORGIAN CAPITAL LETTER PAR */ + /*2957*/ 0x2d0f, 1, 0x10af, /* GEORGIAN CAPITAL LETTER ZHAR */ + /*2960*/ 0x2d10, 1, 0x10b0, /* GEORGIAN CAPITAL LETTER RAE */ + /*2963*/ 0x2d11, 1, 0x10b1, /* GEORGIAN CAPITAL LETTER SAN */ + /*2966*/ 0x2d12, 1, 0x10b2, /* GEORGIAN CAPITAL LETTER TAR */ + /*2969*/ 0x2d13, 1, 0x10b3, /* GEORGIAN CAPITAL LETTER UN */ + /*2972*/ 0x2d14, 1, 0x10b4, /* GEORGIAN CAPITAL LETTER PHAR */ + /*2975*/ 0x2d15, 1, 0x10b5, /* GEORGIAN CAPITAL LETTER KHAR */ + /*2978*/ 0x2d16, 1, 0x10b6, /* GEORGIAN CAPITAL LETTER GHAN */ + /*2981*/ 0x2d17, 1, 0x10b7, /* GEORGIAN CAPITAL LETTER QAR */ + /*2984*/ 0x2d18, 1, 0x10b8, /* GEORGIAN CAPITAL LETTER SHIN */ + /*2987*/ 0x2d19, 1, 0x10b9, /* GEORGIAN CAPITAL LETTER CHIN */ + /*2990*/ 0x2d1a, 1, 0x10ba, /* GEORGIAN CAPITAL LETTER CAN */ + /*2993*/ 0x2d1b, 1, 0x10bb, /* GEORGIAN CAPITAL LETTER JIL */ + /*2996*/ 0x2d1c, 1, 0x10bc, /* GEORGIAN CAPITAL LETTER CIL */ + /*2999*/ 0x2d1d, 1, 0x10bd, /* GEORGIAN CAPITAL LETTER CHAR */ + /*3002*/ 0x2d1e, 1, 0x10be, /* GEORGIAN CAPITAL LETTER XAN */ + /*3005*/ 0x2d1f, 1, 0x10bf, /* GEORGIAN CAPITAL LETTER JHAN */ + /*3008*/ 0x2d20, 1, 0x10c0, /* GEORGIAN CAPITAL LETTER HAE */ + /*3011*/ 0x2d21, 1, 0x10c1, /* GEORGIAN CAPITAL LETTER HE */ + /*3014*/ 0x2d22, 1, 0x10c2, /* GEORGIAN CAPITAL LETTER HIE */ + /*3017*/ 0x2d23, 1, 0x10c3, /* GEORGIAN CAPITAL LETTER WE */ + /*3020*/ 0x2d24, 1, 0x10c4, /* GEORGIAN CAPITAL LETTER HAR */ + /*3023*/ 0x2d25, 1, 0x10c5, /* GEORGIAN CAPITAL LETTER HOE */ + /*3026*/ 0x2d27, 1, 0x10c7, /* GEORGIAN CAPITAL LETTER YN */ + /*3029*/ 0x2d2d, 1, 0x10cd, /* GEORGIAN CAPITAL LETTER AEN */ + /*3032*/ 0xa641, 1, 0xa640, /* CYRILLIC CAPITAL LETTER ZEMLYA */ + /*3035*/ 0xa643, 1, 0xa642, /* CYRILLIC CAPITAL LETTER DZELO */ + /*3038*/ 0xa645, 1, 0xa644, /* CYRILLIC CAPITAL LETTER REVERSED .. */ + /*3041*/ 0xa647, 1, 0xa646, /* CYRILLIC CAPITAL LETTER IOTA */ + /*3044*/ 0xa649, 1, 0xa648, /* CYRILLIC CAPITAL LETTER DJERV */ + /*3047*/ 0xa64b, 2, 0x1c88, 0xa64a, /* CYRILLIC SMALL LETTER UNBLENDED UK */ + /*3051*/ 0xa64d, 1, 0xa64c, /* CYRILLIC CAPITAL LETTER BROAD OME.. */ + /*3054*/ 0xa64f, 1, 0xa64e, /* CYRILLIC CAPITAL LETTER NEUTRAL Y.. */ + /*3057*/ 0xa651, 1, 0xa650, /* CYRILLIC CAPITAL LETTER YERU WITH.. */ + /*3060*/ 0xa653, 1, 0xa652, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ + /*3063*/ 0xa655, 1, 0xa654, /* CYRILLIC CAPITAL LETTER REVERSED .. */ + /*3066*/ 0xa657, 1, 0xa656, /* CYRILLIC CAPITAL LETTER IOTIFIED A */ + /*3069*/ 0xa659, 1, 0xa658, /* CYRILLIC CAPITAL LETTER CLOSED LI.. */ + /*3072*/ 0xa65b, 1, 0xa65a, /* CYRILLIC CAPITAL LETTER BLENDED Y.. */ + /*3075*/ 0xa65d, 1, 0xa65c, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ + /*3078*/ 0xa65f, 1, 0xa65e, /* CYRILLIC CAPITAL LETTER YN */ + /*3081*/ 0xa661, 1, 0xa660, /* CYRILLIC CAPITAL LETTER REVERSED .. */ + /*3084*/ 0xa663, 1, 0xa662, /* CYRILLIC CAPITAL LETTER SOFT DE */ + /*3087*/ 0xa665, 1, 0xa664, /* CYRILLIC CAPITAL LETTER SOFT EL */ + /*3090*/ 0xa667, 1, 0xa666, /* CYRILLIC CAPITAL LETTER SOFT EM */ + /*3093*/ 0xa669, 1, 0xa668, /* CYRILLIC CAPITAL LETTER MONOCULAR.. */ + /*3096*/ 0xa66b, 1, 0xa66a, /* CYRILLIC CAPITAL LETTER BINOCULAR.. */ + /*3099*/ 0xa66d, 1, 0xa66c, /* CYRILLIC CAPITAL LETTER DOUBLE MO.. */ + /*3102*/ 0xa681, 1, 0xa680, /* CYRILLIC CAPITAL LETTER DWE */ + /*3105*/ 0xa683, 1, 0xa682, /* CYRILLIC CAPITAL LETTER DZWE */ + /*3108*/ 0xa685, 1, 0xa684, /* CYRILLIC CAPITAL LETTER ZHWE */ + /*3111*/ 0xa687, 1, 0xa686, /* CYRILLIC CAPITAL LETTER CCHE */ + /*3114*/ 0xa689, 1, 0xa688, /* CYRILLIC CAPITAL LETTER DZZE */ + /*3117*/ 0xa68b, 1, 0xa68a, /* CYRILLIC CAPITAL LETTER TE WITH M.. */ + /*3120*/ 0xa68d, 1, 0xa68c, /* CYRILLIC CAPITAL LETTER TWE */ + /*3123*/ 0xa68f, 1, 0xa68e, /* CYRILLIC CAPITAL LETTER TSWE */ + /*3126*/ 0xa691, 1, 0xa690, /* CYRILLIC CAPITAL LETTER TSSE */ + /*3129*/ 0xa693, 1, 0xa692, /* CYRILLIC CAPITAL LETTER TCHE */ + /*3132*/ 0xa695, 1, 0xa694, /* CYRILLIC CAPITAL LETTER HWE */ + /*3135*/ 0xa697, 1, 0xa696, /* CYRILLIC CAPITAL LETTER SHWE */ + /*3138*/ 0xa699, 1, 0xa698, /* CYRILLIC CAPITAL LETTER DOUBLE O */ + /*3141*/ 0xa69b, 1, 0xa69a, /* CYRILLIC CAPITAL LETTER CROSSED O */ + /*3144*/ 0xa723, 1, 0xa722, /* LATIN CAPITAL LETTER EGYPTOLOGICA.. */ + /*3147*/ 0xa725, 1, 0xa724, /* LATIN CAPITAL LETTER EGYPTOLOGICA.. */ + /*3150*/ 0xa727, 1, 0xa726, /* LATIN CAPITAL LETTER HENG */ + /*3153*/ 0xa729, 1, 0xa728, /* LATIN CAPITAL LETTER TZ */ + /*3156*/ 0xa72b, 1, 0xa72a, /* LATIN CAPITAL LETTER TRESILLO */ + /*3159*/ 0xa72d, 1, 0xa72c, /* LATIN CAPITAL LETTER CUATRILLO */ + /*3162*/ 0xa72f, 1, 0xa72e, /* LATIN CAPITAL LETTER CUATRILLO WI.. */ + /*3165*/ 0xa733, 1, 0xa732, /* LATIN CAPITAL LETTER AA */ + /*3168*/ 0xa735, 1, 0xa734, /* LATIN CAPITAL LETTER AO */ + /*3171*/ 0xa737, 1, 0xa736, /* LATIN CAPITAL LETTER AU */ + /*3174*/ 0xa739, 1, 0xa738, /* LATIN CAPITAL LETTER AV */ + /*3177*/ 0xa73b, 1, 0xa73a, /* LATIN CAPITAL LETTER AV WITH HORI.. */ + /*3180*/ 0xa73d, 1, 0xa73c, /* LATIN CAPITAL LETTER AY */ + /*3183*/ 0xa73f, 1, 0xa73e, /* LATIN CAPITAL LETTER REVERSED C W.. */ + /*3186*/ 0xa741, 1, 0xa740, /* LATIN CAPITAL LETTER K WITH STROKE */ + /*3189*/ 0xa743, 1, 0xa742, /* LATIN CAPITAL LETTER K WITH DIAGO.. */ + /*3192*/ 0xa745, 1, 0xa744, /* LATIN CAPITAL LETTER K WITH STROK.. */ + /*3195*/ 0xa747, 1, 0xa746, /* LATIN CAPITAL LETTER BROKEN L */ + /*3198*/ 0xa749, 1, 0xa748, /* LATIN CAPITAL LETTER L WITH HIGH .. */ + /*3201*/ 0xa74b, 1, 0xa74a, /* LATIN CAPITAL LETTER O WITH LONG .. */ + /*3204*/ 0xa74d, 1, 0xa74c, /* LATIN CAPITAL LETTER O WITH LOOP */ + /*3207*/ 0xa74f, 1, 0xa74e, /* LATIN CAPITAL LETTER OO */ + /*3210*/ 0xa751, 1, 0xa750, /* LATIN CAPITAL LETTER P WITH STROK.. */ + /*3213*/ 0xa753, 1, 0xa752, /* LATIN CAPITAL LETTER P WITH FLOUR.. */ + /*3216*/ 0xa755, 1, 0xa754, /* LATIN CAPITAL LETTER P WITH SQUIR.. */ + /*3219*/ 0xa757, 1, 0xa756, /* LATIN CAPITAL LETTER Q WITH STROK.. */ + /*3222*/ 0xa759, 1, 0xa758, /* LATIN CAPITAL LETTER Q WITH DIAGO.. */ + /*3225*/ 0xa75b, 1, 0xa75a, /* LATIN CAPITAL LETTER R ROTUNDA */ + /*3228*/ 0xa75d, 1, 0xa75c, /* LATIN CAPITAL LETTER RUM ROTUNDA */ + /*3231*/ 0xa75f, 1, 0xa75e, /* LATIN CAPITAL LETTER V WITH DIAGO.. */ + /*3234*/ 0xa761, 1, 0xa760, /* LATIN CAPITAL LETTER VY */ + /*3237*/ 0xa763, 1, 0xa762, /* LATIN CAPITAL LETTER VISIGOTHIC Z */ + /*3240*/ 0xa765, 1, 0xa764, /* LATIN CAPITAL LETTER THORN WITH S.. */ + /*3243*/ 0xa767, 1, 0xa766, /* LATIN CAPITAL LETTER THORN WITH S.. */ + /*3246*/ 0xa769, 1, 0xa768, /* LATIN CAPITAL LETTER VEND */ + /*3249*/ 0xa76b, 1, 0xa76a, /* LATIN CAPITAL LETTER ET */ + /*3252*/ 0xa76d, 1, 0xa76c, /* LATIN CAPITAL LETTER IS */ + /*3255*/ 0xa76f, 1, 0xa76e, /* LATIN CAPITAL LETTER CON */ + /*3258*/ 0xa77a, 1, 0xa779, /* LATIN CAPITAL LETTER INSULAR D */ + /*3261*/ 0xa77c, 1, 0xa77b, /* LATIN CAPITAL LETTER INSULAR F */ + /*3264*/ 0xa77f, 1, 0xa77e, /* LATIN CAPITAL LETTER TURNED INSUL.. */ + /*3267*/ 0xa781, 1, 0xa780, /* LATIN CAPITAL LETTER TURNED L */ + /*3270*/ 0xa783, 1, 0xa782, /* LATIN CAPITAL LETTER INSULAR R */ + /*3273*/ 0xa785, 1, 0xa784, /* LATIN CAPITAL LETTER INSULAR S */ + /*3276*/ 0xa787, 1, 0xa786, /* LATIN CAPITAL LETTER INSULAR T */ + /*3279*/ 0xa78c, 1, 0xa78b, /* LATIN CAPITAL LETTER SALTILLO */ + /*3282*/ 0xa791, 1, 0xa790, /* LATIN CAPITAL LETTER N WITH DESCE.. */ + /*3285*/ 0xa793, 1, 0xa792, /* LATIN CAPITAL LETTER C WITH BAR */ + /*3288*/ 0xa794, 1, 0xa7c4, /* LATIN CAPITAL LETTER C WITH PALAT.. */ + /*3291*/ 0xa797, 1, 0xa796, /* LATIN CAPITAL LETTER B WITH FLOUR.. */ + /*3294*/ 0xa799, 1, 0xa798, /* LATIN CAPITAL LETTER F WITH STROKE */ + /*3297*/ 0xa79b, 1, 0xa79a, /* LATIN CAPITAL LETTER VOLAPUK AE */ + /*3300*/ 0xa79d, 1, 0xa79c, /* LATIN CAPITAL LETTER VOLAPUK OE */ + /*3303*/ 0xa79f, 1, 0xa79e, /* LATIN CAPITAL LETTER VOLAPUK UE */ + /*3306*/ 0xa7a1, 1, 0xa7a0, /* LATIN CAPITAL LETTER G WITH OBLIQ.. */ + /*3309*/ 0xa7a3, 1, 0xa7a2, /* LATIN CAPITAL LETTER K WITH OBLIQ.. */ + /*3312*/ 0xa7a5, 1, 0xa7a4, /* LATIN CAPITAL LETTER N WITH OBLIQ.. */ + /*3315*/ 0xa7a7, 1, 0xa7a6, /* LATIN CAPITAL LETTER R WITH OBLIQ.. */ + /*3318*/ 0xa7a9, 1, 0xa7a8, /* LATIN CAPITAL LETTER S WITH OBLIQ.. */ + /*3321*/ 0xa7b5, 1, 0xa7b4, /* LATIN CAPITAL LETTER BETA */ + /*3324*/ 0xa7b7, 1, 0xa7b6, /* LATIN CAPITAL LETTER OMEGA */ + /*3327*/ 0xa7b9, 1, 0xa7b8, /* LATIN CAPITAL LETTER U WITH STROKE */ + /*3330*/ 0xa7bb, 1, 0xa7ba, /* LATIN CAPITAL LETTER GLOTTAL A */ + /*3333*/ 0xa7bd, 1, 0xa7bc, /* LATIN CAPITAL LETTER GLOTTAL I */ + /*3336*/ 0xa7bf, 1, 0xa7be, /* LATIN CAPITAL LETTER GLOTTAL U */ + /*3339*/ 0xa7c1, 1, 0xa7c0, /* LATIN CAPITAL LETTER OLD POLISH O */ + /*3342*/ 0xa7c3, 1, 0xa7c2, /* LATIN CAPITAL LETTER ANGLICANA W */ + /*3345*/ 0xa7c8, 1, 0xa7c7, /* LATIN CAPITAL LETTER D WITH SHORT.. */ + /*3348*/ 0xa7ca, 1, 0xa7c9, /* LATIN CAPITAL LETTER S WITH SHORT.. */ + /*3351*/ 0xa7cd, 1, 0xa7cc, /* LATIN CAPITAL LETTER S WITH DIAGO.. */ + /*3354*/ 0xa7d1, 1, 0xa7d0, /* LATIN CAPITAL LETTER CLOSED INSUL.. */ + /*3357*/ 0xa7d7, 1, 0xa7d6, /* LATIN CAPITAL LETTER MIDDLE SCOTS.. */ + /*3360*/ 0xa7d9, 1, 0xa7d8, /* LATIN CAPITAL LETTER SIGMOID S */ + /*3363*/ 0xa7db, 1, 0xa7da, /* LATIN CAPITAL LETTER LAMBDA */ + /*3366*/ 0xa7f6, 1, 0xa7f5, /* LATIN CAPITAL LETTER REVERSED HAL.. */ + /*3369*/ 0xab53, 1, 0xa7b3, /* LATIN CAPITAL LETTER CHI */ + /*3372*/ 0xff41, 1, 0xff21, /* FULLWIDTH LATIN CAPITAL LETTER A */ + /*3375*/ 0xff42, 1, 0xff22, /* FULLWIDTH LATIN CAPITAL LETTER B */ + /*3378*/ 0xff43, 1, 0xff23, /* FULLWIDTH LATIN CAPITAL LETTER C */ + /*3381*/ 0xff44, 1, 0xff24, /* FULLWIDTH LATIN CAPITAL LETTER D */ + /*3384*/ 0xff45, 1, 0xff25, /* FULLWIDTH LATIN CAPITAL LETTER E */ + /*3387*/ 0xff46, 1, 0xff26, /* FULLWIDTH LATIN CAPITAL LETTER F */ + /*3390*/ 0xff47, 1, 0xff27, /* FULLWIDTH LATIN CAPITAL LETTER G */ + /*3393*/ 0xff48, 1, 0xff28, /* FULLWIDTH LATIN CAPITAL LETTER H */ + /*3396*/ 0xff49, 1, 0xff29, /* FULLWIDTH LATIN CAPITAL LETTER I */ + /*3399*/ 0xff4a, 1, 0xff2a, /* FULLWIDTH LATIN CAPITAL LETTER J */ + /*3402*/ 0xff4b, 1, 0xff2b, /* FULLWIDTH LATIN CAPITAL LETTER K */ + /*3405*/ 0xff4c, 1, 0xff2c, /* FULLWIDTH LATIN CAPITAL LETTER L */ + /*3408*/ 0xff4d, 1, 0xff2d, /* FULLWIDTH LATIN CAPITAL LETTER M */ + /*3411*/ 0xff4e, 1, 0xff2e, /* FULLWIDTH LATIN CAPITAL LETTER N */ + /*3414*/ 0xff4f, 1, 0xff2f, /* FULLWIDTH LATIN CAPITAL LETTER O */ + /*3417*/ 0xff50, 1, 0xff30, /* FULLWIDTH LATIN CAPITAL LETTER P */ + /*3420*/ 0xff51, 1, 0xff31, /* FULLWIDTH LATIN CAPITAL LETTER Q */ + /*3423*/ 0xff52, 1, 0xff32, /* FULLWIDTH LATIN CAPITAL LETTER R */ + /*3426*/ 0xff53, 1, 0xff33, /* FULLWIDTH LATIN CAPITAL LETTER S */ + /*3429*/ 0xff54, 1, 0xff34, /* FULLWIDTH LATIN CAPITAL LETTER T */ + /*3432*/ 0xff55, 1, 0xff35, /* FULLWIDTH LATIN CAPITAL LETTER U */ + /*3435*/ 0xff56, 1, 0xff36, /* FULLWIDTH LATIN CAPITAL LETTER V */ + /*3438*/ 0xff57, 1, 0xff37, /* FULLWIDTH LATIN CAPITAL LETTER W */ + /*3441*/ 0xff58, 1, 0xff38, /* FULLWIDTH LATIN CAPITAL LETTER X */ + /*3444*/ 0xff59, 1, 0xff39, /* FULLWIDTH LATIN CAPITAL LETTER Y */ + /*3447*/ 0xff5a, 1, 0xff3a, /* FULLWIDTH LATIN CAPITAL LETTER Z */ + /*3450*/ 0x010428, 1, 0x010400, /* DESERET CAPITAL LETTER LONG I */ + /*3453*/ 0x010429, 1, 0x010401, /* DESERET CAPITAL LETTER LONG E */ + /*3456*/ 0x01042a, 1, 0x010402, /* DESERET CAPITAL LETTER LONG A */ + /*3459*/ 0x01042b, 1, 0x010403, /* DESERET CAPITAL LETTER LONG AH */ + /*3462*/ 0x01042c, 1, 0x010404, /* DESERET CAPITAL LETTER LONG O */ + /*3465*/ 0x01042d, 1, 0x010405, /* DESERET CAPITAL LETTER LONG OO */ + /*3468*/ 0x01042e, 1, 0x010406, /* DESERET CAPITAL LETTER SHORT I */ + /*3471*/ 0x01042f, 1, 0x010407, /* DESERET CAPITAL LETTER SHORT E */ + /*3474*/ 0x010430, 1, 0x010408, /* DESERET CAPITAL LETTER SHORT A */ + /*3477*/ 0x010431, 1, 0x010409, /* DESERET CAPITAL LETTER SHORT AH */ + /*3480*/ 0x010432, 1, 0x01040a, /* DESERET CAPITAL LETTER SHORT O */ + /*3483*/ 0x010433, 1, 0x01040b, /* DESERET CAPITAL LETTER SHORT OO */ + /*3486*/ 0x010434, 1, 0x01040c, /* DESERET CAPITAL LETTER AY */ + /*3489*/ 0x010435, 1, 0x01040d, /* DESERET CAPITAL LETTER OW */ + /*3492*/ 0x010436, 1, 0x01040e, /* DESERET CAPITAL LETTER WU */ + /*3495*/ 0x010437, 1, 0x01040f, /* DESERET CAPITAL LETTER YEE */ + /*3498*/ 0x010438, 1, 0x010410, /* DESERET CAPITAL LETTER H */ + /*3501*/ 0x010439, 1, 0x010411, /* DESERET CAPITAL LETTER PEE */ + /*3504*/ 0x01043a, 1, 0x010412, /* DESERET CAPITAL LETTER BEE */ + /*3507*/ 0x01043b, 1, 0x010413, /* DESERET CAPITAL LETTER TEE */ + /*3510*/ 0x01043c, 1, 0x010414, /* DESERET CAPITAL LETTER DEE */ + /*3513*/ 0x01043d, 1, 0x010415, /* DESERET CAPITAL LETTER CHEE */ + /*3516*/ 0x01043e, 1, 0x010416, /* DESERET CAPITAL LETTER JEE */ + /*3519*/ 0x01043f, 1, 0x010417, /* DESERET CAPITAL LETTER KAY */ + /*3522*/ 0x010440, 1, 0x010418, /* DESERET CAPITAL LETTER GAY */ + /*3525*/ 0x010441, 1, 0x010419, /* DESERET CAPITAL LETTER EF */ + /*3528*/ 0x010442, 1, 0x01041a, /* DESERET CAPITAL LETTER VEE */ + /*3531*/ 0x010443, 1, 0x01041b, /* DESERET CAPITAL LETTER ETH */ + /*3534*/ 0x010444, 1, 0x01041c, /* DESERET CAPITAL LETTER THEE */ + /*3537*/ 0x010445, 1, 0x01041d, /* DESERET CAPITAL LETTER ES */ + /*3540*/ 0x010446, 1, 0x01041e, /* DESERET CAPITAL LETTER ZEE */ + /*3543*/ 0x010447, 1, 0x01041f, /* DESERET CAPITAL LETTER ESH */ + /*3546*/ 0x010448, 1, 0x010420, /* DESERET CAPITAL LETTER ZHEE */ + /*3549*/ 0x010449, 1, 0x010421, /* DESERET CAPITAL LETTER ER */ + /*3552*/ 0x01044a, 1, 0x010422, /* DESERET CAPITAL LETTER EL */ + /*3555*/ 0x01044b, 1, 0x010423, /* DESERET CAPITAL LETTER EM */ + /*3558*/ 0x01044c, 1, 0x010424, /* DESERET CAPITAL LETTER EN */ + /*3561*/ 0x01044d, 1, 0x010425, /* DESERET CAPITAL LETTER ENG */ + /*3564*/ 0x01044e, 1, 0x010426, /* DESERET CAPITAL LETTER OI */ + /*3567*/ 0x01044f, 1, 0x010427, /* DESERET CAPITAL LETTER EW */ + /*3570*/ 0x0104d8, 1, 0x0104b0, /* OSAGE CAPITAL LETTER A */ + /*3573*/ 0x0104d9, 1, 0x0104b1, /* OSAGE CAPITAL LETTER AI */ + /*3576*/ 0x0104da, 1, 0x0104b2, /* OSAGE CAPITAL LETTER AIN */ + /*3579*/ 0x0104db, 1, 0x0104b3, /* OSAGE CAPITAL LETTER AH */ + /*3582*/ 0x0104dc, 1, 0x0104b4, /* OSAGE CAPITAL LETTER BRA */ + /*3585*/ 0x0104dd, 1, 0x0104b5, /* OSAGE CAPITAL LETTER CHA */ + /*3588*/ 0x0104de, 1, 0x0104b6, /* OSAGE CAPITAL LETTER EHCHA */ + /*3591*/ 0x0104df, 1, 0x0104b7, /* OSAGE CAPITAL LETTER E */ + /*3594*/ 0x0104e0, 1, 0x0104b8, /* OSAGE CAPITAL LETTER EIN */ + /*3597*/ 0x0104e1, 1, 0x0104b9, /* OSAGE CAPITAL LETTER HA */ + /*3600*/ 0x0104e2, 1, 0x0104ba, /* OSAGE CAPITAL LETTER HYA */ + /*3603*/ 0x0104e3, 1, 0x0104bb, /* OSAGE CAPITAL LETTER I */ + /*3606*/ 0x0104e4, 1, 0x0104bc, /* OSAGE CAPITAL LETTER KA */ + /*3609*/ 0x0104e5, 1, 0x0104bd, /* OSAGE CAPITAL LETTER EHKA */ + /*3612*/ 0x0104e6, 1, 0x0104be, /* OSAGE CAPITAL LETTER KYA */ + /*3615*/ 0x0104e7, 1, 0x0104bf, /* OSAGE CAPITAL LETTER LA */ + /*3618*/ 0x0104e8, 1, 0x0104c0, /* OSAGE CAPITAL LETTER MA */ + /*3621*/ 0x0104e9, 1, 0x0104c1, /* OSAGE CAPITAL LETTER NA */ + /*3624*/ 0x0104ea, 1, 0x0104c2, /* OSAGE CAPITAL LETTER O */ + /*3627*/ 0x0104eb, 1, 0x0104c3, /* OSAGE CAPITAL LETTER OIN */ + /*3630*/ 0x0104ec, 1, 0x0104c4, /* OSAGE CAPITAL LETTER PA */ + /*3633*/ 0x0104ed, 1, 0x0104c5, /* OSAGE CAPITAL LETTER EHPA */ + /*3636*/ 0x0104ee, 1, 0x0104c6, /* OSAGE CAPITAL LETTER SA */ + /*3639*/ 0x0104ef, 1, 0x0104c7, /* OSAGE CAPITAL LETTER SHA */ + /*3642*/ 0x0104f0, 1, 0x0104c8, /* OSAGE CAPITAL LETTER TA */ + /*3645*/ 0x0104f1, 1, 0x0104c9, /* OSAGE CAPITAL LETTER EHTA */ + /*3648*/ 0x0104f2, 1, 0x0104ca, /* OSAGE CAPITAL LETTER TSA */ + /*3651*/ 0x0104f3, 1, 0x0104cb, /* OSAGE CAPITAL LETTER EHTSA */ + /*3654*/ 0x0104f4, 1, 0x0104cc, /* OSAGE CAPITAL LETTER TSHA */ + /*3657*/ 0x0104f5, 1, 0x0104cd, /* OSAGE CAPITAL LETTER DHA */ + /*3660*/ 0x0104f6, 1, 0x0104ce, /* OSAGE CAPITAL LETTER U */ + /*3663*/ 0x0104f7, 1, 0x0104cf, /* OSAGE CAPITAL LETTER WA */ + /*3666*/ 0x0104f8, 1, 0x0104d0, /* OSAGE CAPITAL LETTER KHA */ + /*3669*/ 0x0104f9, 1, 0x0104d1, /* OSAGE CAPITAL LETTER GHA */ + /*3672*/ 0x0104fa, 1, 0x0104d2, /* OSAGE CAPITAL LETTER ZA */ + /*3675*/ 0x0104fb, 1, 0x0104d3, /* OSAGE CAPITAL LETTER ZHA */ + /*3678*/ 0x010597, 1, 0x010570, /* VITHKUQI CAPITAL LETTER A */ + /*3681*/ 0x010598, 1, 0x010571, /* VITHKUQI CAPITAL LETTER BBE */ + /*3684*/ 0x010599, 1, 0x010572, /* VITHKUQI CAPITAL LETTER BE */ + /*3687*/ 0x01059a, 1, 0x010573, /* VITHKUQI CAPITAL LETTER CE */ + /*3690*/ 0x01059b, 1, 0x010574, /* VITHKUQI CAPITAL LETTER CHE */ + /*3693*/ 0x01059c, 1, 0x010575, /* VITHKUQI CAPITAL LETTER DE */ + /*3696*/ 0x01059d, 1, 0x010576, /* VITHKUQI CAPITAL LETTER DHE */ + /*3699*/ 0x01059e, 1, 0x010577, /* VITHKUQI CAPITAL LETTER EI */ + /*3702*/ 0x01059f, 1, 0x010578, /* VITHKUQI CAPITAL LETTER E */ + /*3705*/ 0x0105a0, 1, 0x010579, /* VITHKUQI CAPITAL LETTER FE */ + /*3708*/ 0x0105a1, 1, 0x01057a, /* VITHKUQI CAPITAL LETTER GA */ + /*3711*/ 0x0105a3, 1, 0x01057c, /* VITHKUQI CAPITAL LETTER HA */ + /*3714*/ 0x0105a4, 1, 0x01057d, /* VITHKUQI CAPITAL LETTER HHA */ + /*3717*/ 0x0105a5, 1, 0x01057e, /* VITHKUQI CAPITAL LETTER I */ + /*3720*/ 0x0105a6, 1, 0x01057f, /* VITHKUQI CAPITAL LETTER IJE */ + /*3723*/ 0x0105a7, 1, 0x010580, /* VITHKUQI CAPITAL LETTER JE */ + /*3726*/ 0x0105a8, 1, 0x010581, /* VITHKUQI CAPITAL LETTER KA */ + /*3729*/ 0x0105a9, 1, 0x010582, /* VITHKUQI CAPITAL LETTER LA */ + /*3732*/ 0x0105aa, 1, 0x010583, /* VITHKUQI CAPITAL LETTER LLA */ + /*3735*/ 0x0105ab, 1, 0x010584, /* VITHKUQI CAPITAL LETTER ME */ + /*3738*/ 0x0105ac, 1, 0x010585, /* VITHKUQI CAPITAL LETTER NE */ + /*3741*/ 0x0105ad, 1, 0x010586, /* VITHKUQI CAPITAL LETTER NJE */ + /*3744*/ 0x0105ae, 1, 0x010587, /* VITHKUQI CAPITAL LETTER O */ + /*3747*/ 0x0105af, 1, 0x010588, /* VITHKUQI CAPITAL LETTER PE */ + /*3750*/ 0x0105b0, 1, 0x010589, /* VITHKUQI CAPITAL LETTER QA */ + /*3753*/ 0x0105b1, 1, 0x01058a, /* VITHKUQI CAPITAL LETTER RE */ + /*3756*/ 0x0105b3, 1, 0x01058c, /* VITHKUQI CAPITAL LETTER SE */ + /*3759*/ 0x0105b4, 1, 0x01058d, /* VITHKUQI CAPITAL LETTER SHE */ + /*3762*/ 0x0105b5, 1, 0x01058e, /* VITHKUQI CAPITAL LETTER TE */ + /*3765*/ 0x0105b6, 1, 0x01058f, /* VITHKUQI CAPITAL LETTER THE */ + /*3768*/ 0x0105b7, 1, 0x010590, /* VITHKUQI CAPITAL LETTER U */ + /*3771*/ 0x0105b8, 1, 0x010591, /* VITHKUQI CAPITAL LETTER VE */ + /*3774*/ 0x0105b9, 1, 0x010592, /* VITHKUQI CAPITAL LETTER XE */ + /*3777*/ 0x0105bb, 1, 0x010594, /* VITHKUQI CAPITAL LETTER Y */ + /*3780*/ 0x0105bc, 1, 0x010595, /* VITHKUQI CAPITAL LETTER ZE */ + /*3783*/ 0x010cc0, 1, 0x010c80, /* OLD HUNGARIAN CAPITAL LETTER A */ + /*3786*/ 0x010cc1, 1, 0x010c81, /* OLD HUNGARIAN CAPITAL LETTER AA */ + /*3789*/ 0x010cc2, 1, 0x010c82, /* OLD HUNGARIAN CAPITAL LETTER EB */ + /*3792*/ 0x010cc3, 1, 0x010c83, /* OLD HUNGARIAN CAPITAL LETTER AMB */ + /*3795*/ 0x010cc4, 1, 0x010c84, /* OLD HUNGARIAN CAPITAL LETTER EC */ + /*3798*/ 0x010cc5, 1, 0x010c85, /* OLD HUNGARIAN CAPITAL LETTER ENC */ + /*3801*/ 0x010cc6, 1, 0x010c86, /* OLD HUNGARIAN CAPITAL LETTER ECS */ + /*3804*/ 0x010cc7, 1, 0x010c87, /* OLD HUNGARIAN CAPITAL LETTER ED */ + /*3807*/ 0x010cc8, 1, 0x010c88, /* OLD HUNGARIAN CAPITAL LETTER AND */ + /*3810*/ 0x010cc9, 1, 0x010c89, /* OLD HUNGARIAN CAPITAL LETTER E */ + /*3813*/ 0x010cca, 1, 0x010c8a, /* OLD HUNGARIAN CAPITAL LETTER CLOS.. */ + /*3816*/ 0x010ccb, 1, 0x010c8b, /* OLD HUNGARIAN CAPITAL LETTER EE */ + /*3819*/ 0x010ccc, 1, 0x010c8c, /* OLD HUNGARIAN CAPITAL LETTER EF */ + /*3822*/ 0x010ccd, 1, 0x010c8d, /* OLD HUNGARIAN CAPITAL LETTER EG */ + /*3825*/ 0x010cce, 1, 0x010c8e, /* OLD HUNGARIAN CAPITAL LETTER EGY */ + /*3828*/ 0x010ccf, 1, 0x010c8f, /* OLD HUNGARIAN CAPITAL LETTER EH */ + /*3831*/ 0x010cd0, 1, 0x010c90, /* OLD HUNGARIAN CAPITAL LETTER I */ + /*3834*/ 0x010cd1, 1, 0x010c91, /* OLD HUNGARIAN CAPITAL LETTER II */ + /*3837*/ 0x010cd2, 1, 0x010c92, /* OLD HUNGARIAN CAPITAL LETTER EJ */ + /*3840*/ 0x010cd3, 1, 0x010c93, /* OLD HUNGARIAN CAPITAL LETTER EK */ + /*3843*/ 0x010cd4, 1, 0x010c94, /* OLD HUNGARIAN CAPITAL LETTER AK */ + /*3846*/ 0x010cd5, 1, 0x010c95, /* OLD HUNGARIAN CAPITAL LETTER UNK */ + /*3849*/ 0x010cd6, 1, 0x010c96, /* OLD HUNGARIAN CAPITAL LETTER EL */ + /*3852*/ 0x010cd7, 1, 0x010c97, /* OLD HUNGARIAN CAPITAL LETTER ELY */ + /*3855*/ 0x010cd8, 1, 0x010c98, /* OLD HUNGARIAN CAPITAL LETTER EM */ + /*3858*/ 0x010cd9, 1, 0x010c99, /* OLD HUNGARIAN CAPITAL LETTER EN */ + /*3861*/ 0x010cda, 1, 0x010c9a, /* OLD HUNGARIAN CAPITAL LETTER ENY */ + /*3864*/ 0x010cdb, 1, 0x010c9b, /* OLD HUNGARIAN CAPITAL LETTER O */ + /*3867*/ 0x010cdc, 1, 0x010c9c, /* OLD HUNGARIAN CAPITAL LETTER OO */ + /*3870*/ 0x010cdd, 1, 0x010c9d, /* OLD HUNGARIAN CAPITAL LETTER NIKO.. */ + /*3873*/ 0x010cde, 1, 0x010c9e, /* OLD HUNGARIAN CAPITAL LETTER RUDI.. */ + /*3876*/ 0x010cdf, 1, 0x010c9f, /* OLD HUNGARIAN CAPITAL LETTER OEE */ + /*3879*/ 0x010ce0, 1, 0x010ca0, /* OLD HUNGARIAN CAPITAL LETTER EP */ + /*3882*/ 0x010ce1, 1, 0x010ca1, /* OLD HUNGARIAN CAPITAL LETTER EMP */ + /*3885*/ 0x010ce2, 1, 0x010ca2, /* OLD HUNGARIAN CAPITAL LETTER ER */ + /*3888*/ 0x010ce3, 1, 0x010ca3, /* OLD HUNGARIAN CAPITAL LETTER SHOR.. */ + /*3891*/ 0x010ce4, 1, 0x010ca4, /* OLD HUNGARIAN CAPITAL LETTER ES */ + /*3894*/ 0x010ce5, 1, 0x010ca5, /* OLD HUNGARIAN CAPITAL LETTER ESZ */ + /*3897*/ 0x010ce6, 1, 0x010ca6, /* OLD HUNGARIAN CAPITAL LETTER ET */ + /*3900*/ 0x010ce7, 1, 0x010ca7, /* OLD HUNGARIAN CAPITAL LETTER ENT */ + /*3903*/ 0x010ce8, 1, 0x010ca8, /* OLD HUNGARIAN CAPITAL LETTER ETY */ + /*3906*/ 0x010ce9, 1, 0x010ca9, /* OLD HUNGARIAN CAPITAL LETTER ECH */ + /*3909*/ 0x010cea, 1, 0x010caa, /* OLD HUNGARIAN CAPITAL LETTER U */ + /*3912*/ 0x010ceb, 1, 0x010cab, /* OLD HUNGARIAN CAPITAL LETTER UU */ + /*3915*/ 0x010cec, 1, 0x010cac, /* OLD HUNGARIAN CAPITAL LETTER NIKO.. */ + /*3918*/ 0x010ced, 1, 0x010cad, /* OLD HUNGARIAN CAPITAL LETTER RUDI.. */ + /*3921*/ 0x010cee, 1, 0x010cae, /* OLD HUNGARIAN CAPITAL LETTER EV */ + /*3924*/ 0x010cef, 1, 0x010caf, /* OLD HUNGARIAN CAPITAL LETTER EZ */ + /*3927*/ 0x010cf0, 1, 0x010cb0, /* OLD HUNGARIAN CAPITAL LETTER EZS */ + /*3930*/ 0x010cf1, 1, 0x010cb1, /* OLD HUNGARIAN CAPITAL LETTER ENT-.. */ + /*3933*/ 0x010cf2, 1, 0x010cb2, /* OLD HUNGARIAN CAPITAL LETTER US */ + /*3936*/ 0x010d70, 1, 0x010d50, /* GARAY CAPITAL LETTER A */ + /*3939*/ 0x010d71, 1, 0x010d51, /* GARAY CAPITAL LETTER CA */ + /*3942*/ 0x010d72, 1, 0x010d52, /* GARAY CAPITAL LETTER MA */ + /*3945*/ 0x010d73, 1, 0x010d53, /* GARAY CAPITAL LETTER KA */ + /*3948*/ 0x010d74, 1, 0x010d54, /* GARAY CAPITAL LETTER BA */ + /*3951*/ 0x010d75, 1, 0x010d55, /* GARAY CAPITAL LETTER JA */ + /*3954*/ 0x010d76, 1, 0x010d56, /* GARAY CAPITAL LETTER SA */ + /*3957*/ 0x010d77, 1, 0x010d57, /* GARAY CAPITAL LETTER WA */ + /*3960*/ 0x010d78, 1, 0x010d58, /* GARAY CAPITAL LETTER LA */ + /*3963*/ 0x010d79, 1, 0x010d59, /* GARAY CAPITAL LETTER GA */ + /*3966*/ 0x010d7a, 1, 0x010d5a, /* GARAY CAPITAL LETTER DA */ + /*3969*/ 0x010d7b, 1, 0x010d5b, /* GARAY CAPITAL LETTER XA */ + /*3972*/ 0x010d7c, 1, 0x010d5c, /* GARAY CAPITAL LETTER YA */ + /*3975*/ 0x010d7d, 1, 0x010d5d, /* GARAY CAPITAL LETTER TA */ + /*3978*/ 0x010d7e, 1, 0x010d5e, /* GARAY CAPITAL LETTER RA */ + /*3981*/ 0x010d7f, 1, 0x010d5f, /* GARAY CAPITAL LETTER NYA */ + /*3984*/ 0x010d80, 1, 0x010d60, /* GARAY CAPITAL LETTER FA */ + /*3987*/ 0x010d81, 1, 0x010d61, /* GARAY CAPITAL LETTER NA */ + /*3990*/ 0x010d82, 1, 0x010d62, /* GARAY CAPITAL LETTER PA */ + /*3993*/ 0x010d83, 1, 0x010d63, /* GARAY CAPITAL LETTER HA */ + /*3996*/ 0x010d84, 1, 0x010d64, /* GARAY CAPITAL LETTER OLD KA */ + /*3999*/ 0x010d85, 1, 0x010d65, /* GARAY CAPITAL LETTER OLD NA */ + /*4002*/ 0x0118c0, 1, 0x0118a0, /* WARANG CITI CAPITAL LETTER NGAA */ + /*4005*/ 0x0118c1, 1, 0x0118a1, /* WARANG CITI CAPITAL LETTER A */ + /*4008*/ 0x0118c2, 1, 0x0118a2, /* WARANG CITI CAPITAL LETTER WI */ + /*4011*/ 0x0118c3, 1, 0x0118a3, /* WARANG CITI CAPITAL LETTER YU */ + /*4014*/ 0x0118c4, 1, 0x0118a4, /* WARANG CITI CAPITAL LETTER YA */ + /*4017*/ 0x0118c5, 1, 0x0118a5, /* WARANG CITI CAPITAL LETTER YO */ + /*4020*/ 0x0118c6, 1, 0x0118a6, /* WARANG CITI CAPITAL LETTER II */ + /*4023*/ 0x0118c7, 1, 0x0118a7, /* WARANG CITI CAPITAL LETTER UU */ + /*4026*/ 0x0118c8, 1, 0x0118a8, /* WARANG CITI CAPITAL LETTER E */ + /*4029*/ 0x0118c9, 1, 0x0118a9, /* WARANG CITI CAPITAL LETTER O */ + /*4032*/ 0x0118ca, 1, 0x0118aa, /* WARANG CITI CAPITAL LETTER ANG */ + /*4035*/ 0x0118cb, 1, 0x0118ab, /* WARANG CITI CAPITAL LETTER GA */ + /*4038*/ 0x0118cc, 1, 0x0118ac, /* WARANG CITI CAPITAL LETTER KO */ + /*4041*/ 0x0118cd, 1, 0x0118ad, /* WARANG CITI CAPITAL LETTER ENY */ + /*4044*/ 0x0118ce, 1, 0x0118ae, /* WARANG CITI CAPITAL LETTER YUJ */ + /*4047*/ 0x0118cf, 1, 0x0118af, /* WARANG CITI CAPITAL LETTER UC */ + /*4050*/ 0x0118d0, 1, 0x0118b0, /* WARANG CITI CAPITAL LETTER ENN */ + /*4053*/ 0x0118d1, 1, 0x0118b1, /* WARANG CITI CAPITAL LETTER ODD */ + /*4056*/ 0x0118d2, 1, 0x0118b2, /* WARANG CITI CAPITAL LETTER TTE */ + /*4059*/ 0x0118d3, 1, 0x0118b3, /* WARANG CITI CAPITAL LETTER NUNG */ + /*4062*/ 0x0118d4, 1, 0x0118b4, /* WARANG CITI CAPITAL LETTER DA */ + /*4065*/ 0x0118d5, 1, 0x0118b5, /* WARANG CITI CAPITAL LETTER AT */ + /*4068*/ 0x0118d6, 1, 0x0118b6, /* WARANG CITI CAPITAL LETTER AM */ + /*4071*/ 0x0118d7, 1, 0x0118b7, /* WARANG CITI CAPITAL LETTER BU */ + /*4074*/ 0x0118d8, 1, 0x0118b8, /* WARANG CITI CAPITAL LETTER PU */ + /*4077*/ 0x0118d9, 1, 0x0118b9, /* WARANG CITI CAPITAL LETTER HIYO */ + /*4080*/ 0x0118da, 1, 0x0118ba, /* WARANG CITI CAPITAL LETTER HOLO */ + /*4083*/ 0x0118db, 1, 0x0118bb, /* WARANG CITI CAPITAL LETTER HORR */ + /*4086*/ 0x0118dc, 1, 0x0118bc, /* WARANG CITI CAPITAL LETTER HAR */ + /*4089*/ 0x0118dd, 1, 0x0118bd, /* WARANG CITI CAPITAL LETTER SSUU */ + /*4092*/ 0x0118de, 1, 0x0118be, /* WARANG CITI CAPITAL LETTER SII */ + /*4095*/ 0x0118df, 1, 0x0118bf, /* WARANG CITI CAPITAL LETTER VIYO */ + /*4098*/ 0x016e60, 1, 0x016e40, /* MEDEFAIDRIN CAPITAL LETTER M */ + /*4101*/ 0x016e61, 1, 0x016e41, /* MEDEFAIDRIN CAPITAL LETTER S */ + /*4104*/ 0x016e62, 1, 0x016e42, /* MEDEFAIDRIN CAPITAL LETTER V */ + /*4107*/ 0x016e63, 1, 0x016e43, /* MEDEFAIDRIN CAPITAL LETTER W */ + /*4110*/ 0x016e64, 1, 0x016e44, /* MEDEFAIDRIN CAPITAL LETTER ATIU */ + /*4113*/ 0x016e65, 1, 0x016e45, /* MEDEFAIDRIN CAPITAL LETTER Z */ + /*4116*/ 0x016e66, 1, 0x016e46, /* MEDEFAIDRIN CAPITAL LETTER KP */ + /*4119*/ 0x016e67, 1, 0x016e47, /* MEDEFAIDRIN CAPITAL LETTER P */ + /*4122*/ 0x016e68, 1, 0x016e48, /* MEDEFAIDRIN CAPITAL LETTER T */ + /*4125*/ 0x016e69, 1, 0x016e49, /* MEDEFAIDRIN CAPITAL LETTER G */ + /*4128*/ 0x016e6a, 1, 0x016e4a, /* MEDEFAIDRIN CAPITAL LETTER F */ + /*4131*/ 0x016e6b, 1, 0x016e4b, /* MEDEFAIDRIN CAPITAL LETTER I */ + /*4134*/ 0x016e6c, 1, 0x016e4c, /* MEDEFAIDRIN CAPITAL LETTER K */ + /*4137*/ 0x016e6d, 1, 0x016e4d, /* MEDEFAIDRIN CAPITAL LETTER A */ + /*4140*/ 0x016e6e, 1, 0x016e4e, /* MEDEFAIDRIN CAPITAL LETTER J */ + /*4143*/ 0x016e6f, 1, 0x016e4f, /* MEDEFAIDRIN CAPITAL LETTER E */ + /*4146*/ 0x016e70, 1, 0x016e50, /* MEDEFAIDRIN CAPITAL LETTER B */ + /*4149*/ 0x016e71, 1, 0x016e51, /* MEDEFAIDRIN CAPITAL LETTER C */ + /*4152*/ 0x016e72, 1, 0x016e52, /* MEDEFAIDRIN CAPITAL LETTER U */ + /*4155*/ 0x016e73, 1, 0x016e53, /* MEDEFAIDRIN CAPITAL LETTER YU */ + /*4158*/ 0x016e74, 1, 0x016e54, /* MEDEFAIDRIN CAPITAL LETTER L */ + /*4161*/ 0x016e75, 1, 0x016e55, /* MEDEFAIDRIN CAPITAL LETTER Q */ + /*4164*/ 0x016e76, 1, 0x016e56, /* MEDEFAIDRIN CAPITAL LETTER HP */ + /*4167*/ 0x016e77, 1, 0x016e57, /* MEDEFAIDRIN CAPITAL LETTER NY */ + /*4170*/ 0x016e78, 1, 0x016e58, /* MEDEFAIDRIN CAPITAL LETTER X */ + /*4173*/ 0x016e79, 1, 0x016e59, /* MEDEFAIDRIN CAPITAL LETTER D */ + /*4176*/ 0x016e7a, 1, 0x016e5a, /* MEDEFAIDRIN CAPITAL LETTER OE */ + /*4179*/ 0x016e7b, 1, 0x016e5b, /* MEDEFAIDRIN CAPITAL LETTER N */ + /*4182*/ 0x016e7c, 1, 0x016e5c, /* MEDEFAIDRIN CAPITAL LETTER R */ + /*4185*/ 0x016e7d, 1, 0x016e5d, /* MEDEFAIDRIN CAPITAL LETTER O */ + /*4188*/ 0x016e7e, 1, 0x016e5e, /* MEDEFAIDRIN CAPITAL LETTER AI */ + /*4191*/ 0x016e7f, 1, 0x016e5f, /* MEDEFAIDRIN CAPITAL LETTER Y */ + /*4194*/ 0x01e922, 1, 0x01e900, /* ADLAM CAPITAL LETTER ALIF */ + /*4197*/ 0x01e923, 1, 0x01e901, /* ADLAM CAPITAL LETTER DAALI */ + /*4200*/ 0x01e924, 1, 0x01e902, /* ADLAM CAPITAL LETTER LAAM */ + /*4203*/ 0x01e925, 1, 0x01e903, /* ADLAM CAPITAL LETTER MIIM */ + /*4206*/ 0x01e926, 1, 0x01e904, /* ADLAM CAPITAL LETTER BA */ + /*4209*/ 0x01e927, 1, 0x01e905, /* ADLAM CAPITAL LETTER SINNYIIYHE */ + /*4212*/ 0x01e928, 1, 0x01e906, /* ADLAM CAPITAL LETTER PE */ + /*4215*/ 0x01e929, 1, 0x01e907, /* ADLAM CAPITAL LETTER BHE */ + /*4218*/ 0x01e92a, 1, 0x01e908, /* ADLAM CAPITAL LETTER RA */ + /*4221*/ 0x01e92b, 1, 0x01e909, /* ADLAM CAPITAL LETTER E */ + /*4224*/ 0x01e92c, 1, 0x01e90a, /* ADLAM CAPITAL LETTER FA */ + /*4227*/ 0x01e92d, 1, 0x01e90b, /* ADLAM CAPITAL LETTER I */ + /*4230*/ 0x01e92e, 1, 0x01e90c, /* ADLAM CAPITAL LETTER O */ + /*4233*/ 0x01e92f, 1, 0x01e90d, /* ADLAM CAPITAL LETTER DHA */ + /*4236*/ 0x01e930, 1, 0x01e90e, /* ADLAM CAPITAL LETTER YHE */ + /*4239*/ 0x01e931, 1, 0x01e90f, /* ADLAM CAPITAL LETTER WAW */ + /*4242*/ 0x01e932, 1, 0x01e910, /* ADLAM CAPITAL LETTER NUN */ + /*4245*/ 0x01e933, 1, 0x01e911, /* ADLAM CAPITAL LETTER KAF */ + /*4248*/ 0x01e934, 1, 0x01e912, /* ADLAM CAPITAL LETTER YA */ + /*4251*/ 0x01e935, 1, 0x01e913, /* ADLAM CAPITAL LETTER U */ + /*4254*/ 0x01e936, 1, 0x01e914, /* ADLAM CAPITAL LETTER JIIM */ + /*4257*/ 0x01e937, 1, 0x01e915, /* ADLAM CAPITAL LETTER CHI */ + /*4260*/ 0x01e938, 1, 0x01e916, /* ADLAM CAPITAL LETTER HA */ + /*4263*/ 0x01e939, 1, 0x01e917, /* ADLAM CAPITAL LETTER QAAF */ + /*4266*/ 0x01e93a, 1, 0x01e918, /* ADLAM CAPITAL LETTER GA */ + /*4269*/ 0x01e93b, 1, 0x01e919, /* ADLAM CAPITAL LETTER NYA */ + /*4272*/ 0x01e93c, 1, 0x01e91a, /* ADLAM CAPITAL LETTER TU */ + /*4275*/ 0x01e93d, 1, 0x01e91b, /* ADLAM CAPITAL LETTER NHA */ + /*4278*/ 0x01e93e, 1, 0x01e91c, /* ADLAM CAPITAL LETTER VA */ + /*4281*/ 0x01e93f, 1, 0x01e91d, /* ADLAM CAPITAL LETTER KHA */ + /*4284*/ 0x01e940, 1, 0x01e91e, /* ADLAM CAPITAL LETTER GBE */ + /*4287*/ 0x01e941, 1, 0x01e91f, /* ADLAM CAPITAL LETTER ZAL */ + /*4290*/ 0x01e942, 1, 0x01e920, /* ADLAM CAPITAL LETTER KPO */ + /*4293*/ 0x01e943, 1, 0x01e921, /* ADLAM CAPITAL LETTER SHA */ +#define FOLDS1_NORMAL_END_INDEX 4296 + /* ----- LOCALE ----- */ + /*4296*/ 0x0069, 1, 0x0049, /* LATIN CAPITAL LETTER I */ +#define FOLDS1_END_INDEX 4299 +}; + +OnigCodePoint OnigUnicodeFolds2[] = { + /* LATIN SMALL LETTER A WITH RIGHT HALF RING */ + /* 0*/ 0x0061, 0x02be, 1, 0x1e9a, + /* LATIN SMALL LIGATURE FF */ + /* 4*/ 0x0066, 0x0066, 1, 0xfb00, + /* LATIN SMALL LIGATURE FI */ + /* 8*/ 0x0066, 0x0069, 1, 0xfb01, + /* LATIN SMALL LIGATURE FL */ + /* 12*/ 0x0066, 0x006c, 1, 0xfb02, + /* LATIN SMALL LETTER H WITH LINE BELOW */ + /* 16*/ 0x0068, 0x0331, 1, 0x1e96, + /* LATIN SMALL LETTER J WITH CARON */ + /* 20*/ 0x006a, 0x030c, 1, 0x01f0, + /* LATIN SMALL LETTER SHARP S */ + /* 24*/ 0x0073, 0x0073, 2, 0x00df, 0x1e9e, + /* LATIN SMALL LIGATURE LONG S T */ + /* 29*/ 0x0073, 0x0074, 2, 0xfb05, 0xfb06, + /* LATIN SMALL LETTER T WITH DIAERESIS */ + /* 34*/ 0x0074, 0x0308, 1, 0x1e97, + /* LATIN SMALL LETTER W WITH RING ABOVE */ + /* 38*/ 0x0077, 0x030a, 1, 0x1e98, + /* LATIN SMALL LETTER Y WITH RING ABOVE */ + /* 42*/ 0x0079, 0x030a, 1, 0x1e99, + /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */ + /* 46*/ 0x02bc, 0x006e, 1, 0x0149, + /* GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI */ + /* 50*/ 0x03ac, 0x03b9, 1, 0x1fb4, + /* GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI */ + /* 54*/ 0x03ae, 0x03b9, 1, 0x1fc4, + /* GREEK SMALL LETTER ALPHA WITH PERISPOMENI */ + /* 58*/ 0x03b1, 0x0342, 1, 0x1fb6, + /* GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI */ + /* 62*/ 0x03b1, 0x03b9, 2, 0x1fb3, 0x1fbc, + /* GREEK SMALL LETTER ETA WITH PERISPOMENI */ + /* 67*/ 0x03b7, 0x0342, 1, 0x1fc6, + /* GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI */ + /* 71*/ 0x03b7, 0x03b9, 2, 0x1fc3, 0x1fcc, + /* GREEK SMALL LETTER IOTA WITH PERISPOMENI */ + /* 76*/ 0x03b9, 0x0342, 1, 0x1fd6, + /* GREEK SMALL LETTER RHO WITH PSILI */ + /* 80*/ 0x03c1, 0x0313, 1, 0x1fe4, + /* GREEK SMALL LETTER UPSILON WITH PSILI */ + /* 84*/ 0x03c5, 0x0313, 1, 0x1f50, + /* GREEK SMALL LETTER UPSILON WITH PERISPOMENI */ + /* 88*/ 0x03c5, 0x0342, 1, 0x1fe6, + /* GREEK SMALL LETTER OMEGA WITH PERISPOMENI */ + /* 92*/ 0x03c9, 0x0342, 1, 0x1ff6, + /* GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI */ + /* 96*/ 0x03c9, 0x03b9, 2, 0x1ff3, 0x1ffc, + /* GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI */ + /* 101*/ 0x03ce, 0x03b9, 1, 0x1ff4, + /* ARMENIAN SMALL LIGATURE ECH YIWN */ + /* 105*/ 0x0565, 0x0582, 1, 0x0587, + /* ARMENIAN SMALL LIGATURE MEN ECH */ + /* 109*/ 0x0574, 0x0565, 1, 0xfb14, + /* ARMENIAN SMALL LIGATURE MEN INI */ + /* 113*/ 0x0574, 0x056b, 1, 0xfb15, + /* ARMENIAN SMALL LIGATURE MEN XEH */ + /* 117*/ 0x0574, 0x056d, 1, 0xfb17, + /* ARMENIAN SMALL LIGATURE MEN NOW */ + /* 121*/ 0x0574, 0x0576, 1, 0xfb13, + /* ARMENIAN SMALL LIGATURE VEW NOW */ + /* 125*/ 0x057e, 0x0576, 1, 0xfb16, + /* GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI */ + /* 129*/ 0x1f00, 0x03b9, 2, 0x1f80, 0x1f88, + /* GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI */ + /* 134*/ 0x1f01, 0x03b9, 2, 0x1f81, 0x1f89, + /* GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI */ + /* 139*/ 0x1f02, 0x03b9, 2, 0x1f82, 0x1f8a, + /* GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI */ + /* 144*/ 0x1f03, 0x03b9, 2, 0x1f83, 0x1f8b, + /* GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI */ + /* 149*/ 0x1f04, 0x03b9, 2, 0x1f84, 0x1f8c, + /* GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI */ + /* 154*/ 0x1f05, 0x03b9, 2, 0x1f85, 0x1f8d, + /* GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */ + /* 159*/ 0x1f06, 0x03b9, 2, 0x1f86, 0x1f8e, + /* GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */ + /* 164*/ 0x1f07, 0x03b9, 2, 0x1f87, 0x1f8f, + /* GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI */ + /* 169*/ 0x1f20, 0x03b9, 2, 0x1f90, 0x1f98, + /* GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI */ + /* 174*/ 0x1f21, 0x03b9, 2, 0x1f91, 0x1f99, + /* GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI */ + /* 179*/ 0x1f22, 0x03b9, 2, 0x1f92, 0x1f9a, + /* GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI */ + /* 184*/ 0x1f23, 0x03b9, 2, 0x1f93, 0x1f9b, + /* GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI */ + /* 189*/ 0x1f24, 0x03b9, 2, 0x1f94, 0x1f9c, + /* GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI */ + /* 194*/ 0x1f25, 0x03b9, 2, 0x1f95, 0x1f9d, + /* GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */ + /* 199*/ 0x1f26, 0x03b9, 2, 0x1f96, 0x1f9e, + /* GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */ + /* 204*/ 0x1f27, 0x03b9, 2, 0x1f97, 0x1f9f, + /* GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI */ + /* 209*/ 0x1f60, 0x03b9, 2, 0x1fa0, 0x1fa8, + /* GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI */ + /* 214*/ 0x1f61, 0x03b9, 2, 0x1fa1, 0x1fa9, + /* GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI */ + /* 219*/ 0x1f62, 0x03b9, 2, 0x1fa2, 0x1faa, + /* GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI */ + /* 224*/ 0x1f63, 0x03b9, 2, 0x1fa3, 0x1fab, + /* GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI */ + /* 229*/ 0x1f64, 0x03b9, 2, 0x1fa4, 0x1fac, + /* GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI */ + /* 234*/ 0x1f65, 0x03b9, 2, 0x1fa5, 0x1fad, + /* GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */ + /* 239*/ 0x1f66, 0x03b9, 2, 0x1fa6, 0x1fae, + /* GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */ + /* 244*/ 0x1f67, 0x03b9, 2, 0x1fa7, 0x1faf, + /* GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI */ + /* 249*/ 0x1f70, 0x03b9, 1, 0x1fb2, + /* GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI */ + /* 253*/ 0x1f74, 0x03b9, 1, 0x1fc2, + /* GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI */ + /* 257*/ 0x1f7c, 0x03b9, 1, 0x1ff2, +#define FOLDS2_NORMAL_END_INDEX 261 + /* ----- LOCALE ----- */ + /* LATIN CAPITAL LETTER I WITH DOT ABOVE */ + /* 261*/ 0x0069, 0x0307, 1, 0x0130, +#define FOLDS2_END_INDEX 265 +}; + +OnigCodePoint OnigUnicodeFolds3[] = { + /* LATIN SMALL LIGATURE FFI */ + /* 0*/ 0x0066, 0x0066, 0x0069, 1, 0xfb03, + /* LATIN SMALL LIGATURE FFL */ + /* 5*/ 0x0066, 0x0066, 0x006c, 1, 0xfb04, + /* GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI */ + /* 10*/ 0x03b1, 0x0342, 0x03b9, 1, 0x1fb7, + /* GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI */ + /* 15*/ 0x03b7, 0x0342, 0x03b9, 1, 0x1fc7, + /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA */ + /* 20*/ 0x03b9, 0x0308, 0x0300, 1, 0x1fd2, + /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */ + /* 25*/ 0x03b9, 0x0308, 0x0301, 2, 0x0390, 0x1fd3, + /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI */ + /* 31*/ 0x03b9, 0x0308, 0x0342, 1, 0x1fd7, + /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA */ + /* 36*/ 0x03c5, 0x0308, 0x0300, 1, 0x1fe2, + /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */ + /* 41*/ 0x03c5, 0x0308, 0x0301, 2, 0x03b0, 0x1fe3, + /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI */ + /* 47*/ 0x03c5, 0x0308, 0x0342, 1, 0x1fe7, + /* GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA */ + /* 52*/ 0x03c5, 0x0313, 0x0300, 1, 0x1f52, + /* GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA */ + /* 57*/ 0x03c5, 0x0313, 0x0301, 1, 0x1f54, + /* GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI */ + /* 62*/ 0x03c5, 0x0313, 0x0342, 1, 0x1f56, + /* GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI */ + /* 67*/ 0x03c9, 0x0342, 0x03b9, 1, 0x1ff7, +#define FOLDS3_NORMAL_END_INDEX 72 + /* ----- LOCALE ----- */ +#define FOLDS3_END_INDEX 72 +}; diff --git a/thirdparty/oniguruma/unicode_property_data.c b/thirdparty/oniguruma/unicode_property_data.c new file mode 100644 index 000000000..6cf47c1ed --- /dev/null +++ b/thirdparty/oniguruma/unicode_property_data.c @@ -0,0 +1,33930 @@ +/* ANSI-C code produced by gperf version 3.1 */ +/* Command-line: gperf -T -C -c -t -j1 -L ANSI-C --ignore-case --pic -Q unicode_prop_name_pool -N unicode_lookup_property_name --output-file gperf1.tmp unicode_property_data.gperf */ +/* Computed positions: -k'1-3,5-6,12,16,$' */ + +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) +/* The character set is not based on ISO-646. */ +#error "gperf generated tables don't work with this execution character set. Please report a bug to ." +#endif + + + +/* Generated by make_unicode_property_data.py. */ + +/*- + * Copyright (c) 2016-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + +/* PROPERTY: 'NEWLINE': POSIX [[:NEWLINE:]] */ +static const OnigCodePoint +CR_NEWLINE[] = { 1, +0x000a, 0x000a, +}; /* END of CR_NEWLINE */ + +/* PROPERTY: 'Alpha': POSIX [[:Alpha:]] */ +static const OnigCodePoint +CR_Alpha[] = { 757, +0x0041, 0x005a, +0x0061, 0x007a, +0x00aa, 0x00aa, +0x00b5, 0x00b5, +0x00ba, 0x00ba, +0x00c0, 0x00d6, +0x00d8, 0x00f6, +0x00f8, 0x02c1, +0x02c6, 0x02d1, +0x02e0, 0x02e4, +0x02ec, 0x02ec, +0x02ee, 0x02ee, +0x0345, 0x0345, +0x0363, 0x0374, +0x0376, 0x0377, +0x037a, 0x037d, +0x037f, 0x037f, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x03f5, +0x03f7, 0x0481, +0x048a, 0x052f, +0x0531, 0x0556, +0x0559, 0x0559, +0x0560, 0x0588, +0x05b0, 0x05bd, +0x05bf, 0x05bf, +0x05c1, 0x05c2, +0x05c4, 0x05c5, +0x05c7, 0x05c7, +0x05d0, 0x05ea, +0x05ef, 0x05f2, +0x0610, 0x061a, +0x0620, 0x0657, +0x0659, 0x065f, +0x066e, 0x06d3, +0x06d5, 0x06dc, +0x06e1, 0x06e8, +0x06ed, 0x06ef, +0x06fa, 0x06fc, +0x06ff, 0x06ff, +0x0710, 0x073f, +0x074d, 0x07b1, +0x07ca, 0x07ea, +0x07f4, 0x07f5, +0x07fa, 0x07fa, +0x0800, 0x0817, +0x081a, 0x082c, +0x0840, 0x0858, +0x0860, 0x086a, +0x0870, 0x0887, +0x0889, 0x088e, +0x0897, 0x0897, +0x08a0, 0x08c9, +0x08d4, 0x08df, +0x08e3, 0x08e9, +0x08f0, 0x093b, +0x093d, 0x094c, +0x094e, 0x0950, +0x0955, 0x0963, +0x0971, 0x0983, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bd, 0x09c4, +0x09c7, 0x09c8, +0x09cb, 0x09cc, +0x09ce, 0x09ce, +0x09d7, 0x09d7, +0x09dc, 0x09dd, +0x09df, 0x09e3, +0x09f0, 0x09f1, +0x09fc, 0x09fc, +0x0a01, 0x0a03, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a3e, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4c, +0x0a51, 0x0a51, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a70, 0x0a75, +0x0a81, 0x0a83, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abd, 0x0ac5, +0x0ac7, 0x0ac9, +0x0acb, 0x0acc, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae3, +0x0af9, 0x0afc, +0x0b01, 0x0b03, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3d, 0x0b44, +0x0b47, 0x0b48, +0x0b4b, 0x0b4c, +0x0b56, 0x0b57, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b63, +0x0b71, 0x0b71, +0x0b82, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bbe, 0x0bc2, +0x0bc6, 0x0bc8, +0x0bca, 0x0bcc, +0x0bd0, 0x0bd0, +0x0bd7, 0x0bd7, +0x0c00, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3d, 0x0c44, +0x0c46, 0x0c48, +0x0c4a, 0x0c4c, +0x0c55, 0x0c56, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c63, +0x0c80, 0x0c83, +0x0c85, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbd, 0x0cc4, +0x0cc6, 0x0cc8, +0x0cca, 0x0ccc, +0x0cd5, 0x0cd6, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce3, +0x0cf1, 0x0cf3, +0x0d00, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d3a, +0x0d3d, 0x0d44, +0x0d46, 0x0d48, +0x0d4a, 0x0d4c, +0x0d4e, 0x0d4e, +0x0d54, 0x0d57, +0x0d5f, 0x0d63, +0x0d7a, 0x0d7f, +0x0d81, 0x0d83, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0dcf, 0x0dd4, +0x0dd6, 0x0dd6, +0x0dd8, 0x0ddf, +0x0df2, 0x0df3, +0x0e01, 0x0e3a, +0x0e40, 0x0e46, +0x0e4d, 0x0e4d, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0eb9, +0x0ebb, 0x0ebd, +0x0ec0, 0x0ec4, +0x0ec6, 0x0ec6, +0x0ecd, 0x0ecd, +0x0edc, 0x0edf, +0x0f00, 0x0f00, +0x0f40, 0x0f47, +0x0f49, 0x0f6c, +0x0f71, 0x0f83, +0x0f88, 0x0f97, +0x0f99, 0x0fbc, +0x1000, 0x1036, +0x1038, 0x1038, +0x103b, 0x103f, +0x1050, 0x108f, +0x109a, 0x109d, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x10fa, +0x10fc, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x1380, 0x138f, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1401, 0x166c, +0x166f, 0x167f, +0x1681, 0x169a, +0x16a0, 0x16ea, +0x16ee, 0x16f8, +0x1700, 0x1713, +0x171f, 0x1733, +0x1740, 0x1753, +0x1760, 0x176c, +0x176e, 0x1770, +0x1772, 0x1773, +0x1780, 0x17b3, +0x17b6, 0x17c8, +0x17d7, 0x17d7, +0x17dc, 0x17dc, +0x1820, 0x1878, +0x1880, 0x18aa, +0x18b0, 0x18f5, +0x1900, 0x191e, +0x1920, 0x192b, +0x1930, 0x1938, +0x1950, 0x196d, +0x1970, 0x1974, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x1a00, 0x1a1b, +0x1a20, 0x1a5e, +0x1a61, 0x1a74, +0x1aa7, 0x1aa7, +0x1abf, 0x1ac0, +0x1acc, 0x1ace, +0x1b00, 0x1b33, +0x1b35, 0x1b43, +0x1b45, 0x1b4c, +0x1b80, 0x1ba9, +0x1bac, 0x1baf, +0x1bba, 0x1be5, +0x1be7, 0x1bf1, +0x1c00, 0x1c36, +0x1c4d, 0x1c4f, +0x1c5a, 0x1c7d, +0x1c80, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1ce9, 0x1cec, +0x1cee, 0x1cf3, +0x1cf5, 0x1cf6, +0x1cfa, 0x1cfa, +0x1d00, 0x1dbf, +0x1dd3, 0x1df4, +0x1e00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fbc, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fcc, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fe0, 0x1fec, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffc, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x2102, 0x2102, +0x2107, 0x2107, +0x210a, 0x2113, +0x2115, 0x2115, +0x2119, 0x211d, +0x2124, 0x2124, +0x2126, 0x2126, +0x2128, 0x2128, +0x212a, 0x212d, +0x212f, 0x2139, +0x213c, 0x213f, +0x2145, 0x2149, +0x214e, 0x214e, +0x2160, 0x2188, +0x24b6, 0x24e9, +0x2c00, 0x2ce4, +0x2ceb, 0x2cee, +0x2cf2, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0x2d30, 0x2d67, +0x2d6f, 0x2d6f, +0x2d80, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0x2de0, 0x2dff, +0x2e2f, 0x2e2f, +0x3005, 0x3007, +0x3021, 0x3029, +0x3031, 0x3035, +0x3038, 0x303c, +0x3041, 0x3096, +0x309d, 0x309f, +0x30a1, 0x30fa, +0x30fc, 0x30ff, +0x3105, 0x312f, +0x3131, 0x318e, +0x31a0, 0x31bf, +0x31f0, 0x31ff, +0x3400, 0x4dbf, +0x4e00, 0xa48c, +0xa4d0, 0xa4fd, +0xa500, 0xa60c, +0xa610, 0xa61f, +0xa62a, 0xa62b, +0xa640, 0xa66e, +0xa674, 0xa67b, +0xa67f, 0xa6ef, +0xa717, 0xa71f, +0xa722, 0xa788, +0xa78b, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa805, +0xa807, 0xa827, +0xa840, 0xa873, +0xa880, 0xa8c3, +0xa8c5, 0xa8c5, +0xa8f2, 0xa8f7, +0xa8fb, 0xa8fb, +0xa8fd, 0xa8ff, +0xa90a, 0xa92a, +0xa930, 0xa952, +0xa960, 0xa97c, +0xa980, 0xa9b2, +0xa9b4, 0xa9bf, +0xa9cf, 0xa9cf, +0xa9e0, 0xa9ef, +0xa9fa, 0xa9fe, +0xaa00, 0xaa36, +0xaa40, 0xaa4d, +0xaa60, 0xaa76, +0xaa7a, 0xaabe, +0xaac0, 0xaac0, +0xaac2, 0xaac2, +0xaadb, 0xaadd, +0xaae0, 0xaaef, +0xaaf2, 0xaaf5, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0xab30, 0xab5a, +0xab5c, 0xab69, +0xab70, 0xabea, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xf900, 0xfa6d, +0xfa70, 0xfad9, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xfb1d, 0xfb28, +0xfb2a, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfbb1, +0xfbd3, 0xfd3d, +0xfd50, 0xfd8f, +0xfd92, 0xfdc7, +0xfdf0, 0xfdfb, +0xfe70, 0xfe74, +0xfe76, 0xfefc, +0xff21, 0xff3a, +0xff41, 0xff5a, +0xff66, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +0x10140, 0x10174, +0x10280, 0x1029c, +0x102a0, 0x102d0, +0x10300, 0x1031f, +0x1032d, 0x1034a, +0x10350, 0x1037a, +0x10380, 0x1039d, +0x103a0, 0x103c3, +0x103c8, 0x103cf, +0x103d1, 0x103d5, +0x10400, 0x1049d, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10500, 0x10527, +0x10530, 0x10563, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x105c0, 0x105f3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x10855, +0x10860, 0x10876, +0x10880, 0x1089e, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x10900, 0x10915, +0x10920, 0x10939, +0x10980, 0x109b7, +0x109be, 0x109bf, +0x10a00, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a60, 0x10a7c, +0x10a80, 0x10a9c, +0x10ac0, 0x10ac7, +0x10ac9, 0x10ae4, +0x10b00, 0x10b35, +0x10b40, 0x10b55, +0x10b60, 0x10b72, +0x10b80, 0x10b91, +0x10c00, 0x10c48, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10d00, 0x10d27, +0x10d4a, 0x10d65, +0x10d69, 0x10d69, +0x10d6f, 0x10d85, +0x10e80, 0x10ea9, +0x10eab, 0x10eac, +0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10efc, 0x10efc, +0x10f00, 0x10f1c, +0x10f27, 0x10f27, +0x10f30, 0x10f45, +0x10f70, 0x10f81, +0x10fb0, 0x10fc4, +0x10fe0, 0x10ff6, +0x11000, 0x11045, +0x11071, 0x11075, +0x11080, 0x110b8, +0x110c2, 0x110c2, +0x110d0, 0x110e8, +0x11100, 0x11132, +0x11144, 0x11147, +0x11150, 0x11172, +0x11176, 0x11176, +0x11180, 0x111bf, +0x111c1, 0x111c4, +0x111ce, 0x111cf, +0x111da, 0x111da, +0x111dc, 0x111dc, +0x11200, 0x11211, +0x11213, 0x11234, +0x11237, 0x11237, +0x1123e, 0x11241, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a8, +0x112b0, 0x112e8, +0x11300, 0x11303, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133d, 0x11344, +0x11347, 0x11348, +0x1134b, 0x1134c, +0x11350, 0x11350, +0x11357, 0x11357, +0x1135d, 0x11363, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113cd, +0x113d1, 0x113d1, +0x113d3, 0x113d3, +0x11400, 0x11441, +0x11443, 0x11445, +0x11447, 0x1144a, +0x1145f, 0x11461, +0x11480, 0x114c1, +0x114c4, 0x114c5, +0x114c7, 0x114c7, +0x11580, 0x115b5, +0x115b8, 0x115be, +0x115d8, 0x115dd, +0x11600, 0x1163e, +0x11640, 0x11640, +0x11644, 0x11644, +0x11680, 0x116b5, +0x116b8, 0x116b8, +0x11700, 0x1171a, +0x1171d, 0x1172a, +0x11740, 0x11746, +0x11800, 0x11838, +0x118a0, 0x118df, +0x118ff, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x11935, +0x11937, 0x11938, +0x1193b, 0x1193c, +0x1193f, 0x11942, +0x119a0, 0x119a7, +0x119aa, 0x119d7, +0x119da, 0x119df, +0x119e1, 0x119e1, +0x119e3, 0x119e4, +0x11a00, 0x11a32, +0x11a35, 0x11a3e, +0x11a50, 0x11a97, +0x11a9d, 0x11a9d, +0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11c00, 0x11c08, +0x11c0a, 0x11c36, +0x11c38, 0x11c3e, +0x11c40, 0x11c40, +0x11c72, 0x11c8f, +0x11c92, 0x11ca7, +0x11ca9, 0x11cb6, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d41, +0x11d43, 0x11d43, +0x11d46, 0x11d47, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d8e, +0x11d90, 0x11d91, +0x11d93, 0x11d96, +0x11d98, 0x11d98, +0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f40, +0x11fb0, 0x11fb0, +0x12000, 0x12399, +0x12400, 0x1246e, +0x12480, 0x12543, +0x12f90, 0x12ff0, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, +0x14400, 0x14646, +0x16100, 0x1612e, +0x16800, 0x16a38, +0x16a40, 0x16a5e, +0x16a70, 0x16abe, +0x16ad0, 0x16aed, +0x16b00, 0x16b2f, +0x16b40, 0x16b43, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16e40, 0x16e7f, +0x16f00, 0x16f4a, +0x16f4f, 0x16f87, +0x16f8f, 0x16f9f, +0x16fe0, 0x16fe1, +0x16fe3, 0x16fe3, +0x16ff0, 0x16ff1, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1b000, 0x1b122, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +0x1b170, 0x1b2fb, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1bc9e, 0x1bc9e, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d6c0, +0x1d6c2, 0x1d6da, +0x1d6dc, 0x1d6fa, +0x1d6fc, 0x1d714, +0x1d716, 0x1d734, +0x1d736, 0x1d74e, +0x1d750, 0x1d76e, +0x1d770, 0x1d788, +0x1d78a, 0x1d7a8, +0x1d7aa, 0x1d7c2, +0x1d7c4, 0x1d7cb, +0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, +0x1e100, 0x1e12c, +0x1e137, 0x1e13d, +0x1e14e, 0x1e14e, +0x1e290, 0x1e2ad, +0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5f0, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +0x1e800, 0x1e8c4, +0x1e900, 0x1e943, +0x1e947, 0x1e947, +0x1e94b, 0x1e94b, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x1f130, 0x1f149, +0x1f150, 0x1f169, +0x1f170, 0x1f189, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +}; /* END of CR_Alpha */ + +/* PROPERTY: 'Blank': POSIX [[:Blank:]] */ +static const OnigCodePoint +CR_Blank[] = { 8, +0x0009, 0x0009, +0x0020, 0x0020, +0x00a0, 0x00a0, +0x1680, 0x1680, +0x2000, 0x200a, +0x202f, 0x202f, +0x205f, 0x205f, +0x3000, 0x3000, +}; /* END of CR_Blank */ + +/* PROPERTY: 'Cntrl': POSIX [[:Cntrl:]] */ +static const OnigCodePoint +CR_Cntrl[] = { 2, +0x0000, 0x001f, +0x007f, 0x009f, +}; /* END of CR_Cntrl */ + +/* PROPERTY: 'Digit': POSIX [[:Digit:]] */ +static const OnigCodePoint +CR_Digit[] = { 71, +0x0030, 0x0039, +0x0660, 0x0669, +0x06f0, 0x06f9, +0x07c0, 0x07c9, +0x0966, 0x096f, +0x09e6, 0x09ef, +0x0a66, 0x0a6f, +0x0ae6, 0x0aef, +0x0b66, 0x0b6f, +0x0be6, 0x0bef, +0x0c66, 0x0c6f, +0x0ce6, 0x0cef, +0x0d66, 0x0d6f, +0x0de6, 0x0def, +0x0e50, 0x0e59, +0x0ed0, 0x0ed9, +0x0f20, 0x0f29, +0x1040, 0x1049, +0x1090, 0x1099, +0x17e0, 0x17e9, +0x1810, 0x1819, +0x1946, 0x194f, +0x19d0, 0x19d9, +0x1a80, 0x1a89, +0x1a90, 0x1a99, +0x1b50, 0x1b59, +0x1bb0, 0x1bb9, +0x1c40, 0x1c49, +0x1c50, 0x1c59, +0xa620, 0xa629, +0xa8d0, 0xa8d9, +0xa900, 0xa909, +0xa9d0, 0xa9d9, +0xa9f0, 0xa9f9, +0xaa50, 0xaa59, +0xabf0, 0xabf9, +0xff10, 0xff19, +0x104a0, 0x104a9, +0x10d30, 0x10d39, +0x10d40, 0x10d49, +0x11066, 0x1106f, +0x110f0, 0x110f9, +0x11136, 0x1113f, +0x111d0, 0x111d9, +0x112f0, 0x112f9, +0x11450, 0x11459, +0x114d0, 0x114d9, +0x11650, 0x11659, +0x116c0, 0x116c9, +0x116d0, 0x116e3, +0x11730, 0x11739, +0x118e0, 0x118e9, +0x11950, 0x11959, +0x11bf0, 0x11bf9, +0x11c50, 0x11c59, +0x11d50, 0x11d59, +0x11da0, 0x11da9, +0x11f50, 0x11f59, +0x16130, 0x16139, +0x16a60, 0x16a69, +0x16ac0, 0x16ac9, +0x16b50, 0x16b59, +0x16d70, 0x16d79, +0x1ccf0, 0x1ccf9, +0x1d7ce, 0x1d7ff, +0x1e140, 0x1e149, +0x1e2f0, 0x1e2f9, +0x1e4f0, 0x1e4f9, +0x1e5f1, 0x1e5fa, +0x1e950, 0x1e959, +0x1fbf0, 0x1fbf9, +}; /* END of CR_Digit */ + +/* PROPERTY: 'Graph': POSIX [[:Graph:]] */ +static const OnigCodePoint +CR_Graph[] = { 737, +0x0021, 0x007e, +0x00a1, 0x0377, +0x037a, 0x037f, +0x0384, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x052f, +0x0531, 0x0556, +0x0559, 0x058a, +0x058d, 0x058f, +0x0591, 0x05c7, +0x05d0, 0x05ea, +0x05ef, 0x05f4, +0x0600, 0x070d, +0x070f, 0x074a, +0x074d, 0x07b1, +0x07c0, 0x07fa, +0x07fd, 0x082d, +0x0830, 0x083e, +0x0840, 0x085b, +0x085e, 0x085e, +0x0860, 0x086a, +0x0870, 0x088e, +0x0890, 0x0891, +0x0897, 0x0983, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bc, 0x09c4, +0x09c7, 0x09c8, +0x09cb, 0x09ce, +0x09d7, 0x09d7, +0x09dc, 0x09dd, +0x09df, 0x09e3, +0x09e6, 0x09fe, +0x0a01, 0x0a03, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a3c, 0x0a3c, +0x0a3e, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4d, +0x0a51, 0x0a51, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a66, 0x0a76, +0x0a81, 0x0a83, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abc, 0x0ac5, +0x0ac7, 0x0ac9, +0x0acb, 0x0acd, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae3, +0x0ae6, 0x0af1, +0x0af9, 0x0aff, +0x0b01, 0x0b03, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3c, 0x0b44, +0x0b47, 0x0b48, +0x0b4b, 0x0b4d, +0x0b55, 0x0b57, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b63, +0x0b66, 0x0b77, +0x0b82, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bbe, 0x0bc2, +0x0bc6, 0x0bc8, +0x0bca, 0x0bcd, +0x0bd0, 0x0bd0, +0x0bd7, 0x0bd7, +0x0be6, 0x0bfa, +0x0c00, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3c, 0x0c44, +0x0c46, 0x0c48, +0x0c4a, 0x0c4d, +0x0c55, 0x0c56, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c63, +0x0c66, 0x0c6f, +0x0c77, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbc, 0x0cc4, +0x0cc6, 0x0cc8, +0x0cca, 0x0ccd, +0x0cd5, 0x0cd6, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce3, +0x0ce6, 0x0cef, +0x0cf1, 0x0cf3, +0x0d00, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d44, +0x0d46, 0x0d48, +0x0d4a, 0x0d4f, +0x0d54, 0x0d63, +0x0d66, 0x0d7f, +0x0d81, 0x0d83, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0dca, 0x0dca, +0x0dcf, 0x0dd4, +0x0dd6, 0x0dd6, +0x0dd8, 0x0ddf, +0x0de6, 0x0def, +0x0df2, 0x0df4, +0x0e01, 0x0e3a, +0x0e3f, 0x0e5b, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0ebd, +0x0ec0, 0x0ec4, +0x0ec6, 0x0ec6, +0x0ec8, 0x0ece, +0x0ed0, 0x0ed9, +0x0edc, 0x0edf, +0x0f00, 0x0f47, +0x0f49, 0x0f6c, +0x0f71, 0x0f97, +0x0f99, 0x0fbc, +0x0fbe, 0x0fcc, +0x0fce, 0x0fda, +0x1000, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x135d, 0x137c, +0x1380, 0x1399, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1400, 0x167f, +0x1681, 0x169c, +0x16a0, 0x16f8, +0x1700, 0x1715, +0x171f, 0x1736, +0x1740, 0x1753, +0x1760, 0x176c, +0x176e, 0x1770, +0x1772, 0x1773, +0x1780, 0x17dd, +0x17e0, 0x17e9, +0x17f0, 0x17f9, +0x1800, 0x1819, +0x1820, 0x1878, +0x1880, 0x18aa, +0x18b0, 0x18f5, +0x1900, 0x191e, +0x1920, 0x192b, +0x1930, 0x193b, +0x1940, 0x1940, +0x1944, 0x196d, +0x1970, 0x1974, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x19d0, 0x19da, +0x19de, 0x1a1b, +0x1a1e, 0x1a5e, +0x1a60, 0x1a7c, +0x1a7f, 0x1a89, +0x1a90, 0x1a99, +0x1aa0, 0x1aad, +0x1ab0, 0x1ace, +0x1b00, 0x1b4c, +0x1b4e, 0x1bf3, +0x1bfc, 0x1c37, +0x1c3b, 0x1c49, +0x1c4d, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cc7, +0x1cd0, 0x1cfa, +0x1d00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fc4, +0x1fc6, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fdd, 0x1fef, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffe, +0x200b, 0x2027, +0x202a, 0x202e, +0x2030, 0x205e, +0x2060, 0x2064, +0x2066, 0x2071, +0x2074, 0x208e, +0x2090, 0x209c, +0x20a0, 0x20c0, +0x20d0, 0x20f0, +0x2100, 0x218b, +0x2190, 0x2429, +0x2440, 0x244a, +0x2460, 0x2b73, +0x2b76, 0x2b95, +0x2b97, 0x2cf3, +0x2cf9, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0x2d30, 0x2d67, +0x2d6f, 0x2d70, +0x2d7f, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0x2de0, 0x2e5d, +0x2e80, 0x2e99, +0x2e9b, 0x2ef3, +0x2f00, 0x2fd5, +0x2ff0, 0x2fff, +0x3001, 0x303f, +0x3041, 0x3096, +0x3099, 0x30ff, +0x3105, 0x312f, +0x3131, 0x318e, +0x3190, 0x31e5, +0x31ef, 0x321e, +0x3220, 0xa48c, +0xa490, 0xa4c6, +0xa4d0, 0xa62b, +0xa640, 0xa6f7, +0xa700, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa82c, +0xa830, 0xa839, +0xa840, 0xa877, +0xa880, 0xa8c5, +0xa8ce, 0xa8d9, +0xa8e0, 0xa953, +0xa95f, 0xa97c, +0xa980, 0xa9cd, +0xa9cf, 0xa9d9, +0xa9de, 0xa9fe, +0xaa00, 0xaa36, +0xaa40, 0xaa4d, +0xaa50, 0xaa59, +0xaa5c, 0xaac2, +0xaadb, 0xaaf6, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0xab30, 0xab6b, +0xab70, 0xabed, +0xabf0, 0xabf9, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xe000, 0xfa6d, +0xfa70, 0xfad9, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xfb1d, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfbc2, +0xfbd3, 0xfd8f, +0xfd92, 0xfdc7, +0xfdcf, 0xfdcf, +0xfdf0, 0xfe19, +0xfe20, 0xfe52, +0xfe54, 0xfe66, +0xfe68, 0xfe6b, +0xfe70, 0xfe74, +0xfe76, 0xfefc, +0xfeff, 0xfeff, +0xff01, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +0xffe0, 0xffe6, +0xffe8, 0xffee, +0xfff9, 0xfffd, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +0x10100, 0x10102, +0x10107, 0x10133, +0x10137, 0x1018e, +0x10190, 0x1019c, +0x101a0, 0x101a0, +0x101d0, 0x101fd, +0x10280, 0x1029c, +0x102a0, 0x102d0, +0x102e0, 0x102fb, +0x10300, 0x10323, +0x1032d, 0x1034a, +0x10350, 0x1037a, +0x10380, 0x1039d, +0x1039f, 0x103c3, +0x103c8, 0x103d5, +0x10400, 0x1049d, +0x104a0, 0x104a9, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10500, 0x10527, +0x10530, 0x10563, +0x1056f, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x105c0, 0x105f3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x10855, +0x10857, 0x1089e, +0x108a7, 0x108af, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x108fb, 0x1091b, +0x1091f, 0x10939, +0x1093f, 0x1093f, +0x10980, 0x109b7, +0x109bc, 0x109cf, +0x109d2, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a38, 0x10a3a, +0x10a3f, 0x10a48, +0x10a50, 0x10a58, +0x10a60, 0x10a9f, +0x10ac0, 0x10ae6, +0x10aeb, 0x10af6, +0x10b00, 0x10b35, +0x10b39, 0x10b55, +0x10b58, 0x10b72, +0x10b78, 0x10b91, +0x10b99, 0x10b9c, +0x10ba9, 0x10baf, +0x10c00, 0x10c48, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10cfa, 0x10d27, +0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d85, +0x10d8e, 0x10d8f, +0x10e60, 0x10e7e, +0x10e80, 0x10ea9, +0x10eab, 0x10ead, +0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10efc, 0x10f27, +0x10f30, 0x10f59, +0x10f70, 0x10f89, +0x10fb0, 0x10fcb, +0x10fe0, 0x10ff6, +0x11000, 0x1104d, +0x11052, 0x11075, +0x1107f, 0x110c2, +0x110cd, 0x110cd, +0x110d0, 0x110e8, +0x110f0, 0x110f9, +0x11100, 0x11134, +0x11136, 0x11147, +0x11150, 0x11176, +0x11180, 0x111df, +0x111e1, 0x111f4, +0x11200, 0x11211, +0x11213, 0x11241, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a9, +0x112b0, 0x112ea, +0x112f0, 0x112f9, +0x11300, 0x11303, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133b, 0x11344, +0x11347, 0x11348, +0x1134b, 0x1134d, +0x11350, 0x11350, +0x11357, 0x11357, +0x1135d, 0x11363, +0x11366, 0x1136c, +0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d5, +0x113d7, 0x113d8, +0x113e1, 0x113e2, +0x11400, 0x1145b, +0x1145d, 0x11461, +0x11480, 0x114c7, +0x114d0, 0x114d9, +0x11580, 0x115b5, +0x115b8, 0x115dd, +0x11600, 0x11644, +0x11650, 0x11659, +0x11660, 0x1166c, +0x11680, 0x116b9, +0x116c0, 0x116c9, +0x116d0, 0x116e3, +0x11700, 0x1171a, +0x1171d, 0x1172b, +0x11730, 0x11746, +0x11800, 0x1183b, +0x118a0, 0x118f2, +0x118ff, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x11935, +0x11937, 0x11938, +0x1193b, 0x11946, +0x11950, 0x11959, +0x119a0, 0x119a7, +0x119aa, 0x119d7, +0x119da, 0x119e4, +0x11a00, 0x11a47, +0x11a50, 0x11aa2, +0x11ab0, 0x11af8, +0x11b00, 0x11b09, +0x11bc0, 0x11be1, +0x11bf0, 0x11bf9, +0x11c00, 0x11c08, +0x11c0a, 0x11c36, +0x11c38, 0x11c45, +0x11c50, 0x11c6c, +0x11c70, 0x11c8f, +0x11c92, 0x11ca7, +0x11ca9, 0x11cb6, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d47, +0x11d50, 0x11d59, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d8e, +0x11d90, 0x11d91, +0x11d93, 0x11d98, +0x11da0, 0x11da9, +0x11ee0, 0x11ef8, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f5a, +0x11fb0, 0x11fb0, +0x11fc0, 0x11ff1, +0x11fff, 0x12399, +0x12400, 0x1246e, +0x12470, 0x12474, +0x12480, 0x12543, +0x12f90, 0x12ff2, +0x13000, 0x13455, +0x13460, 0x143fa, +0x14400, 0x14646, +0x16100, 0x16139, +0x16800, 0x16a38, +0x16a40, 0x16a5e, +0x16a60, 0x16a69, +0x16a6e, 0x16abe, +0x16ac0, 0x16ac9, +0x16ad0, 0x16aed, +0x16af0, 0x16af5, +0x16b00, 0x16b45, +0x16b50, 0x16b59, +0x16b5b, 0x16b61, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +0x16d40, 0x16d79, +0x16e40, 0x16e9a, +0x16f00, 0x16f4a, +0x16f4f, 0x16f87, +0x16f8f, 0x16f9f, +0x16fe0, 0x16fe4, +0x16ff0, 0x16ff1, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1b000, 0x1b122, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +0x1b170, 0x1b2fb, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1bc9c, 0x1bca3, +0x1cc00, 0x1ccf9, +0x1cd00, 0x1ceb3, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1cf50, 0x1cfc3, +0x1d000, 0x1d0f5, +0x1d100, 0x1d126, +0x1d129, 0x1d1ea, +0x1d200, 0x1d245, +0x1d2c0, 0x1d2d3, +0x1d2e0, 0x1d2f3, +0x1d300, 0x1d356, +0x1d360, 0x1d378, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d7cb, +0x1d7ce, 0x1da8b, +0x1da9b, 0x1da9f, +0x1daa1, 0x1daaf, +0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, +0x1e100, 0x1e12c, +0x1e130, 0x1e13d, +0x1e140, 0x1e149, +0x1e14e, 0x1e14f, +0x1e290, 0x1e2ae, +0x1e2c0, 0x1e2f9, +0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, +0x1e5ff, 0x1e5ff, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +0x1e800, 0x1e8c4, +0x1e8c7, 0x1e8d6, +0x1e900, 0x1e94b, +0x1e950, 0x1e959, +0x1e95e, 0x1e95f, +0x1ec71, 0x1ecb4, +0x1ed01, 0x1ed3d, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x1eef0, 0x1eef1, +0x1f000, 0x1f02b, +0x1f030, 0x1f093, +0x1f0a0, 0x1f0ae, +0x1f0b1, 0x1f0bf, +0x1f0c1, 0x1f0cf, +0x1f0d1, 0x1f0f5, +0x1f100, 0x1f1ad, +0x1f1e6, 0x1f202, +0x1f210, 0x1f23b, +0x1f240, 0x1f248, +0x1f250, 0x1f251, +0x1f260, 0x1f265, +0x1f300, 0x1f6d7, +0x1f6dc, 0x1f6ec, +0x1f6f0, 0x1f6fc, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f800, 0x1f80b, +0x1f810, 0x1f847, +0x1f850, 0x1f859, +0x1f860, 0x1f887, +0x1f890, 0x1f8ad, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, +0x1f900, 0x1fa53, +0x1fa60, 0x1fa6d, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, +0x1fb00, 0x1fb92, +0x1fb94, 0x1fbf9, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +0xe0001, 0xe0001, +0xe0020, 0xe007f, +0xe0100, 0xe01ef, +0xf0000, 0xffffd, +0x100000, 0x10fffd, +}; /* END of CR_Graph */ + +/* PROPERTY: 'Lower': POSIX [[:Lower:]] */ +static const OnigCodePoint +CR_Lower[] = { 675, +0x0061, 0x007a, +0x00aa, 0x00aa, +0x00b5, 0x00b5, +0x00ba, 0x00ba, +0x00df, 0x00f6, +0x00f8, 0x00ff, +0x0101, 0x0101, +0x0103, 0x0103, +0x0105, 0x0105, +0x0107, 0x0107, +0x0109, 0x0109, +0x010b, 0x010b, +0x010d, 0x010d, +0x010f, 0x010f, +0x0111, 0x0111, +0x0113, 0x0113, +0x0115, 0x0115, +0x0117, 0x0117, +0x0119, 0x0119, +0x011b, 0x011b, +0x011d, 0x011d, +0x011f, 0x011f, +0x0121, 0x0121, +0x0123, 0x0123, +0x0125, 0x0125, +0x0127, 0x0127, +0x0129, 0x0129, +0x012b, 0x012b, +0x012d, 0x012d, +0x012f, 0x012f, +0x0131, 0x0131, +0x0133, 0x0133, +0x0135, 0x0135, +0x0137, 0x0138, +0x013a, 0x013a, +0x013c, 0x013c, +0x013e, 0x013e, +0x0140, 0x0140, +0x0142, 0x0142, +0x0144, 0x0144, +0x0146, 0x0146, +0x0148, 0x0149, +0x014b, 0x014b, +0x014d, 0x014d, +0x014f, 0x014f, +0x0151, 0x0151, +0x0153, 0x0153, +0x0155, 0x0155, +0x0157, 0x0157, +0x0159, 0x0159, +0x015b, 0x015b, +0x015d, 0x015d, +0x015f, 0x015f, +0x0161, 0x0161, +0x0163, 0x0163, +0x0165, 0x0165, +0x0167, 0x0167, +0x0169, 0x0169, +0x016b, 0x016b, +0x016d, 0x016d, +0x016f, 0x016f, +0x0171, 0x0171, +0x0173, 0x0173, +0x0175, 0x0175, +0x0177, 0x0177, +0x017a, 0x017a, +0x017c, 0x017c, +0x017e, 0x0180, +0x0183, 0x0183, +0x0185, 0x0185, +0x0188, 0x0188, +0x018c, 0x018d, +0x0192, 0x0192, +0x0195, 0x0195, +0x0199, 0x019b, +0x019e, 0x019e, +0x01a1, 0x01a1, +0x01a3, 0x01a3, +0x01a5, 0x01a5, +0x01a8, 0x01a8, +0x01aa, 0x01ab, +0x01ad, 0x01ad, +0x01b0, 0x01b0, +0x01b4, 0x01b4, +0x01b6, 0x01b6, +0x01b9, 0x01ba, +0x01bd, 0x01bf, +0x01c6, 0x01c6, +0x01c9, 0x01c9, +0x01cc, 0x01cc, +0x01ce, 0x01ce, +0x01d0, 0x01d0, +0x01d2, 0x01d2, +0x01d4, 0x01d4, +0x01d6, 0x01d6, +0x01d8, 0x01d8, +0x01da, 0x01da, +0x01dc, 0x01dd, +0x01df, 0x01df, +0x01e1, 0x01e1, +0x01e3, 0x01e3, +0x01e5, 0x01e5, +0x01e7, 0x01e7, +0x01e9, 0x01e9, +0x01eb, 0x01eb, +0x01ed, 0x01ed, +0x01ef, 0x01f0, +0x01f3, 0x01f3, +0x01f5, 0x01f5, +0x01f9, 0x01f9, +0x01fb, 0x01fb, +0x01fd, 0x01fd, +0x01ff, 0x01ff, +0x0201, 0x0201, +0x0203, 0x0203, +0x0205, 0x0205, +0x0207, 0x0207, +0x0209, 0x0209, +0x020b, 0x020b, +0x020d, 0x020d, +0x020f, 0x020f, +0x0211, 0x0211, +0x0213, 0x0213, +0x0215, 0x0215, +0x0217, 0x0217, +0x0219, 0x0219, +0x021b, 0x021b, +0x021d, 0x021d, +0x021f, 0x021f, +0x0221, 0x0221, +0x0223, 0x0223, +0x0225, 0x0225, +0x0227, 0x0227, +0x0229, 0x0229, +0x022b, 0x022b, +0x022d, 0x022d, +0x022f, 0x022f, +0x0231, 0x0231, +0x0233, 0x0239, +0x023c, 0x023c, +0x023f, 0x0240, +0x0242, 0x0242, +0x0247, 0x0247, +0x0249, 0x0249, +0x024b, 0x024b, +0x024d, 0x024d, +0x024f, 0x0293, +0x0295, 0x02b8, +0x02c0, 0x02c1, +0x02e0, 0x02e4, +0x0345, 0x0345, +0x0371, 0x0371, +0x0373, 0x0373, +0x0377, 0x0377, +0x037a, 0x037d, +0x0390, 0x0390, +0x03ac, 0x03ce, +0x03d0, 0x03d1, +0x03d5, 0x03d7, +0x03d9, 0x03d9, +0x03db, 0x03db, +0x03dd, 0x03dd, +0x03df, 0x03df, +0x03e1, 0x03e1, +0x03e3, 0x03e3, +0x03e5, 0x03e5, +0x03e7, 0x03e7, +0x03e9, 0x03e9, +0x03eb, 0x03eb, +0x03ed, 0x03ed, +0x03ef, 0x03f3, +0x03f5, 0x03f5, +0x03f8, 0x03f8, +0x03fb, 0x03fc, +0x0430, 0x045f, +0x0461, 0x0461, +0x0463, 0x0463, +0x0465, 0x0465, +0x0467, 0x0467, +0x0469, 0x0469, +0x046b, 0x046b, +0x046d, 0x046d, +0x046f, 0x046f, +0x0471, 0x0471, +0x0473, 0x0473, +0x0475, 0x0475, +0x0477, 0x0477, +0x0479, 0x0479, +0x047b, 0x047b, +0x047d, 0x047d, +0x047f, 0x047f, +0x0481, 0x0481, +0x048b, 0x048b, +0x048d, 0x048d, +0x048f, 0x048f, +0x0491, 0x0491, +0x0493, 0x0493, +0x0495, 0x0495, +0x0497, 0x0497, +0x0499, 0x0499, +0x049b, 0x049b, +0x049d, 0x049d, +0x049f, 0x049f, +0x04a1, 0x04a1, +0x04a3, 0x04a3, +0x04a5, 0x04a5, +0x04a7, 0x04a7, +0x04a9, 0x04a9, +0x04ab, 0x04ab, +0x04ad, 0x04ad, +0x04af, 0x04af, +0x04b1, 0x04b1, +0x04b3, 0x04b3, +0x04b5, 0x04b5, +0x04b7, 0x04b7, +0x04b9, 0x04b9, +0x04bb, 0x04bb, +0x04bd, 0x04bd, +0x04bf, 0x04bf, +0x04c2, 0x04c2, +0x04c4, 0x04c4, +0x04c6, 0x04c6, +0x04c8, 0x04c8, +0x04ca, 0x04ca, +0x04cc, 0x04cc, +0x04ce, 0x04cf, +0x04d1, 0x04d1, +0x04d3, 0x04d3, +0x04d5, 0x04d5, +0x04d7, 0x04d7, +0x04d9, 0x04d9, +0x04db, 0x04db, +0x04dd, 0x04dd, +0x04df, 0x04df, +0x04e1, 0x04e1, +0x04e3, 0x04e3, +0x04e5, 0x04e5, +0x04e7, 0x04e7, +0x04e9, 0x04e9, +0x04eb, 0x04eb, +0x04ed, 0x04ed, +0x04ef, 0x04ef, +0x04f1, 0x04f1, +0x04f3, 0x04f3, +0x04f5, 0x04f5, +0x04f7, 0x04f7, +0x04f9, 0x04f9, +0x04fb, 0x04fb, +0x04fd, 0x04fd, +0x04ff, 0x04ff, +0x0501, 0x0501, +0x0503, 0x0503, +0x0505, 0x0505, +0x0507, 0x0507, +0x0509, 0x0509, +0x050b, 0x050b, +0x050d, 0x050d, +0x050f, 0x050f, +0x0511, 0x0511, +0x0513, 0x0513, +0x0515, 0x0515, +0x0517, 0x0517, +0x0519, 0x0519, +0x051b, 0x051b, +0x051d, 0x051d, +0x051f, 0x051f, +0x0521, 0x0521, +0x0523, 0x0523, +0x0525, 0x0525, +0x0527, 0x0527, +0x0529, 0x0529, +0x052b, 0x052b, +0x052d, 0x052d, +0x052f, 0x052f, +0x0560, 0x0588, +0x10d0, 0x10fa, +0x10fc, 0x10ff, +0x13f8, 0x13fd, +0x1c80, 0x1c88, +0x1c8a, 0x1c8a, +0x1d00, 0x1dbf, +0x1e01, 0x1e01, +0x1e03, 0x1e03, +0x1e05, 0x1e05, +0x1e07, 0x1e07, +0x1e09, 0x1e09, +0x1e0b, 0x1e0b, +0x1e0d, 0x1e0d, +0x1e0f, 0x1e0f, +0x1e11, 0x1e11, +0x1e13, 0x1e13, +0x1e15, 0x1e15, +0x1e17, 0x1e17, +0x1e19, 0x1e19, +0x1e1b, 0x1e1b, +0x1e1d, 0x1e1d, +0x1e1f, 0x1e1f, +0x1e21, 0x1e21, +0x1e23, 0x1e23, +0x1e25, 0x1e25, +0x1e27, 0x1e27, +0x1e29, 0x1e29, +0x1e2b, 0x1e2b, +0x1e2d, 0x1e2d, +0x1e2f, 0x1e2f, +0x1e31, 0x1e31, +0x1e33, 0x1e33, +0x1e35, 0x1e35, +0x1e37, 0x1e37, +0x1e39, 0x1e39, +0x1e3b, 0x1e3b, +0x1e3d, 0x1e3d, +0x1e3f, 0x1e3f, +0x1e41, 0x1e41, +0x1e43, 0x1e43, +0x1e45, 0x1e45, +0x1e47, 0x1e47, +0x1e49, 0x1e49, +0x1e4b, 0x1e4b, +0x1e4d, 0x1e4d, +0x1e4f, 0x1e4f, +0x1e51, 0x1e51, +0x1e53, 0x1e53, +0x1e55, 0x1e55, +0x1e57, 0x1e57, +0x1e59, 0x1e59, +0x1e5b, 0x1e5b, +0x1e5d, 0x1e5d, +0x1e5f, 0x1e5f, +0x1e61, 0x1e61, +0x1e63, 0x1e63, +0x1e65, 0x1e65, +0x1e67, 0x1e67, +0x1e69, 0x1e69, +0x1e6b, 0x1e6b, +0x1e6d, 0x1e6d, +0x1e6f, 0x1e6f, +0x1e71, 0x1e71, +0x1e73, 0x1e73, +0x1e75, 0x1e75, +0x1e77, 0x1e77, +0x1e79, 0x1e79, +0x1e7b, 0x1e7b, +0x1e7d, 0x1e7d, +0x1e7f, 0x1e7f, +0x1e81, 0x1e81, +0x1e83, 0x1e83, +0x1e85, 0x1e85, +0x1e87, 0x1e87, +0x1e89, 0x1e89, +0x1e8b, 0x1e8b, +0x1e8d, 0x1e8d, +0x1e8f, 0x1e8f, +0x1e91, 0x1e91, +0x1e93, 0x1e93, +0x1e95, 0x1e9d, +0x1e9f, 0x1e9f, +0x1ea1, 0x1ea1, +0x1ea3, 0x1ea3, +0x1ea5, 0x1ea5, +0x1ea7, 0x1ea7, +0x1ea9, 0x1ea9, +0x1eab, 0x1eab, +0x1ead, 0x1ead, +0x1eaf, 0x1eaf, +0x1eb1, 0x1eb1, +0x1eb3, 0x1eb3, +0x1eb5, 0x1eb5, +0x1eb7, 0x1eb7, +0x1eb9, 0x1eb9, +0x1ebb, 0x1ebb, +0x1ebd, 0x1ebd, +0x1ebf, 0x1ebf, +0x1ec1, 0x1ec1, +0x1ec3, 0x1ec3, +0x1ec5, 0x1ec5, +0x1ec7, 0x1ec7, +0x1ec9, 0x1ec9, +0x1ecb, 0x1ecb, +0x1ecd, 0x1ecd, +0x1ecf, 0x1ecf, +0x1ed1, 0x1ed1, +0x1ed3, 0x1ed3, +0x1ed5, 0x1ed5, +0x1ed7, 0x1ed7, +0x1ed9, 0x1ed9, +0x1edb, 0x1edb, +0x1edd, 0x1edd, +0x1edf, 0x1edf, +0x1ee1, 0x1ee1, +0x1ee3, 0x1ee3, +0x1ee5, 0x1ee5, +0x1ee7, 0x1ee7, +0x1ee9, 0x1ee9, +0x1eeb, 0x1eeb, +0x1eed, 0x1eed, +0x1eef, 0x1eef, +0x1ef1, 0x1ef1, +0x1ef3, 0x1ef3, +0x1ef5, 0x1ef5, +0x1ef7, 0x1ef7, +0x1ef9, 0x1ef9, +0x1efb, 0x1efb, +0x1efd, 0x1efd, +0x1eff, 0x1f07, +0x1f10, 0x1f15, +0x1f20, 0x1f27, +0x1f30, 0x1f37, +0x1f40, 0x1f45, +0x1f50, 0x1f57, +0x1f60, 0x1f67, +0x1f70, 0x1f7d, +0x1f80, 0x1f87, +0x1f90, 0x1f97, +0x1fa0, 0x1fa7, +0x1fb0, 0x1fb4, +0x1fb6, 0x1fb7, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fc7, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fd7, +0x1fe0, 0x1fe7, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ff7, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x210a, 0x210a, +0x210e, 0x210f, +0x2113, 0x2113, +0x212f, 0x212f, +0x2134, 0x2134, +0x2139, 0x2139, +0x213c, 0x213d, +0x2146, 0x2149, +0x214e, 0x214e, +0x2170, 0x217f, +0x2184, 0x2184, +0x24d0, 0x24e9, +0x2c30, 0x2c5f, +0x2c61, 0x2c61, +0x2c65, 0x2c66, +0x2c68, 0x2c68, +0x2c6a, 0x2c6a, +0x2c6c, 0x2c6c, +0x2c71, 0x2c71, +0x2c73, 0x2c74, +0x2c76, 0x2c7d, +0x2c81, 0x2c81, +0x2c83, 0x2c83, +0x2c85, 0x2c85, +0x2c87, 0x2c87, +0x2c89, 0x2c89, +0x2c8b, 0x2c8b, +0x2c8d, 0x2c8d, +0x2c8f, 0x2c8f, +0x2c91, 0x2c91, +0x2c93, 0x2c93, +0x2c95, 0x2c95, +0x2c97, 0x2c97, +0x2c99, 0x2c99, +0x2c9b, 0x2c9b, +0x2c9d, 0x2c9d, +0x2c9f, 0x2c9f, +0x2ca1, 0x2ca1, +0x2ca3, 0x2ca3, +0x2ca5, 0x2ca5, +0x2ca7, 0x2ca7, +0x2ca9, 0x2ca9, +0x2cab, 0x2cab, +0x2cad, 0x2cad, +0x2caf, 0x2caf, +0x2cb1, 0x2cb1, +0x2cb3, 0x2cb3, +0x2cb5, 0x2cb5, +0x2cb7, 0x2cb7, +0x2cb9, 0x2cb9, +0x2cbb, 0x2cbb, +0x2cbd, 0x2cbd, +0x2cbf, 0x2cbf, +0x2cc1, 0x2cc1, +0x2cc3, 0x2cc3, +0x2cc5, 0x2cc5, +0x2cc7, 0x2cc7, +0x2cc9, 0x2cc9, +0x2ccb, 0x2ccb, +0x2ccd, 0x2ccd, +0x2ccf, 0x2ccf, +0x2cd1, 0x2cd1, +0x2cd3, 0x2cd3, +0x2cd5, 0x2cd5, +0x2cd7, 0x2cd7, +0x2cd9, 0x2cd9, +0x2cdb, 0x2cdb, +0x2cdd, 0x2cdd, +0x2cdf, 0x2cdf, +0x2ce1, 0x2ce1, +0x2ce3, 0x2ce4, +0x2cec, 0x2cec, +0x2cee, 0x2cee, +0x2cf3, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0xa641, 0xa641, +0xa643, 0xa643, +0xa645, 0xa645, +0xa647, 0xa647, +0xa649, 0xa649, +0xa64b, 0xa64b, +0xa64d, 0xa64d, +0xa64f, 0xa64f, +0xa651, 0xa651, +0xa653, 0xa653, +0xa655, 0xa655, +0xa657, 0xa657, +0xa659, 0xa659, +0xa65b, 0xa65b, +0xa65d, 0xa65d, +0xa65f, 0xa65f, +0xa661, 0xa661, +0xa663, 0xa663, +0xa665, 0xa665, +0xa667, 0xa667, +0xa669, 0xa669, +0xa66b, 0xa66b, +0xa66d, 0xa66d, +0xa681, 0xa681, +0xa683, 0xa683, +0xa685, 0xa685, +0xa687, 0xa687, +0xa689, 0xa689, +0xa68b, 0xa68b, +0xa68d, 0xa68d, +0xa68f, 0xa68f, +0xa691, 0xa691, +0xa693, 0xa693, +0xa695, 0xa695, +0xa697, 0xa697, +0xa699, 0xa699, +0xa69b, 0xa69d, +0xa723, 0xa723, +0xa725, 0xa725, +0xa727, 0xa727, +0xa729, 0xa729, +0xa72b, 0xa72b, +0xa72d, 0xa72d, +0xa72f, 0xa731, +0xa733, 0xa733, +0xa735, 0xa735, +0xa737, 0xa737, +0xa739, 0xa739, +0xa73b, 0xa73b, +0xa73d, 0xa73d, +0xa73f, 0xa73f, +0xa741, 0xa741, +0xa743, 0xa743, +0xa745, 0xa745, +0xa747, 0xa747, +0xa749, 0xa749, +0xa74b, 0xa74b, +0xa74d, 0xa74d, +0xa74f, 0xa74f, +0xa751, 0xa751, +0xa753, 0xa753, +0xa755, 0xa755, +0xa757, 0xa757, +0xa759, 0xa759, +0xa75b, 0xa75b, +0xa75d, 0xa75d, +0xa75f, 0xa75f, +0xa761, 0xa761, +0xa763, 0xa763, +0xa765, 0xa765, +0xa767, 0xa767, +0xa769, 0xa769, +0xa76b, 0xa76b, +0xa76d, 0xa76d, +0xa76f, 0xa778, +0xa77a, 0xa77a, +0xa77c, 0xa77c, +0xa77f, 0xa77f, +0xa781, 0xa781, +0xa783, 0xa783, +0xa785, 0xa785, +0xa787, 0xa787, +0xa78c, 0xa78c, +0xa78e, 0xa78e, +0xa791, 0xa791, +0xa793, 0xa795, +0xa797, 0xa797, +0xa799, 0xa799, +0xa79b, 0xa79b, +0xa79d, 0xa79d, +0xa79f, 0xa79f, +0xa7a1, 0xa7a1, +0xa7a3, 0xa7a3, +0xa7a5, 0xa7a5, +0xa7a7, 0xa7a7, +0xa7a9, 0xa7a9, +0xa7af, 0xa7af, +0xa7b5, 0xa7b5, +0xa7b7, 0xa7b7, +0xa7b9, 0xa7b9, +0xa7bb, 0xa7bb, +0xa7bd, 0xa7bd, +0xa7bf, 0xa7bf, +0xa7c1, 0xa7c1, +0xa7c3, 0xa7c3, +0xa7c8, 0xa7c8, +0xa7ca, 0xa7ca, +0xa7cd, 0xa7cd, +0xa7d1, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7d5, +0xa7d7, 0xa7d7, +0xa7d9, 0xa7d9, +0xa7db, 0xa7db, +0xa7f2, 0xa7f4, +0xa7f6, 0xa7f6, +0xa7f8, 0xa7fa, +0xab30, 0xab5a, +0xab5c, 0xab69, +0xab70, 0xabbf, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xff41, 0xff5a, +0x10428, 0x1044f, +0x104d8, 0x104fb, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x10780, 0x10780, +0x10783, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10cc0, 0x10cf2, +0x10d70, 0x10d85, +0x118c0, 0x118df, +0x16e60, 0x16e7f, +0x1d41a, 0x1d433, +0x1d44e, 0x1d454, +0x1d456, 0x1d467, +0x1d482, 0x1d49b, +0x1d4b6, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d4cf, +0x1d4ea, 0x1d503, +0x1d51e, 0x1d537, +0x1d552, 0x1d56b, +0x1d586, 0x1d59f, +0x1d5ba, 0x1d5d3, +0x1d5ee, 0x1d607, +0x1d622, 0x1d63b, +0x1d656, 0x1d66f, +0x1d68a, 0x1d6a5, +0x1d6c2, 0x1d6da, +0x1d6dc, 0x1d6e1, +0x1d6fc, 0x1d714, +0x1d716, 0x1d71b, +0x1d736, 0x1d74e, +0x1d750, 0x1d755, +0x1d770, 0x1d788, +0x1d78a, 0x1d78f, +0x1d7aa, 0x1d7c2, +0x1d7c4, 0x1d7c9, +0x1d7cb, 0x1d7cb, +0x1df00, 0x1df09, +0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, +0x1e922, 0x1e943, +}; /* END of CR_Lower */ + +/* PROPERTY: 'Print': POSIX [[:Print:]] */ +static const OnigCodePoint +CR_Print[] = { 733, +0x0020, 0x007e, +0x00a0, 0x0377, +0x037a, 0x037f, +0x0384, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x052f, +0x0531, 0x0556, +0x0559, 0x058a, +0x058d, 0x058f, +0x0591, 0x05c7, +0x05d0, 0x05ea, +0x05ef, 0x05f4, +0x0600, 0x070d, +0x070f, 0x074a, +0x074d, 0x07b1, +0x07c0, 0x07fa, +0x07fd, 0x082d, +0x0830, 0x083e, +0x0840, 0x085b, +0x085e, 0x085e, +0x0860, 0x086a, +0x0870, 0x088e, +0x0890, 0x0891, +0x0897, 0x0983, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bc, 0x09c4, +0x09c7, 0x09c8, +0x09cb, 0x09ce, +0x09d7, 0x09d7, +0x09dc, 0x09dd, +0x09df, 0x09e3, +0x09e6, 0x09fe, +0x0a01, 0x0a03, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a3c, 0x0a3c, +0x0a3e, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4d, +0x0a51, 0x0a51, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a66, 0x0a76, +0x0a81, 0x0a83, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abc, 0x0ac5, +0x0ac7, 0x0ac9, +0x0acb, 0x0acd, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae3, +0x0ae6, 0x0af1, +0x0af9, 0x0aff, +0x0b01, 0x0b03, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3c, 0x0b44, +0x0b47, 0x0b48, +0x0b4b, 0x0b4d, +0x0b55, 0x0b57, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b63, +0x0b66, 0x0b77, +0x0b82, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bbe, 0x0bc2, +0x0bc6, 0x0bc8, +0x0bca, 0x0bcd, +0x0bd0, 0x0bd0, +0x0bd7, 0x0bd7, +0x0be6, 0x0bfa, +0x0c00, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3c, 0x0c44, +0x0c46, 0x0c48, +0x0c4a, 0x0c4d, +0x0c55, 0x0c56, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c63, +0x0c66, 0x0c6f, +0x0c77, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbc, 0x0cc4, +0x0cc6, 0x0cc8, +0x0cca, 0x0ccd, +0x0cd5, 0x0cd6, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce3, +0x0ce6, 0x0cef, +0x0cf1, 0x0cf3, +0x0d00, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d44, +0x0d46, 0x0d48, +0x0d4a, 0x0d4f, +0x0d54, 0x0d63, +0x0d66, 0x0d7f, +0x0d81, 0x0d83, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0dca, 0x0dca, +0x0dcf, 0x0dd4, +0x0dd6, 0x0dd6, +0x0dd8, 0x0ddf, +0x0de6, 0x0def, +0x0df2, 0x0df4, +0x0e01, 0x0e3a, +0x0e3f, 0x0e5b, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0ebd, +0x0ec0, 0x0ec4, +0x0ec6, 0x0ec6, +0x0ec8, 0x0ece, +0x0ed0, 0x0ed9, +0x0edc, 0x0edf, +0x0f00, 0x0f47, +0x0f49, 0x0f6c, +0x0f71, 0x0f97, +0x0f99, 0x0fbc, +0x0fbe, 0x0fcc, +0x0fce, 0x0fda, +0x1000, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x135d, 0x137c, +0x1380, 0x1399, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1400, 0x169c, +0x16a0, 0x16f8, +0x1700, 0x1715, +0x171f, 0x1736, +0x1740, 0x1753, +0x1760, 0x176c, +0x176e, 0x1770, +0x1772, 0x1773, +0x1780, 0x17dd, +0x17e0, 0x17e9, +0x17f0, 0x17f9, +0x1800, 0x1819, +0x1820, 0x1878, +0x1880, 0x18aa, +0x18b0, 0x18f5, +0x1900, 0x191e, +0x1920, 0x192b, +0x1930, 0x193b, +0x1940, 0x1940, +0x1944, 0x196d, +0x1970, 0x1974, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x19d0, 0x19da, +0x19de, 0x1a1b, +0x1a1e, 0x1a5e, +0x1a60, 0x1a7c, +0x1a7f, 0x1a89, +0x1a90, 0x1a99, +0x1aa0, 0x1aad, +0x1ab0, 0x1ace, +0x1b00, 0x1b4c, +0x1b4e, 0x1bf3, +0x1bfc, 0x1c37, +0x1c3b, 0x1c49, +0x1c4d, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cc7, +0x1cd0, 0x1cfa, +0x1d00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fc4, +0x1fc6, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fdd, 0x1fef, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffe, +0x2000, 0x2027, +0x202a, 0x2064, +0x2066, 0x2071, +0x2074, 0x208e, +0x2090, 0x209c, +0x20a0, 0x20c0, +0x20d0, 0x20f0, +0x2100, 0x218b, +0x2190, 0x2429, +0x2440, 0x244a, +0x2460, 0x2b73, +0x2b76, 0x2b95, +0x2b97, 0x2cf3, +0x2cf9, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0x2d30, 0x2d67, +0x2d6f, 0x2d70, +0x2d7f, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0x2de0, 0x2e5d, +0x2e80, 0x2e99, +0x2e9b, 0x2ef3, +0x2f00, 0x2fd5, +0x2ff0, 0x303f, +0x3041, 0x3096, +0x3099, 0x30ff, +0x3105, 0x312f, +0x3131, 0x318e, +0x3190, 0x31e5, +0x31ef, 0x321e, +0x3220, 0xa48c, +0xa490, 0xa4c6, +0xa4d0, 0xa62b, +0xa640, 0xa6f7, +0xa700, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa82c, +0xa830, 0xa839, +0xa840, 0xa877, +0xa880, 0xa8c5, +0xa8ce, 0xa8d9, +0xa8e0, 0xa953, +0xa95f, 0xa97c, +0xa980, 0xa9cd, +0xa9cf, 0xa9d9, +0xa9de, 0xa9fe, +0xaa00, 0xaa36, +0xaa40, 0xaa4d, +0xaa50, 0xaa59, +0xaa5c, 0xaac2, +0xaadb, 0xaaf6, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0xab30, 0xab6b, +0xab70, 0xabed, +0xabf0, 0xabf9, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xe000, 0xfa6d, +0xfa70, 0xfad9, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xfb1d, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfbc2, +0xfbd3, 0xfd8f, +0xfd92, 0xfdc7, +0xfdcf, 0xfdcf, +0xfdf0, 0xfe19, +0xfe20, 0xfe52, +0xfe54, 0xfe66, +0xfe68, 0xfe6b, +0xfe70, 0xfe74, +0xfe76, 0xfefc, +0xfeff, 0xfeff, +0xff01, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +0xffe0, 0xffe6, +0xffe8, 0xffee, +0xfff9, 0xfffd, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +0x10100, 0x10102, +0x10107, 0x10133, +0x10137, 0x1018e, +0x10190, 0x1019c, +0x101a0, 0x101a0, +0x101d0, 0x101fd, +0x10280, 0x1029c, +0x102a0, 0x102d0, +0x102e0, 0x102fb, +0x10300, 0x10323, +0x1032d, 0x1034a, +0x10350, 0x1037a, +0x10380, 0x1039d, +0x1039f, 0x103c3, +0x103c8, 0x103d5, +0x10400, 0x1049d, +0x104a0, 0x104a9, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10500, 0x10527, +0x10530, 0x10563, +0x1056f, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x105c0, 0x105f3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x10855, +0x10857, 0x1089e, +0x108a7, 0x108af, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x108fb, 0x1091b, +0x1091f, 0x10939, +0x1093f, 0x1093f, +0x10980, 0x109b7, +0x109bc, 0x109cf, +0x109d2, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a38, 0x10a3a, +0x10a3f, 0x10a48, +0x10a50, 0x10a58, +0x10a60, 0x10a9f, +0x10ac0, 0x10ae6, +0x10aeb, 0x10af6, +0x10b00, 0x10b35, +0x10b39, 0x10b55, +0x10b58, 0x10b72, +0x10b78, 0x10b91, +0x10b99, 0x10b9c, +0x10ba9, 0x10baf, +0x10c00, 0x10c48, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10cfa, 0x10d27, +0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d85, +0x10d8e, 0x10d8f, +0x10e60, 0x10e7e, +0x10e80, 0x10ea9, +0x10eab, 0x10ead, +0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10efc, 0x10f27, +0x10f30, 0x10f59, +0x10f70, 0x10f89, +0x10fb0, 0x10fcb, +0x10fe0, 0x10ff6, +0x11000, 0x1104d, +0x11052, 0x11075, +0x1107f, 0x110c2, +0x110cd, 0x110cd, +0x110d0, 0x110e8, +0x110f0, 0x110f9, +0x11100, 0x11134, +0x11136, 0x11147, +0x11150, 0x11176, +0x11180, 0x111df, +0x111e1, 0x111f4, +0x11200, 0x11211, +0x11213, 0x11241, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a9, +0x112b0, 0x112ea, +0x112f0, 0x112f9, +0x11300, 0x11303, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133b, 0x11344, +0x11347, 0x11348, +0x1134b, 0x1134d, +0x11350, 0x11350, +0x11357, 0x11357, +0x1135d, 0x11363, +0x11366, 0x1136c, +0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d5, +0x113d7, 0x113d8, +0x113e1, 0x113e2, +0x11400, 0x1145b, +0x1145d, 0x11461, +0x11480, 0x114c7, +0x114d0, 0x114d9, +0x11580, 0x115b5, +0x115b8, 0x115dd, +0x11600, 0x11644, +0x11650, 0x11659, +0x11660, 0x1166c, +0x11680, 0x116b9, +0x116c0, 0x116c9, +0x116d0, 0x116e3, +0x11700, 0x1171a, +0x1171d, 0x1172b, +0x11730, 0x11746, +0x11800, 0x1183b, +0x118a0, 0x118f2, +0x118ff, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x11935, +0x11937, 0x11938, +0x1193b, 0x11946, +0x11950, 0x11959, +0x119a0, 0x119a7, +0x119aa, 0x119d7, +0x119da, 0x119e4, +0x11a00, 0x11a47, +0x11a50, 0x11aa2, +0x11ab0, 0x11af8, +0x11b00, 0x11b09, +0x11bc0, 0x11be1, +0x11bf0, 0x11bf9, +0x11c00, 0x11c08, +0x11c0a, 0x11c36, +0x11c38, 0x11c45, +0x11c50, 0x11c6c, +0x11c70, 0x11c8f, +0x11c92, 0x11ca7, +0x11ca9, 0x11cb6, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d47, +0x11d50, 0x11d59, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d8e, +0x11d90, 0x11d91, +0x11d93, 0x11d98, +0x11da0, 0x11da9, +0x11ee0, 0x11ef8, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f5a, +0x11fb0, 0x11fb0, +0x11fc0, 0x11ff1, +0x11fff, 0x12399, +0x12400, 0x1246e, +0x12470, 0x12474, +0x12480, 0x12543, +0x12f90, 0x12ff2, +0x13000, 0x13455, +0x13460, 0x143fa, +0x14400, 0x14646, +0x16100, 0x16139, +0x16800, 0x16a38, +0x16a40, 0x16a5e, +0x16a60, 0x16a69, +0x16a6e, 0x16abe, +0x16ac0, 0x16ac9, +0x16ad0, 0x16aed, +0x16af0, 0x16af5, +0x16b00, 0x16b45, +0x16b50, 0x16b59, +0x16b5b, 0x16b61, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +0x16d40, 0x16d79, +0x16e40, 0x16e9a, +0x16f00, 0x16f4a, +0x16f4f, 0x16f87, +0x16f8f, 0x16f9f, +0x16fe0, 0x16fe4, +0x16ff0, 0x16ff1, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1b000, 0x1b122, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +0x1b170, 0x1b2fb, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1bc9c, 0x1bca3, +0x1cc00, 0x1ccf9, +0x1cd00, 0x1ceb3, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1cf50, 0x1cfc3, +0x1d000, 0x1d0f5, +0x1d100, 0x1d126, +0x1d129, 0x1d1ea, +0x1d200, 0x1d245, +0x1d2c0, 0x1d2d3, +0x1d2e0, 0x1d2f3, +0x1d300, 0x1d356, +0x1d360, 0x1d378, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d7cb, +0x1d7ce, 0x1da8b, +0x1da9b, 0x1da9f, +0x1daa1, 0x1daaf, +0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, +0x1e100, 0x1e12c, +0x1e130, 0x1e13d, +0x1e140, 0x1e149, +0x1e14e, 0x1e14f, +0x1e290, 0x1e2ae, +0x1e2c0, 0x1e2f9, +0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, +0x1e5ff, 0x1e5ff, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +0x1e800, 0x1e8c4, +0x1e8c7, 0x1e8d6, +0x1e900, 0x1e94b, +0x1e950, 0x1e959, +0x1e95e, 0x1e95f, +0x1ec71, 0x1ecb4, +0x1ed01, 0x1ed3d, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x1eef0, 0x1eef1, +0x1f000, 0x1f02b, +0x1f030, 0x1f093, +0x1f0a0, 0x1f0ae, +0x1f0b1, 0x1f0bf, +0x1f0c1, 0x1f0cf, +0x1f0d1, 0x1f0f5, +0x1f100, 0x1f1ad, +0x1f1e6, 0x1f202, +0x1f210, 0x1f23b, +0x1f240, 0x1f248, +0x1f250, 0x1f251, +0x1f260, 0x1f265, +0x1f300, 0x1f6d7, +0x1f6dc, 0x1f6ec, +0x1f6f0, 0x1f6fc, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f800, 0x1f80b, +0x1f810, 0x1f847, +0x1f850, 0x1f859, +0x1f860, 0x1f887, +0x1f890, 0x1f8ad, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, +0x1f900, 0x1fa53, +0x1fa60, 0x1fa6d, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, +0x1fb00, 0x1fb92, +0x1fb94, 0x1fbf9, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +0xe0001, 0xe0001, +0xe0020, 0xe007f, +0xe0100, 0xe01ef, +0xf0000, 0xffffd, +0x100000, 0x10fffd, +}; /* END of CR_Print */ + +/* PROPERTY: 'PosixPunct': POSIX [[:punct:]] */ +static const OnigCodePoint +CR_PosixPunct[] = { 349, +0x0021, 0x002f, +0x003a, 0x0040, +0x005b, 0x0060, +0x007b, 0x007e, +0x00a1, 0x00a9, +0x00ab, 0x00ac, +0x00ae, 0x00b1, +0x00b4, 0x00b4, +0x00b6, 0x00b8, +0x00bb, 0x00bb, +0x00bf, 0x00bf, +0x00d7, 0x00d7, +0x00f7, 0x00f7, +0x02c2, 0x02c5, +0x02d2, 0x02df, +0x02e5, 0x02eb, +0x02ed, 0x02ed, +0x02ef, 0x02ff, +0x0375, 0x0375, +0x037e, 0x037e, +0x0384, 0x0385, +0x0387, 0x0387, +0x03f6, 0x03f6, +0x0482, 0x0482, +0x055a, 0x055f, +0x0589, 0x058a, +0x058d, 0x058f, +0x05be, 0x05be, +0x05c0, 0x05c0, +0x05c3, 0x05c3, +0x05c6, 0x05c6, +0x05f3, 0x05f4, +0x0606, 0x060f, +0x061b, 0x061b, +0x061d, 0x061f, +0x066a, 0x066d, +0x06d4, 0x06d4, +0x06de, 0x06de, +0x06e9, 0x06e9, +0x06fd, 0x06fe, +0x0700, 0x070d, +0x07f6, 0x07f9, +0x07fe, 0x07ff, +0x0830, 0x083e, +0x085e, 0x085e, +0x0888, 0x0888, +0x0964, 0x0965, +0x0970, 0x0970, +0x09f2, 0x09f3, +0x09fa, 0x09fb, +0x09fd, 0x09fd, +0x0a76, 0x0a76, +0x0af0, 0x0af1, +0x0b70, 0x0b70, +0x0bf3, 0x0bfa, +0x0c77, 0x0c77, +0x0c7f, 0x0c7f, +0x0c84, 0x0c84, +0x0d4f, 0x0d4f, +0x0d79, 0x0d79, +0x0df4, 0x0df4, +0x0e3f, 0x0e3f, +0x0e4f, 0x0e4f, +0x0e5a, 0x0e5b, +0x0f01, 0x0f17, +0x0f1a, 0x0f1f, +0x0f34, 0x0f34, +0x0f36, 0x0f36, +0x0f38, 0x0f38, +0x0f3a, 0x0f3d, +0x0f85, 0x0f85, +0x0fbe, 0x0fc5, +0x0fc7, 0x0fcc, +0x0fce, 0x0fda, +0x104a, 0x104f, +0x109e, 0x109f, +0x10fb, 0x10fb, +0x1360, 0x1368, +0x1390, 0x1399, +0x1400, 0x1400, +0x166d, 0x166e, +0x169b, 0x169c, +0x16eb, 0x16ed, +0x1735, 0x1736, +0x17d4, 0x17d6, +0x17d8, 0x17db, +0x1800, 0x180a, +0x1940, 0x1940, +0x1944, 0x1945, +0x19de, 0x19ff, +0x1a1e, 0x1a1f, +0x1aa0, 0x1aa6, +0x1aa8, 0x1aad, +0x1b4e, 0x1b4f, +0x1b5a, 0x1b6a, +0x1b74, 0x1b7f, +0x1bfc, 0x1bff, +0x1c3b, 0x1c3f, +0x1c7e, 0x1c7f, +0x1cc0, 0x1cc7, +0x1cd3, 0x1cd3, +0x1fbd, 0x1fbd, +0x1fbf, 0x1fc1, +0x1fcd, 0x1fcf, +0x1fdd, 0x1fdf, +0x1fed, 0x1fef, +0x1ffd, 0x1ffe, +0x2010, 0x2027, +0x2030, 0x205e, +0x207a, 0x207e, +0x208a, 0x208e, +0x20a0, 0x20c0, +0x2100, 0x2101, +0x2103, 0x2106, +0x2108, 0x2109, +0x2114, 0x2114, +0x2116, 0x2118, +0x211e, 0x2123, +0x2125, 0x2125, +0x2127, 0x2127, +0x2129, 0x2129, +0x212e, 0x212e, +0x213a, 0x213b, +0x2140, 0x2144, +0x214a, 0x214d, +0x214f, 0x214f, +0x218a, 0x218b, +0x2190, 0x2429, +0x2440, 0x244a, +0x249c, 0x24e9, +0x2500, 0x2775, +0x2794, 0x2b73, +0x2b76, 0x2b95, +0x2b97, 0x2bff, +0x2ce5, 0x2cea, +0x2cf9, 0x2cfc, +0x2cfe, 0x2cff, +0x2d70, 0x2d70, +0x2e00, 0x2e2e, +0x2e30, 0x2e5d, +0x2e80, 0x2e99, +0x2e9b, 0x2ef3, +0x2f00, 0x2fd5, +0x2ff0, 0x2fff, +0x3001, 0x3004, +0x3008, 0x3020, +0x3030, 0x3030, +0x3036, 0x3037, +0x303d, 0x303f, +0x309b, 0x309c, +0x30a0, 0x30a0, +0x30fb, 0x30fb, +0x3190, 0x3191, +0x3196, 0x319f, +0x31c0, 0x31e5, +0x31ef, 0x31ef, +0x3200, 0x321e, +0x322a, 0x3247, +0x3250, 0x3250, +0x3260, 0x327f, +0x328a, 0x32b0, +0x32c0, 0x33ff, +0x4dc0, 0x4dff, +0xa490, 0xa4c6, +0xa4fe, 0xa4ff, +0xa60d, 0xa60f, +0xa673, 0xa673, +0xa67e, 0xa67e, +0xa6f2, 0xa6f7, +0xa700, 0xa716, +0xa720, 0xa721, +0xa789, 0xa78a, +0xa828, 0xa82b, +0xa836, 0xa839, +0xa874, 0xa877, +0xa8ce, 0xa8cf, +0xa8f8, 0xa8fa, +0xa8fc, 0xa8fc, +0xa92e, 0xa92f, +0xa95f, 0xa95f, +0xa9c1, 0xa9cd, +0xa9de, 0xa9df, +0xaa5c, 0xaa5f, +0xaa77, 0xaa79, +0xaade, 0xaadf, +0xaaf0, 0xaaf1, +0xab5b, 0xab5b, +0xab6a, 0xab6b, +0xabeb, 0xabeb, +0xfb29, 0xfb29, +0xfbb2, 0xfbc2, +0xfd3e, 0xfd4f, +0xfdcf, 0xfdcf, +0xfdfc, 0xfdff, +0xfe10, 0xfe19, +0xfe30, 0xfe52, +0xfe54, 0xfe66, +0xfe68, 0xfe6b, +0xff01, 0xff0f, +0xff1a, 0xff20, +0xff3b, 0xff40, +0xff5b, 0xff65, +0xffe0, 0xffe6, +0xffe8, 0xffee, +0xfffc, 0xfffd, +0x10100, 0x10102, +0x10137, 0x1013f, +0x10179, 0x10189, +0x1018c, 0x1018e, +0x10190, 0x1019c, +0x101a0, 0x101a0, +0x101d0, 0x101fc, +0x1039f, 0x1039f, +0x103d0, 0x103d0, +0x1056f, 0x1056f, +0x10857, 0x10857, +0x10877, 0x10878, +0x1091f, 0x1091f, +0x1093f, 0x1093f, +0x10a50, 0x10a58, +0x10a7f, 0x10a7f, +0x10ac8, 0x10ac8, +0x10af0, 0x10af6, +0x10b39, 0x10b3f, +0x10b99, 0x10b9c, +0x10d6e, 0x10d6e, +0x10d8e, 0x10d8f, +0x10ead, 0x10ead, +0x10f55, 0x10f59, +0x10f86, 0x10f89, +0x11047, 0x1104d, +0x110bb, 0x110bc, +0x110be, 0x110c1, +0x11140, 0x11143, +0x11174, 0x11175, +0x111c5, 0x111c8, +0x111cd, 0x111cd, +0x111db, 0x111db, +0x111dd, 0x111df, +0x11238, 0x1123d, +0x112a9, 0x112a9, +0x113d4, 0x113d5, +0x113d7, 0x113d8, +0x1144b, 0x1144f, +0x1145a, 0x1145b, +0x1145d, 0x1145d, +0x114c6, 0x114c6, +0x115c1, 0x115d7, +0x11641, 0x11643, +0x11660, 0x1166c, +0x116b9, 0x116b9, +0x1173c, 0x1173f, +0x1183b, 0x1183b, +0x11944, 0x11946, +0x119e2, 0x119e2, +0x11a3f, 0x11a46, +0x11a9a, 0x11a9c, +0x11a9e, 0x11aa2, +0x11b00, 0x11b09, +0x11be1, 0x11be1, +0x11c41, 0x11c45, +0x11c70, 0x11c71, +0x11ef7, 0x11ef8, +0x11f43, 0x11f4f, +0x11fd5, 0x11ff1, +0x11fff, 0x11fff, +0x12470, 0x12474, +0x12ff1, 0x12ff2, +0x16a6e, 0x16a6f, +0x16af5, 0x16af5, +0x16b37, 0x16b3f, +0x16b44, 0x16b45, +0x16d6d, 0x16d6f, +0x16e97, 0x16e9a, +0x16fe2, 0x16fe2, +0x1bc9c, 0x1bc9c, +0x1bc9f, 0x1bc9f, +0x1cc00, 0x1ccef, +0x1cd00, 0x1ceb3, +0x1cf50, 0x1cfc3, +0x1d000, 0x1d0f5, +0x1d100, 0x1d126, +0x1d129, 0x1d164, +0x1d16a, 0x1d16c, +0x1d183, 0x1d184, +0x1d18c, 0x1d1a9, +0x1d1ae, 0x1d1ea, +0x1d200, 0x1d241, +0x1d245, 0x1d245, +0x1d300, 0x1d356, +0x1d6c1, 0x1d6c1, +0x1d6db, 0x1d6db, +0x1d6fb, 0x1d6fb, +0x1d715, 0x1d715, +0x1d735, 0x1d735, +0x1d74f, 0x1d74f, +0x1d76f, 0x1d76f, +0x1d789, 0x1d789, +0x1d7a9, 0x1d7a9, +0x1d7c3, 0x1d7c3, +0x1d800, 0x1d9ff, +0x1da37, 0x1da3a, +0x1da6d, 0x1da74, +0x1da76, 0x1da83, +0x1da85, 0x1da8b, +0x1e14f, 0x1e14f, +0x1e2ff, 0x1e2ff, +0x1e5ff, 0x1e5ff, +0x1e95e, 0x1e95f, +0x1ecac, 0x1ecac, +0x1ecb0, 0x1ecb0, +0x1ed2e, 0x1ed2e, +0x1eef0, 0x1eef1, +0x1f000, 0x1f02b, +0x1f030, 0x1f093, +0x1f0a0, 0x1f0ae, +0x1f0b1, 0x1f0bf, +0x1f0c1, 0x1f0cf, +0x1f0d1, 0x1f0f5, +0x1f10d, 0x1f1ad, +0x1f1e6, 0x1f202, +0x1f210, 0x1f23b, +0x1f240, 0x1f248, +0x1f250, 0x1f251, +0x1f260, 0x1f265, +0x1f300, 0x1f6d7, +0x1f6dc, 0x1f6ec, +0x1f6f0, 0x1f6fc, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f800, 0x1f80b, +0x1f810, 0x1f847, +0x1f850, 0x1f859, +0x1f860, 0x1f887, +0x1f890, 0x1f8ad, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, +0x1f900, 0x1fa53, +0x1fa60, 0x1fa6d, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, +0x1fb00, 0x1fb92, +0x1fb94, 0x1fbef, +}; /* END of CR_PosixPunct */ + +/* PROPERTY: 'Space': POSIX [[:Space:]] */ +static const OnigCodePoint +CR_Space[] = { 10, +0x0009, 0x000d, +0x0020, 0x0020, +0x0085, 0x0085, +0x00a0, 0x00a0, +0x1680, 0x1680, +0x2000, 0x200a, +0x2028, 0x2029, +0x202f, 0x202f, +0x205f, 0x205f, +0x3000, 0x3000, +}; /* END of CR_Space */ + +/* PROPERTY: 'Upper': POSIX [[:Upper:]] */ +static const OnigCodePoint +CR_Upper[] = { 656, +0x0041, 0x005a, +0x00c0, 0x00d6, +0x00d8, 0x00de, +0x0100, 0x0100, +0x0102, 0x0102, +0x0104, 0x0104, +0x0106, 0x0106, +0x0108, 0x0108, +0x010a, 0x010a, +0x010c, 0x010c, +0x010e, 0x010e, +0x0110, 0x0110, +0x0112, 0x0112, +0x0114, 0x0114, +0x0116, 0x0116, +0x0118, 0x0118, +0x011a, 0x011a, +0x011c, 0x011c, +0x011e, 0x011e, +0x0120, 0x0120, +0x0122, 0x0122, +0x0124, 0x0124, +0x0126, 0x0126, +0x0128, 0x0128, +0x012a, 0x012a, +0x012c, 0x012c, +0x012e, 0x012e, +0x0130, 0x0130, +0x0132, 0x0132, +0x0134, 0x0134, +0x0136, 0x0136, +0x0139, 0x0139, +0x013b, 0x013b, +0x013d, 0x013d, +0x013f, 0x013f, +0x0141, 0x0141, +0x0143, 0x0143, +0x0145, 0x0145, +0x0147, 0x0147, +0x014a, 0x014a, +0x014c, 0x014c, +0x014e, 0x014e, +0x0150, 0x0150, +0x0152, 0x0152, +0x0154, 0x0154, +0x0156, 0x0156, +0x0158, 0x0158, +0x015a, 0x015a, +0x015c, 0x015c, +0x015e, 0x015e, +0x0160, 0x0160, +0x0162, 0x0162, +0x0164, 0x0164, +0x0166, 0x0166, +0x0168, 0x0168, +0x016a, 0x016a, +0x016c, 0x016c, +0x016e, 0x016e, +0x0170, 0x0170, +0x0172, 0x0172, +0x0174, 0x0174, +0x0176, 0x0176, +0x0178, 0x0179, +0x017b, 0x017b, +0x017d, 0x017d, +0x0181, 0x0182, +0x0184, 0x0184, +0x0186, 0x0187, +0x0189, 0x018b, +0x018e, 0x0191, +0x0193, 0x0194, +0x0196, 0x0198, +0x019c, 0x019d, +0x019f, 0x01a0, +0x01a2, 0x01a2, +0x01a4, 0x01a4, +0x01a6, 0x01a7, +0x01a9, 0x01a9, +0x01ac, 0x01ac, +0x01ae, 0x01af, +0x01b1, 0x01b3, +0x01b5, 0x01b5, +0x01b7, 0x01b8, +0x01bc, 0x01bc, +0x01c4, 0x01c4, +0x01c7, 0x01c7, +0x01ca, 0x01ca, +0x01cd, 0x01cd, +0x01cf, 0x01cf, +0x01d1, 0x01d1, +0x01d3, 0x01d3, +0x01d5, 0x01d5, +0x01d7, 0x01d7, +0x01d9, 0x01d9, +0x01db, 0x01db, +0x01de, 0x01de, +0x01e0, 0x01e0, +0x01e2, 0x01e2, +0x01e4, 0x01e4, +0x01e6, 0x01e6, +0x01e8, 0x01e8, +0x01ea, 0x01ea, +0x01ec, 0x01ec, +0x01ee, 0x01ee, +0x01f1, 0x01f1, +0x01f4, 0x01f4, +0x01f6, 0x01f8, +0x01fa, 0x01fa, +0x01fc, 0x01fc, +0x01fe, 0x01fe, +0x0200, 0x0200, +0x0202, 0x0202, +0x0204, 0x0204, +0x0206, 0x0206, +0x0208, 0x0208, +0x020a, 0x020a, +0x020c, 0x020c, +0x020e, 0x020e, +0x0210, 0x0210, +0x0212, 0x0212, +0x0214, 0x0214, +0x0216, 0x0216, +0x0218, 0x0218, +0x021a, 0x021a, +0x021c, 0x021c, +0x021e, 0x021e, +0x0220, 0x0220, +0x0222, 0x0222, +0x0224, 0x0224, +0x0226, 0x0226, +0x0228, 0x0228, +0x022a, 0x022a, +0x022c, 0x022c, +0x022e, 0x022e, +0x0230, 0x0230, +0x0232, 0x0232, +0x023a, 0x023b, +0x023d, 0x023e, +0x0241, 0x0241, +0x0243, 0x0246, +0x0248, 0x0248, +0x024a, 0x024a, +0x024c, 0x024c, +0x024e, 0x024e, +0x0370, 0x0370, +0x0372, 0x0372, +0x0376, 0x0376, +0x037f, 0x037f, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x038f, +0x0391, 0x03a1, +0x03a3, 0x03ab, +0x03cf, 0x03cf, +0x03d2, 0x03d4, +0x03d8, 0x03d8, +0x03da, 0x03da, +0x03dc, 0x03dc, +0x03de, 0x03de, +0x03e0, 0x03e0, +0x03e2, 0x03e2, +0x03e4, 0x03e4, +0x03e6, 0x03e6, +0x03e8, 0x03e8, +0x03ea, 0x03ea, +0x03ec, 0x03ec, +0x03ee, 0x03ee, +0x03f4, 0x03f4, +0x03f7, 0x03f7, +0x03f9, 0x03fa, +0x03fd, 0x042f, +0x0460, 0x0460, +0x0462, 0x0462, +0x0464, 0x0464, +0x0466, 0x0466, +0x0468, 0x0468, +0x046a, 0x046a, +0x046c, 0x046c, +0x046e, 0x046e, +0x0470, 0x0470, +0x0472, 0x0472, +0x0474, 0x0474, +0x0476, 0x0476, +0x0478, 0x0478, +0x047a, 0x047a, +0x047c, 0x047c, +0x047e, 0x047e, +0x0480, 0x0480, +0x048a, 0x048a, +0x048c, 0x048c, +0x048e, 0x048e, +0x0490, 0x0490, +0x0492, 0x0492, +0x0494, 0x0494, +0x0496, 0x0496, +0x0498, 0x0498, +0x049a, 0x049a, +0x049c, 0x049c, +0x049e, 0x049e, +0x04a0, 0x04a0, +0x04a2, 0x04a2, +0x04a4, 0x04a4, +0x04a6, 0x04a6, +0x04a8, 0x04a8, +0x04aa, 0x04aa, +0x04ac, 0x04ac, +0x04ae, 0x04ae, +0x04b0, 0x04b0, +0x04b2, 0x04b2, +0x04b4, 0x04b4, +0x04b6, 0x04b6, +0x04b8, 0x04b8, +0x04ba, 0x04ba, +0x04bc, 0x04bc, +0x04be, 0x04be, +0x04c0, 0x04c1, +0x04c3, 0x04c3, +0x04c5, 0x04c5, +0x04c7, 0x04c7, +0x04c9, 0x04c9, +0x04cb, 0x04cb, +0x04cd, 0x04cd, +0x04d0, 0x04d0, +0x04d2, 0x04d2, +0x04d4, 0x04d4, +0x04d6, 0x04d6, +0x04d8, 0x04d8, +0x04da, 0x04da, +0x04dc, 0x04dc, +0x04de, 0x04de, +0x04e0, 0x04e0, +0x04e2, 0x04e2, +0x04e4, 0x04e4, +0x04e6, 0x04e6, +0x04e8, 0x04e8, +0x04ea, 0x04ea, +0x04ec, 0x04ec, +0x04ee, 0x04ee, +0x04f0, 0x04f0, +0x04f2, 0x04f2, +0x04f4, 0x04f4, +0x04f6, 0x04f6, +0x04f8, 0x04f8, +0x04fa, 0x04fa, +0x04fc, 0x04fc, +0x04fe, 0x04fe, +0x0500, 0x0500, +0x0502, 0x0502, +0x0504, 0x0504, +0x0506, 0x0506, +0x0508, 0x0508, +0x050a, 0x050a, +0x050c, 0x050c, +0x050e, 0x050e, +0x0510, 0x0510, +0x0512, 0x0512, +0x0514, 0x0514, +0x0516, 0x0516, +0x0518, 0x0518, +0x051a, 0x051a, +0x051c, 0x051c, +0x051e, 0x051e, +0x0520, 0x0520, +0x0522, 0x0522, +0x0524, 0x0524, +0x0526, 0x0526, +0x0528, 0x0528, +0x052a, 0x052a, +0x052c, 0x052c, +0x052e, 0x052e, +0x0531, 0x0556, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x13a0, 0x13f5, +0x1c89, 0x1c89, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1e00, 0x1e00, +0x1e02, 0x1e02, +0x1e04, 0x1e04, +0x1e06, 0x1e06, +0x1e08, 0x1e08, +0x1e0a, 0x1e0a, +0x1e0c, 0x1e0c, +0x1e0e, 0x1e0e, +0x1e10, 0x1e10, +0x1e12, 0x1e12, +0x1e14, 0x1e14, +0x1e16, 0x1e16, +0x1e18, 0x1e18, +0x1e1a, 0x1e1a, +0x1e1c, 0x1e1c, +0x1e1e, 0x1e1e, +0x1e20, 0x1e20, +0x1e22, 0x1e22, +0x1e24, 0x1e24, +0x1e26, 0x1e26, +0x1e28, 0x1e28, +0x1e2a, 0x1e2a, +0x1e2c, 0x1e2c, +0x1e2e, 0x1e2e, +0x1e30, 0x1e30, +0x1e32, 0x1e32, +0x1e34, 0x1e34, +0x1e36, 0x1e36, +0x1e38, 0x1e38, +0x1e3a, 0x1e3a, +0x1e3c, 0x1e3c, +0x1e3e, 0x1e3e, +0x1e40, 0x1e40, +0x1e42, 0x1e42, +0x1e44, 0x1e44, +0x1e46, 0x1e46, +0x1e48, 0x1e48, +0x1e4a, 0x1e4a, +0x1e4c, 0x1e4c, +0x1e4e, 0x1e4e, +0x1e50, 0x1e50, +0x1e52, 0x1e52, +0x1e54, 0x1e54, +0x1e56, 0x1e56, +0x1e58, 0x1e58, +0x1e5a, 0x1e5a, +0x1e5c, 0x1e5c, +0x1e5e, 0x1e5e, +0x1e60, 0x1e60, +0x1e62, 0x1e62, +0x1e64, 0x1e64, +0x1e66, 0x1e66, +0x1e68, 0x1e68, +0x1e6a, 0x1e6a, +0x1e6c, 0x1e6c, +0x1e6e, 0x1e6e, +0x1e70, 0x1e70, +0x1e72, 0x1e72, +0x1e74, 0x1e74, +0x1e76, 0x1e76, +0x1e78, 0x1e78, +0x1e7a, 0x1e7a, +0x1e7c, 0x1e7c, +0x1e7e, 0x1e7e, +0x1e80, 0x1e80, +0x1e82, 0x1e82, +0x1e84, 0x1e84, +0x1e86, 0x1e86, +0x1e88, 0x1e88, +0x1e8a, 0x1e8a, +0x1e8c, 0x1e8c, +0x1e8e, 0x1e8e, +0x1e90, 0x1e90, +0x1e92, 0x1e92, +0x1e94, 0x1e94, +0x1e9e, 0x1e9e, +0x1ea0, 0x1ea0, +0x1ea2, 0x1ea2, +0x1ea4, 0x1ea4, +0x1ea6, 0x1ea6, +0x1ea8, 0x1ea8, +0x1eaa, 0x1eaa, +0x1eac, 0x1eac, +0x1eae, 0x1eae, +0x1eb0, 0x1eb0, +0x1eb2, 0x1eb2, +0x1eb4, 0x1eb4, +0x1eb6, 0x1eb6, +0x1eb8, 0x1eb8, +0x1eba, 0x1eba, +0x1ebc, 0x1ebc, +0x1ebe, 0x1ebe, +0x1ec0, 0x1ec0, +0x1ec2, 0x1ec2, +0x1ec4, 0x1ec4, +0x1ec6, 0x1ec6, +0x1ec8, 0x1ec8, +0x1eca, 0x1eca, +0x1ecc, 0x1ecc, +0x1ece, 0x1ece, +0x1ed0, 0x1ed0, +0x1ed2, 0x1ed2, +0x1ed4, 0x1ed4, +0x1ed6, 0x1ed6, +0x1ed8, 0x1ed8, +0x1eda, 0x1eda, +0x1edc, 0x1edc, +0x1ede, 0x1ede, +0x1ee0, 0x1ee0, +0x1ee2, 0x1ee2, +0x1ee4, 0x1ee4, +0x1ee6, 0x1ee6, +0x1ee8, 0x1ee8, +0x1eea, 0x1eea, +0x1eec, 0x1eec, +0x1eee, 0x1eee, +0x1ef0, 0x1ef0, +0x1ef2, 0x1ef2, +0x1ef4, 0x1ef4, +0x1ef6, 0x1ef6, +0x1ef8, 0x1ef8, +0x1efa, 0x1efa, +0x1efc, 0x1efc, +0x1efe, 0x1efe, +0x1f08, 0x1f0f, +0x1f18, 0x1f1d, +0x1f28, 0x1f2f, +0x1f38, 0x1f3f, +0x1f48, 0x1f4d, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f5f, +0x1f68, 0x1f6f, +0x1fb8, 0x1fbb, +0x1fc8, 0x1fcb, +0x1fd8, 0x1fdb, +0x1fe8, 0x1fec, +0x1ff8, 0x1ffb, +0x2102, 0x2102, +0x2107, 0x2107, +0x210b, 0x210d, +0x2110, 0x2112, +0x2115, 0x2115, +0x2119, 0x211d, +0x2124, 0x2124, +0x2126, 0x2126, +0x2128, 0x2128, +0x212a, 0x212d, +0x2130, 0x2133, +0x213e, 0x213f, +0x2145, 0x2145, +0x2160, 0x216f, +0x2183, 0x2183, +0x24b6, 0x24cf, +0x2c00, 0x2c2f, +0x2c60, 0x2c60, +0x2c62, 0x2c64, +0x2c67, 0x2c67, +0x2c69, 0x2c69, +0x2c6b, 0x2c6b, +0x2c6d, 0x2c70, +0x2c72, 0x2c72, +0x2c75, 0x2c75, +0x2c7e, 0x2c80, +0x2c82, 0x2c82, +0x2c84, 0x2c84, +0x2c86, 0x2c86, +0x2c88, 0x2c88, +0x2c8a, 0x2c8a, +0x2c8c, 0x2c8c, +0x2c8e, 0x2c8e, +0x2c90, 0x2c90, +0x2c92, 0x2c92, +0x2c94, 0x2c94, +0x2c96, 0x2c96, +0x2c98, 0x2c98, +0x2c9a, 0x2c9a, +0x2c9c, 0x2c9c, +0x2c9e, 0x2c9e, +0x2ca0, 0x2ca0, +0x2ca2, 0x2ca2, +0x2ca4, 0x2ca4, +0x2ca6, 0x2ca6, +0x2ca8, 0x2ca8, +0x2caa, 0x2caa, +0x2cac, 0x2cac, +0x2cae, 0x2cae, +0x2cb0, 0x2cb0, +0x2cb2, 0x2cb2, +0x2cb4, 0x2cb4, +0x2cb6, 0x2cb6, +0x2cb8, 0x2cb8, +0x2cba, 0x2cba, +0x2cbc, 0x2cbc, +0x2cbe, 0x2cbe, +0x2cc0, 0x2cc0, +0x2cc2, 0x2cc2, +0x2cc4, 0x2cc4, +0x2cc6, 0x2cc6, +0x2cc8, 0x2cc8, +0x2cca, 0x2cca, +0x2ccc, 0x2ccc, +0x2cce, 0x2cce, +0x2cd0, 0x2cd0, +0x2cd2, 0x2cd2, +0x2cd4, 0x2cd4, +0x2cd6, 0x2cd6, +0x2cd8, 0x2cd8, +0x2cda, 0x2cda, +0x2cdc, 0x2cdc, +0x2cde, 0x2cde, +0x2ce0, 0x2ce0, +0x2ce2, 0x2ce2, +0x2ceb, 0x2ceb, +0x2ced, 0x2ced, +0x2cf2, 0x2cf2, +0xa640, 0xa640, +0xa642, 0xa642, +0xa644, 0xa644, +0xa646, 0xa646, +0xa648, 0xa648, +0xa64a, 0xa64a, +0xa64c, 0xa64c, +0xa64e, 0xa64e, +0xa650, 0xa650, +0xa652, 0xa652, +0xa654, 0xa654, +0xa656, 0xa656, +0xa658, 0xa658, +0xa65a, 0xa65a, +0xa65c, 0xa65c, +0xa65e, 0xa65e, +0xa660, 0xa660, +0xa662, 0xa662, +0xa664, 0xa664, +0xa666, 0xa666, +0xa668, 0xa668, +0xa66a, 0xa66a, +0xa66c, 0xa66c, +0xa680, 0xa680, +0xa682, 0xa682, +0xa684, 0xa684, +0xa686, 0xa686, +0xa688, 0xa688, +0xa68a, 0xa68a, +0xa68c, 0xa68c, +0xa68e, 0xa68e, +0xa690, 0xa690, +0xa692, 0xa692, +0xa694, 0xa694, +0xa696, 0xa696, +0xa698, 0xa698, +0xa69a, 0xa69a, +0xa722, 0xa722, +0xa724, 0xa724, +0xa726, 0xa726, +0xa728, 0xa728, +0xa72a, 0xa72a, +0xa72c, 0xa72c, +0xa72e, 0xa72e, +0xa732, 0xa732, +0xa734, 0xa734, +0xa736, 0xa736, +0xa738, 0xa738, +0xa73a, 0xa73a, +0xa73c, 0xa73c, +0xa73e, 0xa73e, +0xa740, 0xa740, +0xa742, 0xa742, +0xa744, 0xa744, +0xa746, 0xa746, +0xa748, 0xa748, +0xa74a, 0xa74a, +0xa74c, 0xa74c, +0xa74e, 0xa74e, +0xa750, 0xa750, +0xa752, 0xa752, +0xa754, 0xa754, +0xa756, 0xa756, +0xa758, 0xa758, +0xa75a, 0xa75a, +0xa75c, 0xa75c, +0xa75e, 0xa75e, +0xa760, 0xa760, +0xa762, 0xa762, +0xa764, 0xa764, +0xa766, 0xa766, +0xa768, 0xa768, +0xa76a, 0xa76a, +0xa76c, 0xa76c, +0xa76e, 0xa76e, +0xa779, 0xa779, +0xa77b, 0xa77b, +0xa77d, 0xa77e, +0xa780, 0xa780, +0xa782, 0xa782, +0xa784, 0xa784, +0xa786, 0xa786, +0xa78b, 0xa78b, +0xa78d, 0xa78d, +0xa790, 0xa790, +0xa792, 0xa792, +0xa796, 0xa796, +0xa798, 0xa798, +0xa79a, 0xa79a, +0xa79c, 0xa79c, +0xa79e, 0xa79e, +0xa7a0, 0xa7a0, +0xa7a2, 0xa7a2, +0xa7a4, 0xa7a4, +0xa7a6, 0xa7a6, +0xa7a8, 0xa7a8, +0xa7aa, 0xa7ae, +0xa7b0, 0xa7b4, +0xa7b6, 0xa7b6, +0xa7b8, 0xa7b8, +0xa7ba, 0xa7ba, +0xa7bc, 0xa7bc, +0xa7be, 0xa7be, +0xa7c0, 0xa7c0, +0xa7c2, 0xa7c2, +0xa7c4, 0xa7c7, +0xa7c9, 0xa7c9, +0xa7cb, 0xa7cc, +0xa7d0, 0xa7d0, +0xa7d6, 0xa7d6, +0xa7d8, 0xa7d8, +0xa7da, 0xa7da, +0xa7dc, 0xa7dc, +0xa7f5, 0xa7f5, +0xff21, 0xff3a, +0x10400, 0x10427, +0x104b0, 0x104d3, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10c80, 0x10cb2, +0x10d50, 0x10d65, +0x118a0, 0x118bf, +0x16e40, 0x16e5f, +0x1d400, 0x1d419, +0x1d434, 0x1d44d, +0x1d468, 0x1d481, +0x1d49c, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b5, +0x1d4d0, 0x1d4e9, +0x1d504, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d538, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d56c, 0x1d585, +0x1d5a0, 0x1d5b9, +0x1d5d4, 0x1d5ed, +0x1d608, 0x1d621, +0x1d63c, 0x1d655, +0x1d670, 0x1d689, +0x1d6a8, 0x1d6c0, +0x1d6e2, 0x1d6fa, +0x1d71c, 0x1d734, +0x1d756, 0x1d76e, +0x1d790, 0x1d7a8, +0x1d7ca, 0x1d7ca, +0x1e900, 0x1e921, +0x1f130, 0x1f149, +0x1f150, 0x1f169, +0x1f170, 0x1f189, +}; /* END of CR_Upper */ + +/* PROPERTY: 'XDigit': POSIX [[:XDigit:]] */ +static const OnigCodePoint +CR_XDigit[] = { 3, +0x0030, 0x0039, +0x0041, 0x0046, +0x0061, 0x0066, +}; /* END of CR_XDigit */ + +/* PROPERTY: 'Word': POSIX [[:Word:]] */ +static const OnigCodePoint +CR_Word[] = { 795, +0x0030, 0x0039, +0x0041, 0x005a, +0x005f, 0x005f, +0x0061, 0x007a, +0x00aa, 0x00aa, +0x00b5, 0x00b5, +0x00ba, 0x00ba, +0x00c0, 0x00d6, +0x00d8, 0x00f6, +0x00f8, 0x02c1, +0x02c6, 0x02d1, +0x02e0, 0x02e4, +0x02ec, 0x02ec, +0x02ee, 0x02ee, +0x0300, 0x0374, +0x0376, 0x0377, +0x037a, 0x037d, +0x037f, 0x037f, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x03f5, +0x03f7, 0x0481, +0x0483, 0x052f, +0x0531, 0x0556, +0x0559, 0x0559, +0x0560, 0x0588, +0x0591, 0x05bd, +0x05bf, 0x05bf, +0x05c1, 0x05c2, +0x05c4, 0x05c5, +0x05c7, 0x05c7, +0x05d0, 0x05ea, +0x05ef, 0x05f2, +0x0610, 0x061a, +0x0620, 0x0669, +0x066e, 0x06d3, +0x06d5, 0x06dc, +0x06df, 0x06e8, +0x06ea, 0x06fc, +0x06ff, 0x06ff, +0x0710, 0x074a, +0x074d, 0x07b1, +0x07c0, 0x07f5, +0x07fa, 0x07fa, +0x07fd, 0x07fd, +0x0800, 0x082d, +0x0840, 0x085b, +0x0860, 0x086a, +0x0870, 0x0887, +0x0889, 0x088e, +0x0897, 0x08e1, +0x08e3, 0x0963, +0x0966, 0x096f, +0x0971, 0x0983, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bc, 0x09c4, +0x09c7, 0x09c8, +0x09cb, 0x09ce, +0x09d7, 0x09d7, +0x09dc, 0x09dd, +0x09df, 0x09e3, +0x09e6, 0x09f1, +0x09fc, 0x09fc, +0x09fe, 0x09fe, +0x0a01, 0x0a03, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a3c, 0x0a3c, +0x0a3e, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4d, +0x0a51, 0x0a51, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a66, 0x0a75, +0x0a81, 0x0a83, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abc, 0x0ac5, +0x0ac7, 0x0ac9, +0x0acb, 0x0acd, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae3, +0x0ae6, 0x0aef, +0x0af9, 0x0aff, +0x0b01, 0x0b03, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3c, 0x0b44, +0x0b47, 0x0b48, +0x0b4b, 0x0b4d, +0x0b55, 0x0b57, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b63, +0x0b66, 0x0b6f, +0x0b71, 0x0b71, +0x0b82, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bbe, 0x0bc2, +0x0bc6, 0x0bc8, +0x0bca, 0x0bcd, +0x0bd0, 0x0bd0, +0x0bd7, 0x0bd7, +0x0be6, 0x0bef, +0x0c00, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3c, 0x0c44, +0x0c46, 0x0c48, +0x0c4a, 0x0c4d, +0x0c55, 0x0c56, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c63, +0x0c66, 0x0c6f, +0x0c80, 0x0c83, +0x0c85, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbc, 0x0cc4, +0x0cc6, 0x0cc8, +0x0cca, 0x0ccd, +0x0cd5, 0x0cd6, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce3, +0x0ce6, 0x0cef, +0x0cf1, 0x0cf3, +0x0d00, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d44, +0x0d46, 0x0d48, +0x0d4a, 0x0d4e, +0x0d54, 0x0d57, +0x0d5f, 0x0d63, +0x0d66, 0x0d6f, +0x0d7a, 0x0d7f, +0x0d81, 0x0d83, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0dca, 0x0dca, +0x0dcf, 0x0dd4, +0x0dd6, 0x0dd6, +0x0dd8, 0x0ddf, +0x0de6, 0x0def, +0x0df2, 0x0df3, +0x0e01, 0x0e3a, +0x0e40, 0x0e4e, +0x0e50, 0x0e59, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0ebd, +0x0ec0, 0x0ec4, +0x0ec6, 0x0ec6, +0x0ec8, 0x0ece, +0x0ed0, 0x0ed9, +0x0edc, 0x0edf, +0x0f00, 0x0f00, +0x0f18, 0x0f19, +0x0f20, 0x0f29, +0x0f35, 0x0f35, +0x0f37, 0x0f37, +0x0f39, 0x0f39, +0x0f3e, 0x0f47, +0x0f49, 0x0f6c, +0x0f71, 0x0f84, +0x0f86, 0x0f97, +0x0f99, 0x0fbc, +0x0fc6, 0x0fc6, +0x1000, 0x1049, +0x1050, 0x109d, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x10fa, +0x10fc, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x135d, 0x135f, +0x1380, 0x138f, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1401, 0x166c, +0x166f, 0x167f, +0x1681, 0x169a, +0x16a0, 0x16ea, +0x16ee, 0x16f8, +0x1700, 0x1715, +0x171f, 0x1734, +0x1740, 0x1753, +0x1760, 0x176c, +0x176e, 0x1770, +0x1772, 0x1773, +0x1780, 0x17d3, +0x17d7, 0x17d7, +0x17dc, 0x17dd, +0x17e0, 0x17e9, +0x180b, 0x180d, +0x180f, 0x1819, +0x1820, 0x1878, +0x1880, 0x18aa, +0x18b0, 0x18f5, +0x1900, 0x191e, +0x1920, 0x192b, +0x1930, 0x193b, +0x1946, 0x196d, +0x1970, 0x1974, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x19d0, 0x19d9, +0x1a00, 0x1a1b, +0x1a20, 0x1a5e, +0x1a60, 0x1a7c, +0x1a7f, 0x1a89, +0x1a90, 0x1a99, +0x1aa7, 0x1aa7, +0x1ab0, 0x1ace, +0x1b00, 0x1b4c, +0x1b50, 0x1b59, +0x1b6b, 0x1b73, +0x1b80, 0x1bf3, +0x1c00, 0x1c37, +0x1c40, 0x1c49, +0x1c4d, 0x1c7d, +0x1c80, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1cd0, 0x1cd2, +0x1cd4, 0x1cfa, +0x1d00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fbc, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fcc, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fe0, 0x1fec, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffc, +0x203f, 0x2040, +0x2054, 0x2054, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x20d0, 0x20f0, +0x2102, 0x2102, +0x2107, 0x2107, +0x210a, 0x2113, +0x2115, 0x2115, +0x2119, 0x211d, +0x2124, 0x2124, +0x2126, 0x2126, +0x2128, 0x2128, +0x212a, 0x212d, +0x212f, 0x2139, +0x213c, 0x213f, +0x2145, 0x2149, +0x214e, 0x214e, +0x2160, 0x2188, +0x24b6, 0x24e9, +0x2c00, 0x2ce4, +0x2ceb, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0x2d30, 0x2d67, +0x2d6f, 0x2d6f, +0x2d7f, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0x2de0, 0x2dff, +0x2e2f, 0x2e2f, +0x3005, 0x3007, +0x3021, 0x302f, +0x3031, 0x3035, +0x3038, 0x303c, +0x3041, 0x3096, +0x3099, 0x309a, +0x309d, 0x309f, +0x30a1, 0x30fa, +0x30fc, 0x30ff, +0x3105, 0x312f, +0x3131, 0x318e, +0x31a0, 0x31bf, +0x31f0, 0x31ff, +0x3400, 0x4dbf, +0x4e00, 0xa48c, +0xa4d0, 0xa4fd, +0xa500, 0xa60c, +0xa610, 0xa62b, +0xa640, 0xa672, +0xa674, 0xa67d, +0xa67f, 0xa6f1, +0xa717, 0xa71f, +0xa722, 0xa788, +0xa78b, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa827, +0xa82c, 0xa82c, +0xa840, 0xa873, +0xa880, 0xa8c5, +0xa8d0, 0xa8d9, +0xa8e0, 0xa8f7, +0xa8fb, 0xa8fb, +0xa8fd, 0xa92d, +0xa930, 0xa953, +0xa960, 0xa97c, +0xa980, 0xa9c0, +0xa9cf, 0xa9d9, +0xa9e0, 0xa9fe, +0xaa00, 0xaa36, +0xaa40, 0xaa4d, +0xaa50, 0xaa59, +0xaa60, 0xaa76, +0xaa7a, 0xaac2, +0xaadb, 0xaadd, +0xaae0, 0xaaef, +0xaaf2, 0xaaf6, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0xab30, 0xab5a, +0xab5c, 0xab69, +0xab70, 0xabea, +0xabec, 0xabed, +0xabf0, 0xabf9, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xf900, 0xfa6d, +0xfa70, 0xfad9, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xfb1d, 0xfb28, +0xfb2a, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfbb1, +0xfbd3, 0xfd3d, +0xfd50, 0xfd8f, +0xfd92, 0xfdc7, +0xfdf0, 0xfdfb, +0xfe00, 0xfe0f, +0xfe20, 0xfe2f, +0xfe33, 0xfe34, +0xfe4d, 0xfe4f, +0xfe70, 0xfe74, +0xfe76, 0xfefc, +0xff10, 0xff19, +0xff21, 0xff3a, +0xff3f, 0xff3f, +0xff41, 0xff5a, +0xff66, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +0x10140, 0x10174, +0x101fd, 0x101fd, +0x10280, 0x1029c, +0x102a0, 0x102d0, +0x102e0, 0x102e0, +0x10300, 0x1031f, +0x1032d, 0x1034a, +0x10350, 0x1037a, +0x10380, 0x1039d, +0x103a0, 0x103c3, +0x103c8, 0x103cf, +0x103d1, 0x103d5, +0x10400, 0x1049d, +0x104a0, 0x104a9, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10500, 0x10527, +0x10530, 0x10563, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x105c0, 0x105f3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x10855, +0x10860, 0x10876, +0x10880, 0x1089e, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x10900, 0x10915, +0x10920, 0x10939, +0x10980, 0x109b7, +0x109be, 0x109bf, +0x10a00, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a38, 0x10a3a, +0x10a3f, 0x10a3f, +0x10a60, 0x10a7c, +0x10a80, 0x10a9c, +0x10ac0, 0x10ac7, +0x10ac9, 0x10ae6, +0x10b00, 0x10b35, +0x10b40, 0x10b55, +0x10b60, 0x10b72, +0x10b80, 0x10b91, +0x10c00, 0x10c48, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10d00, 0x10d27, +0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d6d, +0x10d6f, 0x10d85, +0x10e80, 0x10ea9, +0x10eab, 0x10eac, +0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10efc, 0x10f1c, +0x10f27, 0x10f27, +0x10f30, 0x10f50, +0x10f70, 0x10f85, +0x10fb0, 0x10fc4, +0x10fe0, 0x10ff6, +0x11000, 0x11046, +0x11066, 0x11075, +0x1107f, 0x110ba, +0x110c2, 0x110c2, +0x110d0, 0x110e8, +0x110f0, 0x110f9, +0x11100, 0x11134, +0x11136, 0x1113f, +0x11144, 0x11147, +0x11150, 0x11173, +0x11176, 0x11176, +0x11180, 0x111c4, +0x111c9, 0x111cc, +0x111ce, 0x111da, +0x111dc, 0x111dc, +0x11200, 0x11211, +0x11213, 0x11237, +0x1123e, 0x11241, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a8, +0x112b0, 0x112ea, +0x112f0, 0x112f9, +0x11300, 0x11303, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133b, 0x11344, +0x11347, 0x11348, +0x1134b, 0x1134d, +0x11350, 0x11350, +0x11357, 0x11357, +0x1135d, 0x11363, +0x11366, 0x1136c, +0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d3, +0x113e1, 0x113e2, +0x11400, 0x1144a, +0x11450, 0x11459, +0x1145e, 0x11461, +0x11480, 0x114c5, +0x114c7, 0x114c7, +0x114d0, 0x114d9, +0x11580, 0x115b5, +0x115b8, 0x115c0, +0x115d8, 0x115dd, +0x11600, 0x11640, +0x11644, 0x11644, +0x11650, 0x11659, +0x11680, 0x116b8, +0x116c0, 0x116c9, +0x116d0, 0x116e3, +0x11700, 0x1171a, +0x1171d, 0x1172b, +0x11730, 0x11739, +0x11740, 0x11746, +0x11800, 0x1183a, +0x118a0, 0x118e9, +0x118ff, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x11935, +0x11937, 0x11938, +0x1193b, 0x11943, +0x11950, 0x11959, +0x119a0, 0x119a7, +0x119aa, 0x119d7, +0x119da, 0x119e1, +0x119e3, 0x119e4, +0x11a00, 0x11a3e, +0x11a47, 0x11a47, +0x11a50, 0x11a99, +0x11a9d, 0x11a9d, +0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11bf0, 0x11bf9, +0x11c00, 0x11c08, +0x11c0a, 0x11c36, +0x11c38, 0x11c40, +0x11c50, 0x11c59, +0x11c72, 0x11c8f, +0x11c92, 0x11ca7, +0x11ca9, 0x11cb6, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d47, +0x11d50, 0x11d59, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d8e, +0x11d90, 0x11d91, +0x11d93, 0x11d98, +0x11da0, 0x11da9, +0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f42, +0x11f50, 0x11f5a, +0x11fb0, 0x11fb0, +0x12000, 0x12399, +0x12400, 0x1246e, +0x12480, 0x12543, +0x12f90, 0x12ff0, +0x13000, 0x1342f, +0x13440, 0x13455, +0x13460, 0x143fa, +0x14400, 0x14646, +0x16100, 0x16139, +0x16800, 0x16a38, +0x16a40, 0x16a5e, +0x16a60, 0x16a69, +0x16a70, 0x16abe, +0x16ac0, 0x16ac9, +0x16ad0, 0x16aed, +0x16af0, 0x16af4, +0x16b00, 0x16b36, +0x16b40, 0x16b43, +0x16b50, 0x16b59, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16d70, 0x16d79, +0x16e40, 0x16e7f, +0x16f00, 0x16f4a, +0x16f4f, 0x16f87, +0x16f8f, 0x16f9f, +0x16fe0, 0x16fe1, +0x16fe3, 0x16fe4, +0x16ff0, 0x16ff1, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1b000, 0x1b122, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +0x1b170, 0x1b2fb, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1bc9d, 0x1bc9e, +0x1ccf0, 0x1ccf9, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1d165, 0x1d169, +0x1d16d, 0x1d172, +0x1d17b, 0x1d182, +0x1d185, 0x1d18b, +0x1d1aa, 0x1d1ad, +0x1d242, 0x1d244, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d6c0, +0x1d6c2, 0x1d6da, +0x1d6dc, 0x1d6fa, +0x1d6fc, 0x1d714, +0x1d716, 0x1d734, +0x1d736, 0x1d74e, +0x1d750, 0x1d76e, +0x1d770, 0x1d788, +0x1d78a, 0x1d7a8, +0x1d7aa, 0x1d7c2, +0x1d7c4, 0x1d7cb, +0x1d7ce, 0x1d7ff, +0x1da00, 0x1da36, +0x1da3b, 0x1da6c, +0x1da75, 0x1da75, +0x1da84, 0x1da84, +0x1da9b, 0x1da9f, +0x1daa1, 0x1daaf, +0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, +0x1e100, 0x1e12c, +0x1e130, 0x1e13d, +0x1e140, 0x1e149, +0x1e14e, 0x1e14e, +0x1e290, 0x1e2ae, +0x1e2c0, 0x1e2f9, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +0x1e800, 0x1e8c4, +0x1e8d0, 0x1e8d6, +0x1e900, 0x1e94b, +0x1e950, 0x1e959, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x1f130, 0x1f149, +0x1f150, 0x1f169, +0x1f170, 0x1f189, +0x1fbf0, 0x1fbf9, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +0xe0100, 0xe01ef, +}; /* END of CR_Word */ + +/* PROPERTY: 'Alnum': POSIX [[:Alnum:]] */ +static const OnigCodePoint +CR_Alnum[] = { 802, +0x0030, 0x0039, +0x0041, 0x005a, +0x0061, 0x007a, +0x00aa, 0x00aa, +0x00b5, 0x00b5, +0x00ba, 0x00ba, +0x00c0, 0x00d6, +0x00d8, 0x00f6, +0x00f8, 0x02c1, +0x02c6, 0x02d1, +0x02e0, 0x02e4, +0x02ec, 0x02ec, +0x02ee, 0x02ee, +0x0345, 0x0345, +0x0363, 0x0374, +0x0376, 0x0377, +0x037a, 0x037d, +0x037f, 0x037f, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x03f5, +0x03f7, 0x0481, +0x048a, 0x052f, +0x0531, 0x0556, +0x0559, 0x0559, +0x0560, 0x0588, +0x05b0, 0x05bd, +0x05bf, 0x05bf, +0x05c1, 0x05c2, +0x05c4, 0x05c5, +0x05c7, 0x05c7, +0x05d0, 0x05ea, +0x05ef, 0x05f2, +0x0610, 0x061a, +0x0620, 0x0657, +0x0659, 0x0669, +0x066e, 0x06d3, +0x06d5, 0x06dc, +0x06e1, 0x06e8, +0x06ed, 0x06fc, +0x06ff, 0x06ff, +0x0710, 0x073f, +0x074d, 0x07b1, +0x07c0, 0x07ea, +0x07f4, 0x07f5, +0x07fa, 0x07fa, +0x0800, 0x0817, +0x081a, 0x082c, +0x0840, 0x0858, +0x0860, 0x086a, +0x0870, 0x0887, +0x0889, 0x088e, +0x0897, 0x0897, +0x08a0, 0x08c9, +0x08d4, 0x08df, +0x08e3, 0x08e9, +0x08f0, 0x093b, +0x093d, 0x094c, +0x094e, 0x0950, +0x0955, 0x0963, +0x0966, 0x096f, +0x0971, 0x0983, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bd, 0x09c4, +0x09c7, 0x09c8, +0x09cb, 0x09cc, +0x09ce, 0x09ce, +0x09d7, 0x09d7, +0x09dc, 0x09dd, +0x09df, 0x09e3, +0x09e6, 0x09f1, +0x09fc, 0x09fc, +0x0a01, 0x0a03, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a3e, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4c, +0x0a51, 0x0a51, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a66, 0x0a75, +0x0a81, 0x0a83, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abd, 0x0ac5, +0x0ac7, 0x0ac9, +0x0acb, 0x0acc, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae3, +0x0ae6, 0x0aef, +0x0af9, 0x0afc, +0x0b01, 0x0b03, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3d, 0x0b44, +0x0b47, 0x0b48, +0x0b4b, 0x0b4c, +0x0b56, 0x0b57, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b63, +0x0b66, 0x0b6f, +0x0b71, 0x0b71, +0x0b82, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bbe, 0x0bc2, +0x0bc6, 0x0bc8, +0x0bca, 0x0bcc, +0x0bd0, 0x0bd0, +0x0bd7, 0x0bd7, +0x0be6, 0x0bef, +0x0c00, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3d, 0x0c44, +0x0c46, 0x0c48, +0x0c4a, 0x0c4c, +0x0c55, 0x0c56, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c63, +0x0c66, 0x0c6f, +0x0c80, 0x0c83, +0x0c85, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbd, 0x0cc4, +0x0cc6, 0x0cc8, +0x0cca, 0x0ccc, +0x0cd5, 0x0cd6, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce3, +0x0ce6, 0x0cef, +0x0cf1, 0x0cf3, +0x0d00, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d3a, +0x0d3d, 0x0d44, +0x0d46, 0x0d48, +0x0d4a, 0x0d4c, +0x0d4e, 0x0d4e, +0x0d54, 0x0d57, +0x0d5f, 0x0d63, +0x0d66, 0x0d6f, +0x0d7a, 0x0d7f, +0x0d81, 0x0d83, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0dcf, 0x0dd4, +0x0dd6, 0x0dd6, +0x0dd8, 0x0ddf, +0x0de6, 0x0def, +0x0df2, 0x0df3, +0x0e01, 0x0e3a, +0x0e40, 0x0e46, +0x0e4d, 0x0e4d, +0x0e50, 0x0e59, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0eb9, +0x0ebb, 0x0ebd, +0x0ec0, 0x0ec4, +0x0ec6, 0x0ec6, +0x0ecd, 0x0ecd, +0x0ed0, 0x0ed9, +0x0edc, 0x0edf, +0x0f00, 0x0f00, +0x0f20, 0x0f29, +0x0f40, 0x0f47, +0x0f49, 0x0f6c, +0x0f71, 0x0f83, +0x0f88, 0x0f97, +0x0f99, 0x0fbc, +0x1000, 0x1036, +0x1038, 0x1038, +0x103b, 0x1049, +0x1050, 0x109d, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x10fa, +0x10fc, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x1380, 0x138f, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1401, 0x166c, +0x166f, 0x167f, +0x1681, 0x169a, +0x16a0, 0x16ea, +0x16ee, 0x16f8, +0x1700, 0x1713, +0x171f, 0x1733, +0x1740, 0x1753, +0x1760, 0x176c, +0x176e, 0x1770, +0x1772, 0x1773, +0x1780, 0x17b3, +0x17b6, 0x17c8, +0x17d7, 0x17d7, +0x17dc, 0x17dc, +0x17e0, 0x17e9, +0x1810, 0x1819, +0x1820, 0x1878, +0x1880, 0x18aa, +0x18b0, 0x18f5, +0x1900, 0x191e, +0x1920, 0x192b, +0x1930, 0x1938, +0x1946, 0x196d, +0x1970, 0x1974, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x19d0, 0x19d9, +0x1a00, 0x1a1b, +0x1a20, 0x1a5e, +0x1a61, 0x1a74, +0x1a80, 0x1a89, +0x1a90, 0x1a99, +0x1aa7, 0x1aa7, +0x1abf, 0x1ac0, +0x1acc, 0x1ace, +0x1b00, 0x1b33, +0x1b35, 0x1b43, +0x1b45, 0x1b4c, +0x1b50, 0x1b59, +0x1b80, 0x1ba9, +0x1bac, 0x1be5, +0x1be7, 0x1bf1, +0x1c00, 0x1c36, +0x1c40, 0x1c49, +0x1c4d, 0x1c7d, +0x1c80, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1ce9, 0x1cec, +0x1cee, 0x1cf3, +0x1cf5, 0x1cf6, +0x1cfa, 0x1cfa, +0x1d00, 0x1dbf, +0x1dd3, 0x1df4, +0x1e00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fbc, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fcc, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fe0, 0x1fec, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffc, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x2102, 0x2102, +0x2107, 0x2107, +0x210a, 0x2113, +0x2115, 0x2115, +0x2119, 0x211d, +0x2124, 0x2124, +0x2126, 0x2126, +0x2128, 0x2128, +0x212a, 0x212d, +0x212f, 0x2139, +0x213c, 0x213f, +0x2145, 0x2149, +0x214e, 0x214e, +0x2160, 0x2188, +0x24b6, 0x24e9, +0x2c00, 0x2ce4, +0x2ceb, 0x2cee, +0x2cf2, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0x2d30, 0x2d67, +0x2d6f, 0x2d6f, +0x2d80, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0x2de0, 0x2dff, +0x2e2f, 0x2e2f, +0x3005, 0x3007, +0x3021, 0x3029, +0x3031, 0x3035, +0x3038, 0x303c, +0x3041, 0x3096, +0x309d, 0x309f, +0x30a1, 0x30fa, +0x30fc, 0x30ff, +0x3105, 0x312f, +0x3131, 0x318e, +0x31a0, 0x31bf, +0x31f0, 0x31ff, +0x3400, 0x4dbf, +0x4e00, 0xa48c, +0xa4d0, 0xa4fd, +0xa500, 0xa60c, +0xa610, 0xa62b, +0xa640, 0xa66e, +0xa674, 0xa67b, +0xa67f, 0xa6ef, +0xa717, 0xa71f, +0xa722, 0xa788, +0xa78b, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa805, +0xa807, 0xa827, +0xa840, 0xa873, +0xa880, 0xa8c3, +0xa8c5, 0xa8c5, +0xa8d0, 0xa8d9, +0xa8f2, 0xa8f7, +0xa8fb, 0xa8fb, +0xa8fd, 0xa92a, +0xa930, 0xa952, +0xa960, 0xa97c, +0xa980, 0xa9b2, +0xa9b4, 0xa9bf, +0xa9cf, 0xa9d9, +0xa9e0, 0xa9fe, +0xaa00, 0xaa36, +0xaa40, 0xaa4d, +0xaa50, 0xaa59, +0xaa60, 0xaa76, +0xaa7a, 0xaabe, +0xaac0, 0xaac0, +0xaac2, 0xaac2, +0xaadb, 0xaadd, +0xaae0, 0xaaef, +0xaaf2, 0xaaf5, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0xab30, 0xab5a, +0xab5c, 0xab69, +0xab70, 0xabea, +0xabf0, 0xabf9, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xf900, 0xfa6d, +0xfa70, 0xfad9, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xfb1d, 0xfb28, +0xfb2a, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfbb1, +0xfbd3, 0xfd3d, +0xfd50, 0xfd8f, +0xfd92, 0xfdc7, +0xfdf0, 0xfdfb, +0xfe70, 0xfe74, +0xfe76, 0xfefc, +0xff10, 0xff19, +0xff21, 0xff3a, +0xff41, 0xff5a, +0xff66, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +0x10140, 0x10174, +0x10280, 0x1029c, +0x102a0, 0x102d0, +0x10300, 0x1031f, +0x1032d, 0x1034a, +0x10350, 0x1037a, +0x10380, 0x1039d, +0x103a0, 0x103c3, +0x103c8, 0x103cf, +0x103d1, 0x103d5, +0x10400, 0x1049d, +0x104a0, 0x104a9, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10500, 0x10527, +0x10530, 0x10563, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x105c0, 0x105f3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x10855, +0x10860, 0x10876, +0x10880, 0x1089e, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x10900, 0x10915, +0x10920, 0x10939, +0x10980, 0x109b7, +0x109be, 0x109bf, +0x10a00, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a60, 0x10a7c, +0x10a80, 0x10a9c, +0x10ac0, 0x10ac7, +0x10ac9, 0x10ae4, +0x10b00, 0x10b35, +0x10b40, 0x10b55, +0x10b60, 0x10b72, +0x10b80, 0x10b91, +0x10c00, 0x10c48, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10d00, 0x10d27, +0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d69, +0x10d6f, 0x10d85, +0x10e80, 0x10ea9, +0x10eab, 0x10eac, +0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10efc, 0x10efc, +0x10f00, 0x10f1c, +0x10f27, 0x10f27, +0x10f30, 0x10f45, +0x10f70, 0x10f81, +0x10fb0, 0x10fc4, +0x10fe0, 0x10ff6, +0x11000, 0x11045, +0x11066, 0x1106f, +0x11071, 0x11075, +0x11080, 0x110b8, +0x110c2, 0x110c2, +0x110d0, 0x110e8, +0x110f0, 0x110f9, +0x11100, 0x11132, +0x11136, 0x1113f, +0x11144, 0x11147, +0x11150, 0x11172, +0x11176, 0x11176, +0x11180, 0x111bf, +0x111c1, 0x111c4, +0x111ce, 0x111da, +0x111dc, 0x111dc, +0x11200, 0x11211, +0x11213, 0x11234, +0x11237, 0x11237, +0x1123e, 0x11241, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a8, +0x112b0, 0x112e8, +0x112f0, 0x112f9, +0x11300, 0x11303, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133d, 0x11344, +0x11347, 0x11348, +0x1134b, 0x1134c, +0x11350, 0x11350, +0x11357, 0x11357, +0x1135d, 0x11363, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113cd, +0x113d1, 0x113d1, +0x113d3, 0x113d3, +0x11400, 0x11441, +0x11443, 0x11445, +0x11447, 0x1144a, +0x11450, 0x11459, +0x1145f, 0x11461, +0x11480, 0x114c1, +0x114c4, 0x114c5, +0x114c7, 0x114c7, +0x114d0, 0x114d9, +0x11580, 0x115b5, +0x115b8, 0x115be, +0x115d8, 0x115dd, +0x11600, 0x1163e, +0x11640, 0x11640, +0x11644, 0x11644, +0x11650, 0x11659, +0x11680, 0x116b5, +0x116b8, 0x116b8, +0x116c0, 0x116c9, +0x116d0, 0x116e3, +0x11700, 0x1171a, +0x1171d, 0x1172a, +0x11730, 0x11739, +0x11740, 0x11746, +0x11800, 0x11838, +0x118a0, 0x118e9, +0x118ff, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x11935, +0x11937, 0x11938, +0x1193b, 0x1193c, +0x1193f, 0x11942, +0x11950, 0x11959, +0x119a0, 0x119a7, +0x119aa, 0x119d7, +0x119da, 0x119df, +0x119e1, 0x119e1, +0x119e3, 0x119e4, +0x11a00, 0x11a32, +0x11a35, 0x11a3e, +0x11a50, 0x11a97, +0x11a9d, 0x11a9d, +0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11bf0, 0x11bf9, +0x11c00, 0x11c08, +0x11c0a, 0x11c36, +0x11c38, 0x11c3e, +0x11c40, 0x11c40, +0x11c50, 0x11c59, +0x11c72, 0x11c8f, +0x11c92, 0x11ca7, +0x11ca9, 0x11cb6, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d41, +0x11d43, 0x11d43, +0x11d46, 0x11d47, +0x11d50, 0x11d59, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d8e, +0x11d90, 0x11d91, +0x11d93, 0x11d96, +0x11d98, 0x11d98, +0x11da0, 0x11da9, +0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f40, +0x11f50, 0x11f59, +0x11fb0, 0x11fb0, +0x12000, 0x12399, +0x12400, 0x1246e, +0x12480, 0x12543, +0x12f90, 0x12ff0, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, +0x14400, 0x14646, +0x16100, 0x1612e, +0x16130, 0x16139, +0x16800, 0x16a38, +0x16a40, 0x16a5e, +0x16a60, 0x16a69, +0x16a70, 0x16abe, +0x16ac0, 0x16ac9, +0x16ad0, 0x16aed, +0x16b00, 0x16b2f, +0x16b40, 0x16b43, +0x16b50, 0x16b59, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16d70, 0x16d79, +0x16e40, 0x16e7f, +0x16f00, 0x16f4a, +0x16f4f, 0x16f87, +0x16f8f, 0x16f9f, +0x16fe0, 0x16fe1, +0x16fe3, 0x16fe3, +0x16ff0, 0x16ff1, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1b000, 0x1b122, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +0x1b170, 0x1b2fb, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1bc9e, 0x1bc9e, +0x1ccf0, 0x1ccf9, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d6c0, +0x1d6c2, 0x1d6da, +0x1d6dc, 0x1d6fa, +0x1d6fc, 0x1d714, +0x1d716, 0x1d734, +0x1d736, 0x1d74e, +0x1d750, 0x1d76e, +0x1d770, 0x1d788, +0x1d78a, 0x1d7a8, +0x1d7aa, 0x1d7c2, +0x1d7c4, 0x1d7cb, +0x1d7ce, 0x1d7ff, +0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, +0x1e100, 0x1e12c, +0x1e137, 0x1e13d, +0x1e140, 0x1e149, +0x1e14e, 0x1e14e, +0x1e290, 0x1e2ad, +0x1e2c0, 0x1e2eb, +0x1e2f0, 0x1e2f9, +0x1e4d0, 0x1e4eb, +0x1e4f0, 0x1e4f9, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5fa, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +0x1e800, 0x1e8c4, +0x1e900, 0x1e943, +0x1e947, 0x1e947, +0x1e94b, 0x1e94b, +0x1e950, 0x1e959, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x1f130, 0x1f149, +0x1f150, 0x1f169, +0x1f170, 0x1f189, +0x1fbf0, 0x1fbf9, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +}; /* END of CR_Alnum */ + +/* PROPERTY: 'ASCII': POSIX [[:ASCII:]] */ +static const OnigCodePoint +CR_ASCII[] = { 1, +0x0000, 0x007f, +}; /* END of CR_ASCII */ + + +/* PROPERTY: 'ASCII_Hex_Digit': Binary Property */ +#define CR_ASCII_Hex_Digit CR_XDigit + +/* PROPERTY: 'Adlam': Script */ +static const OnigCodePoint +CR_Adlam[] = { 3, +0x1e900, 0x1e94b, +0x1e950, 0x1e959, +0x1e95e, 0x1e95f, +}; /* END of CR_Adlam */ + +/* PROPERTY: 'Ahom': Script */ +static const OnigCodePoint +CR_Ahom[] = { 3, +0x11700, 0x1171a, +0x1171d, 0x1172b, +0x11730, 0x11746, +}; /* END of CR_Ahom */ + +/* PROPERTY: 'Alphabetic': Derived Property */ +#define CR_Alphabetic CR_Alpha + +/* PROPERTY: 'Anatolian_Hieroglyphs': Script */ +static const OnigCodePoint +CR_Anatolian_Hieroglyphs[] = { 1, +0x14400, 0x14646, +}; /* END of CR_Anatolian_Hieroglyphs */ + +/* PROPERTY: 'Any': - */ +static const OnigCodePoint +CR_Any[] = { 1, +0x0000, 0x10ffff, +}; /* END of CR_Any */ + +/* PROPERTY: 'Arabic': Script */ +static const OnigCodePoint +CR_Arabic[] = { 59, +0x0600, 0x0604, +0x0606, 0x060b, +0x060d, 0x061a, +0x061c, 0x061e, +0x0620, 0x063f, +0x0641, 0x064a, +0x0656, 0x066f, +0x0671, 0x06dc, +0x06de, 0x06ff, +0x0750, 0x077f, +0x0870, 0x088e, +0x0890, 0x0891, +0x0897, 0x08e1, +0x08e3, 0x08ff, +0xfb50, 0xfbc2, +0xfbd3, 0xfd3d, +0xfd40, 0xfd8f, +0xfd92, 0xfdc7, +0xfdcf, 0xfdcf, +0xfdf0, 0xfdff, +0xfe70, 0xfe74, +0xfe76, 0xfefc, +0x10e60, 0x10e7e, +0x10ec2, 0x10ec4, +0x10efc, 0x10eff, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x1eef0, 0x1eef1, +}; /* END of CR_Arabic */ + +/* PROPERTY: 'Armenian': Script */ +static const OnigCodePoint +CR_Armenian[] = { 4, +0x0531, 0x0556, +0x0559, 0x058a, +0x058d, 0x058f, +0xfb13, 0xfb17, +}; /* END of CR_Armenian */ + +/* PROPERTY: 'Assigned': - */ +static const OnigCodePoint +CR_Assigned[] = { 731, +0x0000, 0x0377, +0x037a, 0x037f, +0x0384, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x052f, +0x0531, 0x0556, +0x0559, 0x058a, +0x058d, 0x058f, +0x0591, 0x05c7, +0x05d0, 0x05ea, +0x05ef, 0x05f4, +0x0600, 0x070d, +0x070f, 0x074a, +0x074d, 0x07b1, +0x07c0, 0x07fa, +0x07fd, 0x082d, +0x0830, 0x083e, +0x0840, 0x085b, +0x085e, 0x085e, +0x0860, 0x086a, +0x0870, 0x088e, +0x0890, 0x0891, +0x0897, 0x0983, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bc, 0x09c4, +0x09c7, 0x09c8, +0x09cb, 0x09ce, +0x09d7, 0x09d7, +0x09dc, 0x09dd, +0x09df, 0x09e3, +0x09e6, 0x09fe, +0x0a01, 0x0a03, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a3c, 0x0a3c, +0x0a3e, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4d, +0x0a51, 0x0a51, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a66, 0x0a76, +0x0a81, 0x0a83, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abc, 0x0ac5, +0x0ac7, 0x0ac9, +0x0acb, 0x0acd, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae3, +0x0ae6, 0x0af1, +0x0af9, 0x0aff, +0x0b01, 0x0b03, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3c, 0x0b44, +0x0b47, 0x0b48, +0x0b4b, 0x0b4d, +0x0b55, 0x0b57, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b63, +0x0b66, 0x0b77, +0x0b82, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bbe, 0x0bc2, +0x0bc6, 0x0bc8, +0x0bca, 0x0bcd, +0x0bd0, 0x0bd0, +0x0bd7, 0x0bd7, +0x0be6, 0x0bfa, +0x0c00, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3c, 0x0c44, +0x0c46, 0x0c48, +0x0c4a, 0x0c4d, +0x0c55, 0x0c56, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c63, +0x0c66, 0x0c6f, +0x0c77, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbc, 0x0cc4, +0x0cc6, 0x0cc8, +0x0cca, 0x0ccd, +0x0cd5, 0x0cd6, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce3, +0x0ce6, 0x0cef, +0x0cf1, 0x0cf3, +0x0d00, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d44, +0x0d46, 0x0d48, +0x0d4a, 0x0d4f, +0x0d54, 0x0d63, +0x0d66, 0x0d7f, +0x0d81, 0x0d83, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0dca, 0x0dca, +0x0dcf, 0x0dd4, +0x0dd6, 0x0dd6, +0x0dd8, 0x0ddf, +0x0de6, 0x0def, +0x0df2, 0x0df4, +0x0e01, 0x0e3a, +0x0e3f, 0x0e5b, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0ebd, +0x0ec0, 0x0ec4, +0x0ec6, 0x0ec6, +0x0ec8, 0x0ece, +0x0ed0, 0x0ed9, +0x0edc, 0x0edf, +0x0f00, 0x0f47, +0x0f49, 0x0f6c, +0x0f71, 0x0f97, +0x0f99, 0x0fbc, +0x0fbe, 0x0fcc, +0x0fce, 0x0fda, +0x1000, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x135d, 0x137c, +0x1380, 0x1399, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1400, 0x169c, +0x16a0, 0x16f8, +0x1700, 0x1715, +0x171f, 0x1736, +0x1740, 0x1753, +0x1760, 0x176c, +0x176e, 0x1770, +0x1772, 0x1773, +0x1780, 0x17dd, +0x17e0, 0x17e9, +0x17f0, 0x17f9, +0x1800, 0x1819, +0x1820, 0x1878, +0x1880, 0x18aa, +0x18b0, 0x18f5, +0x1900, 0x191e, +0x1920, 0x192b, +0x1930, 0x193b, +0x1940, 0x1940, +0x1944, 0x196d, +0x1970, 0x1974, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x19d0, 0x19da, +0x19de, 0x1a1b, +0x1a1e, 0x1a5e, +0x1a60, 0x1a7c, +0x1a7f, 0x1a89, +0x1a90, 0x1a99, +0x1aa0, 0x1aad, +0x1ab0, 0x1ace, +0x1b00, 0x1b4c, +0x1b4e, 0x1bf3, +0x1bfc, 0x1c37, +0x1c3b, 0x1c49, +0x1c4d, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cc7, +0x1cd0, 0x1cfa, +0x1d00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fc4, +0x1fc6, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fdd, 0x1fef, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffe, +0x2000, 0x2064, +0x2066, 0x2071, +0x2074, 0x208e, +0x2090, 0x209c, +0x20a0, 0x20c0, +0x20d0, 0x20f0, +0x2100, 0x218b, +0x2190, 0x2429, +0x2440, 0x244a, +0x2460, 0x2b73, +0x2b76, 0x2b95, +0x2b97, 0x2cf3, +0x2cf9, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0x2d30, 0x2d67, +0x2d6f, 0x2d70, +0x2d7f, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0x2de0, 0x2e5d, +0x2e80, 0x2e99, +0x2e9b, 0x2ef3, +0x2f00, 0x2fd5, +0x2ff0, 0x303f, +0x3041, 0x3096, +0x3099, 0x30ff, +0x3105, 0x312f, +0x3131, 0x318e, +0x3190, 0x31e5, +0x31ef, 0x321e, +0x3220, 0xa48c, +0xa490, 0xa4c6, +0xa4d0, 0xa62b, +0xa640, 0xa6f7, +0xa700, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa82c, +0xa830, 0xa839, +0xa840, 0xa877, +0xa880, 0xa8c5, +0xa8ce, 0xa8d9, +0xa8e0, 0xa953, +0xa95f, 0xa97c, +0xa980, 0xa9cd, +0xa9cf, 0xa9d9, +0xa9de, 0xa9fe, +0xaa00, 0xaa36, +0xaa40, 0xaa4d, +0xaa50, 0xaa59, +0xaa5c, 0xaac2, +0xaadb, 0xaaf6, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0xab30, 0xab6b, +0xab70, 0xabed, +0xabf0, 0xabf9, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xd800, 0xfa6d, +0xfa70, 0xfad9, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xfb1d, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfbc2, +0xfbd3, 0xfd8f, +0xfd92, 0xfdc7, +0xfdcf, 0xfdcf, +0xfdf0, 0xfe19, +0xfe20, 0xfe52, +0xfe54, 0xfe66, +0xfe68, 0xfe6b, +0xfe70, 0xfe74, +0xfe76, 0xfefc, +0xfeff, 0xfeff, +0xff01, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +0xffe0, 0xffe6, +0xffe8, 0xffee, +0xfff9, 0xfffd, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +0x10100, 0x10102, +0x10107, 0x10133, +0x10137, 0x1018e, +0x10190, 0x1019c, +0x101a0, 0x101a0, +0x101d0, 0x101fd, +0x10280, 0x1029c, +0x102a0, 0x102d0, +0x102e0, 0x102fb, +0x10300, 0x10323, +0x1032d, 0x1034a, +0x10350, 0x1037a, +0x10380, 0x1039d, +0x1039f, 0x103c3, +0x103c8, 0x103d5, +0x10400, 0x1049d, +0x104a0, 0x104a9, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10500, 0x10527, +0x10530, 0x10563, +0x1056f, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x105c0, 0x105f3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x10855, +0x10857, 0x1089e, +0x108a7, 0x108af, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x108fb, 0x1091b, +0x1091f, 0x10939, +0x1093f, 0x1093f, +0x10980, 0x109b7, +0x109bc, 0x109cf, +0x109d2, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a38, 0x10a3a, +0x10a3f, 0x10a48, +0x10a50, 0x10a58, +0x10a60, 0x10a9f, +0x10ac0, 0x10ae6, +0x10aeb, 0x10af6, +0x10b00, 0x10b35, +0x10b39, 0x10b55, +0x10b58, 0x10b72, +0x10b78, 0x10b91, +0x10b99, 0x10b9c, +0x10ba9, 0x10baf, +0x10c00, 0x10c48, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10cfa, 0x10d27, +0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d85, +0x10d8e, 0x10d8f, +0x10e60, 0x10e7e, +0x10e80, 0x10ea9, +0x10eab, 0x10ead, +0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10efc, 0x10f27, +0x10f30, 0x10f59, +0x10f70, 0x10f89, +0x10fb0, 0x10fcb, +0x10fe0, 0x10ff6, +0x11000, 0x1104d, +0x11052, 0x11075, +0x1107f, 0x110c2, +0x110cd, 0x110cd, +0x110d0, 0x110e8, +0x110f0, 0x110f9, +0x11100, 0x11134, +0x11136, 0x11147, +0x11150, 0x11176, +0x11180, 0x111df, +0x111e1, 0x111f4, +0x11200, 0x11211, +0x11213, 0x11241, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a9, +0x112b0, 0x112ea, +0x112f0, 0x112f9, +0x11300, 0x11303, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133b, 0x11344, +0x11347, 0x11348, +0x1134b, 0x1134d, +0x11350, 0x11350, +0x11357, 0x11357, +0x1135d, 0x11363, +0x11366, 0x1136c, +0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d5, +0x113d7, 0x113d8, +0x113e1, 0x113e2, +0x11400, 0x1145b, +0x1145d, 0x11461, +0x11480, 0x114c7, +0x114d0, 0x114d9, +0x11580, 0x115b5, +0x115b8, 0x115dd, +0x11600, 0x11644, +0x11650, 0x11659, +0x11660, 0x1166c, +0x11680, 0x116b9, +0x116c0, 0x116c9, +0x116d0, 0x116e3, +0x11700, 0x1171a, +0x1171d, 0x1172b, +0x11730, 0x11746, +0x11800, 0x1183b, +0x118a0, 0x118f2, +0x118ff, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x11935, +0x11937, 0x11938, +0x1193b, 0x11946, +0x11950, 0x11959, +0x119a0, 0x119a7, +0x119aa, 0x119d7, +0x119da, 0x119e4, +0x11a00, 0x11a47, +0x11a50, 0x11aa2, +0x11ab0, 0x11af8, +0x11b00, 0x11b09, +0x11bc0, 0x11be1, +0x11bf0, 0x11bf9, +0x11c00, 0x11c08, +0x11c0a, 0x11c36, +0x11c38, 0x11c45, +0x11c50, 0x11c6c, +0x11c70, 0x11c8f, +0x11c92, 0x11ca7, +0x11ca9, 0x11cb6, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d47, +0x11d50, 0x11d59, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d8e, +0x11d90, 0x11d91, +0x11d93, 0x11d98, +0x11da0, 0x11da9, +0x11ee0, 0x11ef8, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f5a, +0x11fb0, 0x11fb0, +0x11fc0, 0x11ff1, +0x11fff, 0x12399, +0x12400, 0x1246e, +0x12470, 0x12474, +0x12480, 0x12543, +0x12f90, 0x12ff2, +0x13000, 0x13455, +0x13460, 0x143fa, +0x14400, 0x14646, +0x16100, 0x16139, +0x16800, 0x16a38, +0x16a40, 0x16a5e, +0x16a60, 0x16a69, +0x16a6e, 0x16abe, +0x16ac0, 0x16ac9, +0x16ad0, 0x16aed, +0x16af0, 0x16af5, +0x16b00, 0x16b45, +0x16b50, 0x16b59, +0x16b5b, 0x16b61, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +0x16d40, 0x16d79, +0x16e40, 0x16e9a, +0x16f00, 0x16f4a, +0x16f4f, 0x16f87, +0x16f8f, 0x16f9f, +0x16fe0, 0x16fe4, +0x16ff0, 0x16ff1, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1b000, 0x1b122, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +0x1b170, 0x1b2fb, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1bc9c, 0x1bca3, +0x1cc00, 0x1ccf9, +0x1cd00, 0x1ceb3, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1cf50, 0x1cfc3, +0x1d000, 0x1d0f5, +0x1d100, 0x1d126, +0x1d129, 0x1d1ea, +0x1d200, 0x1d245, +0x1d2c0, 0x1d2d3, +0x1d2e0, 0x1d2f3, +0x1d300, 0x1d356, +0x1d360, 0x1d378, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d7cb, +0x1d7ce, 0x1da8b, +0x1da9b, 0x1da9f, +0x1daa1, 0x1daaf, +0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, +0x1e100, 0x1e12c, +0x1e130, 0x1e13d, +0x1e140, 0x1e149, +0x1e14e, 0x1e14f, +0x1e290, 0x1e2ae, +0x1e2c0, 0x1e2f9, +0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, +0x1e5ff, 0x1e5ff, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +0x1e800, 0x1e8c4, +0x1e8c7, 0x1e8d6, +0x1e900, 0x1e94b, +0x1e950, 0x1e959, +0x1e95e, 0x1e95f, +0x1ec71, 0x1ecb4, +0x1ed01, 0x1ed3d, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x1eef0, 0x1eef1, +0x1f000, 0x1f02b, +0x1f030, 0x1f093, +0x1f0a0, 0x1f0ae, +0x1f0b1, 0x1f0bf, +0x1f0c1, 0x1f0cf, +0x1f0d1, 0x1f0f5, +0x1f100, 0x1f1ad, +0x1f1e6, 0x1f202, +0x1f210, 0x1f23b, +0x1f240, 0x1f248, +0x1f250, 0x1f251, +0x1f260, 0x1f265, +0x1f300, 0x1f6d7, +0x1f6dc, 0x1f6ec, +0x1f6f0, 0x1f6fc, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f800, 0x1f80b, +0x1f810, 0x1f847, +0x1f850, 0x1f859, +0x1f860, 0x1f887, +0x1f890, 0x1f8ad, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, +0x1f900, 0x1fa53, +0x1fa60, 0x1fa6d, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, +0x1fb00, 0x1fb92, +0x1fb94, 0x1fbf9, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +0xe0001, 0xe0001, +0xe0020, 0xe007f, +0xe0100, 0xe01ef, +0xf0000, 0xffffd, +0x100000, 0x10fffd, +}; /* END of CR_Assigned */ + +/* PROPERTY: 'Avestan': Script */ +static const OnigCodePoint +CR_Avestan[] = { 2, +0x10b00, 0x10b35, +0x10b39, 0x10b3f, +}; /* END of CR_Avestan */ + +/* PROPERTY: 'Balinese': Script */ +static const OnigCodePoint +CR_Balinese[] = { 2, +0x1b00, 0x1b4c, +0x1b4e, 0x1b7f, +}; /* END of CR_Balinese */ + +/* PROPERTY: 'Bamum': Script */ +static const OnigCodePoint +CR_Bamum[] = { 2, +0xa6a0, 0xa6f7, +0x16800, 0x16a38, +}; /* END of CR_Bamum */ + +/* PROPERTY: 'Bassa_Vah': Script */ +static const OnigCodePoint +CR_Bassa_Vah[] = { 2, +0x16ad0, 0x16aed, +0x16af0, 0x16af5, +}; /* END of CR_Bassa_Vah */ + +/* PROPERTY: 'Batak': Script */ +static const OnigCodePoint +CR_Batak[] = { 2, +0x1bc0, 0x1bf3, +0x1bfc, 0x1bff, +}; /* END of CR_Batak */ + +/* PROPERTY: 'Bengali': Script */ +static const OnigCodePoint +CR_Bengali[] = { 14, +0x0980, 0x0983, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bc, 0x09c4, +0x09c7, 0x09c8, +0x09cb, 0x09ce, +0x09d7, 0x09d7, +0x09dc, 0x09dd, +0x09df, 0x09e3, +0x09e6, 0x09fe, +}; /* END of CR_Bengali */ + +/* PROPERTY: 'Bhaiksuki': Script */ +static const OnigCodePoint +CR_Bhaiksuki[] = { 4, +0x11c00, 0x11c08, +0x11c0a, 0x11c36, +0x11c38, 0x11c45, +0x11c50, 0x11c6c, +}; /* END of CR_Bhaiksuki */ + +/* PROPERTY: 'Bidi_Control': Binary Property */ +static const OnigCodePoint +CR_Bidi_Control[] = { 4, +0x061c, 0x061c, +0x200e, 0x200f, +0x202a, 0x202e, +0x2066, 0x2069, +}; /* END of CR_Bidi_Control */ + +/* PROPERTY: 'Bopomofo': Script */ +static const OnigCodePoint +CR_Bopomofo[] = { 3, +0x02ea, 0x02eb, +0x3105, 0x312f, +0x31a0, 0x31bf, +}; /* END of CR_Bopomofo */ + +/* PROPERTY: 'Brahmi': Script */ +static const OnigCodePoint +CR_Brahmi[] = { 3, +0x11000, 0x1104d, +0x11052, 0x11075, +0x1107f, 0x1107f, +}; /* END of CR_Brahmi */ + +/* PROPERTY: 'Braille': Script */ +static const OnigCodePoint +CR_Braille[] = { 1, +0x2800, 0x28ff, +}; /* END of CR_Braille */ + +/* PROPERTY: 'Buginese': Script */ +static const OnigCodePoint +CR_Buginese[] = { 2, +0x1a00, 0x1a1b, +0x1a1e, 0x1a1f, +}; /* END of CR_Buginese */ + +/* PROPERTY: 'Buhid': Script */ +static const OnigCodePoint +CR_Buhid[] = { 1, +0x1740, 0x1753, +}; /* END of CR_Buhid */ + +/* PROPERTY: 'C': Major Category */ +static const OnigCodePoint +CR_C[] = { 736, +0x0000, 0x001f, +0x007f, 0x009f, +0x00ad, 0x00ad, +0x0378, 0x0379, +0x0380, 0x0383, +0x038b, 0x038b, +0x038d, 0x038d, +0x03a2, 0x03a2, +0x0530, 0x0530, +0x0557, 0x0558, +0x058b, 0x058c, +0x0590, 0x0590, +0x05c8, 0x05cf, +0x05eb, 0x05ee, +0x05f5, 0x0605, +0x061c, 0x061c, +0x06dd, 0x06dd, +0x070e, 0x070f, +0x074b, 0x074c, +0x07b2, 0x07bf, +0x07fb, 0x07fc, +0x082e, 0x082f, +0x083f, 0x083f, +0x085c, 0x085d, +0x085f, 0x085f, +0x086b, 0x086f, +0x088f, 0x0896, +0x08e2, 0x08e2, +0x0984, 0x0984, +0x098d, 0x098e, +0x0991, 0x0992, +0x09a9, 0x09a9, +0x09b1, 0x09b1, +0x09b3, 0x09b5, +0x09ba, 0x09bb, +0x09c5, 0x09c6, +0x09c9, 0x09ca, +0x09cf, 0x09d6, +0x09d8, 0x09db, +0x09de, 0x09de, +0x09e4, 0x09e5, +0x09ff, 0x0a00, +0x0a04, 0x0a04, +0x0a0b, 0x0a0e, +0x0a11, 0x0a12, +0x0a29, 0x0a29, +0x0a31, 0x0a31, +0x0a34, 0x0a34, +0x0a37, 0x0a37, +0x0a3a, 0x0a3b, +0x0a3d, 0x0a3d, +0x0a43, 0x0a46, +0x0a49, 0x0a4a, +0x0a4e, 0x0a50, +0x0a52, 0x0a58, +0x0a5d, 0x0a5d, +0x0a5f, 0x0a65, +0x0a77, 0x0a80, +0x0a84, 0x0a84, +0x0a8e, 0x0a8e, +0x0a92, 0x0a92, +0x0aa9, 0x0aa9, +0x0ab1, 0x0ab1, +0x0ab4, 0x0ab4, +0x0aba, 0x0abb, +0x0ac6, 0x0ac6, +0x0aca, 0x0aca, +0x0ace, 0x0acf, +0x0ad1, 0x0adf, +0x0ae4, 0x0ae5, +0x0af2, 0x0af8, +0x0b00, 0x0b00, +0x0b04, 0x0b04, +0x0b0d, 0x0b0e, +0x0b11, 0x0b12, +0x0b29, 0x0b29, +0x0b31, 0x0b31, +0x0b34, 0x0b34, +0x0b3a, 0x0b3b, +0x0b45, 0x0b46, +0x0b49, 0x0b4a, +0x0b4e, 0x0b54, +0x0b58, 0x0b5b, +0x0b5e, 0x0b5e, +0x0b64, 0x0b65, +0x0b78, 0x0b81, +0x0b84, 0x0b84, +0x0b8b, 0x0b8d, +0x0b91, 0x0b91, +0x0b96, 0x0b98, +0x0b9b, 0x0b9b, +0x0b9d, 0x0b9d, +0x0ba0, 0x0ba2, +0x0ba5, 0x0ba7, +0x0bab, 0x0bad, +0x0bba, 0x0bbd, +0x0bc3, 0x0bc5, +0x0bc9, 0x0bc9, +0x0bce, 0x0bcf, +0x0bd1, 0x0bd6, +0x0bd8, 0x0be5, +0x0bfb, 0x0bff, +0x0c0d, 0x0c0d, +0x0c11, 0x0c11, +0x0c29, 0x0c29, +0x0c3a, 0x0c3b, +0x0c45, 0x0c45, +0x0c49, 0x0c49, +0x0c4e, 0x0c54, +0x0c57, 0x0c57, +0x0c5b, 0x0c5c, +0x0c5e, 0x0c5f, +0x0c64, 0x0c65, +0x0c70, 0x0c76, +0x0c8d, 0x0c8d, +0x0c91, 0x0c91, +0x0ca9, 0x0ca9, +0x0cb4, 0x0cb4, +0x0cba, 0x0cbb, +0x0cc5, 0x0cc5, +0x0cc9, 0x0cc9, +0x0cce, 0x0cd4, +0x0cd7, 0x0cdc, +0x0cdf, 0x0cdf, +0x0ce4, 0x0ce5, +0x0cf0, 0x0cf0, +0x0cf4, 0x0cff, +0x0d0d, 0x0d0d, +0x0d11, 0x0d11, +0x0d45, 0x0d45, +0x0d49, 0x0d49, +0x0d50, 0x0d53, +0x0d64, 0x0d65, +0x0d80, 0x0d80, +0x0d84, 0x0d84, +0x0d97, 0x0d99, +0x0db2, 0x0db2, +0x0dbc, 0x0dbc, +0x0dbe, 0x0dbf, +0x0dc7, 0x0dc9, +0x0dcb, 0x0dce, +0x0dd5, 0x0dd5, +0x0dd7, 0x0dd7, +0x0de0, 0x0de5, +0x0df0, 0x0df1, +0x0df5, 0x0e00, +0x0e3b, 0x0e3e, +0x0e5c, 0x0e80, +0x0e83, 0x0e83, +0x0e85, 0x0e85, +0x0e8b, 0x0e8b, +0x0ea4, 0x0ea4, +0x0ea6, 0x0ea6, +0x0ebe, 0x0ebf, +0x0ec5, 0x0ec5, +0x0ec7, 0x0ec7, +0x0ecf, 0x0ecf, +0x0eda, 0x0edb, +0x0ee0, 0x0eff, +0x0f48, 0x0f48, +0x0f6d, 0x0f70, +0x0f98, 0x0f98, +0x0fbd, 0x0fbd, +0x0fcd, 0x0fcd, +0x0fdb, 0x0fff, +0x10c6, 0x10c6, +0x10c8, 0x10cc, +0x10ce, 0x10cf, +0x1249, 0x1249, +0x124e, 0x124f, +0x1257, 0x1257, +0x1259, 0x1259, +0x125e, 0x125f, +0x1289, 0x1289, +0x128e, 0x128f, +0x12b1, 0x12b1, +0x12b6, 0x12b7, +0x12bf, 0x12bf, +0x12c1, 0x12c1, +0x12c6, 0x12c7, +0x12d7, 0x12d7, +0x1311, 0x1311, +0x1316, 0x1317, +0x135b, 0x135c, +0x137d, 0x137f, +0x139a, 0x139f, +0x13f6, 0x13f7, +0x13fe, 0x13ff, +0x169d, 0x169f, +0x16f9, 0x16ff, +0x1716, 0x171e, +0x1737, 0x173f, +0x1754, 0x175f, +0x176d, 0x176d, +0x1771, 0x1771, +0x1774, 0x177f, +0x17de, 0x17df, +0x17ea, 0x17ef, +0x17fa, 0x17ff, +0x180e, 0x180e, +0x181a, 0x181f, +0x1879, 0x187f, +0x18ab, 0x18af, +0x18f6, 0x18ff, +0x191f, 0x191f, +0x192c, 0x192f, +0x193c, 0x193f, +0x1941, 0x1943, +0x196e, 0x196f, +0x1975, 0x197f, +0x19ac, 0x19af, +0x19ca, 0x19cf, +0x19db, 0x19dd, +0x1a1c, 0x1a1d, +0x1a5f, 0x1a5f, +0x1a7d, 0x1a7e, +0x1a8a, 0x1a8f, +0x1a9a, 0x1a9f, +0x1aae, 0x1aaf, +0x1acf, 0x1aff, +0x1b4d, 0x1b4d, +0x1bf4, 0x1bfb, +0x1c38, 0x1c3a, +0x1c4a, 0x1c4c, +0x1c8b, 0x1c8f, +0x1cbb, 0x1cbc, +0x1cc8, 0x1ccf, +0x1cfb, 0x1cff, +0x1f16, 0x1f17, +0x1f1e, 0x1f1f, +0x1f46, 0x1f47, +0x1f4e, 0x1f4f, +0x1f58, 0x1f58, +0x1f5a, 0x1f5a, +0x1f5c, 0x1f5c, +0x1f5e, 0x1f5e, +0x1f7e, 0x1f7f, +0x1fb5, 0x1fb5, +0x1fc5, 0x1fc5, +0x1fd4, 0x1fd5, +0x1fdc, 0x1fdc, +0x1ff0, 0x1ff1, +0x1ff5, 0x1ff5, +0x1fff, 0x1fff, +0x200b, 0x200f, +0x202a, 0x202e, +0x2060, 0x206f, +0x2072, 0x2073, +0x208f, 0x208f, +0x209d, 0x209f, +0x20c1, 0x20cf, +0x20f1, 0x20ff, +0x218c, 0x218f, +0x242a, 0x243f, +0x244b, 0x245f, +0x2b74, 0x2b75, +0x2b96, 0x2b96, +0x2cf4, 0x2cf8, +0x2d26, 0x2d26, +0x2d28, 0x2d2c, +0x2d2e, 0x2d2f, +0x2d68, 0x2d6e, +0x2d71, 0x2d7e, +0x2d97, 0x2d9f, +0x2da7, 0x2da7, +0x2daf, 0x2daf, +0x2db7, 0x2db7, +0x2dbf, 0x2dbf, +0x2dc7, 0x2dc7, +0x2dcf, 0x2dcf, +0x2dd7, 0x2dd7, +0x2ddf, 0x2ddf, +0x2e5e, 0x2e7f, +0x2e9a, 0x2e9a, +0x2ef4, 0x2eff, +0x2fd6, 0x2fef, +0x3040, 0x3040, +0x3097, 0x3098, +0x3100, 0x3104, +0x3130, 0x3130, +0x318f, 0x318f, +0x31e6, 0x31ee, +0x321f, 0x321f, +0xa48d, 0xa48f, +0xa4c7, 0xa4cf, +0xa62c, 0xa63f, +0xa6f8, 0xa6ff, +0xa7ce, 0xa7cf, +0xa7d2, 0xa7d2, +0xa7d4, 0xa7d4, +0xa7dd, 0xa7f1, +0xa82d, 0xa82f, +0xa83a, 0xa83f, +0xa878, 0xa87f, +0xa8c6, 0xa8cd, +0xa8da, 0xa8df, +0xa954, 0xa95e, +0xa97d, 0xa97f, +0xa9ce, 0xa9ce, +0xa9da, 0xa9dd, +0xa9ff, 0xa9ff, +0xaa37, 0xaa3f, +0xaa4e, 0xaa4f, +0xaa5a, 0xaa5b, +0xaac3, 0xaada, +0xaaf7, 0xab00, +0xab07, 0xab08, +0xab0f, 0xab10, +0xab17, 0xab1f, +0xab27, 0xab27, +0xab2f, 0xab2f, +0xab6c, 0xab6f, +0xabee, 0xabef, +0xabfa, 0xabff, +0xd7a4, 0xd7af, +0xd7c7, 0xd7ca, +0xd7fc, 0xf8ff, +0xfa6e, 0xfa6f, +0xfada, 0xfaff, +0xfb07, 0xfb12, +0xfb18, 0xfb1c, +0xfb37, 0xfb37, +0xfb3d, 0xfb3d, +0xfb3f, 0xfb3f, +0xfb42, 0xfb42, +0xfb45, 0xfb45, +0xfbc3, 0xfbd2, +0xfd90, 0xfd91, +0xfdc8, 0xfdce, +0xfdd0, 0xfdef, +0xfe1a, 0xfe1f, +0xfe53, 0xfe53, +0xfe67, 0xfe67, +0xfe6c, 0xfe6f, +0xfe75, 0xfe75, +0xfefd, 0xff00, +0xffbf, 0xffc1, +0xffc8, 0xffc9, +0xffd0, 0xffd1, +0xffd8, 0xffd9, +0xffdd, 0xffdf, +0xffe7, 0xffe7, +0xffef, 0xfffb, +0xfffe, 0xffff, +0x1000c, 0x1000c, +0x10027, 0x10027, +0x1003b, 0x1003b, +0x1003e, 0x1003e, +0x1004e, 0x1004f, +0x1005e, 0x1007f, +0x100fb, 0x100ff, +0x10103, 0x10106, +0x10134, 0x10136, +0x1018f, 0x1018f, +0x1019d, 0x1019f, +0x101a1, 0x101cf, +0x101fe, 0x1027f, +0x1029d, 0x1029f, +0x102d1, 0x102df, +0x102fc, 0x102ff, +0x10324, 0x1032c, +0x1034b, 0x1034f, +0x1037b, 0x1037f, +0x1039e, 0x1039e, +0x103c4, 0x103c7, +0x103d6, 0x103ff, +0x1049e, 0x1049f, +0x104aa, 0x104af, +0x104d4, 0x104d7, +0x104fc, 0x104ff, +0x10528, 0x1052f, +0x10564, 0x1056e, +0x1057b, 0x1057b, +0x1058b, 0x1058b, +0x10593, 0x10593, +0x10596, 0x10596, +0x105a2, 0x105a2, +0x105b2, 0x105b2, +0x105ba, 0x105ba, +0x105bd, 0x105bf, +0x105f4, 0x105ff, +0x10737, 0x1073f, +0x10756, 0x1075f, +0x10768, 0x1077f, +0x10786, 0x10786, +0x107b1, 0x107b1, +0x107bb, 0x107ff, +0x10806, 0x10807, +0x10809, 0x10809, +0x10836, 0x10836, +0x10839, 0x1083b, +0x1083d, 0x1083e, +0x10856, 0x10856, +0x1089f, 0x108a6, +0x108b0, 0x108df, +0x108f3, 0x108f3, +0x108f6, 0x108fa, +0x1091c, 0x1091e, +0x1093a, 0x1093e, +0x10940, 0x1097f, +0x109b8, 0x109bb, +0x109d0, 0x109d1, +0x10a04, 0x10a04, +0x10a07, 0x10a0b, +0x10a14, 0x10a14, +0x10a18, 0x10a18, +0x10a36, 0x10a37, +0x10a3b, 0x10a3e, +0x10a49, 0x10a4f, +0x10a59, 0x10a5f, +0x10aa0, 0x10abf, +0x10ae7, 0x10aea, +0x10af7, 0x10aff, +0x10b36, 0x10b38, +0x10b56, 0x10b57, +0x10b73, 0x10b77, +0x10b92, 0x10b98, +0x10b9d, 0x10ba8, +0x10bb0, 0x10bff, +0x10c49, 0x10c7f, +0x10cb3, 0x10cbf, +0x10cf3, 0x10cf9, +0x10d28, 0x10d2f, +0x10d3a, 0x10d3f, +0x10d66, 0x10d68, +0x10d86, 0x10d8d, +0x10d90, 0x10e5f, +0x10e7f, 0x10e7f, +0x10eaa, 0x10eaa, +0x10eae, 0x10eaf, +0x10eb2, 0x10ec1, +0x10ec5, 0x10efb, +0x10f28, 0x10f2f, +0x10f5a, 0x10f6f, +0x10f8a, 0x10faf, +0x10fcc, 0x10fdf, +0x10ff7, 0x10fff, +0x1104e, 0x11051, +0x11076, 0x1107e, +0x110bd, 0x110bd, +0x110c3, 0x110cf, +0x110e9, 0x110ef, +0x110fa, 0x110ff, +0x11135, 0x11135, +0x11148, 0x1114f, +0x11177, 0x1117f, +0x111e0, 0x111e0, +0x111f5, 0x111ff, +0x11212, 0x11212, +0x11242, 0x1127f, +0x11287, 0x11287, +0x11289, 0x11289, +0x1128e, 0x1128e, +0x1129e, 0x1129e, +0x112aa, 0x112af, +0x112eb, 0x112ef, +0x112fa, 0x112ff, +0x11304, 0x11304, +0x1130d, 0x1130e, +0x11311, 0x11312, +0x11329, 0x11329, +0x11331, 0x11331, +0x11334, 0x11334, +0x1133a, 0x1133a, +0x11345, 0x11346, +0x11349, 0x1134a, +0x1134e, 0x1134f, +0x11351, 0x11356, +0x11358, 0x1135c, +0x11364, 0x11365, +0x1136d, 0x1136f, +0x11375, 0x1137f, +0x1138a, 0x1138a, +0x1138c, 0x1138d, +0x1138f, 0x1138f, +0x113b6, 0x113b6, +0x113c1, 0x113c1, +0x113c3, 0x113c4, +0x113c6, 0x113c6, +0x113cb, 0x113cb, +0x113d6, 0x113d6, +0x113d9, 0x113e0, +0x113e3, 0x113ff, +0x1145c, 0x1145c, +0x11462, 0x1147f, +0x114c8, 0x114cf, +0x114da, 0x1157f, +0x115b6, 0x115b7, +0x115de, 0x115ff, +0x11645, 0x1164f, +0x1165a, 0x1165f, +0x1166d, 0x1167f, +0x116ba, 0x116bf, +0x116ca, 0x116cf, +0x116e4, 0x116ff, +0x1171b, 0x1171c, +0x1172c, 0x1172f, +0x11747, 0x117ff, +0x1183c, 0x1189f, +0x118f3, 0x118fe, +0x11907, 0x11908, +0x1190a, 0x1190b, +0x11914, 0x11914, +0x11917, 0x11917, +0x11936, 0x11936, +0x11939, 0x1193a, +0x11947, 0x1194f, +0x1195a, 0x1199f, +0x119a8, 0x119a9, +0x119d8, 0x119d9, +0x119e5, 0x119ff, +0x11a48, 0x11a4f, +0x11aa3, 0x11aaf, +0x11af9, 0x11aff, +0x11b0a, 0x11bbf, +0x11be2, 0x11bef, +0x11bfa, 0x11bff, +0x11c09, 0x11c09, +0x11c37, 0x11c37, +0x11c46, 0x11c4f, +0x11c6d, 0x11c6f, +0x11c90, 0x11c91, +0x11ca8, 0x11ca8, +0x11cb7, 0x11cff, +0x11d07, 0x11d07, +0x11d0a, 0x11d0a, +0x11d37, 0x11d39, +0x11d3b, 0x11d3b, +0x11d3e, 0x11d3e, +0x11d48, 0x11d4f, +0x11d5a, 0x11d5f, +0x11d66, 0x11d66, +0x11d69, 0x11d69, +0x11d8f, 0x11d8f, +0x11d92, 0x11d92, +0x11d99, 0x11d9f, +0x11daa, 0x11edf, +0x11ef9, 0x11eff, +0x11f11, 0x11f11, +0x11f3b, 0x11f3d, +0x11f5b, 0x11faf, +0x11fb1, 0x11fbf, +0x11ff2, 0x11ffe, +0x1239a, 0x123ff, +0x1246f, 0x1246f, +0x12475, 0x1247f, +0x12544, 0x12f8f, +0x12ff3, 0x12fff, +0x13430, 0x1343f, +0x13456, 0x1345f, +0x143fb, 0x143ff, +0x14647, 0x160ff, +0x1613a, 0x167ff, +0x16a39, 0x16a3f, +0x16a5f, 0x16a5f, +0x16a6a, 0x16a6d, +0x16abf, 0x16abf, +0x16aca, 0x16acf, +0x16aee, 0x16aef, +0x16af6, 0x16aff, +0x16b46, 0x16b4f, +0x16b5a, 0x16b5a, +0x16b62, 0x16b62, +0x16b78, 0x16b7c, +0x16b90, 0x16d3f, +0x16d7a, 0x16e3f, +0x16e9b, 0x16eff, +0x16f4b, 0x16f4e, +0x16f88, 0x16f8e, +0x16fa0, 0x16fdf, +0x16fe5, 0x16fef, +0x16ff2, 0x16fff, +0x187f8, 0x187ff, +0x18cd6, 0x18cfe, +0x18d09, 0x1afef, +0x1aff4, 0x1aff4, +0x1affc, 0x1affc, +0x1afff, 0x1afff, +0x1b123, 0x1b131, +0x1b133, 0x1b14f, +0x1b153, 0x1b154, +0x1b156, 0x1b163, +0x1b168, 0x1b16f, +0x1b2fc, 0x1bbff, +0x1bc6b, 0x1bc6f, +0x1bc7d, 0x1bc7f, +0x1bc89, 0x1bc8f, +0x1bc9a, 0x1bc9b, +0x1bca0, 0x1cbff, +0x1ccfa, 0x1ccff, +0x1ceb4, 0x1ceff, +0x1cf2e, 0x1cf2f, +0x1cf47, 0x1cf4f, +0x1cfc4, 0x1cfff, +0x1d0f6, 0x1d0ff, +0x1d127, 0x1d128, +0x1d173, 0x1d17a, +0x1d1eb, 0x1d1ff, +0x1d246, 0x1d2bf, +0x1d2d4, 0x1d2df, +0x1d2f4, 0x1d2ff, +0x1d357, 0x1d35f, +0x1d379, 0x1d3ff, +0x1d455, 0x1d455, +0x1d49d, 0x1d49d, +0x1d4a0, 0x1d4a1, +0x1d4a3, 0x1d4a4, +0x1d4a7, 0x1d4a8, +0x1d4ad, 0x1d4ad, +0x1d4ba, 0x1d4ba, +0x1d4bc, 0x1d4bc, +0x1d4c4, 0x1d4c4, +0x1d506, 0x1d506, +0x1d50b, 0x1d50c, +0x1d515, 0x1d515, +0x1d51d, 0x1d51d, +0x1d53a, 0x1d53a, +0x1d53f, 0x1d53f, +0x1d545, 0x1d545, +0x1d547, 0x1d549, +0x1d551, 0x1d551, +0x1d6a6, 0x1d6a7, +0x1d7cc, 0x1d7cd, +0x1da8c, 0x1da9a, +0x1daa0, 0x1daa0, +0x1dab0, 0x1deff, +0x1df1f, 0x1df24, +0x1df2b, 0x1dfff, +0x1e007, 0x1e007, +0x1e019, 0x1e01a, +0x1e022, 0x1e022, +0x1e025, 0x1e025, +0x1e02b, 0x1e02f, +0x1e06e, 0x1e08e, +0x1e090, 0x1e0ff, +0x1e12d, 0x1e12f, +0x1e13e, 0x1e13f, +0x1e14a, 0x1e14d, +0x1e150, 0x1e28f, +0x1e2af, 0x1e2bf, +0x1e2fa, 0x1e2fe, +0x1e300, 0x1e4cf, +0x1e4fa, 0x1e5cf, +0x1e5fb, 0x1e5fe, +0x1e600, 0x1e7df, +0x1e7e7, 0x1e7e7, +0x1e7ec, 0x1e7ec, +0x1e7ef, 0x1e7ef, +0x1e7ff, 0x1e7ff, +0x1e8c5, 0x1e8c6, +0x1e8d7, 0x1e8ff, +0x1e94c, 0x1e94f, +0x1e95a, 0x1e95d, +0x1e960, 0x1ec70, +0x1ecb5, 0x1ed00, +0x1ed3e, 0x1edff, +0x1ee04, 0x1ee04, +0x1ee20, 0x1ee20, +0x1ee23, 0x1ee23, +0x1ee25, 0x1ee26, +0x1ee28, 0x1ee28, +0x1ee33, 0x1ee33, +0x1ee38, 0x1ee38, +0x1ee3a, 0x1ee3a, +0x1ee3c, 0x1ee41, +0x1ee43, 0x1ee46, +0x1ee48, 0x1ee48, +0x1ee4a, 0x1ee4a, +0x1ee4c, 0x1ee4c, +0x1ee50, 0x1ee50, +0x1ee53, 0x1ee53, +0x1ee55, 0x1ee56, +0x1ee58, 0x1ee58, +0x1ee5a, 0x1ee5a, +0x1ee5c, 0x1ee5c, +0x1ee5e, 0x1ee5e, +0x1ee60, 0x1ee60, +0x1ee63, 0x1ee63, +0x1ee65, 0x1ee66, +0x1ee6b, 0x1ee6b, +0x1ee73, 0x1ee73, +0x1ee78, 0x1ee78, +0x1ee7d, 0x1ee7d, +0x1ee7f, 0x1ee7f, +0x1ee8a, 0x1ee8a, +0x1ee9c, 0x1eea0, +0x1eea4, 0x1eea4, +0x1eeaa, 0x1eeaa, +0x1eebc, 0x1eeef, +0x1eef2, 0x1efff, +0x1f02c, 0x1f02f, +0x1f094, 0x1f09f, +0x1f0af, 0x1f0b0, +0x1f0c0, 0x1f0c0, +0x1f0d0, 0x1f0d0, +0x1f0f6, 0x1f0ff, +0x1f1ae, 0x1f1e5, +0x1f203, 0x1f20f, +0x1f23c, 0x1f23f, +0x1f249, 0x1f24f, +0x1f252, 0x1f25f, +0x1f266, 0x1f2ff, +0x1f6d8, 0x1f6db, +0x1f6ed, 0x1f6ef, +0x1f6fd, 0x1f6ff, +0x1f777, 0x1f77a, +0x1f7da, 0x1f7df, +0x1f7ec, 0x1f7ef, +0x1f7f1, 0x1f7ff, +0x1f80c, 0x1f80f, +0x1f848, 0x1f84f, +0x1f85a, 0x1f85f, +0x1f888, 0x1f88f, +0x1f8ae, 0x1f8af, +0x1f8bc, 0x1f8bf, +0x1f8c2, 0x1f8ff, +0x1fa54, 0x1fa5f, +0x1fa6e, 0x1fa6f, +0x1fa7d, 0x1fa7f, +0x1fa8a, 0x1fa8e, +0x1fac7, 0x1facd, +0x1fadd, 0x1fade, +0x1faea, 0x1faef, +0x1faf9, 0x1faff, +0x1fb93, 0x1fb93, +0x1fbfa, 0x1ffff, +0x2a6e0, 0x2a6ff, +0x2b73a, 0x2b73f, +0x2b81e, 0x2b81f, +0x2cea2, 0x2ceaf, +0x2ebe1, 0x2ebef, +0x2ee5e, 0x2f7ff, +0x2fa1e, 0x2ffff, +0x3134b, 0x3134f, +0x323b0, 0xe00ff, +0xe01f0, 0x10ffff, +}; /* END of CR_C */ + +/* PROPERTY: 'Canadian_Aboriginal': Script */ +static const OnigCodePoint +CR_Canadian_Aboriginal[] = { 3, +0x1400, 0x167f, +0x18b0, 0x18f5, +0x11ab0, 0x11abf, +}; /* END of CR_Canadian_Aboriginal */ + +/* PROPERTY: 'Carian': Script */ +static const OnigCodePoint +CR_Carian[] = { 1, +0x102a0, 0x102d0, +}; /* END of CR_Carian */ + +/* PROPERTY: 'Case_Ignorable': Derived Property */ +static const OnigCodePoint +CR_Case_Ignorable[] = { 452, +0x0027, 0x0027, +0x002e, 0x002e, +0x003a, 0x003a, +0x005e, 0x005e, +0x0060, 0x0060, +0x00a8, 0x00a8, +0x00ad, 0x00ad, +0x00af, 0x00af, +0x00b4, 0x00b4, +0x00b7, 0x00b8, +0x02b0, 0x036f, +0x0374, 0x0375, +0x037a, 0x037a, +0x0384, 0x0385, +0x0387, 0x0387, +0x0483, 0x0489, +0x0559, 0x0559, +0x055f, 0x055f, +0x0591, 0x05bd, +0x05bf, 0x05bf, +0x05c1, 0x05c2, +0x05c4, 0x05c5, +0x05c7, 0x05c7, +0x05f4, 0x05f4, +0x0600, 0x0605, +0x0610, 0x061a, +0x061c, 0x061c, +0x0640, 0x0640, +0x064b, 0x065f, +0x0670, 0x0670, +0x06d6, 0x06dd, +0x06df, 0x06e8, +0x06ea, 0x06ed, +0x070f, 0x070f, +0x0711, 0x0711, +0x0730, 0x074a, +0x07a6, 0x07b0, +0x07eb, 0x07f5, +0x07fa, 0x07fa, +0x07fd, 0x07fd, +0x0816, 0x082d, +0x0859, 0x085b, +0x0888, 0x0888, +0x0890, 0x0891, +0x0897, 0x089f, +0x08c9, 0x0902, +0x093a, 0x093a, +0x093c, 0x093c, +0x0941, 0x0948, +0x094d, 0x094d, +0x0951, 0x0957, +0x0962, 0x0963, +0x0971, 0x0971, +0x0981, 0x0981, +0x09bc, 0x09bc, +0x09c1, 0x09c4, +0x09cd, 0x09cd, +0x09e2, 0x09e3, +0x09fe, 0x09fe, +0x0a01, 0x0a02, +0x0a3c, 0x0a3c, +0x0a41, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4d, +0x0a51, 0x0a51, +0x0a70, 0x0a71, +0x0a75, 0x0a75, +0x0a81, 0x0a82, +0x0abc, 0x0abc, +0x0ac1, 0x0ac5, +0x0ac7, 0x0ac8, +0x0acd, 0x0acd, +0x0ae2, 0x0ae3, +0x0afa, 0x0aff, +0x0b01, 0x0b01, +0x0b3c, 0x0b3c, +0x0b3f, 0x0b3f, +0x0b41, 0x0b44, +0x0b4d, 0x0b4d, +0x0b55, 0x0b56, +0x0b62, 0x0b63, +0x0b82, 0x0b82, +0x0bc0, 0x0bc0, +0x0bcd, 0x0bcd, +0x0c00, 0x0c00, +0x0c04, 0x0c04, +0x0c3c, 0x0c3c, +0x0c3e, 0x0c40, +0x0c46, 0x0c48, +0x0c4a, 0x0c4d, +0x0c55, 0x0c56, +0x0c62, 0x0c63, +0x0c81, 0x0c81, +0x0cbc, 0x0cbc, +0x0cbf, 0x0cbf, +0x0cc6, 0x0cc6, +0x0ccc, 0x0ccd, +0x0ce2, 0x0ce3, +0x0d00, 0x0d01, +0x0d3b, 0x0d3c, +0x0d41, 0x0d44, +0x0d4d, 0x0d4d, +0x0d62, 0x0d63, +0x0d81, 0x0d81, +0x0dca, 0x0dca, +0x0dd2, 0x0dd4, +0x0dd6, 0x0dd6, +0x0e31, 0x0e31, +0x0e34, 0x0e3a, +0x0e46, 0x0e4e, +0x0eb1, 0x0eb1, +0x0eb4, 0x0ebc, +0x0ec6, 0x0ec6, +0x0ec8, 0x0ece, +0x0f18, 0x0f19, +0x0f35, 0x0f35, +0x0f37, 0x0f37, +0x0f39, 0x0f39, +0x0f71, 0x0f7e, +0x0f80, 0x0f84, +0x0f86, 0x0f87, +0x0f8d, 0x0f97, +0x0f99, 0x0fbc, +0x0fc6, 0x0fc6, +0x102d, 0x1030, +0x1032, 0x1037, +0x1039, 0x103a, +0x103d, 0x103e, +0x1058, 0x1059, +0x105e, 0x1060, +0x1071, 0x1074, +0x1082, 0x1082, +0x1085, 0x1086, +0x108d, 0x108d, +0x109d, 0x109d, +0x10fc, 0x10fc, +0x135d, 0x135f, +0x1712, 0x1714, +0x1732, 0x1733, +0x1752, 0x1753, +0x1772, 0x1773, +0x17b4, 0x17b5, +0x17b7, 0x17bd, +0x17c6, 0x17c6, +0x17c9, 0x17d3, +0x17d7, 0x17d7, +0x17dd, 0x17dd, +0x180b, 0x180f, +0x1843, 0x1843, +0x1885, 0x1886, +0x18a9, 0x18a9, +0x1920, 0x1922, +0x1927, 0x1928, +0x1932, 0x1932, +0x1939, 0x193b, +0x1a17, 0x1a18, +0x1a1b, 0x1a1b, +0x1a56, 0x1a56, +0x1a58, 0x1a5e, +0x1a60, 0x1a60, +0x1a62, 0x1a62, +0x1a65, 0x1a6c, +0x1a73, 0x1a7c, +0x1a7f, 0x1a7f, +0x1aa7, 0x1aa7, +0x1ab0, 0x1ace, +0x1b00, 0x1b03, +0x1b34, 0x1b34, +0x1b36, 0x1b3a, +0x1b3c, 0x1b3c, +0x1b42, 0x1b42, +0x1b6b, 0x1b73, +0x1b80, 0x1b81, +0x1ba2, 0x1ba5, +0x1ba8, 0x1ba9, +0x1bab, 0x1bad, +0x1be6, 0x1be6, +0x1be8, 0x1be9, +0x1bed, 0x1bed, +0x1bef, 0x1bf1, +0x1c2c, 0x1c33, +0x1c36, 0x1c37, +0x1c78, 0x1c7d, +0x1cd0, 0x1cd2, +0x1cd4, 0x1ce0, +0x1ce2, 0x1ce8, +0x1ced, 0x1ced, +0x1cf4, 0x1cf4, +0x1cf8, 0x1cf9, +0x1d2c, 0x1d6a, +0x1d78, 0x1d78, +0x1d9b, 0x1dff, +0x1fbd, 0x1fbd, +0x1fbf, 0x1fc1, +0x1fcd, 0x1fcf, +0x1fdd, 0x1fdf, +0x1fed, 0x1fef, +0x1ffd, 0x1ffe, +0x200b, 0x200f, +0x2018, 0x2019, +0x2024, 0x2024, +0x2027, 0x2027, +0x202a, 0x202e, +0x2060, 0x2064, +0x2066, 0x206f, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x20d0, 0x20f0, +0x2c7c, 0x2c7d, +0x2cef, 0x2cf1, +0x2d6f, 0x2d6f, +0x2d7f, 0x2d7f, +0x2de0, 0x2dff, +0x2e2f, 0x2e2f, +0x3005, 0x3005, +0x302a, 0x302d, +0x3031, 0x3035, +0x303b, 0x303b, +0x3099, 0x309e, +0x30fc, 0x30fe, +0xa015, 0xa015, +0xa4f8, 0xa4fd, +0xa60c, 0xa60c, +0xa66f, 0xa672, +0xa674, 0xa67d, +0xa67f, 0xa67f, +0xa69c, 0xa69f, +0xa6f0, 0xa6f1, +0xa700, 0xa721, +0xa770, 0xa770, +0xa788, 0xa78a, +0xa7f2, 0xa7f4, +0xa7f8, 0xa7f9, +0xa802, 0xa802, +0xa806, 0xa806, +0xa80b, 0xa80b, +0xa825, 0xa826, +0xa82c, 0xa82c, +0xa8c4, 0xa8c5, +0xa8e0, 0xa8f1, +0xa8ff, 0xa8ff, +0xa926, 0xa92d, +0xa947, 0xa951, +0xa980, 0xa982, +0xa9b3, 0xa9b3, +0xa9b6, 0xa9b9, +0xa9bc, 0xa9bd, +0xa9cf, 0xa9cf, +0xa9e5, 0xa9e6, +0xaa29, 0xaa2e, +0xaa31, 0xaa32, +0xaa35, 0xaa36, +0xaa43, 0xaa43, +0xaa4c, 0xaa4c, +0xaa70, 0xaa70, +0xaa7c, 0xaa7c, +0xaab0, 0xaab0, +0xaab2, 0xaab4, +0xaab7, 0xaab8, +0xaabe, 0xaabf, +0xaac1, 0xaac1, +0xaadd, 0xaadd, +0xaaec, 0xaaed, +0xaaf3, 0xaaf4, +0xaaf6, 0xaaf6, +0xab5b, 0xab5f, +0xab69, 0xab6b, +0xabe5, 0xabe5, +0xabe8, 0xabe8, +0xabed, 0xabed, +0xfb1e, 0xfb1e, +0xfbb2, 0xfbc2, +0xfe00, 0xfe0f, +0xfe13, 0xfe13, +0xfe20, 0xfe2f, +0xfe52, 0xfe52, +0xfe55, 0xfe55, +0xfeff, 0xfeff, +0xff07, 0xff07, +0xff0e, 0xff0e, +0xff1a, 0xff1a, +0xff3e, 0xff3e, +0xff40, 0xff40, +0xff70, 0xff70, +0xff9e, 0xff9f, +0xffe3, 0xffe3, +0xfff9, 0xfffb, +0x101fd, 0x101fd, +0x102e0, 0x102e0, +0x10376, 0x1037a, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10a01, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a0f, +0x10a38, 0x10a3a, +0x10a3f, 0x10a3f, +0x10ae5, 0x10ae6, +0x10d24, 0x10d27, +0x10d4e, 0x10d4e, +0x10d69, 0x10d6d, +0x10d6f, 0x10d6f, +0x10eab, 0x10eac, +0x10efc, 0x10eff, +0x10f46, 0x10f50, +0x10f82, 0x10f85, +0x11001, 0x11001, +0x11038, 0x11046, +0x11070, 0x11070, +0x11073, 0x11074, +0x1107f, 0x11081, +0x110b3, 0x110b6, +0x110b9, 0x110ba, +0x110bd, 0x110bd, +0x110c2, 0x110c2, +0x110cd, 0x110cd, +0x11100, 0x11102, +0x11127, 0x1112b, +0x1112d, 0x11134, +0x11173, 0x11173, +0x11180, 0x11181, +0x111b6, 0x111be, +0x111c9, 0x111cc, +0x111cf, 0x111cf, +0x1122f, 0x11231, +0x11234, 0x11234, +0x11236, 0x11237, +0x1123e, 0x1123e, +0x11241, 0x11241, +0x112df, 0x112df, +0x112e3, 0x112ea, +0x11300, 0x11301, +0x1133b, 0x1133c, +0x11340, 0x11340, +0x11366, 0x1136c, +0x11370, 0x11374, +0x113bb, 0x113c0, +0x113ce, 0x113ce, +0x113d0, 0x113d0, +0x113d2, 0x113d2, +0x113e1, 0x113e2, +0x11438, 0x1143f, +0x11442, 0x11444, +0x11446, 0x11446, +0x1145e, 0x1145e, +0x114b3, 0x114b8, +0x114ba, 0x114ba, +0x114bf, 0x114c0, +0x114c2, 0x114c3, +0x115b2, 0x115b5, +0x115bc, 0x115bd, +0x115bf, 0x115c0, +0x115dc, 0x115dd, +0x11633, 0x1163a, +0x1163d, 0x1163d, +0x1163f, 0x11640, +0x116ab, 0x116ab, +0x116ad, 0x116ad, +0x116b0, 0x116b5, +0x116b7, 0x116b7, +0x1171d, 0x1171d, +0x1171f, 0x1171f, +0x11722, 0x11725, +0x11727, 0x1172b, +0x1182f, 0x11837, +0x11839, 0x1183a, +0x1193b, 0x1193c, +0x1193e, 0x1193e, +0x11943, 0x11943, +0x119d4, 0x119d7, +0x119da, 0x119db, +0x119e0, 0x119e0, +0x11a01, 0x11a0a, +0x11a33, 0x11a38, +0x11a3b, 0x11a3e, +0x11a47, 0x11a47, +0x11a51, 0x11a56, +0x11a59, 0x11a5b, +0x11a8a, 0x11a96, +0x11a98, 0x11a99, +0x11c30, 0x11c36, +0x11c38, 0x11c3d, +0x11c3f, 0x11c3f, +0x11c92, 0x11ca7, +0x11caa, 0x11cb0, +0x11cb2, 0x11cb3, +0x11cb5, 0x11cb6, +0x11d31, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d45, +0x11d47, 0x11d47, +0x11d90, 0x11d91, +0x11d95, 0x11d95, +0x11d97, 0x11d97, +0x11ef3, 0x11ef4, +0x11f00, 0x11f01, +0x11f36, 0x11f3a, +0x11f40, 0x11f40, +0x11f42, 0x11f42, +0x11f5a, 0x11f5a, +0x13430, 0x13440, +0x13447, 0x13455, +0x1611e, 0x16129, +0x1612d, 0x1612f, +0x16af0, 0x16af4, +0x16b30, 0x16b36, +0x16b40, 0x16b43, +0x16d40, 0x16d42, +0x16d6b, 0x16d6c, +0x16f4f, 0x16f4f, +0x16f8f, 0x16f9f, +0x16fe0, 0x16fe1, +0x16fe3, 0x16fe4, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1bc9d, 0x1bc9e, +0x1bca0, 0x1bca3, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1d167, 0x1d169, +0x1d173, 0x1d182, +0x1d185, 0x1d18b, +0x1d1aa, 0x1d1ad, +0x1d242, 0x1d244, +0x1da00, 0x1da36, +0x1da3b, 0x1da6c, +0x1da75, 0x1da75, +0x1da84, 0x1da84, +0x1da9b, 0x1da9f, +0x1daa1, 0x1daaf, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, +0x1e130, 0x1e13d, +0x1e2ae, 0x1e2ae, +0x1e2ec, 0x1e2ef, +0x1e4eb, 0x1e4ef, +0x1e5ee, 0x1e5ef, +0x1e8d0, 0x1e8d6, +0x1e944, 0x1e94b, +0x1f3fb, 0x1f3ff, +0xe0001, 0xe0001, +0xe0020, 0xe007f, +0xe0100, 0xe01ef, +}; /* END of CR_Case_Ignorable */ + +/* PROPERTY: 'Cased': Derived Property */ +static const OnigCodePoint +CR_Cased[] = { 159, +0x0041, 0x005a, +0x0061, 0x007a, +0x00aa, 0x00aa, +0x00b5, 0x00b5, +0x00ba, 0x00ba, +0x00c0, 0x00d6, +0x00d8, 0x00f6, +0x00f8, 0x01ba, +0x01bc, 0x01bf, +0x01c4, 0x0293, +0x0295, 0x02b8, +0x02c0, 0x02c1, +0x02e0, 0x02e4, +0x0345, 0x0345, +0x0370, 0x0373, +0x0376, 0x0377, +0x037a, 0x037d, +0x037f, 0x037f, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x03f5, +0x03f7, 0x0481, +0x048a, 0x052f, +0x0531, 0x0556, +0x0560, 0x0588, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x10fa, +0x10fc, 0x10ff, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1c80, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1d00, 0x1dbf, +0x1e00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fbc, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fcc, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fe0, 0x1fec, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffc, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x2102, 0x2102, +0x2107, 0x2107, +0x210a, 0x2113, +0x2115, 0x2115, +0x2119, 0x211d, +0x2124, 0x2124, +0x2126, 0x2126, +0x2128, 0x2128, +0x212a, 0x212d, +0x212f, 0x2134, +0x2139, 0x2139, +0x213c, 0x213f, +0x2145, 0x2149, +0x214e, 0x214e, +0x2160, 0x217f, +0x2183, 0x2184, +0x24b6, 0x24e9, +0x2c00, 0x2ce4, +0x2ceb, 0x2cee, +0x2cf2, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0xa640, 0xa66d, +0xa680, 0xa69d, +0xa722, 0xa787, +0xa78b, 0xa78e, +0xa790, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa7f6, +0xa7f8, 0xa7fa, +0xab30, 0xab5a, +0xab5c, 0xab69, +0xab70, 0xabbf, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xff21, 0xff3a, +0xff41, 0xff5a, +0x10400, 0x1044f, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x10780, 0x10780, +0x10783, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10d50, 0x10d65, +0x10d70, 0x10d85, +0x118a0, 0x118df, +0x16e40, 0x16e7f, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d6c0, +0x1d6c2, 0x1d6da, +0x1d6dc, 0x1d6fa, +0x1d6fc, 0x1d714, +0x1d716, 0x1d734, +0x1d736, 0x1d74e, +0x1d750, 0x1d76e, +0x1d770, 0x1d788, +0x1d78a, 0x1d7a8, +0x1d7aa, 0x1d7c2, +0x1d7c4, 0x1d7cb, +0x1df00, 0x1df09, +0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, +0x1e900, 0x1e943, +0x1f130, 0x1f149, +0x1f150, 0x1f169, +0x1f170, 0x1f189, +}; /* END of CR_Cased */ + +/* PROPERTY: 'Caucasian_Albanian': Script */ +static const OnigCodePoint +CR_Caucasian_Albanian[] = { 2, +0x10530, 0x10563, +0x1056f, 0x1056f, +}; /* END of CR_Caucasian_Albanian */ + +/* PROPERTY: 'Cc': General Category */ +#define CR_Cc CR_Cntrl + +/* PROPERTY: 'Cf': General Category */ +static const OnigCodePoint +CR_Cf[] = { 21, +0x00ad, 0x00ad, +0x0600, 0x0605, +0x061c, 0x061c, +0x06dd, 0x06dd, +0x070f, 0x070f, +0x0890, 0x0891, +0x08e2, 0x08e2, +0x180e, 0x180e, +0x200b, 0x200f, +0x202a, 0x202e, +0x2060, 0x2064, +0x2066, 0x206f, +0xfeff, 0xfeff, +0xfff9, 0xfffb, +0x110bd, 0x110bd, +0x110cd, 0x110cd, +0x13430, 0x1343f, +0x1bca0, 0x1bca3, +0x1d173, 0x1d17a, +0xe0001, 0xe0001, +0xe0020, 0xe007f, +}; /* END of CR_Cf */ + +/* PROPERTY: 'Chakma': Script */ +static const OnigCodePoint +CR_Chakma[] = { 2, +0x11100, 0x11134, +0x11136, 0x11147, +}; /* END of CR_Chakma */ + +/* PROPERTY: 'Cham': Script */ +static const OnigCodePoint +CR_Cham[] = { 4, +0xaa00, 0xaa36, +0xaa40, 0xaa4d, +0xaa50, 0xaa59, +0xaa5c, 0xaa5f, +}; /* END of CR_Cham */ + +/* PROPERTY: 'Changes_When_Casefolded': Derived Property */ +static const OnigCodePoint +CR_Changes_When_Casefolded[] = { 626, +0x0041, 0x005a, +0x00b5, 0x00b5, +0x00c0, 0x00d6, +0x00d8, 0x00df, +0x0100, 0x0100, +0x0102, 0x0102, +0x0104, 0x0104, +0x0106, 0x0106, +0x0108, 0x0108, +0x010a, 0x010a, +0x010c, 0x010c, +0x010e, 0x010e, +0x0110, 0x0110, +0x0112, 0x0112, +0x0114, 0x0114, +0x0116, 0x0116, +0x0118, 0x0118, +0x011a, 0x011a, +0x011c, 0x011c, +0x011e, 0x011e, +0x0120, 0x0120, +0x0122, 0x0122, +0x0124, 0x0124, +0x0126, 0x0126, +0x0128, 0x0128, +0x012a, 0x012a, +0x012c, 0x012c, +0x012e, 0x012e, +0x0130, 0x0130, +0x0132, 0x0132, +0x0134, 0x0134, +0x0136, 0x0136, +0x0139, 0x0139, +0x013b, 0x013b, +0x013d, 0x013d, +0x013f, 0x013f, +0x0141, 0x0141, +0x0143, 0x0143, +0x0145, 0x0145, +0x0147, 0x0147, +0x0149, 0x014a, +0x014c, 0x014c, +0x014e, 0x014e, +0x0150, 0x0150, +0x0152, 0x0152, +0x0154, 0x0154, +0x0156, 0x0156, +0x0158, 0x0158, +0x015a, 0x015a, +0x015c, 0x015c, +0x015e, 0x015e, +0x0160, 0x0160, +0x0162, 0x0162, +0x0164, 0x0164, +0x0166, 0x0166, +0x0168, 0x0168, +0x016a, 0x016a, +0x016c, 0x016c, +0x016e, 0x016e, +0x0170, 0x0170, +0x0172, 0x0172, +0x0174, 0x0174, +0x0176, 0x0176, +0x0178, 0x0179, +0x017b, 0x017b, +0x017d, 0x017d, +0x017f, 0x017f, +0x0181, 0x0182, +0x0184, 0x0184, +0x0186, 0x0187, +0x0189, 0x018b, +0x018e, 0x0191, +0x0193, 0x0194, +0x0196, 0x0198, +0x019c, 0x019d, +0x019f, 0x01a0, +0x01a2, 0x01a2, +0x01a4, 0x01a4, +0x01a6, 0x01a7, +0x01a9, 0x01a9, +0x01ac, 0x01ac, +0x01ae, 0x01af, +0x01b1, 0x01b3, +0x01b5, 0x01b5, +0x01b7, 0x01b8, +0x01bc, 0x01bc, +0x01c4, 0x01c5, +0x01c7, 0x01c8, +0x01ca, 0x01cb, +0x01cd, 0x01cd, +0x01cf, 0x01cf, +0x01d1, 0x01d1, +0x01d3, 0x01d3, +0x01d5, 0x01d5, +0x01d7, 0x01d7, +0x01d9, 0x01d9, +0x01db, 0x01db, +0x01de, 0x01de, +0x01e0, 0x01e0, +0x01e2, 0x01e2, +0x01e4, 0x01e4, +0x01e6, 0x01e6, +0x01e8, 0x01e8, +0x01ea, 0x01ea, +0x01ec, 0x01ec, +0x01ee, 0x01ee, +0x01f1, 0x01f2, +0x01f4, 0x01f4, +0x01f6, 0x01f8, +0x01fa, 0x01fa, +0x01fc, 0x01fc, +0x01fe, 0x01fe, +0x0200, 0x0200, +0x0202, 0x0202, +0x0204, 0x0204, +0x0206, 0x0206, +0x0208, 0x0208, +0x020a, 0x020a, +0x020c, 0x020c, +0x020e, 0x020e, +0x0210, 0x0210, +0x0212, 0x0212, +0x0214, 0x0214, +0x0216, 0x0216, +0x0218, 0x0218, +0x021a, 0x021a, +0x021c, 0x021c, +0x021e, 0x021e, +0x0220, 0x0220, +0x0222, 0x0222, +0x0224, 0x0224, +0x0226, 0x0226, +0x0228, 0x0228, +0x022a, 0x022a, +0x022c, 0x022c, +0x022e, 0x022e, +0x0230, 0x0230, +0x0232, 0x0232, +0x023a, 0x023b, +0x023d, 0x023e, +0x0241, 0x0241, +0x0243, 0x0246, +0x0248, 0x0248, +0x024a, 0x024a, +0x024c, 0x024c, +0x024e, 0x024e, +0x0345, 0x0345, +0x0370, 0x0370, +0x0372, 0x0372, +0x0376, 0x0376, +0x037f, 0x037f, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x038f, +0x0391, 0x03a1, +0x03a3, 0x03ab, +0x03c2, 0x03c2, +0x03cf, 0x03d1, +0x03d5, 0x03d6, +0x03d8, 0x03d8, +0x03da, 0x03da, +0x03dc, 0x03dc, +0x03de, 0x03de, +0x03e0, 0x03e0, +0x03e2, 0x03e2, +0x03e4, 0x03e4, +0x03e6, 0x03e6, +0x03e8, 0x03e8, +0x03ea, 0x03ea, +0x03ec, 0x03ec, +0x03ee, 0x03ee, +0x03f0, 0x03f1, +0x03f4, 0x03f5, +0x03f7, 0x03f7, +0x03f9, 0x03fa, +0x03fd, 0x042f, +0x0460, 0x0460, +0x0462, 0x0462, +0x0464, 0x0464, +0x0466, 0x0466, +0x0468, 0x0468, +0x046a, 0x046a, +0x046c, 0x046c, +0x046e, 0x046e, +0x0470, 0x0470, +0x0472, 0x0472, +0x0474, 0x0474, +0x0476, 0x0476, +0x0478, 0x0478, +0x047a, 0x047a, +0x047c, 0x047c, +0x047e, 0x047e, +0x0480, 0x0480, +0x048a, 0x048a, +0x048c, 0x048c, +0x048e, 0x048e, +0x0490, 0x0490, +0x0492, 0x0492, +0x0494, 0x0494, +0x0496, 0x0496, +0x0498, 0x0498, +0x049a, 0x049a, +0x049c, 0x049c, +0x049e, 0x049e, +0x04a0, 0x04a0, +0x04a2, 0x04a2, +0x04a4, 0x04a4, +0x04a6, 0x04a6, +0x04a8, 0x04a8, +0x04aa, 0x04aa, +0x04ac, 0x04ac, +0x04ae, 0x04ae, +0x04b0, 0x04b0, +0x04b2, 0x04b2, +0x04b4, 0x04b4, +0x04b6, 0x04b6, +0x04b8, 0x04b8, +0x04ba, 0x04ba, +0x04bc, 0x04bc, +0x04be, 0x04be, +0x04c0, 0x04c1, +0x04c3, 0x04c3, +0x04c5, 0x04c5, +0x04c7, 0x04c7, +0x04c9, 0x04c9, +0x04cb, 0x04cb, +0x04cd, 0x04cd, +0x04d0, 0x04d0, +0x04d2, 0x04d2, +0x04d4, 0x04d4, +0x04d6, 0x04d6, +0x04d8, 0x04d8, +0x04da, 0x04da, +0x04dc, 0x04dc, +0x04de, 0x04de, +0x04e0, 0x04e0, +0x04e2, 0x04e2, +0x04e4, 0x04e4, +0x04e6, 0x04e6, +0x04e8, 0x04e8, +0x04ea, 0x04ea, +0x04ec, 0x04ec, +0x04ee, 0x04ee, +0x04f0, 0x04f0, +0x04f2, 0x04f2, +0x04f4, 0x04f4, +0x04f6, 0x04f6, +0x04f8, 0x04f8, +0x04fa, 0x04fa, +0x04fc, 0x04fc, +0x04fe, 0x04fe, +0x0500, 0x0500, +0x0502, 0x0502, +0x0504, 0x0504, +0x0506, 0x0506, +0x0508, 0x0508, +0x050a, 0x050a, +0x050c, 0x050c, +0x050e, 0x050e, +0x0510, 0x0510, +0x0512, 0x0512, +0x0514, 0x0514, +0x0516, 0x0516, +0x0518, 0x0518, +0x051a, 0x051a, +0x051c, 0x051c, +0x051e, 0x051e, +0x0520, 0x0520, +0x0522, 0x0522, +0x0524, 0x0524, +0x0526, 0x0526, +0x0528, 0x0528, +0x052a, 0x052a, +0x052c, 0x052c, +0x052e, 0x052e, +0x0531, 0x0556, +0x0587, 0x0587, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x13f8, 0x13fd, +0x1c80, 0x1c89, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1e00, 0x1e00, +0x1e02, 0x1e02, +0x1e04, 0x1e04, +0x1e06, 0x1e06, +0x1e08, 0x1e08, +0x1e0a, 0x1e0a, +0x1e0c, 0x1e0c, +0x1e0e, 0x1e0e, +0x1e10, 0x1e10, +0x1e12, 0x1e12, +0x1e14, 0x1e14, +0x1e16, 0x1e16, +0x1e18, 0x1e18, +0x1e1a, 0x1e1a, +0x1e1c, 0x1e1c, +0x1e1e, 0x1e1e, +0x1e20, 0x1e20, +0x1e22, 0x1e22, +0x1e24, 0x1e24, +0x1e26, 0x1e26, +0x1e28, 0x1e28, +0x1e2a, 0x1e2a, +0x1e2c, 0x1e2c, +0x1e2e, 0x1e2e, +0x1e30, 0x1e30, +0x1e32, 0x1e32, +0x1e34, 0x1e34, +0x1e36, 0x1e36, +0x1e38, 0x1e38, +0x1e3a, 0x1e3a, +0x1e3c, 0x1e3c, +0x1e3e, 0x1e3e, +0x1e40, 0x1e40, +0x1e42, 0x1e42, +0x1e44, 0x1e44, +0x1e46, 0x1e46, +0x1e48, 0x1e48, +0x1e4a, 0x1e4a, +0x1e4c, 0x1e4c, +0x1e4e, 0x1e4e, +0x1e50, 0x1e50, +0x1e52, 0x1e52, +0x1e54, 0x1e54, +0x1e56, 0x1e56, +0x1e58, 0x1e58, +0x1e5a, 0x1e5a, +0x1e5c, 0x1e5c, +0x1e5e, 0x1e5e, +0x1e60, 0x1e60, +0x1e62, 0x1e62, +0x1e64, 0x1e64, +0x1e66, 0x1e66, +0x1e68, 0x1e68, +0x1e6a, 0x1e6a, +0x1e6c, 0x1e6c, +0x1e6e, 0x1e6e, +0x1e70, 0x1e70, +0x1e72, 0x1e72, +0x1e74, 0x1e74, +0x1e76, 0x1e76, +0x1e78, 0x1e78, +0x1e7a, 0x1e7a, +0x1e7c, 0x1e7c, +0x1e7e, 0x1e7e, +0x1e80, 0x1e80, +0x1e82, 0x1e82, +0x1e84, 0x1e84, +0x1e86, 0x1e86, +0x1e88, 0x1e88, +0x1e8a, 0x1e8a, +0x1e8c, 0x1e8c, +0x1e8e, 0x1e8e, +0x1e90, 0x1e90, +0x1e92, 0x1e92, +0x1e94, 0x1e94, +0x1e9a, 0x1e9b, +0x1e9e, 0x1e9e, +0x1ea0, 0x1ea0, +0x1ea2, 0x1ea2, +0x1ea4, 0x1ea4, +0x1ea6, 0x1ea6, +0x1ea8, 0x1ea8, +0x1eaa, 0x1eaa, +0x1eac, 0x1eac, +0x1eae, 0x1eae, +0x1eb0, 0x1eb0, +0x1eb2, 0x1eb2, +0x1eb4, 0x1eb4, +0x1eb6, 0x1eb6, +0x1eb8, 0x1eb8, +0x1eba, 0x1eba, +0x1ebc, 0x1ebc, +0x1ebe, 0x1ebe, +0x1ec0, 0x1ec0, +0x1ec2, 0x1ec2, +0x1ec4, 0x1ec4, +0x1ec6, 0x1ec6, +0x1ec8, 0x1ec8, +0x1eca, 0x1eca, +0x1ecc, 0x1ecc, +0x1ece, 0x1ece, +0x1ed0, 0x1ed0, +0x1ed2, 0x1ed2, +0x1ed4, 0x1ed4, +0x1ed6, 0x1ed6, +0x1ed8, 0x1ed8, +0x1eda, 0x1eda, +0x1edc, 0x1edc, +0x1ede, 0x1ede, +0x1ee0, 0x1ee0, +0x1ee2, 0x1ee2, +0x1ee4, 0x1ee4, +0x1ee6, 0x1ee6, +0x1ee8, 0x1ee8, +0x1eea, 0x1eea, +0x1eec, 0x1eec, +0x1eee, 0x1eee, +0x1ef0, 0x1ef0, +0x1ef2, 0x1ef2, +0x1ef4, 0x1ef4, +0x1ef6, 0x1ef6, +0x1ef8, 0x1ef8, +0x1efa, 0x1efa, +0x1efc, 0x1efc, +0x1efe, 0x1efe, +0x1f08, 0x1f0f, +0x1f18, 0x1f1d, +0x1f28, 0x1f2f, +0x1f38, 0x1f3f, +0x1f48, 0x1f4d, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f5f, +0x1f68, 0x1f6f, +0x1f80, 0x1faf, +0x1fb2, 0x1fb4, +0x1fb7, 0x1fbc, +0x1fc2, 0x1fc4, +0x1fc7, 0x1fcc, +0x1fd8, 0x1fdb, +0x1fe8, 0x1fec, +0x1ff2, 0x1ff4, +0x1ff7, 0x1ffc, +0x2126, 0x2126, +0x212a, 0x212b, +0x2132, 0x2132, +0x2160, 0x216f, +0x2183, 0x2183, +0x24b6, 0x24cf, +0x2c00, 0x2c2f, +0x2c60, 0x2c60, +0x2c62, 0x2c64, +0x2c67, 0x2c67, +0x2c69, 0x2c69, +0x2c6b, 0x2c6b, +0x2c6d, 0x2c70, +0x2c72, 0x2c72, +0x2c75, 0x2c75, +0x2c7e, 0x2c80, +0x2c82, 0x2c82, +0x2c84, 0x2c84, +0x2c86, 0x2c86, +0x2c88, 0x2c88, +0x2c8a, 0x2c8a, +0x2c8c, 0x2c8c, +0x2c8e, 0x2c8e, +0x2c90, 0x2c90, +0x2c92, 0x2c92, +0x2c94, 0x2c94, +0x2c96, 0x2c96, +0x2c98, 0x2c98, +0x2c9a, 0x2c9a, +0x2c9c, 0x2c9c, +0x2c9e, 0x2c9e, +0x2ca0, 0x2ca0, +0x2ca2, 0x2ca2, +0x2ca4, 0x2ca4, +0x2ca6, 0x2ca6, +0x2ca8, 0x2ca8, +0x2caa, 0x2caa, +0x2cac, 0x2cac, +0x2cae, 0x2cae, +0x2cb0, 0x2cb0, +0x2cb2, 0x2cb2, +0x2cb4, 0x2cb4, +0x2cb6, 0x2cb6, +0x2cb8, 0x2cb8, +0x2cba, 0x2cba, +0x2cbc, 0x2cbc, +0x2cbe, 0x2cbe, +0x2cc0, 0x2cc0, +0x2cc2, 0x2cc2, +0x2cc4, 0x2cc4, +0x2cc6, 0x2cc6, +0x2cc8, 0x2cc8, +0x2cca, 0x2cca, +0x2ccc, 0x2ccc, +0x2cce, 0x2cce, +0x2cd0, 0x2cd0, +0x2cd2, 0x2cd2, +0x2cd4, 0x2cd4, +0x2cd6, 0x2cd6, +0x2cd8, 0x2cd8, +0x2cda, 0x2cda, +0x2cdc, 0x2cdc, +0x2cde, 0x2cde, +0x2ce0, 0x2ce0, +0x2ce2, 0x2ce2, +0x2ceb, 0x2ceb, +0x2ced, 0x2ced, +0x2cf2, 0x2cf2, +0xa640, 0xa640, +0xa642, 0xa642, +0xa644, 0xa644, +0xa646, 0xa646, +0xa648, 0xa648, +0xa64a, 0xa64a, +0xa64c, 0xa64c, +0xa64e, 0xa64e, +0xa650, 0xa650, +0xa652, 0xa652, +0xa654, 0xa654, +0xa656, 0xa656, +0xa658, 0xa658, +0xa65a, 0xa65a, +0xa65c, 0xa65c, +0xa65e, 0xa65e, +0xa660, 0xa660, +0xa662, 0xa662, +0xa664, 0xa664, +0xa666, 0xa666, +0xa668, 0xa668, +0xa66a, 0xa66a, +0xa66c, 0xa66c, +0xa680, 0xa680, +0xa682, 0xa682, +0xa684, 0xa684, +0xa686, 0xa686, +0xa688, 0xa688, +0xa68a, 0xa68a, +0xa68c, 0xa68c, +0xa68e, 0xa68e, +0xa690, 0xa690, +0xa692, 0xa692, +0xa694, 0xa694, +0xa696, 0xa696, +0xa698, 0xa698, +0xa69a, 0xa69a, +0xa722, 0xa722, +0xa724, 0xa724, +0xa726, 0xa726, +0xa728, 0xa728, +0xa72a, 0xa72a, +0xa72c, 0xa72c, +0xa72e, 0xa72e, +0xa732, 0xa732, +0xa734, 0xa734, +0xa736, 0xa736, +0xa738, 0xa738, +0xa73a, 0xa73a, +0xa73c, 0xa73c, +0xa73e, 0xa73e, +0xa740, 0xa740, +0xa742, 0xa742, +0xa744, 0xa744, +0xa746, 0xa746, +0xa748, 0xa748, +0xa74a, 0xa74a, +0xa74c, 0xa74c, +0xa74e, 0xa74e, +0xa750, 0xa750, +0xa752, 0xa752, +0xa754, 0xa754, +0xa756, 0xa756, +0xa758, 0xa758, +0xa75a, 0xa75a, +0xa75c, 0xa75c, +0xa75e, 0xa75e, +0xa760, 0xa760, +0xa762, 0xa762, +0xa764, 0xa764, +0xa766, 0xa766, +0xa768, 0xa768, +0xa76a, 0xa76a, +0xa76c, 0xa76c, +0xa76e, 0xa76e, +0xa779, 0xa779, +0xa77b, 0xa77b, +0xa77d, 0xa77e, +0xa780, 0xa780, +0xa782, 0xa782, +0xa784, 0xa784, +0xa786, 0xa786, +0xa78b, 0xa78b, +0xa78d, 0xa78d, +0xa790, 0xa790, +0xa792, 0xa792, +0xa796, 0xa796, +0xa798, 0xa798, +0xa79a, 0xa79a, +0xa79c, 0xa79c, +0xa79e, 0xa79e, +0xa7a0, 0xa7a0, +0xa7a2, 0xa7a2, +0xa7a4, 0xa7a4, +0xa7a6, 0xa7a6, +0xa7a8, 0xa7a8, +0xa7aa, 0xa7ae, +0xa7b0, 0xa7b4, +0xa7b6, 0xa7b6, +0xa7b8, 0xa7b8, +0xa7ba, 0xa7ba, +0xa7bc, 0xa7bc, +0xa7be, 0xa7be, +0xa7c0, 0xa7c0, +0xa7c2, 0xa7c2, +0xa7c4, 0xa7c7, +0xa7c9, 0xa7c9, +0xa7cb, 0xa7cc, +0xa7d0, 0xa7d0, +0xa7d6, 0xa7d6, +0xa7d8, 0xa7d8, +0xa7da, 0xa7da, +0xa7dc, 0xa7dc, +0xa7f5, 0xa7f5, +0xab70, 0xabbf, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xff21, 0xff3a, +0x10400, 0x10427, +0x104b0, 0x104d3, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10c80, 0x10cb2, +0x10d50, 0x10d65, +0x118a0, 0x118bf, +0x16e40, 0x16e5f, +0x1e900, 0x1e921, +}; /* END of CR_Changes_When_Casefolded */ + +/* PROPERTY: 'Changes_When_Casemapped': Derived Property */ +static const OnigCodePoint +CR_Changes_When_Casemapped[] = { 131, +0x0041, 0x005a, +0x0061, 0x007a, +0x00b5, 0x00b5, +0x00c0, 0x00d6, +0x00d8, 0x00f6, +0x00f8, 0x0137, +0x0139, 0x018c, +0x018e, 0x01a9, +0x01ac, 0x01b9, +0x01bc, 0x01bd, +0x01bf, 0x01bf, +0x01c4, 0x0220, +0x0222, 0x0233, +0x023a, 0x0254, +0x0256, 0x0257, +0x0259, 0x0259, +0x025b, 0x025c, +0x0260, 0x0261, +0x0263, 0x0266, +0x0268, 0x026c, +0x026f, 0x026f, +0x0271, 0x0272, +0x0275, 0x0275, +0x027d, 0x027d, +0x0280, 0x0280, +0x0282, 0x0283, +0x0287, 0x028c, +0x0292, 0x0292, +0x029d, 0x029e, +0x0345, 0x0345, +0x0370, 0x0373, +0x0376, 0x0377, +0x037b, 0x037d, +0x037f, 0x037f, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x03d1, +0x03d5, 0x03f5, +0x03f7, 0x03fb, +0x03fd, 0x0481, +0x048a, 0x052f, +0x0531, 0x0556, +0x0561, 0x0587, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x10fa, +0x10fd, 0x10ff, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1c80, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1d79, 0x1d79, +0x1d7d, 0x1d7d, +0x1d8e, 0x1d8e, +0x1e00, 0x1e9b, +0x1e9e, 0x1e9e, +0x1ea0, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fbc, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fcc, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fe0, 0x1fec, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffc, +0x2126, 0x2126, +0x212a, 0x212b, +0x2132, 0x2132, +0x214e, 0x214e, +0x2160, 0x217f, +0x2183, 0x2184, +0x24b6, 0x24e9, +0x2c00, 0x2c70, +0x2c72, 0x2c73, +0x2c75, 0x2c76, +0x2c7e, 0x2ce3, +0x2ceb, 0x2cee, +0x2cf2, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0xa640, 0xa66d, +0xa680, 0xa69b, +0xa722, 0xa72f, +0xa732, 0xa76f, +0xa779, 0xa787, +0xa78b, 0xa78d, +0xa790, 0xa794, +0xa796, 0xa7ae, +0xa7b0, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d6, 0xa7dc, +0xa7f5, 0xa7f6, +0xab53, 0xab53, +0xab70, 0xabbf, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xff21, 0xff3a, +0xff41, 0xff5a, +0x10400, 0x1044f, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10d50, 0x10d65, +0x10d70, 0x10d85, +0x118a0, 0x118df, +0x16e40, 0x16e7f, +0x1e900, 0x1e943, +}; /* END of CR_Changes_When_Casemapped */ + +/* PROPERTY: 'Changes_When_Lowercased': Derived Property */ +static const OnigCodePoint +CR_Changes_When_Lowercased[] = { 614, +0x0041, 0x005a, +0x00c0, 0x00d6, +0x00d8, 0x00de, +0x0100, 0x0100, +0x0102, 0x0102, +0x0104, 0x0104, +0x0106, 0x0106, +0x0108, 0x0108, +0x010a, 0x010a, +0x010c, 0x010c, +0x010e, 0x010e, +0x0110, 0x0110, +0x0112, 0x0112, +0x0114, 0x0114, +0x0116, 0x0116, +0x0118, 0x0118, +0x011a, 0x011a, +0x011c, 0x011c, +0x011e, 0x011e, +0x0120, 0x0120, +0x0122, 0x0122, +0x0124, 0x0124, +0x0126, 0x0126, +0x0128, 0x0128, +0x012a, 0x012a, +0x012c, 0x012c, +0x012e, 0x012e, +0x0130, 0x0130, +0x0132, 0x0132, +0x0134, 0x0134, +0x0136, 0x0136, +0x0139, 0x0139, +0x013b, 0x013b, +0x013d, 0x013d, +0x013f, 0x013f, +0x0141, 0x0141, +0x0143, 0x0143, +0x0145, 0x0145, +0x0147, 0x0147, +0x014a, 0x014a, +0x014c, 0x014c, +0x014e, 0x014e, +0x0150, 0x0150, +0x0152, 0x0152, +0x0154, 0x0154, +0x0156, 0x0156, +0x0158, 0x0158, +0x015a, 0x015a, +0x015c, 0x015c, +0x015e, 0x015e, +0x0160, 0x0160, +0x0162, 0x0162, +0x0164, 0x0164, +0x0166, 0x0166, +0x0168, 0x0168, +0x016a, 0x016a, +0x016c, 0x016c, +0x016e, 0x016e, +0x0170, 0x0170, +0x0172, 0x0172, +0x0174, 0x0174, +0x0176, 0x0176, +0x0178, 0x0179, +0x017b, 0x017b, +0x017d, 0x017d, +0x0181, 0x0182, +0x0184, 0x0184, +0x0186, 0x0187, +0x0189, 0x018b, +0x018e, 0x0191, +0x0193, 0x0194, +0x0196, 0x0198, +0x019c, 0x019d, +0x019f, 0x01a0, +0x01a2, 0x01a2, +0x01a4, 0x01a4, +0x01a6, 0x01a7, +0x01a9, 0x01a9, +0x01ac, 0x01ac, +0x01ae, 0x01af, +0x01b1, 0x01b3, +0x01b5, 0x01b5, +0x01b7, 0x01b8, +0x01bc, 0x01bc, +0x01c4, 0x01c5, +0x01c7, 0x01c8, +0x01ca, 0x01cb, +0x01cd, 0x01cd, +0x01cf, 0x01cf, +0x01d1, 0x01d1, +0x01d3, 0x01d3, +0x01d5, 0x01d5, +0x01d7, 0x01d7, +0x01d9, 0x01d9, +0x01db, 0x01db, +0x01de, 0x01de, +0x01e0, 0x01e0, +0x01e2, 0x01e2, +0x01e4, 0x01e4, +0x01e6, 0x01e6, +0x01e8, 0x01e8, +0x01ea, 0x01ea, +0x01ec, 0x01ec, +0x01ee, 0x01ee, +0x01f1, 0x01f2, +0x01f4, 0x01f4, +0x01f6, 0x01f8, +0x01fa, 0x01fa, +0x01fc, 0x01fc, +0x01fe, 0x01fe, +0x0200, 0x0200, +0x0202, 0x0202, +0x0204, 0x0204, +0x0206, 0x0206, +0x0208, 0x0208, +0x020a, 0x020a, +0x020c, 0x020c, +0x020e, 0x020e, +0x0210, 0x0210, +0x0212, 0x0212, +0x0214, 0x0214, +0x0216, 0x0216, +0x0218, 0x0218, +0x021a, 0x021a, +0x021c, 0x021c, +0x021e, 0x021e, +0x0220, 0x0220, +0x0222, 0x0222, +0x0224, 0x0224, +0x0226, 0x0226, +0x0228, 0x0228, +0x022a, 0x022a, +0x022c, 0x022c, +0x022e, 0x022e, +0x0230, 0x0230, +0x0232, 0x0232, +0x023a, 0x023b, +0x023d, 0x023e, +0x0241, 0x0241, +0x0243, 0x0246, +0x0248, 0x0248, +0x024a, 0x024a, +0x024c, 0x024c, +0x024e, 0x024e, +0x0370, 0x0370, +0x0372, 0x0372, +0x0376, 0x0376, +0x037f, 0x037f, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x038f, +0x0391, 0x03a1, +0x03a3, 0x03ab, +0x03cf, 0x03cf, +0x03d8, 0x03d8, +0x03da, 0x03da, +0x03dc, 0x03dc, +0x03de, 0x03de, +0x03e0, 0x03e0, +0x03e2, 0x03e2, +0x03e4, 0x03e4, +0x03e6, 0x03e6, +0x03e8, 0x03e8, +0x03ea, 0x03ea, +0x03ec, 0x03ec, +0x03ee, 0x03ee, +0x03f4, 0x03f4, +0x03f7, 0x03f7, +0x03f9, 0x03fa, +0x03fd, 0x042f, +0x0460, 0x0460, +0x0462, 0x0462, +0x0464, 0x0464, +0x0466, 0x0466, +0x0468, 0x0468, +0x046a, 0x046a, +0x046c, 0x046c, +0x046e, 0x046e, +0x0470, 0x0470, +0x0472, 0x0472, +0x0474, 0x0474, +0x0476, 0x0476, +0x0478, 0x0478, +0x047a, 0x047a, +0x047c, 0x047c, +0x047e, 0x047e, +0x0480, 0x0480, +0x048a, 0x048a, +0x048c, 0x048c, +0x048e, 0x048e, +0x0490, 0x0490, +0x0492, 0x0492, +0x0494, 0x0494, +0x0496, 0x0496, +0x0498, 0x0498, +0x049a, 0x049a, +0x049c, 0x049c, +0x049e, 0x049e, +0x04a0, 0x04a0, +0x04a2, 0x04a2, +0x04a4, 0x04a4, +0x04a6, 0x04a6, +0x04a8, 0x04a8, +0x04aa, 0x04aa, +0x04ac, 0x04ac, +0x04ae, 0x04ae, +0x04b0, 0x04b0, +0x04b2, 0x04b2, +0x04b4, 0x04b4, +0x04b6, 0x04b6, +0x04b8, 0x04b8, +0x04ba, 0x04ba, +0x04bc, 0x04bc, +0x04be, 0x04be, +0x04c0, 0x04c1, +0x04c3, 0x04c3, +0x04c5, 0x04c5, +0x04c7, 0x04c7, +0x04c9, 0x04c9, +0x04cb, 0x04cb, +0x04cd, 0x04cd, +0x04d0, 0x04d0, +0x04d2, 0x04d2, +0x04d4, 0x04d4, +0x04d6, 0x04d6, +0x04d8, 0x04d8, +0x04da, 0x04da, +0x04dc, 0x04dc, +0x04de, 0x04de, +0x04e0, 0x04e0, +0x04e2, 0x04e2, +0x04e4, 0x04e4, +0x04e6, 0x04e6, +0x04e8, 0x04e8, +0x04ea, 0x04ea, +0x04ec, 0x04ec, +0x04ee, 0x04ee, +0x04f0, 0x04f0, +0x04f2, 0x04f2, +0x04f4, 0x04f4, +0x04f6, 0x04f6, +0x04f8, 0x04f8, +0x04fa, 0x04fa, +0x04fc, 0x04fc, +0x04fe, 0x04fe, +0x0500, 0x0500, +0x0502, 0x0502, +0x0504, 0x0504, +0x0506, 0x0506, +0x0508, 0x0508, +0x050a, 0x050a, +0x050c, 0x050c, +0x050e, 0x050e, +0x0510, 0x0510, +0x0512, 0x0512, +0x0514, 0x0514, +0x0516, 0x0516, +0x0518, 0x0518, +0x051a, 0x051a, +0x051c, 0x051c, +0x051e, 0x051e, +0x0520, 0x0520, +0x0522, 0x0522, +0x0524, 0x0524, +0x0526, 0x0526, +0x0528, 0x0528, +0x052a, 0x052a, +0x052c, 0x052c, +0x052e, 0x052e, +0x0531, 0x0556, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x13a0, 0x13f5, +0x1c89, 0x1c89, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1e00, 0x1e00, +0x1e02, 0x1e02, +0x1e04, 0x1e04, +0x1e06, 0x1e06, +0x1e08, 0x1e08, +0x1e0a, 0x1e0a, +0x1e0c, 0x1e0c, +0x1e0e, 0x1e0e, +0x1e10, 0x1e10, +0x1e12, 0x1e12, +0x1e14, 0x1e14, +0x1e16, 0x1e16, +0x1e18, 0x1e18, +0x1e1a, 0x1e1a, +0x1e1c, 0x1e1c, +0x1e1e, 0x1e1e, +0x1e20, 0x1e20, +0x1e22, 0x1e22, +0x1e24, 0x1e24, +0x1e26, 0x1e26, +0x1e28, 0x1e28, +0x1e2a, 0x1e2a, +0x1e2c, 0x1e2c, +0x1e2e, 0x1e2e, +0x1e30, 0x1e30, +0x1e32, 0x1e32, +0x1e34, 0x1e34, +0x1e36, 0x1e36, +0x1e38, 0x1e38, +0x1e3a, 0x1e3a, +0x1e3c, 0x1e3c, +0x1e3e, 0x1e3e, +0x1e40, 0x1e40, +0x1e42, 0x1e42, +0x1e44, 0x1e44, +0x1e46, 0x1e46, +0x1e48, 0x1e48, +0x1e4a, 0x1e4a, +0x1e4c, 0x1e4c, +0x1e4e, 0x1e4e, +0x1e50, 0x1e50, +0x1e52, 0x1e52, +0x1e54, 0x1e54, +0x1e56, 0x1e56, +0x1e58, 0x1e58, +0x1e5a, 0x1e5a, +0x1e5c, 0x1e5c, +0x1e5e, 0x1e5e, +0x1e60, 0x1e60, +0x1e62, 0x1e62, +0x1e64, 0x1e64, +0x1e66, 0x1e66, +0x1e68, 0x1e68, +0x1e6a, 0x1e6a, +0x1e6c, 0x1e6c, +0x1e6e, 0x1e6e, +0x1e70, 0x1e70, +0x1e72, 0x1e72, +0x1e74, 0x1e74, +0x1e76, 0x1e76, +0x1e78, 0x1e78, +0x1e7a, 0x1e7a, +0x1e7c, 0x1e7c, +0x1e7e, 0x1e7e, +0x1e80, 0x1e80, +0x1e82, 0x1e82, +0x1e84, 0x1e84, +0x1e86, 0x1e86, +0x1e88, 0x1e88, +0x1e8a, 0x1e8a, +0x1e8c, 0x1e8c, +0x1e8e, 0x1e8e, +0x1e90, 0x1e90, +0x1e92, 0x1e92, +0x1e94, 0x1e94, +0x1e9e, 0x1e9e, +0x1ea0, 0x1ea0, +0x1ea2, 0x1ea2, +0x1ea4, 0x1ea4, +0x1ea6, 0x1ea6, +0x1ea8, 0x1ea8, +0x1eaa, 0x1eaa, +0x1eac, 0x1eac, +0x1eae, 0x1eae, +0x1eb0, 0x1eb0, +0x1eb2, 0x1eb2, +0x1eb4, 0x1eb4, +0x1eb6, 0x1eb6, +0x1eb8, 0x1eb8, +0x1eba, 0x1eba, +0x1ebc, 0x1ebc, +0x1ebe, 0x1ebe, +0x1ec0, 0x1ec0, +0x1ec2, 0x1ec2, +0x1ec4, 0x1ec4, +0x1ec6, 0x1ec6, +0x1ec8, 0x1ec8, +0x1eca, 0x1eca, +0x1ecc, 0x1ecc, +0x1ece, 0x1ece, +0x1ed0, 0x1ed0, +0x1ed2, 0x1ed2, +0x1ed4, 0x1ed4, +0x1ed6, 0x1ed6, +0x1ed8, 0x1ed8, +0x1eda, 0x1eda, +0x1edc, 0x1edc, +0x1ede, 0x1ede, +0x1ee0, 0x1ee0, +0x1ee2, 0x1ee2, +0x1ee4, 0x1ee4, +0x1ee6, 0x1ee6, +0x1ee8, 0x1ee8, +0x1eea, 0x1eea, +0x1eec, 0x1eec, +0x1eee, 0x1eee, +0x1ef0, 0x1ef0, +0x1ef2, 0x1ef2, +0x1ef4, 0x1ef4, +0x1ef6, 0x1ef6, +0x1ef8, 0x1ef8, +0x1efa, 0x1efa, +0x1efc, 0x1efc, +0x1efe, 0x1efe, +0x1f08, 0x1f0f, +0x1f18, 0x1f1d, +0x1f28, 0x1f2f, +0x1f38, 0x1f3f, +0x1f48, 0x1f4d, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f5f, +0x1f68, 0x1f6f, +0x1f88, 0x1f8f, +0x1f98, 0x1f9f, +0x1fa8, 0x1faf, +0x1fb8, 0x1fbc, +0x1fc8, 0x1fcc, +0x1fd8, 0x1fdb, +0x1fe8, 0x1fec, +0x1ff8, 0x1ffc, +0x2126, 0x2126, +0x212a, 0x212b, +0x2132, 0x2132, +0x2160, 0x216f, +0x2183, 0x2183, +0x24b6, 0x24cf, +0x2c00, 0x2c2f, +0x2c60, 0x2c60, +0x2c62, 0x2c64, +0x2c67, 0x2c67, +0x2c69, 0x2c69, +0x2c6b, 0x2c6b, +0x2c6d, 0x2c70, +0x2c72, 0x2c72, +0x2c75, 0x2c75, +0x2c7e, 0x2c80, +0x2c82, 0x2c82, +0x2c84, 0x2c84, +0x2c86, 0x2c86, +0x2c88, 0x2c88, +0x2c8a, 0x2c8a, +0x2c8c, 0x2c8c, +0x2c8e, 0x2c8e, +0x2c90, 0x2c90, +0x2c92, 0x2c92, +0x2c94, 0x2c94, +0x2c96, 0x2c96, +0x2c98, 0x2c98, +0x2c9a, 0x2c9a, +0x2c9c, 0x2c9c, +0x2c9e, 0x2c9e, +0x2ca0, 0x2ca0, +0x2ca2, 0x2ca2, +0x2ca4, 0x2ca4, +0x2ca6, 0x2ca6, +0x2ca8, 0x2ca8, +0x2caa, 0x2caa, +0x2cac, 0x2cac, +0x2cae, 0x2cae, +0x2cb0, 0x2cb0, +0x2cb2, 0x2cb2, +0x2cb4, 0x2cb4, +0x2cb6, 0x2cb6, +0x2cb8, 0x2cb8, +0x2cba, 0x2cba, +0x2cbc, 0x2cbc, +0x2cbe, 0x2cbe, +0x2cc0, 0x2cc0, +0x2cc2, 0x2cc2, +0x2cc4, 0x2cc4, +0x2cc6, 0x2cc6, +0x2cc8, 0x2cc8, +0x2cca, 0x2cca, +0x2ccc, 0x2ccc, +0x2cce, 0x2cce, +0x2cd0, 0x2cd0, +0x2cd2, 0x2cd2, +0x2cd4, 0x2cd4, +0x2cd6, 0x2cd6, +0x2cd8, 0x2cd8, +0x2cda, 0x2cda, +0x2cdc, 0x2cdc, +0x2cde, 0x2cde, +0x2ce0, 0x2ce0, +0x2ce2, 0x2ce2, +0x2ceb, 0x2ceb, +0x2ced, 0x2ced, +0x2cf2, 0x2cf2, +0xa640, 0xa640, +0xa642, 0xa642, +0xa644, 0xa644, +0xa646, 0xa646, +0xa648, 0xa648, +0xa64a, 0xa64a, +0xa64c, 0xa64c, +0xa64e, 0xa64e, +0xa650, 0xa650, +0xa652, 0xa652, +0xa654, 0xa654, +0xa656, 0xa656, +0xa658, 0xa658, +0xa65a, 0xa65a, +0xa65c, 0xa65c, +0xa65e, 0xa65e, +0xa660, 0xa660, +0xa662, 0xa662, +0xa664, 0xa664, +0xa666, 0xa666, +0xa668, 0xa668, +0xa66a, 0xa66a, +0xa66c, 0xa66c, +0xa680, 0xa680, +0xa682, 0xa682, +0xa684, 0xa684, +0xa686, 0xa686, +0xa688, 0xa688, +0xa68a, 0xa68a, +0xa68c, 0xa68c, +0xa68e, 0xa68e, +0xa690, 0xa690, +0xa692, 0xa692, +0xa694, 0xa694, +0xa696, 0xa696, +0xa698, 0xa698, +0xa69a, 0xa69a, +0xa722, 0xa722, +0xa724, 0xa724, +0xa726, 0xa726, +0xa728, 0xa728, +0xa72a, 0xa72a, +0xa72c, 0xa72c, +0xa72e, 0xa72e, +0xa732, 0xa732, +0xa734, 0xa734, +0xa736, 0xa736, +0xa738, 0xa738, +0xa73a, 0xa73a, +0xa73c, 0xa73c, +0xa73e, 0xa73e, +0xa740, 0xa740, +0xa742, 0xa742, +0xa744, 0xa744, +0xa746, 0xa746, +0xa748, 0xa748, +0xa74a, 0xa74a, +0xa74c, 0xa74c, +0xa74e, 0xa74e, +0xa750, 0xa750, +0xa752, 0xa752, +0xa754, 0xa754, +0xa756, 0xa756, +0xa758, 0xa758, +0xa75a, 0xa75a, +0xa75c, 0xa75c, +0xa75e, 0xa75e, +0xa760, 0xa760, +0xa762, 0xa762, +0xa764, 0xa764, +0xa766, 0xa766, +0xa768, 0xa768, +0xa76a, 0xa76a, +0xa76c, 0xa76c, +0xa76e, 0xa76e, +0xa779, 0xa779, +0xa77b, 0xa77b, +0xa77d, 0xa77e, +0xa780, 0xa780, +0xa782, 0xa782, +0xa784, 0xa784, +0xa786, 0xa786, +0xa78b, 0xa78b, +0xa78d, 0xa78d, +0xa790, 0xa790, +0xa792, 0xa792, +0xa796, 0xa796, +0xa798, 0xa798, +0xa79a, 0xa79a, +0xa79c, 0xa79c, +0xa79e, 0xa79e, +0xa7a0, 0xa7a0, +0xa7a2, 0xa7a2, +0xa7a4, 0xa7a4, +0xa7a6, 0xa7a6, +0xa7a8, 0xa7a8, +0xa7aa, 0xa7ae, +0xa7b0, 0xa7b4, +0xa7b6, 0xa7b6, +0xa7b8, 0xa7b8, +0xa7ba, 0xa7ba, +0xa7bc, 0xa7bc, +0xa7be, 0xa7be, +0xa7c0, 0xa7c0, +0xa7c2, 0xa7c2, +0xa7c4, 0xa7c7, +0xa7c9, 0xa7c9, +0xa7cb, 0xa7cc, +0xa7d0, 0xa7d0, +0xa7d6, 0xa7d6, +0xa7d8, 0xa7d8, +0xa7da, 0xa7da, +0xa7dc, 0xa7dc, +0xa7f5, 0xa7f5, +0xff21, 0xff3a, +0x10400, 0x10427, +0x104b0, 0x104d3, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10c80, 0x10cb2, +0x10d50, 0x10d65, +0x118a0, 0x118bf, +0x16e40, 0x16e5f, +0x1e900, 0x1e921, +}; /* END of CR_Changes_When_Lowercased */ + +/* PROPERTY: 'Changes_When_Titlecased': Derived Property */ +static const OnigCodePoint +CR_Changes_When_Titlecased[] = { 629, +0x0061, 0x007a, +0x00b5, 0x00b5, +0x00df, 0x00f6, +0x00f8, 0x00ff, +0x0101, 0x0101, +0x0103, 0x0103, +0x0105, 0x0105, +0x0107, 0x0107, +0x0109, 0x0109, +0x010b, 0x010b, +0x010d, 0x010d, +0x010f, 0x010f, +0x0111, 0x0111, +0x0113, 0x0113, +0x0115, 0x0115, +0x0117, 0x0117, +0x0119, 0x0119, +0x011b, 0x011b, +0x011d, 0x011d, +0x011f, 0x011f, +0x0121, 0x0121, +0x0123, 0x0123, +0x0125, 0x0125, +0x0127, 0x0127, +0x0129, 0x0129, +0x012b, 0x012b, +0x012d, 0x012d, +0x012f, 0x012f, +0x0131, 0x0131, +0x0133, 0x0133, +0x0135, 0x0135, +0x0137, 0x0137, +0x013a, 0x013a, +0x013c, 0x013c, +0x013e, 0x013e, +0x0140, 0x0140, +0x0142, 0x0142, +0x0144, 0x0144, +0x0146, 0x0146, +0x0148, 0x0149, +0x014b, 0x014b, +0x014d, 0x014d, +0x014f, 0x014f, +0x0151, 0x0151, +0x0153, 0x0153, +0x0155, 0x0155, +0x0157, 0x0157, +0x0159, 0x0159, +0x015b, 0x015b, +0x015d, 0x015d, +0x015f, 0x015f, +0x0161, 0x0161, +0x0163, 0x0163, +0x0165, 0x0165, +0x0167, 0x0167, +0x0169, 0x0169, +0x016b, 0x016b, +0x016d, 0x016d, +0x016f, 0x016f, +0x0171, 0x0171, +0x0173, 0x0173, +0x0175, 0x0175, +0x0177, 0x0177, +0x017a, 0x017a, +0x017c, 0x017c, +0x017e, 0x0180, +0x0183, 0x0183, +0x0185, 0x0185, +0x0188, 0x0188, +0x018c, 0x018c, +0x0192, 0x0192, +0x0195, 0x0195, +0x0199, 0x019b, +0x019e, 0x019e, +0x01a1, 0x01a1, +0x01a3, 0x01a3, +0x01a5, 0x01a5, +0x01a8, 0x01a8, +0x01ad, 0x01ad, +0x01b0, 0x01b0, +0x01b4, 0x01b4, +0x01b6, 0x01b6, +0x01b9, 0x01b9, +0x01bd, 0x01bd, +0x01bf, 0x01bf, +0x01c4, 0x01c4, +0x01c6, 0x01c7, +0x01c9, 0x01ca, +0x01cc, 0x01cc, +0x01ce, 0x01ce, +0x01d0, 0x01d0, +0x01d2, 0x01d2, +0x01d4, 0x01d4, +0x01d6, 0x01d6, +0x01d8, 0x01d8, +0x01da, 0x01da, +0x01dc, 0x01dd, +0x01df, 0x01df, +0x01e1, 0x01e1, +0x01e3, 0x01e3, +0x01e5, 0x01e5, +0x01e7, 0x01e7, +0x01e9, 0x01e9, +0x01eb, 0x01eb, +0x01ed, 0x01ed, +0x01ef, 0x01f1, +0x01f3, 0x01f3, +0x01f5, 0x01f5, +0x01f9, 0x01f9, +0x01fb, 0x01fb, +0x01fd, 0x01fd, +0x01ff, 0x01ff, +0x0201, 0x0201, +0x0203, 0x0203, +0x0205, 0x0205, +0x0207, 0x0207, +0x0209, 0x0209, +0x020b, 0x020b, +0x020d, 0x020d, +0x020f, 0x020f, +0x0211, 0x0211, +0x0213, 0x0213, +0x0215, 0x0215, +0x0217, 0x0217, +0x0219, 0x0219, +0x021b, 0x021b, +0x021d, 0x021d, +0x021f, 0x021f, +0x0223, 0x0223, +0x0225, 0x0225, +0x0227, 0x0227, +0x0229, 0x0229, +0x022b, 0x022b, +0x022d, 0x022d, +0x022f, 0x022f, +0x0231, 0x0231, +0x0233, 0x0233, +0x023c, 0x023c, +0x023f, 0x0240, +0x0242, 0x0242, +0x0247, 0x0247, +0x0249, 0x0249, +0x024b, 0x024b, +0x024d, 0x024d, +0x024f, 0x0254, +0x0256, 0x0257, +0x0259, 0x0259, +0x025b, 0x025c, +0x0260, 0x0261, +0x0263, 0x0266, +0x0268, 0x026c, +0x026f, 0x026f, +0x0271, 0x0272, +0x0275, 0x0275, +0x027d, 0x027d, +0x0280, 0x0280, +0x0282, 0x0283, +0x0287, 0x028c, +0x0292, 0x0292, +0x029d, 0x029e, +0x0345, 0x0345, +0x0371, 0x0371, +0x0373, 0x0373, +0x0377, 0x0377, +0x037b, 0x037d, +0x0390, 0x0390, +0x03ac, 0x03ce, +0x03d0, 0x03d1, +0x03d5, 0x03d7, +0x03d9, 0x03d9, +0x03db, 0x03db, +0x03dd, 0x03dd, +0x03df, 0x03df, +0x03e1, 0x03e1, +0x03e3, 0x03e3, +0x03e5, 0x03e5, +0x03e7, 0x03e7, +0x03e9, 0x03e9, +0x03eb, 0x03eb, +0x03ed, 0x03ed, +0x03ef, 0x03f3, +0x03f5, 0x03f5, +0x03f8, 0x03f8, +0x03fb, 0x03fb, +0x0430, 0x045f, +0x0461, 0x0461, +0x0463, 0x0463, +0x0465, 0x0465, +0x0467, 0x0467, +0x0469, 0x0469, +0x046b, 0x046b, +0x046d, 0x046d, +0x046f, 0x046f, +0x0471, 0x0471, +0x0473, 0x0473, +0x0475, 0x0475, +0x0477, 0x0477, +0x0479, 0x0479, +0x047b, 0x047b, +0x047d, 0x047d, +0x047f, 0x047f, +0x0481, 0x0481, +0x048b, 0x048b, +0x048d, 0x048d, +0x048f, 0x048f, +0x0491, 0x0491, +0x0493, 0x0493, +0x0495, 0x0495, +0x0497, 0x0497, +0x0499, 0x0499, +0x049b, 0x049b, +0x049d, 0x049d, +0x049f, 0x049f, +0x04a1, 0x04a1, +0x04a3, 0x04a3, +0x04a5, 0x04a5, +0x04a7, 0x04a7, +0x04a9, 0x04a9, +0x04ab, 0x04ab, +0x04ad, 0x04ad, +0x04af, 0x04af, +0x04b1, 0x04b1, +0x04b3, 0x04b3, +0x04b5, 0x04b5, +0x04b7, 0x04b7, +0x04b9, 0x04b9, +0x04bb, 0x04bb, +0x04bd, 0x04bd, +0x04bf, 0x04bf, +0x04c2, 0x04c2, +0x04c4, 0x04c4, +0x04c6, 0x04c6, +0x04c8, 0x04c8, +0x04ca, 0x04ca, +0x04cc, 0x04cc, +0x04ce, 0x04cf, +0x04d1, 0x04d1, +0x04d3, 0x04d3, +0x04d5, 0x04d5, +0x04d7, 0x04d7, +0x04d9, 0x04d9, +0x04db, 0x04db, +0x04dd, 0x04dd, +0x04df, 0x04df, +0x04e1, 0x04e1, +0x04e3, 0x04e3, +0x04e5, 0x04e5, +0x04e7, 0x04e7, +0x04e9, 0x04e9, +0x04eb, 0x04eb, +0x04ed, 0x04ed, +0x04ef, 0x04ef, +0x04f1, 0x04f1, +0x04f3, 0x04f3, +0x04f5, 0x04f5, +0x04f7, 0x04f7, +0x04f9, 0x04f9, +0x04fb, 0x04fb, +0x04fd, 0x04fd, +0x04ff, 0x04ff, +0x0501, 0x0501, +0x0503, 0x0503, +0x0505, 0x0505, +0x0507, 0x0507, +0x0509, 0x0509, +0x050b, 0x050b, +0x050d, 0x050d, +0x050f, 0x050f, +0x0511, 0x0511, +0x0513, 0x0513, +0x0515, 0x0515, +0x0517, 0x0517, +0x0519, 0x0519, +0x051b, 0x051b, +0x051d, 0x051d, +0x051f, 0x051f, +0x0521, 0x0521, +0x0523, 0x0523, +0x0525, 0x0525, +0x0527, 0x0527, +0x0529, 0x0529, +0x052b, 0x052b, +0x052d, 0x052d, +0x052f, 0x052f, +0x0561, 0x0587, +0x13f8, 0x13fd, +0x1c80, 0x1c88, +0x1c8a, 0x1c8a, +0x1d79, 0x1d79, +0x1d7d, 0x1d7d, +0x1d8e, 0x1d8e, +0x1e01, 0x1e01, +0x1e03, 0x1e03, +0x1e05, 0x1e05, +0x1e07, 0x1e07, +0x1e09, 0x1e09, +0x1e0b, 0x1e0b, +0x1e0d, 0x1e0d, +0x1e0f, 0x1e0f, +0x1e11, 0x1e11, +0x1e13, 0x1e13, +0x1e15, 0x1e15, +0x1e17, 0x1e17, +0x1e19, 0x1e19, +0x1e1b, 0x1e1b, +0x1e1d, 0x1e1d, +0x1e1f, 0x1e1f, +0x1e21, 0x1e21, +0x1e23, 0x1e23, +0x1e25, 0x1e25, +0x1e27, 0x1e27, +0x1e29, 0x1e29, +0x1e2b, 0x1e2b, +0x1e2d, 0x1e2d, +0x1e2f, 0x1e2f, +0x1e31, 0x1e31, +0x1e33, 0x1e33, +0x1e35, 0x1e35, +0x1e37, 0x1e37, +0x1e39, 0x1e39, +0x1e3b, 0x1e3b, +0x1e3d, 0x1e3d, +0x1e3f, 0x1e3f, +0x1e41, 0x1e41, +0x1e43, 0x1e43, +0x1e45, 0x1e45, +0x1e47, 0x1e47, +0x1e49, 0x1e49, +0x1e4b, 0x1e4b, +0x1e4d, 0x1e4d, +0x1e4f, 0x1e4f, +0x1e51, 0x1e51, +0x1e53, 0x1e53, +0x1e55, 0x1e55, +0x1e57, 0x1e57, +0x1e59, 0x1e59, +0x1e5b, 0x1e5b, +0x1e5d, 0x1e5d, +0x1e5f, 0x1e5f, +0x1e61, 0x1e61, +0x1e63, 0x1e63, +0x1e65, 0x1e65, +0x1e67, 0x1e67, +0x1e69, 0x1e69, +0x1e6b, 0x1e6b, +0x1e6d, 0x1e6d, +0x1e6f, 0x1e6f, +0x1e71, 0x1e71, +0x1e73, 0x1e73, +0x1e75, 0x1e75, +0x1e77, 0x1e77, +0x1e79, 0x1e79, +0x1e7b, 0x1e7b, +0x1e7d, 0x1e7d, +0x1e7f, 0x1e7f, +0x1e81, 0x1e81, +0x1e83, 0x1e83, +0x1e85, 0x1e85, +0x1e87, 0x1e87, +0x1e89, 0x1e89, +0x1e8b, 0x1e8b, +0x1e8d, 0x1e8d, +0x1e8f, 0x1e8f, +0x1e91, 0x1e91, +0x1e93, 0x1e93, +0x1e95, 0x1e9b, +0x1ea1, 0x1ea1, +0x1ea3, 0x1ea3, +0x1ea5, 0x1ea5, +0x1ea7, 0x1ea7, +0x1ea9, 0x1ea9, +0x1eab, 0x1eab, +0x1ead, 0x1ead, +0x1eaf, 0x1eaf, +0x1eb1, 0x1eb1, +0x1eb3, 0x1eb3, +0x1eb5, 0x1eb5, +0x1eb7, 0x1eb7, +0x1eb9, 0x1eb9, +0x1ebb, 0x1ebb, +0x1ebd, 0x1ebd, +0x1ebf, 0x1ebf, +0x1ec1, 0x1ec1, +0x1ec3, 0x1ec3, +0x1ec5, 0x1ec5, +0x1ec7, 0x1ec7, +0x1ec9, 0x1ec9, +0x1ecb, 0x1ecb, +0x1ecd, 0x1ecd, +0x1ecf, 0x1ecf, +0x1ed1, 0x1ed1, +0x1ed3, 0x1ed3, +0x1ed5, 0x1ed5, +0x1ed7, 0x1ed7, +0x1ed9, 0x1ed9, +0x1edb, 0x1edb, +0x1edd, 0x1edd, +0x1edf, 0x1edf, +0x1ee1, 0x1ee1, +0x1ee3, 0x1ee3, +0x1ee5, 0x1ee5, +0x1ee7, 0x1ee7, +0x1ee9, 0x1ee9, +0x1eeb, 0x1eeb, +0x1eed, 0x1eed, +0x1eef, 0x1eef, +0x1ef1, 0x1ef1, +0x1ef3, 0x1ef3, +0x1ef5, 0x1ef5, +0x1ef7, 0x1ef7, +0x1ef9, 0x1ef9, +0x1efb, 0x1efb, +0x1efd, 0x1efd, +0x1eff, 0x1f07, +0x1f10, 0x1f15, +0x1f20, 0x1f27, +0x1f30, 0x1f37, +0x1f40, 0x1f45, +0x1f50, 0x1f57, +0x1f60, 0x1f67, +0x1f70, 0x1f7d, +0x1f80, 0x1f87, +0x1f90, 0x1f97, +0x1fa0, 0x1fa7, +0x1fb0, 0x1fb4, +0x1fb6, 0x1fb7, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fc7, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fd7, +0x1fe0, 0x1fe7, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ff7, +0x214e, 0x214e, +0x2170, 0x217f, +0x2184, 0x2184, +0x24d0, 0x24e9, +0x2c30, 0x2c5f, +0x2c61, 0x2c61, +0x2c65, 0x2c66, +0x2c68, 0x2c68, +0x2c6a, 0x2c6a, +0x2c6c, 0x2c6c, +0x2c73, 0x2c73, +0x2c76, 0x2c76, +0x2c81, 0x2c81, +0x2c83, 0x2c83, +0x2c85, 0x2c85, +0x2c87, 0x2c87, +0x2c89, 0x2c89, +0x2c8b, 0x2c8b, +0x2c8d, 0x2c8d, +0x2c8f, 0x2c8f, +0x2c91, 0x2c91, +0x2c93, 0x2c93, +0x2c95, 0x2c95, +0x2c97, 0x2c97, +0x2c99, 0x2c99, +0x2c9b, 0x2c9b, +0x2c9d, 0x2c9d, +0x2c9f, 0x2c9f, +0x2ca1, 0x2ca1, +0x2ca3, 0x2ca3, +0x2ca5, 0x2ca5, +0x2ca7, 0x2ca7, +0x2ca9, 0x2ca9, +0x2cab, 0x2cab, +0x2cad, 0x2cad, +0x2caf, 0x2caf, +0x2cb1, 0x2cb1, +0x2cb3, 0x2cb3, +0x2cb5, 0x2cb5, +0x2cb7, 0x2cb7, +0x2cb9, 0x2cb9, +0x2cbb, 0x2cbb, +0x2cbd, 0x2cbd, +0x2cbf, 0x2cbf, +0x2cc1, 0x2cc1, +0x2cc3, 0x2cc3, +0x2cc5, 0x2cc5, +0x2cc7, 0x2cc7, +0x2cc9, 0x2cc9, +0x2ccb, 0x2ccb, +0x2ccd, 0x2ccd, +0x2ccf, 0x2ccf, +0x2cd1, 0x2cd1, +0x2cd3, 0x2cd3, +0x2cd5, 0x2cd5, +0x2cd7, 0x2cd7, +0x2cd9, 0x2cd9, +0x2cdb, 0x2cdb, +0x2cdd, 0x2cdd, +0x2cdf, 0x2cdf, +0x2ce1, 0x2ce1, +0x2ce3, 0x2ce3, +0x2cec, 0x2cec, +0x2cee, 0x2cee, +0x2cf3, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0xa641, 0xa641, +0xa643, 0xa643, +0xa645, 0xa645, +0xa647, 0xa647, +0xa649, 0xa649, +0xa64b, 0xa64b, +0xa64d, 0xa64d, +0xa64f, 0xa64f, +0xa651, 0xa651, +0xa653, 0xa653, +0xa655, 0xa655, +0xa657, 0xa657, +0xa659, 0xa659, +0xa65b, 0xa65b, +0xa65d, 0xa65d, +0xa65f, 0xa65f, +0xa661, 0xa661, +0xa663, 0xa663, +0xa665, 0xa665, +0xa667, 0xa667, +0xa669, 0xa669, +0xa66b, 0xa66b, +0xa66d, 0xa66d, +0xa681, 0xa681, +0xa683, 0xa683, +0xa685, 0xa685, +0xa687, 0xa687, +0xa689, 0xa689, +0xa68b, 0xa68b, +0xa68d, 0xa68d, +0xa68f, 0xa68f, +0xa691, 0xa691, +0xa693, 0xa693, +0xa695, 0xa695, +0xa697, 0xa697, +0xa699, 0xa699, +0xa69b, 0xa69b, +0xa723, 0xa723, +0xa725, 0xa725, +0xa727, 0xa727, +0xa729, 0xa729, +0xa72b, 0xa72b, +0xa72d, 0xa72d, +0xa72f, 0xa72f, +0xa733, 0xa733, +0xa735, 0xa735, +0xa737, 0xa737, +0xa739, 0xa739, +0xa73b, 0xa73b, +0xa73d, 0xa73d, +0xa73f, 0xa73f, +0xa741, 0xa741, +0xa743, 0xa743, +0xa745, 0xa745, +0xa747, 0xa747, +0xa749, 0xa749, +0xa74b, 0xa74b, +0xa74d, 0xa74d, +0xa74f, 0xa74f, +0xa751, 0xa751, +0xa753, 0xa753, +0xa755, 0xa755, +0xa757, 0xa757, +0xa759, 0xa759, +0xa75b, 0xa75b, +0xa75d, 0xa75d, +0xa75f, 0xa75f, +0xa761, 0xa761, +0xa763, 0xa763, +0xa765, 0xa765, +0xa767, 0xa767, +0xa769, 0xa769, +0xa76b, 0xa76b, +0xa76d, 0xa76d, +0xa76f, 0xa76f, +0xa77a, 0xa77a, +0xa77c, 0xa77c, +0xa77f, 0xa77f, +0xa781, 0xa781, +0xa783, 0xa783, +0xa785, 0xa785, +0xa787, 0xa787, +0xa78c, 0xa78c, +0xa791, 0xa791, +0xa793, 0xa794, +0xa797, 0xa797, +0xa799, 0xa799, +0xa79b, 0xa79b, +0xa79d, 0xa79d, +0xa79f, 0xa79f, +0xa7a1, 0xa7a1, +0xa7a3, 0xa7a3, +0xa7a5, 0xa7a5, +0xa7a7, 0xa7a7, +0xa7a9, 0xa7a9, +0xa7b5, 0xa7b5, +0xa7b7, 0xa7b7, +0xa7b9, 0xa7b9, +0xa7bb, 0xa7bb, +0xa7bd, 0xa7bd, +0xa7bf, 0xa7bf, +0xa7c1, 0xa7c1, +0xa7c3, 0xa7c3, +0xa7c8, 0xa7c8, +0xa7ca, 0xa7ca, +0xa7cd, 0xa7cd, +0xa7d1, 0xa7d1, +0xa7d7, 0xa7d7, +0xa7d9, 0xa7d9, +0xa7db, 0xa7db, +0xa7f6, 0xa7f6, +0xab53, 0xab53, +0xab70, 0xabbf, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xff41, 0xff5a, +0x10428, 0x1044f, +0x104d8, 0x104fb, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x10cc0, 0x10cf2, +0x10d70, 0x10d85, +0x118c0, 0x118df, +0x16e60, 0x16e7f, +0x1e922, 0x1e943, +}; /* END of CR_Changes_When_Titlecased */ + +/* PROPERTY: 'Changes_When_Uppercased': Derived Property */ +static const OnigCodePoint +CR_Changes_When_Uppercased[] = { 630, +0x0061, 0x007a, +0x00b5, 0x00b5, +0x00df, 0x00f6, +0x00f8, 0x00ff, +0x0101, 0x0101, +0x0103, 0x0103, +0x0105, 0x0105, +0x0107, 0x0107, +0x0109, 0x0109, +0x010b, 0x010b, +0x010d, 0x010d, +0x010f, 0x010f, +0x0111, 0x0111, +0x0113, 0x0113, +0x0115, 0x0115, +0x0117, 0x0117, +0x0119, 0x0119, +0x011b, 0x011b, +0x011d, 0x011d, +0x011f, 0x011f, +0x0121, 0x0121, +0x0123, 0x0123, +0x0125, 0x0125, +0x0127, 0x0127, +0x0129, 0x0129, +0x012b, 0x012b, +0x012d, 0x012d, +0x012f, 0x012f, +0x0131, 0x0131, +0x0133, 0x0133, +0x0135, 0x0135, +0x0137, 0x0137, +0x013a, 0x013a, +0x013c, 0x013c, +0x013e, 0x013e, +0x0140, 0x0140, +0x0142, 0x0142, +0x0144, 0x0144, +0x0146, 0x0146, +0x0148, 0x0149, +0x014b, 0x014b, +0x014d, 0x014d, +0x014f, 0x014f, +0x0151, 0x0151, +0x0153, 0x0153, +0x0155, 0x0155, +0x0157, 0x0157, +0x0159, 0x0159, +0x015b, 0x015b, +0x015d, 0x015d, +0x015f, 0x015f, +0x0161, 0x0161, +0x0163, 0x0163, +0x0165, 0x0165, +0x0167, 0x0167, +0x0169, 0x0169, +0x016b, 0x016b, +0x016d, 0x016d, +0x016f, 0x016f, +0x0171, 0x0171, +0x0173, 0x0173, +0x0175, 0x0175, +0x0177, 0x0177, +0x017a, 0x017a, +0x017c, 0x017c, +0x017e, 0x0180, +0x0183, 0x0183, +0x0185, 0x0185, +0x0188, 0x0188, +0x018c, 0x018c, +0x0192, 0x0192, +0x0195, 0x0195, +0x0199, 0x019b, +0x019e, 0x019e, +0x01a1, 0x01a1, +0x01a3, 0x01a3, +0x01a5, 0x01a5, +0x01a8, 0x01a8, +0x01ad, 0x01ad, +0x01b0, 0x01b0, +0x01b4, 0x01b4, +0x01b6, 0x01b6, +0x01b9, 0x01b9, +0x01bd, 0x01bd, +0x01bf, 0x01bf, +0x01c5, 0x01c6, +0x01c8, 0x01c9, +0x01cb, 0x01cc, +0x01ce, 0x01ce, +0x01d0, 0x01d0, +0x01d2, 0x01d2, +0x01d4, 0x01d4, +0x01d6, 0x01d6, +0x01d8, 0x01d8, +0x01da, 0x01da, +0x01dc, 0x01dd, +0x01df, 0x01df, +0x01e1, 0x01e1, +0x01e3, 0x01e3, +0x01e5, 0x01e5, +0x01e7, 0x01e7, +0x01e9, 0x01e9, +0x01eb, 0x01eb, +0x01ed, 0x01ed, +0x01ef, 0x01f0, +0x01f2, 0x01f3, +0x01f5, 0x01f5, +0x01f9, 0x01f9, +0x01fb, 0x01fb, +0x01fd, 0x01fd, +0x01ff, 0x01ff, +0x0201, 0x0201, +0x0203, 0x0203, +0x0205, 0x0205, +0x0207, 0x0207, +0x0209, 0x0209, +0x020b, 0x020b, +0x020d, 0x020d, +0x020f, 0x020f, +0x0211, 0x0211, +0x0213, 0x0213, +0x0215, 0x0215, +0x0217, 0x0217, +0x0219, 0x0219, +0x021b, 0x021b, +0x021d, 0x021d, +0x021f, 0x021f, +0x0223, 0x0223, +0x0225, 0x0225, +0x0227, 0x0227, +0x0229, 0x0229, +0x022b, 0x022b, +0x022d, 0x022d, +0x022f, 0x022f, +0x0231, 0x0231, +0x0233, 0x0233, +0x023c, 0x023c, +0x023f, 0x0240, +0x0242, 0x0242, +0x0247, 0x0247, +0x0249, 0x0249, +0x024b, 0x024b, +0x024d, 0x024d, +0x024f, 0x0254, +0x0256, 0x0257, +0x0259, 0x0259, +0x025b, 0x025c, +0x0260, 0x0261, +0x0263, 0x0266, +0x0268, 0x026c, +0x026f, 0x026f, +0x0271, 0x0272, +0x0275, 0x0275, +0x027d, 0x027d, +0x0280, 0x0280, +0x0282, 0x0283, +0x0287, 0x028c, +0x0292, 0x0292, +0x029d, 0x029e, +0x0345, 0x0345, +0x0371, 0x0371, +0x0373, 0x0373, +0x0377, 0x0377, +0x037b, 0x037d, +0x0390, 0x0390, +0x03ac, 0x03ce, +0x03d0, 0x03d1, +0x03d5, 0x03d7, +0x03d9, 0x03d9, +0x03db, 0x03db, +0x03dd, 0x03dd, +0x03df, 0x03df, +0x03e1, 0x03e1, +0x03e3, 0x03e3, +0x03e5, 0x03e5, +0x03e7, 0x03e7, +0x03e9, 0x03e9, +0x03eb, 0x03eb, +0x03ed, 0x03ed, +0x03ef, 0x03f3, +0x03f5, 0x03f5, +0x03f8, 0x03f8, +0x03fb, 0x03fb, +0x0430, 0x045f, +0x0461, 0x0461, +0x0463, 0x0463, +0x0465, 0x0465, +0x0467, 0x0467, +0x0469, 0x0469, +0x046b, 0x046b, +0x046d, 0x046d, +0x046f, 0x046f, +0x0471, 0x0471, +0x0473, 0x0473, +0x0475, 0x0475, +0x0477, 0x0477, +0x0479, 0x0479, +0x047b, 0x047b, +0x047d, 0x047d, +0x047f, 0x047f, +0x0481, 0x0481, +0x048b, 0x048b, +0x048d, 0x048d, +0x048f, 0x048f, +0x0491, 0x0491, +0x0493, 0x0493, +0x0495, 0x0495, +0x0497, 0x0497, +0x0499, 0x0499, +0x049b, 0x049b, +0x049d, 0x049d, +0x049f, 0x049f, +0x04a1, 0x04a1, +0x04a3, 0x04a3, +0x04a5, 0x04a5, +0x04a7, 0x04a7, +0x04a9, 0x04a9, +0x04ab, 0x04ab, +0x04ad, 0x04ad, +0x04af, 0x04af, +0x04b1, 0x04b1, +0x04b3, 0x04b3, +0x04b5, 0x04b5, +0x04b7, 0x04b7, +0x04b9, 0x04b9, +0x04bb, 0x04bb, +0x04bd, 0x04bd, +0x04bf, 0x04bf, +0x04c2, 0x04c2, +0x04c4, 0x04c4, +0x04c6, 0x04c6, +0x04c8, 0x04c8, +0x04ca, 0x04ca, +0x04cc, 0x04cc, +0x04ce, 0x04cf, +0x04d1, 0x04d1, +0x04d3, 0x04d3, +0x04d5, 0x04d5, +0x04d7, 0x04d7, +0x04d9, 0x04d9, +0x04db, 0x04db, +0x04dd, 0x04dd, +0x04df, 0x04df, +0x04e1, 0x04e1, +0x04e3, 0x04e3, +0x04e5, 0x04e5, +0x04e7, 0x04e7, +0x04e9, 0x04e9, +0x04eb, 0x04eb, +0x04ed, 0x04ed, +0x04ef, 0x04ef, +0x04f1, 0x04f1, +0x04f3, 0x04f3, +0x04f5, 0x04f5, +0x04f7, 0x04f7, +0x04f9, 0x04f9, +0x04fb, 0x04fb, +0x04fd, 0x04fd, +0x04ff, 0x04ff, +0x0501, 0x0501, +0x0503, 0x0503, +0x0505, 0x0505, +0x0507, 0x0507, +0x0509, 0x0509, +0x050b, 0x050b, +0x050d, 0x050d, +0x050f, 0x050f, +0x0511, 0x0511, +0x0513, 0x0513, +0x0515, 0x0515, +0x0517, 0x0517, +0x0519, 0x0519, +0x051b, 0x051b, +0x051d, 0x051d, +0x051f, 0x051f, +0x0521, 0x0521, +0x0523, 0x0523, +0x0525, 0x0525, +0x0527, 0x0527, +0x0529, 0x0529, +0x052b, 0x052b, +0x052d, 0x052d, +0x052f, 0x052f, +0x0561, 0x0587, +0x10d0, 0x10fa, +0x10fd, 0x10ff, +0x13f8, 0x13fd, +0x1c80, 0x1c88, +0x1c8a, 0x1c8a, +0x1d79, 0x1d79, +0x1d7d, 0x1d7d, +0x1d8e, 0x1d8e, +0x1e01, 0x1e01, +0x1e03, 0x1e03, +0x1e05, 0x1e05, +0x1e07, 0x1e07, +0x1e09, 0x1e09, +0x1e0b, 0x1e0b, +0x1e0d, 0x1e0d, +0x1e0f, 0x1e0f, +0x1e11, 0x1e11, +0x1e13, 0x1e13, +0x1e15, 0x1e15, +0x1e17, 0x1e17, +0x1e19, 0x1e19, +0x1e1b, 0x1e1b, +0x1e1d, 0x1e1d, +0x1e1f, 0x1e1f, +0x1e21, 0x1e21, +0x1e23, 0x1e23, +0x1e25, 0x1e25, +0x1e27, 0x1e27, +0x1e29, 0x1e29, +0x1e2b, 0x1e2b, +0x1e2d, 0x1e2d, +0x1e2f, 0x1e2f, +0x1e31, 0x1e31, +0x1e33, 0x1e33, +0x1e35, 0x1e35, +0x1e37, 0x1e37, +0x1e39, 0x1e39, +0x1e3b, 0x1e3b, +0x1e3d, 0x1e3d, +0x1e3f, 0x1e3f, +0x1e41, 0x1e41, +0x1e43, 0x1e43, +0x1e45, 0x1e45, +0x1e47, 0x1e47, +0x1e49, 0x1e49, +0x1e4b, 0x1e4b, +0x1e4d, 0x1e4d, +0x1e4f, 0x1e4f, +0x1e51, 0x1e51, +0x1e53, 0x1e53, +0x1e55, 0x1e55, +0x1e57, 0x1e57, +0x1e59, 0x1e59, +0x1e5b, 0x1e5b, +0x1e5d, 0x1e5d, +0x1e5f, 0x1e5f, +0x1e61, 0x1e61, +0x1e63, 0x1e63, +0x1e65, 0x1e65, +0x1e67, 0x1e67, +0x1e69, 0x1e69, +0x1e6b, 0x1e6b, +0x1e6d, 0x1e6d, +0x1e6f, 0x1e6f, +0x1e71, 0x1e71, +0x1e73, 0x1e73, +0x1e75, 0x1e75, +0x1e77, 0x1e77, +0x1e79, 0x1e79, +0x1e7b, 0x1e7b, +0x1e7d, 0x1e7d, +0x1e7f, 0x1e7f, +0x1e81, 0x1e81, +0x1e83, 0x1e83, +0x1e85, 0x1e85, +0x1e87, 0x1e87, +0x1e89, 0x1e89, +0x1e8b, 0x1e8b, +0x1e8d, 0x1e8d, +0x1e8f, 0x1e8f, +0x1e91, 0x1e91, +0x1e93, 0x1e93, +0x1e95, 0x1e9b, +0x1ea1, 0x1ea1, +0x1ea3, 0x1ea3, +0x1ea5, 0x1ea5, +0x1ea7, 0x1ea7, +0x1ea9, 0x1ea9, +0x1eab, 0x1eab, +0x1ead, 0x1ead, +0x1eaf, 0x1eaf, +0x1eb1, 0x1eb1, +0x1eb3, 0x1eb3, +0x1eb5, 0x1eb5, +0x1eb7, 0x1eb7, +0x1eb9, 0x1eb9, +0x1ebb, 0x1ebb, +0x1ebd, 0x1ebd, +0x1ebf, 0x1ebf, +0x1ec1, 0x1ec1, +0x1ec3, 0x1ec3, +0x1ec5, 0x1ec5, +0x1ec7, 0x1ec7, +0x1ec9, 0x1ec9, +0x1ecb, 0x1ecb, +0x1ecd, 0x1ecd, +0x1ecf, 0x1ecf, +0x1ed1, 0x1ed1, +0x1ed3, 0x1ed3, +0x1ed5, 0x1ed5, +0x1ed7, 0x1ed7, +0x1ed9, 0x1ed9, +0x1edb, 0x1edb, +0x1edd, 0x1edd, +0x1edf, 0x1edf, +0x1ee1, 0x1ee1, +0x1ee3, 0x1ee3, +0x1ee5, 0x1ee5, +0x1ee7, 0x1ee7, +0x1ee9, 0x1ee9, +0x1eeb, 0x1eeb, +0x1eed, 0x1eed, +0x1eef, 0x1eef, +0x1ef1, 0x1ef1, +0x1ef3, 0x1ef3, +0x1ef5, 0x1ef5, +0x1ef7, 0x1ef7, +0x1ef9, 0x1ef9, +0x1efb, 0x1efb, +0x1efd, 0x1efd, +0x1eff, 0x1f07, +0x1f10, 0x1f15, +0x1f20, 0x1f27, +0x1f30, 0x1f37, +0x1f40, 0x1f45, +0x1f50, 0x1f57, +0x1f60, 0x1f67, +0x1f70, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fb7, +0x1fbc, 0x1fbc, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fc7, +0x1fcc, 0x1fcc, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fd7, +0x1fe0, 0x1fe7, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ff7, +0x1ffc, 0x1ffc, +0x214e, 0x214e, +0x2170, 0x217f, +0x2184, 0x2184, +0x24d0, 0x24e9, +0x2c30, 0x2c5f, +0x2c61, 0x2c61, +0x2c65, 0x2c66, +0x2c68, 0x2c68, +0x2c6a, 0x2c6a, +0x2c6c, 0x2c6c, +0x2c73, 0x2c73, +0x2c76, 0x2c76, +0x2c81, 0x2c81, +0x2c83, 0x2c83, +0x2c85, 0x2c85, +0x2c87, 0x2c87, +0x2c89, 0x2c89, +0x2c8b, 0x2c8b, +0x2c8d, 0x2c8d, +0x2c8f, 0x2c8f, +0x2c91, 0x2c91, +0x2c93, 0x2c93, +0x2c95, 0x2c95, +0x2c97, 0x2c97, +0x2c99, 0x2c99, +0x2c9b, 0x2c9b, +0x2c9d, 0x2c9d, +0x2c9f, 0x2c9f, +0x2ca1, 0x2ca1, +0x2ca3, 0x2ca3, +0x2ca5, 0x2ca5, +0x2ca7, 0x2ca7, +0x2ca9, 0x2ca9, +0x2cab, 0x2cab, +0x2cad, 0x2cad, +0x2caf, 0x2caf, +0x2cb1, 0x2cb1, +0x2cb3, 0x2cb3, +0x2cb5, 0x2cb5, +0x2cb7, 0x2cb7, +0x2cb9, 0x2cb9, +0x2cbb, 0x2cbb, +0x2cbd, 0x2cbd, +0x2cbf, 0x2cbf, +0x2cc1, 0x2cc1, +0x2cc3, 0x2cc3, +0x2cc5, 0x2cc5, +0x2cc7, 0x2cc7, +0x2cc9, 0x2cc9, +0x2ccb, 0x2ccb, +0x2ccd, 0x2ccd, +0x2ccf, 0x2ccf, +0x2cd1, 0x2cd1, +0x2cd3, 0x2cd3, +0x2cd5, 0x2cd5, +0x2cd7, 0x2cd7, +0x2cd9, 0x2cd9, +0x2cdb, 0x2cdb, +0x2cdd, 0x2cdd, +0x2cdf, 0x2cdf, +0x2ce1, 0x2ce1, +0x2ce3, 0x2ce3, +0x2cec, 0x2cec, +0x2cee, 0x2cee, +0x2cf3, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0xa641, 0xa641, +0xa643, 0xa643, +0xa645, 0xa645, +0xa647, 0xa647, +0xa649, 0xa649, +0xa64b, 0xa64b, +0xa64d, 0xa64d, +0xa64f, 0xa64f, +0xa651, 0xa651, +0xa653, 0xa653, +0xa655, 0xa655, +0xa657, 0xa657, +0xa659, 0xa659, +0xa65b, 0xa65b, +0xa65d, 0xa65d, +0xa65f, 0xa65f, +0xa661, 0xa661, +0xa663, 0xa663, +0xa665, 0xa665, +0xa667, 0xa667, +0xa669, 0xa669, +0xa66b, 0xa66b, +0xa66d, 0xa66d, +0xa681, 0xa681, +0xa683, 0xa683, +0xa685, 0xa685, +0xa687, 0xa687, +0xa689, 0xa689, +0xa68b, 0xa68b, +0xa68d, 0xa68d, +0xa68f, 0xa68f, +0xa691, 0xa691, +0xa693, 0xa693, +0xa695, 0xa695, +0xa697, 0xa697, +0xa699, 0xa699, +0xa69b, 0xa69b, +0xa723, 0xa723, +0xa725, 0xa725, +0xa727, 0xa727, +0xa729, 0xa729, +0xa72b, 0xa72b, +0xa72d, 0xa72d, +0xa72f, 0xa72f, +0xa733, 0xa733, +0xa735, 0xa735, +0xa737, 0xa737, +0xa739, 0xa739, +0xa73b, 0xa73b, +0xa73d, 0xa73d, +0xa73f, 0xa73f, +0xa741, 0xa741, +0xa743, 0xa743, +0xa745, 0xa745, +0xa747, 0xa747, +0xa749, 0xa749, +0xa74b, 0xa74b, +0xa74d, 0xa74d, +0xa74f, 0xa74f, +0xa751, 0xa751, +0xa753, 0xa753, +0xa755, 0xa755, +0xa757, 0xa757, +0xa759, 0xa759, +0xa75b, 0xa75b, +0xa75d, 0xa75d, +0xa75f, 0xa75f, +0xa761, 0xa761, +0xa763, 0xa763, +0xa765, 0xa765, +0xa767, 0xa767, +0xa769, 0xa769, +0xa76b, 0xa76b, +0xa76d, 0xa76d, +0xa76f, 0xa76f, +0xa77a, 0xa77a, +0xa77c, 0xa77c, +0xa77f, 0xa77f, +0xa781, 0xa781, +0xa783, 0xa783, +0xa785, 0xa785, +0xa787, 0xa787, +0xa78c, 0xa78c, +0xa791, 0xa791, +0xa793, 0xa794, +0xa797, 0xa797, +0xa799, 0xa799, +0xa79b, 0xa79b, +0xa79d, 0xa79d, +0xa79f, 0xa79f, +0xa7a1, 0xa7a1, +0xa7a3, 0xa7a3, +0xa7a5, 0xa7a5, +0xa7a7, 0xa7a7, +0xa7a9, 0xa7a9, +0xa7b5, 0xa7b5, +0xa7b7, 0xa7b7, +0xa7b9, 0xa7b9, +0xa7bb, 0xa7bb, +0xa7bd, 0xa7bd, +0xa7bf, 0xa7bf, +0xa7c1, 0xa7c1, +0xa7c3, 0xa7c3, +0xa7c8, 0xa7c8, +0xa7ca, 0xa7ca, +0xa7cd, 0xa7cd, +0xa7d1, 0xa7d1, +0xa7d7, 0xa7d7, +0xa7d9, 0xa7d9, +0xa7db, 0xa7db, +0xa7f6, 0xa7f6, +0xab53, 0xab53, +0xab70, 0xabbf, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xff41, 0xff5a, +0x10428, 0x1044f, +0x104d8, 0x104fb, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x10cc0, 0x10cf2, +0x10d70, 0x10d85, +0x118c0, 0x118df, +0x16e60, 0x16e7f, +0x1e922, 0x1e943, +}; /* END of CR_Changes_When_Uppercased */ + +/* PROPERTY: 'Cherokee': Script */ +static const OnigCodePoint +CR_Cherokee[] = { 3, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0xab70, 0xabbf, +}; /* END of CR_Cherokee */ + +/* PROPERTY: 'Chorasmian': Script */ +static const OnigCodePoint +CR_Chorasmian[] = { 1, +0x10fb0, 0x10fcb, +}; /* END of CR_Chorasmian */ + +/* PROPERTY: 'Cn': General Category */ +static const OnigCodePoint +CR_Cn[] = { 731, +0x0378, 0x0379, +0x0380, 0x0383, +0x038b, 0x038b, +0x038d, 0x038d, +0x03a2, 0x03a2, +0x0530, 0x0530, +0x0557, 0x0558, +0x058b, 0x058c, +0x0590, 0x0590, +0x05c8, 0x05cf, +0x05eb, 0x05ee, +0x05f5, 0x05ff, +0x070e, 0x070e, +0x074b, 0x074c, +0x07b2, 0x07bf, +0x07fb, 0x07fc, +0x082e, 0x082f, +0x083f, 0x083f, +0x085c, 0x085d, +0x085f, 0x085f, +0x086b, 0x086f, +0x088f, 0x088f, +0x0892, 0x0896, +0x0984, 0x0984, +0x098d, 0x098e, +0x0991, 0x0992, +0x09a9, 0x09a9, +0x09b1, 0x09b1, +0x09b3, 0x09b5, +0x09ba, 0x09bb, +0x09c5, 0x09c6, +0x09c9, 0x09ca, +0x09cf, 0x09d6, +0x09d8, 0x09db, +0x09de, 0x09de, +0x09e4, 0x09e5, +0x09ff, 0x0a00, +0x0a04, 0x0a04, +0x0a0b, 0x0a0e, +0x0a11, 0x0a12, +0x0a29, 0x0a29, +0x0a31, 0x0a31, +0x0a34, 0x0a34, +0x0a37, 0x0a37, +0x0a3a, 0x0a3b, +0x0a3d, 0x0a3d, +0x0a43, 0x0a46, +0x0a49, 0x0a4a, +0x0a4e, 0x0a50, +0x0a52, 0x0a58, +0x0a5d, 0x0a5d, +0x0a5f, 0x0a65, +0x0a77, 0x0a80, +0x0a84, 0x0a84, +0x0a8e, 0x0a8e, +0x0a92, 0x0a92, +0x0aa9, 0x0aa9, +0x0ab1, 0x0ab1, +0x0ab4, 0x0ab4, +0x0aba, 0x0abb, +0x0ac6, 0x0ac6, +0x0aca, 0x0aca, +0x0ace, 0x0acf, +0x0ad1, 0x0adf, +0x0ae4, 0x0ae5, +0x0af2, 0x0af8, +0x0b00, 0x0b00, +0x0b04, 0x0b04, +0x0b0d, 0x0b0e, +0x0b11, 0x0b12, +0x0b29, 0x0b29, +0x0b31, 0x0b31, +0x0b34, 0x0b34, +0x0b3a, 0x0b3b, +0x0b45, 0x0b46, +0x0b49, 0x0b4a, +0x0b4e, 0x0b54, +0x0b58, 0x0b5b, +0x0b5e, 0x0b5e, +0x0b64, 0x0b65, +0x0b78, 0x0b81, +0x0b84, 0x0b84, +0x0b8b, 0x0b8d, +0x0b91, 0x0b91, +0x0b96, 0x0b98, +0x0b9b, 0x0b9b, +0x0b9d, 0x0b9d, +0x0ba0, 0x0ba2, +0x0ba5, 0x0ba7, +0x0bab, 0x0bad, +0x0bba, 0x0bbd, +0x0bc3, 0x0bc5, +0x0bc9, 0x0bc9, +0x0bce, 0x0bcf, +0x0bd1, 0x0bd6, +0x0bd8, 0x0be5, +0x0bfb, 0x0bff, +0x0c0d, 0x0c0d, +0x0c11, 0x0c11, +0x0c29, 0x0c29, +0x0c3a, 0x0c3b, +0x0c45, 0x0c45, +0x0c49, 0x0c49, +0x0c4e, 0x0c54, +0x0c57, 0x0c57, +0x0c5b, 0x0c5c, +0x0c5e, 0x0c5f, +0x0c64, 0x0c65, +0x0c70, 0x0c76, +0x0c8d, 0x0c8d, +0x0c91, 0x0c91, +0x0ca9, 0x0ca9, +0x0cb4, 0x0cb4, +0x0cba, 0x0cbb, +0x0cc5, 0x0cc5, +0x0cc9, 0x0cc9, +0x0cce, 0x0cd4, +0x0cd7, 0x0cdc, +0x0cdf, 0x0cdf, +0x0ce4, 0x0ce5, +0x0cf0, 0x0cf0, +0x0cf4, 0x0cff, +0x0d0d, 0x0d0d, +0x0d11, 0x0d11, +0x0d45, 0x0d45, +0x0d49, 0x0d49, +0x0d50, 0x0d53, +0x0d64, 0x0d65, +0x0d80, 0x0d80, +0x0d84, 0x0d84, +0x0d97, 0x0d99, +0x0db2, 0x0db2, +0x0dbc, 0x0dbc, +0x0dbe, 0x0dbf, +0x0dc7, 0x0dc9, +0x0dcb, 0x0dce, +0x0dd5, 0x0dd5, +0x0dd7, 0x0dd7, +0x0de0, 0x0de5, +0x0df0, 0x0df1, +0x0df5, 0x0e00, +0x0e3b, 0x0e3e, +0x0e5c, 0x0e80, +0x0e83, 0x0e83, +0x0e85, 0x0e85, +0x0e8b, 0x0e8b, +0x0ea4, 0x0ea4, +0x0ea6, 0x0ea6, +0x0ebe, 0x0ebf, +0x0ec5, 0x0ec5, +0x0ec7, 0x0ec7, +0x0ecf, 0x0ecf, +0x0eda, 0x0edb, +0x0ee0, 0x0eff, +0x0f48, 0x0f48, +0x0f6d, 0x0f70, +0x0f98, 0x0f98, +0x0fbd, 0x0fbd, +0x0fcd, 0x0fcd, +0x0fdb, 0x0fff, +0x10c6, 0x10c6, +0x10c8, 0x10cc, +0x10ce, 0x10cf, +0x1249, 0x1249, +0x124e, 0x124f, +0x1257, 0x1257, +0x1259, 0x1259, +0x125e, 0x125f, +0x1289, 0x1289, +0x128e, 0x128f, +0x12b1, 0x12b1, +0x12b6, 0x12b7, +0x12bf, 0x12bf, +0x12c1, 0x12c1, +0x12c6, 0x12c7, +0x12d7, 0x12d7, +0x1311, 0x1311, +0x1316, 0x1317, +0x135b, 0x135c, +0x137d, 0x137f, +0x139a, 0x139f, +0x13f6, 0x13f7, +0x13fe, 0x13ff, +0x169d, 0x169f, +0x16f9, 0x16ff, +0x1716, 0x171e, +0x1737, 0x173f, +0x1754, 0x175f, +0x176d, 0x176d, +0x1771, 0x1771, +0x1774, 0x177f, +0x17de, 0x17df, +0x17ea, 0x17ef, +0x17fa, 0x17ff, +0x181a, 0x181f, +0x1879, 0x187f, +0x18ab, 0x18af, +0x18f6, 0x18ff, +0x191f, 0x191f, +0x192c, 0x192f, +0x193c, 0x193f, +0x1941, 0x1943, +0x196e, 0x196f, +0x1975, 0x197f, +0x19ac, 0x19af, +0x19ca, 0x19cf, +0x19db, 0x19dd, +0x1a1c, 0x1a1d, +0x1a5f, 0x1a5f, +0x1a7d, 0x1a7e, +0x1a8a, 0x1a8f, +0x1a9a, 0x1a9f, +0x1aae, 0x1aaf, +0x1acf, 0x1aff, +0x1b4d, 0x1b4d, +0x1bf4, 0x1bfb, +0x1c38, 0x1c3a, +0x1c4a, 0x1c4c, +0x1c8b, 0x1c8f, +0x1cbb, 0x1cbc, +0x1cc8, 0x1ccf, +0x1cfb, 0x1cff, +0x1f16, 0x1f17, +0x1f1e, 0x1f1f, +0x1f46, 0x1f47, +0x1f4e, 0x1f4f, +0x1f58, 0x1f58, +0x1f5a, 0x1f5a, +0x1f5c, 0x1f5c, +0x1f5e, 0x1f5e, +0x1f7e, 0x1f7f, +0x1fb5, 0x1fb5, +0x1fc5, 0x1fc5, +0x1fd4, 0x1fd5, +0x1fdc, 0x1fdc, +0x1ff0, 0x1ff1, +0x1ff5, 0x1ff5, +0x1fff, 0x1fff, +0x2065, 0x2065, +0x2072, 0x2073, +0x208f, 0x208f, +0x209d, 0x209f, +0x20c1, 0x20cf, +0x20f1, 0x20ff, +0x218c, 0x218f, +0x242a, 0x243f, +0x244b, 0x245f, +0x2b74, 0x2b75, +0x2b96, 0x2b96, +0x2cf4, 0x2cf8, +0x2d26, 0x2d26, +0x2d28, 0x2d2c, +0x2d2e, 0x2d2f, +0x2d68, 0x2d6e, +0x2d71, 0x2d7e, +0x2d97, 0x2d9f, +0x2da7, 0x2da7, +0x2daf, 0x2daf, +0x2db7, 0x2db7, +0x2dbf, 0x2dbf, +0x2dc7, 0x2dc7, +0x2dcf, 0x2dcf, +0x2dd7, 0x2dd7, +0x2ddf, 0x2ddf, +0x2e5e, 0x2e7f, +0x2e9a, 0x2e9a, +0x2ef4, 0x2eff, +0x2fd6, 0x2fef, +0x3040, 0x3040, +0x3097, 0x3098, +0x3100, 0x3104, +0x3130, 0x3130, +0x318f, 0x318f, +0x31e6, 0x31ee, +0x321f, 0x321f, +0xa48d, 0xa48f, +0xa4c7, 0xa4cf, +0xa62c, 0xa63f, +0xa6f8, 0xa6ff, +0xa7ce, 0xa7cf, +0xa7d2, 0xa7d2, +0xa7d4, 0xa7d4, +0xa7dd, 0xa7f1, +0xa82d, 0xa82f, +0xa83a, 0xa83f, +0xa878, 0xa87f, +0xa8c6, 0xa8cd, +0xa8da, 0xa8df, +0xa954, 0xa95e, +0xa97d, 0xa97f, +0xa9ce, 0xa9ce, +0xa9da, 0xa9dd, +0xa9ff, 0xa9ff, +0xaa37, 0xaa3f, +0xaa4e, 0xaa4f, +0xaa5a, 0xaa5b, +0xaac3, 0xaada, +0xaaf7, 0xab00, +0xab07, 0xab08, +0xab0f, 0xab10, +0xab17, 0xab1f, +0xab27, 0xab27, +0xab2f, 0xab2f, +0xab6c, 0xab6f, +0xabee, 0xabef, +0xabfa, 0xabff, +0xd7a4, 0xd7af, +0xd7c7, 0xd7ca, +0xd7fc, 0xd7ff, +0xfa6e, 0xfa6f, +0xfada, 0xfaff, +0xfb07, 0xfb12, +0xfb18, 0xfb1c, +0xfb37, 0xfb37, +0xfb3d, 0xfb3d, +0xfb3f, 0xfb3f, +0xfb42, 0xfb42, +0xfb45, 0xfb45, +0xfbc3, 0xfbd2, +0xfd90, 0xfd91, +0xfdc8, 0xfdce, +0xfdd0, 0xfdef, +0xfe1a, 0xfe1f, +0xfe53, 0xfe53, +0xfe67, 0xfe67, +0xfe6c, 0xfe6f, +0xfe75, 0xfe75, +0xfefd, 0xfefe, +0xff00, 0xff00, +0xffbf, 0xffc1, +0xffc8, 0xffc9, +0xffd0, 0xffd1, +0xffd8, 0xffd9, +0xffdd, 0xffdf, +0xffe7, 0xffe7, +0xffef, 0xfff8, +0xfffe, 0xffff, +0x1000c, 0x1000c, +0x10027, 0x10027, +0x1003b, 0x1003b, +0x1003e, 0x1003e, +0x1004e, 0x1004f, +0x1005e, 0x1007f, +0x100fb, 0x100ff, +0x10103, 0x10106, +0x10134, 0x10136, +0x1018f, 0x1018f, +0x1019d, 0x1019f, +0x101a1, 0x101cf, +0x101fe, 0x1027f, +0x1029d, 0x1029f, +0x102d1, 0x102df, +0x102fc, 0x102ff, +0x10324, 0x1032c, +0x1034b, 0x1034f, +0x1037b, 0x1037f, +0x1039e, 0x1039e, +0x103c4, 0x103c7, +0x103d6, 0x103ff, +0x1049e, 0x1049f, +0x104aa, 0x104af, +0x104d4, 0x104d7, +0x104fc, 0x104ff, +0x10528, 0x1052f, +0x10564, 0x1056e, +0x1057b, 0x1057b, +0x1058b, 0x1058b, +0x10593, 0x10593, +0x10596, 0x10596, +0x105a2, 0x105a2, +0x105b2, 0x105b2, +0x105ba, 0x105ba, +0x105bd, 0x105bf, +0x105f4, 0x105ff, +0x10737, 0x1073f, +0x10756, 0x1075f, +0x10768, 0x1077f, +0x10786, 0x10786, +0x107b1, 0x107b1, +0x107bb, 0x107ff, +0x10806, 0x10807, +0x10809, 0x10809, +0x10836, 0x10836, +0x10839, 0x1083b, +0x1083d, 0x1083e, +0x10856, 0x10856, +0x1089f, 0x108a6, +0x108b0, 0x108df, +0x108f3, 0x108f3, +0x108f6, 0x108fa, +0x1091c, 0x1091e, +0x1093a, 0x1093e, +0x10940, 0x1097f, +0x109b8, 0x109bb, +0x109d0, 0x109d1, +0x10a04, 0x10a04, +0x10a07, 0x10a0b, +0x10a14, 0x10a14, +0x10a18, 0x10a18, +0x10a36, 0x10a37, +0x10a3b, 0x10a3e, +0x10a49, 0x10a4f, +0x10a59, 0x10a5f, +0x10aa0, 0x10abf, +0x10ae7, 0x10aea, +0x10af7, 0x10aff, +0x10b36, 0x10b38, +0x10b56, 0x10b57, +0x10b73, 0x10b77, +0x10b92, 0x10b98, +0x10b9d, 0x10ba8, +0x10bb0, 0x10bff, +0x10c49, 0x10c7f, +0x10cb3, 0x10cbf, +0x10cf3, 0x10cf9, +0x10d28, 0x10d2f, +0x10d3a, 0x10d3f, +0x10d66, 0x10d68, +0x10d86, 0x10d8d, +0x10d90, 0x10e5f, +0x10e7f, 0x10e7f, +0x10eaa, 0x10eaa, +0x10eae, 0x10eaf, +0x10eb2, 0x10ec1, +0x10ec5, 0x10efb, +0x10f28, 0x10f2f, +0x10f5a, 0x10f6f, +0x10f8a, 0x10faf, +0x10fcc, 0x10fdf, +0x10ff7, 0x10fff, +0x1104e, 0x11051, +0x11076, 0x1107e, +0x110c3, 0x110cc, +0x110ce, 0x110cf, +0x110e9, 0x110ef, +0x110fa, 0x110ff, +0x11135, 0x11135, +0x11148, 0x1114f, +0x11177, 0x1117f, +0x111e0, 0x111e0, +0x111f5, 0x111ff, +0x11212, 0x11212, +0x11242, 0x1127f, +0x11287, 0x11287, +0x11289, 0x11289, +0x1128e, 0x1128e, +0x1129e, 0x1129e, +0x112aa, 0x112af, +0x112eb, 0x112ef, +0x112fa, 0x112ff, +0x11304, 0x11304, +0x1130d, 0x1130e, +0x11311, 0x11312, +0x11329, 0x11329, +0x11331, 0x11331, +0x11334, 0x11334, +0x1133a, 0x1133a, +0x11345, 0x11346, +0x11349, 0x1134a, +0x1134e, 0x1134f, +0x11351, 0x11356, +0x11358, 0x1135c, +0x11364, 0x11365, +0x1136d, 0x1136f, +0x11375, 0x1137f, +0x1138a, 0x1138a, +0x1138c, 0x1138d, +0x1138f, 0x1138f, +0x113b6, 0x113b6, +0x113c1, 0x113c1, +0x113c3, 0x113c4, +0x113c6, 0x113c6, +0x113cb, 0x113cb, +0x113d6, 0x113d6, +0x113d9, 0x113e0, +0x113e3, 0x113ff, +0x1145c, 0x1145c, +0x11462, 0x1147f, +0x114c8, 0x114cf, +0x114da, 0x1157f, +0x115b6, 0x115b7, +0x115de, 0x115ff, +0x11645, 0x1164f, +0x1165a, 0x1165f, +0x1166d, 0x1167f, +0x116ba, 0x116bf, +0x116ca, 0x116cf, +0x116e4, 0x116ff, +0x1171b, 0x1171c, +0x1172c, 0x1172f, +0x11747, 0x117ff, +0x1183c, 0x1189f, +0x118f3, 0x118fe, +0x11907, 0x11908, +0x1190a, 0x1190b, +0x11914, 0x11914, +0x11917, 0x11917, +0x11936, 0x11936, +0x11939, 0x1193a, +0x11947, 0x1194f, +0x1195a, 0x1199f, +0x119a8, 0x119a9, +0x119d8, 0x119d9, +0x119e5, 0x119ff, +0x11a48, 0x11a4f, +0x11aa3, 0x11aaf, +0x11af9, 0x11aff, +0x11b0a, 0x11bbf, +0x11be2, 0x11bef, +0x11bfa, 0x11bff, +0x11c09, 0x11c09, +0x11c37, 0x11c37, +0x11c46, 0x11c4f, +0x11c6d, 0x11c6f, +0x11c90, 0x11c91, +0x11ca8, 0x11ca8, +0x11cb7, 0x11cff, +0x11d07, 0x11d07, +0x11d0a, 0x11d0a, +0x11d37, 0x11d39, +0x11d3b, 0x11d3b, +0x11d3e, 0x11d3e, +0x11d48, 0x11d4f, +0x11d5a, 0x11d5f, +0x11d66, 0x11d66, +0x11d69, 0x11d69, +0x11d8f, 0x11d8f, +0x11d92, 0x11d92, +0x11d99, 0x11d9f, +0x11daa, 0x11edf, +0x11ef9, 0x11eff, +0x11f11, 0x11f11, +0x11f3b, 0x11f3d, +0x11f5b, 0x11faf, +0x11fb1, 0x11fbf, +0x11ff2, 0x11ffe, +0x1239a, 0x123ff, +0x1246f, 0x1246f, +0x12475, 0x1247f, +0x12544, 0x12f8f, +0x12ff3, 0x12fff, +0x13456, 0x1345f, +0x143fb, 0x143ff, +0x14647, 0x160ff, +0x1613a, 0x167ff, +0x16a39, 0x16a3f, +0x16a5f, 0x16a5f, +0x16a6a, 0x16a6d, +0x16abf, 0x16abf, +0x16aca, 0x16acf, +0x16aee, 0x16aef, +0x16af6, 0x16aff, +0x16b46, 0x16b4f, +0x16b5a, 0x16b5a, +0x16b62, 0x16b62, +0x16b78, 0x16b7c, +0x16b90, 0x16d3f, +0x16d7a, 0x16e3f, +0x16e9b, 0x16eff, +0x16f4b, 0x16f4e, +0x16f88, 0x16f8e, +0x16fa0, 0x16fdf, +0x16fe5, 0x16fef, +0x16ff2, 0x16fff, +0x187f8, 0x187ff, +0x18cd6, 0x18cfe, +0x18d09, 0x1afef, +0x1aff4, 0x1aff4, +0x1affc, 0x1affc, +0x1afff, 0x1afff, +0x1b123, 0x1b131, +0x1b133, 0x1b14f, +0x1b153, 0x1b154, +0x1b156, 0x1b163, +0x1b168, 0x1b16f, +0x1b2fc, 0x1bbff, +0x1bc6b, 0x1bc6f, +0x1bc7d, 0x1bc7f, +0x1bc89, 0x1bc8f, +0x1bc9a, 0x1bc9b, +0x1bca4, 0x1cbff, +0x1ccfa, 0x1ccff, +0x1ceb4, 0x1ceff, +0x1cf2e, 0x1cf2f, +0x1cf47, 0x1cf4f, +0x1cfc4, 0x1cfff, +0x1d0f6, 0x1d0ff, +0x1d127, 0x1d128, +0x1d1eb, 0x1d1ff, +0x1d246, 0x1d2bf, +0x1d2d4, 0x1d2df, +0x1d2f4, 0x1d2ff, +0x1d357, 0x1d35f, +0x1d379, 0x1d3ff, +0x1d455, 0x1d455, +0x1d49d, 0x1d49d, +0x1d4a0, 0x1d4a1, +0x1d4a3, 0x1d4a4, +0x1d4a7, 0x1d4a8, +0x1d4ad, 0x1d4ad, +0x1d4ba, 0x1d4ba, +0x1d4bc, 0x1d4bc, +0x1d4c4, 0x1d4c4, +0x1d506, 0x1d506, +0x1d50b, 0x1d50c, +0x1d515, 0x1d515, +0x1d51d, 0x1d51d, +0x1d53a, 0x1d53a, +0x1d53f, 0x1d53f, +0x1d545, 0x1d545, +0x1d547, 0x1d549, +0x1d551, 0x1d551, +0x1d6a6, 0x1d6a7, +0x1d7cc, 0x1d7cd, +0x1da8c, 0x1da9a, +0x1daa0, 0x1daa0, +0x1dab0, 0x1deff, +0x1df1f, 0x1df24, +0x1df2b, 0x1dfff, +0x1e007, 0x1e007, +0x1e019, 0x1e01a, +0x1e022, 0x1e022, +0x1e025, 0x1e025, +0x1e02b, 0x1e02f, +0x1e06e, 0x1e08e, +0x1e090, 0x1e0ff, +0x1e12d, 0x1e12f, +0x1e13e, 0x1e13f, +0x1e14a, 0x1e14d, +0x1e150, 0x1e28f, +0x1e2af, 0x1e2bf, +0x1e2fa, 0x1e2fe, +0x1e300, 0x1e4cf, +0x1e4fa, 0x1e5cf, +0x1e5fb, 0x1e5fe, +0x1e600, 0x1e7df, +0x1e7e7, 0x1e7e7, +0x1e7ec, 0x1e7ec, +0x1e7ef, 0x1e7ef, +0x1e7ff, 0x1e7ff, +0x1e8c5, 0x1e8c6, +0x1e8d7, 0x1e8ff, +0x1e94c, 0x1e94f, +0x1e95a, 0x1e95d, +0x1e960, 0x1ec70, +0x1ecb5, 0x1ed00, +0x1ed3e, 0x1edff, +0x1ee04, 0x1ee04, +0x1ee20, 0x1ee20, +0x1ee23, 0x1ee23, +0x1ee25, 0x1ee26, +0x1ee28, 0x1ee28, +0x1ee33, 0x1ee33, +0x1ee38, 0x1ee38, +0x1ee3a, 0x1ee3a, +0x1ee3c, 0x1ee41, +0x1ee43, 0x1ee46, +0x1ee48, 0x1ee48, +0x1ee4a, 0x1ee4a, +0x1ee4c, 0x1ee4c, +0x1ee50, 0x1ee50, +0x1ee53, 0x1ee53, +0x1ee55, 0x1ee56, +0x1ee58, 0x1ee58, +0x1ee5a, 0x1ee5a, +0x1ee5c, 0x1ee5c, +0x1ee5e, 0x1ee5e, +0x1ee60, 0x1ee60, +0x1ee63, 0x1ee63, +0x1ee65, 0x1ee66, +0x1ee6b, 0x1ee6b, +0x1ee73, 0x1ee73, +0x1ee78, 0x1ee78, +0x1ee7d, 0x1ee7d, +0x1ee7f, 0x1ee7f, +0x1ee8a, 0x1ee8a, +0x1ee9c, 0x1eea0, +0x1eea4, 0x1eea4, +0x1eeaa, 0x1eeaa, +0x1eebc, 0x1eeef, +0x1eef2, 0x1efff, +0x1f02c, 0x1f02f, +0x1f094, 0x1f09f, +0x1f0af, 0x1f0b0, +0x1f0c0, 0x1f0c0, +0x1f0d0, 0x1f0d0, +0x1f0f6, 0x1f0ff, +0x1f1ae, 0x1f1e5, +0x1f203, 0x1f20f, +0x1f23c, 0x1f23f, +0x1f249, 0x1f24f, +0x1f252, 0x1f25f, +0x1f266, 0x1f2ff, +0x1f6d8, 0x1f6db, +0x1f6ed, 0x1f6ef, +0x1f6fd, 0x1f6ff, +0x1f777, 0x1f77a, +0x1f7da, 0x1f7df, +0x1f7ec, 0x1f7ef, +0x1f7f1, 0x1f7ff, +0x1f80c, 0x1f80f, +0x1f848, 0x1f84f, +0x1f85a, 0x1f85f, +0x1f888, 0x1f88f, +0x1f8ae, 0x1f8af, +0x1f8bc, 0x1f8bf, +0x1f8c2, 0x1f8ff, +0x1fa54, 0x1fa5f, +0x1fa6e, 0x1fa6f, +0x1fa7d, 0x1fa7f, +0x1fa8a, 0x1fa8e, +0x1fac7, 0x1facd, +0x1fadd, 0x1fade, +0x1faea, 0x1faef, +0x1faf9, 0x1faff, +0x1fb93, 0x1fb93, +0x1fbfa, 0x1ffff, +0x2a6e0, 0x2a6ff, +0x2b73a, 0x2b73f, +0x2b81e, 0x2b81f, +0x2cea2, 0x2ceaf, +0x2ebe1, 0x2ebef, +0x2ee5e, 0x2f7ff, +0x2fa1e, 0x2ffff, +0x3134b, 0x3134f, +0x323b0, 0xe0000, +0xe0002, 0xe001f, +0xe0080, 0xe00ff, +0xe01f0, 0xeffff, +0xffffe, 0xfffff, +0x10fffe, 0x10ffff, +}; /* END of CR_Cn */ + +/* PROPERTY: 'Co': General Category */ +static const OnigCodePoint +CR_Co[] = { 3, +0xe000, 0xf8ff, +0xf0000, 0xffffd, +0x100000, 0x10fffd, +}; /* END of CR_Co */ + +/* PROPERTY: 'Common': Script */ +static const OnigCodePoint +CR_Common[] = { 174, +0x0000, 0x0040, +0x005b, 0x0060, +0x007b, 0x00a9, +0x00ab, 0x00b9, +0x00bb, 0x00bf, +0x00d7, 0x00d7, +0x00f7, 0x00f7, +0x02b9, 0x02df, +0x02e5, 0x02e9, +0x02ec, 0x02ff, +0x0374, 0x0374, +0x037e, 0x037e, +0x0385, 0x0385, +0x0387, 0x0387, +0x0605, 0x0605, +0x060c, 0x060c, +0x061b, 0x061b, +0x061f, 0x061f, +0x0640, 0x0640, +0x06dd, 0x06dd, +0x08e2, 0x08e2, +0x0964, 0x0965, +0x0e3f, 0x0e3f, +0x0fd5, 0x0fd8, +0x10fb, 0x10fb, +0x16eb, 0x16ed, +0x1735, 0x1736, +0x1802, 0x1803, +0x1805, 0x1805, +0x1cd3, 0x1cd3, +0x1ce1, 0x1ce1, +0x1ce9, 0x1cec, +0x1cee, 0x1cf3, +0x1cf5, 0x1cf7, +0x1cfa, 0x1cfa, +0x2000, 0x200b, +0x200e, 0x2064, +0x2066, 0x2070, +0x2074, 0x207e, +0x2080, 0x208e, +0x20a0, 0x20c0, +0x2100, 0x2125, +0x2127, 0x2129, +0x212c, 0x2131, +0x2133, 0x214d, +0x214f, 0x215f, +0x2189, 0x218b, +0x2190, 0x2429, +0x2440, 0x244a, +0x2460, 0x27ff, +0x2900, 0x2b73, +0x2b76, 0x2b95, +0x2b97, 0x2bff, +0x2e00, 0x2e5d, +0x2ff0, 0x3004, +0x3006, 0x3006, +0x3008, 0x3020, +0x3030, 0x3037, +0x303c, 0x303f, +0x309b, 0x309c, +0x30a0, 0x30a0, +0x30fb, 0x30fc, +0x3190, 0x319f, +0x31c0, 0x31e5, +0x31ef, 0x31ef, +0x3220, 0x325f, +0x327f, 0x32cf, +0x32ff, 0x32ff, +0x3358, 0x33ff, +0x4dc0, 0x4dff, +0xa700, 0xa721, +0xa788, 0xa78a, +0xa830, 0xa839, +0xa92e, 0xa92e, +0xa9cf, 0xa9cf, +0xab5b, 0xab5b, +0xab6a, 0xab6b, +0xfd3e, 0xfd3f, +0xfe10, 0xfe19, +0xfe30, 0xfe52, +0xfe54, 0xfe66, +0xfe68, 0xfe6b, +0xfeff, 0xfeff, +0xff01, 0xff20, +0xff3b, 0xff40, +0xff5b, 0xff65, +0xff70, 0xff70, +0xff9e, 0xff9f, +0xffe0, 0xffe6, +0xffe8, 0xffee, +0xfff9, 0xfffd, +0x10100, 0x10102, +0x10107, 0x10133, +0x10137, 0x1013f, +0x10190, 0x1019c, +0x101d0, 0x101fc, +0x102e1, 0x102fb, +0x1bca0, 0x1bca3, +0x1cc00, 0x1ccf9, +0x1cd00, 0x1ceb3, +0x1cf50, 0x1cfc3, +0x1d000, 0x1d0f5, +0x1d100, 0x1d126, +0x1d129, 0x1d166, +0x1d16a, 0x1d17a, +0x1d183, 0x1d184, +0x1d18c, 0x1d1a9, +0x1d1ae, 0x1d1ea, +0x1d2c0, 0x1d2d3, +0x1d2e0, 0x1d2f3, +0x1d300, 0x1d356, +0x1d360, 0x1d378, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d7cb, +0x1d7ce, 0x1d7ff, +0x1ec71, 0x1ecb4, +0x1ed01, 0x1ed3d, +0x1f000, 0x1f02b, +0x1f030, 0x1f093, +0x1f0a0, 0x1f0ae, +0x1f0b1, 0x1f0bf, +0x1f0c1, 0x1f0cf, +0x1f0d1, 0x1f0f5, +0x1f100, 0x1f1ad, +0x1f1e6, 0x1f1ff, +0x1f201, 0x1f202, +0x1f210, 0x1f23b, +0x1f240, 0x1f248, +0x1f250, 0x1f251, +0x1f260, 0x1f265, +0x1f300, 0x1f6d7, +0x1f6dc, 0x1f6ec, +0x1f6f0, 0x1f6fc, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f800, 0x1f80b, +0x1f810, 0x1f847, +0x1f850, 0x1f859, +0x1f860, 0x1f887, +0x1f890, 0x1f8ad, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, +0x1f900, 0x1fa53, +0x1fa60, 0x1fa6d, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, +0x1fb00, 0x1fb92, +0x1fb94, 0x1fbf9, +0xe0001, 0xe0001, +0xe0020, 0xe007f, +}; /* END of CR_Common */ + +/* PROPERTY: 'Coptic': Script */ +static const OnigCodePoint +CR_Coptic[] = { 3, +0x03e2, 0x03ef, +0x2c80, 0x2cf3, +0x2cf9, 0x2cff, +}; /* END of CR_Coptic */ + +/* PROPERTY: 'Cs': General Category */ +static const OnigCodePoint +CR_Cs[] = { 1, +0xd800, 0xdfff, +}; /* END of CR_Cs */ + +/* PROPERTY: 'Cuneiform': Script */ +static const OnigCodePoint +CR_Cuneiform[] = { 4, +0x12000, 0x12399, +0x12400, 0x1246e, +0x12470, 0x12474, +0x12480, 0x12543, +}; /* END of CR_Cuneiform */ + +/* PROPERTY: 'Cypriot': Script */ +static const OnigCodePoint +CR_Cypriot[] = { 6, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x1083f, +}; /* END of CR_Cypriot */ + +/* PROPERTY: 'Cypro_Minoan': Script */ +static const OnigCodePoint +CR_Cypro_Minoan[] = { 1, +0x12f90, 0x12ff2, +}; /* END of CR_Cypro_Minoan */ + +/* PROPERTY: 'Cyrillic': Script */ +static const OnigCodePoint +CR_Cyrillic[] = { 10, +0x0400, 0x0484, +0x0487, 0x052f, +0x1c80, 0x1c8a, +0x1d2b, 0x1d2b, +0x1d78, 0x1d78, +0x2de0, 0x2dff, +0xa640, 0xa69f, +0xfe2e, 0xfe2f, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, +}; /* END of CR_Cyrillic */ + +/* PROPERTY: 'Dash': Binary Property */ +static const OnigCodePoint +CR_Dash[] = { 24, +0x002d, 0x002d, +0x058a, 0x058a, +0x05be, 0x05be, +0x1400, 0x1400, +0x1806, 0x1806, +0x2010, 0x2015, +0x2053, 0x2053, +0x207b, 0x207b, +0x208b, 0x208b, +0x2212, 0x2212, +0x2e17, 0x2e17, +0x2e1a, 0x2e1a, +0x2e3a, 0x2e3b, +0x2e40, 0x2e40, +0x2e5d, 0x2e5d, +0x301c, 0x301c, +0x3030, 0x3030, +0x30a0, 0x30a0, +0xfe31, 0xfe32, +0xfe58, 0xfe58, +0xfe63, 0xfe63, +0xff0d, 0xff0d, +0x10d6e, 0x10d6e, +0x10ead, 0x10ead, +}; /* END of CR_Dash */ + +/* PROPERTY: 'Default_Ignorable_Code_Point': Derived Property */ +static const OnigCodePoint +CR_Default_Ignorable_Code_Point[] = { 17, +0x00ad, 0x00ad, +0x034f, 0x034f, +0x061c, 0x061c, +0x115f, 0x1160, +0x17b4, 0x17b5, +0x180b, 0x180f, +0x200b, 0x200f, +0x202a, 0x202e, +0x2060, 0x206f, +0x3164, 0x3164, +0xfe00, 0xfe0f, +0xfeff, 0xfeff, +0xffa0, 0xffa0, +0xfff0, 0xfff8, +0x1bca0, 0x1bca3, +0x1d173, 0x1d17a, +0xe0000, 0xe0fff, +}; /* END of CR_Default_Ignorable_Code_Point */ + +/* PROPERTY: 'Deprecated': Binary Property */ +static const OnigCodePoint +CR_Deprecated[] = { 8, +0x0149, 0x0149, +0x0673, 0x0673, +0x0f77, 0x0f77, +0x0f79, 0x0f79, +0x17a3, 0x17a4, +0x206a, 0x206f, +0x2329, 0x232a, +0xe0001, 0xe0001, +}; /* END of CR_Deprecated */ + +/* PROPERTY: 'Deseret': Script */ +static const OnigCodePoint +CR_Deseret[] = { 1, +0x10400, 0x1044f, +}; /* END of CR_Deseret */ + +/* PROPERTY: 'Devanagari': Script */ +static const OnigCodePoint +CR_Devanagari[] = { 5, +0x0900, 0x0950, +0x0955, 0x0963, +0x0966, 0x097f, +0xa8e0, 0xa8ff, +0x11b00, 0x11b09, +}; /* END of CR_Devanagari */ + +/* PROPERTY: 'Diacritic': Binary Property */ +static const OnigCodePoint +CR_Diacritic[] = { 214, +0x005e, 0x005e, +0x0060, 0x0060, +0x00a8, 0x00a8, +0x00af, 0x00af, +0x00b4, 0x00b4, +0x00b7, 0x00b8, +0x02b0, 0x034e, +0x0350, 0x0357, +0x035d, 0x0362, +0x0374, 0x0375, +0x037a, 0x037a, +0x0384, 0x0385, +0x0483, 0x0487, +0x0559, 0x0559, +0x0591, 0x05a1, +0x05a3, 0x05bd, +0x05bf, 0x05bf, +0x05c1, 0x05c2, +0x05c4, 0x05c4, +0x064b, 0x0652, +0x0657, 0x0658, +0x06df, 0x06e0, +0x06e5, 0x06e6, +0x06ea, 0x06ec, +0x0730, 0x074a, +0x07a6, 0x07b0, +0x07eb, 0x07f5, +0x0818, 0x0819, +0x0898, 0x089f, +0x08c9, 0x08d2, +0x08e3, 0x08fe, +0x093c, 0x093c, +0x094d, 0x094d, +0x0951, 0x0954, +0x0971, 0x0971, +0x09bc, 0x09bc, +0x09cd, 0x09cd, +0x0a3c, 0x0a3c, +0x0a4d, 0x0a4d, +0x0abc, 0x0abc, +0x0acd, 0x0acd, +0x0afd, 0x0aff, +0x0b3c, 0x0b3c, +0x0b4d, 0x0b4d, +0x0b55, 0x0b55, +0x0bcd, 0x0bcd, +0x0c3c, 0x0c3c, +0x0c4d, 0x0c4d, +0x0cbc, 0x0cbc, +0x0ccd, 0x0ccd, +0x0d3b, 0x0d3c, +0x0d4d, 0x0d4d, +0x0dca, 0x0dca, +0x0e3a, 0x0e3a, +0x0e47, 0x0e4c, +0x0e4e, 0x0e4e, +0x0eba, 0x0eba, +0x0ec8, 0x0ecc, +0x0f18, 0x0f19, +0x0f35, 0x0f35, +0x0f37, 0x0f37, +0x0f39, 0x0f39, +0x0f3e, 0x0f3f, +0x0f82, 0x0f84, +0x0f86, 0x0f87, +0x0fc6, 0x0fc6, +0x1037, 0x1037, +0x1039, 0x103a, +0x1063, 0x1064, +0x1069, 0x106d, +0x1087, 0x108d, +0x108f, 0x108f, +0x109a, 0x109b, +0x135d, 0x135f, +0x1714, 0x1715, +0x1734, 0x1734, +0x17c9, 0x17d3, +0x17dd, 0x17dd, +0x1939, 0x193b, +0x1a60, 0x1a60, +0x1a75, 0x1a7c, +0x1a7f, 0x1a7f, +0x1ab0, 0x1abe, +0x1ac1, 0x1acb, +0x1b34, 0x1b34, +0x1b44, 0x1b44, +0x1b6b, 0x1b73, +0x1baa, 0x1bab, +0x1be6, 0x1be6, +0x1bf2, 0x1bf3, +0x1c36, 0x1c37, +0x1c78, 0x1c7d, +0x1cd0, 0x1ce8, +0x1ced, 0x1ced, +0x1cf4, 0x1cf4, +0x1cf7, 0x1cf9, +0x1d2c, 0x1d6a, +0x1dc4, 0x1dcf, +0x1df5, 0x1dff, +0x1fbd, 0x1fbd, +0x1fbf, 0x1fc1, +0x1fcd, 0x1fcf, +0x1fdd, 0x1fdf, +0x1fed, 0x1fef, +0x1ffd, 0x1ffe, +0x2cef, 0x2cf1, +0x2e2f, 0x2e2f, +0x302a, 0x302f, +0x3099, 0x309c, +0x30fc, 0x30fc, +0xa66f, 0xa66f, +0xa67c, 0xa67d, +0xa67f, 0xa67f, +0xa69c, 0xa69d, +0xa6f0, 0xa6f1, +0xa700, 0xa721, +0xa788, 0xa78a, +0xa7f8, 0xa7f9, +0xa806, 0xa806, +0xa82c, 0xa82c, +0xa8c4, 0xa8c4, +0xa8e0, 0xa8f1, +0xa92b, 0xa92e, +0xa953, 0xa953, +0xa9b3, 0xa9b3, +0xa9c0, 0xa9c0, +0xa9e5, 0xa9e5, +0xaa7b, 0xaa7d, +0xaabf, 0xaac2, +0xaaf6, 0xaaf6, +0xab5b, 0xab5f, +0xab69, 0xab6b, +0xabec, 0xabed, +0xfb1e, 0xfb1e, +0xfe20, 0xfe2f, +0xff3e, 0xff3e, +0xff40, 0xff40, +0xff70, 0xff70, +0xff9e, 0xff9f, +0xffe3, 0xffe3, +0x102e0, 0x102e0, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10a38, 0x10a3a, +0x10a3f, 0x10a3f, +0x10ae5, 0x10ae6, +0x10d22, 0x10d27, +0x10d4e, 0x10d4e, +0x10d69, 0x10d6d, +0x10efd, 0x10eff, +0x10f46, 0x10f50, +0x10f82, 0x10f85, +0x11046, 0x11046, +0x11070, 0x11070, +0x110b9, 0x110ba, +0x11133, 0x11134, +0x11173, 0x11173, +0x111c0, 0x111c0, +0x111ca, 0x111cc, +0x11235, 0x11236, +0x112e9, 0x112ea, +0x1133b, 0x1133c, +0x1134d, 0x1134d, +0x11366, 0x1136c, +0x11370, 0x11374, +0x113ce, 0x113d0, +0x113d2, 0x113d3, +0x113e1, 0x113e2, +0x11442, 0x11442, +0x11446, 0x11446, +0x114c2, 0x114c3, +0x115bf, 0x115c0, +0x1163f, 0x1163f, +0x116b6, 0x116b7, +0x1172b, 0x1172b, +0x11839, 0x1183a, +0x1193d, 0x1193e, +0x11943, 0x11943, +0x119e0, 0x119e0, +0x11a34, 0x11a34, +0x11a47, 0x11a47, +0x11a99, 0x11a99, +0x11c3f, 0x11c3f, +0x11d42, 0x11d42, +0x11d44, 0x11d45, +0x11d97, 0x11d97, +0x11f41, 0x11f42, +0x11f5a, 0x11f5a, +0x13447, 0x13455, +0x1612f, 0x1612f, +0x16af0, 0x16af4, +0x16b30, 0x16b36, +0x16d6b, 0x16d6c, +0x16f8f, 0x16f9f, +0x16ff0, 0x16ff1, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1d167, 0x1d169, +0x1d16d, 0x1d172, +0x1d17b, 0x1d182, +0x1d185, 0x1d18b, +0x1d1aa, 0x1d1ad, +0x1e030, 0x1e06d, +0x1e130, 0x1e136, +0x1e2ae, 0x1e2ae, +0x1e2ec, 0x1e2ef, +0x1e5ee, 0x1e5ef, +0x1e8d0, 0x1e8d6, +0x1e944, 0x1e946, +0x1e948, 0x1e94a, +}; /* END of CR_Diacritic */ + +/* PROPERTY: 'Dives_Akuru': Script */ +static const OnigCodePoint +CR_Dives_Akuru[] = { 8, +0x11900, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x11935, +0x11937, 0x11938, +0x1193b, 0x11946, +0x11950, 0x11959, +}; /* END of CR_Dives_Akuru */ + +/* PROPERTY: 'Dogra': Script */ +static const OnigCodePoint +CR_Dogra[] = { 1, +0x11800, 0x1183b, +}; /* END of CR_Dogra */ + +/* PROPERTY: 'Duployan': Script */ +static const OnigCodePoint +CR_Duployan[] = { 5, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1bc9c, 0x1bc9f, +}; /* END of CR_Duployan */ + +/* PROPERTY: 'Egyptian_Hieroglyphs': Script */ +static const OnigCodePoint +CR_Egyptian_Hieroglyphs[] = { 2, +0x13000, 0x13455, +0x13460, 0x143fa, +}; /* END of CR_Egyptian_Hieroglyphs */ + +/* PROPERTY: 'Elbasan': Script */ +static const OnigCodePoint +CR_Elbasan[] = { 1, +0x10500, 0x10527, +}; /* END of CR_Elbasan */ + +/* PROPERTY: 'Elymaic': Script */ +static const OnigCodePoint +CR_Elymaic[] = { 1, +0x10fe0, 0x10ff6, +}; /* END of CR_Elymaic */ + +/* PROPERTY: 'Emoji': Emoji Property */ +static const OnigCodePoint +CR_Emoji[] = { 150, +0x0023, 0x0023, +0x002a, 0x002a, +0x0030, 0x0039, +0x00a9, 0x00a9, +0x00ae, 0x00ae, +0x203c, 0x203c, +0x2049, 0x2049, +0x2122, 0x2122, +0x2139, 0x2139, +0x2194, 0x2199, +0x21a9, 0x21aa, +0x231a, 0x231b, +0x2328, 0x2328, +0x23cf, 0x23cf, +0x23e9, 0x23f3, +0x23f8, 0x23fa, +0x24c2, 0x24c2, +0x25aa, 0x25ab, +0x25b6, 0x25b6, +0x25c0, 0x25c0, +0x25fb, 0x25fe, +0x2600, 0x2604, +0x260e, 0x260e, +0x2611, 0x2611, +0x2614, 0x2615, +0x2618, 0x2618, +0x261d, 0x261d, +0x2620, 0x2620, +0x2622, 0x2623, +0x2626, 0x2626, +0x262a, 0x262a, +0x262e, 0x262f, +0x2638, 0x263a, +0x2640, 0x2640, +0x2642, 0x2642, +0x2648, 0x2653, +0x265f, 0x2660, +0x2663, 0x2663, +0x2665, 0x2666, +0x2668, 0x2668, +0x267b, 0x267b, +0x267e, 0x267f, +0x2692, 0x2697, +0x2699, 0x2699, +0x269b, 0x269c, +0x26a0, 0x26a1, +0x26a7, 0x26a7, +0x26aa, 0x26ab, +0x26b0, 0x26b1, +0x26bd, 0x26be, +0x26c4, 0x26c5, +0x26c8, 0x26c8, +0x26ce, 0x26cf, +0x26d1, 0x26d1, +0x26d3, 0x26d4, +0x26e9, 0x26ea, +0x26f0, 0x26f5, +0x26f7, 0x26fa, +0x26fd, 0x26fd, +0x2702, 0x2702, +0x2705, 0x2705, +0x2708, 0x270d, +0x270f, 0x270f, +0x2712, 0x2712, +0x2714, 0x2714, +0x2716, 0x2716, +0x271d, 0x271d, +0x2721, 0x2721, +0x2728, 0x2728, +0x2733, 0x2734, +0x2744, 0x2744, +0x2747, 0x2747, +0x274c, 0x274c, +0x274e, 0x274e, +0x2753, 0x2755, +0x2757, 0x2757, +0x2763, 0x2764, +0x2795, 0x2797, +0x27a1, 0x27a1, +0x27b0, 0x27b0, +0x27bf, 0x27bf, +0x2934, 0x2935, +0x2b05, 0x2b07, +0x2b1b, 0x2b1c, +0x2b50, 0x2b50, +0x2b55, 0x2b55, +0x3030, 0x3030, +0x303d, 0x303d, +0x3297, 0x3297, +0x3299, 0x3299, +0x1f004, 0x1f004, +0x1f0cf, 0x1f0cf, +0x1f170, 0x1f171, +0x1f17e, 0x1f17f, +0x1f18e, 0x1f18e, +0x1f191, 0x1f19a, +0x1f1e6, 0x1f1ff, +0x1f201, 0x1f202, +0x1f21a, 0x1f21a, +0x1f22f, 0x1f22f, +0x1f232, 0x1f23a, +0x1f250, 0x1f251, +0x1f300, 0x1f321, +0x1f324, 0x1f393, +0x1f396, 0x1f397, +0x1f399, 0x1f39b, +0x1f39e, 0x1f3f0, +0x1f3f3, 0x1f3f5, +0x1f3f7, 0x1f4fd, +0x1f4ff, 0x1f53d, +0x1f549, 0x1f54e, +0x1f550, 0x1f567, +0x1f56f, 0x1f570, +0x1f573, 0x1f57a, +0x1f587, 0x1f587, +0x1f58a, 0x1f58d, +0x1f590, 0x1f590, +0x1f595, 0x1f596, +0x1f5a4, 0x1f5a5, +0x1f5a8, 0x1f5a8, +0x1f5b1, 0x1f5b2, +0x1f5bc, 0x1f5bc, +0x1f5c2, 0x1f5c4, +0x1f5d1, 0x1f5d3, +0x1f5dc, 0x1f5de, +0x1f5e1, 0x1f5e1, +0x1f5e3, 0x1f5e3, +0x1f5e8, 0x1f5e8, +0x1f5ef, 0x1f5ef, +0x1f5f3, 0x1f5f3, +0x1f5fa, 0x1f64f, +0x1f680, 0x1f6c5, +0x1f6cb, 0x1f6d2, +0x1f6d5, 0x1f6d7, +0x1f6dc, 0x1f6e5, +0x1f6e9, 0x1f6e9, +0x1f6eb, 0x1f6ec, +0x1f6f0, 0x1f6f0, +0x1f6f3, 0x1f6fc, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f90c, 0x1f93a, +0x1f93c, 0x1f945, +0x1f947, 0x1f9ff, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, +}; /* END of CR_Emoji */ + +/* PROPERTY: 'Emoji_Component': Emoji Property */ +static const OnigCodePoint +CR_Emoji_Component[] = { 10, +0x0023, 0x0023, +0x002a, 0x002a, +0x0030, 0x0039, +0x200d, 0x200d, +0x20e3, 0x20e3, +0xfe0f, 0xfe0f, +0x1f1e6, 0x1f1ff, +0x1f3fb, 0x1f3ff, +0x1f9b0, 0x1f9b3, +0xe0020, 0xe007f, +}; /* END of CR_Emoji_Component */ + +/* PROPERTY: 'Emoji_Modifier': Emoji Property */ +static const OnigCodePoint +CR_Emoji_Modifier[] = { 1, +0x1f3fb, 0x1f3ff, +}; /* END of CR_Emoji_Modifier */ + +/* PROPERTY: 'Emoji_Modifier_Base': Emoji Property */ +static const OnigCodePoint +CR_Emoji_Modifier_Base[] = { 40, +0x261d, 0x261d, +0x26f9, 0x26f9, +0x270a, 0x270d, +0x1f385, 0x1f385, +0x1f3c2, 0x1f3c4, +0x1f3c7, 0x1f3c7, +0x1f3ca, 0x1f3cc, +0x1f442, 0x1f443, +0x1f446, 0x1f450, +0x1f466, 0x1f478, +0x1f47c, 0x1f47c, +0x1f481, 0x1f483, +0x1f485, 0x1f487, +0x1f48f, 0x1f48f, +0x1f491, 0x1f491, +0x1f4aa, 0x1f4aa, +0x1f574, 0x1f575, +0x1f57a, 0x1f57a, +0x1f590, 0x1f590, +0x1f595, 0x1f596, +0x1f645, 0x1f647, +0x1f64b, 0x1f64f, +0x1f6a3, 0x1f6a3, +0x1f6b4, 0x1f6b6, +0x1f6c0, 0x1f6c0, +0x1f6cc, 0x1f6cc, +0x1f90c, 0x1f90c, +0x1f90f, 0x1f90f, +0x1f918, 0x1f91f, +0x1f926, 0x1f926, +0x1f930, 0x1f939, +0x1f93c, 0x1f93e, +0x1f977, 0x1f977, +0x1f9b5, 0x1f9b6, +0x1f9b8, 0x1f9b9, +0x1f9bb, 0x1f9bb, +0x1f9cd, 0x1f9cf, +0x1f9d1, 0x1f9dd, +0x1fac3, 0x1fac5, +0x1faf0, 0x1faf8, +}; /* END of CR_Emoji_Modifier_Base */ + +/* PROPERTY: 'Emoji_Presentation': Emoji Property */ +static const OnigCodePoint +CR_Emoji_Presentation[] = { 80, +0x231a, 0x231b, +0x23e9, 0x23ec, +0x23f0, 0x23f0, +0x23f3, 0x23f3, +0x25fd, 0x25fe, +0x2614, 0x2615, +0x2648, 0x2653, +0x267f, 0x267f, +0x2693, 0x2693, +0x26a1, 0x26a1, +0x26aa, 0x26ab, +0x26bd, 0x26be, +0x26c4, 0x26c5, +0x26ce, 0x26ce, +0x26d4, 0x26d4, +0x26ea, 0x26ea, +0x26f2, 0x26f3, +0x26f5, 0x26f5, +0x26fa, 0x26fa, +0x26fd, 0x26fd, +0x2705, 0x2705, +0x270a, 0x270b, +0x2728, 0x2728, +0x274c, 0x274c, +0x274e, 0x274e, +0x2753, 0x2755, +0x2757, 0x2757, +0x2795, 0x2797, +0x27b0, 0x27b0, +0x27bf, 0x27bf, +0x2b1b, 0x2b1c, +0x2b50, 0x2b50, +0x2b55, 0x2b55, +0x1f004, 0x1f004, +0x1f0cf, 0x1f0cf, +0x1f18e, 0x1f18e, +0x1f191, 0x1f19a, +0x1f1e6, 0x1f1ff, +0x1f201, 0x1f201, +0x1f21a, 0x1f21a, +0x1f22f, 0x1f22f, +0x1f232, 0x1f236, +0x1f238, 0x1f23a, +0x1f250, 0x1f251, +0x1f300, 0x1f320, +0x1f32d, 0x1f335, +0x1f337, 0x1f37c, +0x1f37e, 0x1f393, +0x1f3a0, 0x1f3ca, +0x1f3cf, 0x1f3d3, +0x1f3e0, 0x1f3f0, +0x1f3f4, 0x1f3f4, +0x1f3f8, 0x1f43e, +0x1f440, 0x1f440, +0x1f442, 0x1f4fc, +0x1f4ff, 0x1f53d, +0x1f54b, 0x1f54e, +0x1f550, 0x1f567, +0x1f57a, 0x1f57a, +0x1f595, 0x1f596, +0x1f5a4, 0x1f5a4, +0x1f5fb, 0x1f64f, +0x1f680, 0x1f6c5, +0x1f6cc, 0x1f6cc, +0x1f6d0, 0x1f6d2, +0x1f6d5, 0x1f6d7, +0x1f6dc, 0x1f6df, +0x1f6eb, 0x1f6ec, +0x1f6f4, 0x1f6fc, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f90c, 0x1f93a, +0x1f93c, 0x1f945, +0x1f947, 0x1f9ff, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, +}; /* END of CR_Emoji_Presentation */ + +/* PROPERTY: 'Ethiopic': Script */ +static const OnigCodePoint +CR_Ethiopic[] = { 36, +0x1200, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x135d, 0x137c, +0x1380, 0x1399, +0x2d80, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +}; /* END of CR_Ethiopic */ + +/* PROPERTY: 'Extended_Pictographic': Emoji Property */ +static const OnigCodePoint +CR_Extended_Pictographic[] = { 78, +0x00a9, 0x00a9, +0x00ae, 0x00ae, +0x203c, 0x203c, +0x2049, 0x2049, +0x2122, 0x2122, +0x2139, 0x2139, +0x2194, 0x2199, +0x21a9, 0x21aa, +0x231a, 0x231b, +0x2328, 0x2328, +0x2388, 0x2388, +0x23cf, 0x23cf, +0x23e9, 0x23f3, +0x23f8, 0x23fa, +0x24c2, 0x24c2, +0x25aa, 0x25ab, +0x25b6, 0x25b6, +0x25c0, 0x25c0, +0x25fb, 0x25fe, +0x2600, 0x2605, +0x2607, 0x2612, +0x2614, 0x2685, +0x2690, 0x2705, +0x2708, 0x2712, +0x2714, 0x2714, +0x2716, 0x2716, +0x271d, 0x271d, +0x2721, 0x2721, +0x2728, 0x2728, +0x2733, 0x2734, +0x2744, 0x2744, +0x2747, 0x2747, +0x274c, 0x274c, +0x274e, 0x274e, +0x2753, 0x2755, +0x2757, 0x2757, +0x2763, 0x2767, +0x2795, 0x2797, +0x27a1, 0x27a1, +0x27b0, 0x27b0, +0x27bf, 0x27bf, +0x2934, 0x2935, +0x2b05, 0x2b07, +0x2b1b, 0x2b1c, +0x2b50, 0x2b50, +0x2b55, 0x2b55, +0x3030, 0x3030, +0x303d, 0x303d, +0x3297, 0x3297, +0x3299, 0x3299, +0x1f000, 0x1f0ff, +0x1f10d, 0x1f10f, +0x1f12f, 0x1f12f, +0x1f16c, 0x1f171, +0x1f17e, 0x1f17f, +0x1f18e, 0x1f18e, +0x1f191, 0x1f19a, +0x1f1ad, 0x1f1e5, +0x1f201, 0x1f20f, +0x1f21a, 0x1f21a, +0x1f22f, 0x1f22f, +0x1f232, 0x1f23a, +0x1f23c, 0x1f23f, +0x1f249, 0x1f3fa, +0x1f400, 0x1f53d, +0x1f546, 0x1f64f, +0x1f680, 0x1f6ff, +0x1f774, 0x1f77f, +0x1f7d5, 0x1f7ff, +0x1f80c, 0x1f80f, +0x1f848, 0x1f84f, +0x1f85a, 0x1f85f, +0x1f888, 0x1f88f, +0x1f8ae, 0x1f8ff, +0x1f90c, 0x1f93a, +0x1f93c, 0x1f945, +0x1f947, 0x1faff, +0x1fc00, 0x1fffd, +}; /* END of CR_Extended_Pictographic */ + +/* PROPERTY: 'Extender': Binary Property */ +static const OnigCodePoint +CR_Extender[] = { 41, +0x00b7, 0x00b7, +0x02d0, 0x02d1, +0x0640, 0x0640, +0x07fa, 0x07fa, +0x0a71, 0x0a71, +0x0afb, 0x0afb, +0x0b55, 0x0b55, +0x0e46, 0x0e46, +0x0ec6, 0x0ec6, +0x180a, 0x180a, +0x1843, 0x1843, +0x1aa7, 0x1aa7, +0x1c36, 0x1c36, +0x1c7b, 0x1c7b, +0x3005, 0x3005, +0x3031, 0x3035, +0x309d, 0x309e, +0x30fc, 0x30fe, +0xa015, 0xa015, +0xa60c, 0xa60c, +0xa9cf, 0xa9cf, +0xa9e6, 0xa9e6, +0xaa70, 0xaa70, +0xaadd, 0xaadd, +0xaaf3, 0xaaf4, +0xff70, 0xff70, +0x10781, 0x10782, +0x10d4e, 0x10d4e, +0x10d6a, 0x10d6a, +0x10d6f, 0x10d6f, +0x11237, 0x11237, +0x1135d, 0x1135d, +0x113d2, 0x113d3, +0x115c6, 0x115c8, +0x11a98, 0x11a98, +0x16b42, 0x16b43, +0x16fe0, 0x16fe1, +0x16fe3, 0x16fe3, +0x1e13c, 0x1e13d, +0x1e5ef, 0x1e5ef, +0x1e944, 0x1e946, +}; /* END of CR_Extender */ + +/* PROPERTY: 'Garay': Script */ +static const OnigCodePoint +CR_Garay[] = { 3, +0x10d40, 0x10d65, +0x10d69, 0x10d85, +0x10d8e, 0x10d8f, +}; /* END of CR_Garay */ + +/* PROPERTY: 'Georgian': Script */ +static const OnigCodePoint +CR_Georgian[] = { 10, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x10fa, +0x10fc, 0x10ff, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +}; /* END of CR_Georgian */ + +/* PROPERTY: 'Glagolitic': Script */ +static const OnigCodePoint +CR_Glagolitic[] = { 6, +0x2c00, 0x2c5f, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +}; /* END of CR_Glagolitic */ + +/* PROPERTY: 'Gothic': Script */ +static const OnigCodePoint +CR_Gothic[] = { 1, +0x10330, 0x1034a, +}; /* END of CR_Gothic */ + +/* PROPERTY: 'Grantha': Script */ +static const OnigCodePoint +CR_Grantha[] = { 15, +0x11300, 0x11303, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133c, 0x11344, +0x11347, 0x11348, +0x1134b, 0x1134d, +0x11350, 0x11350, +0x11357, 0x11357, +0x1135d, 0x11363, +0x11366, 0x1136c, +0x11370, 0x11374, +}; /* END of CR_Grantha */ + +/* PROPERTY: 'Grapheme_Base': Derived Property */ +static const OnigCodePoint +CR_Grapheme_Base[] = { 894, +0x0020, 0x007e, +0x00a0, 0x00ac, +0x00ae, 0x02ff, +0x0370, 0x0377, +0x037a, 0x037f, +0x0384, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x0482, +0x048a, 0x052f, +0x0531, 0x0556, +0x0559, 0x058a, +0x058d, 0x058f, +0x05be, 0x05be, +0x05c0, 0x05c0, +0x05c3, 0x05c3, +0x05c6, 0x05c6, +0x05d0, 0x05ea, +0x05ef, 0x05f4, +0x0606, 0x060f, +0x061b, 0x061b, +0x061d, 0x064a, +0x0660, 0x066f, +0x0671, 0x06d5, +0x06de, 0x06de, +0x06e5, 0x06e6, +0x06e9, 0x06e9, +0x06ee, 0x070d, +0x0710, 0x0710, +0x0712, 0x072f, +0x074d, 0x07a5, +0x07b1, 0x07b1, +0x07c0, 0x07ea, +0x07f4, 0x07fa, +0x07fe, 0x0815, +0x081a, 0x081a, +0x0824, 0x0824, +0x0828, 0x0828, +0x0830, 0x083e, +0x0840, 0x0858, +0x085e, 0x085e, +0x0860, 0x086a, +0x0870, 0x088e, +0x08a0, 0x08c9, +0x0903, 0x0939, +0x093b, 0x093b, +0x093d, 0x0940, +0x0949, 0x094c, +0x094e, 0x0950, +0x0958, 0x0961, +0x0964, 0x0980, +0x0982, 0x0983, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bd, 0x09bd, +0x09bf, 0x09c0, +0x09c7, 0x09c8, +0x09cb, 0x09cc, +0x09ce, 0x09ce, +0x09dc, 0x09dd, +0x09df, 0x09e1, +0x09e6, 0x09fd, +0x0a03, 0x0a03, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a3e, 0x0a40, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a66, 0x0a6f, +0x0a72, 0x0a74, +0x0a76, 0x0a76, +0x0a83, 0x0a83, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abd, 0x0ac0, +0x0ac9, 0x0ac9, +0x0acb, 0x0acc, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae1, +0x0ae6, 0x0af1, +0x0af9, 0x0af9, +0x0b02, 0x0b03, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3d, 0x0b3d, +0x0b40, 0x0b40, +0x0b47, 0x0b48, +0x0b4b, 0x0b4c, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b61, +0x0b66, 0x0b77, +0x0b83, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bbf, 0x0bbf, +0x0bc1, 0x0bc2, +0x0bc6, 0x0bc8, +0x0bca, 0x0bcc, +0x0bd0, 0x0bd0, +0x0be6, 0x0bfa, +0x0c01, 0x0c03, +0x0c05, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3d, 0x0c3d, +0x0c41, 0x0c44, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c61, +0x0c66, 0x0c6f, +0x0c77, 0x0c80, +0x0c82, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbd, 0x0cbe, +0x0cc1, 0x0cc1, +0x0cc3, 0x0cc4, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce1, +0x0ce6, 0x0cef, +0x0cf1, 0x0cf3, +0x0d02, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d3a, +0x0d3d, 0x0d3d, +0x0d3f, 0x0d40, +0x0d46, 0x0d48, +0x0d4a, 0x0d4c, +0x0d4e, 0x0d4f, +0x0d54, 0x0d56, +0x0d58, 0x0d61, +0x0d66, 0x0d7f, +0x0d82, 0x0d83, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0dd0, 0x0dd1, +0x0dd8, 0x0dde, +0x0de6, 0x0def, +0x0df2, 0x0df4, +0x0e01, 0x0e30, +0x0e32, 0x0e33, +0x0e3f, 0x0e46, +0x0e4f, 0x0e5b, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0eb0, +0x0eb2, 0x0eb3, +0x0ebd, 0x0ebd, +0x0ec0, 0x0ec4, +0x0ec6, 0x0ec6, +0x0ed0, 0x0ed9, +0x0edc, 0x0edf, +0x0f00, 0x0f17, +0x0f1a, 0x0f34, +0x0f36, 0x0f36, +0x0f38, 0x0f38, +0x0f3a, 0x0f47, +0x0f49, 0x0f6c, +0x0f7f, 0x0f7f, +0x0f85, 0x0f85, +0x0f88, 0x0f8c, +0x0fbe, 0x0fc5, +0x0fc7, 0x0fcc, +0x0fce, 0x0fda, +0x1000, 0x102c, +0x1031, 0x1031, +0x1038, 0x1038, +0x103b, 0x103c, +0x103f, 0x1057, +0x105a, 0x105d, +0x1061, 0x1070, +0x1075, 0x1081, +0x1083, 0x1084, +0x1087, 0x108c, +0x108e, 0x109c, +0x109e, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x1360, 0x137c, +0x1380, 0x1399, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1400, 0x169c, +0x16a0, 0x16f8, +0x1700, 0x1711, +0x171f, 0x1731, +0x1735, 0x1736, +0x1740, 0x1751, +0x1760, 0x176c, +0x176e, 0x1770, +0x1780, 0x17b3, +0x17b6, 0x17b6, +0x17be, 0x17c5, +0x17c7, 0x17c8, +0x17d4, 0x17dc, +0x17e0, 0x17e9, +0x17f0, 0x17f9, +0x1800, 0x180a, +0x1810, 0x1819, +0x1820, 0x1878, +0x1880, 0x1884, +0x1887, 0x18a8, +0x18aa, 0x18aa, +0x18b0, 0x18f5, +0x1900, 0x191e, +0x1923, 0x1926, +0x1929, 0x192b, +0x1930, 0x1931, +0x1933, 0x1938, +0x1940, 0x1940, +0x1944, 0x196d, +0x1970, 0x1974, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x19d0, 0x19da, +0x19de, 0x1a16, +0x1a19, 0x1a1a, +0x1a1e, 0x1a55, +0x1a57, 0x1a57, +0x1a61, 0x1a61, +0x1a63, 0x1a64, +0x1a6d, 0x1a72, +0x1a80, 0x1a89, +0x1a90, 0x1a99, +0x1aa0, 0x1aad, +0x1b04, 0x1b33, +0x1b3e, 0x1b41, +0x1b45, 0x1b4c, +0x1b4e, 0x1b6a, +0x1b74, 0x1b7f, +0x1b82, 0x1ba1, +0x1ba6, 0x1ba7, +0x1bae, 0x1be5, +0x1be7, 0x1be7, +0x1bea, 0x1bec, +0x1bee, 0x1bee, +0x1bfc, 0x1c2b, +0x1c34, 0x1c35, +0x1c3b, 0x1c49, +0x1c4d, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cc7, +0x1cd3, 0x1cd3, +0x1ce1, 0x1ce1, +0x1ce9, 0x1cec, +0x1cee, 0x1cf3, +0x1cf5, 0x1cf7, +0x1cfa, 0x1cfa, +0x1d00, 0x1dbf, +0x1e00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fc4, +0x1fc6, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fdd, 0x1fef, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffe, +0x2000, 0x200a, +0x2010, 0x2027, +0x202f, 0x205f, +0x2070, 0x2071, +0x2074, 0x208e, +0x2090, 0x209c, +0x20a0, 0x20c0, +0x2100, 0x218b, +0x2190, 0x2429, +0x2440, 0x244a, +0x2460, 0x2b73, +0x2b76, 0x2b95, +0x2b97, 0x2cee, +0x2cf2, 0x2cf3, +0x2cf9, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0x2d30, 0x2d67, +0x2d6f, 0x2d70, +0x2d80, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0x2e00, 0x2e5d, +0x2e80, 0x2e99, +0x2e9b, 0x2ef3, +0x2f00, 0x2fd5, +0x2ff0, 0x3029, +0x3030, 0x303f, +0x3041, 0x3096, +0x309b, 0x30ff, +0x3105, 0x312f, +0x3131, 0x318e, +0x3190, 0x31e5, +0x31ef, 0x321e, +0x3220, 0xa48c, +0xa490, 0xa4c6, +0xa4d0, 0xa62b, +0xa640, 0xa66e, +0xa673, 0xa673, +0xa67e, 0xa69d, +0xa6a0, 0xa6ef, +0xa6f2, 0xa6f7, +0xa700, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa801, +0xa803, 0xa805, +0xa807, 0xa80a, +0xa80c, 0xa824, +0xa827, 0xa82b, +0xa830, 0xa839, +0xa840, 0xa877, +0xa880, 0xa8c3, +0xa8ce, 0xa8d9, +0xa8f2, 0xa8fe, +0xa900, 0xa925, +0xa92e, 0xa946, +0xa952, 0xa952, +0xa95f, 0xa97c, +0xa983, 0xa9b2, +0xa9b4, 0xa9b5, +0xa9ba, 0xa9bb, +0xa9be, 0xa9bf, +0xa9c1, 0xa9cd, +0xa9cf, 0xa9d9, +0xa9de, 0xa9e4, +0xa9e6, 0xa9fe, +0xaa00, 0xaa28, +0xaa2f, 0xaa30, +0xaa33, 0xaa34, +0xaa40, 0xaa42, +0xaa44, 0xaa4b, +0xaa4d, 0xaa4d, +0xaa50, 0xaa59, +0xaa5c, 0xaa7b, +0xaa7d, 0xaaaf, +0xaab1, 0xaab1, +0xaab5, 0xaab6, +0xaab9, 0xaabd, +0xaac0, 0xaac0, +0xaac2, 0xaac2, +0xaadb, 0xaaeb, +0xaaee, 0xaaf5, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0xab30, 0xab6b, +0xab70, 0xabe4, +0xabe6, 0xabe7, +0xabe9, 0xabec, +0xabf0, 0xabf9, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xf900, 0xfa6d, +0xfa70, 0xfad9, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xfb1d, 0xfb1d, +0xfb1f, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfbc2, +0xfbd3, 0xfd8f, +0xfd92, 0xfdc7, +0xfdcf, 0xfdcf, +0xfdf0, 0xfdff, +0xfe10, 0xfe19, +0xfe30, 0xfe52, +0xfe54, 0xfe66, +0xfe68, 0xfe6b, +0xfe70, 0xfe74, +0xfe76, 0xfefc, +0xff01, 0xff9d, +0xffa0, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +0xffe0, 0xffe6, +0xffe8, 0xffee, +0xfffc, 0xfffd, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +0x10100, 0x10102, +0x10107, 0x10133, +0x10137, 0x1018e, +0x10190, 0x1019c, +0x101a0, 0x101a0, +0x101d0, 0x101fc, +0x10280, 0x1029c, +0x102a0, 0x102d0, +0x102e1, 0x102fb, +0x10300, 0x10323, +0x1032d, 0x1034a, +0x10350, 0x10375, +0x10380, 0x1039d, +0x1039f, 0x103c3, +0x103c8, 0x103d5, +0x10400, 0x1049d, +0x104a0, 0x104a9, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10500, 0x10527, +0x10530, 0x10563, +0x1056f, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x105c0, 0x105f3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x10855, +0x10857, 0x1089e, +0x108a7, 0x108af, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x108fb, 0x1091b, +0x1091f, 0x10939, +0x1093f, 0x1093f, +0x10980, 0x109b7, +0x109bc, 0x109cf, +0x109d2, 0x10a00, +0x10a10, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a40, 0x10a48, +0x10a50, 0x10a58, +0x10a60, 0x10a9f, +0x10ac0, 0x10ae4, +0x10aeb, 0x10af6, +0x10b00, 0x10b35, +0x10b39, 0x10b55, +0x10b58, 0x10b72, +0x10b78, 0x10b91, +0x10b99, 0x10b9c, +0x10ba9, 0x10baf, +0x10c00, 0x10c48, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10cfa, 0x10d23, +0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d6e, 0x10d85, +0x10d8e, 0x10d8f, +0x10e60, 0x10e7e, +0x10e80, 0x10ea9, +0x10ead, 0x10ead, +0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10f00, 0x10f27, +0x10f30, 0x10f45, +0x10f51, 0x10f59, +0x10f70, 0x10f81, +0x10f86, 0x10f89, +0x10fb0, 0x10fcb, +0x10fe0, 0x10ff6, +0x11000, 0x11000, +0x11002, 0x11037, +0x11047, 0x1104d, +0x11052, 0x1106f, +0x11071, 0x11072, +0x11075, 0x11075, +0x11082, 0x110b2, +0x110b7, 0x110b8, +0x110bb, 0x110bc, +0x110be, 0x110c1, +0x110d0, 0x110e8, +0x110f0, 0x110f9, +0x11103, 0x11126, +0x1112c, 0x1112c, +0x11136, 0x11147, +0x11150, 0x11172, +0x11174, 0x11176, +0x11182, 0x111b5, +0x111bf, 0x111bf, +0x111c1, 0x111c8, +0x111cd, 0x111ce, +0x111d0, 0x111df, +0x111e1, 0x111f4, +0x11200, 0x11211, +0x11213, 0x1122e, +0x11232, 0x11233, +0x11238, 0x1123d, +0x1123f, 0x11240, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a9, +0x112b0, 0x112de, +0x112e0, 0x112e2, +0x112f0, 0x112f9, +0x11302, 0x11303, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133d, 0x1133d, +0x1133f, 0x1133f, +0x11341, 0x11344, +0x11347, 0x11348, +0x1134b, 0x1134c, +0x11350, 0x11350, +0x1135d, 0x11363, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113b7, +0x113b9, 0x113ba, +0x113ca, 0x113ca, +0x113cc, 0x113cd, +0x113d1, 0x113d1, +0x113d3, 0x113d5, +0x113d7, 0x113d8, +0x11400, 0x11437, +0x11440, 0x11441, +0x11445, 0x11445, +0x11447, 0x1145b, +0x1145d, 0x1145d, +0x1145f, 0x11461, +0x11480, 0x114af, +0x114b1, 0x114b2, +0x114b9, 0x114b9, +0x114bb, 0x114bc, +0x114be, 0x114be, +0x114c1, 0x114c1, +0x114c4, 0x114c7, +0x114d0, 0x114d9, +0x11580, 0x115ae, +0x115b0, 0x115b1, +0x115b8, 0x115bb, +0x115be, 0x115be, +0x115c1, 0x115db, +0x11600, 0x11632, +0x1163b, 0x1163c, +0x1163e, 0x1163e, +0x11641, 0x11644, +0x11650, 0x11659, +0x11660, 0x1166c, +0x11680, 0x116aa, +0x116ac, 0x116ac, +0x116ae, 0x116af, +0x116b8, 0x116b9, +0x116c0, 0x116c9, +0x116d0, 0x116e3, +0x11700, 0x1171a, +0x1171e, 0x1171e, +0x11720, 0x11721, +0x11726, 0x11726, +0x11730, 0x11746, +0x11800, 0x1182e, +0x11838, 0x11838, +0x1183b, 0x1183b, +0x118a0, 0x118f2, +0x118ff, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x1192f, +0x11931, 0x11935, +0x11937, 0x11938, +0x1193f, 0x11942, +0x11944, 0x11946, +0x11950, 0x11959, +0x119a0, 0x119a7, +0x119aa, 0x119d3, +0x119dc, 0x119df, +0x119e1, 0x119e4, +0x11a00, 0x11a00, +0x11a0b, 0x11a32, +0x11a39, 0x11a3a, +0x11a3f, 0x11a46, +0x11a50, 0x11a50, +0x11a57, 0x11a58, +0x11a5c, 0x11a89, +0x11a97, 0x11a97, +0x11a9a, 0x11aa2, +0x11ab0, 0x11af8, +0x11b00, 0x11b09, +0x11bc0, 0x11be1, +0x11bf0, 0x11bf9, +0x11c00, 0x11c08, +0x11c0a, 0x11c2f, +0x11c3e, 0x11c3e, +0x11c40, 0x11c45, +0x11c50, 0x11c6c, +0x11c70, 0x11c8f, +0x11ca9, 0x11ca9, +0x11cb1, 0x11cb1, +0x11cb4, 0x11cb4, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d30, +0x11d46, 0x11d46, +0x11d50, 0x11d59, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d8e, +0x11d93, 0x11d94, +0x11d96, 0x11d96, +0x11d98, 0x11d98, +0x11da0, 0x11da9, +0x11ee0, 0x11ef2, +0x11ef5, 0x11ef8, +0x11f02, 0x11f10, +0x11f12, 0x11f35, +0x11f3e, 0x11f3f, +0x11f43, 0x11f59, +0x11fb0, 0x11fb0, +0x11fc0, 0x11ff1, +0x11fff, 0x12399, +0x12400, 0x1246e, +0x12470, 0x12474, +0x12480, 0x12543, +0x12f90, 0x12ff2, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, +0x14400, 0x14646, +0x16100, 0x1611d, +0x1612a, 0x1612c, +0x16130, 0x16139, +0x16800, 0x16a38, +0x16a40, 0x16a5e, +0x16a60, 0x16a69, +0x16a6e, 0x16abe, +0x16ac0, 0x16ac9, +0x16ad0, 0x16aed, +0x16af5, 0x16af5, +0x16b00, 0x16b2f, +0x16b37, 0x16b45, +0x16b50, 0x16b59, +0x16b5b, 0x16b61, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +0x16d40, 0x16d79, +0x16e40, 0x16e9a, +0x16f00, 0x16f4a, +0x16f50, 0x16f87, +0x16f93, 0x16f9f, +0x16fe0, 0x16fe3, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1b000, 0x1b122, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +0x1b170, 0x1b2fb, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1bc9c, 0x1bc9c, +0x1bc9f, 0x1bc9f, +0x1cc00, 0x1ccf9, +0x1cd00, 0x1ceb3, +0x1cf50, 0x1cfc3, +0x1d000, 0x1d0f5, +0x1d100, 0x1d126, +0x1d129, 0x1d164, +0x1d16a, 0x1d16c, +0x1d183, 0x1d184, +0x1d18c, 0x1d1a9, +0x1d1ae, 0x1d1ea, +0x1d200, 0x1d241, +0x1d245, 0x1d245, +0x1d2c0, 0x1d2d3, +0x1d2e0, 0x1d2f3, +0x1d300, 0x1d356, +0x1d360, 0x1d378, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d7cb, +0x1d7ce, 0x1d9ff, +0x1da37, 0x1da3a, +0x1da6d, 0x1da74, +0x1da76, 0x1da83, +0x1da85, 0x1da8b, +0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, +0x1e100, 0x1e12c, +0x1e137, 0x1e13d, +0x1e140, 0x1e149, +0x1e14e, 0x1e14f, +0x1e290, 0x1e2ad, +0x1e2c0, 0x1e2eb, +0x1e2f0, 0x1e2f9, +0x1e2ff, 0x1e2ff, +0x1e4d0, 0x1e4eb, +0x1e4f0, 0x1e4f9, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5fa, +0x1e5ff, 0x1e5ff, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +0x1e800, 0x1e8c4, +0x1e8c7, 0x1e8cf, +0x1e900, 0x1e943, +0x1e94b, 0x1e94b, +0x1e950, 0x1e959, +0x1e95e, 0x1e95f, +0x1ec71, 0x1ecb4, +0x1ed01, 0x1ed3d, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x1eef0, 0x1eef1, +0x1f000, 0x1f02b, +0x1f030, 0x1f093, +0x1f0a0, 0x1f0ae, +0x1f0b1, 0x1f0bf, +0x1f0c1, 0x1f0cf, +0x1f0d1, 0x1f0f5, +0x1f100, 0x1f1ad, +0x1f1e6, 0x1f202, +0x1f210, 0x1f23b, +0x1f240, 0x1f248, +0x1f250, 0x1f251, +0x1f260, 0x1f265, +0x1f300, 0x1f6d7, +0x1f6dc, 0x1f6ec, +0x1f6f0, 0x1f6fc, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f800, 0x1f80b, +0x1f810, 0x1f847, +0x1f850, 0x1f859, +0x1f860, 0x1f887, +0x1f890, 0x1f8ad, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, +0x1f900, 0x1fa53, +0x1fa60, 0x1fa6d, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, +0x1fb00, 0x1fb92, +0x1fb94, 0x1fbf9, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +}; /* END of CR_Grapheme_Base */ + +/* PROPERTY: 'Grapheme_Extend': Derived Property */ +static const OnigCodePoint +CR_Grapheme_Extend[] = { 375, +0x0300, 0x036f, +0x0483, 0x0489, +0x0591, 0x05bd, +0x05bf, 0x05bf, +0x05c1, 0x05c2, +0x05c4, 0x05c5, +0x05c7, 0x05c7, +0x0610, 0x061a, +0x064b, 0x065f, +0x0670, 0x0670, +0x06d6, 0x06dc, +0x06df, 0x06e4, +0x06e7, 0x06e8, +0x06ea, 0x06ed, +0x0711, 0x0711, +0x0730, 0x074a, +0x07a6, 0x07b0, +0x07eb, 0x07f3, +0x07fd, 0x07fd, +0x0816, 0x0819, +0x081b, 0x0823, +0x0825, 0x0827, +0x0829, 0x082d, +0x0859, 0x085b, +0x0897, 0x089f, +0x08ca, 0x08e1, +0x08e3, 0x0902, +0x093a, 0x093a, +0x093c, 0x093c, +0x0941, 0x0948, +0x094d, 0x094d, +0x0951, 0x0957, +0x0962, 0x0963, +0x0981, 0x0981, +0x09bc, 0x09bc, +0x09be, 0x09be, +0x09c1, 0x09c4, +0x09cd, 0x09cd, +0x09d7, 0x09d7, +0x09e2, 0x09e3, +0x09fe, 0x09fe, +0x0a01, 0x0a02, +0x0a3c, 0x0a3c, +0x0a41, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4d, +0x0a51, 0x0a51, +0x0a70, 0x0a71, +0x0a75, 0x0a75, +0x0a81, 0x0a82, +0x0abc, 0x0abc, +0x0ac1, 0x0ac5, +0x0ac7, 0x0ac8, +0x0acd, 0x0acd, +0x0ae2, 0x0ae3, +0x0afa, 0x0aff, +0x0b01, 0x0b01, +0x0b3c, 0x0b3c, +0x0b3e, 0x0b3f, +0x0b41, 0x0b44, +0x0b4d, 0x0b4d, +0x0b55, 0x0b57, +0x0b62, 0x0b63, +0x0b82, 0x0b82, +0x0bbe, 0x0bbe, +0x0bc0, 0x0bc0, +0x0bcd, 0x0bcd, +0x0bd7, 0x0bd7, +0x0c00, 0x0c00, +0x0c04, 0x0c04, +0x0c3c, 0x0c3c, +0x0c3e, 0x0c40, +0x0c46, 0x0c48, +0x0c4a, 0x0c4d, +0x0c55, 0x0c56, +0x0c62, 0x0c63, +0x0c81, 0x0c81, +0x0cbc, 0x0cbc, +0x0cbf, 0x0cc0, +0x0cc2, 0x0cc2, +0x0cc6, 0x0cc8, +0x0cca, 0x0ccd, +0x0cd5, 0x0cd6, +0x0ce2, 0x0ce3, +0x0d00, 0x0d01, +0x0d3b, 0x0d3c, +0x0d3e, 0x0d3e, +0x0d41, 0x0d44, +0x0d4d, 0x0d4d, +0x0d57, 0x0d57, +0x0d62, 0x0d63, +0x0d81, 0x0d81, +0x0dca, 0x0dca, +0x0dcf, 0x0dcf, +0x0dd2, 0x0dd4, +0x0dd6, 0x0dd6, +0x0ddf, 0x0ddf, +0x0e31, 0x0e31, +0x0e34, 0x0e3a, +0x0e47, 0x0e4e, +0x0eb1, 0x0eb1, +0x0eb4, 0x0ebc, +0x0ec8, 0x0ece, +0x0f18, 0x0f19, +0x0f35, 0x0f35, +0x0f37, 0x0f37, +0x0f39, 0x0f39, +0x0f71, 0x0f7e, +0x0f80, 0x0f84, +0x0f86, 0x0f87, +0x0f8d, 0x0f97, +0x0f99, 0x0fbc, +0x0fc6, 0x0fc6, +0x102d, 0x1030, +0x1032, 0x1037, +0x1039, 0x103a, +0x103d, 0x103e, +0x1058, 0x1059, +0x105e, 0x1060, +0x1071, 0x1074, +0x1082, 0x1082, +0x1085, 0x1086, +0x108d, 0x108d, +0x109d, 0x109d, +0x135d, 0x135f, +0x1712, 0x1715, +0x1732, 0x1734, +0x1752, 0x1753, +0x1772, 0x1773, +0x17b4, 0x17b5, +0x17b7, 0x17bd, +0x17c6, 0x17c6, +0x17c9, 0x17d3, +0x17dd, 0x17dd, +0x180b, 0x180d, +0x180f, 0x180f, +0x1885, 0x1886, +0x18a9, 0x18a9, +0x1920, 0x1922, +0x1927, 0x1928, +0x1932, 0x1932, +0x1939, 0x193b, +0x1a17, 0x1a18, +0x1a1b, 0x1a1b, +0x1a56, 0x1a56, +0x1a58, 0x1a5e, +0x1a60, 0x1a60, +0x1a62, 0x1a62, +0x1a65, 0x1a6c, +0x1a73, 0x1a7c, +0x1a7f, 0x1a7f, +0x1ab0, 0x1ace, +0x1b00, 0x1b03, +0x1b34, 0x1b3d, +0x1b42, 0x1b44, +0x1b6b, 0x1b73, +0x1b80, 0x1b81, +0x1ba2, 0x1ba5, +0x1ba8, 0x1bad, +0x1be6, 0x1be6, +0x1be8, 0x1be9, +0x1bed, 0x1bed, +0x1bef, 0x1bf3, +0x1c2c, 0x1c33, +0x1c36, 0x1c37, +0x1cd0, 0x1cd2, +0x1cd4, 0x1ce0, +0x1ce2, 0x1ce8, +0x1ced, 0x1ced, +0x1cf4, 0x1cf4, +0x1cf8, 0x1cf9, +0x1dc0, 0x1dff, +0x200c, 0x200c, +0x20d0, 0x20f0, +0x2cef, 0x2cf1, +0x2d7f, 0x2d7f, +0x2de0, 0x2dff, +0x302a, 0x302f, +0x3099, 0x309a, +0xa66f, 0xa672, +0xa674, 0xa67d, +0xa69e, 0xa69f, +0xa6f0, 0xa6f1, +0xa802, 0xa802, +0xa806, 0xa806, +0xa80b, 0xa80b, +0xa825, 0xa826, +0xa82c, 0xa82c, +0xa8c4, 0xa8c5, +0xa8e0, 0xa8f1, +0xa8ff, 0xa8ff, +0xa926, 0xa92d, +0xa947, 0xa951, +0xa953, 0xa953, +0xa980, 0xa982, +0xa9b3, 0xa9b3, +0xa9b6, 0xa9b9, +0xa9bc, 0xa9bd, +0xa9c0, 0xa9c0, +0xa9e5, 0xa9e5, +0xaa29, 0xaa2e, +0xaa31, 0xaa32, +0xaa35, 0xaa36, +0xaa43, 0xaa43, +0xaa4c, 0xaa4c, +0xaa7c, 0xaa7c, +0xaab0, 0xaab0, +0xaab2, 0xaab4, +0xaab7, 0xaab8, +0xaabe, 0xaabf, +0xaac1, 0xaac1, +0xaaec, 0xaaed, +0xaaf6, 0xaaf6, +0xabe5, 0xabe5, +0xabe8, 0xabe8, +0xabed, 0xabed, +0xfb1e, 0xfb1e, +0xfe00, 0xfe0f, +0xfe20, 0xfe2f, +0xff9e, 0xff9f, +0x101fd, 0x101fd, +0x102e0, 0x102e0, +0x10376, 0x1037a, +0x10a01, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a0f, +0x10a38, 0x10a3a, +0x10a3f, 0x10a3f, +0x10ae5, 0x10ae6, +0x10d24, 0x10d27, +0x10d69, 0x10d6d, +0x10eab, 0x10eac, +0x10efc, 0x10eff, +0x10f46, 0x10f50, +0x10f82, 0x10f85, +0x11001, 0x11001, +0x11038, 0x11046, +0x11070, 0x11070, +0x11073, 0x11074, +0x1107f, 0x11081, +0x110b3, 0x110b6, +0x110b9, 0x110ba, +0x110c2, 0x110c2, +0x11100, 0x11102, +0x11127, 0x1112b, +0x1112d, 0x11134, +0x11173, 0x11173, +0x11180, 0x11181, +0x111b6, 0x111be, +0x111c0, 0x111c0, +0x111c9, 0x111cc, +0x111cf, 0x111cf, +0x1122f, 0x11231, +0x11234, 0x11237, +0x1123e, 0x1123e, +0x11241, 0x11241, +0x112df, 0x112df, +0x112e3, 0x112ea, +0x11300, 0x11301, +0x1133b, 0x1133c, +0x1133e, 0x1133e, +0x11340, 0x11340, +0x1134d, 0x1134d, +0x11357, 0x11357, +0x11366, 0x1136c, +0x11370, 0x11374, +0x113b8, 0x113b8, +0x113bb, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113c9, +0x113ce, 0x113d0, +0x113d2, 0x113d2, +0x113e1, 0x113e2, +0x11438, 0x1143f, +0x11442, 0x11444, +0x11446, 0x11446, +0x1145e, 0x1145e, +0x114b0, 0x114b0, +0x114b3, 0x114b8, +0x114ba, 0x114ba, +0x114bd, 0x114bd, +0x114bf, 0x114c0, +0x114c2, 0x114c3, +0x115af, 0x115af, +0x115b2, 0x115b5, +0x115bc, 0x115bd, +0x115bf, 0x115c0, +0x115dc, 0x115dd, +0x11633, 0x1163a, +0x1163d, 0x1163d, +0x1163f, 0x11640, +0x116ab, 0x116ab, +0x116ad, 0x116ad, +0x116b0, 0x116b7, +0x1171d, 0x1171d, +0x1171f, 0x1171f, +0x11722, 0x11725, +0x11727, 0x1172b, +0x1182f, 0x11837, +0x11839, 0x1183a, +0x11930, 0x11930, +0x1193b, 0x1193e, +0x11943, 0x11943, +0x119d4, 0x119d7, +0x119da, 0x119db, +0x119e0, 0x119e0, +0x11a01, 0x11a0a, +0x11a33, 0x11a38, +0x11a3b, 0x11a3e, +0x11a47, 0x11a47, +0x11a51, 0x11a56, +0x11a59, 0x11a5b, +0x11a8a, 0x11a96, +0x11a98, 0x11a99, +0x11c30, 0x11c36, +0x11c38, 0x11c3d, +0x11c3f, 0x11c3f, +0x11c92, 0x11ca7, +0x11caa, 0x11cb0, +0x11cb2, 0x11cb3, +0x11cb5, 0x11cb6, +0x11d31, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d45, +0x11d47, 0x11d47, +0x11d90, 0x11d91, +0x11d95, 0x11d95, +0x11d97, 0x11d97, +0x11ef3, 0x11ef4, +0x11f00, 0x11f01, +0x11f36, 0x11f3a, +0x11f40, 0x11f42, +0x11f5a, 0x11f5a, +0x13440, 0x13440, +0x13447, 0x13455, +0x1611e, 0x16129, +0x1612d, 0x1612f, +0x16af0, 0x16af4, +0x16b30, 0x16b36, +0x16f4f, 0x16f4f, +0x16f8f, 0x16f92, +0x16fe4, 0x16fe4, +0x16ff0, 0x16ff1, +0x1bc9d, 0x1bc9e, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1d165, 0x1d169, +0x1d16d, 0x1d172, +0x1d17b, 0x1d182, +0x1d185, 0x1d18b, +0x1d1aa, 0x1d1ad, +0x1d242, 0x1d244, +0x1da00, 0x1da36, +0x1da3b, 0x1da6c, +0x1da75, 0x1da75, +0x1da84, 0x1da84, +0x1da9b, 0x1da9f, +0x1daa1, 0x1daaf, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, +0x1e130, 0x1e136, +0x1e2ae, 0x1e2ae, +0x1e2ec, 0x1e2ef, +0x1e4ec, 0x1e4ef, +0x1e5ee, 0x1e5ef, +0x1e8d0, 0x1e8d6, +0x1e944, 0x1e94a, +0xe0020, 0xe007f, +0xe0100, 0xe01ef, +}; /* END of CR_Grapheme_Extend */ + +/* PROPERTY: 'Grapheme_Link': Derived Property */ +static const OnigCodePoint +CR_Grapheme_Link[] = { 58, +0x094d, 0x094d, +0x09cd, 0x09cd, +0x0a4d, 0x0a4d, +0x0acd, 0x0acd, +0x0b4d, 0x0b4d, +0x0bcd, 0x0bcd, +0x0c4d, 0x0c4d, +0x0ccd, 0x0ccd, +0x0d3b, 0x0d3c, +0x0d4d, 0x0d4d, +0x0dca, 0x0dca, +0x0e3a, 0x0e3a, +0x0eba, 0x0eba, +0x0f84, 0x0f84, +0x1039, 0x103a, +0x1714, 0x1715, +0x1734, 0x1734, +0x17d2, 0x17d2, +0x1a60, 0x1a60, +0x1b44, 0x1b44, +0x1baa, 0x1bab, +0x1bf2, 0x1bf3, +0x2d7f, 0x2d7f, +0xa806, 0xa806, +0xa82c, 0xa82c, +0xa8c4, 0xa8c4, +0xa953, 0xa953, +0xa9c0, 0xa9c0, +0xaaf6, 0xaaf6, +0xabed, 0xabed, +0x10a3f, 0x10a3f, +0x11046, 0x11046, +0x11070, 0x11070, +0x1107f, 0x1107f, +0x110b9, 0x110b9, +0x11133, 0x11134, +0x111c0, 0x111c0, +0x11235, 0x11235, +0x112ea, 0x112ea, +0x1134d, 0x1134d, +0x113ce, 0x113d0, +0x11442, 0x11442, +0x114c2, 0x114c2, +0x115bf, 0x115bf, +0x1163f, 0x1163f, +0x116b6, 0x116b6, +0x1172b, 0x1172b, +0x11839, 0x11839, +0x1193d, 0x1193e, +0x119e0, 0x119e0, +0x11a34, 0x11a34, +0x11a47, 0x11a47, +0x11a99, 0x11a99, +0x11c3f, 0x11c3f, +0x11d44, 0x11d45, +0x11d97, 0x11d97, +0x11f41, 0x11f42, +0x1612f, 0x1612f, +}; /* END of CR_Grapheme_Link */ + +/* PROPERTY: 'Greek': Script */ +static const OnigCodePoint +CR_Greek[] = { 36, +0x0370, 0x0373, +0x0375, 0x0377, +0x037a, 0x037d, +0x037f, 0x037f, +0x0384, 0x0384, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x03e1, +0x03f0, 0x03ff, +0x1d26, 0x1d2a, +0x1d5d, 0x1d61, +0x1d66, 0x1d6a, +0x1dbf, 0x1dbf, +0x1f00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fc4, +0x1fc6, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fdd, 0x1fef, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffe, +0x2126, 0x2126, +0xab65, 0xab65, +0x10140, 0x1018e, +0x101a0, 0x101a0, +0x1d200, 0x1d245, +}; /* END of CR_Greek */ + +/* PROPERTY: 'Gujarati': Script */ +static const OnigCodePoint +CR_Gujarati[] = { 14, +0x0a81, 0x0a83, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abc, 0x0ac5, +0x0ac7, 0x0ac9, +0x0acb, 0x0acd, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae3, +0x0ae6, 0x0af1, +0x0af9, 0x0aff, +}; /* END of CR_Gujarati */ + +/* PROPERTY: 'Gunjala_Gondi': Script */ +static const OnigCodePoint +CR_Gunjala_Gondi[] = { 6, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d8e, +0x11d90, 0x11d91, +0x11d93, 0x11d98, +0x11da0, 0x11da9, +}; /* END of CR_Gunjala_Gondi */ + +/* PROPERTY: 'Gurmukhi': Script */ +static const OnigCodePoint +CR_Gurmukhi[] = { 16, +0x0a01, 0x0a03, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a3c, 0x0a3c, +0x0a3e, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4d, +0x0a51, 0x0a51, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a66, 0x0a76, +}; /* END of CR_Gurmukhi */ + +/* PROPERTY: 'Gurung_Khema': Script */ +static const OnigCodePoint +CR_Gurung_Khema[] = { 1, +0x16100, 0x16139, +}; /* END of CR_Gurung_Khema */ + +/* PROPERTY: 'Han': Script */ +static const OnigCodePoint +CR_Han[] = { 22, +0x2e80, 0x2e99, +0x2e9b, 0x2ef3, +0x2f00, 0x2fd5, +0x3005, 0x3005, +0x3007, 0x3007, +0x3021, 0x3029, +0x3038, 0x303b, +0x3400, 0x4dbf, +0x4e00, 0x9fff, +0xf900, 0xfa6d, +0xfa70, 0xfad9, +0x16fe2, 0x16fe3, +0x16ff0, 0x16ff1, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +}; /* END of CR_Han */ + +/* PROPERTY: 'Hangul': Script */ +static const OnigCodePoint +CR_Hangul[] = { 14, +0x1100, 0x11ff, +0x302e, 0x302f, +0x3131, 0x318e, +0x3200, 0x321e, +0x3260, 0x327e, +0xa960, 0xa97c, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xffa0, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +}; /* END of CR_Hangul */ + +/* PROPERTY: 'Hanifi_Rohingya': Script */ +static const OnigCodePoint +CR_Hanifi_Rohingya[] = { 2, +0x10d00, 0x10d27, +0x10d30, 0x10d39, +}; /* END of CR_Hanifi_Rohingya */ + +/* PROPERTY: 'Hanunoo': Script */ +static const OnigCodePoint +CR_Hanunoo[] = { 1, +0x1720, 0x1734, +}; /* END of CR_Hanunoo */ + +/* PROPERTY: 'Hatran': Script */ +static const OnigCodePoint +CR_Hatran[] = { 3, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x108fb, 0x108ff, +}; /* END of CR_Hatran */ + +/* PROPERTY: 'Hebrew': Script */ +static const OnigCodePoint +CR_Hebrew[] = { 9, +0x0591, 0x05c7, +0x05d0, 0x05ea, +0x05ef, 0x05f4, +0xfb1d, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfb4f, +}; /* END of CR_Hebrew */ + +/* PROPERTY: 'Hex_Digit': Binary Property */ +static const OnigCodePoint +CR_Hex_Digit[] = { 6, +0x0030, 0x0039, +0x0041, 0x0046, +0x0061, 0x0066, +0xff10, 0xff19, +0xff21, 0xff26, +0xff41, 0xff46, +}; /* END of CR_Hex_Digit */ + +/* PROPERTY: 'Hiragana': Script */ +static const OnigCodePoint +CR_Hiragana[] = { 6, +0x3041, 0x3096, +0x309d, 0x309f, +0x1b001, 0x1b11f, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1f200, 0x1f200, +}; /* END of CR_Hiragana */ + +/* PROPERTY: 'Hyphen': Binary Property */ +static const OnigCodePoint +CR_Hyphen[] = { 10, +0x002d, 0x002d, +0x00ad, 0x00ad, +0x058a, 0x058a, +0x1806, 0x1806, +0x2010, 0x2011, +0x2e17, 0x2e17, +0x30fb, 0x30fb, +0xfe63, 0xfe63, +0xff0d, 0xff0d, +0xff65, 0xff65, +}; /* END of CR_Hyphen */ + +/* PROPERTY: 'IDS_Binary_Operator': Binary Property */ +static const OnigCodePoint +CR_IDS_Binary_Operator[] = { 3, +0x2ff0, 0x2ff1, +0x2ff4, 0x2ffd, +0x31ef, 0x31ef, +}; /* END of CR_IDS_Binary_Operator */ + +/* PROPERTY: 'IDS_Trinary_Operator': Binary Property */ +static const OnigCodePoint +CR_IDS_Trinary_Operator[] = { 1, +0x2ff2, 0x2ff3, +}; /* END of CR_IDS_Trinary_Operator */ + +/* PROPERTY: 'IDS_Unary_Operator': Binary Property */ +static const OnigCodePoint +CR_IDS_Unary_Operator[] = { 1, +0x2ffe, 0x2fff, +}; /* END of CR_IDS_Unary_Operator */ + +/* PROPERTY: 'ID_Compat_Math_Continue': Binary Property */ +static const OnigCodePoint +CR_ID_Compat_Math_Continue[] = { 18, +0x00b2, 0x00b3, +0x00b9, 0x00b9, +0x2070, 0x2070, +0x2074, 0x207e, +0x2080, 0x208e, +0x2202, 0x2202, +0x2207, 0x2207, +0x221e, 0x221e, +0x1d6c1, 0x1d6c1, +0x1d6db, 0x1d6db, +0x1d6fb, 0x1d6fb, +0x1d715, 0x1d715, +0x1d735, 0x1d735, +0x1d74f, 0x1d74f, +0x1d76f, 0x1d76f, +0x1d789, 0x1d789, +0x1d7a9, 0x1d7a9, +0x1d7c3, 0x1d7c3, +}; /* END of CR_ID_Compat_Math_Continue */ + +/* PROPERTY: 'ID_Compat_Math_Start': Binary Property */ +static const OnigCodePoint +CR_ID_Compat_Math_Start[] = { 13, +0x2202, 0x2202, +0x2207, 0x2207, +0x221e, 0x221e, +0x1d6c1, 0x1d6c1, +0x1d6db, 0x1d6db, +0x1d6fb, 0x1d6fb, +0x1d715, 0x1d715, +0x1d735, 0x1d735, +0x1d74f, 0x1d74f, +0x1d76f, 0x1d76f, +0x1d789, 0x1d789, +0x1d7a9, 0x1d7a9, +0x1d7c3, 0x1d7c3, +}; /* END of CR_ID_Compat_Math_Start */ + +/* PROPERTY: 'ID_Continue': Derived Property */ +static const OnigCodePoint +CR_ID_Continue[] = { 793, +0x0030, 0x0039, +0x0041, 0x005a, +0x005f, 0x005f, +0x0061, 0x007a, +0x00aa, 0x00aa, +0x00b5, 0x00b5, +0x00b7, 0x00b7, +0x00ba, 0x00ba, +0x00c0, 0x00d6, +0x00d8, 0x00f6, +0x00f8, 0x02c1, +0x02c6, 0x02d1, +0x02e0, 0x02e4, +0x02ec, 0x02ec, +0x02ee, 0x02ee, +0x0300, 0x0374, +0x0376, 0x0377, +0x037a, 0x037d, +0x037f, 0x037f, +0x0386, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x03f5, +0x03f7, 0x0481, +0x0483, 0x0487, +0x048a, 0x052f, +0x0531, 0x0556, +0x0559, 0x0559, +0x0560, 0x0588, +0x0591, 0x05bd, +0x05bf, 0x05bf, +0x05c1, 0x05c2, +0x05c4, 0x05c5, +0x05c7, 0x05c7, +0x05d0, 0x05ea, +0x05ef, 0x05f2, +0x0610, 0x061a, +0x0620, 0x0669, +0x066e, 0x06d3, +0x06d5, 0x06dc, +0x06df, 0x06e8, +0x06ea, 0x06fc, +0x06ff, 0x06ff, +0x0710, 0x074a, +0x074d, 0x07b1, +0x07c0, 0x07f5, +0x07fa, 0x07fa, +0x07fd, 0x07fd, +0x0800, 0x082d, +0x0840, 0x085b, +0x0860, 0x086a, +0x0870, 0x0887, +0x0889, 0x088e, +0x0897, 0x08e1, +0x08e3, 0x0963, +0x0966, 0x096f, +0x0971, 0x0983, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bc, 0x09c4, +0x09c7, 0x09c8, +0x09cb, 0x09ce, +0x09d7, 0x09d7, +0x09dc, 0x09dd, +0x09df, 0x09e3, +0x09e6, 0x09f1, +0x09fc, 0x09fc, +0x09fe, 0x09fe, +0x0a01, 0x0a03, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a3c, 0x0a3c, +0x0a3e, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4d, +0x0a51, 0x0a51, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a66, 0x0a75, +0x0a81, 0x0a83, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abc, 0x0ac5, +0x0ac7, 0x0ac9, +0x0acb, 0x0acd, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae3, +0x0ae6, 0x0aef, +0x0af9, 0x0aff, +0x0b01, 0x0b03, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3c, 0x0b44, +0x0b47, 0x0b48, +0x0b4b, 0x0b4d, +0x0b55, 0x0b57, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b63, +0x0b66, 0x0b6f, +0x0b71, 0x0b71, +0x0b82, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bbe, 0x0bc2, +0x0bc6, 0x0bc8, +0x0bca, 0x0bcd, +0x0bd0, 0x0bd0, +0x0bd7, 0x0bd7, +0x0be6, 0x0bef, +0x0c00, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3c, 0x0c44, +0x0c46, 0x0c48, +0x0c4a, 0x0c4d, +0x0c55, 0x0c56, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c63, +0x0c66, 0x0c6f, +0x0c80, 0x0c83, +0x0c85, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbc, 0x0cc4, +0x0cc6, 0x0cc8, +0x0cca, 0x0ccd, +0x0cd5, 0x0cd6, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce3, +0x0ce6, 0x0cef, +0x0cf1, 0x0cf3, +0x0d00, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d44, +0x0d46, 0x0d48, +0x0d4a, 0x0d4e, +0x0d54, 0x0d57, +0x0d5f, 0x0d63, +0x0d66, 0x0d6f, +0x0d7a, 0x0d7f, +0x0d81, 0x0d83, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0dca, 0x0dca, +0x0dcf, 0x0dd4, +0x0dd6, 0x0dd6, +0x0dd8, 0x0ddf, +0x0de6, 0x0def, +0x0df2, 0x0df3, +0x0e01, 0x0e3a, +0x0e40, 0x0e4e, +0x0e50, 0x0e59, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0ebd, +0x0ec0, 0x0ec4, +0x0ec6, 0x0ec6, +0x0ec8, 0x0ece, +0x0ed0, 0x0ed9, +0x0edc, 0x0edf, +0x0f00, 0x0f00, +0x0f18, 0x0f19, +0x0f20, 0x0f29, +0x0f35, 0x0f35, +0x0f37, 0x0f37, +0x0f39, 0x0f39, +0x0f3e, 0x0f47, +0x0f49, 0x0f6c, +0x0f71, 0x0f84, +0x0f86, 0x0f97, +0x0f99, 0x0fbc, +0x0fc6, 0x0fc6, +0x1000, 0x1049, +0x1050, 0x109d, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x10fa, +0x10fc, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x135d, 0x135f, +0x1369, 0x1371, +0x1380, 0x138f, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1401, 0x166c, +0x166f, 0x167f, +0x1681, 0x169a, +0x16a0, 0x16ea, +0x16ee, 0x16f8, +0x1700, 0x1715, +0x171f, 0x1734, +0x1740, 0x1753, +0x1760, 0x176c, +0x176e, 0x1770, +0x1772, 0x1773, +0x1780, 0x17d3, +0x17d7, 0x17d7, +0x17dc, 0x17dd, +0x17e0, 0x17e9, +0x180b, 0x180d, +0x180f, 0x1819, +0x1820, 0x1878, +0x1880, 0x18aa, +0x18b0, 0x18f5, +0x1900, 0x191e, +0x1920, 0x192b, +0x1930, 0x193b, +0x1946, 0x196d, +0x1970, 0x1974, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x19d0, 0x19da, +0x1a00, 0x1a1b, +0x1a20, 0x1a5e, +0x1a60, 0x1a7c, +0x1a7f, 0x1a89, +0x1a90, 0x1a99, +0x1aa7, 0x1aa7, +0x1ab0, 0x1abd, +0x1abf, 0x1ace, +0x1b00, 0x1b4c, +0x1b50, 0x1b59, +0x1b6b, 0x1b73, +0x1b80, 0x1bf3, +0x1c00, 0x1c37, +0x1c40, 0x1c49, +0x1c4d, 0x1c7d, +0x1c80, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1cd0, 0x1cd2, +0x1cd4, 0x1cfa, +0x1d00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fbc, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fcc, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fe0, 0x1fec, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffc, +0x200c, 0x200d, +0x203f, 0x2040, +0x2054, 0x2054, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x20d0, 0x20dc, +0x20e1, 0x20e1, +0x20e5, 0x20f0, +0x2102, 0x2102, +0x2107, 0x2107, +0x210a, 0x2113, +0x2115, 0x2115, +0x2118, 0x211d, +0x2124, 0x2124, +0x2126, 0x2126, +0x2128, 0x2128, +0x212a, 0x2139, +0x213c, 0x213f, +0x2145, 0x2149, +0x214e, 0x214e, +0x2160, 0x2188, +0x2c00, 0x2ce4, +0x2ceb, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0x2d30, 0x2d67, +0x2d6f, 0x2d6f, +0x2d7f, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0x2de0, 0x2dff, +0x3005, 0x3007, +0x3021, 0x302f, +0x3031, 0x3035, +0x3038, 0x303c, +0x3041, 0x3096, +0x3099, 0x309f, +0x30a1, 0x30ff, +0x3105, 0x312f, +0x3131, 0x318e, +0x31a0, 0x31bf, +0x31f0, 0x31ff, +0x3400, 0x4dbf, +0x4e00, 0xa48c, +0xa4d0, 0xa4fd, +0xa500, 0xa60c, +0xa610, 0xa62b, +0xa640, 0xa66f, +0xa674, 0xa67d, +0xa67f, 0xa6f1, +0xa717, 0xa71f, +0xa722, 0xa788, +0xa78b, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa827, +0xa82c, 0xa82c, +0xa840, 0xa873, +0xa880, 0xa8c5, +0xa8d0, 0xa8d9, +0xa8e0, 0xa8f7, +0xa8fb, 0xa8fb, +0xa8fd, 0xa92d, +0xa930, 0xa953, +0xa960, 0xa97c, +0xa980, 0xa9c0, +0xa9cf, 0xa9d9, +0xa9e0, 0xa9fe, +0xaa00, 0xaa36, +0xaa40, 0xaa4d, +0xaa50, 0xaa59, +0xaa60, 0xaa76, +0xaa7a, 0xaac2, +0xaadb, 0xaadd, +0xaae0, 0xaaef, +0xaaf2, 0xaaf6, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0xab30, 0xab5a, +0xab5c, 0xab69, +0xab70, 0xabea, +0xabec, 0xabed, +0xabf0, 0xabf9, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xf900, 0xfa6d, +0xfa70, 0xfad9, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xfb1d, 0xfb28, +0xfb2a, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfbb1, +0xfbd3, 0xfd3d, +0xfd50, 0xfd8f, +0xfd92, 0xfdc7, +0xfdf0, 0xfdfb, +0xfe00, 0xfe0f, +0xfe20, 0xfe2f, +0xfe33, 0xfe34, +0xfe4d, 0xfe4f, +0xfe70, 0xfe74, +0xfe76, 0xfefc, +0xff10, 0xff19, +0xff21, 0xff3a, +0xff3f, 0xff3f, +0xff41, 0xff5a, +0xff65, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +0x10140, 0x10174, +0x101fd, 0x101fd, +0x10280, 0x1029c, +0x102a0, 0x102d0, +0x102e0, 0x102e0, +0x10300, 0x1031f, +0x1032d, 0x1034a, +0x10350, 0x1037a, +0x10380, 0x1039d, +0x103a0, 0x103c3, +0x103c8, 0x103cf, +0x103d1, 0x103d5, +0x10400, 0x1049d, +0x104a0, 0x104a9, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10500, 0x10527, +0x10530, 0x10563, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x105c0, 0x105f3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x10855, +0x10860, 0x10876, +0x10880, 0x1089e, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x10900, 0x10915, +0x10920, 0x10939, +0x10980, 0x109b7, +0x109be, 0x109bf, +0x10a00, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a38, 0x10a3a, +0x10a3f, 0x10a3f, +0x10a60, 0x10a7c, +0x10a80, 0x10a9c, +0x10ac0, 0x10ac7, +0x10ac9, 0x10ae6, +0x10b00, 0x10b35, +0x10b40, 0x10b55, +0x10b60, 0x10b72, +0x10b80, 0x10b91, +0x10c00, 0x10c48, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10d00, 0x10d27, +0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d6d, +0x10d6f, 0x10d85, +0x10e80, 0x10ea9, +0x10eab, 0x10eac, +0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10efc, 0x10f1c, +0x10f27, 0x10f27, +0x10f30, 0x10f50, +0x10f70, 0x10f85, +0x10fb0, 0x10fc4, +0x10fe0, 0x10ff6, +0x11000, 0x11046, +0x11066, 0x11075, +0x1107f, 0x110ba, +0x110c2, 0x110c2, +0x110d0, 0x110e8, +0x110f0, 0x110f9, +0x11100, 0x11134, +0x11136, 0x1113f, +0x11144, 0x11147, +0x11150, 0x11173, +0x11176, 0x11176, +0x11180, 0x111c4, +0x111c9, 0x111cc, +0x111ce, 0x111da, +0x111dc, 0x111dc, +0x11200, 0x11211, +0x11213, 0x11237, +0x1123e, 0x11241, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a8, +0x112b0, 0x112ea, +0x112f0, 0x112f9, +0x11300, 0x11303, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133b, 0x11344, +0x11347, 0x11348, +0x1134b, 0x1134d, +0x11350, 0x11350, +0x11357, 0x11357, +0x1135d, 0x11363, +0x11366, 0x1136c, +0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d3, +0x113e1, 0x113e2, +0x11400, 0x1144a, +0x11450, 0x11459, +0x1145e, 0x11461, +0x11480, 0x114c5, +0x114c7, 0x114c7, +0x114d0, 0x114d9, +0x11580, 0x115b5, +0x115b8, 0x115c0, +0x115d8, 0x115dd, +0x11600, 0x11640, +0x11644, 0x11644, +0x11650, 0x11659, +0x11680, 0x116b8, +0x116c0, 0x116c9, +0x116d0, 0x116e3, +0x11700, 0x1171a, +0x1171d, 0x1172b, +0x11730, 0x11739, +0x11740, 0x11746, +0x11800, 0x1183a, +0x118a0, 0x118e9, +0x118ff, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x11935, +0x11937, 0x11938, +0x1193b, 0x11943, +0x11950, 0x11959, +0x119a0, 0x119a7, +0x119aa, 0x119d7, +0x119da, 0x119e1, +0x119e3, 0x119e4, +0x11a00, 0x11a3e, +0x11a47, 0x11a47, +0x11a50, 0x11a99, +0x11a9d, 0x11a9d, +0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11bf0, 0x11bf9, +0x11c00, 0x11c08, +0x11c0a, 0x11c36, +0x11c38, 0x11c40, +0x11c50, 0x11c59, +0x11c72, 0x11c8f, +0x11c92, 0x11ca7, +0x11ca9, 0x11cb6, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d47, +0x11d50, 0x11d59, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d8e, +0x11d90, 0x11d91, +0x11d93, 0x11d98, +0x11da0, 0x11da9, +0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f42, +0x11f50, 0x11f5a, +0x11fb0, 0x11fb0, +0x12000, 0x12399, +0x12400, 0x1246e, +0x12480, 0x12543, +0x12f90, 0x12ff0, +0x13000, 0x1342f, +0x13440, 0x13455, +0x13460, 0x143fa, +0x14400, 0x14646, +0x16100, 0x16139, +0x16800, 0x16a38, +0x16a40, 0x16a5e, +0x16a60, 0x16a69, +0x16a70, 0x16abe, +0x16ac0, 0x16ac9, +0x16ad0, 0x16aed, +0x16af0, 0x16af4, +0x16b00, 0x16b36, +0x16b40, 0x16b43, +0x16b50, 0x16b59, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16d70, 0x16d79, +0x16e40, 0x16e7f, +0x16f00, 0x16f4a, +0x16f4f, 0x16f87, +0x16f8f, 0x16f9f, +0x16fe0, 0x16fe1, +0x16fe3, 0x16fe4, +0x16ff0, 0x16ff1, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1b000, 0x1b122, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +0x1b170, 0x1b2fb, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1bc9d, 0x1bc9e, +0x1ccf0, 0x1ccf9, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1d165, 0x1d169, +0x1d16d, 0x1d172, +0x1d17b, 0x1d182, +0x1d185, 0x1d18b, +0x1d1aa, 0x1d1ad, +0x1d242, 0x1d244, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d6c0, +0x1d6c2, 0x1d6da, +0x1d6dc, 0x1d6fa, +0x1d6fc, 0x1d714, +0x1d716, 0x1d734, +0x1d736, 0x1d74e, +0x1d750, 0x1d76e, +0x1d770, 0x1d788, +0x1d78a, 0x1d7a8, +0x1d7aa, 0x1d7c2, +0x1d7c4, 0x1d7cb, +0x1d7ce, 0x1d7ff, +0x1da00, 0x1da36, +0x1da3b, 0x1da6c, +0x1da75, 0x1da75, +0x1da84, 0x1da84, +0x1da9b, 0x1da9f, +0x1daa1, 0x1daaf, +0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, +0x1e100, 0x1e12c, +0x1e130, 0x1e13d, +0x1e140, 0x1e149, +0x1e14e, 0x1e14e, +0x1e290, 0x1e2ae, +0x1e2c0, 0x1e2f9, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +0x1e800, 0x1e8c4, +0x1e8d0, 0x1e8d6, +0x1e900, 0x1e94b, +0x1e950, 0x1e959, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x1fbf0, 0x1fbf9, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +0xe0100, 0xe01ef, +}; /* END of CR_ID_Continue */ + +/* PROPERTY: 'ID_Start': Derived Property */ +static const OnigCodePoint +CR_ID_Start[] = { 677, +0x0041, 0x005a, +0x0061, 0x007a, +0x00aa, 0x00aa, +0x00b5, 0x00b5, +0x00ba, 0x00ba, +0x00c0, 0x00d6, +0x00d8, 0x00f6, +0x00f8, 0x02c1, +0x02c6, 0x02d1, +0x02e0, 0x02e4, +0x02ec, 0x02ec, +0x02ee, 0x02ee, +0x0370, 0x0374, +0x0376, 0x0377, +0x037a, 0x037d, +0x037f, 0x037f, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x03f5, +0x03f7, 0x0481, +0x048a, 0x052f, +0x0531, 0x0556, +0x0559, 0x0559, +0x0560, 0x0588, +0x05d0, 0x05ea, +0x05ef, 0x05f2, +0x0620, 0x064a, +0x066e, 0x066f, +0x0671, 0x06d3, +0x06d5, 0x06d5, +0x06e5, 0x06e6, +0x06ee, 0x06ef, +0x06fa, 0x06fc, +0x06ff, 0x06ff, +0x0710, 0x0710, +0x0712, 0x072f, +0x074d, 0x07a5, +0x07b1, 0x07b1, +0x07ca, 0x07ea, +0x07f4, 0x07f5, +0x07fa, 0x07fa, +0x0800, 0x0815, +0x081a, 0x081a, +0x0824, 0x0824, +0x0828, 0x0828, +0x0840, 0x0858, +0x0860, 0x086a, +0x0870, 0x0887, +0x0889, 0x088e, +0x08a0, 0x08c9, +0x0904, 0x0939, +0x093d, 0x093d, +0x0950, 0x0950, +0x0958, 0x0961, +0x0971, 0x0980, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bd, 0x09bd, +0x09ce, 0x09ce, +0x09dc, 0x09dd, +0x09df, 0x09e1, +0x09f0, 0x09f1, +0x09fc, 0x09fc, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a72, 0x0a74, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abd, 0x0abd, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae1, +0x0af9, 0x0af9, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3d, 0x0b3d, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b61, +0x0b71, 0x0b71, +0x0b83, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bd0, 0x0bd0, +0x0c05, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3d, 0x0c3d, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c61, +0x0c80, 0x0c80, +0x0c85, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbd, 0x0cbd, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce1, +0x0cf1, 0x0cf2, +0x0d04, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d3a, +0x0d3d, 0x0d3d, +0x0d4e, 0x0d4e, +0x0d54, 0x0d56, +0x0d5f, 0x0d61, +0x0d7a, 0x0d7f, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0e01, 0x0e30, +0x0e32, 0x0e33, +0x0e40, 0x0e46, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0eb0, +0x0eb2, 0x0eb3, +0x0ebd, 0x0ebd, +0x0ec0, 0x0ec4, +0x0ec6, 0x0ec6, +0x0edc, 0x0edf, +0x0f00, 0x0f00, +0x0f40, 0x0f47, +0x0f49, 0x0f6c, +0x0f88, 0x0f8c, +0x1000, 0x102a, +0x103f, 0x103f, +0x1050, 0x1055, +0x105a, 0x105d, +0x1061, 0x1061, +0x1065, 0x1066, +0x106e, 0x1070, +0x1075, 0x1081, +0x108e, 0x108e, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x10fa, +0x10fc, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x1380, 0x138f, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1401, 0x166c, +0x166f, 0x167f, +0x1681, 0x169a, +0x16a0, 0x16ea, +0x16ee, 0x16f8, +0x1700, 0x1711, +0x171f, 0x1731, +0x1740, 0x1751, +0x1760, 0x176c, +0x176e, 0x1770, +0x1780, 0x17b3, +0x17d7, 0x17d7, +0x17dc, 0x17dc, +0x1820, 0x1878, +0x1880, 0x18a8, +0x18aa, 0x18aa, +0x18b0, 0x18f5, +0x1900, 0x191e, +0x1950, 0x196d, +0x1970, 0x1974, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x1a00, 0x1a16, +0x1a20, 0x1a54, +0x1aa7, 0x1aa7, +0x1b05, 0x1b33, +0x1b45, 0x1b4c, +0x1b83, 0x1ba0, +0x1bae, 0x1baf, +0x1bba, 0x1be5, +0x1c00, 0x1c23, +0x1c4d, 0x1c4f, +0x1c5a, 0x1c7d, +0x1c80, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1ce9, 0x1cec, +0x1cee, 0x1cf3, +0x1cf5, 0x1cf6, +0x1cfa, 0x1cfa, +0x1d00, 0x1dbf, +0x1e00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fbc, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fcc, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fe0, 0x1fec, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffc, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x2102, 0x2102, +0x2107, 0x2107, +0x210a, 0x2113, +0x2115, 0x2115, +0x2118, 0x211d, +0x2124, 0x2124, +0x2126, 0x2126, +0x2128, 0x2128, +0x212a, 0x2139, +0x213c, 0x213f, +0x2145, 0x2149, +0x214e, 0x214e, +0x2160, 0x2188, +0x2c00, 0x2ce4, +0x2ceb, 0x2cee, +0x2cf2, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0x2d30, 0x2d67, +0x2d6f, 0x2d6f, +0x2d80, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0x3005, 0x3007, +0x3021, 0x3029, +0x3031, 0x3035, +0x3038, 0x303c, +0x3041, 0x3096, +0x309b, 0x309f, +0x30a1, 0x30fa, +0x30fc, 0x30ff, +0x3105, 0x312f, +0x3131, 0x318e, +0x31a0, 0x31bf, +0x31f0, 0x31ff, +0x3400, 0x4dbf, +0x4e00, 0xa48c, +0xa4d0, 0xa4fd, +0xa500, 0xa60c, +0xa610, 0xa61f, +0xa62a, 0xa62b, +0xa640, 0xa66e, +0xa67f, 0xa69d, +0xa6a0, 0xa6ef, +0xa717, 0xa71f, +0xa722, 0xa788, +0xa78b, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa801, +0xa803, 0xa805, +0xa807, 0xa80a, +0xa80c, 0xa822, +0xa840, 0xa873, +0xa882, 0xa8b3, +0xa8f2, 0xa8f7, +0xa8fb, 0xa8fb, +0xa8fd, 0xa8fe, +0xa90a, 0xa925, +0xa930, 0xa946, +0xa960, 0xa97c, +0xa984, 0xa9b2, +0xa9cf, 0xa9cf, +0xa9e0, 0xa9e4, +0xa9e6, 0xa9ef, +0xa9fa, 0xa9fe, +0xaa00, 0xaa28, +0xaa40, 0xaa42, +0xaa44, 0xaa4b, +0xaa60, 0xaa76, +0xaa7a, 0xaa7a, +0xaa7e, 0xaaaf, +0xaab1, 0xaab1, +0xaab5, 0xaab6, +0xaab9, 0xaabd, +0xaac0, 0xaac0, +0xaac2, 0xaac2, +0xaadb, 0xaadd, +0xaae0, 0xaaea, +0xaaf2, 0xaaf4, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0xab30, 0xab5a, +0xab5c, 0xab69, +0xab70, 0xabe2, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xf900, 0xfa6d, +0xfa70, 0xfad9, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xfb1d, 0xfb1d, +0xfb1f, 0xfb28, +0xfb2a, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfbb1, +0xfbd3, 0xfd3d, +0xfd50, 0xfd8f, +0xfd92, 0xfdc7, +0xfdf0, 0xfdfb, +0xfe70, 0xfe74, +0xfe76, 0xfefc, +0xff21, 0xff3a, +0xff41, 0xff5a, +0xff66, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +0x10140, 0x10174, +0x10280, 0x1029c, +0x102a0, 0x102d0, +0x10300, 0x1031f, +0x1032d, 0x1034a, +0x10350, 0x10375, +0x10380, 0x1039d, +0x103a0, 0x103c3, +0x103c8, 0x103cf, +0x103d1, 0x103d5, +0x10400, 0x1049d, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10500, 0x10527, +0x10530, 0x10563, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x105c0, 0x105f3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x10855, +0x10860, 0x10876, +0x10880, 0x1089e, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x10900, 0x10915, +0x10920, 0x10939, +0x10980, 0x109b7, +0x109be, 0x109bf, +0x10a00, 0x10a00, +0x10a10, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a60, 0x10a7c, +0x10a80, 0x10a9c, +0x10ac0, 0x10ac7, +0x10ac9, 0x10ae4, +0x10b00, 0x10b35, +0x10b40, 0x10b55, +0x10b60, 0x10b72, +0x10b80, 0x10b91, +0x10c00, 0x10c48, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10d00, 0x10d23, +0x10d4a, 0x10d65, +0x10d6f, 0x10d85, +0x10e80, 0x10ea9, +0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10f00, 0x10f1c, +0x10f27, 0x10f27, +0x10f30, 0x10f45, +0x10f70, 0x10f81, +0x10fb0, 0x10fc4, +0x10fe0, 0x10ff6, +0x11003, 0x11037, +0x11071, 0x11072, +0x11075, 0x11075, +0x11083, 0x110af, +0x110d0, 0x110e8, +0x11103, 0x11126, +0x11144, 0x11144, +0x11147, 0x11147, +0x11150, 0x11172, +0x11176, 0x11176, +0x11183, 0x111b2, +0x111c1, 0x111c4, +0x111da, 0x111da, +0x111dc, 0x111dc, +0x11200, 0x11211, +0x11213, 0x1122b, +0x1123f, 0x11240, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a8, +0x112b0, 0x112de, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133d, 0x1133d, +0x11350, 0x11350, +0x1135d, 0x11361, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113b7, +0x113d1, 0x113d1, +0x113d3, 0x113d3, +0x11400, 0x11434, +0x11447, 0x1144a, +0x1145f, 0x11461, +0x11480, 0x114af, +0x114c4, 0x114c5, +0x114c7, 0x114c7, +0x11580, 0x115ae, +0x115d8, 0x115db, +0x11600, 0x1162f, +0x11644, 0x11644, +0x11680, 0x116aa, +0x116b8, 0x116b8, +0x11700, 0x1171a, +0x11740, 0x11746, +0x11800, 0x1182b, +0x118a0, 0x118df, +0x118ff, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x1192f, +0x1193f, 0x1193f, +0x11941, 0x11941, +0x119a0, 0x119a7, +0x119aa, 0x119d0, +0x119e1, 0x119e1, +0x119e3, 0x119e3, +0x11a00, 0x11a00, +0x11a0b, 0x11a32, +0x11a3a, 0x11a3a, +0x11a50, 0x11a50, +0x11a5c, 0x11a89, +0x11a9d, 0x11a9d, +0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11c00, 0x11c08, +0x11c0a, 0x11c2e, +0x11c40, 0x11c40, +0x11c72, 0x11c8f, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d30, +0x11d46, 0x11d46, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d89, +0x11d98, 0x11d98, +0x11ee0, 0x11ef2, +0x11f02, 0x11f02, +0x11f04, 0x11f10, +0x11f12, 0x11f33, +0x11fb0, 0x11fb0, +0x12000, 0x12399, +0x12400, 0x1246e, +0x12480, 0x12543, +0x12f90, 0x12ff0, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, +0x14400, 0x14646, +0x16100, 0x1611d, +0x16800, 0x16a38, +0x16a40, 0x16a5e, +0x16a70, 0x16abe, +0x16ad0, 0x16aed, +0x16b00, 0x16b2f, +0x16b40, 0x16b43, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16e40, 0x16e7f, +0x16f00, 0x16f4a, +0x16f50, 0x16f50, +0x16f93, 0x16f9f, +0x16fe0, 0x16fe1, +0x16fe3, 0x16fe3, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1b000, 0x1b122, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +0x1b170, 0x1b2fb, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d6c0, +0x1d6c2, 0x1d6da, +0x1d6dc, 0x1d6fa, +0x1d6fc, 0x1d714, +0x1d716, 0x1d734, +0x1d736, 0x1d74e, +0x1d750, 0x1d76e, +0x1d770, 0x1d788, +0x1d78a, 0x1d7a8, +0x1d7aa, 0x1d7c2, +0x1d7c4, 0x1d7cb, +0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, +0x1e100, 0x1e12c, +0x1e137, 0x1e13d, +0x1e14e, 0x1e14e, +0x1e290, 0x1e2ad, +0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5f0, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +0x1e800, 0x1e8c4, +0x1e900, 0x1e943, +0x1e94b, 0x1e94b, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +}; /* END of CR_ID_Start */ + +/* PROPERTY: 'Ideographic': Binary Property */ +static const OnigCodePoint +CR_Ideographic[] = { 21, +0x3006, 0x3007, +0x3021, 0x3029, +0x3038, 0x303a, +0x3400, 0x4dbf, +0x4e00, 0x9fff, +0xf900, 0xfa6d, +0xfa70, 0xfad9, +0x16fe4, 0x16fe4, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1b170, 0x1b2fb, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +}; /* END of CR_Ideographic */ + +/* PROPERTY: 'Imperial_Aramaic': Script */ +static const OnigCodePoint +CR_Imperial_Aramaic[] = { 2, +0x10840, 0x10855, +0x10857, 0x1085f, +}; /* END of CR_Imperial_Aramaic */ + +/* PROPERTY: 'InCB': Derived Property */ +static const OnigCodePoint +CR_InCB[] = { 293, +0x094d, 0x094d, +0x09cd, 0x09cd, +0x0acd, 0x0acd, +0x0b4d, 0x0b4d, +0x0c4d, 0x0c4d, +0x0d4d, 0x0d4d, +0x0d57, 0x0d57, +0x0d62, 0x0d63, +0x0d81, 0x0d81, +0x0dca, 0x0dca, +0x0dcf, 0x0dcf, +0x0dd2, 0x0dd4, +0x0dd6, 0x0dd6, +0x0ddf, 0x0ddf, +0x0e31, 0x0e31, +0x0e34, 0x0e3a, +0x0e47, 0x0e4e, +0x0eb1, 0x0eb1, +0x0eb4, 0x0ebc, +0x0ec8, 0x0ece, +0x0f18, 0x0f19, +0x0f35, 0x0f35, +0x0f37, 0x0f37, +0x0f39, 0x0f39, +0x0f71, 0x0f7e, +0x0f80, 0x0f84, +0x0f86, 0x0f87, +0x0f8d, 0x0f97, +0x0f99, 0x0fbc, +0x0fc6, 0x0fc6, +0x102d, 0x1030, +0x1032, 0x1037, +0x1039, 0x103a, +0x103d, 0x103e, +0x1058, 0x1059, +0x105e, 0x1060, +0x1071, 0x1074, +0x1082, 0x1082, +0x1085, 0x1086, +0x108d, 0x108d, +0x109d, 0x109d, +0x135d, 0x135f, +0x1712, 0x1715, +0x1732, 0x1734, +0x1752, 0x1753, +0x1772, 0x1773, +0x17b4, 0x17b5, +0x17b7, 0x17bd, +0x17c6, 0x17c6, +0x17c9, 0x17d3, +0x17dd, 0x17dd, +0x180b, 0x180d, +0x180f, 0x180f, +0x1885, 0x1886, +0x18a9, 0x18a9, +0x1920, 0x1922, +0x1927, 0x1928, +0x1932, 0x1932, +0x1939, 0x193b, +0x1a17, 0x1a18, +0x1a1b, 0x1a1b, +0x1a56, 0x1a56, +0x1a58, 0x1a5e, +0x1a60, 0x1a60, +0x1a62, 0x1a62, +0x1a65, 0x1a6c, +0x1a73, 0x1a7c, +0x1a7f, 0x1a7f, +0x1ab0, 0x1ace, +0x1b00, 0x1b03, +0x1b34, 0x1b3d, +0x1b42, 0x1b44, +0x1b6b, 0x1b73, +0x1b80, 0x1b81, +0x1ba2, 0x1ba5, +0x1ba8, 0x1bad, +0x1be6, 0x1be6, +0x1be8, 0x1be9, +0x1bed, 0x1bed, +0x1bef, 0x1bf3, +0x1c2c, 0x1c33, +0x1c36, 0x1c37, +0x1cd0, 0x1cd2, +0x1cd4, 0x1ce0, +0x1ce2, 0x1ce8, +0x1ced, 0x1ced, +0x1cf4, 0x1cf4, +0x1cf8, 0x1cf9, +0x1dc0, 0x1dff, +0x200d, 0x200d, +0x20d0, 0x20f0, +0x2cef, 0x2cf1, +0x2d7f, 0x2d7f, +0x2de0, 0x2dff, +0x302a, 0x302f, +0x3099, 0x309a, +0xa66f, 0xa672, +0xa674, 0xa67d, +0xa69e, 0xa69f, +0xa6f0, 0xa6f1, +0xa802, 0xa802, +0xa806, 0xa806, +0xa80b, 0xa80b, +0xa825, 0xa826, +0xa82c, 0xa82c, +0xa8c4, 0xa8c5, +0xa8e0, 0xa8f1, +0xa8ff, 0xa8ff, +0xa926, 0xa92d, +0xa947, 0xa951, +0xa953, 0xa953, +0xa980, 0xa982, +0xa9b3, 0xa9b3, +0xa9b6, 0xa9b9, +0xa9bc, 0xa9bd, +0xa9c0, 0xa9c0, +0xa9e5, 0xa9e5, +0xaa29, 0xaa2e, +0xaa31, 0xaa32, +0xaa35, 0xaa36, +0xaa43, 0xaa43, +0xaa4c, 0xaa4c, +0xaa7c, 0xaa7c, +0xaab0, 0xaab0, +0xaab2, 0xaab4, +0xaab7, 0xaab8, +0xaabe, 0xaabf, +0xaac1, 0xaac1, +0xaaec, 0xaaed, +0xaaf6, 0xaaf6, +0xabe5, 0xabe5, +0xabe8, 0xabe8, +0xabed, 0xabed, +0xfb1e, 0xfb1e, +0xfe00, 0xfe0f, +0xfe20, 0xfe2f, +0xff9e, 0xff9f, +0x101fd, 0x101fd, +0x102e0, 0x102e0, +0x10376, 0x1037a, +0x10a01, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a0f, +0x10a38, 0x10a3a, +0x10a3f, 0x10a3f, +0x10ae5, 0x10ae6, +0x10d24, 0x10d27, +0x10d69, 0x10d6d, +0x10eab, 0x10eac, +0x10efc, 0x10eff, +0x10f46, 0x10f50, +0x10f82, 0x10f85, +0x11001, 0x11001, +0x11038, 0x11046, +0x11070, 0x11070, +0x11073, 0x11074, +0x1107f, 0x11081, +0x110b3, 0x110b6, +0x110b9, 0x110ba, +0x110c2, 0x110c2, +0x11100, 0x11102, +0x11127, 0x1112b, +0x1112d, 0x11134, +0x11173, 0x11173, +0x11180, 0x11181, +0x111b6, 0x111be, +0x111c0, 0x111c0, +0x111c9, 0x111cc, +0x111cf, 0x111cf, +0x1122f, 0x11231, +0x11234, 0x11237, +0x1123e, 0x1123e, +0x11241, 0x11241, +0x112df, 0x112df, +0x112e3, 0x112ea, +0x11300, 0x11301, +0x1133b, 0x1133c, +0x1133e, 0x1133e, +0x11340, 0x11340, +0x1134d, 0x1134d, +0x11357, 0x11357, +0x11366, 0x1136c, +0x11370, 0x11374, +0x113b8, 0x113b8, +0x113bb, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113c9, +0x113ce, 0x113d0, +0x113d2, 0x113d2, +0x113e1, 0x113e2, +0x11438, 0x1143f, +0x11442, 0x11444, +0x11446, 0x11446, +0x1145e, 0x1145e, +0x114b0, 0x114b0, +0x114b3, 0x114b8, +0x114ba, 0x114ba, +0x114bd, 0x114bd, +0x114bf, 0x114c0, +0x114c2, 0x114c3, +0x115af, 0x115af, +0x115b2, 0x115b5, +0x115bc, 0x115bd, +0x115bf, 0x115c0, +0x115dc, 0x115dd, +0x11633, 0x1163a, +0x1163d, 0x1163d, +0x1163f, 0x11640, +0x116ab, 0x116ab, +0x116ad, 0x116ad, +0x116b0, 0x116b7, +0x1171d, 0x1171d, +0x1171f, 0x1171f, +0x11722, 0x11725, +0x11727, 0x1172b, +0x1182f, 0x11837, +0x11839, 0x1183a, +0x11930, 0x11930, +0x1193b, 0x1193e, +0x11943, 0x11943, +0x119d4, 0x119d7, +0x119da, 0x119db, +0x119e0, 0x119e0, +0x11a01, 0x11a0a, +0x11a33, 0x11a38, +0x11a3b, 0x11a3e, +0x11a47, 0x11a47, +0x11a51, 0x11a56, +0x11a59, 0x11a5b, +0x11a8a, 0x11a96, +0x11a98, 0x11a99, +0x11c30, 0x11c36, +0x11c38, 0x11c3d, +0x11c3f, 0x11c3f, +0x11c92, 0x11ca7, +0x11caa, 0x11cb0, +0x11cb2, 0x11cb3, +0x11cb5, 0x11cb6, +0x11d31, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d45, +0x11d47, 0x11d47, +0x11d90, 0x11d91, +0x11d95, 0x11d95, +0x11d97, 0x11d97, +0x11ef3, 0x11ef4, +0x11f00, 0x11f01, +0x11f36, 0x11f3a, +0x11f40, 0x11f42, +0x11f5a, 0x11f5a, +0x13440, 0x13440, +0x13447, 0x13455, +0x1611e, 0x16129, +0x1612d, 0x1612f, +0x16af0, 0x16af4, +0x16b30, 0x16b36, +0x16f4f, 0x16f4f, +0x16f8f, 0x16f92, +0x16fe4, 0x16fe4, +0x16ff0, 0x16ff1, +0x1bc9d, 0x1bc9e, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1d165, 0x1d169, +0x1d16d, 0x1d172, +0x1d17b, 0x1d182, +0x1d185, 0x1d18b, +0x1d1aa, 0x1d1ad, +0x1d242, 0x1d244, +0x1da00, 0x1da36, +0x1da3b, 0x1da6c, +0x1da75, 0x1da75, +0x1da84, 0x1da84, +0x1da9b, 0x1da9f, +0x1daa1, 0x1daaf, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, +0x1e130, 0x1e136, +0x1e2ae, 0x1e2ae, +0x1e2ec, 0x1e2ef, +0x1e4ec, 0x1e4ef, +0x1e5ee, 0x1e5ef, +0x1e8d0, 0x1e8d6, +0x1e944, 0x1e94a, +0x1f3fb, 0x1f3ff, +0xe0020, 0xe007f, +0xe0100, 0xe01ef, +}; /* END of CR_InCB */ + +/* PROPERTY: 'Inherited': Script */ +static const OnigCodePoint +CR_Inherited[] = { 29, +0x0300, 0x036f, +0x0485, 0x0486, +0x064b, 0x0655, +0x0670, 0x0670, +0x0951, 0x0954, +0x1ab0, 0x1ace, +0x1cd0, 0x1cd2, +0x1cd4, 0x1ce0, +0x1ce2, 0x1ce8, +0x1ced, 0x1ced, +0x1cf4, 0x1cf4, +0x1cf8, 0x1cf9, +0x1dc0, 0x1dff, +0x200c, 0x200d, +0x20d0, 0x20f0, +0x302a, 0x302d, +0x3099, 0x309a, +0xfe00, 0xfe0f, +0xfe20, 0xfe2d, +0x101fd, 0x101fd, +0x102e0, 0x102e0, +0x1133b, 0x1133b, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1d167, 0x1d169, +0x1d17b, 0x1d182, +0x1d185, 0x1d18b, +0x1d1aa, 0x1d1ad, +0xe0100, 0xe01ef, +}; /* END of CR_Inherited */ + +/* PROPERTY: 'Inscriptional_Pahlavi': Script */ +static const OnigCodePoint +CR_Inscriptional_Pahlavi[] = { 2, +0x10b60, 0x10b72, +0x10b78, 0x10b7f, +}; /* END of CR_Inscriptional_Pahlavi */ + +/* PROPERTY: 'Inscriptional_Parthian': Script */ +static const OnigCodePoint +CR_Inscriptional_Parthian[] = { 2, +0x10b40, 0x10b55, +0x10b58, 0x10b5f, +}; /* END of CR_Inscriptional_Parthian */ + +/* PROPERTY: 'Javanese': Script */ +static const OnigCodePoint +CR_Javanese[] = { 3, +0xa980, 0xa9cd, +0xa9d0, 0xa9d9, +0xa9de, 0xa9df, +}; /* END of CR_Javanese */ + +/* PROPERTY: 'Join_Control': Binary Property */ +static const OnigCodePoint +CR_Join_Control[] = { 1, +0x200c, 0x200d, +}; /* END of CR_Join_Control */ + +/* PROPERTY: 'Kaithi': Script */ +static const OnigCodePoint +CR_Kaithi[] = { 2, +0x11080, 0x110c2, +0x110cd, 0x110cd, +}; /* END of CR_Kaithi */ + +/* PROPERTY: 'Kannada': Script */ +static const OnigCodePoint +CR_Kannada[] = { 13, +0x0c80, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbc, 0x0cc4, +0x0cc6, 0x0cc8, +0x0cca, 0x0ccd, +0x0cd5, 0x0cd6, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce3, +0x0ce6, 0x0cef, +0x0cf1, 0x0cf3, +}; /* END of CR_Kannada */ + +/* PROPERTY: 'Katakana': Script */ +static const OnigCodePoint +CR_Katakana[] = { 14, +0x30a1, 0x30fa, +0x30fd, 0x30ff, +0x31f0, 0x31ff, +0x32d0, 0x32fe, +0x3300, 0x3357, +0xff66, 0xff6f, +0xff71, 0xff9d, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1b000, 0x1b000, +0x1b120, 0x1b122, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +}; /* END of CR_Katakana */ + +/* PROPERTY: 'Kawi': Script */ +static const OnigCodePoint +CR_Kawi[] = { 3, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f5a, +}; /* END of CR_Kawi */ + +/* PROPERTY: 'Kayah_Li': Script */ +static const OnigCodePoint +CR_Kayah_Li[] = { 2, +0xa900, 0xa92d, +0xa92f, 0xa92f, +}; /* END of CR_Kayah_Li */ + +/* PROPERTY: 'Kharoshthi': Script */ +static const OnigCodePoint +CR_Kharoshthi[] = { 8, +0x10a00, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a38, 0x10a3a, +0x10a3f, 0x10a48, +0x10a50, 0x10a58, +}; /* END of CR_Kharoshthi */ + +/* PROPERTY: 'Khitan_Small_Script': Script */ +static const OnigCodePoint +CR_Khitan_Small_Script[] = { 3, +0x16fe4, 0x16fe4, +0x18b00, 0x18cd5, +0x18cff, 0x18cff, +}; /* END of CR_Khitan_Small_Script */ + +/* PROPERTY: 'Khmer': Script */ +static const OnigCodePoint +CR_Khmer[] = { 4, +0x1780, 0x17dd, +0x17e0, 0x17e9, +0x17f0, 0x17f9, +0x19e0, 0x19ff, +}; /* END of CR_Khmer */ + +/* PROPERTY: 'Khojki': Script */ +static const OnigCodePoint +CR_Khojki[] = { 2, +0x11200, 0x11211, +0x11213, 0x11241, +}; /* END of CR_Khojki */ + +/* PROPERTY: 'Khudawadi': Script */ +static const OnigCodePoint +CR_Khudawadi[] = { 2, +0x112b0, 0x112ea, +0x112f0, 0x112f9, +}; /* END of CR_Khudawadi */ + +/* PROPERTY: 'Kirat_Rai': Script */ +static const OnigCodePoint +CR_Kirat_Rai[] = { 1, +0x16d40, 0x16d79, +}; /* END of CR_Kirat_Rai */ + +/* PROPERTY: 'L': Major Category */ +static const OnigCodePoint +CR_L[] = { 677, +0x0041, 0x005a, +0x0061, 0x007a, +0x00aa, 0x00aa, +0x00b5, 0x00b5, +0x00ba, 0x00ba, +0x00c0, 0x00d6, +0x00d8, 0x00f6, +0x00f8, 0x02c1, +0x02c6, 0x02d1, +0x02e0, 0x02e4, +0x02ec, 0x02ec, +0x02ee, 0x02ee, +0x0370, 0x0374, +0x0376, 0x0377, +0x037a, 0x037d, +0x037f, 0x037f, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x03f5, +0x03f7, 0x0481, +0x048a, 0x052f, +0x0531, 0x0556, +0x0559, 0x0559, +0x0560, 0x0588, +0x05d0, 0x05ea, +0x05ef, 0x05f2, +0x0620, 0x064a, +0x066e, 0x066f, +0x0671, 0x06d3, +0x06d5, 0x06d5, +0x06e5, 0x06e6, +0x06ee, 0x06ef, +0x06fa, 0x06fc, +0x06ff, 0x06ff, +0x0710, 0x0710, +0x0712, 0x072f, +0x074d, 0x07a5, +0x07b1, 0x07b1, +0x07ca, 0x07ea, +0x07f4, 0x07f5, +0x07fa, 0x07fa, +0x0800, 0x0815, +0x081a, 0x081a, +0x0824, 0x0824, +0x0828, 0x0828, +0x0840, 0x0858, +0x0860, 0x086a, +0x0870, 0x0887, +0x0889, 0x088e, +0x08a0, 0x08c9, +0x0904, 0x0939, +0x093d, 0x093d, +0x0950, 0x0950, +0x0958, 0x0961, +0x0971, 0x0980, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bd, 0x09bd, +0x09ce, 0x09ce, +0x09dc, 0x09dd, +0x09df, 0x09e1, +0x09f0, 0x09f1, +0x09fc, 0x09fc, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a72, 0x0a74, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abd, 0x0abd, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae1, +0x0af9, 0x0af9, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3d, 0x0b3d, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b61, +0x0b71, 0x0b71, +0x0b83, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bd0, 0x0bd0, +0x0c05, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3d, 0x0c3d, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c61, +0x0c80, 0x0c80, +0x0c85, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbd, 0x0cbd, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce1, +0x0cf1, 0x0cf2, +0x0d04, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d3a, +0x0d3d, 0x0d3d, +0x0d4e, 0x0d4e, +0x0d54, 0x0d56, +0x0d5f, 0x0d61, +0x0d7a, 0x0d7f, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0e01, 0x0e30, +0x0e32, 0x0e33, +0x0e40, 0x0e46, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0eb0, +0x0eb2, 0x0eb3, +0x0ebd, 0x0ebd, +0x0ec0, 0x0ec4, +0x0ec6, 0x0ec6, +0x0edc, 0x0edf, +0x0f00, 0x0f00, +0x0f40, 0x0f47, +0x0f49, 0x0f6c, +0x0f88, 0x0f8c, +0x1000, 0x102a, +0x103f, 0x103f, +0x1050, 0x1055, +0x105a, 0x105d, +0x1061, 0x1061, +0x1065, 0x1066, +0x106e, 0x1070, +0x1075, 0x1081, +0x108e, 0x108e, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x10fa, +0x10fc, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x1380, 0x138f, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1401, 0x166c, +0x166f, 0x167f, +0x1681, 0x169a, +0x16a0, 0x16ea, +0x16f1, 0x16f8, +0x1700, 0x1711, +0x171f, 0x1731, +0x1740, 0x1751, +0x1760, 0x176c, +0x176e, 0x1770, +0x1780, 0x17b3, +0x17d7, 0x17d7, +0x17dc, 0x17dc, +0x1820, 0x1878, +0x1880, 0x1884, +0x1887, 0x18a8, +0x18aa, 0x18aa, +0x18b0, 0x18f5, +0x1900, 0x191e, +0x1950, 0x196d, +0x1970, 0x1974, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x1a00, 0x1a16, +0x1a20, 0x1a54, +0x1aa7, 0x1aa7, +0x1b05, 0x1b33, +0x1b45, 0x1b4c, +0x1b83, 0x1ba0, +0x1bae, 0x1baf, +0x1bba, 0x1be5, +0x1c00, 0x1c23, +0x1c4d, 0x1c4f, +0x1c5a, 0x1c7d, +0x1c80, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1ce9, 0x1cec, +0x1cee, 0x1cf3, +0x1cf5, 0x1cf6, +0x1cfa, 0x1cfa, +0x1d00, 0x1dbf, +0x1e00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fbc, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fcc, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fe0, 0x1fec, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffc, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x2102, 0x2102, +0x2107, 0x2107, +0x210a, 0x2113, +0x2115, 0x2115, +0x2119, 0x211d, +0x2124, 0x2124, +0x2126, 0x2126, +0x2128, 0x2128, +0x212a, 0x212d, +0x212f, 0x2139, +0x213c, 0x213f, +0x2145, 0x2149, +0x214e, 0x214e, +0x2183, 0x2184, +0x2c00, 0x2ce4, +0x2ceb, 0x2cee, +0x2cf2, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0x2d30, 0x2d67, +0x2d6f, 0x2d6f, +0x2d80, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0x2e2f, 0x2e2f, +0x3005, 0x3006, +0x3031, 0x3035, +0x303b, 0x303c, +0x3041, 0x3096, +0x309d, 0x309f, +0x30a1, 0x30fa, +0x30fc, 0x30ff, +0x3105, 0x312f, +0x3131, 0x318e, +0x31a0, 0x31bf, +0x31f0, 0x31ff, +0x3400, 0x4dbf, +0x4e00, 0xa48c, +0xa4d0, 0xa4fd, +0xa500, 0xa60c, +0xa610, 0xa61f, +0xa62a, 0xa62b, +0xa640, 0xa66e, +0xa67f, 0xa69d, +0xa6a0, 0xa6e5, +0xa717, 0xa71f, +0xa722, 0xa788, +0xa78b, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa801, +0xa803, 0xa805, +0xa807, 0xa80a, +0xa80c, 0xa822, +0xa840, 0xa873, +0xa882, 0xa8b3, +0xa8f2, 0xa8f7, +0xa8fb, 0xa8fb, +0xa8fd, 0xa8fe, +0xa90a, 0xa925, +0xa930, 0xa946, +0xa960, 0xa97c, +0xa984, 0xa9b2, +0xa9cf, 0xa9cf, +0xa9e0, 0xa9e4, +0xa9e6, 0xa9ef, +0xa9fa, 0xa9fe, +0xaa00, 0xaa28, +0xaa40, 0xaa42, +0xaa44, 0xaa4b, +0xaa60, 0xaa76, +0xaa7a, 0xaa7a, +0xaa7e, 0xaaaf, +0xaab1, 0xaab1, +0xaab5, 0xaab6, +0xaab9, 0xaabd, +0xaac0, 0xaac0, +0xaac2, 0xaac2, +0xaadb, 0xaadd, +0xaae0, 0xaaea, +0xaaf2, 0xaaf4, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0xab30, 0xab5a, +0xab5c, 0xab69, +0xab70, 0xabe2, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xf900, 0xfa6d, +0xfa70, 0xfad9, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xfb1d, 0xfb1d, +0xfb1f, 0xfb28, +0xfb2a, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfbb1, +0xfbd3, 0xfd3d, +0xfd50, 0xfd8f, +0xfd92, 0xfdc7, +0xfdf0, 0xfdfb, +0xfe70, 0xfe74, +0xfe76, 0xfefc, +0xff21, 0xff3a, +0xff41, 0xff5a, +0xff66, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +0x10280, 0x1029c, +0x102a0, 0x102d0, +0x10300, 0x1031f, +0x1032d, 0x10340, +0x10342, 0x10349, +0x10350, 0x10375, +0x10380, 0x1039d, +0x103a0, 0x103c3, +0x103c8, 0x103cf, +0x10400, 0x1049d, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10500, 0x10527, +0x10530, 0x10563, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x105c0, 0x105f3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x10855, +0x10860, 0x10876, +0x10880, 0x1089e, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x10900, 0x10915, +0x10920, 0x10939, +0x10980, 0x109b7, +0x109be, 0x109bf, +0x10a00, 0x10a00, +0x10a10, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a60, 0x10a7c, +0x10a80, 0x10a9c, +0x10ac0, 0x10ac7, +0x10ac9, 0x10ae4, +0x10b00, 0x10b35, +0x10b40, 0x10b55, +0x10b60, 0x10b72, +0x10b80, 0x10b91, +0x10c00, 0x10c48, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10d00, 0x10d23, +0x10d4a, 0x10d65, +0x10d6f, 0x10d85, +0x10e80, 0x10ea9, +0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10f00, 0x10f1c, +0x10f27, 0x10f27, +0x10f30, 0x10f45, +0x10f70, 0x10f81, +0x10fb0, 0x10fc4, +0x10fe0, 0x10ff6, +0x11003, 0x11037, +0x11071, 0x11072, +0x11075, 0x11075, +0x11083, 0x110af, +0x110d0, 0x110e8, +0x11103, 0x11126, +0x11144, 0x11144, +0x11147, 0x11147, +0x11150, 0x11172, +0x11176, 0x11176, +0x11183, 0x111b2, +0x111c1, 0x111c4, +0x111da, 0x111da, +0x111dc, 0x111dc, +0x11200, 0x11211, +0x11213, 0x1122b, +0x1123f, 0x11240, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a8, +0x112b0, 0x112de, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133d, 0x1133d, +0x11350, 0x11350, +0x1135d, 0x11361, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113b7, +0x113d1, 0x113d1, +0x113d3, 0x113d3, +0x11400, 0x11434, +0x11447, 0x1144a, +0x1145f, 0x11461, +0x11480, 0x114af, +0x114c4, 0x114c5, +0x114c7, 0x114c7, +0x11580, 0x115ae, +0x115d8, 0x115db, +0x11600, 0x1162f, +0x11644, 0x11644, +0x11680, 0x116aa, +0x116b8, 0x116b8, +0x11700, 0x1171a, +0x11740, 0x11746, +0x11800, 0x1182b, +0x118a0, 0x118df, +0x118ff, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x1192f, +0x1193f, 0x1193f, +0x11941, 0x11941, +0x119a0, 0x119a7, +0x119aa, 0x119d0, +0x119e1, 0x119e1, +0x119e3, 0x119e3, +0x11a00, 0x11a00, +0x11a0b, 0x11a32, +0x11a3a, 0x11a3a, +0x11a50, 0x11a50, +0x11a5c, 0x11a89, +0x11a9d, 0x11a9d, +0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11c00, 0x11c08, +0x11c0a, 0x11c2e, +0x11c40, 0x11c40, +0x11c72, 0x11c8f, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d30, +0x11d46, 0x11d46, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d89, +0x11d98, 0x11d98, +0x11ee0, 0x11ef2, +0x11f02, 0x11f02, +0x11f04, 0x11f10, +0x11f12, 0x11f33, +0x11fb0, 0x11fb0, +0x12000, 0x12399, +0x12480, 0x12543, +0x12f90, 0x12ff0, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, +0x14400, 0x14646, +0x16100, 0x1611d, +0x16800, 0x16a38, +0x16a40, 0x16a5e, +0x16a70, 0x16abe, +0x16ad0, 0x16aed, +0x16b00, 0x16b2f, +0x16b40, 0x16b43, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16e40, 0x16e7f, +0x16f00, 0x16f4a, +0x16f50, 0x16f50, +0x16f93, 0x16f9f, +0x16fe0, 0x16fe1, +0x16fe3, 0x16fe3, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1b000, 0x1b122, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +0x1b170, 0x1b2fb, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d6c0, +0x1d6c2, 0x1d6da, +0x1d6dc, 0x1d6fa, +0x1d6fc, 0x1d714, +0x1d716, 0x1d734, +0x1d736, 0x1d74e, +0x1d750, 0x1d76e, +0x1d770, 0x1d788, +0x1d78a, 0x1d7a8, +0x1d7aa, 0x1d7c2, +0x1d7c4, 0x1d7cb, +0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, +0x1e100, 0x1e12c, +0x1e137, 0x1e13d, +0x1e14e, 0x1e14e, +0x1e290, 0x1e2ad, +0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5f0, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +0x1e800, 0x1e8c4, +0x1e900, 0x1e943, +0x1e94b, 0x1e94b, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +}; /* END of CR_L */ + +/* PROPERTY: 'LC': General Category */ +static const OnigCodePoint +CR_LC[] = { 145, +0x0041, 0x005a, +0x0061, 0x007a, +0x00b5, 0x00b5, +0x00c0, 0x00d6, +0x00d8, 0x00f6, +0x00f8, 0x01ba, +0x01bc, 0x01bf, +0x01c4, 0x0293, +0x0295, 0x02af, +0x0370, 0x0373, +0x0376, 0x0377, +0x037b, 0x037d, +0x037f, 0x037f, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x03f5, +0x03f7, 0x0481, +0x048a, 0x052f, +0x0531, 0x0556, +0x0560, 0x0588, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x10fa, +0x10fd, 0x10ff, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1c80, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1d00, 0x1d2b, +0x1d6b, 0x1d77, +0x1d79, 0x1d9a, +0x1e00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fbc, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fcc, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fe0, 0x1fec, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffc, +0x2102, 0x2102, +0x2107, 0x2107, +0x210a, 0x2113, +0x2115, 0x2115, +0x2119, 0x211d, +0x2124, 0x2124, +0x2126, 0x2126, +0x2128, 0x2128, +0x212a, 0x212d, +0x212f, 0x2134, +0x2139, 0x2139, +0x213c, 0x213f, +0x2145, 0x2149, +0x214e, 0x214e, +0x2183, 0x2184, +0x2c00, 0x2c7b, +0x2c7e, 0x2ce4, +0x2ceb, 0x2cee, +0x2cf2, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0xa640, 0xa66d, +0xa680, 0xa69b, +0xa722, 0xa76f, +0xa771, 0xa787, +0xa78b, 0xa78e, +0xa790, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f5, 0xa7f6, +0xa7fa, 0xa7fa, +0xab30, 0xab5a, +0xab60, 0xab68, +0xab70, 0xabbf, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xff21, 0xff3a, +0xff41, 0xff5a, +0x10400, 0x1044f, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10d50, 0x10d65, +0x10d70, 0x10d85, +0x118a0, 0x118df, +0x16e40, 0x16e7f, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d6c0, +0x1d6c2, 0x1d6da, +0x1d6dc, 0x1d6fa, +0x1d6fc, 0x1d714, +0x1d716, 0x1d734, +0x1d736, 0x1d74e, +0x1d750, 0x1d76e, +0x1d770, 0x1d788, +0x1d78a, 0x1d7a8, +0x1d7aa, 0x1d7c2, +0x1d7c4, 0x1d7cb, +0x1df00, 0x1df09, +0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, +0x1e900, 0x1e943, +}; /* END of CR_LC */ + +/* PROPERTY: 'Lao': Script */ +static const OnigCodePoint +CR_Lao[] = { 11, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0ebd, +0x0ec0, 0x0ec4, +0x0ec6, 0x0ec6, +0x0ec8, 0x0ece, +0x0ed0, 0x0ed9, +0x0edc, 0x0edf, +}; /* END of CR_Lao */ + +/* PROPERTY: 'Latin': Script */ +static const OnigCodePoint +CR_Latin[] = { 39, +0x0041, 0x005a, +0x0061, 0x007a, +0x00aa, 0x00aa, +0x00ba, 0x00ba, +0x00c0, 0x00d6, +0x00d8, 0x00f6, +0x00f8, 0x02b8, +0x02e0, 0x02e4, +0x1d00, 0x1d25, +0x1d2c, 0x1d5c, +0x1d62, 0x1d65, +0x1d6b, 0x1d77, +0x1d79, 0x1dbe, +0x1e00, 0x1eff, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x212a, 0x212b, +0x2132, 0x2132, +0x214e, 0x214e, +0x2160, 0x2188, +0x2c60, 0x2c7f, +0xa722, 0xa787, +0xa78b, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa7ff, +0xab30, 0xab5a, +0xab5c, 0xab64, +0xab66, 0xab69, +0xfb00, 0xfb06, +0xff21, 0xff3a, +0xff41, 0xff5a, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +}; /* END of CR_Latin */ + +/* PROPERTY: 'Lepcha': Script */ +static const OnigCodePoint +CR_Lepcha[] = { 3, +0x1c00, 0x1c37, +0x1c3b, 0x1c49, +0x1c4d, 0x1c4f, +}; /* END of CR_Lepcha */ + +/* PROPERTY: 'Limbu': Script */ +static const OnigCodePoint +CR_Limbu[] = { 5, +0x1900, 0x191e, +0x1920, 0x192b, +0x1930, 0x193b, +0x1940, 0x1940, +0x1944, 0x194f, +}; /* END of CR_Limbu */ + +/* PROPERTY: 'Linear_A': Script */ +static const OnigCodePoint +CR_Linear_A[] = { 3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +}; /* END of CR_Linear_A */ + +/* PROPERTY: 'Linear_B': Script */ +static const OnigCodePoint +CR_Linear_B[] = { 7, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +}; /* END of CR_Linear_B */ + +/* PROPERTY: 'Lisu': Script */ +static const OnigCodePoint +CR_Lisu[] = { 2, +0xa4d0, 0xa4ff, +0x11fb0, 0x11fb0, +}; /* END of CR_Lisu */ + +/* PROPERTY: 'Ll': General Category */ +static const OnigCodePoint +CR_Ll[] = { 662, +0x0061, 0x007a, +0x00b5, 0x00b5, +0x00df, 0x00f6, +0x00f8, 0x00ff, +0x0101, 0x0101, +0x0103, 0x0103, +0x0105, 0x0105, +0x0107, 0x0107, +0x0109, 0x0109, +0x010b, 0x010b, +0x010d, 0x010d, +0x010f, 0x010f, +0x0111, 0x0111, +0x0113, 0x0113, +0x0115, 0x0115, +0x0117, 0x0117, +0x0119, 0x0119, +0x011b, 0x011b, +0x011d, 0x011d, +0x011f, 0x011f, +0x0121, 0x0121, +0x0123, 0x0123, +0x0125, 0x0125, +0x0127, 0x0127, +0x0129, 0x0129, +0x012b, 0x012b, +0x012d, 0x012d, +0x012f, 0x012f, +0x0131, 0x0131, +0x0133, 0x0133, +0x0135, 0x0135, +0x0137, 0x0138, +0x013a, 0x013a, +0x013c, 0x013c, +0x013e, 0x013e, +0x0140, 0x0140, +0x0142, 0x0142, +0x0144, 0x0144, +0x0146, 0x0146, +0x0148, 0x0149, +0x014b, 0x014b, +0x014d, 0x014d, +0x014f, 0x014f, +0x0151, 0x0151, +0x0153, 0x0153, +0x0155, 0x0155, +0x0157, 0x0157, +0x0159, 0x0159, +0x015b, 0x015b, +0x015d, 0x015d, +0x015f, 0x015f, +0x0161, 0x0161, +0x0163, 0x0163, +0x0165, 0x0165, +0x0167, 0x0167, +0x0169, 0x0169, +0x016b, 0x016b, +0x016d, 0x016d, +0x016f, 0x016f, +0x0171, 0x0171, +0x0173, 0x0173, +0x0175, 0x0175, +0x0177, 0x0177, +0x017a, 0x017a, +0x017c, 0x017c, +0x017e, 0x0180, +0x0183, 0x0183, +0x0185, 0x0185, +0x0188, 0x0188, +0x018c, 0x018d, +0x0192, 0x0192, +0x0195, 0x0195, +0x0199, 0x019b, +0x019e, 0x019e, +0x01a1, 0x01a1, +0x01a3, 0x01a3, +0x01a5, 0x01a5, +0x01a8, 0x01a8, +0x01aa, 0x01ab, +0x01ad, 0x01ad, +0x01b0, 0x01b0, +0x01b4, 0x01b4, +0x01b6, 0x01b6, +0x01b9, 0x01ba, +0x01bd, 0x01bf, +0x01c6, 0x01c6, +0x01c9, 0x01c9, +0x01cc, 0x01cc, +0x01ce, 0x01ce, +0x01d0, 0x01d0, +0x01d2, 0x01d2, +0x01d4, 0x01d4, +0x01d6, 0x01d6, +0x01d8, 0x01d8, +0x01da, 0x01da, +0x01dc, 0x01dd, +0x01df, 0x01df, +0x01e1, 0x01e1, +0x01e3, 0x01e3, +0x01e5, 0x01e5, +0x01e7, 0x01e7, +0x01e9, 0x01e9, +0x01eb, 0x01eb, +0x01ed, 0x01ed, +0x01ef, 0x01f0, +0x01f3, 0x01f3, +0x01f5, 0x01f5, +0x01f9, 0x01f9, +0x01fb, 0x01fb, +0x01fd, 0x01fd, +0x01ff, 0x01ff, +0x0201, 0x0201, +0x0203, 0x0203, +0x0205, 0x0205, +0x0207, 0x0207, +0x0209, 0x0209, +0x020b, 0x020b, +0x020d, 0x020d, +0x020f, 0x020f, +0x0211, 0x0211, +0x0213, 0x0213, +0x0215, 0x0215, +0x0217, 0x0217, +0x0219, 0x0219, +0x021b, 0x021b, +0x021d, 0x021d, +0x021f, 0x021f, +0x0221, 0x0221, +0x0223, 0x0223, +0x0225, 0x0225, +0x0227, 0x0227, +0x0229, 0x0229, +0x022b, 0x022b, +0x022d, 0x022d, +0x022f, 0x022f, +0x0231, 0x0231, +0x0233, 0x0239, +0x023c, 0x023c, +0x023f, 0x0240, +0x0242, 0x0242, +0x0247, 0x0247, +0x0249, 0x0249, +0x024b, 0x024b, +0x024d, 0x024d, +0x024f, 0x0293, +0x0295, 0x02af, +0x0371, 0x0371, +0x0373, 0x0373, +0x0377, 0x0377, +0x037b, 0x037d, +0x0390, 0x0390, +0x03ac, 0x03ce, +0x03d0, 0x03d1, +0x03d5, 0x03d7, +0x03d9, 0x03d9, +0x03db, 0x03db, +0x03dd, 0x03dd, +0x03df, 0x03df, +0x03e1, 0x03e1, +0x03e3, 0x03e3, +0x03e5, 0x03e5, +0x03e7, 0x03e7, +0x03e9, 0x03e9, +0x03eb, 0x03eb, +0x03ed, 0x03ed, +0x03ef, 0x03f3, +0x03f5, 0x03f5, +0x03f8, 0x03f8, +0x03fb, 0x03fc, +0x0430, 0x045f, +0x0461, 0x0461, +0x0463, 0x0463, +0x0465, 0x0465, +0x0467, 0x0467, +0x0469, 0x0469, +0x046b, 0x046b, +0x046d, 0x046d, +0x046f, 0x046f, +0x0471, 0x0471, +0x0473, 0x0473, +0x0475, 0x0475, +0x0477, 0x0477, +0x0479, 0x0479, +0x047b, 0x047b, +0x047d, 0x047d, +0x047f, 0x047f, +0x0481, 0x0481, +0x048b, 0x048b, +0x048d, 0x048d, +0x048f, 0x048f, +0x0491, 0x0491, +0x0493, 0x0493, +0x0495, 0x0495, +0x0497, 0x0497, +0x0499, 0x0499, +0x049b, 0x049b, +0x049d, 0x049d, +0x049f, 0x049f, +0x04a1, 0x04a1, +0x04a3, 0x04a3, +0x04a5, 0x04a5, +0x04a7, 0x04a7, +0x04a9, 0x04a9, +0x04ab, 0x04ab, +0x04ad, 0x04ad, +0x04af, 0x04af, +0x04b1, 0x04b1, +0x04b3, 0x04b3, +0x04b5, 0x04b5, +0x04b7, 0x04b7, +0x04b9, 0x04b9, +0x04bb, 0x04bb, +0x04bd, 0x04bd, +0x04bf, 0x04bf, +0x04c2, 0x04c2, +0x04c4, 0x04c4, +0x04c6, 0x04c6, +0x04c8, 0x04c8, +0x04ca, 0x04ca, +0x04cc, 0x04cc, +0x04ce, 0x04cf, +0x04d1, 0x04d1, +0x04d3, 0x04d3, +0x04d5, 0x04d5, +0x04d7, 0x04d7, +0x04d9, 0x04d9, +0x04db, 0x04db, +0x04dd, 0x04dd, +0x04df, 0x04df, +0x04e1, 0x04e1, +0x04e3, 0x04e3, +0x04e5, 0x04e5, +0x04e7, 0x04e7, +0x04e9, 0x04e9, +0x04eb, 0x04eb, +0x04ed, 0x04ed, +0x04ef, 0x04ef, +0x04f1, 0x04f1, +0x04f3, 0x04f3, +0x04f5, 0x04f5, +0x04f7, 0x04f7, +0x04f9, 0x04f9, +0x04fb, 0x04fb, +0x04fd, 0x04fd, +0x04ff, 0x04ff, +0x0501, 0x0501, +0x0503, 0x0503, +0x0505, 0x0505, +0x0507, 0x0507, +0x0509, 0x0509, +0x050b, 0x050b, +0x050d, 0x050d, +0x050f, 0x050f, +0x0511, 0x0511, +0x0513, 0x0513, +0x0515, 0x0515, +0x0517, 0x0517, +0x0519, 0x0519, +0x051b, 0x051b, +0x051d, 0x051d, +0x051f, 0x051f, +0x0521, 0x0521, +0x0523, 0x0523, +0x0525, 0x0525, +0x0527, 0x0527, +0x0529, 0x0529, +0x052b, 0x052b, +0x052d, 0x052d, +0x052f, 0x052f, +0x0560, 0x0588, +0x10d0, 0x10fa, +0x10fd, 0x10ff, +0x13f8, 0x13fd, +0x1c80, 0x1c88, +0x1c8a, 0x1c8a, +0x1d00, 0x1d2b, +0x1d6b, 0x1d77, +0x1d79, 0x1d9a, +0x1e01, 0x1e01, +0x1e03, 0x1e03, +0x1e05, 0x1e05, +0x1e07, 0x1e07, +0x1e09, 0x1e09, +0x1e0b, 0x1e0b, +0x1e0d, 0x1e0d, +0x1e0f, 0x1e0f, +0x1e11, 0x1e11, +0x1e13, 0x1e13, +0x1e15, 0x1e15, +0x1e17, 0x1e17, +0x1e19, 0x1e19, +0x1e1b, 0x1e1b, +0x1e1d, 0x1e1d, +0x1e1f, 0x1e1f, +0x1e21, 0x1e21, +0x1e23, 0x1e23, +0x1e25, 0x1e25, +0x1e27, 0x1e27, +0x1e29, 0x1e29, +0x1e2b, 0x1e2b, +0x1e2d, 0x1e2d, +0x1e2f, 0x1e2f, +0x1e31, 0x1e31, +0x1e33, 0x1e33, +0x1e35, 0x1e35, +0x1e37, 0x1e37, +0x1e39, 0x1e39, +0x1e3b, 0x1e3b, +0x1e3d, 0x1e3d, +0x1e3f, 0x1e3f, +0x1e41, 0x1e41, +0x1e43, 0x1e43, +0x1e45, 0x1e45, +0x1e47, 0x1e47, +0x1e49, 0x1e49, +0x1e4b, 0x1e4b, +0x1e4d, 0x1e4d, +0x1e4f, 0x1e4f, +0x1e51, 0x1e51, +0x1e53, 0x1e53, +0x1e55, 0x1e55, +0x1e57, 0x1e57, +0x1e59, 0x1e59, +0x1e5b, 0x1e5b, +0x1e5d, 0x1e5d, +0x1e5f, 0x1e5f, +0x1e61, 0x1e61, +0x1e63, 0x1e63, +0x1e65, 0x1e65, +0x1e67, 0x1e67, +0x1e69, 0x1e69, +0x1e6b, 0x1e6b, +0x1e6d, 0x1e6d, +0x1e6f, 0x1e6f, +0x1e71, 0x1e71, +0x1e73, 0x1e73, +0x1e75, 0x1e75, +0x1e77, 0x1e77, +0x1e79, 0x1e79, +0x1e7b, 0x1e7b, +0x1e7d, 0x1e7d, +0x1e7f, 0x1e7f, +0x1e81, 0x1e81, +0x1e83, 0x1e83, +0x1e85, 0x1e85, +0x1e87, 0x1e87, +0x1e89, 0x1e89, +0x1e8b, 0x1e8b, +0x1e8d, 0x1e8d, +0x1e8f, 0x1e8f, +0x1e91, 0x1e91, +0x1e93, 0x1e93, +0x1e95, 0x1e9d, +0x1e9f, 0x1e9f, +0x1ea1, 0x1ea1, +0x1ea3, 0x1ea3, +0x1ea5, 0x1ea5, +0x1ea7, 0x1ea7, +0x1ea9, 0x1ea9, +0x1eab, 0x1eab, +0x1ead, 0x1ead, +0x1eaf, 0x1eaf, +0x1eb1, 0x1eb1, +0x1eb3, 0x1eb3, +0x1eb5, 0x1eb5, +0x1eb7, 0x1eb7, +0x1eb9, 0x1eb9, +0x1ebb, 0x1ebb, +0x1ebd, 0x1ebd, +0x1ebf, 0x1ebf, +0x1ec1, 0x1ec1, +0x1ec3, 0x1ec3, +0x1ec5, 0x1ec5, +0x1ec7, 0x1ec7, +0x1ec9, 0x1ec9, +0x1ecb, 0x1ecb, +0x1ecd, 0x1ecd, +0x1ecf, 0x1ecf, +0x1ed1, 0x1ed1, +0x1ed3, 0x1ed3, +0x1ed5, 0x1ed5, +0x1ed7, 0x1ed7, +0x1ed9, 0x1ed9, +0x1edb, 0x1edb, +0x1edd, 0x1edd, +0x1edf, 0x1edf, +0x1ee1, 0x1ee1, +0x1ee3, 0x1ee3, +0x1ee5, 0x1ee5, +0x1ee7, 0x1ee7, +0x1ee9, 0x1ee9, +0x1eeb, 0x1eeb, +0x1eed, 0x1eed, +0x1eef, 0x1eef, +0x1ef1, 0x1ef1, +0x1ef3, 0x1ef3, +0x1ef5, 0x1ef5, +0x1ef7, 0x1ef7, +0x1ef9, 0x1ef9, +0x1efb, 0x1efb, +0x1efd, 0x1efd, +0x1eff, 0x1f07, +0x1f10, 0x1f15, +0x1f20, 0x1f27, +0x1f30, 0x1f37, +0x1f40, 0x1f45, +0x1f50, 0x1f57, +0x1f60, 0x1f67, +0x1f70, 0x1f7d, +0x1f80, 0x1f87, +0x1f90, 0x1f97, +0x1fa0, 0x1fa7, +0x1fb0, 0x1fb4, +0x1fb6, 0x1fb7, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fc7, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fd7, +0x1fe0, 0x1fe7, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ff7, +0x210a, 0x210a, +0x210e, 0x210f, +0x2113, 0x2113, +0x212f, 0x212f, +0x2134, 0x2134, +0x2139, 0x2139, +0x213c, 0x213d, +0x2146, 0x2149, +0x214e, 0x214e, +0x2184, 0x2184, +0x2c30, 0x2c5f, +0x2c61, 0x2c61, +0x2c65, 0x2c66, +0x2c68, 0x2c68, +0x2c6a, 0x2c6a, +0x2c6c, 0x2c6c, +0x2c71, 0x2c71, +0x2c73, 0x2c74, +0x2c76, 0x2c7b, +0x2c81, 0x2c81, +0x2c83, 0x2c83, +0x2c85, 0x2c85, +0x2c87, 0x2c87, +0x2c89, 0x2c89, +0x2c8b, 0x2c8b, +0x2c8d, 0x2c8d, +0x2c8f, 0x2c8f, +0x2c91, 0x2c91, +0x2c93, 0x2c93, +0x2c95, 0x2c95, +0x2c97, 0x2c97, +0x2c99, 0x2c99, +0x2c9b, 0x2c9b, +0x2c9d, 0x2c9d, +0x2c9f, 0x2c9f, +0x2ca1, 0x2ca1, +0x2ca3, 0x2ca3, +0x2ca5, 0x2ca5, +0x2ca7, 0x2ca7, +0x2ca9, 0x2ca9, +0x2cab, 0x2cab, +0x2cad, 0x2cad, +0x2caf, 0x2caf, +0x2cb1, 0x2cb1, +0x2cb3, 0x2cb3, +0x2cb5, 0x2cb5, +0x2cb7, 0x2cb7, +0x2cb9, 0x2cb9, +0x2cbb, 0x2cbb, +0x2cbd, 0x2cbd, +0x2cbf, 0x2cbf, +0x2cc1, 0x2cc1, +0x2cc3, 0x2cc3, +0x2cc5, 0x2cc5, +0x2cc7, 0x2cc7, +0x2cc9, 0x2cc9, +0x2ccb, 0x2ccb, +0x2ccd, 0x2ccd, +0x2ccf, 0x2ccf, +0x2cd1, 0x2cd1, +0x2cd3, 0x2cd3, +0x2cd5, 0x2cd5, +0x2cd7, 0x2cd7, +0x2cd9, 0x2cd9, +0x2cdb, 0x2cdb, +0x2cdd, 0x2cdd, +0x2cdf, 0x2cdf, +0x2ce1, 0x2ce1, +0x2ce3, 0x2ce4, +0x2cec, 0x2cec, +0x2cee, 0x2cee, +0x2cf3, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0xa641, 0xa641, +0xa643, 0xa643, +0xa645, 0xa645, +0xa647, 0xa647, +0xa649, 0xa649, +0xa64b, 0xa64b, +0xa64d, 0xa64d, +0xa64f, 0xa64f, +0xa651, 0xa651, +0xa653, 0xa653, +0xa655, 0xa655, +0xa657, 0xa657, +0xa659, 0xa659, +0xa65b, 0xa65b, +0xa65d, 0xa65d, +0xa65f, 0xa65f, +0xa661, 0xa661, +0xa663, 0xa663, +0xa665, 0xa665, +0xa667, 0xa667, +0xa669, 0xa669, +0xa66b, 0xa66b, +0xa66d, 0xa66d, +0xa681, 0xa681, +0xa683, 0xa683, +0xa685, 0xa685, +0xa687, 0xa687, +0xa689, 0xa689, +0xa68b, 0xa68b, +0xa68d, 0xa68d, +0xa68f, 0xa68f, +0xa691, 0xa691, +0xa693, 0xa693, +0xa695, 0xa695, +0xa697, 0xa697, +0xa699, 0xa699, +0xa69b, 0xa69b, +0xa723, 0xa723, +0xa725, 0xa725, +0xa727, 0xa727, +0xa729, 0xa729, +0xa72b, 0xa72b, +0xa72d, 0xa72d, +0xa72f, 0xa731, +0xa733, 0xa733, +0xa735, 0xa735, +0xa737, 0xa737, +0xa739, 0xa739, +0xa73b, 0xa73b, +0xa73d, 0xa73d, +0xa73f, 0xa73f, +0xa741, 0xa741, +0xa743, 0xa743, +0xa745, 0xa745, +0xa747, 0xa747, +0xa749, 0xa749, +0xa74b, 0xa74b, +0xa74d, 0xa74d, +0xa74f, 0xa74f, +0xa751, 0xa751, +0xa753, 0xa753, +0xa755, 0xa755, +0xa757, 0xa757, +0xa759, 0xa759, +0xa75b, 0xa75b, +0xa75d, 0xa75d, +0xa75f, 0xa75f, +0xa761, 0xa761, +0xa763, 0xa763, +0xa765, 0xa765, +0xa767, 0xa767, +0xa769, 0xa769, +0xa76b, 0xa76b, +0xa76d, 0xa76d, +0xa76f, 0xa76f, +0xa771, 0xa778, +0xa77a, 0xa77a, +0xa77c, 0xa77c, +0xa77f, 0xa77f, +0xa781, 0xa781, +0xa783, 0xa783, +0xa785, 0xa785, +0xa787, 0xa787, +0xa78c, 0xa78c, +0xa78e, 0xa78e, +0xa791, 0xa791, +0xa793, 0xa795, +0xa797, 0xa797, +0xa799, 0xa799, +0xa79b, 0xa79b, +0xa79d, 0xa79d, +0xa79f, 0xa79f, +0xa7a1, 0xa7a1, +0xa7a3, 0xa7a3, +0xa7a5, 0xa7a5, +0xa7a7, 0xa7a7, +0xa7a9, 0xa7a9, +0xa7af, 0xa7af, +0xa7b5, 0xa7b5, +0xa7b7, 0xa7b7, +0xa7b9, 0xa7b9, +0xa7bb, 0xa7bb, +0xa7bd, 0xa7bd, +0xa7bf, 0xa7bf, +0xa7c1, 0xa7c1, +0xa7c3, 0xa7c3, +0xa7c8, 0xa7c8, +0xa7ca, 0xa7ca, +0xa7cd, 0xa7cd, +0xa7d1, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7d5, +0xa7d7, 0xa7d7, +0xa7d9, 0xa7d9, +0xa7db, 0xa7db, +0xa7f6, 0xa7f6, +0xa7fa, 0xa7fa, +0xab30, 0xab5a, +0xab60, 0xab68, +0xab70, 0xabbf, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xff41, 0xff5a, +0x10428, 0x1044f, +0x104d8, 0x104fb, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x10cc0, 0x10cf2, +0x10d70, 0x10d85, +0x118c0, 0x118df, +0x16e60, 0x16e7f, +0x1d41a, 0x1d433, +0x1d44e, 0x1d454, +0x1d456, 0x1d467, +0x1d482, 0x1d49b, +0x1d4b6, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d4cf, +0x1d4ea, 0x1d503, +0x1d51e, 0x1d537, +0x1d552, 0x1d56b, +0x1d586, 0x1d59f, +0x1d5ba, 0x1d5d3, +0x1d5ee, 0x1d607, +0x1d622, 0x1d63b, +0x1d656, 0x1d66f, +0x1d68a, 0x1d6a5, +0x1d6c2, 0x1d6da, +0x1d6dc, 0x1d6e1, +0x1d6fc, 0x1d714, +0x1d716, 0x1d71b, +0x1d736, 0x1d74e, +0x1d750, 0x1d755, +0x1d770, 0x1d788, +0x1d78a, 0x1d78f, +0x1d7aa, 0x1d7c2, +0x1d7c4, 0x1d7c9, +0x1d7cb, 0x1d7cb, +0x1df00, 0x1df09, +0x1df0b, 0x1df1e, +0x1df25, 0x1df2a, +0x1e922, 0x1e943, +}; /* END of CR_Ll */ + +/* PROPERTY: 'Lm': General Category */ +static const OnigCodePoint +CR_Lm[] = { 75, +0x02b0, 0x02c1, +0x02c6, 0x02d1, +0x02e0, 0x02e4, +0x02ec, 0x02ec, +0x02ee, 0x02ee, +0x0374, 0x0374, +0x037a, 0x037a, +0x0559, 0x0559, +0x0640, 0x0640, +0x06e5, 0x06e6, +0x07f4, 0x07f5, +0x07fa, 0x07fa, +0x081a, 0x081a, +0x0824, 0x0824, +0x0828, 0x0828, +0x08c9, 0x08c9, +0x0971, 0x0971, +0x0e46, 0x0e46, +0x0ec6, 0x0ec6, +0x10fc, 0x10fc, +0x17d7, 0x17d7, +0x1843, 0x1843, +0x1aa7, 0x1aa7, +0x1c78, 0x1c7d, +0x1d2c, 0x1d6a, +0x1d78, 0x1d78, +0x1d9b, 0x1dbf, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x2c7c, 0x2c7d, +0x2d6f, 0x2d6f, +0x2e2f, 0x2e2f, +0x3005, 0x3005, +0x3031, 0x3035, +0x303b, 0x303b, +0x309d, 0x309e, +0x30fc, 0x30fe, +0xa015, 0xa015, +0xa4f8, 0xa4fd, +0xa60c, 0xa60c, +0xa67f, 0xa67f, +0xa69c, 0xa69d, +0xa717, 0xa71f, +0xa770, 0xa770, +0xa788, 0xa788, +0xa7f2, 0xa7f4, +0xa7f8, 0xa7f9, +0xa9cf, 0xa9cf, +0xa9e6, 0xa9e6, +0xaa70, 0xaa70, +0xaadd, 0xaadd, +0xaaf3, 0xaaf4, +0xab5c, 0xab5f, +0xab69, 0xab69, +0xff70, 0xff70, +0xff9e, 0xff9f, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10d4e, 0x10d4e, +0x10d6f, 0x10d6f, +0x16b40, 0x16b43, +0x16d40, 0x16d42, +0x16d6b, 0x16d6c, +0x16f93, 0x16f9f, +0x16fe0, 0x16fe1, +0x16fe3, 0x16fe3, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1e030, 0x1e06d, +0x1e137, 0x1e13d, +0x1e4eb, 0x1e4eb, +0x1e94b, 0x1e94b, +}; /* END of CR_Lm */ + +/* PROPERTY: 'Lo': General Category */ +static const OnigCodePoint +CR_Lo[] = { 528, +0x00aa, 0x00aa, +0x00ba, 0x00ba, +0x01bb, 0x01bb, +0x01c0, 0x01c3, +0x0294, 0x0294, +0x05d0, 0x05ea, +0x05ef, 0x05f2, +0x0620, 0x063f, +0x0641, 0x064a, +0x066e, 0x066f, +0x0671, 0x06d3, +0x06d5, 0x06d5, +0x06ee, 0x06ef, +0x06fa, 0x06fc, +0x06ff, 0x06ff, +0x0710, 0x0710, +0x0712, 0x072f, +0x074d, 0x07a5, +0x07b1, 0x07b1, +0x07ca, 0x07ea, +0x0800, 0x0815, +0x0840, 0x0858, +0x0860, 0x086a, +0x0870, 0x0887, +0x0889, 0x088e, +0x08a0, 0x08c8, +0x0904, 0x0939, +0x093d, 0x093d, +0x0950, 0x0950, +0x0958, 0x0961, +0x0972, 0x0980, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bd, 0x09bd, +0x09ce, 0x09ce, +0x09dc, 0x09dd, +0x09df, 0x09e1, +0x09f0, 0x09f1, +0x09fc, 0x09fc, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a72, 0x0a74, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abd, 0x0abd, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae1, +0x0af9, 0x0af9, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3d, 0x0b3d, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b61, +0x0b71, 0x0b71, +0x0b83, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bd0, 0x0bd0, +0x0c05, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3d, 0x0c3d, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c61, +0x0c80, 0x0c80, +0x0c85, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbd, 0x0cbd, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce1, +0x0cf1, 0x0cf2, +0x0d04, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d3a, +0x0d3d, 0x0d3d, +0x0d4e, 0x0d4e, +0x0d54, 0x0d56, +0x0d5f, 0x0d61, +0x0d7a, 0x0d7f, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0e01, 0x0e30, +0x0e32, 0x0e33, +0x0e40, 0x0e45, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0eb0, +0x0eb2, 0x0eb3, +0x0ebd, 0x0ebd, +0x0ec0, 0x0ec4, +0x0edc, 0x0edf, +0x0f00, 0x0f00, +0x0f40, 0x0f47, +0x0f49, 0x0f6c, +0x0f88, 0x0f8c, +0x1000, 0x102a, +0x103f, 0x103f, +0x1050, 0x1055, +0x105a, 0x105d, +0x1061, 0x1061, +0x1065, 0x1066, +0x106e, 0x1070, +0x1075, 0x1081, +0x108e, 0x108e, +0x1100, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x1380, 0x138f, +0x1401, 0x166c, +0x166f, 0x167f, +0x1681, 0x169a, +0x16a0, 0x16ea, +0x16f1, 0x16f8, +0x1700, 0x1711, +0x171f, 0x1731, +0x1740, 0x1751, +0x1760, 0x176c, +0x176e, 0x1770, +0x1780, 0x17b3, +0x17dc, 0x17dc, +0x1820, 0x1842, +0x1844, 0x1878, +0x1880, 0x1884, +0x1887, 0x18a8, +0x18aa, 0x18aa, +0x18b0, 0x18f5, +0x1900, 0x191e, +0x1950, 0x196d, +0x1970, 0x1974, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x1a00, 0x1a16, +0x1a20, 0x1a54, +0x1b05, 0x1b33, +0x1b45, 0x1b4c, +0x1b83, 0x1ba0, +0x1bae, 0x1baf, +0x1bba, 0x1be5, +0x1c00, 0x1c23, +0x1c4d, 0x1c4f, +0x1c5a, 0x1c77, +0x1ce9, 0x1cec, +0x1cee, 0x1cf3, +0x1cf5, 0x1cf6, +0x1cfa, 0x1cfa, +0x2135, 0x2138, +0x2d30, 0x2d67, +0x2d80, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0x3006, 0x3006, +0x303c, 0x303c, +0x3041, 0x3096, +0x309f, 0x309f, +0x30a1, 0x30fa, +0x30ff, 0x30ff, +0x3105, 0x312f, +0x3131, 0x318e, +0x31a0, 0x31bf, +0x31f0, 0x31ff, +0x3400, 0x4dbf, +0x4e00, 0xa014, +0xa016, 0xa48c, +0xa4d0, 0xa4f7, +0xa500, 0xa60b, +0xa610, 0xa61f, +0xa62a, 0xa62b, +0xa66e, 0xa66e, +0xa6a0, 0xa6e5, +0xa78f, 0xa78f, +0xa7f7, 0xa7f7, +0xa7fb, 0xa801, +0xa803, 0xa805, +0xa807, 0xa80a, +0xa80c, 0xa822, +0xa840, 0xa873, +0xa882, 0xa8b3, +0xa8f2, 0xa8f7, +0xa8fb, 0xa8fb, +0xa8fd, 0xa8fe, +0xa90a, 0xa925, +0xa930, 0xa946, +0xa960, 0xa97c, +0xa984, 0xa9b2, +0xa9e0, 0xa9e4, +0xa9e7, 0xa9ef, +0xa9fa, 0xa9fe, +0xaa00, 0xaa28, +0xaa40, 0xaa42, +0xaa44, 0xaa4b, +0xaa60, 0xaa6f, +0xaa71, 0xaa76, +0xaa7a, 0xaa7a, +0xaa7e, 0xaaaf, +0xaab1, 0xaab1, +0xaab5, 0xaab6, +0xaab9, 0xaabd, +0xaac0, 0xaac0, +0xaac2, 0xaac2, +0xaadb, 0xaadc, +0xaae0, 0xaaea, +0xaaf2, 0xaaf2, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0xabc0, 0xabe2, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xf900, 0xfa6d, +0xfa70, 0xfad9, +0xfb1d, 0xfb1d, +0xfb1f, 0xfb28, +0xfb2a, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfbb1, +0xfbd3, 0xfd3d, +0xfd50, 0xfd8f, +0xfd92, 0xfdc7, +0xfdf0, 0xfdfb, +0xfe70, 0xfe74, +0xfe76, 0xfefc, +0xff66, 0xff6f, +0xff71, 0xff9d, +0xffa0, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +0x10280, 0x1029c, +0x102a0, 0x102d0, +0x10300, 0x1031f, +0x1032d, 0x10340, +0x10342, 0x10349, +0x10350, 0x10375, +0x10380, 0x1039d, +0x103a0, 0x103c3, +0x103c8, 0x103cf, +0x10450, 0x1049d, +0x10500, 0x10527, +0x10530, 0x10563, +0x105c0, 0x105f3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x10855, +0x10860, 0x10876, +0x10880, 0x1089e, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x10900, 0x10915, +0x10920, 0x10939, +0x10980, 0x109b7, +0x109be, 0x109bf, +0x10a00, 0x10a00, +0x10a10, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a60, 0x10a7c, +0x10a80, 0x10a9c, +0x10ac0, 0x10ac7, +0x10ac9, 0x10ae4, +0x10b00, 0x10b35, +0x10b40, 0x10b55, +0x10b60, 0x10b72, +0x10b80, 0x10b91, +0x10c00, 0x10c48, +0x10d00, 0x10d23, +0x10d4a, 0x10d4d, +0x10d4f, 0x10d4f, +0x10e80, 0x10ea9, +0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10f00, 0x10f1c, +0x10f27, 0x10f27, +0x10f30, 0x10f45, +0x10f70, 0x10f81, +0x10fb0, 0x10fc4, +0x10fe0, 0x10ff6, +0x11003, 0x11037, +0x11071, 0x11072, +0x11075, 0x11075, +0x11083, 0x110af, +0x110d0, 0x110e8, +0x11103, 0x11126, +0x11144, 0x11144, +0x11147, 0x11147, +0x11150, 0x11172, +0x11176, 0x11176, +0x11183, 0x111b2, +0x111c1, 0x111c4, +0x111da, 0x111da, +0x111dc, 0x111dc, +0x11200, 0x11211, +0x11213, 0x1122b, +0x1123f, 0x11240, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a8, +0x112b0, 0x112de, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133d, 0x1133d, +0x11350, 0x11350, +0x1135d, 0x11361, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113b7, +0x113d1, 0x113d1, +0x113d3, 0x113d3, +0x11400, 0x11434, +0x11447, 0x1144a, +0x1145f, 0x11461, +0x11480, 0x114af, +0x114c4, 0x114c5, +0x114c7, 0x114c7, +0x11580, 0x115ae, +0x115d8, 0x115db, +0x11600, 0x1162f, +0x11644, 0x11644, +0x11680, 0x116aa, +0x116b8, 0x116b8, +0x11700, 0x1171a, +0x11740, 0x11746, +0x11800, 0x1182b, +0x118ff, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x1192f, +0x1193f, 0x1193f, +0x11941, 0x11941, +0x119a0, 0x119a7, +0x119aa, 0x119d0, +0x119e1, 0x119e1, +0x119e3, 0x119e3, +0x11a00, 0x11a00, +0x11a0b, 0x11a32, +0x11a3a, 0x11a3a, +0x11a50, 0x11a50, +0x11a5c, 0x11a89, +0x11a9d, 0x11a9d, +0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11c00, 0x11c08, +0x11c0a, 0x11c2e, +0x11c40, 0x11c40, +0x11c72, 0x11c8f, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d30, +0x11d46, 0x11d46, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d89, +0x11d98, 0x11d98, +0x11ee0, 0x11ef2, +0x11f02, 0x11f02, +0x11f04, 0x11f10, +0x11f12, 0x11f33, +0x11fb0, 0x11fb0, +0x12000, 0x12399, +0x12480, 0x12543, +0x12f90, 0x12ff0, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, +0x14400, 0x14646, +0x16100, 0x1611d, +0x16800, 0x16a38, +0x16a40, 0x16a5e, +0x16a70, 0x16abe, +0x16ad0, 0x16aed, +0x16b00, 0x16b2f, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +0x16d43, 0x16d6a, +0x16f00, 0x16f4a, +0x16f50, 0x16f50, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1b000, 0x1b122, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +0x1b170, 0x1b2fb, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1df0a, 0x1df0a, +0x1e100, 0x1e12c, +0x1e14e, 0x1e14e, +0x1e290, 0x1e2ad, +0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4ea, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5f0, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +0x1e800, 0x1e8c4, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +}; /* END of CR_Lo */ + +/* PROPERTY: 'Logical_Order_Exception': Binary Property */ +static const OnigCodePoint +CR_Logical_Order_Exception[] = { 7, +0x0e40, 0x0e44, +0x0ec0, 0x0ec4, +0x19b5, 0x19b7, +0x19ba, 0x19ba, +0xaab5, 0xaab6, +0xaab9, 0xaab9, +0xaabb, 0xaabc, +}; /* END of CR_Logical_Order_Exception */ + +/* PROPERTY: 'Lowercase': Derived Property */ +#define CR_Lowercase CR_Lower + +/* PROPERTY: 'Lt': General Category */ +static const OnigCodePoint +CR_Lt[] = { 10, +0x01c5, 0x01c5, +0x01c8, 0x01c8, +0x01cb, 0x01cb, +0x01f2, 0x01f2, +0x1f88, 0x1f8f, +0x1f98, 0x1f9f, +0x1fa8, 0x1faf, +0x1fbc, 0x1fbc, +0x1fcc, 0x1fcc, +0x1ffc, 0x1ffc, +}; /* END of CR_Lt */ + +/* PROPERTY: 'Lu': General Category */ +static const OnigCodePoint +CR_Lu[] = { 651, +0x0041, 0x005a, +0x00c0, 0x00d6, +0x00d8, 0x00de, +0x0100, 0x0100, +0x0102, 0x0102, +0x0104, 0x0104, +0x0106, 0x0106, +0x0108, 0x0108, +0x010a, 0x010a, +0x010c, 0x010c, +0x010e, 0x010e, +0x0110, 0x0110, +0x0112, 0x0112, +0x0114, 0x0114, +0x0116, 0x0116, +0x0118, 0x0118, +0x011a, 0x011a, +0x011c, 0x011c, +0x011e, 0x011e, +0x0120, 0x0120, +0x0122, 0x0122, +0x0124, 0x0124, +0x0126, 0x0126, +0x0128, 0x0128, +0x012a, 0x012a, +0x012c, 0x012c, +0x012e, 0x012e, +0x0130, 0x0130, +0x0132, 0x0132, +0x0134, 0x0134, +0x0136, 0x0136, +0x0139, 0x0139, +0x013b, 0x013b, +0x013d, 0x013d, +0x013f, 0x013f, +0x0141, 0x0141, +0x0143, 0x0143, +0x0145, 0x0145, +0x0147, 0x0147, +0x014a, 0x014a, +0x014c, 0x014c, +0x014e, 0x014e, +0x0150, 0x0150, +0x0152, 0x0152, +0x0154, 0x0154, +0x0156, 0x0156, +0x0158, 0x0158, +0x015a, 0x015a, +0x015c, 0x015c, +0x015e, 0x015e, +0x0160, 0x0160, +0x0162, 0x0162, +0x0164, 0x0164, +0x0166, 0x0166, +0x0168, 0x0168, +0x016a, 0x016a, +0x016c, 0x016c, +0x016e, 0x016e, +0x0170, 0x0170, +0x0172, 0x0172, +0x0174, 0x0174, +0x0176, 0x0176, +0x0178, 0x0179, +0x017b, 0x017b, +0x017d, 0x017d, +0x0181, 0x0182, +0x0184, 0x0184, +0x0186, 0x0187, +0x0189, 0x018b, +0x018e, 0x0191, +0x0193, 0x0194, +0x0196, 0x0198, +0x019c, 0x019d, +0x019f, 0x01a0, +0x01a2, 0x01a2, +0x01a4, 0x01a4, +0x01a6, 0x01a7, +0x01a9, 0x01a9, +0x01ac, 0x01ac, +0x01ae, 0x01af, +0x01b1, 0x01b3, +0x01b5, 0x01b5, +0x01b7, 0x01b8, +0x01bc, 0x01bc, +0x01c4, 0x01c4, +0x01c7, 0x01c7, +0x01ca, 0x01ca, +0x01cd, 0x01cd, +0x01cf, 0x01cf, +0x01d1, 0x01d1, +0x01d3, 0x01d3, +0x01d5, 0x01d5, +0x01d7, 0x01d7, +0x01d9, 0x01d9, +0x01db, 0x01db, +0x01de, 0x01de, +0x01e0, 0x01e0, +0x01e2, 0x01e2, +0x01e4, 0x01e4, +0x01e6, 0x01e6, +0x01e8, 0x01e8, +0x01ea, 0x01ea, +0x01ec, 0x01ec, +0x01ee, 0x01ee, +0x01f1, 0x01f1, +0x01f4, 0x01f4, +0x01f6, 0x01f8, +0x01fa, 0x01fa, +0x01fc, 0x01fc, +0x01fe, 0x01fe, +0x0200, 0x0200, +0x0202, 0x0202, +0x0204, 0x0204, +0x0206, 0x0206, +0x0208, 0x0208, +0x020a, 0x020a, +0x020c, 0x020c, +0x020e, 0x020e, +0x0210, 0x0210, +0x0212, 0x0212, +0x0214, 0x0214, +0x0216, 0x0216, +0x0218, 0x0218, +0x021a, 0x021a, +0x021c, 0x021c, +0x021e, 0x021e, +0x0220, 0x0220, +0x0222, 0x0222, +0x0224, 0x0224, +0x0226, 0x0226, +0x0228, 0x0228, +0x022a, 0x022a, +0x022c, 0x022c, +0x022e, 0x022e, +0x0230, 0x0230, +0x0232, 0x0232, +0x023a, 0x023b, +0x023d, 0x023e, +0x0241, 0x0241, +0x0243, 0x0246, +0x0248, 0x0248, +0x024a, 0x024a, +0x024c, 0x024c, +0x024e, 0x024e, +0x0370, 0x0370, +0x0372, 0x0372, +0x0376, 0x0376, +0x037f, 0x037f, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x038f, +0x0391, 0x03a1, +0x03a3, 0x03ab, +0x03cf, 0x03cf, +0x03d2, 0x03d4, +0x03d8, 0x03d8, +0x03da, 0x03da, +0x03dc, 0x03dc, +0x03de, 0x03de, +0x03e0, 0x03e0, +0x03e2, 0x03e2, +0x03e4, 0x03e4, +0x03e6, 0x03e6, +0x03e8, 0x03e8, +0x03ea, 0x03ea, +0x03ec, 0x03ec, +0x03ee, 0x03ee, +0x03f4, 0x03f4, +0x03f7, 0x03f7, +0x03f9, 0x03fa, +0x03fd, 0x042f, +0x0460, 0x0460, +0x0462, 0x0462, +0x0464, 0x0464, +0x0466, 0x0466, +0x0468, 0x0468, +0x046a, 0x046a, +0x046c, 0x046c, +0x046e, 0x046e, +0x0470, 0x0470, +0x0472, 0x0472, +0x0474, 0x0474, +0x0476, 0x0476, +0x0478, 0x0478, +0x047a, 0x047a, +0x047c, 0x047c, +0x047e, 0x047e, +0x0480, 0x0480, +0x048a, 0x048a, +0x048c, 0x048c, +0x048e, 0x048e, +0x0490, 0x0490, +0x0492, 0x0492, +0x0494, 0x0494, +0x0496, 0x0496, +0x0498, 0x0498, +0x049a, 0x049a, +0x049c, 0x049c, +0x049e, 0x049e, +0x04a0, 0x04a0, +0x04a2, 0x04a2, +0x04a4, 0x04a4, +0x04a6, 0x04a6, +0x04a8, 0x04a8, +0x04aa, 0x04aa, +0x04ac, 0x04ac, +0x04ae, 0x04ae, +0x04b0, 0x04b0, +0x04b2, 0x04b2, +0x04b4, 0x04b4, +0x04b6, 0x04b6, +0x04b8, 0x04b8, +0x04ba, 0x04ba, +0x04bc, 0x04bc, +0x04be, 0x04be, +0x04c0, 0x04c1, +0x04c3, 0x04c3, +0x04c5, 0x04c5, +0x04c7, 0x04c7, +0x04c9, 0x04c9, +0x04cb, 0x04cb, +0x04cd, 0x04cd, +0x04d0, 0x04d0, +0x04d2, 0x04d2, +0x04d4, 0x04d4, +0x04d6, 0x04d6, +0x04d8, 0x04d8, +0x04da, 0x04da, +0x04dc, 0x04dc, +0x04de, 0x04de, +0x04e0, 0x04e0, +0x04e2, 0x04e2, +0x04e4, 0x04e4, +0x04e6, 0x04e6, +0x04e8, 0x04e8, +0x04ea, 0x04ea, +0x04ec, 0x04ec, +0x04ee, 0x04ee, +0x04f0, 0x04f0, +0x04f2, 0x04f2, +0x04f4, 0x04f4, +0x04f6, 0x04f6, +0x04f8, 0x04f8, +0x04fa, 0x04fa, +0x04fc, 0x04fc, +0x04fe, 0x04fe, +0x0500, 0x0500, +0x0502, 0x0502, +0x0504, 0x0504, +0x0506, 0x0506, +0x0508, 0x0508, +0x050a, 0x050a, +0x050c, 0x050c, +0x050e, 0x050e, +0x0510, 0x0510, +0x0512, 0x0512, +0x0514, 0x0514, +0x0516, 0x0516, +0x0518, 0x0518, +0x051a, 0x051a, +0x051c, 0x051c, +0x051e, 0x051e, +0x0520, 0x0520, +0x0522, 0x0522, +0x0524, 0x0524, +0x0526, 0x0526, +0x0528, 0x0528, +0x052a, 0x052a, +0x052c, 0x052c, +0x052e, 0x052e, +0x0531, 0x0556, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x13a0, 0x13f5, +0x1c89, 0x1c89, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1e00, 0x1e00, +0x1e02, 0x1e02, +0x1e04, 0x1e04, +0x1e06, 0x1e06, +0x1e08, 0x1e08, +0x1e0a, 0x1e0a, +0x1e0c, 0x1e0c, +0x1e0e, 0x1e0e, +0x1e10, 0x1e10, +0x1e12, 0x1e12, +0x1e14, 0x1e14, +0x1e16, 0x1e16, +0x1e18, 0x1e18, +0x1e1a, 0x1e1a, +0x1e1c, 0x1e1c, +0x1e1e, 0x1e1e, +0x1e20, 0x1e20, +0x1e22, 0x1e22, +0x1e24, 0x1e24, +0x1e26, 0x1e26, +0x1e28, 0x1e28, +0x1e2a, 0x1e2a, +0x1e2c, 0x1e2c, +0x1e2e, 0x1e2e, +0x1e30, 0x1e30, +0x1e32, 0x1e32, +0x1e34, 0x1e34, +0x1e36, 0x1e36, +0x1e38, 0x1e38, +0x1e3a, 0x1e3a, +0x1e3c, 0x1e3c, +0x1e3e, 0x1e3e, +0x1e40, 0x1e40, +0x1e42, 0x1e42, +0x1e44, 0x1e44, +0x1e46, 0x1e46, +0x1e48, 0x1e48, +0x1e4a, 0x1e4a, +0x1e4c, 0x1e4c, +0x1e4e, 0x1e4e, +0x1e50, 0x1e50, +0x1e52, 0x1e52, +0x1e54, 0x1e54, +0x1e56, 0x1e56, +0x1e58, 0x1e58, +0x1e5a, 0x1e5a, +0x1e5c, 0x1e5c, +0x1e5e, 0x1e5e, +0x1e60, 0x1e60, +0x1e62, 0x1e62, +0x1e64, 0x1e64, +0x1e66, 0x1e66, +0x1e68, 0x1e68, +0x1e6a, 0x1e6a, +0x1e6c, 0x1e6c, +0x1e6e, 0x1e6e, +0x1e70, 0x1e70, +0x1e72, 0x1e72, +0x1e74, 0x1e74, +0x1e76, 0x1e76, +0x1e78, 0x1e78, +0x1e7a, 0x1e7a, +0x1e7c, 0x1e7c, +0x1e7e, 0x1e7e, +0x1e80, 0x1e80, +0x1e82, 0x1e82, +0x1e84, 0x1e84, +0x1e86, 0x1e86, +0x1e88, 0x1e88, +0x1e8a, 0x1e8a, +0x1e8c, 0x1e8c, +0x1e8e, 0x1e8e, +0x1e90, 0x1e90, +0x1e92, 0x1e92, +0x1e94, 0x1e94, +0x1e9e, 0x1e9e, +0x1ea0, 0x1ea0, +0x1ea2, 0x1ea2, +0x1ea4, 0x1ea4, +0x1ea6, 0x1ea6, +0x1ea8, 0x1ea8, +0x1eaa, 0x1eaa, +0x1eac, 0x1eac, +0x1eae, 0x1eae, +0x1eb0, 0x1eb0, +0x1eb2, 0x1eb2, +0x1eb4, 0x1eb4, +0x1eb6, 0x1eb6, +0x1eb8, 0x1eb8, +0x1eba, 0x1eba, +0x1ebc, 0x1ebc, +0x1ebe, 0x1ebe, +0x1ec0, 0x1ec0, +0x1ec2, 0x1ec2, +0x1ec4, 0x1ec4, +0x1ec6, 0x1ec6, +0x1ec8, 0x1ec8, +0x1eca, 0x1eca, +0x1ecc, 0x1ecc, +0x1ece, 0x1ece, +0x1ed0, 0x1ed0, +0x1ed2, 0x1ed2, +0x1ed4, 0x1ed4, +0x1ed6, 0x1ed6, +0x1ed8, 0x1ed8, +0x1eda, 0x1eda, +0x1edc, 0x1edc, +0x1ede, 0x1ede, +0x1ee0, 0x1ee0, +0x1ee2, 0x1ee2, +0x1ee4, 0x1ee4, +0x1ee6, 0x1ee6, +0x1ee8, 0x1ee8, +0x1eea, 0x1eea, +0x1eec, 0x1eec, +0x1eee, 0x1eee, +0x1ef0, 0x1ef0, +0x1ef2, 0x1ef2, +0x1ef4, 0x1ef4, +0x1ef6, 0x1ef6, +0x1ef8, 0x1ef8, +0x1efa, 0x1efa, +0x1efc, 0x1efc, +0x1efe, 0x1efe, +0x1f08, 0x1f0f, +0x1f18, 0x1f1d, +0x1f28, 0x1f2f, +0x1f38, 0x1f3f, +0x1f48, 0x1f4d, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f5f, +0x1f68, 0x1f6f, +0x1fb8, 0x1fbb, +0x1fc8, 0x1fcb, +0x1fd8, 0x1fdb, +0x1fe8, 0x1fec, +0x1ff8, 0x1ffb, +0x2102, 0x2102, +0x2107, 0x2107, +0x210b, 0x210d, +0x2110, 0x2112, +0x2115, 0x2115, +0x2119, 0x211d, +0x2124, 0x2124, +0x2126, 0x2126, +0x2128, 0x2128, +0x212a, 0x212d, +0x2130, 0x2133, +0x213e, 0x213f, +0x2145, 0x2145, +0x2183, 0x2183, +0x2c00, 0x2c2f, +0x2c60, 0x2c60, +0x2c62, 0x2c64, +0x2c67, 0x2c67, +0x2c69, 0x2c69, +0x2c6b, 0x2c6b, +0x2c6d, 0x2c70, +0x2c72, 0x2c72, +0x2c75, 0x2c75, +0x2c7e, 0x2c80, +0x2c82, 0x2c82, +0x2c84, 0x2c84, +0x2c86, 0x2c86, +0x2c88, 0x2c88, +0x2c8a, 0x2c8a, +0x2c8c, 0x2c8c, +0x2c8e, 0x2c8e, +0x2c90, 0x2c90, +0x2c92, 0x2c92, +0x2c94, 0x2c94, +0x2c96, 0x2c96, +0x2c98, 0x2c98, +0x2c9a, 0x2c9a, +0x2c9c, 0x2c9c, +0x2c9e, 0x2c9e, +0x2ca0, 0x2ca0, +0x2ca2, 0x2ca2, +0x2ca4, 0x2ca4, +0x2ca6, 0x2ca6, +0x2ca8, 0x2ca8, +0x2caa, 0x2caa, +0x2cac, 0x2cac, +0x2cae, 0x2cae, +0x2cb0, 0x2cb0, +0x2cb2, 0x2cb2, +0x2cb4, 0x2cb4, +0x2cb6, 0x2cb6, +0x2cb8, 0x2cb8, +0x2cba, 0x2cba, +0x2cbc, 0x2cbc, +0x2cbe, 0x2cbe, +0x2cc0, 0x2cc0, +0x2cc2, 0x2cc2, +0x2cc4, 0x2cc4, +0x2cc6, 0x2cc6, +0x2cc8, 0x2cc8, +0x2cca, 0x2cca, +0x2ccc, 0x2ccc, +0x2cce, 0x2cce, +0x2cd0, 0x2cd0, +0x2cd2, 0x2cd2, +0x2cd4, 0x2cd4, +0x2cd6, 0x2cd6, +0x2cd8, 0x2cd8, +0x2cda, 0x2cda, +0x2cdc, 0x2cdc, +0x2cde, 0x2cde, +0x2ce0, 0x2ce0, +0x2ce2, 0x2ce2, +0x2ceb, 0x2ceb, +0x2ced, 0x2ced, +0x2cf2, 0x2cf2, +0xa640, 0xa640, +0xa642, 0xa642, +0xa644, 0xa644, +0xa646, 0xa646, +0xa648, 0xa648, +0xa64a, 0xa64a, +0xa64c, 0xa64c, +0xa64e, 0xa64e, +0xa650, 0xa650, +0xa652, 0xa652, +0xa654, 0xa654, +0xa656, 0xa656, +0xa658, 0xa658, +0xa65a, 0xa65a, +0xa65c, 0xa65c, +0xa65e, 0xa65e, +0xa660, 0xa660, +0xa662, 0xa662, +0xa664, 0xa664, +0xa666, 0xa666, +0xa668, 0xa668, +0xa66a, 0xa66a, +0xa66c, 0xa66c, +0xa680, 0xa680, +0xa682, 0xa682, +0xa684, 0xa684, +0xa686, 0xa686, +0xa688, 0xa688, +0xa68a, 0xa68a, +0xa68c, 0xa68c, +0xa68e, 0xa68e, +0xa690, 0xa690, +0xa692, 0xa692, +0xa694, 0xa694, +0xa696, 0xa696, +0xa698, 0xa698, +0xa69a, 0xa69a, +0xa722, 0xa722, +0xa724, 0xa724, +0xa726, 0xa726, +0xa728, 0xa728, +0xa72a, 0xa72a, +0xa72c, 0xa72c, +0xa72e, 0xa72e, +0xa732, 0xa732, +0xa734, 0xa734, +0xa736, 0xa736, +0xa738, 0xa738, +0xa73a, 0xa73a, +0xa73c, 0xa73c, +0xa73e, 0xa73e, +0xa740, 0xa740, +0xa742, 0xa742, +0xa744, 0xa744, +0xa746, 0xa746, +0xa748, 0xa748, +0xa74a, 0xa74a, +0xa74c, 0xa74c, +0xa74e, 0xa74e, +0xa750, 0xa750, +0xa752, 0xa752, +0xa754, 0xa754, +0xa756, 0xa756, +0xa758, 0xa758, +0xa75a, 0xa75a, +0xa75c, 0xa75c, +0xa75e, 0xa75e, +0xa760, 0xa760, +0xa762, 0xa762, +0xa764, 0xa764, +0xa766, 0xa766, +0xa768, 0xa768, +0xa76a, 0xa76a, +0xa76c, 0xa76c, +0xa76e, 0xa76e, +0xa779, 0xa779, +0xa77b, 0xa77b, +0xa77d, 0xa77e, +0xa780, 0xa780, +0xa782, 0xa782, +0xa784, 0xa784, +0xa786, 0xa786, +0xa78b, 0xa78b, +0xa78d, 0xa78d, +0xa790, 0xa790, +0xa792, 0xa792, +0xa796, 0xa796, +0xa798, 0xa798, +0xa79a, 0xa79a, +0xa79c, 0xa79c, +0xa79e, 0xa79e, +0xa7a0, 0xa7a0, +0xa7a2, 0xa7a2, +0xa7a4, 0xa7a4, +0xa7a6, 0xa7a6, +0xa7a8, 0xa7a8, +0xa7aa, 0xa7ae, +0xa7b0, 0xa7b4, +0xa7b6, 0xa7b6, +0xa7b8, 0xa7b8, +0xa7ba, 0xa7ba, +0xa7bc, 0xa7bc, +0xa7be, 0xa7be, +0xa7c0, 0xa7c0, +0xa7c2, 0xa7c2, +0xa7c4, 0xa7c7, +0xa7c9, 0xa7c9, +0xa7cb, 0xa7cc, +0xa7d0, 0xa7d0, +0xa7d6, 0xa7d6, +0xa7d8, 0xa7d8, +0xa7da, 0xa7da, +0xa7dc, 0xa7dc, +0xa7f5, 0xa7f5, +0xff21, 0xff3a, +0x10400, 0x10427, +0x104b0, 0x104d3, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10c80, 0x10cb2, +0x10d50, 0x10d65, +0x118a0, 0x118bf, +0x16e40, 0x16e5f, +0x1d400, 0x1d419, +0x1d434, 0x1d44d, +0x1d468, 0x1d481, +0x1d49c, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b5, +0x1d4d0, 0x1d4e9, +0x1d504, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d538, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d56c, 0x1d585, +0x1d5a0, 0x1d5b9, +0x1d5d4, 0x1d5ed, +0x1d608, 0x1d621, +0x1d63c, 0x1d655, +0x1d670, 0x1d689, +0x1d6a8, 0x1d6c0, +0x1d6e2, 0x1d6fa, +0x1d71c, 0x1d734, +0x1d756, 0x1d76e, +0x1d790, 0x1d7a8, +0x1d7ca, 0x1d7ca, +0x1e900, 0x1e921, +}; /* END of CR_Lu */ + +/* PROPERTY: 'Lycian': Script */ +static const OnigCodePoint +CR_Lycian[] = { 1, +0x10280, 0x1029c, +}; /* END of CR_Lycian */ + +/* PROPERTY: 'Lydian': Script */ +static const OnigCodePoint +CR_Lydian[] = { 2, +0x10920, 0x10939, +0x1093f, 0x1093f, +}; /* END of CR_Lydian */ + +/* PROPERTY: 'M': Major Category */ +static const OnigCodePoint +CR_M[] = { 321, +0x0300, 0x036f, +0x0483, 0x0489, +0x0591, 0x05bd, +0x05bf, 0x05bf, +0x05c1, 0x05c2, +0x05c4, 0x05c5, +0x05c7, 0x05c7, +0x0610, 0x061a, +0x064b, 0x065f, +0x0670, 0x0670, +0x06d6, 0x06dc, +0x06df, 0x06e4, +0x06e7, 0x06e8, +0x06ea, 0x06ed, +0x0711, 0x0711, +0x0730, 0x074a, +0x07a6, 0x07b0, +0x07eb, 0x07f3, +0x07fd, 0x07fd, +0x0816, 0x0819, +0x081b, 0x0823, +0x0825, 0x0827, +0x0829, 0x082d, +0x0859, 0x085b, +0x0897, 0x089f, +0x08ca, 0x08e1, +0x08e3, 0x0903, +0x093a, 0x093c, +0x093e, 0x094f, +0x0951, 0x0957, +0x0962, 0x0963, +0x0981, 0x0983, +0x09bc, 0x09bc, +0x09be, 0x09c4, +0x09c7, 0x09c8, +0x09cb, 0x09cd, +0x09d7, 0x09d7, +0x09e2, 0x09e3, +0x09fe, 0x09fe, +0x0a01, 0x0a03, +0x0a3c, 0x0a3c, +0x0a3e, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4d, +0x0a51, 0x0a51, +0x0a70, 0x0a71, +0x0a75, 0x0a75, +0x0a81, 0x0a83, +0x0abc, 0x0abc, +0x0abe, 0x0ac5, +0x0ac7, 0x0ac9, +0x0acb, 0x0acd, +0x0ae2, 0x0ae3, +0x0afa, 0x0aff, +0x0b01, 0x0b03, +0x0b3c, 0x0b3c, +0x0b3e, 0x0b44, +0x0b47, 0x0b48, +0x0b4b, 0x0b4d, +0x0b55, 0x0b57, +0x0b62, 0x0b63, +0x0b82, 0x0b82, +0x0bbe, 0x0bc2, +0x0bc6, 0x0bc8, +0x0bca, 0x0bcd, +0x0bd7, 0x0bd7, +0x0c00, 0x0c04, +0x0c3c, 0x0c3c, +0x0c3e, 0x0c44, +0x0c46, 0x0c48, +0x0c4a, 0x0c4d, +0x0c55, 0x0c56, +0x0c62, 0x0c63, +0x0c81, 0x0c83, +0x0cbc, 0x0cbc, +0x0cbe, 0x0cc4, +0x0cc6, 0x0cc8, +0x0cca, 0x0ccd, +0x0cd5, 0x0cd6, +0x0ce2, 0x0ce3, +0x0cf3, 0x0cf3, +0x0d00, 0x0d03, +0x0d3b, 0x0d3c, +0x0d3e, 0x0d44, +0x0d46, 0x0d48, +0x0d4a, 0x0d4d, +0x0d57, 0x0d57, +0x0d62, 0x0d63, +0x0d81, 0x0d83, +0x0dca, 0x0dca, +0x0dcf, 0x0dd4, +0x0dd6, 0x0dd6, +0x0dd8, 0x0ddf, +0x0df2, 0x0df3, +0x0e31, 0x0e31, +0x0e34, 0x0e3a, +0x0e47, 0x0e4e, +0x0eb1, 0x0eb1, +0x0eb4, 0x0ebc, +0x0ec8, 0x0ece, +0x0f18, 0x0f19, +0x0f35, 0x0f35, +0x0f37, 0x0f37, +0x0f39, 0x0f39, +0x0f3e, 0x0f3f, +0x0f71, 0x0f84, +0x0f86, 0x0f87, +0x0f8d, 0x0f97, +0x0f99, 0x0fbc, +0x0fc6, 0x0fc6, +0x102b, 0x103e, +0x1056, 0x1059, +0x105e, 0x1060, +0x1062, 0x1064, +0x1067, 0x106d, +0x1071, 0x1074, +0x1082, 0x108d, +0x108f, 0x108f, +0x109a, 0x109d, +0x135d, 0x135f, +0x1712, 0x1715, +0x1732, 0x1734, +0x1752, 0x1753, +0x1772, 0x1773, +0x17b4, 0x17d3, +0x17dd, 0x17dd, +0x180b, 0x180d, +0x180f, 0x180f, +0x1885, 0x1886, +0x18a9, 0x18a9, +0x1920, 0x192b, +0x1930, 0x193b, +0x1a17, 0x1a1b, +0x1a55, 0x1a5e, +0x1a60, 0x1a7c, +0x1a7f, 0x1a7f, +0x1ab0, 0x1ace, +0x1b00, 0x1b04, +0x1b34, 0x1b44, +0x1b6b, 0x1b73, +0x1b80, 0x1b82, +0x1ba1, 0x1bad, +0x1be6, 0x1bf3, +0x1c24, 0x1c37, +0x1cd0, 0x1cd2, +0x1cd4, 0x1ce8, +0x1ced, 0x1ced, +0x1cf4, 0x1cf4, +0x1cf7, 0x1cf9, +0x1dc0, 0x1dff, +0x20d0, 0x20f0, +0x2cef, 0x2cf1, +0x2d7f, 0x2d7f, +0x2de0, 0x2dff, +0x302a, 0x302f, +0x3099, 0x309a, +0xa66f, 0xa672, +0xa674, 0xa67d, +0xa69e, 0xa69f, +0xa6f0, 0xa6f1, +0xa802, 0xa802, +0xa806, 0xa806, +0xa80b, 0xa80b, +0xa823, 0xa827, +0xa82c, 0xa82c, +0xa880, 0xa881, +0xa8b4, 0xa8c5, +0xa8e0, 0xa8f1, +0xa8ff, 0xa8ff, +0xa926, 0xa92d, +0xa947, 0xa953, +0xa980, 0xa983, +0xa9b3, 0xa9c0, +0xa9e5, 0xa9e5, +0xaa29, 0xaa36, +0xaa43, 0xaa43, +0xaa4c, 0xaa4d, +0xaa7b, 0xaa7d, +0xaab0, 0xaab0, +0xaab2, 0xaab4, +0xaab7, 0xaab8, +0xaabe, 0xaabf, +0xaac1, 0xaac1, +0xaaeb, 0xaaef, +0xaaf5, 0xaaf6, +0xabe3, 0xabea, +0xabec, 0xabed, +0xfb1e, 0xfb1e, +0xfe00, 0xfe0f, +0xfe20, 0xfe2f, +0x101fd, 0x101fd, +0x102e0, 0x102e0, +0x10376, 0x1037a, +0x10a01, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a0f, +0x10a38, 0x10a3a, +0x10a3f, 0x10a3f, +0x10ae5, 0x10ae6, +0x10d24, 0x10d27, +0x10d69, 0x10d6d, +0x10eab, 0x10eac, +0x10efc, 0x10eff, +0x10f46, 0x10f50, +0x10f82, 0x10f85, +0x11000, 0x11002, +0x11038, 0x11046, +0x11070, 0x11070, +0x11073, 0x11074, +0x1107f, 0x11082, +0x110b0, 0x110ba, +0x110c2, 0x110c2, +0x11100, 0x11102, +0x11127, 0x11134, +0x11145, 0x11146, +0x11173, 0x11173, +0x11180, 0x11182, +0x111b3, 0x111c0, +0x111c9, 0x111cc, +0x111ce, 0x111cf, +0x1122c, 0x11237, +0x1123e, 0x1123e, +0x11241, 0x11241, +0x112df, 0x112ea, +0x11300, 0x11303, +0x1133b, 0x1133c, +0x1133e, 0x11344, +0x11347, 0x11348, +0x1134b, 0x1134d, +0x11357, 0x11357, +0x11362, 0x11363, +0x11366, 0x1136c, +0x11370, 0x11374, +0x113b8, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d0, +0x113d2, 0x113d2, +0x113e1, 0x113e2, +0x11435, 0x11446, +0x1145e, 0x1145e, +0x114b0, 0x114c3, +0x115af, 0x115b5, +0x115b8, 0x115c0, +0x115dc, 0x115dd, +0x11630, 0x11640, +0x116ab, 0x116b7, +0x1171d, 0x1172b, +0x1182c, 0x1183a, +0x11930, 0x11935, +0x11937, 0x11938, +0x1193b, 0x1193e, +0x11940, 0x11940, +0x11942, 0x11943, +0x119d1, 0x119d7, +0x119da, 0x119e0, +0x119e4, 0x119e4, +0x11a01, 0x11a0a, +0x11a33, 0x11a39, +0x11a3b, 0x11a3e, +0x11a47, 0x11a47, +0x11a51, 0x11a5b, +0x11a8a, 0x11a99, +0x11c2f, 0x11c36, +0x11c38, 0x11c3f, +0x11c92, 0x11ca7, +0x11ca9, 0x11cb6, +0x11d31, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d45, +0x11d47, 0x11d47, +0x11d8a, 0x11d8e, +0x11d90, 0x11d91, +0x11d93, 0x11d97, +0x11ef3, 0x11ef6, +0x11f00, 0x11f01, +0x11f03, 0x11f03, +0x11f34, 0x11f3a, +0x11f3e, 0x11f42, +0x11f5a, 0x11f5a, +0x13440, 0x13440, +0x13447, 0x13455, +0x1611e, 0x1612f, +0x16af0, 0x16af4, +0x16b30, 0x16b36, +0x16f4f, 0x16f4f, +0x16f51, 0x16f87, +0x16f8f, 0x16f92, +0x16fe4, 0x16fe4, +0x16ff0, 0x16ff1, +0x1bc9d, 0x1bc9e, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1d165, 0x1d169, +0x1d16d, 0x1d172, +0x1d17b, 0x1d182, +0x1d185, 0x1d18b, +0x1d1aa, 0x1d1ad, +0x1d242, 0x1d244, +0x1da00, 0x1da36, +0x1da3b, 0x1da6c, +0x1da75, 0x1da75, +0x1da84, 0x1da84, +0x1da9b, 0x1da9f, +0x1daa1, 0x1daaf, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, +0x1e130, 0x1e136, +0x1e2ae, 0x1e2ae, +0x1e2ec, 0x1e2ef, +0x1e4ec, 0x1e4ef, +0x1e5ee, 0x1e5ef, +0x1e8d0, 0x1e8d6, +0x1e944, 0x1e94a, +0xe0100, 0xe01ef, +}; /* END of CR_M */ + +/* PROPERTY: 'Mahajani': Script */ +static const OnigCodePoint +CR_Mahajani[] = { 1, +0x11150, 0x11176, +}; /* END of CR_Mahajani */ + +/* PROPERTY: 'Makasar': Script */ +static const OnigCodePoint +CR_Makasar[] = { 1, +0x11ee0, 0x11ef8, +}; /* END of CR_Makasar */ + +/* PROPERTY: 'Malayalam': Script */ +static const OnigCodePoint +CR_Malayalam[] = { 7, +0x0d00, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d44, +0x0d46, 0x0d48, +0x0d4a, 0x0d4f, +0x0d54, 0x0d63, +0x0d66, 0x0d7f, +}; /* END of CR_Malayalam */ + +/* PROPERTY: 'Mandaic': Script */ +static const OnigCodePoint +CR_Mandaic[] = { 2, +0x0840, 0x085b, +0x085e, 0x085e, +}; /* END of CR_Mandaic */ + +/* PROPERTY: 'Manichaean': Script */ +static const OnigCodePoint +CR_Manichaean[] = { 2, +0x10ac0, 0x10ae6, +0x10aeb, 0x10af6, +}; /* END of CR_Manichaean */ + +/* PROPERTY: 'Marchen': Script */ +static const OnigCodePoint +CR_Marchen[] = { 3, +0x11c70, 0x11c8f, +0x11c92, 0x11ca7, +0x11ca9, 0x11cb6, +}; /* END of CR_Marchen */ + +/* PROPERTY: 'Masaram_Gondi': Script */ +static const OnigCodePoint +CR_Masaram_Gondi[] = { 7, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d47, +0x11d50, 0x11d59, +}; /* END of CR_Masaram_Gondi */ + +/* PROPERTY: 'Math': Derived Property */ +static const OnigCodePoint +CR_Math[] = { 139, +0x002b, 0x002b, +0x003c, 0x003e, +0x005e, 0x005e, +0x007c, 0x007c, +0x007e, 0x007e, +0x00ac, 0x00ac, +0x00b1, 0x00b1, +0x00d7, 0x00d7, +0x00f7, 0x00f7, +0x03d0, 0x03d2, +0x03d5, 0x03d5, +0x03f0, 0x03f1, +0x03f4, 0x03f6, +0x0606, 0x0608, +0x2016, 0x2016, +0x2032, 0x2034, +0x2040, 0x2040, +0x2044, 0x2044, +0x2052, 0x2052, +0x2061, 0x2064, +0x207a, 0x207e, +0x208a, 0x208e, +0x20d0, 0x20dc, +0x20e1, 0x20e1, +0x20e5, 0x20e6, +0x20eb, 0x20ef, +0x2102, 0x2102, +0x2107, 0x2107, +0x210a, 0x2113, +0x2115, 0x2115, +0x2118, 0x211d, +0x2124, 0x2124, +0x2128, 0x2129, +0x212c, 0x212d, +0x212f, 0x2131, +0x2133, 0x2138, +0x213c, 0x2149, +0x214b, 0x214b, +0x2190, 0x21a7, +0x21a9, 0x21ae, +0x21b0, 0x21b1, +0x21b6, 0x21b7, +0x21bc, 0x21db, +0x21dd, 0x21dd, +0x21e4, 0x21e5, +0x21f4, 0x22ff, +0x2308, 0x230b, +0x2320, 0x2321, +0x237c, 0x237c, +0x239b, 0x23b5, +0x23b7, 0x23b7, +0x23d0, 0x23d0, +0x23dc, 0x23e2, +0x25a0, 0x25a1, +0x25ae, 0x25b7, +0x25bc, 0x25c1, +0x25c6, 0x25c7, +0x25ca, 0x25cb, +0x25cf, 0x25d3, +0x25e2, 0x25e2, +0x25e4, 0x25e4, +0x25e7, 0x25ec, +0x25f8, 0x25ff, +0x2605, 0x2606, +0x2640, 0x2640, +0x2642, 0x2642, +0x2660, 0x2663, +0x266d, 0x266f, +0x27c0, 0x27ff, +0x2900, 0x2aff, +0x2b30, 0x2b44, +0x2b47, 0x2b4c, +0xfb29, 0xfb29, +0xfe61, 0xfe66, +0xfe68, 0xfe68, +0xff0b, 0xff0b, +0xff1c, 0xff1e, +0xff3c, 0xff3c, +0xff3e, 0xff3e, +0xff5c, 0xff5c, +0xff5e, 0xff5e, +0xffe2, 0xffe2, +0xffe9, 0xffec, +0x10d8e, 0x10d8f, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d7cb, +0x1d7ce, 0x1d7ff, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x1eef0, 0x1eef1, +}; /* END of CR_Math */ + +/* PROPERTY: 'Mc': General Category */ +static const OnigCodePoint +CR_Mc[] = { 190, +0x0903, 0x0903, +0x093b, 0x093b, +0x093e, 0x0940, +0x0949, 0x094c, +0x094e, 0x094f, +0x0982, 0x0983, +0x09be, 0x09c0, +0x09c7, 0x09c8, +0x09cb, 0x09cc, +0x09d7, 0x09d7, +0x0a03, 0x0a03, +0x0a3e, 0x0a40, +0x0a83, 0x0a83, +0x0abe, 0x0ac0, +0x0ac9, 0x0ac9, +0x0acb, 0x0acc, +0x0b02, 0x0b03, +0x0b3e, 0x0b3e, +0x0b40, 0x0b40, +0x0b47, 0x0b48, +0x0b4b, 0x0b4c, +0x0b57, 0x0b57, +0x0bbe, 0x0bbf, +0x0bc1, 0x0bc2, +0x0bc6, 0x0bc8, +0x0bca, 0x0bcc, +0x0bd7, 0x0bd7, +0x0c01, 0x0c03, +0x0c41, 0x0c44, +0x0c82, 0x0c83, +0x0cbe, 0x0cbe, +0x0cc0, 0x0cc4, +0x0cc7, 0x0cc8, +0x0cca, 0x0ccb, +0x0cd5, 0x0cd6, +0x0cf3, 0x0cf3, +0x0d02, 0x0d03, +0x0d3e, 0x0d40, +0x0d46, 0x0d48, +0x0d4a, 0x0d4c, +0x0d57, 0x0d57, +0x0d82, 0x0d83, +0x0dcf, 0x0dd1, +0x0dd8, 0x0ddf, +0x0df2, 0x0df3, +0x0f3e, 0x0f3f, +0x0f7f, 0x0f7f, +0x102b, 0x102c, +0x1031, 0x1031, +0x1038, 0x1038, +0x103b, 0x103c, +0x1056, 0x1057, +0x1062, 0x1064, +0x1067, 0x106d, +0x1083, 0x1084, +0x1087, 0x108c, +0x108f, 0x108f, +0x109a, 0x109c, +0x1715, 0x1715, +0x1734, 0x1734, +0x17b6, 0x17b6, +0x17be, 0x17c5, +0x17c7, 0x17c8, +0x1923, 0x1926, +0x1929, 0x192b, +0x1930, 0x1931, +0x1933, 0x1938, +0x1a19, 0x1a1a, +0x1a55, 0x1a55, +0x1a57, 0x1a57, +0x1a61, 0x1a61, +0x1a63, 0x1a64, +0x1a6d, 0x1a72, +0x1b04, 0x1b04, +0x1b35, 0x1b35, +0x1b3b, 0x1b3b, +0x1b3d, 0x1b41, +0x1b43, 0x1b44, +0x1b82, 0x1b82, +0x1ba1, 0x1ba1, +0x1ba6, 0x1ba7, +0x1baa, 0x1baa, +0x1be7, 0x1be7, +0x1bea, 0x1bec, +0x1bee, 0x1bee, +0x1bf2, 0x1bf3, +0x1c24, 0x1c2b, +0x1c34, 0x1c35, +0x1ce1, 0x1ce1, +0x1cf7, 0x1cf7, +0x302e, 0x302f, +0xa823, 0xa824, +0xa827, 0xa827, +0xa880, 0xa881, +0xa8b4, 0xa8c3, +0xa952, 0xa953, +0xa983, 0xa983, +0xa9b4, 0xa9b5, +0xa9ba, 0xa9bb, +0xa9be, 0xa9c0, +0xaa2f, 0xaa30, +0xaa33, 0xaa34, +0xaa4d, 0xaa4d, +0xaa7b, 0xaa7b, +0xaa7d, 0xaa7d, +0xaaeb, 0xaaeb, +0xaaee, 0xaaef, +0xaaf5, 0xaaf5, +0xabe3, 0xabe4, +0xabe6, 0xabe7, +0xabe9, 0xabea, +0xabec, 0xabec, +0x11000, 0x11000, +0x11002, 0x11002, +0x11082, 0x11082, +0x110b0, 0x110b2, +0x110b7, 0x110b8, +0x1112c, 0x1112c, +0x11145, 0x11146, +0x11182, 0x11182, +0x111b3, 0x111b5, +0x111bf, 0x111c0, +0x111ce, 0x111ce, +0x1122c, 0x1122e, +0x11232, 0x11233, +0x11235, 0x11235, +0x112e0, 0x112e2, +0x11302, 0x11303, +0x1133e, 0x1133f, +0x11341, 0x11344, +0x11347, 0x11348, +0x1134b, 0x1134d, +0x11357, 0x11357, +0x11362, 0x11363, +0x113b8, 0x113ba, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113cd, +0x113cf, 0x113cf, +0x11435, 0x11437, +0x11440, 0x11441, +0x11445, 0x11445, +0x114b0, 0x114b2, +0x114b9, 0x114b9, +0x114bb, 0x114be, +0x114c1, 0x114c1, +0x115af, 0x115b1, +0x115b8, 0x115bb, +0x115be, 0x115be, +0x11630, 0x11632, +0x1163b, 0x1163c, +0x1163e, 0x1163e, +0x116ac, 0x116ac, +0x116ae, 0x116af, +0x116b6, 0x116b6, +0x1171e, 0x1171e, +0x11720, 0x11721, +0x11726, 0x11726, +0x1182c, 0x1182e, +0x11838, 0x11838, +0x11930, 0x11935, +0x11937, 0x11938, +0x1193d, 0x1193d, +0x11940, 0x11940, +0x11942, 0x11942, +0x119d1, 0x119d3, +0x119dc, 0x119df, +0x119e4, 0x119e4, +0x11a39, 0x11a39, +0x11a57, 0x11a58, +0x11a97, 0x11a97, +0x11c2f, 0x11c2f, +0x11c3e, 0x11c3e, +0x11ca9, 0x11ca9, +0x11cb1, 0x11cb1, +0x11cb4, 0x11cb4, +0x11d8a, 0x11d8e, +0x11d93, 0x11d94, +0x11d96, 0x11d96, +0x11ef5, 0x11ef6, +0x11f03, 0x11f03, +0x11f34, 0x11f35, +0x11f3e, 0x11f3f, +0x11f41, 0x11f41, +0x1612a, 0x1612c, +0x16f51, 0x16f87, +0x16ff0, 0x16ff1, +0x1d165, 0x1d166, +0x1d16d, 0x1d172, +}; /* END of CR_Mc */ + +/* PROPERTY: 'Me': General Category */ +static const OnigCodePoint +CR_Me[] = { 5, +0x0488, 0x0489, +0x1abe, 0x1abe, +0x20dd, 0x20e0, +0x20e2, 0x20e4, +0xa670, 0xa672, +}; /* END of CR_Me */ + +/* PROPERTY: 'Medefaidrin': Script */ +static const OnigCodePoint +CR_Medefaidrin[] = { 1, +0x16e40, 0x16e9a, +}; /* END of CR_Medefaidrin */ + +/* PROPERTY: 'Meetei_Mayek': Script */ +static const OnigCodePoint +CR_Meetei_Mayek[] = { 3, +0xaae0, 0xaaf6, +0xabc0, 0xabed, +0xabf0, 0xabf9, +}; /* END of CR_Meetei_Mayek */ + +/* PROPERTY: 'Mende_Kikakui': Script */ +static const OnigCodePoint +CR_Mende_Kikakui[] = { 2, +0x1e800, 0x1e8c4, +0x1e8c7, 0x1e8d6, +}; /* END of CR_Mende_Kikakui */ + +/* PROPERTY: 'Meroitic_Cursive': Script */ +static const OnigCodePoint +CR_Meroitic_Cursive[] = { 3, +0x109a0, 0x109b7, +0x109bc, 0x109cf, +0x109d2, 0x109ff, +}; /* END of CR_Meroitic_Cursive */ + +/* PROPERTY: 'Meroitic_Hieroglyphs': Script */ +static const OnigCodePoint +CR_Meroitic_Hieroglyphs[] = { 1, +0x10980, 0x1099f, +}; /* END of CR_Meroitic_Hieroglyphs */ + +/* PROPERTY: 'Miao': Script */ +static const OnigCodePoint +CR_Miao[] = { 3, +0x16f00, 0x16f4a, +0x16f4f, 0x16f87, +0x16f8f, 0x16f9f, +}; /* END of CR_Miao */ + +/* PROPERTY: 'Mn': General Category */ +static const OnigCodePoint +CR_Mn[] = { 357, +0x0300, 0x036f, +0x0483, 0x0487, +0x0591, 0x05bd, +0x05bf, 0x05bf, +0x05c1, 0x05c2, +0x05c4, 0x05c5, +0x05c7, 0x05c7, +0x0610, 0x061a, +0x064b, 0x065f, +0x0670, 0x0670, +0x06d6, 0x06dc, +0x06df, 0x06e4, +0x06e7, 0x06e8, +0x06ea, 0x06ed, +0x0711, 0x0711, +0x0730, 0x074a, +0x07a6, 0x07b0, +0x07eb, 0x07f3, +0x07fd, 0x07fd, +0x0816, 0x0819, +0x081b, 0x0823, +0x0825, 0x0827, +0x0829, 0x082d, +0x0859, 0x085b, +0x0897, 0x089f, +0x08ca, 0x08e1, +0x08e3, 0x0902, +0x093a, 0x093a, +0x093c, 0x093c, +0x0941, 0x0948, +0x094d, 0x094d, +0x0951, 0x0957, +0x0962, 0x0963, +0x0981, 0x0981, +0x09bc, 0x09bc, +0x09c1, 0x09c4, +0x09cd, 0x09cd, +0x09e2, 0x09e3, +0x09fe, 0x09fe, +0x0a01, 0x0a02, +0x0a3c, 0x0a3c, +0x0a41, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4d, +0x0a51, 0x0a51, +0x0a70, 0x0a71, +0x0a75, 0x0a75, +0x0a81, 0x0a82, +0x0abc, 0x0abc, +0x0ac1, 0x0ac5, +0x0ac7, 0x0ac8, +0x0acd, 0x0acd, +0x0ae2, 0x0ae3, +0x0afa, 0x0aff, +0x0b01, 0x0b01, +0x0b3c, 0x0b3c, +0x0b3f, 0x0b3f, +0x0b41, 0x0b44, +0x0b4d, 0x0b4d, +0x0b55, 0x0b56, +0x0b62, 0x0b63, +0x0b82, 0x0b82, +0x0bc0, 0x0bc0, +0x0bcd, 0x0bcd, +0x0c00, 0x0c00, +0x0c04, 0x0c04, +0x0c3c, 0x0c3c, +0x0c3e, 0x0c40, +0x0c46, 0x0c48, +0x0c4a, 0x0c4d, +0x0c55, 0x0c56, +0x0c62, 0x0c63, +0x0c81, 0x0c81, +0x0cbc, 0x0cbc, +0x0cbf, 0x0cbf, +0x0cc6, 0x0cc6, +0x0ccc, 0x0ccd, +0x0ce2, 0x0ce3, +0x0d00, 0x0d01, +0x0d3b, 0x0d3c, +0x0d41, 0x0d44, +0x0d4d, 0x0d4d, +0x0d62, 0x0d63, +0x0d81, 0x0d81, +0x0dca, 0x0dca, +0x0dd2, 0x0dd4, +0x0dd6, 0x0dd6, +0x0e31, 0x0e31, +0x0e34, 0x0e3a, +0x0e47, 0x0e4e, +0x0eb1, 0x0eb1, +0x0eb4, 0x0ebc, +0x0ec8, 0x0ece, +0x0f18, 0x0f19, +0x0f35, 0x0f35, +0x0f37, 0x0f37, +0x0f39, 0x0f39, +0x0f71, 0x0f7e, +0x0f80, 0x0f84, +0x0f86, 0x0f87, +0x0f8d, 0x0f97, +0x0f99, 0x0fbc, +0x0fc6, 0x0fc6, +0x102d, 0x1030, +0x1032, 0x1037, +0x1039, 0x103a, +0x103d, 0x103e, +0x1058, 0x1059, +0x105e, 0x1060, +0x1071, 0x1074, +0x1082, 0x1082, +0x1085, 0x1086, +0x108d, 0x108d, +0x109d, 0x109d, +0x135d, 0x135f, +0x1712, 0x1714, +0x1732, 0x1733, +0x1752, 0x1753, +0x1772, 0x1773, +0x17b4, 0x17b5, +0x17b7, 0x17bd, +0x17c6, 0x17c6, +0x17c9, 0x17d3, +0x17dd, 0x17dd, +0x180b, 0x180d, +0x180f, 0x180f, +0x1885, 0x1886, +0x18a9, 0x18a9, +0x1920, 0x1922, +0x1927, 0x1928, +0x1932, 0x1932, +0x1939, 0x193b, +0x1a17, 0x1a18, +0x1a1b, 0x1a1b, +0x1a56, 0x1a56, +0x1a58, 0x1a5e, +0x1a60, 0x1a60, +0x1a62, 0x1a62, +0x1a65, 0x1a6c, +0x1a73, 0x1a7c, +0x1a7f, 0x1a7f, +0x1ab0, 0x1abd, +0x1abf, 0x1ace, +0x1b00, 0x1b03, +0x1b34, 0x1b34, +0x1b36, 0x1b3a, +0x1b3c, 0x1b3c, +0x1b42, 0x1b42, +0x1b6b, 0x1b73, +0x1b80, 0x1b81, +0x1ba2, 0x1ba5, +0x1ba8, 0x1ba9, +0x1bab, 0x1bad, +0x1be6, 0x1be6, +0x1be8, 0x1be9, +0x1bed, 0x1bed, +0x1bef, 0x1bf1, +0x1c2c, 0x1c33, +0x1c36, 0x1c37, +0x1cd0, 0x1cd2, +0x1cd4, 0x1ce0, +0x1ce2, 0x1ce8, +0x1ced, 0x1ced, +0x1cf4, 0x1cf4, +0x1cf8, 0x1cf9, +0x1dc0, 0x1dff, +0x20d0, 0x20dc, +0x20e1, 0x20e1, +0x20e5, 0x20f0, +0x2cef, 0x2cf1, +0x2d7f, 0x2d7f, +0x2de0, 0x2dff, +0x302a, 0x302d, +0x3099, 0x309a, +0xa66f, 0xa66f, +0xa674, 0xa67d, +0xa69e, 0xa69f, +0xa6f0, 0xa6f1, +0xa802, 0xa802, +0xa806, 0xa806, +0xa80b, 0xa80b, +0xa825, 0xa826, +0xa82c, 0xa82c, +0xa8c4, 0xa8c5, +0xa8e0, 0xa8f1, +0xa8ff, 0xa8ff, +0xa926, 0xa92d, +0xa947, 0xa951, +0xa980, 0xa982, +0xa9b3, 0xa9b3, +0xa9b6, 0xa9b9, +0xa9bc, 0xa9bd, +0xa9e5, 0xa9e5, +0xaa29, 0xaa2e, +0xaa31, 0xaa32, +0xaa35, 0xaa36, +0xaa43, 0xaa43, +0xaa4c, 0xaa4c, +0xaa7c, 0xaa7c, +0xaab0, 0xaab0, +0xaab2, 0xaab4, +0xaab7, 0xaab8, +0xaabe, 0xaabf, +0xaac1, 0xaac1, +0xaaec, 0xaaed, +0xaaf6, 0xaaf6, +0xabe5, 0xabe5, +0xabe8, 0xabe8, +0xabed, 0xabed, +0xfb1e, 0xfb1e, +0xfe00, 0xfe0f, +0xfe20, 0xfe2f, +0x101fd, 0x101fd, +0x102e0, 0x102e0, +0x10376, 0x1037a, +0x10a01, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a0f, +0x10a38, 0x10a3a, +0x10a3f, 0x10a3f, +0x10ae5, 0x10ae6, +0x10d24, 0x10d27, +0x10d69, 0x10d6d, +0x10eab, 0x10eac, +0x10efc, 0x10eff, +0x10f46, 0x10f50, +0x10f82, 0x10f85, +0x11001, 0x11001, +0x11038, 0x11046, +0x11070, 0x11070, +0x11073, 0x11074, +0x1107f, 0x11081, +0x110b3, 0x110b6, +0x110b9, 0x110ba, +0x110c2, 0x110c2, +0x11100, 0x11102, +0x11127, 0x1112b, +0x1112d, 0x11134, +0x11173, 0x11173, +0x11180, 0x11181, +0x111b6, 0x111be, +0x111c9, 0x111cc, +0x111cf, 0x111cf, +0x1122f, 0x11231, +0x11234, 0x11234, +0x11236, 0x11237, +0x1123e, 0x1123e, +0x11241, 0x11241, +0x112df, 0x112df, +0x112e3, 0x112ea, +0x11300, 0x11301, +0x1133b, 0x1133c, +0x11340, 0x11340, +0x11366, 0x1136c, +0x11370, 0x11374, +0x113bb, 0x113c0, +0x113ce, 0x113ce, +0x113d0, 0x113d0, +0x113d2, 0x113d2, +0x113e1, 0x113e2, +0x11438, 0x1143f, +0x11442, 0x11444, +0x11446, 0x11446, +0x1145e, 0x1145e, +0x114b3, 0x114b8, +0x114ba, 0x114ba, +0x114bf, 0x114c0, +0x114c2, 0x114c3, +0x115b2, 0x115b5, +0x115bc, 0x115bd, +0x115bf, 0x115c0, +0x115dc, 0x115dd, +0x11633, 0x1163a, +0x1163d, 0x1163d, +0x1163f, 0x11640, +0x116ab, 0x116ab, +0x116ad, 0x116ad, +0x116b0, 0x116b5, +0x116b7, 0x116b7, +0x1171d, 0x1171d, +0x1171f, 0x1171f, +0x11722, 0x11725, +0x11727, 0x1172b, +0x1182f, 0x11837, +0x11839, 0x1183a, +0x1193b, 0x1193c, +0x1193e, 0x1193e, +0x11943, 0x11943, +0x119d4, 0x119d7, +0x119da, 0x119db, +0x119e0, 0x119e0, +0x11a01, 0x11a0a, +0x11a33, 0x11a38, +0x11a3b, 0x11a3e, +0x11a47, 0x11a47, +0x11a51, 0x11a56, +0x11a59, 0x11a5b, +0x11a8a, 0x11a96, +0x11a98, 0x11a99, +0x11c30, 0x11c36, +0x11c38, 0x11c3d, +0x11c3f, 0x11c3f, +0x11c92, 0x11ca7, +0x11caa, 0x11cb0, +0x11cb2, 0x11cb3, +0x11cb5, 0x11cb6, +0x11d31, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d45, +0x11d47, 0x11d47, +0x11d90, 0x11d91, +0x11d95, 0x11d95, +0x11d97, 0x11d97, +0x11ef3, 0x11ef4, +0x11f00, 0x11f01, +0x11f36, 0x11f3a, +0x11f40, 0x11f40, +0x11f42, 0x11f42, +0x11f5a, 0x11f5a, +0x13440, 0x13440, +0x13447, 0x13455, +0x1611e, 0x16129, +0x1612d, 0x1612f, +0x16af0, 0x16af4, +0x16b30, 0x16b36, +0x16f4f, 0x16f4f, +0x16f8f, 0x16f92, +0x16fe4, 0x16fe4, +0x1bc9d, 0x1bc9e, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1d167, 0x1d169, +0x1d17b, 0x1d182, +0x1d185, 0x1d18b, +0x1d1aa, 0x1d1ad, +0x1d242, 0x1d244, +0x1da00, 0x1da36, +0x1da3b, 0x1da6c, +0x1da75, 0x1da75, +0x1da84, 0x1da84, +0x1da9b, 0x1da9f, +0x1daa1, 0x1daaf, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, +0x1e130, 0x1e136, +0x1e2ae, 0x1e2ae, +0x1e2ec, 0x1e2ef, +0x1e4ec, 0x1e4ef, +0x1e5ee, 0x1e5ef, +0x1e8d0, 0x1e8d6, +0x1e944, 0x1e94a, +0xe0100, 0xe01ef, +}; /* END of CR_Mn */ + +/* PROPERTY: 'Modi': Script */ +static const OnigCodePoint +CR_Modi[] = { 2, +0x11600, 0x11644, +0x11650, 0x11659, +}; /* END of CR_Modi */ + +/* PROPERTY: 'Modifier_Combining_Mark': Binary Property */ +static const OnigCodePoint +CR_Modifier_Combining_Mark[] = { 9, +0x0654, 0x0655, +0x0658, 0x0658, +0x06dc, 0x06dc, +0x06e3, 0x06e3, +0x06e7, 0x06e8, +0x08ca, 0x08cb, +0x08cd, 0x08cf, +0x08d3, 0x08d3, +0x08f3, 0x08f3, +}; /* END of CR_Modifier_Combining_Mark */ + +/* PROPERTY: 'Mongolian': Script */ +static const OnigCodePoint +CR_Mongolian[] = { 6, +0x1800, 0x1801, +0x1804, 0x1804, +0x1806, 0x1819, +0x1820, 0x1878, +0x1880, 0x18aa, +0x11660, 0x1166c, +}; /* END of CR_Mongolian */ + +/* PROPERTY: 'Mro': Script */ +static const OnigCodePoint +CR_Mro[] = { 3, +0x16a40, 0x16a5e, +0x16a60, 0x16a69, +0x16a6e, 0x16a6f, +}; /* END of CR_Mro */ + +/* PROPERTY: 'Multani': Script */ +static const OnigCodePoint +CR_Multani[] = { 5, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a9, +}; /* END of CR_Multani */ + +/* PROPERTY: 'Myanmar': Script */ +static const OnigCodePoint +CR_Myanmar[] = { 4, +0x1000, 0x109f, +0xa9e0, 0xa9fe, +0xaa60, 0xaa7f, +0x116d0, 0x116e3, +}; /* END of CR_Myanmar */ + +/* PROPERTY: 'N': Major Category */ +static const OnigCodePoint +CR_N[] = { 144, +0x0030, 0x0039, +0x00b2, 0x00b3, +0x00b9, 0x00b9, +0x00bc, 0x00be, +0x0660, 0x0669, +0x06f0, 0x06f9, +0x07c0, 0x07c9, +0x0966, 0x096f, +0x09e6, 0x09ef, +0x09f4, 0x09f9, +0x0a66, 0x0a6f, +0x0ae6, 0x0aef, +0x0b66, 0x0b6f, +0x0b72, 0x0b77, +0x0be6, 0x0bf2, +0x0c66, 0x0c6f, +0x0c78, 0x0c7e, +0x0ce6, 0x0cef, +0x0d58, 0x0d5e, +0x0d66, 0x0d78, +0x0de6, 0x0def, +0x0e50, 0x0e59, +0x0ed0, 0x0ed9, +0x0f20, 0x0f33, +0x1040, 0x1049, +0x1090, 0x1099, +0x1369, 0x137c, +0x16ee, 0x16f0, +0x17e0, 0x17e9, +0x17f0, 0x17f9, +0x1810, 0x1819, +0x1946, 0x194f, +0x19d0, 0x19da, +0x1a80, 0x1a89, +0x1a90, 0x1a99, +0x1b50, 0x1b59, +0x1bb0, 0x1bb9, +0x1c40, 0x1c49, +0x1c50, 0x1c59, +0x2070, 0x2070, +0x2074, 0x2079, +0x2080, 0x2089, +0x2150, 0x2182, +0x2185, 0x2189, +0x2460, 0x249b, +0x24ea, 0x24ff, +0x2776, 0x2793, +0x2cfd, 0x2cfd, +0x3007, 0x3007, +0x3021, 0x3029, +0x3038, 0x303a, +0x3192, 0x3195, +0x3220, 0x3229, +0x3248, 0x324f, +0x3251, 0x325f, +0x3280, 0x3289, +0x32b1, 0x32bf, +0xa620, 0xa629, +0xa6e6, 0xa6ef, +0xa830, 0xa835, +0xa8d0, 0xa8d9, +0xa900, 0xa909, +0xa9d0, 0xa9d9, +0xa9f0, 0xa9f9, +0xaa50, 0xaa59, +0xabf0, 0xabf9, +0xff10, 0xff19, +0x10107, 0x10133, +0x10140, 0x10178, +0x1018a, 0x1018b, +0x102e1, 0x102fb, +0x10320, 0x10323, +0x10341, 0x10341, +0x1034a, 0x1034a, +0x103d1, 0x103d5, +0x104a0, 0x104a9, +0x10858, 0x1085f, +0x10879, 0x1087f, +0x108a7, 0x108af, +0x108fb, 0x108ff, +0x10916, 0x1091b, +0x109bc, 0x109bd, +0x109c0, 0x109cf, +0x109d2, 0x109ff, +0x10a40, 0x10a48, +0x10a7d, 0x10a7e, +0x10a9d, 0x10a9f, +0x10aeb, 0x10aef, +0x10b58, 0x10b5f, +0x10b78, 0x10b7f, +0x10ba9, 0x10baf, +0x10cfa, 0x10cff, +0x10d30, 0x10d39, +0x10d40, 0x10d49, +0x10e60, 0x10e7e, +0x10f1d, 0x10f26, +0x10f51, 0x10f54, +0x10fc5, 0x10fcb, +0x11052, 0x1106f, +0x110f0, 0x110f9, +0x11136, 0x1113f, +0x111d0, 0x111d9, +0x111e1, 0x111f4, +0x112f0, 0x112f9, +0x11450, 0x11459, +0x114d0, 0x114d9, +0x11650, 0x11659, +0x116c0, 0x116c9, +0x116d0, 0x116e3, +0x11730, 0x1173b, +0x118e0, 0x118f2, +0x11950, 0x11959, +0x11bf0, 0x11bf9, +0x11c50, 0x11c6c, +0x11d50, 0x11d59, +0x11da0, 0x11da9, +0x11f50, 0x11f59, +0x11fc0, 0x11fd4, +0x12400, 0x1246e, +0x16130, 0x16139, +0x16a60, 0x16a69, +0x16ac0, 0x16ac9, +0x16b50, 0x16b59, +0x16b5b, 0x16b61, +0x16d70, 0x16d79, +0x16e80, 0x16e96, +0x1ccf0, 0x1ccf9, +0x1d2c0, 0x1d2d3, +0x1d2e0, 0x1d2f3, +0x1d360, 0x1d378, +0x1d7ce, 0x1d7ff, +0x1e140, 0x1e149, +0x1e2f0, 0x1e2f9, +0x1e4f0, 0x1e4f9, +0x1e5f1, 0x1e5fa, +0x1e8c7, 0x1e8cf, +0x1e950, 0x1e959, +0x1ec71, 0x1ecab, +0x1ecad, 0x1ecaf, +0x1ecb1, 0x1ecb4, +0x1ed01, 0x1ed2d, +0x1ed2f, 0x1ed3d, +0x1f100, 0x1f10c, +0x1fbf0, 0x1fbf9, +}; /* END of CR_N */ + +/* PROPERTY: 'Nabataean': Script */ +static const OnigCodePoint +CR_Nabataean[] = { 2, +0x10880, 0x1089e, +0x108a7, 0x108af, +}; /* END of CR_Nabataean */ + +/* PROPERTY: 'Nag_Mundari': Script */ +static const OnigCodePoint +CR_Nag_Mundari[] = { 1, +0x1e4d0, 0x1e4f9, +}; /* END of CR_Nag_Mundari */ + +/* PROPERTY: 'Nandinagari': Script */ +static const OnigCodePoint +CR_Nandinagari[] = { 3, +0x119a0, 0x119a7, +0x119aa, 0x119d7, +0x119da, 0x119e4, +}; /* END of CR_Nandinagari */ + +/* PROPERTY: 'Nd': General Category */ +#define CR_Nd CR_Digit + +/* PROPERTY: 'New_Tai_Lue': Script */ +static const OnigCodePoint +CR_New_Tai_Lue[] = { 4, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x19d0, 0x19da, +0x19de, 0x19df, +}; /* END of CR_New_Tai_Lue */ + +/* PROPERTY: 'Newa': Script */ +static const OnigCodePoint +CR_Newa[] = { 2, +0x11400, 0x1145b, +0x1145d, 0x11461, +}; /* END of CR_Newa */ + +/* PROPERTY: 'Nko': Script */ +static const OnigCodePoint +CR_Nko[] = { 2, +0x07c0, 0x07fa, +0x07fd, 0x07ff, +}; /* END of CR_Nko */ + +/* PROPERTY: 'Nl': General Category */ +static const OnigCodePoint +CR_Nl[] = { 12, +0x16ee, 0x16f0, +0x2160, 0x2182, +0x2185, 0x2188, +0x3007, 0x3007, +0x3021, 0x3029, +0x3038, 0x303a, +0xa6e6, 0xa6ef, +0x10140, 0x10174, +0x10341, 0x10341, +0x1034a, 0x1034a, +0x103d1, 0x103d5, +0x12400, 0x1246e, +}; /* END of CR_Nl */ + +/* PROPERTY: 'No': General Category */ +static const OnigCodePoint +CR_No[] = { 72, +0x00b2, 0x00b3, +0x00b9, 0x00b9, +0x00bc, 0x00be, +0x09f4, 0x09f9, +0x0b72, 0x0b77, +0x0bf0, 0x0bf2, +0x0c78, 0x0c7e, +0x0d58, 0x0d5e, +0x0d70, 0x0d78, +0x0f2a, 0x0f33, +0x1369, 0x137c, +0x17f0, 0x17f9, +0x19da, 0x19da, +0x2070, 0x2070, +0x2074, 0x2079, +0x2080, 0x2089, +0x2150, 0x215f, +0x2189, 0x2189, +0x2460, 0x249b, +0x24ea, 0x24ff, +0x2776, 0x2793, +0x2cfd, 0x2cfd, +0x3192, 0x3195, +0x3220, 0x3229, +0x3248, 0x324f, +0x3251, 0x325f, +0x3280, 0x3289, +0x32b1, 0x32bf, +0xa830, 0xa835, +0x10107, 0x10133, +0x10175, 0x10178, +0x1018a, 0x1018b, +0x102e1, 0x102fb, +0x10320, 0x10323, +0x10858, 0x1085f, +0x10879, 0x1087f, +0x108a7, 0x108af, +0x108fb, 0x108ff, +0x10916, 0x1091b, +0x109bc, 0x109bd, +0x109c0, 0x109cf, +0x109d2, 0x109ff, +0x10a40, 0x10a48, +0x10a7d, 0x10a7e, +0x10a9d, 0x10a9f, +0x10aeb, 0x10aef, +0x10b58, 0x10b5f, +0x10b78, 0x10b7f, +0x10ba9, 0x10baf, +0x10cfa, 0x10cff, +0x10e60, 0x10e7e, +0x10f1d, 0x10f26, +0x10f51, 0x10f54, +0x10fc5, 0x10fcb, +0x11052, 0x11065, +0x111e1, 0x111f4, +0x1173a, 0x1173b, +0x118ea, 0x118f2, +0x11c5a, 0x11c6c, +0x11fc0, 0x11fd4, +0x16b5b, 0x16b61, +0x16e80, 0x16e96, +0x1d2c0, 0x1d2d3, +0x1d2e0, 0x1d2f3, +0x1d360, 0x1d378, +0x1e8c7, 0x1e8cf, +0x1ec71, 0x1ecab, +0x1ecad, 0x1ecaf, +0x1ecb1, 0x1ecb4, +0x1ed01, 0x1ed2d, +0x1ed2f, 0x1ed3d, +0x1f100, 0x1f10c, +}; /* END of CR_No */ + +/* PROPERTY: 'Noncharacter_Code_Point': Binary Property */ +static const OnigCodePoint +CR_Noncharacter_Code_Point[] = { 18, +0xfdd0, 0xfdef, +0xfffe, 0xffff, +0x1fffe, 0x1ffff, +0x2fffe, 0x2ffff, +0x3fffe, 0x3ffff, +0x4fffe, 0x4ffff, +0x5fffe, 0x5ffff, +0x6fffe, 0x6ffff, +0x7fffe, 0x7ffff, +0x8fffe, 0x8ffff, +0x9fffe, 0x9ffff, +0xafffe, 0xaffff, +0xbfffe, 0xbffff, +0xcfffe, 0xcffff, +0xdfffe, 0xdffff, +0xefffe, 0xeffff, +0xffffe, 0xfffff, +0x10fffe, 0x10ffff, +}; /* END of CR_Noncharacter_Code_Point */ + +/* PROPERTY: 'Nushu': Script */ +static const OnigCodePoint +CR_Nushu[] = { 2, +0x16fe1, 0x16fe1, +0x1b170, 0x1b2fb, +}; /* END of CR_Nushu */ + +/* PROPERTY: 'Nyiakeng_Puachue_Hmong': Script */ +static const OnigCodePoint +CR_Nyiakeng_Puachue_Hmong[] = { 4, +0x1e100, 0x1e12c, +0x1e130, 0x1e13d, +0x1e140, 0x1e149, +0x1e14e, 0x1e14f, +}; /* END of CR_Nyiakeng_Puachue_Hmong */ + +/* PROPERTY: 'Ogham': Script */ +static const OnigCodePoint +CR_Ogham[] = { 1, +0x1680, 0x169c, +}; /* END of CR_Ogham */ + +/* PROPERTY: 'Ol_Chiki': Script */ +static const OnigCodePoint +CR_Ol_Chiki[] = { 1, +0x1c50, 0x1c7f, +}; /* END of CR_Ol_Chiki */ + +/* PROPERTY: 'Ol_Onal': Script */ +static const OnigCodePoint +CR_Ol_Onal[] = { 2, +0x1e5d0, 0x1e5fa, +0x1e5ff, 0x1e5ff, +}; /* END of CR_Ol_Onal */ + +/* PROPERTY: 'Old_Hungarian': Script */ +static const OnigCodePoint +CR_Old_Hungarian[] = { 3, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10cfa, 0x10cff, +}; /* END of CR_Old_Hungarian */ + +/* PROPERTY: 'Old_Italic': Script */ +static const OnigCodePoint +CR_Old_Italic[] = { 2, +0x10300, 0x10323, +0x1032d, 0x1032f, +}; /* END of CR_Old_Italic */ + +/* PROPERTY: 'Old_North_Arabian': Script */ +static const OnigCodePoint +CR_Old_North_Arabian[] = { 1, +0x10a80, 0x10a9f, +}; /* END of CR_Old_North_Arabian */ + +/* PROPERTY: 'Old_Permic': Script */ +static const OnigCodePoint +CR_Old_Permic[] = { 1, +0x10350, 0x1037a, +}; /* END of CR_Old_Permic */ + +/* PROPERTY: 'Old_Persian': Script */ +static const OnigCodePoint +CR_Old_Persian[] = { 2, +0x103a0, 0x103c3, +0x103c8, 0x103d5, +}; /* END of CR_Old_Persian */ + +/* PROPERTY: 'Old_Sogdian': Script */ +static const OnigCodePoint +CR_Old_Sogdian[] = { 1, +0x10f00, 0x10f27, +}; /* END of CR_Old_Sogdian */ + +/* PROPERTY: 'Old_South_Arabian': Script */ +static const OnigCodePoint +CR_Old_South_Arabian[] = { 1, +0x10a60, 0x10a7f, +}; /* END of CR_Old_South_Arabian */ + +/* PROPERTY: 'Old_Turkic': Script */ +static const OnigCodePoint +CR_Old_Turkic[] = { 1, +0x10c00, 0x10c48, +}; /* END of CR_Old_Turkic */ + +/* PROPERTY: 'Old_Uyghur': Script */ +static const OnigCodePoint +CR_Old_Uyghur[] = { 1, +0x10f70, 0x10f89, +}; /* END of CR_Old_Uyghur */ + +/* PROPERTY: 'Oriya': Script */ +static const OnigCodePoint +CR_Oriya[] = { 14, +0x0b01, 0x0b03, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3c, 0x0b44, +0x0b47, 0x0b48, +0x0b4b, 0x0b4d, +0x0b55, 0x0b57, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b63, +0x0b66, 0x0b77, +}; /* END of CR_Oriya */ + +/* PROPERTY: 'Osage': Script */ +static const OnigCodePoint +CR_Osage[] = { 2, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +}; /* END of CR_Osage */ + +/* PROPERTY: 'Osmanya': Script */ +static const OnigCodePoint +CR_Osmanya[] = { 2, +0x10480, 0x1049d, +0x104a0, 0x104a9, +}; /* END of CR_Osmanya */ + +/* PROPERTY: 'Other_Alphabetic': Binary Property */ +static const OnigCodePoint +CR_Other_Alphabetic[] = { 250, +0x0345, 0x0345, +0x0363, 0x036f, +0x05b0, 0x05bd, +0x05bf, 0x05bf, +0x05c1, 0x05c2, +0x05c4, 0x05c5, +0x05c7, 0x05c7, +0x0610, 0x061a, +0x064b, 0x0657, +0x0659, 0x065f, +0x0670, 0x0670, +0x06d6, 0x06dc, +0x06e1, 0x06e4, +0x06e7, 0x06e8, +0x06ed, 0x06ed, +0x0711, 0x0711, +0x0730, 0x073f, +0x07a6, 0x07b0, +0x0816, 0x0817, +0x081b, 0x0823, +0x0825, 0x0827, +0x0829, 0x082c, +0x0897, 0x0897, +0x08d4, 0x08df, +0x08e3, 0x08e9, +0x08f0, 0x0903, +0x093a, 0x093b, +0x093e, 0x094c, +0x094e, 0x094f, +0x0955, 0x0957, +0x0962, 0x0963, +0x0981, 0x0983, +0x09be, 0x09c4, +0x09c7, 0x09c8, +0x09cb, 0x09cc, +0x09d7, 0x09d7, +0x09e2, 0x09e3, +0x0a01, 0x0a03, +0x0a3e, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4c, +0x0a51, 0x0a51, +0x0a70, 0x0a71, +0x0a75, 0x0a75, +0x0a81, 0x0a83, +0x0abe, 0x0ac5, +0x0ac7, 0x0ac9, +0x0acb, 0x0acc, +0x0ae2, 0x0ae3, +0x0afa, 0x0afc, +0x0b01, 0x0b03, +0x0b3e, 0x0b44, +0x0b47, 0x0b48, +0x0b4b, 0x0b4c, +0x0b56, 0x0b57, +0x0b62, 0x0b63, +0x0b82, 0x0b82, +0x0bbe, 0x0bc2, +0x0bc6, 0x0bc8, +0x0bca, 0x0bcc, +0x0bd7, 0x0bd7, +0x0c00, 0x0c04, +0x0c3e, 0x0c44, +0x0c46, 0x0c48, +0x0c4a, 0x0c4c, +0x0c55, 0x0c56, +0x0c62, 0x0c63, +0x0c81, 0x0c83, +0x0cbe, 0x0cc4, +0x0cc6, 0x0cc8, +0x0cca, 0x0ccc, +0x0cd5, 0x0cd6, +0x0ce2, 0x0ce3, +0x0cf3, 0x0cf3, +0x0d00, 0x0d03, +0x0d3e, 0x0d44, +0x0d46, 0x0d48, +0x0d4a, 0x0d4c, +0x0d57, 0x0d57, +0x0d62, 0x0d63, +0x0d81, 0x0d83, +0x0dcf, 0x0dd4, +0x0dd6, 0x0dd6, +0x0dd8, 0x0ddf, +0x0df2, 0x0df3, +0x0e31, 0x0e31, +0x0e34, 0x0e3a, +0x0e4d, 0x0e4d, +0x0eb1, 0x0eb1, +0x0eb4, 0x0eb9, +0x0ebb, 0x0ebc, +0x0ecd, 0x0ecd, +0x0f71, 0x0f83, +0x0f8d, 0x0f97, +0x0f99, 0x0fbc, +0x102b, 0x1036, +0x1038, 0x1038, +0x103b, 0x103e, +0x1056, 0x1059, +0x105e, 0x1060, +0x1062, 0x1064, +0x1067, 0x106d, +0x1071, 0x1074, +0x1082, 0x108d, +0x108f, 0x108f, +0x109a, 0x109d, +0x1712, 0x1713, +0x1732, 0x1733, +0x1752, 0x1753, +0x1772, 0x1773, +0x17b6, 0x17c8, +0x1885, 0x1886, +0x18a9, 0x18a9, +0x1920, 0x192b, +0x1930, 0x1938, +0x1a17, 0x1a1b, +0x1a55, 0x1a5e, +0x1a61, 0x1a74, +0x1abf, 0x1ac0, +0x1acc, 0x1ace, +0x1b00, 0x1b04, +0x1b35, 0x1b43, +0x1b80, 0x1b82, +0x1ba1, 0x1ba9, +0x1bac, 0x1bad, +0x1be7, 0x1bf1, +0x1c24, 0x1c36, +0x1dd3, 0x1df4, +0x24b6, 0x24e9, +0x2de0, 0x2dff, +0xa674, 0xa67b, +0xa69e, 0xa69f, +0xa802, 0xa802, +0xa80b, 0xa80b, +0xa823, 0xa827, +0xa880, 0xa881, +0xa8b4, 0xa8c3, +0xa8c5, 0xa8c5, +0xa8ff, 0xa8ff, +0xa926, 0xa92a, +0xa947, 0xa952, +0xa980, 0xa983, +0xa9b4, 0xa9bf, +0xa9e5, 0xa9e5, +0xaa29, 0xaa36, +0xaa43, 0xaa43, +0xaa4c, 0xaa4d, +0xaa7b, 0xaa7d, +0xaab0, 0xaab0, +0xaab2, 0xaab4, +0xaab7, 0xaab8, +0xaabe, 0xaabe, +0xaaeb, 0xaaef, +0xaaf5, 0xaaf5, +0xabe3, 0xabea, +0xfb1e, 0xfb1e, +0x10376, 0x1037a, +0x10a01, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a0f, +0x10d24, 0x10d27, +0x10d69, 0x10d69, +0x10eab, 0x10eac, +0x10efc, 0x10efc, +0x11000, 0x11002, +0x11038, 0x11045, +0x11073, 0x11074, +0x11080, 0x11082, +0x110b0, 0x110b8, +0x110c2, 0x110c2, +0x11100, 0x11102, +0x11127, 0x11132, +0x11145, 0x11146, +0x11180, 0x11182, +0x111b3, 0x111bf, +0x111ce, 0x111cf, +0x1122c, 0x11234, +0x11237, 0x11237, +0x1123e, 0x1123e, +0x11241, 0x11241, +0x112df, 0x112e8, +0x11300, 0x11303, +0x1133e, 0x11344, +0x11347, 0x11348, +0x1134b, 0x1134c, +0x11357, 0x11357, +0x11362, 0x11363, +0x113b8, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113cd, +0x11435, 0x11441, +0x11443, 0x11445, +0x114b0, 0x114c1, +0x115af, 0x115b5, +0x115b8, 0x115be, +0x115dc, 0x115dd, +0x11630, 0x1163e, +0x11640, 0x11640, +0x116ab, 0x116b5, +0x1171d, 0x1172a, +0x1182c, 0x11838, +0x11930, 0x11935, +0x11937, 0x11938, +0x1193b, 0x1193c, +0x11940, 0x11940, +0x11942, 0x11942, +0x119d1, 0x119d7, +0x119da, 0x119df, +0x119e4, 0x119e4, +0x11a01, 0x11a0a, +0x11a35, 0x11a39, +0x11a3b, 0x11a3e, +0x11a51, 0x11a5b, +0x11a8a, 0x11a97, +0x11c2f, 0x11c36, +0x11c38, 0x11c3e, +0x11c92, 0x11ca7, +0x11ca9, 0x11cb6, +0x11d31, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d41, +0x11d43, 0x11d43, +0x11d47, 0x11d47, +0x11d8a, 0x11d8e, +0x11d90, 0x11d91, +0x11d93, 0x11d96, +0x11ef3, 0x11ef6, +0x11f00, 0x11f01, +0x11f03, 0x11f03, +0x11f34, 0x11f3a, +0x11f3e, 0x11f40, +0x1611e, 0x1612e, +0x16f4f, 0x16f4f, +0x16f51, 0x16f87, +0x16f8f, 0x16f92, +0x16ff0, 0x16ff1, +0x1bc9e, 0x1bc9e, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e08f, 0x1e08f, +0x1e947, 0x1e947, +0x1f130, 0x1f149, +0x1f150, 0x1f169, +0x1f170, 0x1f189, +}; /* END of CR_Other_Alphabetic */ + +/* PROPERTY: 'Other_Default_Ignorable_Code_Point': Binary Property */ +static const OnigCodePoint +CR_Other_Default_Ignorable_Code_Point[] = { 11, +0x034f, 0x034f, +0x115f, 0x1160, +0x17b4, 0x17b5, +0x2065, 0x2065, +0x3164, 0x3164, +0xffa0, 0xffa0, +0xfff0, 0xfff8, +0xe0000, 0xe0000, +0xe0002, 0xe001f, +0xe0080, 0xe00ff, +0xe01f0, 0xe0fff, +}; /* END of CR_Other_Default_Ignorable_Code_Point */ + +/* PROPERTY: 'Other_Grapheme_Extend': Binary Property */ +static const OnigCodePoint +CR_Other_Grapheme_Extend[] = { 49, +0x09be, 0x09be, +0x09d7, 0x09d7, +0x0b3e, 0x0b3e, +0x0b57, 0x0b57, +0x0bbe, 0x0bbe, +0x0bd7, 0x0bd7, +0x0cc0, 0x0cc0, +0x0cc2, 0x0cc2, +0x0cc7, 0x0cc8, +0x0cca, 0x0ccb, +0x0cd5, 0x0cd6, +0x0d3e, 0x0d3e, +0x0d57, 0x0d57, +0x0dcf, 0x0dcf, +0x0ddf, 0x0ddf, +0x1715, 0x1715, +0x1734, 0x1734, +0x1b35, 0x1b35, +0x1b3b, 0x1b3b, +0x1b3d, 0x1b3d, +0x1b43, 0x1b44, +0x1baa, 0x1baa, +0x1bf2, 0x1bf3, +0x200c, 0x200c, +0x302e, 0x302f, +0xa953, 0xa953, +0xa9c0, 0xa9c0, +0xff9e, 0xff9f, +0x111c0, 0x111c0, +0x11235, 0x11235, +0x1133e, 0x1133e, +0x1134d, 0x1134d, +0x11357, 0x11357, +0x113b8, 0x113b8, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113c9, +0x113cf, 0x113cf, +0x114b0, 0x114b0, +0x114bd, 0x114bd, +0x115af, 0x115af, +0x116b6, 0x116b6, +0x11930, 0x11930, +0x1193d, 0x1193d, +0x11f41, 0x11f41, +0x16ff0, 0x16ff1, +0x1d165, 0x1d166, +0x1d16d, 0x1d172, +0xe0020, 0xe007f, +}; /* END of CR_Other_Grapheme_Extend */ + +/* PROPERTY: 'Other_ID_Continue': Binary Property */ +static const OnigCodePoint +CR_Other_ID_Continue[] = { 7, +0x00b7, 0x00b7, +0x0387, 0x0387, +0x1369, 0x1371, +0x19da, 0x19da, +0x200c, 0x200d, +0x30fb, 0x30fb, +0xff65, 0xff65, +}; /* END of CR_Other_ID_Continue */ + +/* PROPERTY: 'Other_ID_Start': Binary Property */ +static const OnigCodePoint +CR_Other_ID_Start[] = { 4, +0x1885, 0x1886, +0x2118, 0x2118, +0x212e, 0x212e, +0x309b, 0x309c, +}; /* END of CR_Other_ID_Start */ + +/* PROPERTY: 'Other_Lowercase': Binary Property */ +static const OnigCodePoint +CR_Other_Lowercase[] = { 28, +0x00aa, 0x00aa, +0x00ba, 0x00ba, +0x02b0, 0x02b8, +0x02c0, 0x02c1, +0x02e0, 0x02e4, +0x0345, 0x0345, +0x037a, 0x037a, +0x10fc, 0x10fc, +0x1d2c, 0x1d6a, +0x1d78, 0x1d78, +0x1d9b, 0x1dbf, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x2170, 0x217f, +0x24d0, 0x24e9, +0x2c7c, 0x2c7d, +0xa69c, 0xa69d, +0xa770, 0xa770, +0xa7f2, 0xa7f4, +0xa7f8, 0xa7f9, +0xab5c, 0xab5f, +0xab69, 0xab69, +0x10780, 0x10780, +0x10783, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x1e030, 0x1e06d, +}; /* END of CR_Other_Lowercase */ + +/* PROPERTY: 'Other_Math': Binary Property */ +static const OnigCodePoint +CR_Other_Math[] = { 134, +0x005e, 0x005e, +0x03d0, 0x03d2, +0x03d5, 0x03d5, +0x03f0, 0x03f1, +0x03f4, 0x03f5, +0x2016, 0x2016, +0x2032, 0x2034, +0x2040, 0x2040, +0x2061, 0x2064, +0x207d, 0x207e, +0x208d, 0x208e, +0x20d0, 0x20dc, +0x20e1, 0x20e1, +0x20e5, 0x20e6, +0x20eb, 0x20ef, +0x2102, 0x2102, +0x2107, 0x2107, +0x210a, 0x2113, +0x2115, 0x2115, +0x2119, 0x211d, +0x2124, 0x2124, +0x2128, 0x2129, +0x212c, 0x212d, +0x212f, 0x2131, +0x2133, 0x2138, +0x213c, 0x213f, +0x2145, 0x2149, +0x2195, 0x2199, +0x219c, 0x219f, +0x21a1, 0x21a2, +0x21a4, 0x21a5, +0x21a7, 0x21a7, +0x21a9, 0x21ad, +0x21b0, 0x21b1, +0x21b6, 0x21b7, +0x21bc, 0x21cd, +0x21d0, 0x21d1, +0x21d3, 0x21d3, +0x21d5, 0x21db, +0x21dd, 0x21dd, +0x21e4, 0x21e5, +0x2308, 0x230b, +0x23b4, 0x23b5, +0x23b7, 0x23b7, +0x23d0, 0x23d0, +0x23e2, 0x23e2, +0x25a0, 0x25a1, +0x25ae, 0x25b6, +0x25bc, 0x25c0, +0x25c6, 0x25c7, +0x25ca, 0x25cb, +0x25cf, 0x25d3, +0x25e2, 0x25e2, +0x25e4, 0x25e4, +0x25e7, 0x25ec, +0x2605, 0x2606, +0x2640, 0x2640, +0x2642, 0x2642, +0x2660, 0x2663, +0x266d, 0x266e, +0x27c5, 0x27c6, +0x27e6, 0x27ef, +0x2983, 0x2998, +0x29d8, 0x29db, +0x29fc, 0x29fd, +0xfe61, 0xfe61, +0xfe63, 0xfe63, +0xfe68, 0xfe68, +0xff3c, 0xff3c, +0xff3e, 0xff3e, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d6c0, +0x1d6c2, 0x1d6da, +0x1d6dc, 0x1d6fa, +0x1d6fc, 0x1d714, +0x1d716, 0x1d734, +0x1d736, 0x1d74e, +0x1d750, 0x1d76e, +0x1d770, 0x1d788, +0x1d78a, 0x1d7a8, +0x1d7aa, 0x1d7c2, +0x1d7c4, 0x1d7cb, +0x1d7ce, 0x1d7ff, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +}; /* END of CR_Other_Math */ + +/* PROPERTY: 'Other_Uppercase': Binary Property */ +static const OnigCodePoint +CR_Other_Uppercase[] = { 5, +0x2160, 0x216f, +0x24b6, 0x24cf, +0x1f130, 0x1f149, +0x1f150, 0x1f169, +0x1f170, 0x1f189, +}; /* END of CR_Other_Uppercase */ + +/* PROPERTY: 'P': Major Category */ +static const OnigCodePoint +CR_P[] = { 198, +0x0021, 0x0023, +0x0025, 0x002a, +0x002c, 0x002f, +0x003a, 0x003b, +0x003f, 0x0040, +0x005b, 0x005d, +0x005f, 0x005f, +0x007b, 0x007b, +0x007d, 0x007d, +0x00a1, 0x00a1, +0x00a7, 0x00a7, +0x00ab, 0x00ab, +0x00b6, 0x00b7, +0x00bb, 0x00bb, +0x00bf, 0x00bf, +0x037e, 0x037e, +0x0387, 0x0387, +0x055a, 0x055f, +0x0589, 0x058a, +0x05be, 0x05be, +0x05c0, 0x05c0, +0x05c3, 0x05c3, +0x05c6, 0x05c6, +0x05f3, 0x05f4, +0x0609, 0x060a, +0x060c, 0x060d, +0x061b, 0x061b, +0x061d, 0x061f, +0x066a, 0x066d, +0x06d4, 0x06d4, +0x0700, 0x070d, +0x07f7, 0x07f9, +0x0830, 0x083e, +0x085e, 0x085e, +0x0964, 0x0965, +0x0970, 0x0970, +0x09fd, 0x09fd, +0x0a76, 0x0a76, +0x0af0, 0x0af0, +0x0c77, 0x0c77, +0x0c84, 0x0c84, +0x0df4, 0x0df4, +0x0e4f, 0x0e4f, +0x0e5a, 0x0e5b, +0x0f04, 0x0f12, +0x0f14, 0x0f14, +0x0f3a, 0x0f3d, +0x0f85, 0x0f85, +0x0fd0, 0x0fd4, +0x0fd9, 0x0fda, +0x104a, 0x104f, +0x10fb, 0x10fb, +0x1360, 0x1368, +0x1400, 0x1400, +0x166e, 0x166e, +0x169b, 0x169c, +0x16eb, 0x16ed, +0x1735, 0x1736, +0x17d4, 0x17d6, +0x17d8, 0x17da, +0x1800, 0x180a, +0x1944, 0x1945, +0x1a1e, 0x1a1f, +0x1aa0, 0x1aa6, +0x1aa8, 0x1aad, +0x1b4e, 0x1b4f, +0x1b5a, 0x1b60, +0x1b7d, 0x1b7f, +0x1bfc, 0x1bff, +0x1c3b, 0x1c3f, +0x1c7e, 0x1c7f, +0x1cc0, 0x1cc7, +0x1cd3, 0x1cd3, +0x2010, 0x2027, +0x2030, 0x2043, +0x2045, 0x2051, +0x2053, 0x205e, +0x207d, 0x207e, +0x208d, 0x208e, +0x2308, 0x230b, +0x2329, 0x232a, +0x2768, 0x2775, +0x27c5, 0x27c6, +0x27e6, 0x27ef, +0x2983, 0x2998, +0x29d8, 0x29db, +0x29fc, 0x29fd, +0x2cf9, 0x2cfc, +0x2cfe, 0x2cff, +0x2d70, 0x2d70, +0x2e00, 0x2e2e, +0x2e30, 0x2e4f, +0x2e52, 0x2e5d, +0x3001, 0x3003, +0x3008, 0x3011, +0x3014, 0x301f, +0x3030, 0x3030, +0x303d, 0x303d, +0x30a0, 0x30a0, +0x30fb, 0x30fb, +0xa4fe, 0xa4ff, +0xa60d, 0xa60f, +0xa673, 0xa673, +0xa67e, 0xa67e, +0xa6f2, 0xa6f7, +0xa874, 0xa877, +0xa8ce, 0xa8cf, +0xa8f8, 0xa8fa, +0xa8fc, 0xa8fc, +0xa92e, 0xa92f, +0xa95f, 0xa95f, +0xa9c1, 0xa9cd, +0xa9de, 0xa9df, +0xaa5c, 0xaa5f, +0xaade, 0xaadf, +0xaaf0, 0xaaf1, +0xabeb, 0xabeb, +0xfd3e, 0xfd3f, +0xfe10, 0xfe19, +0xfe30, 0xfe52, +0xfe54, 0xfe61, +0xfe63, 0xfe63, +0xfe68, 0xfe68, +0xfe6a, 0xfe6b, +0xff01, 0xff03, +0xff05, 0xff0a, +0xff0c, 0xff0f, +0xff1a, 0xff1b, +0xff1f, 0xff20, +0xff3b, 0xff3d, +0xff3f, 0xff3f, +0xff5b, 0xff5b, +0xff5d, 0xff5d, +0xff5f, 0xff65, +0x10100, 0x10102, +0x1039f, 0x1039f, +0x103d0, 0x103d0, +0x1056f, 0x1056f, +0x10857, 0x10857, +0x1091f, 0x1091f, +0x1093f, 0x1093f, +0x10a50, 0x10a58, +0x10a7f, 0x10a7f, +0x10af0, 0x10af6, +0x10b39, 0x10b3f, +0x10b99, 0x10b9c, +0x10d6e, 0x10d6e, +0x10ead, 0x10ead, +0x10f55, 0x10f59, +0x10f86, 0x10f89, +0x11047, 0x1104d, +0x110bb, 0x110bc, +0x110be, 0x110c1, +0x11140, 0x11143, +0x11174, 0x11175, +0x111c5, 0x111c8, +0x111cd, 0x111cd, +0x111db, 0x111db, +0x111dd, 0x111df, +0x11238, 0x1123d, +0x112a9, 0x112a9, +0x113d4, 0x113d5, +0x113d7, 0x113d8, +0x1144b, 0x1144f, +0x1145a, 0x1145b, +0x1145d, 0x1145d, +0x114c6, 0x114c6, +0x115c1, 0x115d7, +0x11641, 0x11643, +0x11660, 0x1166c, +0x116b9, 0x116b9, +0x1173c, 0x1173e, +0x1183b, 0x1183b, +0x11944, 0x11946, +0x119e2, 0x119e2, +0x11a3f, 0x11a46, +0x11a9a, 0x11a9c, +0x11a9e, 0x11aa2, +0x11b00, 0x11b09, +0x11be1, 0x11be1, +0x11c41, 0x11c45, +0x11c70, 0x11c71, +0x11ef7, 0x11ef8, +0x11f43, 0x11f4f, +0x11fff, 0x11fff, +0x12470, 0x12474, +0x12ff1, 0x12ff2, +0x16a6e, 0x16a6f, +0x16af5, 0x16af5, +0x16b37, 0x16b3b, +0x16b44, 0x16b44, +0x16d6d, 0x16d6f, +0x16e97, 0x16e9a, +0x16fe2, 0x16fe2, +0x1bc9f, 0x1bc9f, +0x1da87, 0x1da8b, +0x1e5ff, 0x1e5ff, +0x1e95e, 0x1e95f, +}; /* END of CR_P */ + +/* PROPERTY: 'Pahawh_Hmong': Script */ +static const OnigCodePoint +CR_Pahawh_Hmong[] = { 5, +0x16b00, 0x16b45, +0x16b50, 0x16b59, +0x16b5b, 0x16b61, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +}; /* END of CR_Pahawh_Hmong */ + +/* PROPERTY: 'Palmyrene': Script */ +static const OnigCodePoint +CR_Palmyrene[] = { 1, +0x10860, 0x1087f, +}; /* END of CR_Palmyrene */ + +/* PROPERTY: 'Pattern_Syntax': Binary Property */ +static const OnigCodePoint +CR_Pattern_Syntax[] = { 28, +0x0021, 0x002f, +0x003a, 0x0040, +0x005b, 0x005e, +0x0060, 0x0060, +0x007b, 0x007e, +0x00a1, 0x00a7, +0x00a9, 0x00a9, +0x00ab, 0x00ac, +0x00ae, 0x00ae, +0x00b0, 0x00b1, +0x00b6, 0x00b6, +0x00bb, 0x00bb, +0x00bf, 0x00bf, +0x00d7, 0x00d7, +0x00f7, 0x00f7, +0x2010, 0x2027, +0x2030, 0x203e, +0x2041, 0x2053, +0x2055, 0x205e, +0x2190, 0x245f, +0x2500, 0x2775, +0x2794, 0x2bff, +0x2e00, 0x2e7f, +0x3001, 0x3003, +0x3008, 0x3020, +0x3030, 0x3030, +0xfd3e, 0xfd3f, +0xfe45, 0xfe46, +}; /* END of CR_Pattern_Syntax */ + +/* PROPERTY: 'Pattern_White_Space': Binary Property */ +static const OnigCodePoint +CR_Pattern_White_Space[] = { 5, +0x0009, 0x000d, +0x0020, 0x0020, +0x0085, 0x0085, +0x200e, 0x200f, +0x2028, 0x2029, +}; /* END of CR_Pattern_White_Space */ + +/* PROPERTY: 'Pau_Cin_Hau': Script */ +static const OnigCodePoint +CR_Pau_Cin_Hau[] = { 1, +0x11ac0, 0x11af8, +}; /* END of CR_Pau_Cin_Hau */ + +/* PROPERTY: 'Pc': General Category */ +static const OnigCodePoint +CR_Pc[] = { 6, +0x005f, 0x005f, +0x203f, 0x2040, +0x2054, 0x2054, +0xfe33, 0xfe34, +0xfe4d, 0xfe4f, +0xff3f, 0xff3f, +}; /* END of CR_Pc */ + +/* PROPERTY: 'Pd': General Category */ +static const OnigCodePoint +CR_Pd[] = { 20, +0x002d, 0x002d, +0x058a, 0x058a, +0x05be, 0x05be, +0x1400, 0x1400, +0x1806, 0x1806, +0x2010, 0x2015, +0x2e17, 0x2e17, +0x2e1a, 0x2e1a, +0x2e3a, 0x2e3b, +0x2e40, 0x2e40, +0x2e5d, 0x2e5d, +0x301c, 0x301c, +0x3030, 0x3030, +0x30a0, 0x30a0, +0xfe31, 0xfe32, +0xfe58, 0xfe58, +0xfe63, 0xfe63, +0xff0d, 0xff0d, +0x10d6e, 0x10d6e, +0x10ead, 0x10ead, +}; /* END of CR_Pd */ + +/* PROPERTY: 'Pe': General Category */ +static const OnigCodePoint +CR_Pe[] = { 76, +0x0029, 0x0029, +0x005d, 0x005d, +0x007d, 0x007d, +0x0f3b, 0x0f3b, +0x0f3d, 0x0f3d, +0x169c, 0x169c, +0x2046, 0x2046, +0x207e, 0x207e, +0x208e, 0x208e, +0x2309, 0x2309, +0x230b, 0x230b, +0x232a, 0x232a, +0x2769, 0x2769, +0x276b, 0x276b, +0x276d, 0x276d, +0x276f, 0x276f, +0x2771, 0x2771, +0x2773, 0x2773, +0x2775, 0x2775, +0x27c6, 0x27c6, +0x27e7, 0x27e7, +0x27e9, 0x27e9, +0x27eb, 0x27eb, +0x27ed, 0x27ed, +0x27ef, 0x27ef, +0x2984, 0x2984, +0x2986, 0x2986, +0x2988, 0x2988, +0x298a, 0x298a, +0x298c, 0x298c, +0x298e, 0x298e, +0x2990, 0x2990, +0x2992, 0x2992, +0x2994, 0x2994, +0x2996, 0x2996, +0x2998, 0x2998, +0x29d9, 0x29d9, +0x29db, 0x29db, +0x29fd, 0x29fd, +0x2e23, 0x2e23, +0x2e25, 0x2e25, +0x2e27, 0x2e27, +0x2e29, 0x2e29, +0x2e56, 0x2e56, +0x2e58, 0x2e58, +0x2e5a, 0x2e5a, +0x2e5c, 0x2e5c, +0x3009, 0x3009, +0x300b, 0x300b, +0x300d, 0x300d, +0x300f, 0x300f, +0x3011, 0x3011, +0x3015, 0x3015, +0x3017, 0x3017, +0x3019, 0x3019, +0x301b, 0x301b, +0x301e, 0x301f, +0xfd3e, 0xfd3e, +0xfe18, 0xfe18, +0xfe36, 0xfe36, +0xfe38, 0xfe38, +0xfe3a, 0xfe3a, +0xfe3c, 0xfe3c, +0xfe3e, 0xfe3e, +0xfe40, 0xfe40, +0xfe42, 0xfe42, +0xfe44, 0xfe44, +0xfe48, 0xfe48, +0xfe5a, 0xfe5a, +0xfe5c, 0xfe5c, +0xfe5e, 0xfe5e, +0xff09, 0xff09, +0xff3d, 0xff3d, +0xff5d, 0xff5d, +0xff60, 0xff60, +0xff63, 0xff63, +}; /* END of CR_Pe */ + +/* PROPERTY: 'Pf': General Category */ +static const OnigCodePoint +CR_Pf[] = { 10, +0x00bb, 0x00bb, +0x2019, 0x2019, +0x201d, 0x201d, +0x203a, 0x203a, +0x2e03, 0x2e03, +0x2e05, 0x2e05, +0x2e0a, 0x2e0a, +0x2e0d, 0x2e0d, +0x2e1d, 0x2e1d, +0x2e21, 0x2e21, +}; /* END of CR_Pf */ + +/* PROPERTY: 'Phags_Pa': Script */ +static const OnigCodePoint +CR_Phags_Pa[] = { 1, +0xa840, 0xa877, +}; /* END of CR_Phags_Pa */ + +/* PROPERTY: 'Phoenician': Script */ +static const OnigCodePoint +CR_Phoenician[] = { 2, +0x10900, 0x1091b, +0x1091f, 0x1091f, +}; /* END of CR_Phoenician */ + +/* PROPERTY: 'Pi': General Category */ +static const OnigCodePoint +CR_Pi[] = { 11, +0x00ab, 0x00ab, +0x2018, 0x2018, +0x201b, 0x201c, +0x201f, 0x201f, +0x2039, 0x2039, +0x2e02, 0x2e02, +0x2e04, 0x2e04, +0x2e09, 0x2e09, +0x2e0c, 0x2e0c, +0x2e1c, 0x2e1c, +0x2e20, 0x2e20, +}; /* END of CR_Pi */ + +/* PROPERTY: 'Po': General Category */ +static const OnigCodePoint +CR_Po[] = { 193, +0x0021, 0x0023, +0x0025, 0x0027, +0x002a, 0x002a, +0x002c, 0x002c, +0x002e, 0x002f, +0x003a, 0x003b, +0x003f, 0x0040, +0x005c, 0x005c, +0x00a1, 0x00a1, +0x00a7, 0x00a7, +0x00b6, 0x00b7, +0x00bf, 0x00bf, +0x037e, 0x037e, +0x0387, 0x0387, +0x055a, 0x055f, +0x0589, 0x0589, +0x05c0, 0x05c0, +0x05c3, 0x05c3, +0x05c6, 0x05c6, +0x05f3, 0x05f4, +0x0609, 0x060a, +0x060c, 0x060d, +0x061b, 0x061b, +0x061d, 0x061f, +0x066a, 0x066d, +0x06d4, 0x06d4, +0x0700, 0x070d, +0x07f7, 0x07f9, +0x0830, 0x083e, +0x085e, 0x085e, +0x0964, 0x0965, +0x0970, 0x0970, +0x09fd, 0x09fd, +0x0a76, 0x0a76, +0x0af0, 0x0af0, +0x0c77, 0x0c77, +0x0c84, 0x0c84, +0x0df4, 0x0df4, +0x0e4f, 0x0e4f, +0x0e5a, 0x0e5b, +0x0f04, 0x0f12, +0x0f14, 0x0f14, +0x0f85, 0x0f85, +0x0fd0, 0x0fd4, +0x0fd9, 0x0fda, +0x104a, 0x104f, +0x10fb, 0x10fb, +0x1360, 0x1368, +0x166e, 0x166e, +0x16eb, 0x16ed, +0x1735, 0x1736, +0x17d4, 0x17d6, +0x17d8, 0x17da, +0x1800, 0x1805, +0x1807, 0x180a, +0x1944, 0x1945, +0x1a1e, 0x1a1f, +0x1aa0, 0x1aa6, +0x1aa8, 0x1aad, +0x1b4e, 0x1b4f, +0x1b5a, 0x1b60, +0x1b7d, 0x1b7f, +0x1bfc, 0x1bff, +0x1c3b, 0x1c3f, +0x1c7e, 0x1c7f, +0x1cc0, 0x1cc7, +0x1cd3, 0x1cd3, +0x2016, 0x2017, +0x2020, 0x2027, +0x2030, 0x2038, +0x203b, 0x203e, +0x2041, 0x2043, +0x2047, 0x2051, +0x2053, 0x2053, +0x2055, 0x205e, +0x2cf9, 0x2cfc, +0x2cfe, 0x2cff, +0x2d70, 0x2d70, +0x2e00, 0x2e01, +0x2e06, 0x2e08, +0x2e0b, 0x2e0b, +0x2e0e, 0x2e16, +0x2e18, 0x2e19, +0x2e1b, 0x2e1b, +0x2e1e, 0x2e1f, +0x2e2a, 0x2e2e, +0x2e30, 0x2e39, +0x2e3c, 0x2e3f, +0x2e41, 0x2e41, +0x2e43, 0x2e4f, +0x2e52, 0x2e54, +0x3001, 0x3003, +0x303d, 0x303d, +0x30fb, 0x30fb, +0xa4fe, 0xa4ff, +0xa60d, 0xa60f, +0xa673, 0xa673, +0xa67e, 0xa67e, +0xa6f2, 0xa6f7, +0xa874, 0xa877, +0xa8ce, 0xa8cf, +0xa8f8, 0xa8fa, +0xa8fc, 0xa8fc, +0xa92e, 0xa92f, +0xa95f, 0xa95f, +0xa9c1, 0xa9cd, +0xa9de, 0xa9df, +0xaa5c, 0xaa5f, +0xaade, 0xaadf, +0xaaf0, 0xaaf1, +0xabeb, 0xabeb, +0xfe10, 0xfe16, +0xfe19, 0xfe19, +0xfe30, 0xfe30, +0xfe45, 0xfe46, +0xfe49, 0xfe4c, +0xfe50, 0xfe52, +0xfe54, 0xfe57, +0xfe5f, 0xfe61, +0xfe68, 0xfe68, +0xfe6a, 0xfe6b, +0xff01, 0xff03, +0xff05, 0xff07, +0xff0a, 0xff0a, +0xff0c, 0xff0c, +0xff0e, 0xff0f, +0xff1a, 0xff1b, +0xff1f, 0xff20, +0xff3c, 0xff3c, +0xff61, 0xff61, +0xff64, 0xff65, +0x10100, 0x10102, +0x1039f, 0x1039f, +0x103d0, 0x103d0, +0x1056f, 0x1056f, +0x10857, 0x10857, +0x1091f, 0x1091f, +0x1093f, 0x1093f, +0x10a50, 0x10a58, +0x10a7f, 0x10a7f, +0x10af0, 0x10af6, +0x10b39, 0x10b3f, +0x10b99, 0x10b9c, +0x10f55, 0x10f59, +0x10f86, 0x10f89, +0x11047, 0x1104d, +0x110bb, 0x110bc, +0x110be, 0x110c1, +0x11140, 0x11143, +0x11174, 0x11175, +0x111c5, 0x111c8, +0x111cd, 0x111cd, +0x111db, 0x111db, +0x111dd, 0x111df, +0x11238, 0x1123d, +0x112a9, 0x112a9, +0x113d4, 0x113d5, +0x113d7, 0x113d8, +0x1144b, 0x1144f, +0x1145a, 0x1145b, +0x1145d, 0x1145d, +0x114c6, 0x114c6, +0x115c1, 0x115d7, +0x11641, 0x11643, +0x11660, 0x1166c, +0x116b9, 0x116b9, +0x1173c, 0x1173e, +0x1183b, 0x1183b, +0x11944, 0x11946, +0x119e2, 0x119e2, +0x11a3f, 0x11a46, +0x11a9a, 0x11a9c, +0x11a9e, 0x11aa2, +0x11b00, 0x11b09, +0x11be1, 0x11be1, +0x11c41, 0x11c45, +0x11c70, 0x11c71, +0x11ef7, 0x11ef8, +0x11f43, 0x11f4f, +0x11fff, 0x11fff, +0x12470, 0x12474, +0x12ff1, 0x12ff2, +0x16a6e, 0x16a6f, +0x16af5, 0x16af5, +0x16b37, 0x16b3b, +0x16b44, 0x16b44, +0x16d6d, 0x16d6f, +0x16e97, 0x16e9a, +0x16fe2, 0x16fe2, +0x1bc9f, 0x1bc9f, +0x1da87, 0x1da8b, +0x1e5ff, 0x1e5ff, +0x1e95e, 0x1e95f, +}; /* END of CR_Po */ + +/* PROPERTY: 'Prepended_Concatenation_Mark': Binary Property */ +static const OnigCodePoint +CR_Prepended_Concatenation_Mark[] = { 7, +0x0600, 0x0605, +0x06dd, 0x06dd, +0x070f, 0x070f, +0x0890, 0x0891, +0x08e2, 0x08e2, +0x110bd, 0x110bd, +0x110cd, 0x110cd, +}; /* END of CR_Prepended_Concatenation_Mark */ + +/* PROPERTY: 'Ps': General Category */ +static const OnigCodePoint +CR_Ps[] = { 79, +0x0028, 0x0028, +0x005b, 0x005b, +0x007b, 0x007b, +0x0f3a, 0x0f3a, +0x0f3c, 0x0f3c, +0x169b, 0x169b, +0x201a, 0x201a, +0x201e, 0x201e, +0x2045, 0x2045, +0x207d, 0x207d, +0x208d, 0x208d, +0x2308, 0x2308, +0x230a, 0x230a, +0x2329, 0x2329, +0x2768, 0x2768, +0x276a, 0x276a, +0x276c, 0x276c, +0x276e, 0x276e, +0x2770, 0x2770, +0x2772, 0x2772, +0x2774, 0x2774, +0x27c5, 0x27c5, +0x27e6, 0x27e6, +0x27e8, 0x27e8, +0x27ea, 0x27ea, +0x27ec, 0x27ec, +0x27ee, 0x27ee, +0x2983, 0x2983, +0x2985, 0x2985, +0x2987, 0x2987, +0x2989, 0x2989, +0x298b, 0x298b, +0x298d, 0x298d, +0x298f, 0x298f, +0x2991, 0x2991, +0x2993, 0x2993, +0x2995, 0x2995, +0x2997, 0x2997, +0x29d8, 0x29d8, +0x29da, 0x29da, +0x29fc, 0x29fc, +0x2e22, 0x2e22, +0x2e24, 0x2e24, +0x2e26, 0x2e26, +0x2e28, 0x2e28, +0x2e42, 0x2e42, +0x2e55, 0x2e55, +0x2e57, 0x2e57, +0x2e59, 0x2e59, +0x2e5b, 0x2e5b, +0x3008, 0x3008, +0x300a, 0x300a, +0x300c, 0x300c, +0x300e, 0x300e, +0x3010, 0x3010, +0x3014, 0x3014, +0x3016, 0x3016, +0x3018, 0x3018, +0x301a, 0x301a, +0x301d, 0x301d, +0xfd3f, 0xfd3f, +0xfe17, 0xfe17, +0xfe35, 0xfe35, +0xfe37, 0xfe37, +0xfe39, 0xfe39, +0xfe3b, 0xfe3b, +0xfe3d, 0xfe3d, +0xfe3f, 0xfe3f, +0xfe41, 0xfe41, +0xfe43, 0xfe43, +0xfe47, 0xfe47, +0xfe59, 0xfe59, +0xfe5b, 0xfe5b, +0xfe5d, 0xfe5d, +0xff08, 0xff08, +0xff3b, 0xff3b, +0xff5b, 0xff5b, +0xff5f, 0xff5f, +0xff62, 0xff62, +}; /* END of CR_Ps */ + +/* PROPERTY: 'Psalter_Pahlavi': Script */ +static const OnigCodePoint +CR_Psalter_Pahlavi[] = { 3, +0x10b80, 0x10b91, +0x10b99, 0x10b9c, +0x10ba9, 0x10baf, +}; /* END of CR_Psalter_Pahlavi */ + +/* PROPERTY: 'Quotation_Mark': Binary Property */ +static const OnigCodePoint +CR_Quotation_Mark[] = { 13, +0x0022, 0x0022, +0x0027, 0x0027, +0x00ab, 0x00ab, +0x00bb, 0x00bb, +0x2018, 0x201f, +0x2039, 0x203a, +0x2e42, 0x2e42, +0x300c, 0x300f, +0x301d, 0x301f, +0xfe41, 0xfe44, +0xff02, 0xff02, +0xff07, 0xff07, +0xff62, 0xff63, +}; /* END of CR_Quotation_Mark */ + +/* PROPERTY: 'Radical': Binary Property */ +static const OnigCodePoint +CR_Radical[] = { 3, +0x2e80, 0x2e99, +0x2e9b, 0x2ef3, +0x2f00, 0x2fd5, +}; /* END of CR_Radical */ + +/* PROPERTY: 'Regional_Indicator': Binary Property */ +static const OnigCodePoint +CR_Regional_Indicator[] = { 1, +0x1f1e6, 0x1f1ff, +}; /* END of CR_Regional_Indicator */ + +/* PROPERTY: 'Rejang': Script */ +static const OnigCodePoint +CR_Rejang[] = { 2, +0xa930, 0xa953, +0xa95f, 0xa95f, +}; /* END of CR_Rejang */ + +/* PROPERTY: 'Runic': Script */ +static const OnigCodePoint +CR_Runic[] = { 2, +0x16a0, 0x16ea, +0x16ee, 0x16f8, +}; /* END of CR_Runic */ + +/* PROPERTY: 'S': Major Category */ +static const OnigCodePoint +CR_S[] = { 236, +0x0024, 0x0024, +0x002b, 0x002b, +0x003c, 0x003e, +0x005e, 0x005e, +0x0060, 0x0060, +0x007c, 0x007c, +0x007e, 0x007e, +0x00a2, 0x00a6, +0x00a8, 0x00a9, +0x00ac, 0x00ac, +0x00ae, 0x00b1, +0x00b4, 0x00b4, +0x00b8, 0x00b8, +0x00d7, 0x00d7, +0x00f7, 0x00f7, +0x02c2, 0x02c5, +0x02d2, 0x02df, +0x02e5, 0x02eb, +0x02ed, 0x02ed, +0x02ef, 0x02ff, +0x0375, 0x0375, +0x0384, 0x0385, +0x03f6, 0x03f6, +0x0482, 0x0482, +0x058d, 0x058f, +0x0606, 0x0608, +0x060b, 0x060b, +0x060e, 0x060f, +0x06de, 0x06de, +0x06e9, 0x06e9, +0x06fd, 0x06fe, +0x07f6, 0x07f6, +0x07fe, 0x07ff, +0x0888, 0x0888, +0x09f2, 0x09f3, +0x09fa, 0x09fb, +0x0af1, 0x0af1, +0x0b70, 0x0b70, +0x0bf3, 0x0bfa, +0x0c7f, 0x0c7f, +0x0d4f, 0x0d4f, +0x0d79, 0x0d79, +0x0e3f, 0x0e3f, +0x0f01, 0x0f03, +0x0f13, 0x0f13, +0x0f15, 0x0f17, +0x0f1a, 0x0f1f, +0x0f34, 0x0f34, +0x0f36, 0x0f36, +0x0f38, 0x0f38, +0x0fbe, 0x0fc5, +0x0fc7, 0x0fcc, +0x0fce, 0x0fcf, +0x0fd5, 0x0fd8, +0x109e, 0x109f, +0x1390, 0x1399, +0x166d, 0x166d, +0x17db, 0x17db, +0x1940, 0x1940, +0x19de, 0x19ff, +0x1b61, 0x1b6a, +0x1b74, 0x1b7c, +0x1fbd, 0x1fbd, +0x1fbf, 0x1fc1, +0x1fcd, 0x1fcf, +0x1fdd, 0x1fdf, +0x1fed, 0x1fef, +0x1ffd, 0x1ffe, +0x2044, 0x2044, +0x2052, 0x2052, +0x207a, 0x207c, +0x208a, 0x208c, +0x20a0, 0x20c0, +0x2100, 0x2101, +0x2103, 0x2106, +0x2108, 0x2109, +0x2114, 0x2114, +0x2116, 0x2118, +0x211e, 0x2123, +0x2125, 0x2125, +0x2127, 0x2127, +0x2129, 0x2129, +0x212e, 0x212e, +0x213a, 0x213b, +0x2140, 0x2144, +0x214a, 0x214d, +0x214f, 0x214f, +0x218a, 0x218b, +0x2190, 0x2307, +0x230c, 0x2328, +0x232b, 0x2429, +0x2440, 0x244a, +0x249c, 0x24e9, +0x2500, 0x2767, +0x2794, 0x27c4, +0x27c7, 0x27e5, +0x27f0, 0x2982, +0x2999, 0x29d7, +0x29dc, 0x29fb, +0x29fe, 0x2b73, +0x2b76, 0x2b95, +0x2b97, 0x2bff, +0x2ce5, 0x2cea, +0x2e50, 0x2e51, +0x2e80, 0x2e99, +0x2e9b, 0x2ef3, +0x2f00, 0x2fd5, +0x2ff0, 0x2fff, +0x3004, 0x3004, +0x3012, 0x3013, +0x3020, 0x3020, +0x3036, 0x3037, +0x303e, 0x303f, +0x309b, 0x309c, +0x3190, 0x3191, +0x3196, 0x319f, +0x31c0, 0x31e5, +0x31ef, 0x31ef, +0x3200, 0x321e, +0x322a, 0x3247, +0x3250, 0x3250, +0x3260, 0x327f, +0x328a, 0x32b0, +0x32c0, 0x33ff, +0x4dc0, 0x4dff, +0xa490, 0xa4c6, +0xa700, 0xa716, +0xa720, 0xa721, +0xa789, 0xa78a, +0xa828, 0xa82b, +0xa836, 0xa839, +0xaa77, 0xaa79, +0xab5b, 0xab5b, +0xab6a, 0xab6b, +0xfb29, 0xfb29, +0xfbb2, 0xfbc2, +0xfd40, 0xfd4f, +0xfdcf, 0xfdcf, +0xfdfc, 0xfdff, +0xfe62, 0xfe62, +0xfe64, 0xfe66, +0xfe69, 0xfe69, +0xff04, 0xff04, +0xff0b, 0xff0b, +0xff1c, 0xff1e, +0xff3e, 0xff3e, +0xff40, 0xff40, +0xff5c, 0xff5c, +0xff5e, 0xff5e, +0xffe0, 0xffe6, +0xffe8, 0xffee, +0xfffc, 0xfffd, +0x10137, 0x1013f, +0x10179, 0x10189, +0x1018c, 0x1018e, +0x10190, 0x1019c, +0x101a0, 0x101a0, +0x101d0, 0x101fc, +0x10877, 0x10878, +0x10ac8, 0x10ac8, +0x10d8e, 0x10d8f, +0x1173f, 0x1173f, +0x11fd5, 0x11ff1, +0x16b3c, 0x16b3f, +0x16b45, 0x16b45, +0x1bc9c, 0x1bc9c, +0x1cc00, 0x1ccef, +0x1cd00, 0x1ceb3, +0x1cf50, 0x1cfc3, +0x1d000, 0x1d0f5, +0x1d100, 0x1d126, +0x1d129, 0x1d164, +0x1d16a, 0x1d16c, +0x1d183, 0x1d184, +0x1d18c, 0x1d1a9, +0x1d1ae, 0x1d1ea, +0x1d200, 0x1d241, +0x1d245, 0x1d245, +0x1d300, 0x1d356, +0x1d6c1, 0x1d6c1, +0x1d6db, 0x1d6db, +0x1d6fb, 0x1d6fb, +0x1d715, 0x1d715, +0x1d735, 0x1d735, +0x1d74f, 0x1d74f, +0x1d76f, 0x1d76f, +0x1d789, 0x1d789, +0x1d7a9, 0x1d7a9, +0x1d7c3, 0x1d7c3, +0x1d800, 0x1d9ff, +0x1da37, 0x1da3a, +0x1da6d, 0x1da74, +0x1da76, 0x1da83, +0x1da85, 0x1da86, +0x1e14f, 0x1e14f, +0x1e2ff, 0x1e2ff, +0x1ecac, 0x1ecac, +0x1ecb0, 0x1ecb0, +0x1ed2e, 0x1ed2e, +0x1eef0, 0x1eef1, +0x1f000, 0x1f02b, +0x1f030, 0x1f093, +0x1f0a0, 0x1f0ae, +0x1f0b1, 0x1f0bf, +0x1f0c1, 0x1f0cf, +0x1f0d1, 0x1f0f5, +0x1f10d, 0x1f1ad, +0x1f1e6, 0x1f202, +0x1f210, 0x1f23b, +0x1f240, 0x1f248, +0x1f250, 0x1f251, +0x1f260, 0x1f265, +0x1f300, 0x1f6d7, +0x1f6dc, 0x1f6ec, +0x1f6f0, 0x1f6fc, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f800, 0x1f80b, +0x1f810, 0x1f847, +0x1f850, 0x1f859, +0x1f860, 0x1f887, +0x1f890, 0x1f8ad, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, +0x1f900, 0x1fa53, +0x1fa60, 0x1fa6d, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, +0x1fb00, 0x1fb92, +0x1fb94, 0x1fbef, +}; /* END of CR_S */ + +/* PROPERTY: 'Samaritan': Script */ +static const OnigCodePoint +CR_Samaritan[] = { 2, +0x0800, 0x082d, +0x0830, 0x083e, +}; /* END of CR_Samaritan */ + +/* PROPERTY: 'Saurashtra': Script */ +static const OnigCodePoint +CR_Saurashtra[] = { 2, +0xa880, 0xa8c5, +0xa8ce, 0xa8d9, +}; /* END of CR_Saurashtra */ + +/* PROPERTY: 'Sc': General Category */ +static const OnigCodePoint +CR_Sc[] = { 21, +0x0024, 0x0024, +0x00a2, 0x00a5, +0x058f, 0x058f, +0x060b, 0x060b, +0x07fe, 0x07ff, +0x09f2, 0x09f3, +0x09fb, 0x09fb, +0x0af1, 0x0af1, +0x0bf9, 0x0bf9, +0x0e3f, 0x0e3f, +0x17db, 0x17db, +0x20a0, 0x20c0, +0xa838, 0xa838, +0xfdfc, 0xfdfc, +0xfe69, 0xfe69, +0xff04, 0xff04, +0xffe0, 0xffe1, +0xffe5, 0xffe6, +0x11fdd, 0x11fe0, +0x1e2ff, 0x1e2ff, +0x1ecb0, 0x1ecb0, +}; /* END of CR_Sc */ + +/* PROPERTY: 'Sentence_Terminal': Binary Property */ +static const OnigCodePoint +CR_Sentence_Terminal[] = { 88, +0x0021, 0x0021, +0x002e, 0x002e, +0x003f, 0x003f, +0x0589, 0x0589, +0x061d, 0x061f, +0x06d4, 0x06d4, +0x0700, 0x0702, +0x07f9, 0x07f9, +0x0837, 0x0837, +0x0839, 0x0839, +0x083d, 0x083e, +0x0964, 0x0965, +0x104a, 0x104b, +0x1362, 0x1362, +0x1367, 0x1368, +0x166e, 0x166e, +0x1735, 0x1736, +0x17d4, 0x17d5, +0x1803, 0x1803, +0x1809, 0x1809, +0x1944, 0x1945, +0x1aa8, 0x1aab, +0x1b4e, 0x1b4f, +0x1b5a, 0x1b5b, +0x1b5e, 0x1b5f, +0x1b7d, 0x1b7f, +0x1c3b, 0x1c3c, +0x1c7e, 0x1c7f, +0x2024, 0x2024, +0x203c, 0x203d, +0x2047, 0x2049, +0x2cf9, 0x2cfb, +0x2e2e, 0x2e2e, +0x2e3c, 0x2e3c, +0x2e53, 0x2e54, +0x3002, 0x3002, +0xa4ff, 0xa4ff, +0xa60e, 0xa60f, +0xa6f3, 0xa6f3, +0xa6f7, 0xa6f7, +0xa876, 0xa877, +0xa8ce, 0xa8cf, +0xa92f, 0xa92f, +0xa9c8, 0xa9c9, +0xaa5d, 0xaa5f, +0xaaf0, 0xaaf1, +0xabeb, 0xabeb, +0xfe12, 0xfe12, +0xfe15, 0xfe16, +0xfe52, 0xfe52, +0xfe56, 0xfe57, +0xff01, 0xff01, +0xff0e, 0xff0e, +0xff1f, 0xff1f, +0xff61, 0xff61, +0x10a56, 0x10a57, +0x10f55, 0x10f59, +0x10f86, 0x10f89, +0x11047, 0x11048, +0x110be, 0x110c1, +0x11141, 0x11143, +0x111c5, 0x111c6, +0x111cd, 0x111cd, +0x111de, 0x111df, +0x11238, 0x11239, +0x1123b, 0x1123c, +0x112a9, 0x112a9, +0x113d4, 0x113d5, +0x1144b, 0x1144c, +0x115c2, 0x115c3, +0x115c9, 0x115d7, +0x11641, 0x11642, +0x1173c, 0x1173e, +0x11944, 0x11944, +0x11946, 0x11946, +0x11a42, 0x11a43, +0x11a9b, 0x11a9c, +0x11c41, 0x11c42, +0x11ef7, 0x11ef8, +0x11f43, 0x11f44, +0x16a6e, 0x16a6f, +0x16af5, 0x16af5, +0x16b37, 0x16b38, +0x16b44, 0x16b44, +0x16d6e, 0x16d6f, +0x16e98, 0x16e98, +0x1bc9f, 0x1bc9f, +0x1da88, 0x1da88, +}; /* END of CR_Sentence_Terminal */ + +/* PROPERTY: 'Sharada': Script */ +static const OnigCodePoint +CR_Sharada[] = { 1, +0x11180, 0x111df, +}; /* END of CR_Sharada */ + +/* PROPERTY: 'Shavian': Script */ +static const OnigCodePoint +CR_Shavian[] = { 1, +0x10450, 0x1047f, +}; /* END of CR_Shavian */ + +/* PROPERTY: 'Siddham': Script */ +static const OnigCodePoint +CR_Siddham[] = { 2, +0x11580, 0x115b5, +0x115b8, 0x115dd, +}; /* END of CR_Siddham */ + +/* PROPERTY: 'SignWriting': Script */ +static const OnigCodePoint +CR_SignWriting[] = { 3, +0x1d800, 0x1da8b, +0x1da9b, 0x1da9f, +0x1daa1, 0x1daaf, +}; /* END of CR_SignWriting */ + +/* PROPERTY: 'Sinhala': Script */ +static const OnigCodePoint +CR_Sinhala[] = { 13, +0x0d81, 0x0d83, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0dca, 0x0dca, +0x0dcf, 0x0dd4, +0x0dd6, 0x0dd6, +0x0dd8, 0x0ddf, +0x0de6, 0x0def, +0x0df2, 0x0df4, +0x111e1, 0x111f4, +}; /* END of CR_Sinhala */ + +/* PROPERTY: 'Sk': General Category */ +static const OnigCodePoint +CR_Sk[] = { 31, +0x005e, 0x005e, +0x0060, 0x0060, +0x00a8, 0x00a8, +0x00af, 0x00af, +0x00b4, 0x00b4, +0x00b8, 0x00b8, +0x02c2, 0x02c5, +0x02d2, 0x02df, +0x02e5, 0x02eb, +0x02ed, 0x02ed, +0x02ef, 0x02ff, +0x0375, 0x0375, +0x0384, 0x0385, +0x0888, 0x0888, +0x1fbd, 0x1fbd, +0x1fbf, 0x1fc1, +0x1fcd, 0x1fcf, +0x1fdd, 0x1fdf, +0x1fed, 0x1fef, +0x1ffd, 0x1ffe, +0x309b, 0x309c, +0xa700, 0xa716, +0xa720, 0xa721, +0xa789, 0xa78a, +0xab5b, 0xab5b, +0xab6a, 0xab6b, +0xfbb2, 0xfbc2, +0xff3e, 0xff3e, +0xff40, 0xff40, +0xffe3, 0xffe3, +0x1f3fb, 0x1f3ff, +}; /* END of CR_Sk */ + +/* PROPERTY: 'Sm': General Category */ +static const OnigCodePoint +CR_Sm[] = { 65, +0x002b, 0x002b, +0x003c, 0x003e, +0x007c, 0x007c, +0x007e, 0x007e, +0x00ac, 0x00ac, +0x00b1, 0x00b1, +0x00d7, 0x00d7, +0x00f7, 0x00f7, +0x03f6, 0x03f6, +0x0606, 0x0608, +0x2044, 0x2044, +0x2052, 0x2052, +0x207a, 0x207c, +0x208a, 0x208c, +0x2118, 0x2118, +0x2140, 0x2144, +0x214b, 0x214b, +0x2190, 0x2194, +0x219a, 0x219b, +0x21a0, 0x21a0, +0x21a3, 0x21a3, +0x21a6, 0x21a6, +0x21ae, 0x21ae, +0x21ce, 0x21cf, +0x21d2, 0x21d2, +0x21d4, 0x21d4, +0x21f4, 0x22ff, +0x2320, 0x2321, +0x237c, 0x237c, +0x239b, 0x23b3, +0x23dc, 0x23e1, +0x25b7, 0x25b7, +0x25c1, 0x25c1, +0x25f8, 0x25ff, +0x266f, 0x266f, +0x27c0, 0x27c4, +0x27c7, 0x27e5, +0x27f0, 0x27ff, +0x2900, 0x2982, +0x2999, 0x29d7, +0x29dc, 0x29fb, +0x29fe, 0x2aff, +0x2b30, 0x2b44, +0x2b47, 0x2b4c, +0xfb29, 0xfb29, +0xfe62, 0xfe62, +0xfe64, 0xfe66, +0xff0b, 0xff0b, +0xff1c, 0xff1e, +0xff5c, 0xff5c, +0xff5e, 0xff5e, +0xffe2, 0xffe2, +0xffe9, 0xffec, +0x10d8e, 0x10d8f, +0x1d6c1, 0x1d6c1, +0x1d6db, 0x1d6db, +0x1d6fb, 0x1d6fb, +0x1d715, 0x1d715, +0x1d735, 0x1d735, +0x1d74f, 0x1d74f, +0x1d76f, 0x1d76f, +0x1d789, 0x1d789, +0x1d7a9, 0x1d7a9, +0x1d7c3, 0x1d7c3, +0x1eef0, 0x1eef1, +}; /* END of CR_Sm */ + +/* PROPERTY: 'So': General Category */ +static const OnigCodePoint +CR_So[] = { 187, +0x00a6, 0x00a6, +0x00a9, 0x00a9, +0x00ae, 0x00ae, +0x00b0, 0x00b0, +0x0482, 0x0482, +0x058d, 0x058e, +0x060e, 0x060f, +0x06de, 0x06de, +0x06e9, 0x06e9, +0x06fd, 0x06fe, +0x07f6, 0x07f6, +0x09fa, 0x09fa, +0x0b70, 0x0b70, +0x0bf3, 0x0bf8, +0x0bfa, 0x0bfa, +0x0c7f, 0x0c7f, +0x0d4f, 0x0d4f, +0x0d79, 0x0d79, +0x0f01, 0x0f03, +0x0f13, 0x0f13, +0x0f15, 0x0f17, +0x0f1a, 0x0f1f, +0x0f34, 0x0f34, +0x0f36, 0x0f36, +0x0f38, 0x0f38, +0x0fbe, 0x0fc5, +0x0fc7, 0x0fcc, +0x0fce, 0x0fcf, +0x0fd5, 0x0fd8, +0x109e, 0x109f, +0x1390, 0x1399, +0x166d, 0x166d, +0x1940, 0x1940, +0x19de, 0x19ff, +0x1b61, 0x1b6a, +0x1b74, 0x1b7c, +0x2100, 0x2101, +0x2103, 0x2106, +0x2108, 0x2109, +0x2114, 0x2114, +0x2116, 0x2117, +0x211e, 0x2123, +0x2125, 0x2125, +0x2127, 0x2127, +0x2129, 0x2129, +0x212e, 0x212e, +0x213a, 0x213b, +0x214a, 0x214a, +0x214c, 0x214d, +0x214f, 0x214f, +0x218a, 0x218b, +0x2195, 0x2199, +0x219c, 0x219f, +0x21a1, 0x21a2, +0x21a4, 0x21a5, +0x21a7, 0x21ad, +0x21af, 0x21cd, +0x21d0, 0x21d1, +0x21d3, 0x21d3, +0x21d5, 0x21f3, +0x2300, 0x2307, +0x230c, 0x231f, +0x2322, 0x2328, +0x232b, 0x237b, +0x237d, 0x239a, +0x23b4, 0x23db, +0x23e2, 0x2429, +0x2440, 0x244a, +0x249c, 0x24e9, +0x2500, 0x25b6, +0x25b8, 0x25c0, +0x25c2, 0x25f7, +0x2600, 0x266e, +0x2670, 0x2767, +0x2794, 0x27bf, +0x2800, 0x28ff, +0x2b00, 0x2b2f, +0x2b45, 0x2b46, +0x2b4d, 0x2b73, +0x2b76, 0x2b95, +0x2b97, 0x2bff, +0x2ce5, 0x2cea, +0x2e50, 0x2e51, +0x2e80, 0x2e99, +0x2e9b, 0x2ef3, +0x2f00, 0x2fd5, +0x2ff0, 0x2fff, +0x3004, 0x3004, +0x3012, 0x3013, +0x3020, 0x3020, +0x3036, 0x3037, +0x303e, 0x303f, +0x3190, 0x3191, +0x3196, 0x319f, +0x31c0, 0x31e5, +0x31ef, 0x31ef, +0x3200, 0x321e, +0x322a, 0x3247, +0x3250, 0x3250, +0x3260, 0x327f, +0x328a, 0x32b0, +0x32c0, 0x33ff, +0x4dc0, 0x4dff, +0xa490, 0xa4c6, +0xa828, 0xa82b, +0xa836, 0xa837, +0xa839, 0xa839, +0xaa77, 0xaa79, +0xfd40, 0xfd4f, +0xfdcf, 0xfdcf, +0xfdfd, 0xfdff, +0xffe4, 0xffe4, +0xffe8, 0xffe8, +0xffed, 0xffee, +0xfffc, 0xfffd, +0x10137, 0x1013f, +0x10179, 0x10189, +0x1018c, 0x1018e, +0x10190, 0x1019c, +0x101a0, 0x101a0, +0x101d0, 0x101fc, +0x10877, 0x10878, +0x10ac8, 0x10ac8, +0x1173f, 0x1173f, +0x11fd5, 0x11fdc, +0x11fe1, 0x11ff1, +0x16b3c, 0x16b3f, +0x16b45, 0x16b45, +0x1bc9c, 0x1bc9c, +0x1cc00, 0x1ccef, +0x1cd00, 0x1ceb3, +0x1cf50, 0x1cfc3, +0x1d000, 0x1d0f5, +0x1d100, 0x1d126, +0x1d129, 0x1d164, +0x1d16a, 0x1d16c, +0x1d183, 0x1d184, +0x1d18c, 0x1d1a9, +0x1d1ae, 0x1d1ea, +0x1d200, 0x1d241, +0x1d245, 0x1d245, +0x1d300, 0x1d356, +0x1d800, 0x1d9ff, +0x1da37, 0x1da3a, +0x1da6d, 0x1da74, +0x1da76, 0x1da83, +0x1da85, 0x1da86, +0x1e14f, 0x1e14f, +0x1ecac, 0x1ecac, +0x1ed2e, 0x1ed2e, +0x1f000, 0x1f02b, +0x1f030, 0x1f093, +0x1f0a0, 0x1f0ae, +0x1f0b1, 0x1f0bf, +0x1f0c1, 0x1f0cf, +0x1f0d1, 0x1f0f5, +0x1f10d, 0x1f1ad, +0x1f1e6, 0x1f202, +0x1f210, 0x1f23b, +0x1f240, 0x1f248, +0x1f250, 0x1f251, +0x1f260, 0x1f265, +0x1f300, 0x1f3fa, +0x1f400, 0x1f6d7, +0x1f6dc, 0x1f6ec, +0x1f6f0, 0x1f6fc, +0x1f700, 0x1f776, +0x1f77b, 0x1f7d9, +0x1f7e0, 0x1f7eb, +0x1f7f0, 0x1f7f0, +0x1f800, 0x1f80b, +0x1f810, 0x1f847, +0x1f850, 0x1f859, +0x1f860, 0x1f887, +0x1f890, 0x1f8ad, +0x1f8b0, 0x1f8bb, +0x1f8c0, 0x1f8c1, +0x1f900, 0x1fa53, +0x1fa60, 0x1fa6d, +0x1fa70, 0x1fa7c, +0x1fa80, 0x1fa89, +0x1fa8f, 0x1fac6, +0x1face, 0x1fadc, +0x1fadf, 0x1fae9, +0x1faf0, 0x1faf8, +0x1fb00, 0x1fb92, +0x1fb94, 0x1fbef, +}; /* END of CR_So */ + +/* PROPERTY: 'Soft_Dotted': Binary Property */ +static const OnigCodePoint +CR_Soft_Dotted[] = { 34, +0x0069, 0x006a, +0x012f, 0x012f, +0x0249, 0x0249, +0x0268, 0x0268, +0x029d, 0x029d, +0x02b2, 0x02b2, +0x03f3, 0x03f3, +0x0456, 0x0456, +0x0458, 0x0458, +0x1d62, 0x1d62, +0x1d96, 0x1d96, +0x1da4, 0x1da4, +0x1da8, 0x1da8, +0x1e2d, 0x1e2d, +0x1ecb, 0x1ecb, +0x2071, 0x2071, +0x2148, 0x2149, +0x2c7c, 0x2c7c, +0x1d422, 0x1d423, +0x1d456, 0x1d457, +0x1d48a, 0x1d48b, +0x1d4be, 0x1d4bf, +0x1d4f2, 0x1d4f3, +0x1d526, 0x1d527, +0x1d55a, 0x1d55b, +0x1d58e, 0x1d58f, +0x1d5c2, 0x1d5c3, +0x1d5f6, 0x1d5f7, +0x1d62a, 0x1d62b, +0x1d65e, 0x1d65f, +0x1d692, 0x1d693, +0x1df1a, 0x1df1a, +0x1e04c, 0x1e04d, +0x1e068, 0x1e068, +}; /* END of CR_Soft_Dotted */ + +/* PROPERTY: 'Sogdian': Script */ +static const OnigCodePoint +CR_Sogdian[] = { 1, +0x10f30, 0x10f59, +}; /* END of CR_Sogdian */ + +/* PROPERTY: 'Sora_Sompeng': Script */ +static const OnigCodePoint +CR_Sora_Sompeng[] = { 2, +0x110d0, 0x110e8, +0x110f0, 0x110f9, +}; /* END of CR_Sora_Sompeng */ + +/* PROPERTY: 'Soyombo': Script */ +static const OnigCodePoint +CR_Soyombo[] = { 1, +0x11a50, 0x11aa2, +}; /* END of CR_Soyombo */ + +/* PROPERTY: 'Sundanese': Script */ +static const OnigCodePoint +CR_Sundanese[] = { 2, +0x1b80, 0x1bbf, +0x1cc0, 0x1cc7, +}; /* END of CR_Sundanese */ + +/* PROPERTY: 'Sunuwar': Script */ +static const OnigCodePoint +CR_Sunuwar[] = { 2, +0x11bc0, 0x11be1, +0x11bf0, 0x11bf9, +}; /* END of CR_Sunuwar */ + +/* PROPERTY: 'Syloti_Nagri': Script */ +static const OnigCodePoint +CR_Syloti_Nagri[] = { 1, +0xa800, 0xa82c, +}; /* END of CR_Syloti_Nagri */ + +/* PROPERTY: 'Syriac': Script */ +static const OnigCodePoint +CR_Syriac[] = { 4, +0x0700, 0x070d, +0x070f, 0x074a, +0x074d, 0x074f, +0x0860, 0x086a, +}; /* END of CR_Syriac */ + +/* PROPERTY: 'Tagalog': Script */ +static const OnigCodePoint +CR_Tagalog[] = { 2, +0x1700, 0x1715, +0x171f, 0x171f, +}; /* END of CR_Tagalog */ + +/* PROPERTY: 'Tagbanwa': Script */ +static const OnigCodePoint +CR_Tagbanwa[] = { 3, +0x1760, 0x176c, +0x176e, 0x1770, +0x1772, 0x1773, +}; /* END of CR_Tagbanwa */ + +/* PROPERTY: 'Tai_Le': Script */ +static const OnigCodePoint +CR_Tai_Le[] = { 2, +0x1950, 0x196d, +0x1970, 0x1974, +}; /* END of CR_Tai_Le */ + +/* PROPERTY: 'Tai_Tham': Script */ +static const OnigCodePoint +CR_Tai_Tham[] = { 5, +0x1a20, 0x1a5e, +0x1a60, 0x1a7c, +0x1a7f, 0x1a89, +0x1a90, 0x1a99, +0x1aa0, 0x1aad, +}; /* END of CR_Tai_Tham */ + +/* PROPERTY: 'Tai_Viet': Script */ +static const OnigCodePoint +CR_Tai_Viet[] = { 2, +0xaa80, 0xaac2, +0xaadb, 0xaadf, +}; /* END of CR_Tai_Viet */ + +/* PROPERTY: 'Takri': Script */ +static const OnigCodePoint +CR_Takri[] = { 2, +0x11680, 0x116b9, +0x116c0, 0x116c9, +}; /* END of CR_Takri */ + +/* PROPERTY: 'Tamil': Script */ +static const OnigCodePoint +CR_Tamil[] = { 18, +0x0b82, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bbe, 0x0bc2, +0x0bc6, 0x0bc8, +0x0bca, 0x0bcd, +0x0bd0, 0x0bd0, +0x0bd7, 0x0bd7, +0x0be6, 0x0bfa, +0x11fc0, 0x11ff1, +0x11fff, 0x11fff, +}; /* END of CR_Tamil */ + +/* PROPERTY: 'Tangsa': Script */ +static const OnigCodePoint +CR_Tangsa[] = { 2, +0x16a70, 0x16abe, +0x16ac0, 0x16ac9, +}; /* END of CR_Tangsa */ + +/* PROPERTY: 'Tangut': Script */ +static const OnigCodePoint +CR_Tangut[] = { 4, +0x16fe0, 0x16fe0, +0x17000, 0x187f7, +0x18800, 0x18aff, +0x18d00, 0x18d08, +}; /* END of CR_Tangut */ + +/* PROPERTY: 'Telugu': Script */ +static const OnigCodePoint +CR_Telugu[] = { 13, +0x0c00, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3c, 0x0c44, +0x0c46, 0x0c48, +0x0c4a, 0x0c4d, +0x0c55, 0x0c56, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c63, +0x0c66, 0x0c6f, +0x0c77, 0x0c7f, +}; /* END of CR_Telugu */ + +/* PROPERTY: 'Terminal_Punctuation': Binary Property */ +static const OnigCodePoint +CR_Terminal_Punctuation[] = { 116, +0x0021, 0x0021, +0x002c, 0x002c, +0x002e, 0x002e, +0x003a, 0x003b, +0x003f, 0x003f, +0x037e, 0x037e, +0x0387, 0x0387, +0x0589, 0x0589, +0x05c3, 0x05c3, +0x060c, 0x060c, +0x061b, 0x061b, +0x061d, 0x061f, +0x06d4, 0x06d4, +0x0700, 0x070a, +0x070c, 0x070c, +0x07f8, 0x07f9, +0x0830, 0x0835, +0x0837, 0x083e, +0x085e, 0x085e, +0x0964, 0x0965, +0x0e5a, 0x0e5b, +0x0f08, 0x0f08, +0x0f0d, 0x0f12, +0x104a, 0x104b, +0x1361, 0x1368, +0x166e, 0x166e, +0x16eb, 0x16ed, +0x1735, 0x1736, +0x17d4, 0x17d6, +0x17da, 0x17da, +0x1802, 0x1805, +0x1808, 0x1809, +0x1944, 0x1945, +0x1aa8, 0x1aab, +0x1b4e, 0x1b4f, +0x1b5a, 0x1b5b, +0x1b5d, 0x1b5f, +0x1b7d, 0x1b7f, +0x1c3b, 0x1c3f, +0x1c7e, 0x1c7f, +0x2024, 0x2024, +0x203c, 0x203d, +0x2047, 0x2049, +0x2cf9, 0x2cfb, +0x2e2e, 0x2e2e, +0x2e3c, 0x2e3c, +0x2e41, 0x2e41, +0x2e4c, 0x2e4c, +0x2e4e, 0x2e4f, +0x2e53, 0x2e54, +0x3001, 0x3002, +0xa4fe, 0xa4ff, +0xa60d, 0xa60f, +0xa6f3, 0xa6f7, +0xa876, 0xa877, +0xa8ce, 0xa8cf, +0xa92f, 0xa92f, +0xa9c7, 0xa9c9, +0xaa5d, 0xaa5f, +0xaadf, 0xaadf, +0xaaf0, 0xaaf1, +0xabeb, 0xabeb, +0xfe12, 0xfe12, +0xfe15, 0xfe16, +0xfe50, 0xfe52, +0xfe54, 0xfe57, +0xff01, 0xff01, +0xff0c, 0xff0c, +0xff0e, 0xff0e, +0xff1a, 0xff1b, +0xff1f, 0xff1f, +0xff61, 0xff61, +0xff64, 0xff64, +0x1039f, 0x1039f, +0x103d0, 0x103d0, +0x10857, 0x10857, +0x1091f, 0x1091f, +0x10a56, 0x10a57, +0x10af0, 0x10af5, +0x10b3a, 0x10b3f, +0x10b99, 0x10b9c, +0x10f55, 0x10f59, +0x10f86, 0x10f89, +0x11047, 0x1104d, +0x110be, 0x110c1, +0x11141, 0x11143, +0x111c5, 0x111c6, +0x111cd, 0x111cd, +0x111de, 0x111df, +0x11238, 0x1123c, +0x112a9, 0x112a9, +0x113d4, 0x113d5, +0x1144b, 0x1144d, +0x1145a, 0x1145b, +0x115c2, 0x115c5, +0x115c9, 0x115d7, +0x11641, 0x11642, +0x1173c, 0x1173e, +0x11944, 0x11944, +0x11946, 0x11946, +0x11a42, 0x11a43, +0x11a9b, 0x11a9c, +0x11aa1, 0x11aa2, +0x11c41, 0x11c43, +0x11c71, 0x11c71, +0x11ef7, 0x11ef8, +0x11f43, 0x11f44, +0x12470, 0x12474, +0x16a6e, 0x16a6f, +0x16af5, 0x16af5, +0x16b37, 0x16b39, +0x16b44, 0x16b44, +0x16d6e, 0x16d6f, +0x16e97, 0x16e98, +0x1bc9f, 0x1bc9f, +0x1da87, 0x1da8a, +}; /* END of CR_Terminal_Punctuation */ + +/* PROPERTY: 'Thaana': Script */ +static const OnigCodePoint +CR_Thaana[] = { 1, +0x0780, 0x07b1, +}; /* END of CR_Thaana */ + +/* PROPERTY: 'Thai': Script */ +static const OnigCodePoint +CR_Thai[] = { 2, +0x0e01, 0x0e3a, +0x0e40, 0x0e5b, +}; /* END of CR_Thai */ + +/* PROPERTY: 'Tibetan': Script */ +static const OnigCodePoint +CR_Tibetan[] = { 7, +0x0f00, 0x0f47, +0x0f49, 0x0f6c, +0x0f71, 0x0f97, +0x0f99, 0x0fbc, +0x0fbe, 0x0fcc, +0x0fce, 0x0fd4, +0x0fd9, 0x0fda, +}; /* END of CR_Tibetan */ + +/* PROPERTY: 'Tifinagh': Script */ +static const OnigCodePoint +CR_Tifinagh[] = { 3, +0x2d30, 0x2d67, +0x2d6f, 0x2d70, +0x2d7f, 0x2d7f, +}; /* END of CR_Tifinagh */ + +/* PROPERTY: 'Tirhuta': Script */ +static const OnigCodePoint +CR_Tirhuta[] = { 2, +0x11480, 0x114c7, +0x114d0, 0x114d9, +}; /* END of CR_Tirhuta */ + +/* PROPERTY: 'Todhri': Script */ +static const OnigCodePoint +CR_Todhri[] = { 1, +0x105c0, 0x105f3, +}; /* END of CR_Todhri */ + +/* PROPERTY: 'Toto': Script */ +static const OnigCodePoint +CR_Toto[] = { 1, +0x1e290, 0x1e2ae, +}; /* END of CR_Toto */ + +/* PROPERTY: 'Tulu_Tigalari': Script */ +static const OnigCodePoint +CR_Tulu_Tigalari[] = { 11, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d5, +0x113d7, 0x113d8, +0x113e1, 0x113e2, +}; /* END of CR_Tulu_Tigalari */ + +/* PROPERTY: 'Ugaritic': Script */ +static const OnigCodePoint +CR_Ugaritic[] = { 2, +0x10380, 0x1039d, +0x1039f, 0x1039f, +}; /* END of CR_Ugaritic */ + +/* PROPERTY: 'Unified_Ideograph': Binary Property */ +static const OnigCodePoint +CR_Unified_Ideograph[] = { 17, +0x3400, 0x4dbf, +0x4e00, 0x9fff, +0xfa0e, 0xfa0f, +0xfa11, 0xfa11, +0xfa13, 0xfa14, +0xfa1f, 0xfa1f, +0xfa21, 0xfa21, +0xfa23, 0xfa24, +0xfa27, 0xfa29, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x30000, 0x3134a, +0x31350, 0x323af, +}; /* END of CR_Unified_Ideograph */ + +/* PROPERTY: 'Unknown': Script */ +static const OnigCodePoint +CR_Unknown[] = { 729, +0x0378, 0x0379, +0x0380, 0x0383, +0x038b, 0x038b, +0x038d, 0x038d, +0x03a2, 0x03a2, +0x0530, 0x0530, +0x0557, 0x0558, +0x058b, 0x058c, +0x0590, 0x0590, +0x05c8, 0x05cf, +0x05eb, 0x05ee, +0x05f5, 0x05ff, +0x070e, 0x070e, +0x074b, 0x074c, +0x07b2, 0x07bf, +0x07fb, 0x07fc, +0x082e, 0x082f, +0x083f, 0x083f, +0x085c, 0x085d, +0x085f, 0x085f, +0x086b, 0x086f, +0x088f, 0x088f, +0x0892, 0x0896, +0x0984, 0x0984, +0x098d, 0x098e, +0x0991, 0x0992, +0x09a9, 0x09a9, +0x09b1, 0x09b1, +0x09b3, 0x09b5, +0x09ba, 0x09bb, +0x09c5, 0x09c6, +0x09c9, 0x09ca, +0x09cf, 0x09d6, +0x09d8, 0x09db, +0x09de, 0x09de, +0x09e4, 0x09e5, +0x09ff, 0x0a00, +0x0a04, 0x0a04, +0x0a0b, 0x0a0e, +0x0a11, 0x0a12, +0x0a29, 0x0a29, +0x0a31, 0x0a31, +0x0a34, 0x0a34, +0x0a37, 0x0a37, +0x0a3a, 0x0a3b, +0x0a3d, 0x0a3d, +0x0a43, 0x0a46, +0x0a49, 0x0a4a, +0x0a4e, 0x0a50, +0x0a52, 0x0a58, +0x0a5d, 0x0a5d, +0x0a5f, 0x0a65, +0x0a77, 0x0a80, +0x0a84, 0x0a84, +0x0a8e, 0x0a8e, +0x0a92, 0x0a92, +0x0aa9, 0x0aa9, +0x0ab1, 0x0ab1, +0x0ab4, 0x0ab4, +0x0aba, 0x0abb, +0x0ac6, 0x0ac6, +0x0aca, 0x0aca, +0x0ace, 0x0acf, +0x0ad1, 0x0adf, +0x0ae4, 0x0ae5, +0x0af2, 0x0af8, +0x0b00, 0x0b00, +0x0b04, 0x0b04, +0x0b0d, 0x0b0e, +0x0b11, 0x0b12, +0x0b29, 0x0b29, +0x0b31, 0x0b31, +0x0b34, 0x0b34, +0x0b3a, 0x0b3b, +0x0b45, 0x0b46, +0x0b49, 0x0b4a, +0x0b4e, 0x0b54, +0x0b58, 0x0b5b, +0x0b5e, 0x0b5e, +0x0b64, 0x0b65, +0x0b78, 0x0b81, +0x0b84, 0x0b84, +0x0b8b, 0x0b8d, +0x0b91, 0x0b91, +0x0b96, 0x0b98, +0x0b9b, 0x0b9b, +0x0b9d, 0x0b9d, +0x0ba0, 0x0ba2, +0x0ba5, 0x0ba7, +0x0bab, 0x0bad, +0x0bba, 0x0bbd, +0x0bc3, 0x0bc5, +0x0bc9, 0x0bc9, +0x0bce, 0x0bcf, +0x0bd1, 0x0bd6, +0x0bd8, 0x0be5, +0x0bfb, 0x0bff, +0x0c0d, 0x0c0d, +0x0c11, 0x0c11, +0x0c29, 0x0c29, +0x0c3a, 0x0c3b, +0x0c45, 0x0c45, +0x0c49, 0x0c49, +0x0c4e, 0x0c54, +0x0c57, 0x0c57, +0x0c5b, 0x0c5c, +0x0c5e, 0x0c5f, +0x0c64, 0x0c65, +0x0c70, 0x0c76, +0x0c8d, 0x0c8d, +0x0c91, 0x0c91, +0x0ca9, 0x0ca9, +0x0cb4, 0x0cb4, +0x0cba, 0x0cbb, +0x0cc5, 0x0cc5, +0x0cc9, 0x0cc9, +0x0cce, 0x0cd4, +0x0cd7, 0x0cdc, +0x0cdf, 0x0cdf, +0x0ce4, 0x0ce5, +0x0cf0, 0x0cf0, +0x0cf4, 0x0cff, +0x0d0d, 0x0d0d, +0x0d11, 0x0d11, +0x0d45, 0x0d45, +0x0d49, 0x0d49, +0x0d50, 0x0d53, +0x0d64, 0x0d65, +0x0d80, 0x0d80, +0x0d84, 0x0d84, +0x0d97, 0x0d99, +0x0db2, 0x0db2, +0x0dbc, 0x0dbc, +0x0dbe, 0x0dbf, +0x0dc7, 0x0dc9, +0x0dcb, 0x0dce, +0x0dd5, 0x0dd5, +0x0dd7, 0x0dd7, +0x0de0, 0x0de5, +0x0df0, 0x0df1, +0x0df5, 0x0e00, +0x0e3b, 0x0e3e, +0x0e5c, 0x0e80, +0x0e83, 0x0e83, +0x0e85, 0x0e85, +0x0e8b, 0x0e8b, +0x0ea4, 0x0ea4, +0x0ea6, 0x0ea6, +0x0ebe, 0x0ebf, +0x0ec5, 0x0ec5, +0x0ec7, 0x0ec7, +0x0ecf, 0x0ecf, +0x0eda, 0x0edb, +0x0ee0, 0x0eff, +0x0f48, 0x0f48, +0x0f6d, 0x0f70, +0x0f98, 0x0f98, +0x0fbd, 0x0fbd, +0x0fcd, 0x0fcd, +0x0fdb, 0x0fff, +0x10c6, 0x10c6, +0x10c8, 0x10cc, +0x10ce, 0x10cf, +0x1249, 0x1249, +0x124e, 0x124f, +0x1257, 0x1257, +0x1259, 0x1259, +0x125e, 0x125f, +0x1289, 0x1289, +0x128e, 0x128f, +0x12b1, 0x12b1, +0x12b6, 0x12b7, +0x12bf, 0x12bf, +0x12c1, 0x12c1, +0x12c6, 0x12c7, +0x12d7, 0x12d7, +0x1311, 0x1311, +0x1316, 0x1317, +0x135b, 0x135c, +0x137d, 0x137f, +0x139a, 0x139f, +0x13f6, 0x13f7, +0x13fe, 0x13ff, +0x169d, 0x169f, +0x16f9, 0x16ff, +0x1716, 0x171e, +0x1737, 0x173f, +0x1754, 0x175f, +0x176d, 0x176d, +0x1771, 0x1771, +0x1774, 0x177f, +0x17de, 0x17df, +0x17ea, 0x17ef, +0x17fa, 0x17ff, +0x181a, 0x181f, +0x1879, 0x187f, +0x18ab, 0x18af, +0x18f6, 0x18ff, +0x191f, 0x191f, +0x192c, 0x192f, +0x193c, 0x193f, +0x1941, 0x1943, +0x196e, 0x196f, +0x1975, 0x197f, +0x19ac, 0x19af, +0x19ca, 0x19cf, +0x19db, 0x19dd, +0x1a1c, 0x1a1d, +0x1a5f, 0x1a5f, +0x1a7d, 0x1a7e, +0x1a8a, 0x1a8f, +0x1a9a, 0x1a9f, +0x1aae, 0x1aaf, +0x1acf, 0x1aff, +0x1b4d, 0x1b4d, +0x1bf4, 0x1bfb, +0x1c38, 0x1c3a, +0x1c4a, 0x1c4c, +0x1c8b, 0x1c8f, +0x1cbb, 0x1cbc, +0x1cc8, 0x1ccf, +0x1cfb, 0x1cff, +0x1f16, 0x1f17, +0x1f1e, 0x1f1f, +0x1f46, 0x1f47, +0x1f4e, 0x1f4f, +0x1f58, 0x1f58, +0x1f5a, 0x1f5a, +0x1f5c, 0x1f5c, +0x1f5e, 0x1f5e, +0x1f7e, 0x1f7f, +0x1fb5, 0x1fb5, +0x1fc5, 0x1fc5, +0x1fd4, 0x1fd5, +0x1fdc, 0x1fdc, +0x1ff0, 0x1ff1, +0x1ff5, 0x1ff5, +0x1fff, 0x1fff, +0x2065, 0x2065, +0x2072, 0x2073, +0x208f, 0x208f, +0x209d, 0x209f, +0x20c1, 0x20cf, +0x20f1, 0x20ff, +0x218c, 0x218f, +0x242a, 0x243f, +0x244b, 0x245f, +0x2b74, 0x2b75, +0x2b96, 0x2b96, +0x2cf4, 0x2cf8, +0x2d26, 0x2d26, +0x2d28, 0x2d2c, +0x2d2e, 0x2d2f, +0x2d68, 0x2d6e, +0x2d71, 0x2d7e, +0x2d97, 0x2d9f, +0x2da7, 0x2da7, +0x2daf, 0x2daf, +0x2db7, 0x2db7, +0x2dbf, 0x2dbf, +0x2dc7, 0x2dc7, +0x2dcf, 0x2dcf, +0x2dd7, 0x2dd7, +0x2ddf, 0x2ddf, +0x2e5e, 0x2e7f, +0x2e9a, 0x2e9a, +0x2ef4, 0x2eff, +0x2fd6, 0x2fef, +0x3040, 0x3040, +0x3097, 0x3098, +0x3100, 0x3104, +0x3130, 0x3130, +0x318f, 0x318f, +0x31e6, 0x31ee, +0x321f, 0x321f, +0xa48d, 0xa48f, +0xa4c7, 0xa4cf, +0xa62c, 0xa63f, +0xa6f8, 0xa6ff, +0xa7ce, 0xa7cf, +0xa7d2, 0xa7d2, +0xa7d4, 0xa7d4, +0xa7dd, 0xa7f1, +0xa82d, 0xa82f, +0xa83a, 0xa83f, +0xa878, 0xa87f, +0xa8c6, 0xa8cd, +0xa8da, 0xa8df, +0xa954, 0xa95e, +0xa97d, 0xa97f, +0xa9ce, 0xa9ce, +0xa9da, 0xa9dd, +0xa9ff, 0xa9ff, +0xaa37, 0xaa3f, +0xaa4e, 0xaa4f, +0xaa5a, 0xaa5b, +0xaac3, 0xaada, +0xaaf7, 0xab00, +0xab07, 0xab08, +0xab0f, 0xab10, +0xab17, 0xab1f, +0xab27, 0xab27, +0xab2f, 0xab2f, +0xab6c, 0xab6f, +0xabee, 0xabef, +0xabfa, 0xabff, +0xd7a4, 0xd7af, +0xd7c7, 0xd7ca, +0xd7fc, 0xf8ff, +0xfa6e, 0xfa6f, +0xfada, 0xfaff, +0xfb07, 0xfb12, +0xfb18, 0xfb1c, +0xfb37, 0xfb37, +0xfb3d, 0xfb3d, +0xfb3f, 0xfb3f, +0xfb42, 0xfb42, +0xfb45, 0xfb45, +0xfbc3, 0xfbd2, +0xfd90, 0xfd91, +0xfdc8, 0xfdce, +0xfdd0, 0xfdef, +0xfe1a, 0xfe1f, +0xfe53, 0xfe53, +0xfe67, 0xfe67, +0xfe6c, 0xfe6f, +0xfe75, 0xfe75, +0xfefd, 0xfefe, +0xff00, 0xff00, +0xffbf, 0xffc1, +0xffc8, 0xffc9, +0xffd0, 0xffd1, +0xffd8, 0xffd9, +0xffdd, 0xffdf, +0xffe7, 0xffe7, +0xffef, 0xfff8, +0xfffe, 0xffff, +0x1000c, 0x1000c, +0x10027, 0x10027, +0x1003b, 0x1003b, +0x1003e, 0x1003e, +0x1004e, 0x1004f, +0x1005e, 0x1007f, +0x100fb, 0x100ff, +0x10103, 0x10106, +0x10134, 0x10136, +0x1018f, 0x1018f, +0x1019d, 0x1019f, +0x101a1, 0x101cf, +0x101fe, 0x1027f, +0x1029d, 0x1029f, +0x102d1, 0x102df, +0x102fc, 0x102ff, +0x10324, 0x1032c, +0x1034b, 0x1034f, +0x1037b, 0x1037f, +0x1039e, 0x1039e, +0x103c4, 0x103c7, +0x103d6, 0x103ff, +0x1049e, 0x1049f, +0x104aa, 0x104af, +0x104d4, 0x104d7, +0x104fc, 0x104ff, +0x10528, 0x1052f, +0x10564, 0x1056e, +0x1057b, 0x1057b, +0x1058b, 0x1058b, +0x10593, 0x10593, +0x10596, 0x10596, +0x105a2, 0x105a2, +0x105b2, 0x105b2, +0x105ba, 0x105ba, +0x105bd, 0x105bf, +0x105f4, 0x105ff, +0x10737, 0x1073f, +0x10756, 0x1075f, +0x10768, 0x1077f, +0x10786, 0x10786, +0x107b1, 0x107b1, +0x107bb, 0x107ff, +0x10806, 0x10807, +0x10809, 0x10809, +0x10836, 0x10836, +0x10839, 0x1083b, +0x1083d, 0x1083e, +0x10856, 0x10856, +0x1089f, 0x108a6, +0x108b0, 0x108df, +0x108f3, 0x108f3, +0x108f6, 0x108fa, +0x1091c, 0x1091e, +0x1093a, 0x1093e, +0x10940, 0x1097f, +0x109b8, 0x109bb, +0x109d0, 0x109d1, +0x10a04, 0x10a04, +0x10a07, 0x10a0b, +0x10a14, 0x10a14, +0x10a18, 0x10a18, +0x10a36, 0x10a37, +0x10a3b, 0x10a3e, +0x10a49, 0x10a4f, +0x10a59, 0x10a5f, +0x10aa0, 0x10abf, +0x10ae7, 0x10aea, +0x10af7, 0x10aff, +0x10b36, 0x10b38, +0x10b56, 0x10b57, +0x10b73, 0x10b77, +0x10b92, 0x10b98, +0x10b9d, 0x10ba8, +0x10bb0, 0x10bff, +0x10c49, 0x10c7f, +0x10cb3, 0x10cbf, +0x10cf3, 0x10cf9, +0x10d28, 0x10d2f, +0x10d3a, 0x10d3f, +0x10d66, 0x10d68, +0x10d86, 0x10d8d, +0x10d90, 0x10e5f, +0x10e7f, 0x10e7f, +0x10eaa, 0x10eaa, +0x10eae, 0x10eaf, +0x10eb2, 0x10ec1, +0x10ec5, 0x10efb, +0x10f28, 0x10f2f, +0x10f5a, 0x10f6f, +0x10f8a, 0x10faf, +0x10fcc, 0x10fdf, +0x10ff7, 0x10fff, +0x1104e, 0x11051, +0x11076, 0x1107e, +0x110c3, 0x110cc, +0x110ce, 0x110cf, +0x110e9, 0x110ef, +0x110fa, 0x110ff, +0x11135, 0x11135, +0x11148, 0x1114f, +0x11177, 0x1117f, +0x111e0, 0x111e0, +0x111f5, 0x111ff, +0x11212, 0x11212, +0x11242, 0x1127f, +0x11287, 0x11287, +0x11289, 0x11289, +0x1128e, 0x1128e, +0x1129e, 0x1129e, +0x112aa, 0x112af, +0x112eb, 0x112ef, +0x112fa, 0x112ff, +0x11304, 0x11304, +0x1130d, 0x1130e, +0x11311, 0x11312, +0x11329, 0x11329, +0x11331, 0x11331, +0x11334, 0x11334, +0x1133a, 0x1133a, +0x11345, 0x11346, +0x11349, 0x1134a, +0x1134e, 0x1134f, +0x11351, 0x11356, +0x11358, 0x1135c, +0x11364, 0x11365, +0x1136d, 0x1136f, +0x11375, 0x1137f, +0x1138a, 0x1138a, +0x1138c, 0x1138d, +0x1138f, 0x1138f, +0x113b6, 0x113b6, +0x113c1, 0x113c1, +0x113c3, 0x113c4, +0x113c6, 0x113c6, +0x113cb, 0x113cb, +0x113d6, 0x113d6, +0x113d9, 0x113e0, +0x113e3, 0x113ff, +0x1145c, 0x1145c, +0x11462, 0x1147f, +0x114c8, 0x114cf, +0x114da, 0x1157f, +0x115b6, 0x115b7, +0x115de, 0x115ff, +0x11645, 0x1164f, +0x1165a, 0x1165f, +0x1166d, 0x1167f, +0x116ba, 0x116bf, +0x116ca, 0x116cf, +0x116e4, 0x116ff, +0x1171b, 0x1171c, +0x1172c, 0x1172f, +0x11747, 0x117ff, +0x1183c, 0x1189f, +0x118f3, 0x118fe, +0x11907, 0x11908, +0x1190a, 0x1190b, +0x11914, 0x11914, +0x11917, 0x11917, +0x11936, 0x11936, +0x11939, 0x1193a, +0x11947, 0x1194f, +0x1195a, 0x1199f, +0x119a8, 0x119a9, +0x119d8, 0x119d9, +0x119e5, 0x119ff, +0x11a48, 0x11a4f, +0x11aa3, 0x11aaf, +0x11af9, 0x11aff, +0x11b0a, 0x11bbf, +0x11be2, 0x11bef, +0x11bfa, 0x11bff, +0x11c09, 0x11c09, +0x11c37, 0x11c37, +0x11c46, 0x11c4f, +0x11c6d, 0x11c6f, +0x11c90, 0x11c91, +0x11ca8, 0x11ca8, +0x11cb7, 0x11cff, +0x11d07, 0x11d07, +0x11d0a, 0x11d0a, +0x11d37, 0x11d39, +0x11d3b, 0x11d3b, +0x11d3e, 0x11d3e, +0x11d48, 0x11d4f, +0x11d5a, 0x11d5f, +0x11d66, 0x11d66, +0x11d69, 0x11d69, +0x11d8f, 0x11d8f, +0x11d92, 0x11d92, +0x11d99, 0x11d9f, +0x11daa, 0x11edf, +0x11ef9, 0x11eff, +0x11f11, 0x11f11, +0x11f3b, 0x11f3d, +0x11f5b, 0x11faf, +0x11fb1, 0x11fbf, +0x11ff2, 0x11ffe, +0x1239a, 0x123ff, +0x1246f, 0x1246f, +0x12475, 0x1247f, +0x12544, 0x12f8f, +0x12ff3, 0x12fff, +0x13456, 0x1345f, +0x143fb, 0x143ff, +0x14647, 0x160ff, +0x1613a, 0x167ff, +0x16a39, 0x16a3f, +0x16a5f, 0x16a5f, +0x16a6a, 0x16a6d, +0x16abf, 0x16abf, +0x16aca, 0x16acf, +0x16aee, 0x16aef, +0x16af6, 0x16aff, +0x16b46, 0x16b4f, +0x16b5a, 0x16b5a, +0x16b62, 0x16b62, +0x16b78, 0x16b7c, +0x16b90, 0x16d3f, +0x16d7a, 0x16e3f, +0x16e9b, 0x16eff, +0x16f4b, 0x16f4e, +0x16f88, 0x16f8e, +0x16fa0, 0x16fdf, +0x16fe5, 0x16fef, +0x16ff2, 0x16fff, +0x187f8, 0x187ff, +0x18cd6, 0x18cfe, +0x18d09, 0x1afef, +0x1aff4, 0x1aff4, +0x1affc, 0x1affc, +0x1afff, 0x1afff, +0x1b123, 0x1b131, +0x1b133, 0x1b14f, +0x1b153, 0x1b154, +0x1b156, 0x1b163, +0x1b168, 0x1b16f, +0x1b2fc, 0x1bbff, +0x1bc6b, 0x1bc6f, +0x1bc7d, 0x1bc7f, +0x1bc89, 0x1bc8f, +0x1bc9a, 0x1bc9b, +0x1bca4, 0x1cbff, +0x1ccfa, 0x1ccff, +0x1ceb4, 0x1ceff, +0x1cf2e, 0x1cf2f, +0x1cf47, 0x1cf4f, +0x1cfc4, 0x1cfff, +0x1d0f6, 0x1d0ff, +0x1d127, 0x1d128, +0x1d1eb, 0x1d1ff, +0x1d246, 0x1d2bf, +0x1d2d4, 0x1d2df, +0x1d2f4, 0x1d2ff, +0x1d357, 0x1d35f, +0x1d379, 0x1d3ff, +0x1d455, 0x1d455, +0x1d49d, 0x1d49d, +0x1d4a0, 0x1d4a1, +0x1d4a3, 0x1d4a4, +0x1d4a7, 0x1d4a8, +0x1d4ad, 0x1d4ad, +0x1d4ba, 0x1d4ba, +0x1d4bc, 0x1d4bc, +0x1d4c4, 0x1d4c4, +0x1d506, 0x1d506, +0x1d50b, 0x1d50c, +0x1d515, 0x1d515, +0x1d51d, 0x1d51d, +0x1d53a, 0x1d53a, +0x1d53f, 0x1d53f, +0x1d545, 0x1d545, +0x1d547, 0x1d549, +0x1d551, 0x1d551, +0x1d6a6, 0x1d6a7, +0x1d7cc, 0x1d7cd, +0x1da8c, 0x1da9a, +0x1daa0, 0x1daa0, +0x1dab0, 0x1deff, +0x1df1f, 0x1df24, +0x1df2b, 0x1dfff, +0x1e007, 0x1e007, +0x1e019, 0x1e01a, +0x1e022, 0x1e022, +0x1e025, 0x1e025, +0x1e02b, 0x1e02f, +0x1e06e, 0x1e08e, +0x1e090, 0x1e0ff, +0x1e12d, 0x1e12f, +0x1e13e, 0x1e13f, +0x1e14a, 0x1e14d, +0x1e150, 0x1e28f, +0x1e2af, 0x1e2bf, +0x1e2fa, 0x1e2fe, +0x1e300, 0x1e4cf, +0x1e4fa, 0x1e5cf, +0x1e5fb, 0x1e5fe, +0x1e600, 0x1e7df, +0x1e7e7, 0x1e7e7, +0x1e7ec, 0x1e7ec, +0x1e7ef, 0x1e7ef, +0x1e7ff, 0x1e7ff, +0x1e8c5, 0x1e8c6, +0x1e8d7, 0x1e8ff, +0x1e94c, 0x1e94f, +0x1e95a, 0x1e95d, +0x1e960, 0x1ec70, +0x1ecb5, 0x1ed00, +0x1ed3e, 0x1edff, +0x1ee04, 0x1ee04, +0x1ee20, 0x1ee20, +0x1ee23, 0x1ee23, +0x1ee25, 0x1ee26, +0x1ee28, 0x1ee28, +0x1ee33, 0x1ee33, +0x1ee38, 0x1ee38, +0x1ee3a, 0x1ee3a, +0x1ee3c, 0x1ee41, +0x1ee43, 0x1ee46, +0x1ee48, 0x1ee48, +0x1ee4a, 0x1ee4a, +0x1ee4c, 0x1ee4c, +0x1ee50, 0x1ee50, +0x1ee53, 0x1ee53, +0x1ee55, 0x1ee56, +0x1ee58, 0x1ee58, +0x1ee5a, 0x1ee5a, +0x1ee5c, 0x1ee5c, +0x1ee5e, 0x1ee5e, +0x1ee60, 0x1ee60, +0x1ee63, 0x1ee63, +0x1ee65, 0x1ee66, +0x1ee6b, 0x1ee6b, +0x1ee73, 0x1ee73, +0x1ee78, 0x1ee78, +0x1ee7d, 0x1ee7d, +0x1ee7f, 0x1ee7f, +0x1ee8a, 0x1ee8a, +0x1ee9c, 0x1eea0, +0x1eea4, 0x1eea4, +0x1eeaa, 0x1eeaa, +0x1eebc, 0x1eeef, +0x1eef2, 0x1efff, +0x1f02c, 0x1f02f, +0x1f094, 0x1f09f, +0x1f0af, 0x1f0b0, +0x1f0c0, 0x1f0c0, +0x1f0d0, 0x1f0d0, +0x1f0f6, 0x1f0ff, +0x1f1ae, 0x1f1e5, +0x1f203, 0x1f20f, +0x1f23c, 0x1f23f, +0x1f249, 0x1f24f, +0x1f252, 0x1f25f, +0x1f266, 0x1f2ff, +0x1f6d8, 0x1f6db, +0x1f6ed, 0x1f6ef, +0x1f6fd, 0x1f6ff, +0x1f777, 0x1f77a, +0x1f7da, 0x1f7df, +0x1f7ec, 0x1f7ef, +0x1f7f1, 0x1f7ff, +0x1f80c, 0x1f80f, +0x1f848, 0x1f84f, +0x1f85a, 0x1f85f, +0x1f888, 0x1f88f, +0x1f8ae, 0x1f8af, +0x1f8bc, 0x1f8bf, +0x1f8c2, 0x1f8ff, +0x1fa54, 0x1fa5f, +0x1fa6e, 0x1fa6f, +0x1fa7d, 0x1fa7f, +0x1fa8a, 0x1fa8e, +0x1fac7, 0x1facd, +0x1fadd, 0x1fade, +0x1faea, 0x1faef, +0x1faf9, 0x1faff, +0x1fb93, 0x1fb93, +0x1fbfa, 0x1ffff, +0x2a6e0, 0x2a6ff, +0x2b73a, 0x2b73f, +0x2b81e, 0x2b81f, +0x2cea2, 0x2ceaf, +0x2ebe1, 0x2ebef, +0x2ee5e, 0x2f7ff, +0x2fa1e, 0x2ffff, +0x3134b, 0x3134f, +0x323b0, 0xe0000, +0xe0002, 0xe001f, +0xe0080, 0xe00ff, +0xe01f0, 0x10ffff, +}; /* END of CR_Unknown */ + +/* PROPERTY: 'Uppercase': Derived Property */ +#define CR_Uppercase CR_Upper + +/* PROPERTY: 'Vai': Script */ +static const OnigCodePoint +CR_Vai[] = { 1, +0xa500, 0xa62b, +}; /* END of CR_Vai */ + +/* PROPERTY: 'Variation_Selector': Binary Property */ +static const OnigCodePoint +CR_Variation_Selector[] = { 4, +0x180b, 0x180d, +0x180f, 0x180f, +0xfe00, 0xfe0f, +0xe0100, 0xe01ef, +}; /* END of CR_Variation_Selector */ + +/* PROPERTY: 'Vithkuqi': Script */ +static const OnigCodePoint +CR_Vithkuqi[] = { 8, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +}; /* END of CR_Vithkuqi */ + +/* PROPERTY: 'Wancho': Script */ +static const OnigCodePoint +CR_Wancho[] = { 2, +0x1e2c0, 0x1e2f9, +0x1e2ff, 0x1e2ff, +}; /* END of CR_Wancho */ + +/* PROPERTY: 'Warang_Citi': Script */ +static const OnigCodePoint +CR_Warang_Citi[] = { 2, +0x118a0, 0x118f2, +0x118ff, 0x118ff, +}; /* END of CR_Warang_Citi */ + +/* PROPERTY: 'White_Space': Binary Property */ +#define CR_White_Space CR_Space + +/* PROPERTY: 'XID_Continue': Derived Property */ +static const OnigCodePoint +CR_XID_Continue[] = { 800, +0x0030, 0x0039, +0x0041, 0x005a, +0x005f, 0x005f, +0x0061, 0x007a, +0x00aa, 0x00aa, +0x00b5, 0x00b5, +0x00b7, 0x00b7, +0x00ba, 0x00ba, +0x00c0, 0x00d6, +0x00d8, 0x00f6, +0x00f8, 0x02c1, +0x02c6, 0x02d1, +0x02e0, 0x02e4, +0x02ec, 0x02ec, +0x02ee, 0x02ee, +0x0300, 0x0374, +0x0376, 0x0377, +0x037b, 0x037d, +0x037f, 0x037f, +0x0386, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x03f5, +0x03f7, 0x0481, +0x0483, 0x0487, +0x048a, 0x052f, +0x0531, 0x0556, +0x0559, 0x0559, +0x0560, 0x0588, +0x0591, 0x05bd, +0x05bf, 0x05bf, +0x05c1, 0x05c2, +0x05c4, 0x05c5, +0x05c7, 0x05c7, +0x05d0, 0x05ea, +0x05ef, 0x05f2, +0x0610, 0x061a, +0x0620, 0x0669, +0x066e, 0x06d3, +0x06d5, 0x06dc, +0x06df, 0x06e8, +0x06ea, 0x06fc, +0x06ff, 0x06ff, +0x0710, 0x074a, +0x074d, 0x07b1, +0x07c0, 0x07f5, +0x07fa, 0x07fa, +0x07fd, 0x07fd, +0x0800, 0x082d, +0x0840, 0x085b, +0x0860, 0x086a, +0x0870, 0x0887, +0x0889, 0x088e, +0x0897, 0x08e1, +0x08e3, 0x0963, +0x0966, 0x096f, +0x0971, 0x0983, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bc, 0x09c4, +0x09c7, 0x09c8, +0x09cb, 0x09ce, +0x09d7, 0x09d7, +0x09dc, 0x09dd, +0x09df, 0x09e3, +0x09e6, 0x09f1, +0x09fc, 0x09fc, +0x09fe, 0x09fe, +0x0a01, 0x0a03, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a3c, 0x0a3c, +0x0a3e, 0x0a42, +0x0a47, 0x0a48, +0x0a4b, 0x0a4d, +0x0a51, 0x0a51, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a66, 0x0a75, +0x0a81, 0x0a83, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abc, 0x0ac5, +0x0ac7, 0x0ac9, +0x0acb, 0x0acd, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae3, +0x0ae6, 0x0aef, +0x0af9, 0x0aff, +0x0b01, 0x0b03, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3c, 0x0b44, +0x0b47, 0x0b48, +0x0b4b, 0x0b4d, +0x0b55, 0x0b57, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b63, +0x0b66, 0x0b6f, +0x0b71, 0x0b71, +0x0b82, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bbe, 0x0bc2, +0x0bc6, 0x0bc8, +0x0bca, 0x0bcd, +0x0bd0, 0x0bd0, +0x0bd7, 0x0bd7, +0x0be6, 0x0bef, +0x0c00, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3c, 0x0c44, +0x0c46, 0x0c48, +0x0c4a, 0x0c4d, +0x0c55, 0x0c56, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c63, +0x0c66, 0x0c6f, +0x0c80, 0x0c83, +0x0c85, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbc, 0x0cc4, +0x0cc6, 0x0cc8, +0x0cca, 0x0ccd, +0x0cd5, 0x0cd6, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce3, +0x0ce6, 0x0cef, +0x0cf1, 0x0cf3, +0x0d00, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d44, +0x0d46, 0x0d48, +0x0d4a, 0x0d4e, +0x0d54, 0x0d57, +0x0d5f, 0x0d63, +0x0d66, 0x0d6f, +0x0d7a, 0x0d7f, +0x0d81, 0x0d83, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0dca, 0x0dca, +0x0dcf, 0x0dd4, +0x0dd6, 0x0dd6, +0x0dd8, 0x0ddf, +0x0de6, 0x0def, +0x0df2, 0x0df3, +0x0e01, 0x0e3a, +0x0e40, 0x0e4e, +0x0e50, 0x0e59, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0ebd, +0x0ec0, 0x0ec4, +0x0ec6, 0x0ec6, +0x0ec8, 0x0ece, +0x0ed0, 0x0ed9, +0x0edc, 0x0edf, +0x0f00, 0x0f00, +0x0f18, 0x0f19, +0x0f20, 0x0f29, +0x0f35, 0x0f35, +0x0f37, 0x0f37, +0x0f39, 0x0f39, +0x0f3e, 0x0f47, +0x0f49, 0x0f6c, +0x0f71, 0x0f84, +0x0f86, 0x0f97, +0x0f99, 0x0fbc, +0x0fc6, 0x0fc6, +0x1000, 0x1049, +0x1050, 0x109d, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x10fa, +0x10fc, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x135d, 0x135f, +0x1369, 0x1371, +0x1380, 0x138f, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1401, 0x166c, +0x166f, 0x167f, +0x1681, 0x169a, +0x16a0, 0x16ea, +0x16ee, 0x16f8, +0x1700, 0x1715, +0x171f, 0x1734, +0x1740, 0x1753, +0x1760, 0x176c, +0x176e, 0x1770, +0x1772, 0x1773, +0x1780, 0x17d3, +0x17d7, 0x17d7, +0x17dc, 0x17dd, +0x17e0, 0x17e9, +0x180b, 0x180d, +0x180f, 0x1819, +0x1820, 0x1878, +0x1880, 0x18aa, +0x18b0, 0x18f5, +0x1900, 0x191e, +0x1920, 0x192b, +0x1930, 0x193b, +0x1946, 0x196d, +0x1970, 0x1974, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x19d0, 0x19da, +0x1a00, 0x1a1b, +0x1a20, 0x1a5e, +0x1a60, 0x1a7c, +0x1a7f, 0x1a89, +0x1a90, 0x1a99, +0x1aa7, 0x1aa7, +0x1ab0, 0x1abd, +0x1abf, 0x1ace, +0x1b00, 0x1b4c, +0x1b50, 0x1b59, +0x1b6b, 0x1b73, +0x1b80, 0x1bf3, +0x1c00, 0x1c37, +0x1c40, 0x1c49, +0x1c4d, 0x1c7d, +0x1c80, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1cd0, 0x1cd2, +0x1cd4, 0x1cfa, +0x1d00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fbc, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fcc, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fe0, 0x1fec, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffc, +0x200c, 0x200d, +0x203f, 0x2040, +0x2054, 0x2054, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x20d0, 0x20dc, +0x20e1, 0x20e1, +0x20e5, 0x20f0, +0x2102, 0x2102, +0x2107, 0x2107, +0x210a, 0x2113, +0x2115, 0x2115, +0x2118, 0x211d, +0x2124, 0x2124, +0x2126, 0x2126, +0x2128, 0x2128, +0x212a, 0x2139, +0x213c, 0x213f, +0x2145, 0x2149, +0x214e, 0x214e, +0x2160, 0x2188, +0x2c00, 0x2ce4, +0x2ceb, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0x2d30, 0x2d67, +0x2d6f, 0x2d6f, +0x2d7f, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0x2de0, 0x2dff, +0x3005, 0x3007, +0x3021, 0x302f, +0x3031, 0x3035, +0x3038, 0x303c, +0x3041, 0x3096, +0x3099, 0x309a, +0x309d, 0x309f, +0x30a1, 0x30ff, +0x3105, 0x312f, +0x3131, 0x318e, +0x31a0, 0x31bf, +0x31f0, 0x31ff, +0x3400, 0x4dbf, +0x4e00, 0xa48c, +0xa4d0, 0xa4fd, +0xa500, 0xa60c, +0xa610, 0xa62b, +0xa640, 0xa66f, +0xa674, 0xa67d, +0xa67f, 0xa6f1, +0xa717, 0xa71f, +0xa722, 0xa788, +0xa78b, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa827, +0xa82c, 0xa82c, +0xa840, 0xa873, +0xa880, 0xa8c5, +0xa8d0, 0xa8d9, +0xa8e0, 0xa8f7, +0xa8fb, 0xa8fb, +0xa8fd, 0xa92d, +0xa930, 0xa953, +0xa960, 0xa97c, +0xa980, 0xa9c0, +0xa9cf, 0xa9d9, +0xa9e0, 0xa9fe, +0xaa00, 0xaa36, +0xaa40, 0xaa4d, +0xaa50, 0xaa59, +0xaa60, 0xaa76, +0xaa7a, 0xaac2, +0xaadb, 0xaadd, +0xaae0, 0xaaef, +0xaaf2, 0xaaf6, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0xab30, 0xab5a, +0xab5c, 0xab69, +0xab70, 0xabea, +0xabec, 0xabed, +0xabf0, 0xabf9, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xf900, 0xfa6d, +0xfa70, 0xfad9, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xfb1d, 0xfb28, +0xfb2a, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfbb1, +0xfbd3, 0xfc5d, +0xfc64, 0xfd3d, +0xfd50, 0xfd8f, +0xfd92, 0xfdc7, +0xfdf0, 0xfdf9, +0xfe00, 0xfe0f, +0xfe20, 0xfe2f, +0xfe33, 0xfe34, +0xfe4d, 0xfe4f, +0xfe71, 0xfe71, +0xfe73, 0xfe73, +0xfe77, 0xfe77, +0xfe79, 0xfe79, +0xfe7b, 0xfe7b, +0xfe7d, 0xfe7d, +0xfe7f, 0xfefc, +0xff10, 0xff19, +0xff21, 0xff3a, +0xff3f, 0xff3f, +0xff41, 0xff5a, +0xff65, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +0x10140, 0x10174, +0x101fd, 0x101fd, +0x10280, 0x1029c, +0x102a0, 0x102d0, +0x102e0, 0x102e0, +0x10300, 0x1031f, +0x1032d, 0x1034a, +0x10350, 0x1037a, +0x10380, 0x1039d, +0x103a0, 0x103c3, +0x103c8, 0x103cf, +0x103d1, 0x103d5, +0x10400, 0x1049d, +0x104a0, 0x104a9, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10500, 0x10527, +0x10530, 0x10563, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x105c0, 0x105f3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x10855, +0x10860, 0x10876, +0x10880, 0x1089e, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x10900, 0x10915, +0x10920, 0x10939, +0x10980, 0x109b7, +0x109be, 0x109bf, +0x10a00, 0x10a03, +0x10a05, 0x10a06, +0x10a0c, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a38, 0x10a3a, +0x10a3f, 0x10a3f, +0x10a60, 0x10a7c, +0x10a80, 0x10a9c, +0x10ac0, 0x10ac7, +0x10ac9, 0x10ae6, +0x10b00, 0x10b35, +0x10b40, 0x10b55, +0x10b60, 0x10b72, +0x10b80, 0x10b91, +0x10c00, 0x10c48, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10d00, 0x10d27, +0x10d30, 0x10d39, +0x10d40, 0x10d65, +0x10d69, 0x10d6d, +0x10d6f, 0x10d85, +0x10e80, 0x10ea9, +0x10eab, 0x10eac, +0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10efc, 0x10f1c, +0x10f27, 0x10f27, +0x10f30, 0x10f50, +0x10f70, 0x10f85, +0x10fb0, 0x10fc4, +0x10fe0, 0x10ff6, +0x11000, 0x11046, +0x11066, 0x11075, +0x1107f, 0x110ba, +0x110c2, 0x110c2, +0x110d0, 0x110e8, +0x110f0, 0x110f9, +0x11100, 0x11134, +0x11136, 0x1113f, +0x11144, 0x11147, +0x11150, 0x11173, +0x11176, 0x11176, +0x11180, 0x111c4, +0x111c9, 0x111cc, +0x111ce, 0x111da, +0x111dc, 0x111dc, +0x11200, 0x11211, +0x11213, 0x11237, +0x1123e, 0x11241, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a8, +0x112b0, 0x112ea, +0x112f0, 0x112f9, +0x11300, 0x11303, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133b, 0x11344, +0x11347, 0x11348, +0x1134b, 0x1134d, +0x11350, 0x11350, +0x11357, 0x11357, +0x1135d, 0x11363, +0x11366, 0x1136c, +0x11370, 0x11374, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113c0, +0x113c2, 0x113c2, +0x113c5, 0x113c5, +0x113c7, 0x113ca, +0x113cc, 0x113d3, +0x113e1, 0x113e2, +0x11400, 0x1144a, +0x11450, 0x11459, +0x1145e, 0x11461, +0x11480, 0x114c5, +0x114c7, 0x114c7, +0x114d0, 0x114d9, +0x11580, 0x115b5, +0x115b8, 0x115c0, +0x115d8, 0x115dd, +0x11600, 0x11640, +0x11644, 0x11644, +0x11650, 0x11659, +0x11680, 0x116b8, +0x116c0, 0x116c9, +0x116d0, 0x116e3, +0x11700, 0x1171a, +0x1171d, 0x1172b, +0x11730, 0x11739, +0x11740, 0x11746, +0x11800, 0x1183a, +0x118a0, 0x118e9, +0x118ff, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x11935, +0x11937, 0x11938, +0x1193b, 0x11943, +0x11950, 0x11959, +0x119a0, 0x119a7, +0x119aa, 0x119d7, +0x119da, 0x119e1, +0x119e3, 0x119e4, +0x11a00, 0x11a3e, +0x11a47, 0x11a47, +0x11a50, 0x11a99, +0x11a9d, 0x11a9d, +0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11bf0, 0x11bf9, +0x11c00, 0x11c08, +0x11c0a, 0x11c36, +0x11c38, 0x11c40, +0x11c50, 0x11c59, +0x11c72, 0x11c8f, +0x11c92, 0x11ca7, +0x11ca9, 0x11cb6, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d36, +0x11d3a, 0x11d3a, +0x11d3c, 0x11d3d, +0x11d3f, 0x11d47, +0x11d50, 0x11d59, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d8e, +0x11d90, 0x11d91, +0x11d93, 0x11d98, +0x11da0, 0x11da9, +0x11ee0, 0x11ef6, +0x11f00, 0x11f10, +0x11f12, 0x11f3a, +0x11f3e, 0x11f42, +0x11f50, 0x11f5a, +0x11fb0, 0x11fb0, +0x12000, 0x12399, +0x12400, 0x1246e, +0x12480, 0x12543, +0x12f90, 0x12ff0, +0x13000, 0x1342f, +0x13440, 0x13455, +0x13460, 0x143fa, +0x14400, 0x14646, +0x16100, 0x16139, +0x16800, 0x16a38, +0x16a40, 0x16a5e, +0x16a60, 0x16a69, +0x16a70, 0x16abe, +0x16ac0, 0x16ac9, +0x16ad0, 0x16aed, +0x16af0, 0x16af4, +0x16b00, 0x16b36, +0x16b40, 0x16b43, +0x16b50, 0x16b59, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16d70, 0x16d79, +0x16e40, 0x16e7f, +0x16f00, 0x16f4a, +0x16f4f, 0x16f87, +0x16f8f, 0x16f9f, +0x16fe0, 0x16fe1, +0x16fe3, 0x16fe4, +0x16ff0, 0x16ff1, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1b000, 0x1b122, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +0x1b170, 0x1b2fb, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1bc9d, 0x1bc9e, +0x1ccf0, 0x1ccf9, +0x1cf00, 0x1cf2d, +0x1cf30, 0x1cf46, +0x1d165, 0x1d169, +0x1d16d, 0x1d172, +0x1d17b, 0x1d182, +0x1d185, 0x1d18b, +0x1d1aa, 0x1d1ad, +0x1d242, 0x1d244, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d6c0, +0x1d6c2, 0x1d6da, +0x1d6dc, 0x1d6fa, +0x1d6fc, 0x1d714, +0x1d716, 0x1d734, +0x1d736, 0x1d74e, +0x1d750, 0x1d76e, +0x1d770, 0x1d788, +0x1d78a, 0x1d7a8, +0x1d7aa, 0x1d7c2, +0x1d7c4, 0x1d7cb, +0x1d7ce, 0x1d7ff, +0x1da00, 0x1da36, +0x1da3b, 0x1da6c, +0x1da75, 0x1da75, +0x1da84, 0x1da84, +0x1da9b, 0x1da9f, +0x1daa1, 0x1daaf, +0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e000, 0x1e006, +0x1e008, 0x1e018, +0x1e01b, 0x1e021, +0x1e023, 0x1e024, +0x1e026, 0x1e02a, +0x1e030, 0x1e06d, +0x1e08f, 0x1e08f, +0x1e100, 0x1e12c, +0x1e130, 0x1e13d, +0x1e140, 0x1e149, +0x1e14e, 0x1e14e, +0x1e290, 0x1e2ae, +0x1e2c0, 0x1e2f9, +0x1e4d0, 0x1e4f9, +0x1e5d0, 0x1e5fa, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +0x1e800, 0x1e8c4, +0x1e8d0, 0x1e8d6, +0x1e900, 0x1e94b, +0x1e950, 0x1e959, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x1fbf0, 0x1fbf9, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +0xe0100, 0xe01ef, +}; /* END of CR_XID_Continue */ + +/* PROPERTY: 'XID_Start': Derived Property */ +static const OnigCodePoint +CR_XID_Start[] = { 684, +0x0041, 0x005a, +0x0061, 0x007a, +0x00aa, 0x00aa, +0x00b5, 0x00b5, +0x00ba, 0x00ba, +0x00c0, 0x00d6, +0x00d8, 0x00f6, +0x00f8, 0x02c1, +0x02c6, 0x02d1, +0x02e0, 0x02e4, +0x02ec, 0x02ec, +0x02ee, 0x02ee, +0x0370, 0x0374, +0x0376, 0x0377, +0x037b, 0x037d, +0x037f, 0x037f, +0x0386, 0x0386, +0x0388, 0x038a, +0x038c, 0x038c, +0x038e, 0x03a1, +0x03a3, 0x03f5, +0x03f7, 0x0481, +0x048a, 0x052f, +0x0531, 0x0556, +0x0559, 0x0559, +0x0560, 0x0588, +0x05d0, 0x05ea, +0x05ef, 0x05f2, +0x0620, 0x064a, +0x066e, 0x066f, +0x0671, 0x06d3, +0x06d5, 0x06d5, +0x06e5, 0x06e6, +0x06ee, 0x06ef, +0x06fa, 0x06fc, +0x06ff, 0x06ff, +0x0710, 0x0710, +0x0712, 0x072f, +0x074d, 0x07a5, +0x07b1, 0x07b1, +0x07ca, 0x07ea, +0x07f4, 0x07f5, +0x07fa, 0x07fa, +0x0800, 0x0815, +0x081a, 0x081a, +0x0824, 0x0824, +0x0828, 0x0828, +0x0840, 0x0858, +0x0860, 0x086a, +0x0870, 0x0887, +0x0889, 0x088e, +0x08a0, 0x08c9, +0x0904, 0x0939, +0x093d, 0x093d, +0x0950, 0x0950, +0x0958, 0x0961, +0x0971, 0x0980, +0x0985, 0x098c, +0x098f, 0x0990, +0x0993, 0x09a8, +0x09aa, 0x09b0, +0x09b2, 0x09b2, +0x09b6, 0x09b9, +0x09bd, 0x09bd, +0x09ce, 0x09ce, +0x09dc, 0x09dd, +0x09df, 0x09e1, +0x09f0, 0x09f1, +0x09fc, 0x09fc, +0x0a05, 0x0a0a, +0x0a0f, 0x0a10, +0x0a13, 0x0a28, +0x0a2a, 0x0a30, +0x0a32, 0x0a33, +0x0a35, 0x0a36, +0x0a38, 0x0a39, +0x0a59, 0x0a5c, +0x0a5e, 0x0a5e, +0x0a72, 0x0a74, +0x0a85, 0x0a8d, +0x0a8f, 0x0a91, +0x0a93, 0x0aa8, +0x0aaa, 0x0ab0, +0x0ab2, 0x0ab3, +0x0ab5, 0x0ab9, +0x0abd, 0x0abd, +0x0ad0, 0x0ad0, +0x0ae0, 0x0ae1, +0x0af9, 0x0af9, +0x0b05, 0x0b0c, +0x0b0f, 0x0b10, +0x0b13, 0x0b28, +0x0b2a, 0x0b30, +0x0b32, 0x0b33, +0x0b35, 0x0b39, +0x0b3d, 0x0b3d, +0x0b5c, 0x0b5d, +0x0b5f, 0x0b61, +0x0b71, 0x0b71, +0x0b83, 0x0b83, +0x0b85, 0x0b8a, +0x0b8e, 0x0b90, +0x0b92, 0x0b95, +0x0b99, 0x0b9a, +0x0b9c, 0x0b9c, +0x0b9e, 0x0b9f, +0x0ba3, 0x0ba4, +0x0ba8, 0x0baa, +0x0bae, 0x0bb9, +0x0bd0, 0x0bd0, +0x0c05, 0x0c0c, +0x0c0e, 0x0c10, +0x0c12, 0x0c28, +0x0c2a, 0x0c39, +0x0c3d, 0x0c3d, +0x0c58, 0x0c5a, +0x0c5d, 0x0c5d, +0x0c60, 0x0c61, +0x0c80, 0x0c80, +0x0c85, 0x0c8c, +0x0c8e, 0x0c90, +0x0c92, 0x0ca8, +0x0caa, 0x0cb3, +0x0cb5, 0x0cb9, +0x0cbd, 0x0cbd, +0x0cdd, 0x0cde, +0x0ce0, 0x0ce1, +0x0cf1, 0x0cf2, +0x0d04, 0x0d0c, +0x0d0e, 0x0d10, +0x0d12, 0x0d3a, +0x0d3d, 0x0d3d, +0x0d4e, 0x0d4e, +0x0d54, 0x0d56, +0x0d5f, 0x0d61, +0x0d7a, 0x0d7f, +0x0d85, 0x0d96, +0x0d9a, 0x0db1, +0x0db3, 0x0dbb, +0x0dbd, 0x0dbd, +0x0dc0, 0x0dc6, +0x0e01, 0x0e30, +0x0e32, 0x0e32, +0x0e40, 0x0e46, +0x0e81, 0x0e82, +0x0e84, 0x0e84, +0x0e86, 0x0e8a, +0x0e8c, 0x0ea3, +0x0ea5, 0x0ea5, +0x0ea7, 0x0eb0, +0x0eb2, 0x0eb2, +0x0ebd, 0x0ebd, +0x0ec0, 0x0ec4, +0x0ec6, 0x0ec6, +0x0edc, 0x0edf, +0x0f00, 0x0f00, +0x0f40, 0x0f47, +0x0f49, 0x0f6c, +0x0f88, 0x0f8c, +0x1000, 0x102a, +0x103f, 0x103f, +0x1050, 0x1055, +0x105a, 0x105d, +0x1061, 0x1061, +0x1065, 0x1066, +0x106e, 0x1070, +0x1075, 0x1081, +0x108e, 0x108e, +0x10a0, 0x10c5, +0x10c7, 0x10c7, +0x10cd, 0x10cd, +0x10d0, 0x10fa, +0x10fc, 0x1248, +0x124a, 0x124d, +0x1250, 0x1256, +0x1258, 0x1258, +0x125a, 0x125d, +0x1260, 0x1288, +0x128a, 0x128d, +0x1290, 0x12b0, +0x12b2, 0x12b5, +0x12b8, 0x12be, +0x12c0, 0x12c0, +0x12c2, 0x12c5, +0x12c8, 0x12d6, +0x12d8, 0x1310, +0x1312, 0x1315, +0x1318, 0x135a, +0x1380, 0x138f, +0x13a0, 0x13f5, +0x13f8, 0x13fd, +0x1401, 0x166c, +0x166f, 0x167f, +0x1681, 0x169a, +0x16a0, 0x16ea, +0x16ee, 0x16f8, +0x1700, 0x1711, +0x171f, 0x1731, +0x1740, 0x1751, +0x1760, 0x176c, +0x176e, 0x1770, +0x1780, 0x17b3, +0x17d7, 0x17d7, +0x17dc, 0x17dc, +0x1820, 0x1878, +0x1880, 0x18a8, +0x18aa, 0x18aa, +0x18b0, 0x18f5, +0x1900, 0x191e, +0x1950, 0x196d, +0x1970, 0x1974, +0x1980, 0x19ab, +0x19b0, 0x19c9, +0x1a00, 0x1a16, +0x1a20, 0x1a54, +0x1aa7, 0x1aa7, +0x1b05, 0x1b33, +0x1b45, 0x1b4c, +0x1b83, 0x1ba0, +0x1bae, 0x1baf, +0x1bba, 0x1be5, +0x1c00, 0x1c23, +0x1c4d, 0x1c4f, +0x1c5a, 0x1c7d, +0x1c80, 0x1c8a, +0x1c90, 0x1cba, +0x1cbd, 0x1cbf, +0x1ce9, 0x1cec, +0x1cee, 0x1cf3, +0x1cf5, 0x1cf6, +0x1cfa, 0x1cfa, +0x1d00, 0x1dbf, +0x1e00, 0x1f15, +0x1f18, 0x1f1d, +0x1f20, 0x1f45, +0x1f48, 0x1f4d, +0x1f50, 0x1f57, +0x1f59, 0x1f59, +0x1f5b, 0x1f5b, +0x1f5d, 0x1f5d, +0x1f5f, 0x1f7d, +0x1f80, 0x1fb4, +0x1fb6, 0x1fbc, +0x1fbe, 0x1fbe, +0x1fc2, 0x1fc4, +0x1fc6, 0x1fcc, +0x1fd0, 0x1fd3, +0x1fd6, 0x1fdb, +0x1fe0, 0x1fec, +0x1ff2, 0x1ff4, +0x1ff6, 0x1ffc, +0x2071, 0x2071, +0x207f, 0x207f, +0x2090, 0x209c, +0x2102, 0x2102, +0x2107, 0x2107, +0x210a, 0x2113, +0x2115, 0x2115, +0x2118, 0x211d, +0x2124, 0x2124, +0x2126, 0x2126, +0x2128, 0x2128, +0x212a, 0x2139, +0x213c, 0x213f, +0x2145, 0x2149, +0x214e, 0x214e, +0x2160, 0x2188, +0x2c00, 0x2ce4, +0x2ceb, 0x2cee, +0x2cf2, 0x2cf3, +0x2d00, 0x2d25, +0x2d27, 0x2d27, +0x2d2d, 0x2d2d, +0x2d30, 0x2d67, +0x2d6f, 0x2d6f, +0x2d80, 0x2d96, +0x2da0, 0x2da6, +0x2da8, 0x2dae, +0x2db0, 0x2db6, +0x2db8, 0x2dbe, +0x2dc0, 0x2dc6, +0x2dc8, 0x2dce, +0x2dd0, 0x2dd6, +0x2dd8, 0x2dde, +0x3005, 0x3007, +0x3021, 0x3029, +0x3031, 0x3035, +0x3038, 0x303c, +0x3041, 0x3096, +0x309d, 0x309f, +0x30a1, 0x30fa, +0x30fc, 0x30ff, +0x3105, 0x312f, +0x3131, 0x318e, +0x31a0, 0x31bf, +0x31f0, 0x31ff, +0x3400, 0x4dbf, +0x4e00, 0xa48c, +0xa4d0, 0xa4fd, +0xa500, 0xa60c, +0xa610, 0xa61f, +0xa62a, 0xa62b, +0xa640, 0xa66e, +0xa67f, 0xa69d, +0xa6a0, 0xa6ef, +0xa717, 0xa71f, +0xa722, 0xa788, +0xa78b, 0xa7cd, +0xa7d0, 0xa7d1, +0xa7d3, 0xa7d3, +0xa7d5, 0xa7dc, +0xa7f2, 0xa801, +0xa803, 0xa805, +0xa807, 0xa80a, +0xa80c, 0xa822, +0xa840, 0xa873, +0xa882, 0xa8b3, +0xa8f2, 0xa8f7, +0xa8fb, 0xa8fb, +0xa8fd, 0xa8fe, +0xa90a, 0xa925, +0xa930, 0xa946, +0xa960, 0xa97c, +0xa984, 0xa9b2, +0xa9cf, 0xa9cf, +0xa9e0, 0xa9e4, +0xa9e6, 0xa9ef, +0xa9fa, 0xa9fe, +0xaa00, 0xaa28, +0xaa40, 0xaa42, +0xaa44, 0xaa4b, +0xaa60, 0xaa76, +0xaa7a, 0xaa7a, +0xaa7e, 0xaaaf, +0xaab1, 0xaab1, +0xaab5, 0xaab6, +0xaab9, 0xaabd, +0xaac0, 0xaac0, +0xaac2, 0xaac2, +0xaadb, 0xaadd, +0xaae0, 0xaaea, +0xaaf2, 0xaaf4, +0xab01, 0xab06, +0xab09, 0xab0e, +0xab11, 0xab16, +0xab20, 0xab26, +0xab28, 0xab2e, +0xab30, 0xab5a, +0xab5c, 0xab69, +0xab70, 0xabe2, +0xac00, 0xd7a3, +0xd7b0, 0xd7c6, +0xd7cb, 0xd7fb, +0xf900, 0xfa6d, +0xfa70, 0xfad9, +0xfb00, 0xfb06, +0xfb13, 0xfb17, +0xfb1d, 0xfb1d, +0xfb1f, 0xfb28, +0xfb2a, 0xfb36, +0xfb38, 0xfb3c, +0xfb3e, 0xfb3e, +0xfb40, 0xfb41, +0xfb43, 0xfb44, +0xfb46, 0xfbb1, +0xfbd3, 0xfc5d, +0xfc64, 0xfd3d, +0xfd50, 0xfd8f, +0xfd92, 0xfdc7, +0xfdf0, 0xfdf9, +0xfe71, 0xfe71, +0xfe73, 0xfe73, +0xfe77, 0xfe77, +0xfe79, 0xfe79, +0xfe7b, 0xfe7b, +0xfe7d, 0xfe7d, +0xfe7f, 0xfefc, +0xff21, 0xff3a, +0xff41, 0xff5a, +0xff66, 0xff9d, +0xffa0, 0xffbe, +0xffc2, 0xffc7, +0xffca, 0xffcf, +0xffd2, 0xffd7, +0xffda, 0xffdc, +0x10000, 0x1000b, +0x1000d, 0x10026, +0x10028, 0x1003a, +0x1003c, 0x1003d, +0x1003f, 0x1004d, +0x10050, 0x1005d, +0x10080, 0x100fa, +0x10140, 0x10174, +0x10280, 0x1029c, +0x102a0, 0x102d0, +0x10300, 0x1031f, +0x1032d, 0x1034a, +0x10350, 0x10375, +0x10380, 0x1039d, +0x103a0, 0x103c3, +0x103c8, 0x103cf, +0x103d1, 0x103d5, +0x10400, 0x1049d, +0x104b0, 0x104d3, +0x104d8, 0x104fb, +0x10500, 0x10527, +0x10530, 0x10563, +0x10570, 0x1057a, +0x1057c, 0x1058a, +0x1058c, 0x10592, +0x10594, 0x10595, +0x10597, 0x105a1, +0x105a3, 0x105b1, +0x105b3, 0x105b9, +0x105bb, 0x105bc, +0x105c0, 0x105f3, +0x10600, 0x10736, +0x10740, 0x10755, +0x10760, 0x10767, +0x10780, 0x10785, +0x10787, 0x107b0, +0x107b2, 0x107ba, +0x10800, 0x10805, +0x10808, 0x10808, +0x1080a, 0x10835, +0x10837, 0x10838, +0x1083c, 0x1083c, +0x1083f, 0x10855, +0x10860, 0x10876, +0x10880, 0x1089e, +0x108e0, 0x108f2, +0x108f4, 0x108f5, +0x10900, 0x10915, +0x10920, 0x10939, +0x10980, 0x109b7, +0x109be, 0x109bf, +0x10a00, 0x10a00, +0x10a10, 0x10a13, +0x10a15, 0x10a17, +0x10a19, 0x10a35, +0x10a60, 0x10a7c, +0x10a80, 0x10a9c, +0x10ac0, 0x10ac7, +0x10ac9, 0x10ae4, +0x10b00, 0x10b35, +0x10b40, 0x10b55, +0x10b60, 0x10b72, +0x10b80, 0x10b91, +0x10c00, 0x10c48, +0x10c80, 0x10cb2, +0x10cc0, 0x10cf2, +0x10d00, 0x10d23, +0x10d4a, 0x10d65, +0x10d6f, 0x10d85, +0x10e80, 0x10ea9, +0x10eb0, 0x10eb1, +0x10ec2, 0x10ec4, +0x10f00, 0x10f1c, +0x10f27, 0x10f27, +0x10f30, 0x10f45, +0x10f70, 0x10f81, +0x10fb0, 0x10fc4, +0x10fe0, 0x10ff6, +0x11003, 0x11037, +0x11071, 0x11072, +0x11075, 0x11075, +0x11083, 0x110af, +0x110d0, 0x110e8, +0x11103, 0x11126, +0x11144, 0x11144, +0x11147, 0x11147, +0x11150, 0x11172, +0x11176, 0x11176, +0x11183, 0x111b2, +0x111c1, 0x111c4, +0x111da, 0x111da, +0x111dc, 0x111dc, +0x11200, 0x11211, +0x11213, 0x1122b, +0x1123f, 0x11240, +0x11280, 0x11286, +0x11288, 0x11288, +0x1128a, 0x1128d, +0x1128f, 0x1129d, +0x1129f, 0x112a8, +0x112b0, 0x112de, +0x11305, 0x1130c, +0x1130f, 0x11310, +0x11313, 0x11328, +0x1132a, 0x11330, +0x11332, 0x11333, +0x11335, 0x11339, +0x1133d, 0x1133d, +0x11350, 0x11350, +0x1135d, 0x11361, +0x11380, 0x11389, +0x1138b, 0x1138b, +0x1138e, 0x1138e, +0x11390, 0x113b5, +0x113b7, 0x113b7, +0x113d1, 0x113d1, +0x113d3, 0x113d3, +0x11400, 0x11434, +0x11447, 0x1144a, +0x1145f, 0x11461, +0x11480, 0x114af, +0x114c4, 0x114c5, +0x114c7, 0x114c7, +0x11580, 0x115ae, +0x115d8, 0x115db, +0x11600, 0x1162f, +0x11644, 0x11644, +0x11680, 0x116aa, +0x116b8, 0x116b8, +0x11700, 0x1171a, +0x11740, 0x11746, +0x11800, 0x1182b, +0x118a0, 0x118df, +0x118ff, 0x11906, +0x11909, 0x11909, +0x1190c, 0x11913, +0x11915, 0x11916, +0x11918, 0x1192f, +0x1193f, 0x1193f, +0x11941, 0x11941, +0x119a0, 0x119a7, +0x119aa, 0x119d0, +0x119e1, 0x119e1, +0x119e3, 0x119e3, +0x11a00, 0x11a00, +0x11a0b, 0x11a32, +0x11a3a, 0x11a3a, +0x11a50, 0x11a50, +0x11a5c, 0x11a89, +0x11a9d, 0x11a9d, +0x11ab0, 0x11af8, +0x11bc0, 0x11be0, +0x11c00, 0x11c08, +0x11c0a, 0x11c2e, +0x11c40, 0x11c40, +0x11c72, 0x11c8f, +0x11d00, 0x11d06, +0x11d08, 0x11d09, +0x11d0b, 0x11d30, +0x11d46, 0x11d46, +0x11d60, 0x11d65, +0x11d67, 0x11d68, +0x11d6a, 0x11d89, +0x11d98, 0x11d98, +0x11ee0, 0x11ef2, +0x11f02, 0x11f02, +0x11f04, 0x11f10, +0x11f12, 0x11f33, +0x11fb0, 0x11fb0, +0x12000, 0x12399, +0x12400, 0x1246e, +0x12480, 0x12543, +0x12f90, 0x12ff0, +0x13000, 0x1342f, +0x13441, 0x13446, +0x13460, 0x143fa, +0x14400, 0x14646, +0x16100, 0x1611d, +0x16800, 0x16a38, +0x16a40, 0x16a5e, +0x16a70, 0x16abe, +0x16ad0, 0x16aed, +0x16b00, 0x16b2f, +0x16b40, 0x16b43, +0x16b63, 0x16b77, +0x16b7d, 0x16b8f, +0x16d40, 0x16d6c, +0x16e40, 0x16e7f, +0x16f00, 0x16f4a, +0x16f50, 0x16f50, +0x16f93, 0x16f9f, +0x16fe0, 0x16fe1, +0x16fe3, 0x16fe3, +0x17000, 0x187f7, +0x18800, 0x18cd5, +0x18cff, 0x18d08, +0x1aff0, 0x1aff3, +0x1aff5, 0x1affb, +0x1affd, 0x1affe, +0x1b000, 0x1b122, +0x1b132, 0x1b132, +0x1b150, 0x1b152, +0x1b155, 0x1b155, +0x1b164, 0x1b167, +0x1b170, 0x1b2fb, +0x1bc00, 0x1bc6a, +0x1bc70, 0x1bc7c, +0x1bc80, 0x1bc88, +0x1bc90, 0x1bc99, +0x1d400, 0x1d454, +0x1d456, 0x1d49c, +0x1d49e, 0x1d49f, +0x1d4a2, 0x1d4a2, +0x1d4a5, 0x1d4a6, +0x1d4a9, 0x1d4ac, +0x1d4ae, 0x1d4b9, +0x1d4bb, 0x1d4bb, +0x1d4bd, 0x1d4c3, +0x1d4c5, 0x1d505, +0x1d507, 0x1d50a, +0x1d50d, 0x1d514, +0x1d516, 0x1d51c, +0x1d51e, 0x1d539, +0x1d53b, 0x1d53e, +0x1d540, 0x1d544, +0x1d546, 0x1d546, +0x1d54a, 0x1d550, +0x1d552, 0x1d6a5, +0x1d6a8, 0x1d6c0, +0x1d6c2, 0x1d6da, +0x1d6dc, 0x1d6fa, +0x1d6fc, 0x1d714, +0x1d716, 0x1d734, +0x1d736, 0x1d74e, +0x1d750, 0x1d76e, +0x1d770, 0x1d788, +0x1d78a, 0x1d7a8, +0x1d7aa, 0x1d7c2, +0x1d7c4, 0x1d7cb, +0x1df00, 0x1df1e, +0x1df25, 0x1df2a, +0x1e030, 0x1e06d, +0x1e100, 0x1e12c, +0x1e137, 0x1e13d, +0x1e14e, 0x1e14e, +0x1e290, 0x1e2ad, +0x1e2c0, 0x1e2eb, +0x1e4d0, 0x1e4eb, +0x1e5d0, 0x1e5ed, +0x1e5f0, 0x1e5f0, +0x1e7e0, 0x1e7e6, +0x1e7e8, 0x1e7eb, +0x1e7ed, 0x1e7ee, +0x1e7f0, 0x1e7fe, +0x1e800, 0x1e8c4, +0x1e900, 0x1e943, +0x1e94b, 0x1e94b, +0x1ee00, 0x1ee03, +0x1ee05, 0x1ee1f, +0x1ee21, 0x1ee22, +0x1ee24, 0x1ee24, +0x1ee27, 0x1ee27, +0x1ee29, 0x1ee32, +0x1ee34, 0x1ee37, +0x1ee39, 0x1ee39, +0x1ee3b, 0x1ee3b, +0x1ee42, 0x1ee42, +0x1ee47, 0x1ee47, +0x1ee49, 0x1ee49, +0x1ee4b, 0x1ee4b, +0x1ee4d, 0x1ee4f, +0x1ee51, 0x1ee52, +0x1ee54, 0x1ee54, +0x1ee57, 0x1ee57, +0x1ee59, 0x1ee59, +0x1ee5b, 0x1ee5b, +0x1ee5d, 0x1ee5d, +0x1ee5f, 0x1ee5f, +0x1ee61, 0x1ee62, +0x1ee64, 0x1ee64, +0x1ee67, 0x1ee6a, +0x1ee6c, 0x1ee72, +0x1ee74, 0x1ee77, +0x1ee79, 0x1ee7c, +0x1ee7e, 0x1ee7e, +0x1ee80, 0x1ee89, +0x1ee8b, 0x1ee9b, +0x1eea1, 0x1eea3, +0x1eea5, 0x1eea9, +0x1eeab, 0x1eebb, +0x20000, 0x2a6df, +0x2a700, 0x2b739, +0x2b740, 0x2b81d, +0x2b820, 0x2cea1, +0x2ceb0, 0x2ebe0, +0x2ebf0, 0x2ee5d, +0x2f800, 0x2fa1d, +0x30000, 0x3134a, +0x31350, 0x323af, +}; /* END of CR_XID_Start */ + +/* PROPERTY: 'Yezidi': Script */ +static const OnigCodePoint +CR_Yezidi[] = { 3, +0x10e80, 0x10ea9, +0x10eab, 0x10ead, +0x10eb0, 0x10eb1, +}; /* END of CR_Yezidi */ + +/* PROPERTY: 'Yi': Script */ +static const OnigCodePoint +CR_Yi[] = { 2, +0xa000, 0xa48c, +0xa490, 0xa4c6, +}; /* END of CR_Yi */ + +/* PROPERTY: 'Z': Major Category */ +static const OnigCodePoint +CR_Z[] = { 8, +0x0020, 0x0020, +0x00a0, 0x00a0, +0x1680, 0x1680, +0x2000, 0x200a, +0x2028, 0x2029, +0x202f, 0x202f, +0x205f, 0x205f, +0x3000, 0x3000, +}; /* END of CR_Z */ + +/* PROPERTY: 'Zanabazar_Square': Script */ +static const OnigCodePoint +CR_Zanabazar_Square[] = { 1, +0x11a00, 0x11a47, +}; /* END of CR_Zanabazar_Square */ + +/* PROPERTY: 'Zl': General Category */ +static const OnigCodePoint +CR_Zl[] = { 1, +0x2028, 0x2028, +}; /* END of CR_Zl */ + +/* PROPERTY: 'Zp': General Category */ +static const OnigCodePoint +CR_Zp[] = { 1, +0x2029, 0x2029, +}; /* END of CR_Zp */ + +/* PROPERTY: 'Zs': General Category */ +static const OnigCodePoint +CR_Zs[] = { 7, +0x0020, 0x0020, +0x00a0, 0x00a0, +0x1680, 0x1680, +0x2000, 0x200a, +0x202f, 0x202f, +0x205f, 0x205f, +0x3000, 0x3000, +}; /* END of CR_Zs */ + +/* PROPERTY: 'In_Basic_Latin': Block */ +#define CR_In_Basic_Latin CR_ASCII + +/* PROPERTY: 'In_Latin_1_Supplement': Block */ +static const OnigCodePoint +CR_In_Latin_1_Supplement[] = { 1, +0x0080, 0x00ff, +}; /* END of CR_In_Latin_1_Supplement */ + +/* PROPERTY: 'In_Latin_Extended_A': Block */ +static const OnigCodePoint +CR_In_Latin_Extended_A[] = { 1, +0x0100, 0x017f, +}; /* END of CR_In_Latin_Extended_A */ + +/* PROPERTY: 'In_Latin_Extended_B': Block */ +static const OnigCodePoint +CR_In_Latin_Extended_B[] = { 1, +0x0180, 0x024f, +}; /* END of CR_In_Latin_Extended_B */ + +/* PROPERTY: 'In_IPA_Extensions': Block */ +static const OnigCodePoint +CR_In_IPA_Extensions[] = { 1, +0x0250, 0x02af, +}; /* END of CR_In_IPA_Extensions */ + +/* PROPERTY: 'In_Spacing_Modifier_Letters': Block */ +static const OnigCodePoint +CR_In_Spacing_Modifier_Letters[] = { 1, +0x02b0, 0x02ff, +}; /* END of CR_In_Spacing_Modifier_Letters */ + +/* PROPERTY: 'In_Combining_Diacritical_Marks': Block */ +static const OnigCodePoint +CR_In_Combining_Diacritical_Marks[] = { 1, +0x0300, 0x036f, +}; /* END of CR_In_Combining_Diacritical_Marks */ + +/* PROPERTY: 'In_Greek_and_Coptic': Block */ +static const OnigCodePoint +CR_In_Greek_and_Coptic[] = { 1, +0x0370, 0x03ff, +}; /* END of CR_In_Greek_and_Coptic */ + +/* PROPERTY: 'In_Cyrillic': Block */ +static const OnigCodePoint +CR_In_Cyrillic[] = { 1, +0x0400, 0x04ff, +}; /* END of CR_In_Cyrillic */ + +/* PROPERTY: 'In_Cyrillic_Supplement': Block */ +static const OnigCodePoint +CR_In_Cyrillic_Supplement[] = { 1, +0x0500, 0x052f, +}; /* END of CR_In_Cyrillic_Supplement */ + +/* PROPERTY: 'In_Armenian': Block */ +static const OnigCodePoint +CR_In_Armenian[] = { 1, +0x0530, 0x058f, +}; /* END of CR_In_Armenian */ + +/* PROPERTY: 'In_Hebrew': Block */ +static const OnigCodePoint +CR_In_Hebrew[] = { 1, +0x0590, 0x05ff, +}; /* END of CR_In_Hebrew */ + +/* PROPERTY: 'In_Arabic': Block */ +static const OnigCodePoint +CR_In_Arabic[] = { 1, +0x0600, 0x06ff, +}; /* END of CR_In_Arabic */ + +/* PROPERTY: 'In_Syriac': Block */ +static const OnigCodePoint +CR_In_Syriac[] = { 1, +0x0700, 0x074f, +}; /* END of CR_In_Syriac */ + +/* PROPERTY: 'In_Arabic_Supplement': Block */ +static const OnigCodePoint +CR_In_Arabic_Supplement[] = { 1, +0x0750, 0x077f, +}; /* END of CR_In_Arabic_Supplement */ + +/* PROPERTY: 'In_Thaana': Block */ +static const OnigCodePoint +CR_In_Thaana[] = { 1, +0x0780, 0x07bf, +}; /* END of CR_In_Thaana */ + +/* PROPERTY: 'In_NKo': Block */ +static const OnigCodePoint +CR_In_NKo[] = { 1, +0x07c0, 0x07ff, +}; /* END of CR_In_NKo */ + +/* PROPERTY: 'In_Samaritan': Block */ +static const OnigCodePoint +CR_In_Samaritan[] = { 1, +0x0800, 0x083f, +}; /* END of CR_In_Samaritan */ + +/* PROPERTY: 'In_Mandaic': Block */ +static const OnigCodePoint +CR_In_Mandaic[] = { 1, +0x0840, 0x085f, +}; /* END of CR_In_Mandaic */ + +/* PROPERTY: 'In_Syriac_Supplement': Block */ +static const OnigCodePoint +CR_In_Syriac_Supplement[] = { 1, +0x0860, 0x086f, +}; /* END of CR_In_Syriac_Supplement */ + +/* PROPERTY: 'In_Arabic_Extended_B': Block */ +static const OnigCodePoint +CR_In_Arabic_Extended_B[] = { 1, +0x0870, 0x089f, +}; /* END of CR_In_Arabic_Extended_B */ + +/* PROPERTY: 'In_Arabic_Extended_A': Block */ +static const OnigCodePoint +CR_In_Arabic_Extended_A[] = { 1, +0x08a0, 0x08ff, +}; /* END of CR_In_Arabic_Extended_A */ + +/* PROPERTY: 'In_Devanagari': Block */ +static const OnigCodePoint +CR_In_Devanagari[] = { 1, +0x0900, 0x097f, +}; /* END of CR_In_Devanagari */ + +/* PROPERTY: 'In_Bengali': Block */ +static const OnigCodePoint +CR_In_Bengali[] = { 1, +0x0980, 0x09ff, +}; /* END of CR_In_Bengali */ + +/* PROPERTY: 'In_Gurmukhi': Block */ +static const OnigCodePoint +CR_In_Gurmukhi[] = { 1, +0x0a00, 0x0a7f, +}; /* END of CR_In_Gurmukhi */ + +/* PROPERTY: 'In_Gujarati': Block */ +static const OnigCodePoint +CR_In_Gujarati[] = { 1, +0x0a80, 0x0aff, +}; /* END of CR_In_Gujarati */ + +/* PROPERTY: 'In_Oriya': Block */ +static const OnigCodePoint +CR_In_Oriya[] = { 1, +0x0b00, 0x0b7f, +}; /* END of CR_In_Oriya */ + +/* PROPERTY: 'In_Tamil': Block */ +static const OnigCodePoint +CR_In_Tamil[] = { 1, +0x0b80, 0x0bff, +}; /* END of CR_In_Tamil */ + +/* PROPERTY: 'In_Telugu': Block */ +static const OnigCodePoint +CR_In_Telugu[] = { 1, +0x0c00, 0x0c7f, +}; /* END of CR_In_Telugu */ + +/* PROPERTY: 'In_Kannada': Block */ +static const OnigCodePoint +CR_In_Kannada[] = { 1, +0x0c80, 0x0cff, +}; /* END of CR_In_Kannada */ + +/* PROPERTY: 'In_Malayalam': Block */ +static const OnigCodePoint +CR_In_Malayalam[] = { 1, +0x0d00, 0x0d7f, +}; /* END of CR_In_Malayalam */ + +/* PROPERTY: 'In_Sinhala': Block */ +static const OnigCodePoint +CR_In_Sinhala[] = { 1, +0x0d80, 0x0dff, +}; /* END of CR_In_Sinhala */ + +/* PROPERTY: 'In_Thai': Block */ +static const OnigCodePoint +CR_In_Thai[] = { 1, +0x0e00, 0x0e7f, +}; /* END of CR_In_Thai */ + +/* PROPERTY: 'In_Lao': Block */ +static const OnigCodePoint +CR_In_Lao[] = { 1, +0x0e80, 0x0eff, +}; /* END of CR_In_Lao */ + +/* PROPERTY: 'In_Tibetan': Block */ +static const OnigCodePoint +CR_In_Tibetan[] = { 1, +0x0f00, 0x0fff, +}; /* END of CR_In_Tibetan */ + +/* PROPERTY: 'In_Myanmar': Block */ +static const OnigCodePoint +CR_In_Myanmar[] = { 1, +0x1000, 0x109f, +}; /* END of CR_In_Myanmar */ + +/* PROPERTY: 'In_Georgian': Block */ +static const OnigCodePoint +CR_In_Georgian[] = { 1, +0x10a0, 0x10ff, +}; /* END of CR_In_Georgian */ + +/* PROPERTY: 'In_Hangul_Jamo': Block */ +static const OnigCodePoint +CR_In_Hangul_Jamo[] = { 1, +0x1100, 0x11ff, +}; /* END of CR_In_Hangul_Jamo */ + +/* PROPERTY: 'In_Ethiopic': Block */ +static const OnigCodePoint +CR_In_Ethiopic[] = { 1, +0x1200, 0x137f, +}; /* END of CR_In_Ethiopic */ + +/* PROPERTY: 'In_Ethiopic_Supplement': Block */ +static const OnigCodePoint +CR_In_Ethiopic_Supplement[] = { 1, +0x1380, 0x139f, +}; /* END of CR_In_Ethiopic_Supplement */ + +/* PROPERTY: 'In_Cherokee': Block */ +static const OnigCodePoint +CR_In_Cherokee[] = { 1, +0x13a0, 0x13ff, +}; /* END of CR_In_Cherokee */ + +/* PROPERTY: 'In_Unified_Canadian_Aboriginal_Syllabics': Block */ +static const OnigCodePoint +CR_In_Unified_Canadian_Aboriginal_Syllabics[] = { 1, +0x1400, 0x167f, +}; /* END of CR_In_Unified_Canadian_Aboriginal_Syllabics */ + +/* PROPERTY: 'In_Ogham': Block */ +static const OnigCodePoint +CR_In_Ogham[] = { 1, +0x1680, 0x169f, +}; /* END of CR_In_Ogham */ + +/* PROPERTY: 'In_Runic': Block */ +static const OnigCodePoint +CR_In_Runic[] = { 1, +0x16a0, 0x16ff, +}; /* END of CR_In_Runic */ + +/* PROPERTY: 'In_Tagalog': Block */ +static const OnigCodePoint +CR_In_Tagalog[] = { 1, +0x1700, 0x171f, +}; /* END of CR_In_Tagalog */ + +/* PROPERTY: 'In_Hanunoo': Block */ +static const OnigCodePoint +CR_In_Hanunoo[] = { 1, +0x1720, 0x173f, +}; /* END of CR_In_Hanunoo */ + +/* PROPERTY: 'In_Buhid': Block */ +static const OnigCodePoint +CR_In_Buhid[] = { 1, +0x1740, 0x175f, +}; /* END of CR_In_Buhid */ + +/* PROPERTY: 'In_Tagbanwa': Block */ +static const OnigCodePoint +CR_In_Tagbanwa[] = { 1, +0x1760, 0x177f, +}; /* END of CR_In_Tagbanwa */ + +/* PROPERTY: 'In_Khmer': Block */ +static const OnigCodePoint +CR_In_Khmer[] = { 1, +0x1780, 0x17ff, +}; /* END of CR_In_Khmer */ + +/* PROPERTY: 'In_Mongolian': Block */ +static const OnigCodePoint +CR_In_Mongolian[] = { 1, +0x1800, 0x18af, +}; /* END of CR_In_Mongolian */ + +/* PROPERTY: 'In_Unified_Canadian_Aboriginal_Syllabics_Extended': Block */ +static const OnigCodePoint +CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended[] = { 1, +0x18b0, 0x18ff, +}; /* END of CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended */ + +/* PROPERTY: 'In_Limbu': Block */ +static const OnigCodePoint +CR_In_Limbu[] = { 1, +0x1900, 0x194f, +}; /* END of CR_In_Limbu */ + +/* PROPERTY: 'In_Tai_Le': Block */ +static const OnigCodePoint +CR_In_Tai_Le[] = { 1, +0x1950, 0x197f, +}; /* END of CR_In_Tai_Le */ + +/* PROPERTY: 'In_New_Tai_Lue': Block */ +static const OnigCodePoint +CR_In_New_Tai_Lue[] = { 1, +0x1980, 0x19df, +}; /* END of CR_In_New_Tai_Lue */ + +/* PROPERTY: 'In_Khmer_Symbols': Block */ +static const OnigCodePoint +CR_In_Khmer_Symbols[] = { 1, +0x19e0, 0x19ff, +}; /* END of CR_In_Khmer_Symbols */ + +/* PROPERTY: 'In_Buginese': Block */ +static const OnigCodePoint +CR_In_Buginese[] = { 1, +0x1a00, 0x1a1f, +}; /* END of CR_In_Buginese */ + +/* PROPERTY: 'In_Tai_Tham': Block */ +static const OnigCodePoint +CR_In_Tai_Tham[] = { 1, +0x1a20, 0x1aaf, +}; /* END of CR_In_Tai_Tham */ + +/* PROPERTY: 'In_Combining_Diacritical_Marks_Extended': Block */ +static const OnigCodePoint +CR_In_Combining_Diacritical_Marks_Extended[] = { 1, +0x1ab0, 0x1aff, +}; /* END of CR_In_Combining_Diacritical_Marks_Extended */ + +/* PROPERTY: 'In_Balinese': Block */ +static const OnigCodePoint +CR_In_Balinese[] = { 1, +0x1b00, 0x1b7f, +}; /* END of CR_In_Balinese */ + +/* PROPERTY: 'In_Sundanese': Block */ +static const OnigCodePoint +CR_In_Sundanese[] = { 1, +0x1b80, 0x1bbf, +}; /* END of CR_In_Sundanese */ + +/* PROPERTY: 'In_Batak': Block */ +static const OnigCodePoint +CR_In_Batak[] = { 1, +0x1bc0, 0x1bff, +}; /* END of CR_In_Batak */ + +/* PROPERTY: 'In_Lepcha': Block */ +static const OnigCodePoint +CR_In_Lepcha[] = { 1, +0x1c00, 0x1c4f, +}; /* END of CR_In_Lepcha */ + +/* PROPERTY: 'In_Ol_Chiki': Block */ +#define CR_In_Ol_Chiki CR_Ol_Chiki + +/* PROPERTY: 'In_Cyrillic_Extended_C': Block */ +static const OnigCodePoint +CR_In_Cyrillic_Extended_C[] = { 1, +0x1c80, 0x1c8f, +}; /* END of CR_In_Cyrillic_Extended_C */ + +/* PROPERTY: 'In_Georgian_Extended': Block */ +static const OnigCodePoint +CR_In_Georgian_Extended[] = { 1, +0x1c90, 0x1cbf, +}; /* END of CR_In_Georgian_Extended */ + +/* PROPERTY: 'In_Sundanese_Supplement': Block */ +static const OnigCodePoint +CR_In_Sundanese_Supplement[] = { 1, +0x1cc0, 0x1ccf, +}; /* END of CR_In_Sundanese_Supplement */ + +/* PROPERTY: 'In_Vedic_Extensions': Block */ +static const OnigCodePoint +CR_In_Vedic_Extensions[] = { 1, +0x1cd0, 0x1cff, +}; /* END of CR_In_Vedic_Extensions */ + +/* PROPERTY: 'In_Phonetic_Extensions': Block */ +static const OnigCodePoint +CR_In_Phonetic_Extensions[] = { 1, +0x1d00, 0x1d7f, +}; /* END of CR_In_Phonetic_Extensions */ + +/* PROPERTY: 'In_Phonetic_Extensions_Supplement': Block */ +static const OnigCodePoint +CR_In_Phonetic_Extensions_Supplement[] = { 1, +0x1d80, 0x1dbf, +}; /* END of CR_In_Phonetic_Extensions_Supplement */ + +/* PROPERTY: 'In_Combining_Diacritical_Marks_Supplement': Block */ +static const OnigCodePoint +CR_In_Combining_Diacritical_Marks_Supplement[] = { 1, +0x1dc0, 0x1dff, +}; /* END of CR_In_Combining_Diacritical_Marks_Supplement */ + +/* PROPERTY: 'In_Latin_Extended_Additional': Block */ +static const OnigCodePoint +CR_In_Latin_Extended_Additional[] = { 1, +0x1e00, 0x1eff, +}; /* END of CR_In_Latin_Extended_Additional */ + +/* PROPERTY: 'In_Greek_Extended': Block */ +static const OnigCodePoint +CR_In_Greek_Extended[] = { 1, +0x1f00, 0x1fff, +}; /* END of CR_In_Greek_Extended */ + +/* PROPERTY: 'In_General_Punctuation': Block */ +static const OnigCodePoint +CR_In_General_Punctuation[] = { 1, +0x2000, 0x206f, +}; /* END of CR_In_General_Punctuation */ + +/* PROPERTY: 'In_Superscripts_and_Subscripts': Block */ +static const OnigCodePoint +CR_In_Superscripts_and_Subscripts[] = { 1, +0x2070, 0x209f, +}; /* END of CR_In_Superscripts_and_Subscripts */ + +/* PROPERTY: 'In_Currency_Symbols': Block */ +static const OnigCodePoint +CR_In_Currency_Symbols[] = { 1, +0x20a0, 0x20cf, +}; /* END of CR_In_Currency_Symbols */ + +/* PROPERTY: 'In_Combining_Diacritical_Marks_for_Symbols': Block */ +static const OnigCodePoint +CR_In_Combining_Diacritical_Marks_for_Symbols[] = { 1, +0x20d0, 0x20ff, +}; /* END of CR_In_Combining_Diacritical_Marks_for_Symbols */ + +/* PROPERTY: 'In_Letterlike_Symbols': Block */ +static const OnigCodePoint +CR_In_Letterlike_Symbols[] = { 1, +0x2100, 0x214f, +}; /* END of CR_In_Letterlike_Symbols */ + +/* PROPERTY: 'In_Number_Forms': Block */ +static const OnigCodePoint +CR_In_Number_Forms[] = { 1, +0x2150, 0x218f, +}; /* END of CR_In_Number_Forms */ + +/* PROPERTY: 'In_Arrows': Block */ +static const OnigCodePoint +CR_In_Arrows[] = { 1, +0x2190, 0x21ff, +}; /* END of CR_In_Arrows */ + +/* PROPERTY: 'In_Mathematical_Operators': Block */ +static const OnigCodePoint +CR_In_Mathematical_Operators[] = { 1, +0x2200, 0x22ff, +}; /* END of CR_In_Mathematical_Operators */ + +/* PROPERTY: 'In_Miscellaneous_Technical': Block */ +static const OnigCodePoint +CR_In_Miscellaneous_Technical[] = { 1, +0x2300, 0x23ff, +}; /* END of CR_In_Miscellaneous_Technical */ + +/* PROPERTY: 'In_Control_Pictures': Block */ +static const OnigCodePoint +CR_In_Control_Pictures[] = { 1, +0x2400, 0x243f, +}; /* END of CR_In_Control_Pictures */ + +/* PROPERTY: 'In_Optical_Character_Recognition': Block */ +static const OnigCodePoint +CR_In_Optical_Character_Recognition[] = { 1, +0x2440, 0x245f, +}; /* END of CR_In_Optical_Character_Recognition */ + +/* PROPERTY: 'In_Enclosed_Alphanumerics': Block */ +static const OnigCodePoint +CR_In_Enclosed_Alphanumerics[] = { 1, +0x2460, 0x24ff, +}; /* END of CR_In_Enclosed_Alphanumerics */ + +/* PROPERTY: 'In_Box_Drawing': Block */ +static const OnigCodePoint +CR_In_Box_Drawing[] = { 1, +0x2500, 0x257f, +}; /* END of CR_In_Box_Drawing */ + +/* PROPERTY: 'In_Block_Elements': Block */ +static const OnigCodePoint +CR_In_Block_Elements[] = { 1, +0x2580, 0x259f, +}; /* END of CR_In_Block_Elements */ + +/* PROPERTY: 'In_Geometric_Shapes': Block */ +static const OnigCodePoint +CR_In_Geometric_Shapes[] = { 1, +0x25a0, 0x25ff, +}; /* END of CR_In_Geometric_Shapes */ + +/* PROPERTY: 'In_Miscellaneous_Symbols': Block */ +static const OnigCodePoint +CR_In_Miscellaneous_Symbols[] = { 1, +0x2600, 0x26ff, +}; /* END of CR_In_Miscellaneous_Symbols */ + +/* PROPERTY: 'In_Dingbats': Block */ +static const OnigCodePoint +CR_In_Dingbats[] = { 1, +0x2700, 0x27bf, +}; /* END of CR_In_Dingbats */ + +/* PROPERTY: 'In_Miscellaneous_Mathematical_Symbols_A': Block */ +static const OnigCodePoint +CR_In_Miscellaneous_Mathematical_Symbols_A[] = { 1, +0x27c0, 0x27ef, +}; /* END of CR_In_Miscellaneous_Mathematical_Symbols_A */ + +/* PROPERTY: 'In_Supplemental_Arrows_A': Block */ +static const OnigCodePoint +CR_In_Supplemental_Arrows_A[] = { 1, +0x27f0, 0x27ff, +}; /* END of CR_In_Supplemental_Arrows_A */ + +/* PROPERTY: 'In_Braille_Patterns': Block */ +#define CR_In_Braille_Patterns CR_Braille + +/* PROPERTY: 'In_Supplemental_Arrows_B': Block */ +static const OnigCodePoint +CR_In_Supplemental_Arrows_B[] = { 1, +0x2900, 0x297f, +}; /* END of CR_In_Supplemental_Arrows_B */ + +/* PROPERTY: 'In_Miscellaneous_Mathematical_Symbols_B': Block */ +static const OnigCodePoint +CR_In_Miscellaneous_Mathematical_Symbols_B[] = { 1, +0x2980, 0x29ff, +}; /* END of CR_In_Miscellaneous_Mathematical_Symbols_B */ + +/* PROPERTY: 'In_Supplemental_Mathematical_Operators': Block */ +static const OnigCodePoint +CR_In_Supplemental_Mathematical_Operators[] = { 1, +0x2a00, 0x2aff, +}; /* END of CR_In_Supplemental_Mathematical_Operators */ + +/* PROPERTY: 'In_Miscellaneous_Symbols_and_Arrows': Block */ +static const OnigCodePoint +CR_In_Miscellaneous_Symbols_and_Arrows[] = { 1, +0x2b00, 0x2bff, +}; /* END of CR_In_Miscellaneous_Symbols_and_Arrows */ + +/* PROPERTY: 'In_Glagolitic': Block */ +static const OnigCodePoint +CR_In_Glagolitic[] = { 1, +0x2c00, 0x2c5f, +}; /* END of CR_In_Glagolitic */ + +/* PROPERTY: 'In_Latin_Extended_C': Block */ +static const OnigCodePoint +CR_In_Latin_Extended_C[] = { 1, +0x2c60, 0x2c7f, +}; /* END of CR_In_Latin_Extended_C */ + +/* PROPERTY: 'In_Coptic': Block */ +static const OnigCodePoint +CR_In_Coptic[] = { 1, +0x2c80, 0x2cff, +}; /* END of CR_In_Coptic */ + +/* PROPERTY: 'In_Georgian_Supplement': Block */ +static const OnigCodePoint +CR_In_Georgian_Supplement[] = { 1, +0x2d00, 0x2d2f, +}; /* END of CR_In_Georgian_Supplement */ + +/* PROPERTY: 'In_Tifinagh': Block */ +static const OnigCodePoint +CR_In_Tifinagh[] = { 1, +0x2d30, 0x2d7f, +}; /* END of CR_In_Tifinagh */ + +/* PROPERTY: 'In_Ethiopic_Extended': Block */ +static const OnigCodePoint +CR_In_Ethiopic_Extended[] = { 1, +0x2d80, 0x2ddf, +}; /* END of CR_In_Ethiopic_Extended */ + +/* PROPERTY: 'In_Cyrillic_Extended_A': Block */ +static const OnigCodePoint +CR_In_Cyrillic_Extended_A[] = { 1, +0x2de0, 0x2dff, +}; /* END of CR_In_Cyrillic_Extended_A */ + +/* PROPERTY: 'In_Supplemental_Punctuation': Block */ +static const OnigCodePoint +CR_In_Supplemental_Punctuation[] = { 1, +0x2e00, 0x2e7f, +}; /* END of CR_In_Supplemental_Punctuation */ + +/* PROPERTY: 'In_CJK_Radicals_Supplement': Block */ +static const OnigCodePoint +CR_In_CJK_Radicals_Supplement[] = { 1, +0x2e80, 0x2eff, +}; /* END of CR_In_CJK_Radicals_Supplement */ + +/* PROPERTY: 'In_Kangxi_Radicals': Block */ +static const OnigCodePoint +CR_In_Kangxi_Radicals[] = { 1, +0x2f00, 0x2fdf, +}; /* END of CR_In_Kangxi_Radicals */ + +/* PROPERTY: 'In_Ideographic_Description_Characters': Block */ +static const OnigCodePoint +CR_In_Ideographic_Description_Characters[] = { 1, +0x2ff0, 0x2fff, +}; /* END of CR_In_Ideographic_Description_Characters */ + +/* PROPERTY: 'In_CJK_Symbols_and_Punctuation': Block */ +static const OnigCodePoint +CR_In_CJK_Symbols_and_Punctuation[] = { 1, +0x3000, 0x303f, +}; /* END of CR_In_CJK_Symbols_and_Punctuation */ + +/* PROPERTY: 'In_Hiragana': Block */ +static const OnigCodePoint +CR_In_Hiragana[] = { 1, +0x3040, 0x309f, +}; /* END of CR_In_Hiragana */ + +/* PROPERTY: 'In_Katakana': Block */ +static const OnigCodePoint +CR_In_Katakana[] = { 1, +0x30a0, 0x30ff, +}; /* END of CR_In_Katakana */ + +/* PROPERTY: 'In_Bopomofo': Block */ +static const OnigCodePoint +CR_In_Bopomofo[] = { 1, +0x3100, 0x312f, +}; /* END of CR_In_Bopomofo */ + +/* PROPERTY: 'In_Hangul_Compatibility_Jamo': Block */ +static const OnigCodePoint +CR_In_Hangul_Compatibility_Jamo[] = { 1, +0x3130, 0x318f, +}; /* END of CR_In_Hangul_Compatibility_Jamo */ + +/* PROPERTY: 'In_Kanbun': Block */ +static const OnigCodePoint +CR_In_Kanbun[] = { 1, +0x3190, 0x319f, +}; /* END of CR_In_Kanbun */ + +/* PROPERTY: 'In_Bopomofo_Extended': Block */ +static const OnigCodePoint +CR_In_Bopomofo_Extended[] = { 1, +0x31a0, 0x31bf, +}; /* END of CR_In_Bopomofo_Extended */ + +/* PROPERTY: 'In_CJK_Strokes': Block */ +static const OnigCodePoint +CR_In_CJK_Strokes[] = { 1, +0x31c0, 0x31ef, +}; /* END of CR_In_CJK_Strokes */ + +/* PROPERTY: 'In_Katakana_Phonetic_Extensions': Block */ +static const OnigCodePoint +CR_In_Katakana_Phonetic_Extensions[] = { 1, +0x31f0, 0x31ff, +}; /* END of CR_In_Katakana_Phonetic_Extensions */ + +/* PROPERTY: 'In_Enclosed_CJK_Letters_and_Months': Block */ +static const OnigCodePoint +CR_In_Enclosed_CJK_Letters_and_Months[] = { 1, +0x3200, 0x32ff, +}; /* END of CR_In_Enclosed_CJK_Letters_and_Months */ + +/* PROPERTY: 'In_CJK_Compatibility': Block */ +static const OnigCodePoint +CR_In_CJK_Compatibility[] = { 1, +0x3300, 0x33ff, +}; /* END of CR_In_CJK_Compatibility */ + +/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_A': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs_Extension_A[] = { 1, +0x3400, 0x4dbf, +}; /* END of CR_In_CJK_Unified_Ideographs_Extension_A */ + +/* PROPERTY: 'In_Yijing_Hexagram_Symbols': Block */ +static const OnigCodePoint +CR_In_Yijing_Hexagram_Symbols[] = { 1, +0x4dc0, 0x4dff, +}; /* END of CR_In_Yijing_Hexagram_Symbols */ + +/* PROPERTY: 'In_CJK_Unified_Ideographs': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs[] = { 1, +0x4e00, 0x9fff, +}; /* END of CR_In_CJK_Unified_Ideographs */ + +/* PROPERTY: 'In_Yi_Syllables': Block */ +static const OnigCodePoint +CR_In_Yi_Syllables[] = { 1, +0xa000, 0xa48f, +}; /* END of CR_In_Yi_Syllables */ + +/* PROPERTY: 'In_Yi_Radicals': Block */ +static const OnigCodePoint +CR_In_Yi_Radicals[] = { 1, +0xa490, 0xa4cf, +}; /* END of CR_In_Yi_Radicals */ + +/* PROPERTY: 'In_Lisu': Block */ +static const OnigCodePoint +CR_In_Lisu[] = { 1, +0xa4d0, 0xa4ff, +}; /* END of CR_In_Lisu */ + +/* PROPERTY: 'In_Vai': Block */ +static const OnigCodePoint +CR_In_Vai[] = { 1, +0xa500, 0xa63f, +}; /* END of CR_In_Vai */ + +/* PROPERTY: 'In_Cyrillic_Extended_B': Block */ +static const OnigCodePoint +CR_In_Cyrillic_Extended_B[] = { 1, +0xa640, 0xa69f, +}; /* END of CR_In_Cyrillic_Extended_B */ + +/* PROPERTY: 'In_Bamum': Block */ +static const OnigCodePoint +CR_In_Bamum[] = { 1, +0xa6a0, 0xa6ff, +}; /* END of CR_In_Bamum */ + +/* PROPERTY: 'In_Modifier_Tone_Letters': Block */ +static const OnigCodePoint +CR_In_Modifier_Tone_Letters[] = { 1, +0xa700, 0xa71f, +}; /* END of CR_In_Modifier_Tone_Letters */ + +/* PROPERTY: 'In_Latin_Extended_D': Block */ +static const OnigCodePoint +CR_In_Latin_Extended_D[] = { 1, +0xa720, 0xa7ff, +}; /* END of CR_In_Latin_Extended_D */ + +/* PROPERTY: 'In_Syloti_Nagri': Block */ +static const OnigCodePoint +CR_In_Syloti_Nagri[] = { 1, +0xa800, 0xa82f, +}; /* END of CR_In_Syloti_Nagri */ + +/* PROPERTY: 'In_Common_Indic_Number_Forms': Block */ +static const OnigCodePoint +CR_In_Common_Indic_Number_Forms[] = { 1, +0xa830, 0xa83f, +}; /* END of CR_In_Common_Indic_Number_Forms */ + +/* PROPERTY: 'In_Phags_pa': Block */ +static const OnigCodePoint +CR_In_Phags_pa[] = { 1, +0xa840, 0xa87f, +}; /* END of CR_In_Phags_pa */ + +/* PROPERTY: 'In_Saurashtra': Block */ +static const OnigCodePoint +CR_In_Saurashtra[] = { 1, +0xa880, 0xa8df, +}; /* END of CR_In_Saurashtra */ + +/* PROPERTY: 'In_Devanagari_Extended': Block */ +static const OnigCodePoint +CR_In_Devanagari_Extended[] = { 1, +0xa8e0, 0xa8ff, +}; /* END of CR_In_Devanagari_Extended */ + +/* PROPERTY: 'In_Kayah_Li': Block */ +static const OnigCodePoint +CR_In_Kayah_Li[] = { 1, +0xa900, 0xa92f, +}; /* END of CR_In_Kayah_Li */ + +/* PROPERTY: 'In_Rejang': Block */ +static const OnigCodePoint +CR_In_Rejang[] = { 1, +0xa930, 0xa95f, +}; /* END of CR_In_Rejang */ + +/* PROPERTY: 'In_Hangul_Jamo_Extended_A': Block */ +static const OnigCodePoint +CR_In_Hangul_Jamo_Extended_A[] = { 1, +0xa960, 0xa97f, +}; /* END of CR_In_Hangul_Jamo_Extended_A */ + +/* PROPERTY: 'In_Javanese': Block */ +static const OnigCodePoint +CR_In_Javanese[] = { 1, +0xa980, 0xa9df, +}; /* END of CR_In_Javanese */ + +/* PROPERTY: 'In_Myanmar_Extended_B': Block */ +static const OnigCodePoint +CR_In_Myanmar_Extended_B[] = { 1, +0xa9e0, 0xa9ff, +}; /* END of CR_In_Myanmar_Extended_B */ + +/* PROPERTY: 'In_Cham': Block */ +static const OnigCodePoint +CR_In_Cham[] = { 1, +0xaa00, 0xaa5f, +}; /* END of CR_In_Cham */ + +/* PROPERTY: 'In_Myanmar_Extended_A': Block */ +static const OnigCodePoint +CR_In_Myanmar_Extended_A[] = { 1, +0xaa60, 0xaa7f, +}; /* END of CR_In_Myanmar_Extended_A */ + +/* PROPERTY: 'In_Tai_Viet': Block */ +static const OnigCodePoint +CR_In_Tai_Viet[] = { 1, +0xaa80, 0xaadf, +}; /* END of CR_In_Tai_Viet */ + +/* PROPERTY: 'In_Meetei_Mayek_Extensions': Block */ +static const OnigCodePoint +CR_In_Meetei_Mayek_Extensions[] = { 1, +0xaae0, 0xaaff, +}; /* END of CR_In_Meetei_Mayek_Extensions */ + +/* PROPERTY: 'In_Ethiopic_Extended_A': Block */ +static const OnigCodePoint +CR_In_Ethiopic_Extended_A[] = { 1, +0xab00, 0xab2f, +}; /* END of CR_In_Ethiopic_Extended_A */ + +/* PROPERTY: 'In_Latin_Extended_E': Block */ +static const OnigCodePoint +CR_In_Latin_Extended_E[] = { 1, +0xab30, 0xab6f, +}; /* END of CR_In_Latin_Extended_E */ + +/* PROPERTY: 'In_Cherokee_Supplement': Block */ +static const OnigCodePoint +CR_In_Cherokee_Supplement[] = { 1, +0xab70, 0xabbf, +}; /* END of CR_In_Cherokee_Supplement */ + +/* PROPERTY: 'In_Meetei_Mayek': Block */ +static const OnigCodePoint +CR_In_Meetei_Mayek[] = { 1, +0xabc0, 0xabff, +}; /* END of CR_In_Meetei_Mayek */ + +/* PROPERTY: 'In_Hangul_Syllables': Block */ +static const OnigCodePoint +CR_In_Hangul_Syllables[] = { 1, +0xac00, 0xd7af, +}; /* END of CR_In_Hangul_Syllables */ + +/* PROPERTY: 'In_Hangul_Jamo_Extended_B': Block */ +static const OnigCodePoint +CR_In_Hangul_Jamo_Extended_B[] = { 1, +0xd7b0, 0xd7ff, +}; /* END of CR_In_Hangul_Jamo_Extended_B */ + +/* PROPERTY: 'In_High_Surrogates': Block */ +static const OnigCodePoint +CR_In_High_Surrogates[] = { 1, +0xd800, 0xdb7f, +}; /* END of CR_In_High_Surrogates */ + +/* PROPERTY: 'In_High_Private_Use_Surrogates': Block */ +static const OnigCodePoint +CR_In_High_Private_Use_Surrogates[] = { 1, +0xdb80, 0xdbff, +}; /* END of CR_In_High_Private_Use_Surrogates */ + +/* PROPERTY: 'In_Low_Surrogates': Block */ +static const OnigCodePoint +CR_In_Low_Surrogates[] = { 1, +0xdc00, 0xdfff, +}; /* END of CR_In_Low_Surrogates */ + +/* PROPERTY: 'In_Private_Use_Area': Block */ +static const OnigCodePoint +CR_In_Private_Use_Area[] = { 1, +0xe000, 0xf8ff, +}; /* END of CR_In_Private_Use_Area */ + +/* PROPERTY: 'In_CJK_Compatibility_Ideographs': Block */ +static const OnigCodePoint +CR_In_CJK_Compatibility_Ideographs[] = { 1, +0xf900, 0xfaff, +}; /* END of CR_In_CJK_Compatibility_Ideographs */ + +/* PROPERTY: 'In_Alphabetic_Presentation_Forms': Block */ +static const OnigCodePoint +CR_In_Alphabetic_Presentation_Forms[] = { 1, +0xfb00, 0xfb4f, +}; /* END of CR_In_Alphabetic_Presentation_Forms */ + +/* PROPERTY: 'In_Arabic_Presentation_Forms_A': Block */ +static const OnigCodePoint +CR_In_Arabic_Presentation_Forms_A[] = { 1, +0xfb50, 0xfdff, +}; /* END of CR_In_Arabic_Presentation_Forms_A */ + +/* PROPERTY: 'In_Variation_Selectors': Block */ +static const OnigCodePoint +CR_In_Variation_Selectors[] = { 1, +0xfe00, 0xfe0f, +}; /* END of CR_In_Variation_Selectors */ + +/* PROPERTY: 'In_Vertical_Forms': Block */ +static const OnigCodePoint +CR_In_Vertical_Forms[] = { 1, +0xfe10, 0xfe1f, +}; /* END of CR_In_Vertical_Forms */ + +/* PROPERTY: 'In_Combining_Half_Marks': Block */ +static const OnigCodePoint +CR_In_Combining_Half_Marks[] = { 1, +0xfe20, 0xfe2f, +}; /* END of CR_In_Combining_Half_Marks */ + +/* PROPERTY: 'In_CJK_Compatibility_Forms': Block */ +static const OnigCodePoint +CR_In_CJK_Compatibility_Forms[] = { 1, +0xfe30, 0xfe4f, +}; /* END of CR_In_CJK_Compatibility_Forms */ + +/* PROPERTY: 'In_Small_Form_Variants': Block */ +static const OnigCodePoint +CR_In_Small_Form_Variants[] = { 1, +0xfe50, 0xfe6f, +}; /* END of CR_In_Small_Form_Variants */ + +/* PROPERTY: 'In_Arabic_Presentation_Forms_B': Block */ +static const OnigCodePoint +CR_In_Arabic_Presentation_Forms_B[] = { 1, +0xfe70, 0xfeff, +}; /* END of CR_In_Arabic_Presentation_Forms_B */ + +/* PROPERTY: 'In_Halfwidth_and_Fullwidth_Forms': Block */ +static const OnigCodePoint +CR_In_Halfwidth_and_Fullwidth_Forms[] = { 1, +0xff00, 0xffef, +}; /* END of CR_In_Halfwidth_and_Fullwidth_Forms */ + +/* PROPERTY: 'In_Specials': Block */ +static const OnigCodePoint +CR_In_Specials[] = { 1, +0xfff0, 0xffff, +}; /* END of CR_In_Specials */ + +/* PROPERTY: 'In_Linear_B_Syllabary': Block */ +static const OnigCodePoint +CR_In_Linear_B_Syllabary[] = { 1, +0x10000, 0x1007f, +}; /* END of CR_In_Linear_B_Syllabary */ + +/* PROPERTY: 'In_Linear_B_Ideograms': Block */ +static const OnigCodePoint +CR_In_Linear_B_Ideograms[] = { 1, +0x10080, 0x100ff, +}; /* END of CR_In_Linear_B_Ideograms */ + +/* PROPERTY: 'In_Aegean_Numbers': Block */ +static const OnigCodePoint +CR_In_Aegean_Numbers[] = { 1, +0x10100, 0x1013f, +}; /* END of CR_In_Aegean_Numbers */ + +/* PROPERTY: 'In_Ancient_Greek_Numbers': Block */ +static const OnigCodePoint +CR_In_Ancient_Greek_Numbers[] = { 1, +0x10140, 0x1018f, +}; /* END of CR_In_Ancient_Greek_Numbers */ + +/* PROPERTY: 'In_Ancient_Symbols': Block */ +static const OnigCodePoint +CR_In_Ancient_Symbols[] = { 1, +0x10190, 0x101cf, +}; /* END of CR_In_Ancient_Symbols */ + +/* PROPERTY: 'In_Phaistos_Disc': Block */ +static const OnigCodePoint +CR_In_Phaistos_Disc[] = { 1, +0x101d0, 0x101ff, +}; /* END of CR_In_Phaistos_Disc */ + +/* PROPERTY: 'In_Lycian': Block */ +static const OnigCodePoint +CR_In_Lycian[] = { 1, +0x10280, 0x1029f, +}; /* END of CR_In_Lycian */ + +/* PROPERTY: 'In_Carian': Block */ +static const OnigCodePoint +CR_In_Carian[] = { 1, +0x102a0, 0x102df, +}; /* END of CR_In_Carian */ + +/* PROPERTY: 'In_Coptic_Epact_Numbers': Block */ +static const OnigCodePoint +CR_In_Coptic_Epact_Numbers[] = { 1, +0x102e0, 0x102ff, +}; /* END of CR_In_Coptic_Epact_Numbers */ + +/* PROPERTY: 'In_Old_Italic': Block */ +static const OnigCodePoint +CR_In_Old_Italic[] = { 1, +0x10300, 0x1032f, +}; /* END of CR_In_Old_Italic */ + +/* PROPERTY: 'In_Gothic': Block */ +static const OnigCodePoint +CR_In_Gothic[] = { 1, +0x10330, 0x1034f, +}; /* END of CR_In_Gothic */ + +/* PROPERTY: 'In_Old_Permic': Block */ +static const OnigCodePoint +CR_In_Old_Permic[] = { 1, +0x10350, 0x1037f, +}; /* END of CR_In_Old_Permic */ + +/* PROPERTY: 'In_Ugaritic': Block */ +static const OnigCodePoint +CR_In_Ugaritic[] = { 1, +0x10380, 0x1039f, +}; /* END of CR_In_Ugaritic */ + +/* PROPERTY: 'In_Old_Persian': Block */ +static const OnigCodePoint +CR_In_Old_Persian[] = { 1, +0x103a0, 0x103df, +}; /* END of CR_In_Old_Persian */ + +/* PROPERTY: 'In_Deseret': Block */ +#define CR_In_Deseret CR_Deseret + +/* PROPERTY: 'In_Shavian': Block */ +#define CR_In_Shavian CR_Shavian + +/* PROPERTY: 'In_Osmanya': Block */ +static const OnigCodePoint +CR_In_Osmanya[] = { 1, +0x10480, 0x104af, +}; /* END of CR_In_Osmanya */ + +/* PROPERTY: 'In_Osage': Block */ +static const OnigCodePoint +CR_In_Osage[] = { 1, +0x104b0, 0x104ff, +}; /* END of CR_In_Osage */ + +/* PROPERTY: 'In_Elbasan': Block */ +static const OnigCodePoint +CR_In_Elbasan[] = { 1, +0x10500, 0x1052f, +}; /* END of CR_In_Elbasan */ + +/* PROPERTY: 'In_Caucasian_Albanian': Block */ +static const OnigCodePoint +CR_In_Caucasian_Albanian[] = { 1, +0x10530, 0x1056f, +}; /* END of CR_In_Caucasian_Albanian */ + +/* PROPERTY: 'In_Vithkuqi': Block */ +static const OnigCodePoint +CR_In_Vithkuqi[] = { 1, +0x10570, 0x105bf, +}; /* END of CR_In_Vithkuqi */ + +/* PROPERTY: 'In_Todhri': Block */ +static const OnigCodePoint +CR_In_Todhri[] = { 1, +0x105c0, 0x105ff, +}; /* END of CR_In_Todhri */ + +/* PROPERTY: 'In_Linear_A': Block */ +static const OnigCodePoint +CR_In_Linear_A[] = { 1, +0x10600, 0x1077f, +}; /* END of CR_In_Linear_A */ + +/* PROPERTY: 'In_Latin_Extended_F': Block */ +static const OnigCodePoint +CR_In_Latin_Extended_F[] = { 1, +0x10780, 0x107bf, +}; /* END of CR_In_Latin_Extended_F */ + +/* PROPERTY: 'In_Cypriot_Syllabary': Block */ +static const OnigCodePoint +CR_In_Cypriot_Syllabary[] = { 1, +0x10800, 0x1083f, +}; /* END of CR_In_Cypriot_Syllabary */ + +/* PROPERTY: 'In_Imperial_Aramaic': Block */ +static const OnigCodePoint +CR_In_Imperial_Aramaic[] = { 1, +0x10840, 0x1085f, +}; /* END of CR_In_Imperial_Aramaic */ + +/* PROPERTY: 'In_Palmyrene': Block */ +#define CR_In_Palmyrene CR_Palmyrene + +/* PROPERTY: 'In_Nabataean': Block */ +static const OnigCodePoint +CR_In_Nabataean[] = { 1, +0x10880, 0x108af, +}; /* END of CR_In_Nabataean */ + +/* PROPERTY: 'In_Hatran': Block */ +static const OnigCodePoint +CR_In_Hatran[] = { 1, +0x108e0, 0x108ff, +}; /* END of CR_In_Hatran */ + +/* PROPERTY: 'In_Phoenician': Block */ +static const OnigCodePoint +CR_In_Phoenician[] = { 1, +0x10900, 0x1091f, +}; /* END of CR_In_Phoenician */ + +/* PROPERTY: 'In_Lydian': Block */ +static const OnigCodePoint +CR_In_Lydian[] = { 1, +0x10920, 0x1093f, +}; /* END of CR_In_Lydian */ + +/* PROPERTY: 'In_Meroitic_Hieroglyphs': Block */ +#define CR_In_Meroitic_Hieroglyphs CR_Meroitic_Hieroglyphs + +/* PROPERTY: 'In_Meroitic_Cursive': Block */ +static const OnigCodePoint +CR_In_Meroitic_Cursive[] = { 1, +0x109a0, 0x109ff, +}; /* END of CR_In_Meroitic_Cursive */ + +/* PROPERTY: 'In_Kharoshthi': Block */ +static const OnigCodePoint +CR_In_Kharoshthi[] = { 1, +0x10a00, 0x10a5f, +}; /* END of CR_In_Kharoshthi */ + +/* PROPERTY: 'In_Old_South_Arabian': Block */ +#define CR_In_Old_South_Arabian CR_Old_South_Arabian + +/* PROPERTY: 'In_Old_North_Arabian': Block */ +#define CR_In_Old_North_Arabian CR_Old_North_Arabian + +/* PROPERTY: 'In_Manichaean': Block */ +static const OnigCodePoint +CR_In_Manichaean[] = { 1, +0x10ac0, 0x10aff, +}; /* END of CR_In_Manichaean */ + +/* PROPERTY: 'In_Avestan': Block */ +static const OnigCodePoint +CR_In_Avestan[] = { 1, +0x10b00, 0x10b3f, +}; /* END of CR_In_Avestan */ + +/* PROPERTY: 'In_Inscriptional_Parthian': Block */ +static const OnigCodePoint +CR_In_Inscriptional_Parthian[] = { 1, +0x10b40, 0x10b5f, +}; /* END of CR_In_Inscriptional_Parthian */ + +/* PROPERTY: 'In_Inscriptional_Pahlavi': Block */ +static const OnigCodePoint +CR_In_Inscriptional_Pahlavi[] = { 1, +0x10b60, 0x10b7f, +}; /* END of CR_In_Inscriptional_Pahlavi */ + +/* PROPERTY: 'In_Psalter_Pahlavi': Block */ +static const OnigCodePoint +CR_In_Psalter_Pahlavi[] = { 1, +0x10b80, 0x10baf, +}; /* END of CR_In_Psalter_Pahlavi */ + +/* PROPERTY: 'In_Old_Turkic': Block */ +static const OnigCodePoint +CR_In_Old_Turkic[] = { 1, +0x10c00, 0x10c4f, +}; /* END of CR_In_Old_Turkic */ + +/* PROPERTY: 'In_Old_Hungarian': Block */ +static const OnigCodePoint +CR_In_Old_Hungarian[] = { 1, +0x10c80, 0x10cff, +}; /* END of CR_In_Old_Hungarian */ + +/* PROPERTY: 'In_Hanifi_Rohingya': Block */ +static const OnigCodePoint +CR_In_Hanifi_Rohingya[] = { 1, +0x10d00, 0x10d3f, +}; /* END of CR_In_Hanifi_Rohingya */ + +/* PROPERTY: 'In_Garay': Block */ +static const OnigCodePoint +CR_In_Garay[] = { 1, +0x10d40, 0x10d8f, +}; /* END of CR_In_Garay */ + +/* PROPERTY: 'In_Rumi_Numeral_Symbols': Block */ +static const OnigCodePoint +CR_In_Rumi_Numeral_Symbols[] = { 1, +0x10e60, 0x10e7f, +}; /* END of CR_In_Rumi_Numeral_Symbols */ + +/* PROPERTY: 'In_Yezidi': Block */ +static const OnigCodePoint +CR_In_Yezidi[] = { 1, +0x10e80, 0x10ebf, +}; /* END of CR_In_Yezidi */ + +/* PROPERTY: 'In_Arabic_Extended_C': Block */ +static const OnigCodePoint +CR_In_Arabic_Extended_C[] = { 1, +0x10ec0, 0x10eff, +}; /* END of CR_In_Arabic_Extended_C */ + +/* PROPERTY: 'In_Old_Sogdian': Block */ +static const OnigCodePoint +CR_In_Old_Sogdian[] = { 1, +0x10f00, 0x10f2f, +}; /* END of CR_In_Old_Sogdian */ + +/* PROPERTY: 'In_Sogdian': Block */ +static const OnigCodePoint +CR_In_Sogdian[] = { 1, +0x10f30, 0x10f6f, +}; /* END of CR_In_Sogdian */ + +/* PROPERTY: 'In_Old_Uyghur': Block */ +static const OnigCodePoint +CR_In_Old_Uyghur[] = { 1, +0x10f70, 0x10faf, +}; /* END of CR_In_Old_Uyghur */ + +/* PROPERTY: 'In_Chorasmian': Block */ +static const OnigCodePoint +CR_In_Chorasmian[] = { 1, +0x10fb0, 0x10fdf, +}; /* END of CR_In_Chorasmian */ + +/* PROPERTY: 'In_Elymaic': Block */ +static const OnigCodePoint +CR_In_Elymaic[] = { 1, +0x10fe0, 0x10fff, +}; /* END of CR_In_Elymaic */ + +/* PROPERTY: 'In_Brahmi': Block */ +static const OnigCodePoint +CR_In_Brahmi[] = { 1, +0x11000, 0x1107f, +}; /* END of CR_In_Brahmi */ + +/* PROPERTY: 'In_Kaithi': Block */ +static const OnigCodePoint +CR_In_Kaithi[] = { 1, +0x11080, 0x110cf, +}; /* END of CR_In_Kaithi */ + +/* PROPERTY: 'In_Sora_Sompeng': Block */ +static const OnigCodePoint +CR_In_Sora_Sompeng[] = { 1, +0x110d0, 0x110ff, +}; /* END of CR_In_Sora_Sompeng */ + +/* PROPERTY: 'In_Chakma': Block */ +static const OnigCodePoint +CR_In_Chakma[] = { 1, +0x11100, 0x1114f, +}; /* END of CR_In_Chakma */ + +/* PROPERTY: 'In_Mahajani': Block */ +static const OnigCodePoint +CR_In_Mahajani[] = { 1, +0x11150, 0x1117f, +}; /* END of CR_In_Mahajani */ + +/* PROPERTY: 'In_Sharada': Block */ +#define CR_In_Sharada CR_Sharada + +/* PROPERTY: 'In_Sinhala_Archaic_Numbers': Block */ +static const OnigCodePoint +CR_In_Sinhala_Archaic_Numbers[] = { 1, +0x111e0, 0x111ff, +}; /* END of CR_In_Sinhala_Archaic_Numbers */ + +/* PROPERTY: 'In_Khojki': Block */ +static const OnigCodePoint +CR_In_Khojki[] = { 1, +0x11200, 0x1124f, +}; /* END of CR_In_Khojki */ + +/* PROPERTY: 'In_Multani': Block */ +static const OnigCodePoint +CR_In_Multani[] = { 1, +0x11280, 0x112af, +}; /* END of CR_In_Multani */ + +/* PROPERTY: 'In_Khudawadi': Block */ +static const OnigCodePoint +CR_In_Khudawadi[] = { 1, +0x112b0, 0x112ff, +}; /* END of CR_In_Khudawadi */ + +/* PROPERTY: 'In_Grantha': Block */ +static const OnigCodePoint +CR_In_Grantha[] = { 1, +0x11300, 0x1137f, +}; /* END of CR_In_Grantha */ + +/* PROPERTY: 'In_Tulu_Tigalari': Block */ +static const OnigCodePoint +CR_In_Tulu_Tigalari[] = { 1, +0x11380, 0x113ff, +}; /* END of CR_In_Tulu_Tigalari */ + +/* PROPERTY: 'In_Newa': Block */ +static const OnigCodePoint +CR_In_Newa[] = { 1, +0x11400, 0x1147f, +}; /* END of CR_In_Newa */ + +/* PROPERTY: 'In_Tirhuta': Block */ +static const OnigCodePoint +CR_In_Tirhuta[] = { 1, +0x11480, 0x114df, +}; /* END of CR_In_Tirhuta */ + +/* PROPERTY: 'In_Siddham': Block */ +static const OnigCodePoint +CR_In_Siddham[] = { 1, +0x11580, 0x115ff, +}; /* END of CR_In_Siddham */ + +/* PROPERTY: 'In_Modi': Block */ +static const OnigCodePoint +CR_In_Modi[] = { 1, +0x11600, 0x1165f, +}; /* END of CR_In_Modi */ + +/* PROPERTY: 'In_Mongolian_Supplement': Block */ +static const OnigCodePoint +CR_In_Mongolian_Supplement[] = { 1, +0x11660, 0x1167f, +}; /* END of CR_In_Mongolian_Supplement */ + +/* PROPERTY: 'In_Takri': Block */ +static const OnigCodePoint +CR_In_Takri[] = { 1, +0x11680, 0x116cf, +}; /* END of CR_In_Takri */ + +/* PROPERTY: 'In_Myanmar_Extended_C': Block */ +static const OnigCodePoint +CR_In_Myanmar_Extended_C[] = { 1, +0x116d0, 0x116ff, +}; /* END of CR_In_Myanmar_Extended_C */ + +/* PROPERTY: 'In_Ahom': Block */ +static const OnigCodePoint +CR_In_Ahom[] = { 1, +0x11700, 0x1174f, +}; /* END of CR_In_Ahom */ + +/* PROPERTY: 'In_Dogra': Block */ +static const OnigCodePoint +CR_In_Dogra[] = { 1, +0x11800, 0x1184f, +}; /* END of CR_In_Dogra */ + +/* PROPERTY: 'In_Warang_Citi': Block */ +static const OnigCodePoint +CR_In_Warang_Citi[] = { 1, +0x118a0, 0x118ff, +}; /* END of CR_In_Warang_Citi */ + +/* PROPERTY: 'In_Dives_Akuru': Block */ +static const OnigCodePoint +CR_In_Dives_Akuru[] = { 1, +0x11900, 0x1195f, +}; /* END of CR_In_Dives_Akuru */ + +/* PROPERTY: 'In_Nandinagari': Block */ +static const OnigCodePoint +CR_In_Nandinagari[] = { 1, +0x119a0, 0x119ff, +}; /* END of CR_In_Nandinagari */ + +/* PROPERTY: 'In_Zanabazar_Square': Block */ +static const OnigCodePoint +CR_In_Zanabazar_Square[] = { 1, +0x11a00, 0x11a4f, +}; /* END of CR_In_Zanabazar_Square */ + +/* PROPERTY: 'In_Soyombo': Block */ +static const OnigCodePoint +CR_In_Soyombo[] = { 1, +0x11a50, 0x11aaf, +}; /* END of CR_In_Soyombo */ + +/* PROPERTY: 'In_Unified_Canadian_Aboriginal_Syllabics_Extended_A': Block */ +static const OnigCodePoint +CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A[] = { 1, +0x11ab0, 0x11abf, +}; /* END of CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A */ + +/* PROPERTY: 'In_Pau_Cin_Hau': Block */ +static const OnigCodePoint +CR_In_Pau_Cin_Hau[] = { 1, +0x11ac0, 0x11aff, +}; /* END of CR_In_Pau_Cin_Hau */ + +/* PROPERTY: 'In_Devanagari_Extended_A': Block */ +static const OnigCodePoint +CR_In_Devanagari_Extended_A[] = { 1, +0x11b00, 0x11b5f, +}; /* END of CR_In_Devanagari_Extended_A */ + +/* PROPERTY: 'In_Sunuwar': Block */ +static const OnigCodePoint +CR_In_Sunuwar[] = { 1, +0x11bc0, 0x11bff, +}; /* END of CR_In_Sunuwar */ + +/* PROPERTY: 'In_Bhaiksuki': Block */ +static const OnigCodePoint +CR_In_Bhaiksuki[] = { 1, +0x11c00, 0x11c6f, +}; /* END of CR_In_Bhaiksuki */ + +/* PROPERTY: 'In_Marchen': Block */ +static const OnigCodePoint +CR_In_Marchen[] = { 1, +0x11c70, 0x11cbf, +}; /* END of CR_In_Marchen */ + +/* PROPERTY: 'In_Masaram_Gondi': Block */ +static const OnigCodePoint +CR_In_Masaram_Gondi[] = { 1, +0x11d00, 0x11d5f, +}; /* END of CR_In_Masaram_Gondi */ + +/* PROPERTY: 'In_Gunjala_Gondi': Block */ +static const OnigCodePoint +CR_In_Gunjala_Gondi[] = { 1, +0x11d60, 0x11daf, +}; /* END of CR_In_Gunjala_Gondi */ + +/* PROPERTY: 'In_Makasar': Block */ +static const OnigCodePoint +CR_In_Makasar[] = { 1, +0x11ee0, 0x11eff, +}; /* END of CR_In_Makasar */ + +/* PROPERTY: 'In_Kawi': Block */ +static const OnigCodePoint +CR_In_Kawi[] = { 1, +0x11f00, 0x11f5f, +}; /* END of CR_In_Kawi */ + +/* PROPERTY: 'In_Lisu_Supplement': Block */ +static const OnigCodePoint +CR_In_Lisu_Supplement[] = { 1, +0x11fb0, 0x11fbf, +}; /* END of CR_In_Lisu_Supplement */ + +/* PROPERTY: 'In_Tamil_Supplement': Block */ +static const OnigCodePoint +CR_In_Tamil_Supplement[] = { 1, +0x11fc0, 0x11fff, +}; /* END of CR_In_Tamil_Supplement */ + +/* PROPERTY: 'In_Cuneiform': Block */ +static const OnigCodePoint +CR_In_Cuneiform[] = { 1, +0x12000, 0x123ff, +}; /* END of CR_In_Cuneiform */ + +/* PROPERTY: 'In_Cuneiform_Numbers_and_Punctuation': Block */ +static const OnigCodePoint +CR_In_Cuneiform_Numbers_and_Punctuation[] = { 1, +0x12400, 0x1247f, +}; /* END of CR_In_Cuneiform_Numbers_and_Punctuation */ + +/* PROPERTY: 'In_Early_Dynastic_Cuneiform': Block */ +static const OnigCodePoint +CR_In_Early_Dynastic_Cuneiform[] = { 1, +0x12480, 0x1254f, +}; /* END of CR_In_Early_Dynastic_Cuneiform */ + +/* PROPERTY: 'In_Cypro_Minoan': Block */ +static const OnigCodePoint +CR_In_Cypro_Minoan[] = { 1, +0x12f90, 0x12fff, +}; /* END of CR_In_Cypro_Minoan */ + +/* PROPERTY: 'In_Egyptian_Hieroglyphs': Block */ +static const OnigCodePoint +CR_In_Egyptian_Hieroglyphs[] = { 1, +0x13000, 0x1342f, +}; /* END of CR_In_Egyptian_Hieroglyphs */ + +/* PROPERTY: 'In_Egyptian_Hieroglyph_Format_Controls': Block */ +static const OnigCodePoint +CR_In_Egyptian_Hieroglyph_Format_Controls[] = { 1, +0x13430, 0x1345f, +}; /* END of CR_In_Egyptian_Hieroglyph_Format_Controls */ + +/* PROPERTY: 'In_Egyptian_Hieroglyphs_Extended_A': Block */ +static const OnigCodePoint +CR_In_Egyptian_Hieroglyphs_Extended_A[] = { 1, +0x13460, 0x143ff, +}; /* END of CR_In_Egyptian_Hieroglyphs_Extended_A */ + +/* PROPERTY: 'In_Anatolian_Hieroglyphs': Block */ +static const OnigCodePoint +CR_In_Anatolian_Hieroglyphs[] = { 1, +0x14400, 0x1467f, +}; /* END of CR_In_Anatolian_Hieroglyphs */ + +/* PROPERTY: 'In_Gurung_Khema': Block */ +static const OnigCodePoint +CR_In_Gurung_Khema[] = { 1, +0x16100, 0x1613f, +}; /* END of CR_In_Gurung_Khema */ + +/* PROPERTY: 'In_Bamum_Supplement': Block */ +static const OnigCodePoint +CR_In_Bamum_Supplement[] = { 1, +0x16800, 0x16a3f, +}; /* END of CR_In_Bamum_Supplement */ + +/* PROPERTY: 'In_Mro': Block */ +static const OnigCodePoint +CR_In_Mro[] = { 1, +0x16a40, 0x16a6f, +}; /* END of CR_In_Mro */ + +/* PROPERTY: 'In_Tangsa': Block */ +static const OnigCodePoint +CR_In_Tangsa[] = { 1, +0x16a70, 0x16acf, +}; /* END of CR_In_Tangsa */ + +/* PROPERTY: 'In_Bassa_Vah': Block */ +static const OnigCodePoint +CR_In_Bassa_Vah[] = { 1, +0x16ad0, 0x16aff, +}; /* END of CR_In_Bassa_Vah */ + +/* PROPERTY: 'In_Pahawh_Hmong': Block */ +static const OnigCodePoint +CR_In_Pahawh_Hmong[] = { 1, +0x16b00, 0x16b8f, +}; /* END of CR_In_Pahawh_Hmong */ + +/* PROPERTY: 'In_Kirat_Rai': Block */ +static const OnigCodePoint +CR_In_Kirat_Rai[] = { 1, +0x16d40, 0x16d7f, +}; /* END of CR_In_Kirat_Rai */ + +/* PROPERTY: 'In_Medefaidrin': Block */ +static const OnigCodePoint +CR_In_Medefaidrin[] = { 1, +0x16e40, 0x16e9f, +}; /* END of CR_In_Medefaidrin */ + +/* PROPERTY: 'In_Miao': Block */ +static const OnigCodePoint +CR_In_Miao[] = { 1, +0x16f00, 0x16f9f, +}; /* END of CR_In_Miao */ + +/* PROPERTY: 'In_Ideographic_Symbols_and_Punctuation': Block */ +static const OnigCodePoint +CR_In_Ideographic_Symbols_and_Punctuation[] = { 1, +0x16fe0, 0x16fff, +}; /* END of CR_In_Ideographic_Symbols_and_Punctuation */ + +/* PROPERTY: 'In_Tangut': Block */ +static const OnigCodePoint +CR_In_Tangut[] = { 1, +0x17000, 0x187ff, +}; /* END of CR_In_Tangut */ + +/* PROPERTY: 'In_Tangut_Components': Block */ +static const OnigCodePoint +CR_In_Tangut_Components[] = { 1, +0x18800, 0x18aff, +}; /* END of CR_In_Tangut_Components */ + +/* PROPERTY: 'In_Khitan_Small_Script': Block */ +static const OnigCodePoint +CR_In_Khitan_Small_Script[] = { 1, +0x18b00, 0x18cff, +}; /* END of CR_In_Khitan_Small_Script */ + +/* PROPERTY: 'In_Tangut_Supplement': Block */ +static const OnigCodePoint +CR_In_Tangut_Supplement[] = { 1, +0x18d00, 0x18d7f, +}; /* END of CR_In_Tangut_Supplement */ + +/* PROPERTY: 'In_Kana_Extended_B': Block */ +static const OnigCodePoint +CR_In_Kana_Extended_B[] = { 1, +0x1aff0, 0x1afff, +}; /* END of CR_In_Kana_Extended_B */ + +/* PROPERTY: 'In_Kana_Supplement': Block */ +static const OnigCodePoint +CR_In_Kana_Supplement[] = { 1, +0x1b000, 0x1b0ff, +}; /* END of CR_In_Kana_Supplement */ + +/* PROPERTY: 'In_Kana_Extended_A': Block */ +static const OnigCodePoint +CR_In_Kana_Extended_A[] = { 1, +0x1b100, 0x1b12f, +}; /* END of CR_In_Kana_Extended_A */ + +/* PROPERTY: 'In_Small_Kana_Extension': Block */ +static const OnigCodePoint +CR_In_Small_Kana_Extension[] = { 1, +0x1b130, 0x1b16f, +}; /* END of CR_In_Small_Kana_Extension */ + +/* PROPERTY: 'In_Nushu': Block */ +static const OnigCodePoint +CR_In_Nushu[] = { 1, +0x1b170, 0x1b2ff, +}; /* END of CR_In_Nushu */ + +/* PROPERTY: 'In_Duployan': Block */ +static const OnigCodePoint +CR_In_Duployan[] = { 1, +0x1bc00, 0x1bc9f, +}; /* END of CR_In_Duployan */ + +/* PROPERTY: 'In_Shorthand_Format_Controls': Block */ +static const OnigCodePoint +CR_In_Shorthand_Format_Controls[] = { 1, +0x1bca0, 0x1bcaf, +}; /* END of CR_In_Shorthand_Format_Controls */ + +/* PROPERTY: 'In_Symbols_for_Legacy_Computing_Supplement': Block */ +static const OnigCodePoint +CR_In_Symbols_for_Legacy_Computing_Supplement[] = { 1, +0x1cc00, 0x1cebf, +}; /* END of CR_In_Symbols_for_Legacy_Computing_Supplement */ + +/* PROPERTY: 'In_Znamenny_Musical_Notation': Block */ +static const OnigCodePoint +CR_In_Znamenny_Musical_Notation[] = { 1, +0x1cf00, 0x1cfcf, +}; /* END of CR_In_Znamenny_Musical_Notation */ + +/* PROPERTY: 'In_Byzantine_Musical_Symbols': Block */ +static const OnigCodePoint +CR_In_Byzantine_Musical_Symbols[] = { 1, +0x1d000, 0x1d0ff, +}; /* END of CR_In_Byzantine_Musical_Symbols */ + +/* PROPERTY: 'In_Musical_Symbols': Block */ +static const OnigCodePoint +CR_In_Musical_Symbols[] = { 1, +0x1d100, 0x1d1ff, +}; /* END of CR_In_Musical_Symbols */ + +/* PROPERTY: 'In_Ancient_Greek_Musical_Notation': Block */ +static const OnigCodePoint +CR_In_Ancient_Greek_Musical_Notation[] = { 1, +0x1d200, 0x1d24f, +}; /* END of CR_In_Ancient_Greek_Musical_Notation */ + +/* PROPERTY: 'In_Kaktovik_Numerals': Block */ +static const OnigCodePoint +CR_In_Kaktovik_Numerals[] = { 1, +0x1d2c0, 0x1d2df, +}; /* END of CR_In_Kaktovik_Numerals */ + +/* PROPERTY: 'In_Mayan_Numerals': Block */ +static const OnigCodePoint +CR_In_Mayan_Numerals[] = { 1, +0x1d2e0, 0x1d2ff, +}; /* END of CR_In_Mayan_Numerals */ + +/* PROPERTY: 'In_Tai_Xuan_Jing_Symbols': Block */ +static const OnigCodePoint +CR_In_Tai_Xuan_Jing_Symbols[] = { 1, +0x1d300, 0x1d35f, +}; /* END of CR_In_Tai_Xuan_Jing_Symbols */ + +/* PROPERTY: 'In_Counting_Rod_Numerals': Block */ +static const OnigCodePoint +CR_In_Counting_Rod_Numerals[] = { 1, +0x1d360, 0x1d37f, +}; /* END of CR_In_Counting_Rod_Numerals */ + +/* PROPERTY: 'In_Mathematical_Alphanumeric_Symbols': Block */ +static const OnigCodePoint +CR_In_Mathematical_Alphanumeric_Symbols[] = { 1, +0x1d400, 0x1d7ff, +}; /* END of CR_In_Mathematical_Alphanumeric_Symbols */ + +/* PROPERTY: 'In_Sutton_SignWriting': Block */ +static const OnigCodePoint +CR_In_Sutton_SignWriting[] = { 1, +0x1d800, 0x1daaf, +}; /* END of CR_In_Sutton_SignWriting */ + +/* PROPERTY: 'In_Latin_Extended_G': Block */ +static const OnigCodePoint +CR_In_Latin_Extended_G[] = { 1, +0x1df00, 0x1dfff, +}; /* END of CR_In_Latin_Extended_G */ + +/* PROPERTY: 'In_Glagolitic_Supplement': Block */ +static const OnigCodePoint +CR_In_Glagolitic_Supplement[] = { 1, +0x1e000, 0x1e02f, +}; /* END of CR_In_Glagolitic_Supplement */ + +/* PROPERTY: 'In_Cyrillic_Extended_D': Block */ +static const OnigCodePoint +CR_In_Cyrillic_Extended_D[] = { 1, +0x1e030, 0x1e08f, +}; /* END of CR_In_Cyrillic_Extended_D */ + +/* PROPERTY: 'In_Nyiakeng_Puachue_Hmong': Block */ +static const OnigCodePoint +CR_In_Nyiakeng_Puachue_Hmong[] = { 1, +0x1e100, 0x1e14f, +}; /* END of CR_In_Nyiakeng_Puachue_Hmong */ + +/* PROPERTY: 'In_Toto': Block */ +static const OnigCodePoint +CR_In_Toto[] = { 1, +0x1e290, 0x1e2bf, +}; /* END of CR_In_Toto */ + +/* PROPERTY: 'In_Wancho': Block */ +static const OnigCodePoint +CR_In_Wancho[] = { 1, +0x1e2c0, 0x1e2ff, +}; /* END of CR_In_Wancho */ + +/* PROPERTY: 'In_Nag_Mundari': Block */ +static const OnigCodePoint +CR_In_Nag_Mundari[] = { 1, +0x1e4d0, 0x1e4ff, +}; /* END of CR_In_Nag_Mundari */ + +/* PROPERTY: 'In_Ol_Onal': Block */ +static const OnigCodePoint +CR_In_Ol_Onal[] = { 1, +0x1e5d0, 0x1e5ff, +}; /* END of CR_In_Ol_Onal */ + +/* PROPERTY: 'In_Ethiopic_Extended_B': Block */ +static const OnigCodePoint +CR_In_Ethiopic_Extended_B[] = { 1, +0x1e7e0, 0x1e7ff, +}; /* END of CR_In_Ethiopic_Extended_B */ + +/* PROPERTY: 'In_Mende_Kikakui': Block */ +static const OnigCodePoint +CR_In_Mende_Kikakui[] = { 1, +0x1e800, 0x1e8df, +}; /* END of CR_In_Mende_Kikakui */ + +/* PROPERTY: 'In_Adlam': Block */ +static const OnigCodePoint +CR_In_Adlam[] = { 1, +0x1e900, 0x1e95f, +}; /* END of CR_In_Adlam */ + +/* PROPERTY: 'In_Indic_Siyaq_Numbers': Block */ +static const OnigCodePoint +CR_In_Indic_Siyaq_Numbers[] = { 1, +0x1ec70, 0x1ecbf, +}; /* END of CR_In_Indic_Siyaq_Numbers */ + +/* PROPERTY: 'In_Ottoman_Siyaq_Numbers': Block */ +static const OnigCodePoint +CR_In_Ottoman_Siyaq_Numbers[] = { 1, +0x1ed00, 0x1ed4f, +}; /* END of CR_In_Ottoman_Siyaq_Numbers */ + +/* PROPERTY: 'In_Arabic_Mathematical_Alphabetic_Symbols': Block */ +static const OnigCodePoint +CR_In_Arabic_Mathematical_Alphabetic_Symbols[] = { 1, +0x1ee00, 0x1eeff, +}; /* END of CR_In_Arabic_Mathematical_Alphabetic_Symbols */ + +/* PROPERTY: 'In_Mahjong_Tiles': Block */ +static const OnigCodePoint +CR_In_Mahjong_Tiles[] = { 1, +0x1f000, 0x1f02f, +}; /* END of CR_In_Mahjong_Tiles */ + +/* PROPERTY: 'In_Domino_Tiles': Block */ +static const OnigCodePoint +CR_In_Domino_Tiles[] = { 1, +0x1f030, 0x1f09f, +}; /* END of CR_In_Domino_Tiles */ + +/* PROPERTY: 'In_Playing_Cards': Block */ +static const OnigCodePoint +CR_In_Playing_Cards[] = { 1, +0x1f0a0, 0x1f0ff, +}; /* END of CR_In_Playing_Cards */ + +/* PROPERTY: 'In_Enclosed_Alphanumeric_Supplement': Block */ +static const OnigCodePoint +CR_In_Enclosed_Alphanumeric_Supplement[] = { 1, +0x1f100, 0x1f1ff, +}; /* END of CR_In_Enclosed_Alphanumeric_Supplement */ + +/* PROPERTY: 'In_Enclosed_Ideographic_Supplement': Block */ +static const OnigCodePoint +CR_In_Enclosed_Ideographic_Supplement[] = { 1, +0x1f200, 0x1f2ff, +}; /* END of CR_In_Enclosed_Ideographic_Supplement */ + +/* PROPERTY: 'In_Miscellaneous_Symbols_and_Pictographs': Block */ +static const OnigCodePoint +CR_In_Miscellaneous_Symbols_and_Pictographs[] = { 1, +0x1f300, 0x1f5ff, +}; /* END of CR_In_Miscellaneous_Symbols_and_Pictographs */ + +/* PROPERTY: 'In_Emoticons': Block */ +static const OnigCodePoint +CR_In_Emoticons[] = { 1, +0x1f600, 0x1f64f, +}; /* END of CR_In_Emoticons */ + +/* PROPERTY: 'In_Ornamental_Dingbats': Block */ +static const OnigCodePoint +CR_In_Ornamental_Dingbats[] = { 1, +0x1f650, 0x1f67f, +}; /* END of CR_In_Ornamental_Dingbats */ + +/* PROPERTY: 'In_Transport_and_Map_Symbols': Block */ +static const OnigCodePoint +CR_In_Transport_and_Map_Symbols[] = { 1, +0x1f680, 0x1f6ff, +}; /* END of CR_In_Transport_and_Map_Symbols */ + +/* PROPERTY: 'In_Alchemical_Symbols': Block */ +static const OnigCodePoint +CR_In_Alchemical_Symbols[] = { 1, +0x1f700, 0x1f77f, +}; /* END of CR_In_Alchemical_Symbols */ + +/* PROPERTY: 'In_Geometric_Shapes_Extended': Block */ +static const OnigCodePoint +CR_In_Geometric_Shapes_Extended[] = { 1, +0x1f780, 0x1f7ff, +}; /* END of CR_In_Geometric_Shapes_Extended */ + +/* PROPERTY: 'In_Supplemental_Arrows_C': Block */ +static const OnigCodePoint +CR_In_Supplemental_Arrows_C[] = { 1, +0x1f800, 0x1f8ff, +}; /* END of CR_In_Supplemental_Arrows_C */ + +/* PROPERTY: 'In_Supplemental_Symbols_and_Pictographs': Block */ +static const OnigCodePoint +CR_In_Supplemental_Symbols_and_Pictographs[] = { 1, +0x1f900, 0x1f9ff, +}; /* END of CR_In_Supplemental_Symbols_and_Pictographs */ + +/* PROPERTY: 'In_Chess_Symbols': Block */ +static const OnigCodePoint +CR_In_Chess_Symbols[] = { 1, +0x1fa00, 0x1fa6f, +}; /* END of CR_In_Chess_Symbols */ + +/* PROPERTY: 'In_Symbols_and_Pictographs_Extended_A': Block */ +static const OnigCodePoint +CR_In_Symbols_and_Pictographs_Extended_A[] = { 1, +0x1fa70, 0x1faff, +}; /* END of CR_In_Symbols_and_Pictographs_Extended_A */ + +/* PROPERTY: 'In_Symbols_for_Legacy_Computing': Block */ +static const OnigCodePoint +CR_In_Symbols_for_Legacy_Computing[] = { 1, +0x1fb00, 0x1fbff, +}; /* END of CR_In_Symbols_for_Legacy_Computing */ + +/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_B': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs_Extension_B[] = { 1, +0x20000, 0x2a6df, +}; /* END of CR_In_CJK_Unified_Ideographs_Extension_B */ + +/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_C': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs_Extension_C[] = { 1, +0x2a700, 0x2b73f, +}; /* END of CR_In_CJK_Unified_Ideographs_Extension_C */ + +/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_D': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs_Extension_D[] = { 1, +0x2b740, 0x2b81f, +}; /* END of CR_In_CJK_Unified_Ideographs_Extension_D */ + +/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_E': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs_Extension_E[] = { 1, +0x2b820, 0x2ceaf, +}; /* END of CR_In_CJK_Unified_Ideographs_Extension_E */ + +/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_F': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs_Extension_F[] = { 1, +0x2ceb0, 0x2ebef, +}; /* END of CR_In_CJK_Unified_Ideographs_Extension_F */ + +/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_I': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs_Extension_I[] = { 1, +0x2ebf0, 0x2ee5f, +}; /* END of CR_In_CJK_Unified_Ideographs_Extension_I */ + +/* PROPERTY: 'In_CJK_Compatibility_Ideographs_Supplement': Block */ +static const OnigCodePoint +CR_In_CJK_Compatibility_Ideographs_Supplement[] = { 1, +0x2f800, 0x2fa1f, +}; /* END of CR_In_CJK_Compatibility_Ideographs_Supplement */ + +/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_G': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs_Extension_G[] = { 1, +0x30000, 0x3134f, +}; /* END of CR_In_CJK_Unified_Ideographs_Extension_G */ + +/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_H': Block */ +static const OnigCodePoint +CR_In_CJK_Unified_Ideographs_Extension_H[] = { 1, +0x31350, 0x323af, +}; /* END of CR_In_CJK_Unified_Ideographs_Extension_H */ + +/* PROPERTY: 'In_Tags': Block */ +static const OnigCodePoint +CR_In_Tags[] = { 1, +0xe0000, 0xe007f, +}; /* END of CR_In_Tags */ + +/* PROPERTY: 'In_Variation_Selectors_Supplement': Block */ +static const OnigCodePoint +CR_In_Variation_Selectors_Supplement[] = { 1, +0xe0100, 0xe01ef, +}; /* END of CR_In_Variation_Selectors_Supplement */ + +/* PROPERTY: 'In_Supplementary_Private_Use_Area_A': Block */ +static const OnigCodePoint +CR_In_Supplementary_Private_Use_Area_A[] = { 1, +0xf0000, 0xfffff, +}; /* END of CR_In_Supplementary_Private_Use_Area_A */ + +/* PROPERTY: 'In_Supplementary_Private_Use_Area_B': Block */ +static const OnigCodePoint +CR_In_Supplementary_Private_Use_Area_B[] = { 1, +0x100000, 0x10ffff, +}; /* END of CR_In_Supplementary_Private_Use_Area_B */ + +/* PROPERTY: 'In_No_Block': Block */ +static const OnigCodePoint +CR_In_No_Block[] = { 51, +0x2fe0, 0x2fef, +0x10200, 0x1027f, +0x103e0, 0x103ff, +0x107c0, 0x107ff, +0x108b0, 0x108df, +0x10940, 0x1097f, +0x10aa0, 0x10abf, +0x10bb0, 0x10bff, +0x10c50, 0x10c7f, +0x10d90, 0x10e5f, +0x11250, 0x1127f, +0x114e0, 0x1157f, +0x11750, 0x117ff, +0x11850, 0x1189f, +0x11960, 0x1199f, +0x11b60, 0x11bbf, +0x11cc0, 0x11cff, +0x11db0, 0x11edf, +0x11f60, 0x11faf, +0x12550, 0x12f8f, +0x14680, 0x160ff, +0x16140, 0x167ff, +0x16b90, 0x16d3f, +0x16d80, 0x16e3f, +0x16ea0, 0x16eff, +0x16fa0, 0x16fdf, +0x18d80, 0x1afef, +0x1b300, 0x1bbff, +0x1bcb0, 0x1cbff, +0x1cec0, 0x1ceff, +0x1cfd0, 0x1cfff, +0x1d250, 0x1d2bf, +0x1d380, 0x1d3ff, +0x1dab0, 0x1deff, +0x1e090, 0x1e0ff, +0x1e150, 0x1e28f, +0x1e300, 0x1e4cf, +0x1e500, 0x1e5cf, +0x1e600, 0x1e7df, +0x1e8e0, 0x1e8ff, +0x1e960, 0x1ec6f, +0x1ecc0, 0x1ecff, +0x1ed50, 0x1edff, +0x1ef00, 0x1efff, +0x1fc00, 0x1ffff, +0x2a6e0, 0x2a6ff, +0x2ee60, 0x2f7ff, +0x2fa20, 0x2ffff, +0x323b0, 0xdffff, +0xe0080, 0xe00ff, +0xe01f0, 0xeffff, +}; /* END of CR_In_No_Block */ + +static const OnigCodePoint* +const CodeRanges[] = { + CR_NEWLINE, + CR_Alpha, + CR_Blank, + CR_Cntrl, + CR_Digit, + CR_Graph, + CR_Lower, + CR_Print, + CR_PosixPunct, + CR_Space, + CR_Upper, + CR_XDigit, + CR_Word, + CR_Alnum, + CR_ASCII, + CR_ASCII_Hex_Digit, + CR_Adlam, + CR_Ahom, + CR_Alphabetic, + CR_Anatolian_Hieroglyphs, + CR_Any, + CR_Arabic, + CR_Armenian, + CR_Assigned, + CR_Avestan, + CR_Balinese, + CR_Bamum, + CR_Bassa_Vah, + CR_Batak, + CR_Bengali, + CR_Bhaiksuki, + CR_Bidi_Control, + CR_Bopomofo, + CR_Brahmi, + CR_Braille, + CR_Buginese, + CR_Buhid, + CR_C, + CR_Canadian_Aboriginal, + CR_Carian, + CR_Case_Ignorable, + CR_Cased, + CR_Caucasian_Albanian, + CR_Cc, + CR_Cf, + CR_Chakma, + CR_Cham, + CR_Changes_When_Casefolded, + CR_Changes_When_Casemapped, + CR_Changes_When_Lowercased, + CR_Changes_When_Titlecased, + CR_Changes_When_Uppercased, + CR_Cherokee, + CR_Chorasmian, + CR_Cn, + CR_Co, + CR_Common, + CR_Coptic, + CR_Cs, + CR_Cuneiform, + CR_Cypriot, + CR_Cypro_Minoan, + CR_Cyrillic, + CR_Dash, + CR_Default_Ignorable_Code_Point, + CR_Deprecated, + CR_Deseret, + CR_Devanagari, + CR_Diacritic, + CR_Dives_Akuru, + CR_Dogra, + CR_Duployan, + CR_Egyptian_Hieroglyphs, + CR_Elbasan, + CR_Elymaic, + CR_Emoji, + CR_Emoji_Component, + CR_Emoji_Modifier, + CR_Emoji_Modifier_Base, + CR_Emoji_Presentation, + CR_Ethiopic, + CR_Extended_Pictographic, + CR_Extender, + CR_Garay, + CR_Georgian, + CR_Glagolitic, + CR_Gothic, + CR_Grantha, + CR_Grapheme_Base, + CR_Grapheme_Extend, + CR_Grapheme_Link, + CR_Greek, + CR_Gujarati, + CR_Gunjala_Gondi, + CR_Gurmukhi, + CR_Gurung_Khema, + CR_Han, + CR_Hangul, + CR_Hanifi_Rohingya, + CR_Hanunoo, + CR_Hatran, + CR_Hebrew, + CR_Hex_Digit, + CR_Hiragana, + CR_Hyphen, + CR_IDS_Binary_Operator, + CR_IDS_Trinary_Operator, + CR_IDS_Unary_Operator, + CR_ID_Compat_Math_Continue, + CR_ID_Compat_Math_Start, + CR_ID_Continue, + CR_ID_Start, + CR_Ideographic, + CR_Imperial_Aramaic, + CR_InCB, + CR_Inherited, + CR_Inscriptional_Pahlavi, + CR_Inscriptional_Parthian, + CR_Javanese, + CR_Join_Control, + CR_Kaithi, + CR_Kannada, + CR_Katakana, + CR_Kawi, + CR_Kayah_Li, + CR_Kharoshthi, + CR_Khitan_Small_Script, + CR_Khmer, + CR_Khojki, + CR_Khudawadi, + CR_Kirat_Rai, + CR_L, + CR_LC, + CR_Lao, + CR_Latin, + CR_Lepcha, + CR_Limbu, + CR_Linear_A, + CR_Linear_B, + CR_Lisu, + CR_Ll, + CR_Lm, + CR_Lo, + CR_Logical_Order_Exception, + CR_Lowercase, + CR_Lt, + CR_Lu, + CR_Lycian, + CR_Lydian, + CR_M, + CR_Mahajani, + CR_Makasar, + CR_Malayalam, + CR_Mandaic, + CR_Manichaean, + CR_Marchen, + CR_Masaram_Gondi, + CR_Math, + CR_Mc, + CR_Me, + CR_Medefaidrin, + CR_Meetei_Mayek, + CR_Mende_Kikakui, + CR_Meroitic_Cursive, + CR_Meroitic_Hieroglyphs, + CR_Miao, + CR_Mn, + CR_Modi, + CR_Modifier_Combining_Mark, + CR_Mongolian, + CR_Mro, + CR_Multani, + CR_Myanmar, + CR_N, + CR_Nabataean, + CR_Nag_Mundari, + CR_Nandinagari, + CR_Nd, + CR_New_Tai_Lue, + CR_Newa, + CR_Nko, + CR_Nl, + CR_No, + CR_Noncharacter_Code_Point, + CR_Nushu, + CR_Nyiakeng_Puachue_Hmong, + CR_Ogham, + CR_Ol_Chiki, + CR_Ol_Onal, + CR_Old_Hungarian, + CR_Old_Italic, + CR_Old_North_Arabian, + CR_Old_Permic, + CR_Old_Persian, + CR_Old_Sogdian, + CR_Old_South_Arabian, + CR_Old_Turkic, + CR_Old_Uyghur, + CR_Oriya, + CR_Osage, + CR_Osmanya, + CR_Other_Alphabetic, + CR_Other_Default_Ignorable_Code_Point, + CR_Other_Grapheme_Extend, + CR_Other_ID_Continue, + CR_Other_ID_Start, + CR_Other_Lowercase, + CR_Other_Math, + CR_Other_Uppercase, + CR_P, + CR_Pahawh_Hmong, + CR_Palmyrene, + CR_Pattern_Syntax, + CR_Pattern_White_Space, + CR_Pau_Cin_Hau, + CR_Pc, + CR_Pd, + CR_Pe, + CR_Pf, + CR_Phags_Pa, + CR_Phoenician, + CR_Pi, + CR_Po, + CR_Prepended_Concatenation_Mark, + CR_Ps, + CR_Psalter_Pahlavi, + CR_Quotation_Mark, + CR_Radical, + CR_Regional_Indicator, + CR_Rejang, + CR_Runic, + CR_S, + CR_Samaritan, + CR_Saurashtra, + CR_Sc, + CR_Sentence_Terminal, + CR_Sharada, + CR_Shavian, + CR_Siddham, + CR_SignWriting, + CR_Sinhala, + CR_Sk, + CR_Sm, + CR_So, + CR_Soft_Dotted, + CR_Sogdian, + CR_Sora_Sompeng, + CR_Soyombo, + CR_Sundanese, + CR_Sunuwar, + CR_Syloti_Nagri, + CR_Syriac, + CR_Tagalog, + CR_Tagbanwa, + CR_Tai_Le, + CR_Tai_Tham, + CR_Tai_Viet, + CR_Takri, + CR_Tamil, + CR_Tangsa, + CR_Tangut, + CR_Telugu, + CR_Terminal_Punctuation, + CR_Thaana, + CR_Thai, + CR_Tibetan, + CR_Tifinagh, + CR_Tirhuta, + CR_Todhri, + CR_Toto, + CR_Tulu_Tigalari, + CR_Ugaritic, + CR_Unified_Ideograph, + CR_Unknown, + CR_Uppercase, + CR_Vai, + CR_Variation_Selector, + CR_Vithkuqi, + CR_Wancho, + CR_Warang_Citi, + CR_White_Space, + CR_XID_Continue, + CR_XID_Start, + CR_Yezidi, + CR_Yi, + CR_Z, + CR_Zanabazar_Square, + CR_Zl, + CR_Zp, + CR_Zs, + CR_In_Basic_Latin, + CR_In_Latin_1_Supplement, + CR_In_Latin_Extended_A, + CR_In_Latin_Extended_B, + CR_In_IPA_Extensions, + CR_In_Spacing_Modifier_Letters, + CR_In_Combining_Diacritical_Marks, + CR_In_Greek_and_Coptic, + CR_In_Cyrillic, + CR_In_Cyrillic_Supplement, + CR_In_Armenian, + CR_In_Hebrew, + CR_In_Arabic, + CR_In_Syriac, + CR_In_Arabic_Supplement, + CR_In_Thaana, + CR_In_NKo, + CR_In_Samaritan, + CR_In_Mandaic, + CR_In_Syriac_Supplement, + CR_In_Arabic_Extended_B, + CR_In_Arabic_Extended_A, + CR_In_Devanagari, + CR_In_Bengali, + CR_In_Gurmukhi, + CR_In_Gujarati, + CR_In_Oriya, + CR_In_Tamil, + CR_In_Telugu, + CR_In_Kannada, + CR_In_Malayalam, + CR_In_Sinhala, + CR_In_Thai, + CR_In_Lao, + CR_In_Tibetan, + CR_In_Myanmar, + CR_In_Georgian, + CR_In_Hangul_Jamo, + CR_In_Ethiopic, + CR_In_Ethiopic_Supplement, + CR_In_Cherokee, + CR_In_Unified_Canadian_Aboriginal_Syllabics, + CR_In_Ogham, + CR_In_Runic, + CR_In_Tagalog, + CR_In_Hanunoo, + CR_In_Buhid, + CR_In_Tagbanwa, + CR_In_Khmer, + CR_In_Mongolian, + CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended, + CR_In_Limbu, + CR_In_Tai_Le, + CR_In_New_Tai_Lue, + CR_In_Khmer_Symbols, + CR_In_Buginese, + CR_In_Tai_Tham, + CR_In_Combining_Diacritical_Marks_Extended, + CR_In_Balinese, + CR_In_Sundanese, + CR_In_Batak, + CR_In_Lepcha, + CR_In_Ol_Chiki, + CR_In_Cyrillic_Extended_C, + CR_In_Georgian_Extended, + CR_In_Sundanese_Supplement, + CR_In_Vedic_Extensions, + CR_In_Phonetic_Extensions, + CR_In_Phonetic_Extensions_Supplement, + CR_In_Combining_Diacritical_Marks_Supplement, + CR_In_Latin_Extended_Additional, + CR_In_Greek_Extended, + CR_In_General_Punctuation, + CR_In_Superscripts_and_Subscripts, + CR_In_Currency_Symbols, + CR_In_Combining_Diacritical_Marks_for_Symbols, + CR_In_Letterlike_Symbols, + CR_In_Number_Forms, + CR_In_Arrows, + CR_In_Mathematical_Operators, + CR_In_Miscellaneous_Technical, + CR_In_Control_Pictures, + CR_In_Optical_Character_Recognition, + CR_In_Enclosed_Alphanumerics, + CR_In_Box_Drawing, + CR_In_Block_Elements, + CR_In_Geometric_Shapes, + CR_In_Miscellaneous_Symbols, + CR_In_Dingbats, + CR_In_Miscellaneous_Mathematical_Symbols_A, + CR_In_Supplemental_Arrows_A, + CR_In_Braille_Patterns, + CR_In_Supplemental_Arrows_B, + CR_In_Miscellaneous_Mathematical_Symbols_B, + CR_In_Supplemental_Mathematical_Operators, + CR_In_Miscellaneous_Symbols_and_Arrows, + CR_In_Glagolitic, + CR_In_Latin_Extended_C, + CR_In_Coptic, + CR_In_Georgian_Supplement, + CR_In_Tifinagh, + CR_In_Ethiopic_Extended, + CR_In_Cyrillic_Extended_A, + CR_In_Supplemental_Punctuation, + CR_In_CJK_Radicals_Supplement, + CR_In_Kangxi_Radicals, + CR_In_Ideographic_Description_Characters, + CR_In_CJK_Symbols_and_Punctuation, + CR_In_Hiragana, + CR_In_Katakana, + CR_In_Bopomofo, + CR_In_Hangul_Compatibility_Jamo, + CR_In_Kanbun, + CR_In_Bopomofo_Extended, + CR_In_CJK_Strokes, + CR_In_Katakana_Phonetic_Extensions, + CR_In_Enclosed_CJK_Letters_and_Months, + CR_In_CJK_Compatibility, + CR_In_CJK_Unified_Ideographs_Extension_A, + CR_In_Yijing_Hexagram_Symbols, + CR_In_CJK_Unified_Ideographs, + CR_In_Yi_Syllables, + CR_In_Yi_Radicals, + CR_In_Lisu, + CR_In_Vai, + CR_In_Cyrillic_Extended_B, + CR_In_Bamum, + CR_In_Modifier_Tone_Letters, + CR_In_Latin_Extended_D, + CR_In_Syloti_Nagri, + CR_In_Common_Indic_Number_Forms, + CR_In_Phags_pa, + CR_In_Saurashtra, + CR_In_Devanagari_Extended, + CR_In_Kayah_Li, + CR_In_Rejang, + CR_In_Hangul_Jamo_Extended_A, + CR_In_Javanese, + CR_In_Myanmar_Extended_B, + CR_In_Cham, + CR_In_Myanmar_Extended_A, + CR_In_Tai_Viet, + CR_In_Meetei_Mayek_Extensions, + CR_In_Ethiopic_Extended_A, + CR_In_Latin_Extended_E, + CR_In_Cherokee_Supplement, + CR_In_Meetei_Mayek, + CR_In_Hangul_Syllables, + CR_In_Hangul_Jamo_Extended_B, + CR_In_High_Surrogates, + CR_In_High_Private_Use_Surrogates, + CR_In_Low_Surrogates, + CR_In_Private_Use_Area, + CR_In_CJK_Compatibility_Ideographs, + CR_In_Alphabetic_Presentation_Forms, + CR_In_Arabic_Presentation_Forms_A, + CR_In_Variation_Selectors, + CR_In_Vertical_Forms, + CR_In_Combining_Half_Marks, + CR_In_CJK_Compatibility_Forms, + CR_In_Small_Form_Variants, + CR_In_Arabic_Presentation_Forms_B, + CR_In_Halfwidth_and_Fullwidth_Forms, + CR_In_Specials, + CR_In_Linear_B_Syllabary, + CR_In_Linear_B_Ideograms, + CR_In_Aegean_Numbers, + CR_In_Ancient_Greek_Numbers, + CR_In_Ancient_Symbols, + CR_In_Phaistos_Disc, + CR_In_Lycian, + CR_In_Carian, + CR_In_Coptic_Epact_Numbers, + CR_In_Old_Italic, + CR_In_Gothic, + CR_In_Old_Permic, + CR_In_Ugaritic, + CR_In_Old_Persian, + CR_In_Deseret, + CR_In_Shavian, + CR_In_Osmanya, + CR_In_Osage, + CR_In_Elbasan, + CR_In_Caucasian_Albanian, + CR_In_Vithkuqi, + CR_In_Todhri, + CR_In_Linear_A, + CR_In_Latin_Extended_F, + CR_In_Cypriot_Syllabary, + CR_In_Imperial_Aramaic, + CR_In_Palmyrene, + CR_In_Nabataean, + CR_In_Hatran, + CR_In_Phoenician, + CR_In_Lydian, + CR_In_Meroitic_Hieroglyphs, + CR_In_Meroitic_Cursive, + CR_In_Kharoshthi, + CR_In_Old_South_Arabian, + CR_In_Old_North_Arabian, + CR_In_Manichaean, + CR_In_Avestan, + CR_In_Inscriptional_Parthian, + CR_In_Inscriptional_Pahlavi, + CR_In_Psalter_Pahlavi, + CR_In_Old_Turkic, + CR_In_Old_Hungarian, + CR_In_Hanifi_Rohingya, + CR_In_Garay, + CR_In_Rumi_Numeral_Symbols, + CR_In_Yezidi, + CR_In_Arabic_Extended_C, + CR_In_Old_Sogdian, + CR_In_Sogdian, + CR_In_Old_Uyghur, + CR_In_Chorasmian, + CR_In_Elymaic, + CR_In_Brahmi, + CR_In_Kaithi, + CR_In_Sora_Sompeng, + CR_In_Chakma, + CR_In_Mahajani, + CR_In_Sharada, + CR_In_Sinhala_Archaic_Numbers, + CR_In_Khojki, + CR_In_Multani, + CR_In_Khudawadi, + CR_In_Grantha, + CR_In_Tulu_Tigalari, + CR_In_Newa, + CR_In_Tirhuta, + CR_In_Siddham, + CR_In_Modi, + CR_In_Mongolian_Supplement, + CR_In_Takri, + CR_In_Myanmar_Extended_C, + CR_In_Ahom, + CR_In_Dogra, + CR_In_Warang_Citi, + CR_In_Dives_Akuru, + CR_In_Nandinagari, + CR_In_Zanabazar_Square, + CR_In_Soyombo, + CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended_A, + CR_In_Pau_Cin_Hau, + CR_In_Devanagari_Extended_A, + CR_In_Sunuwar, + CR_In_Bhaiksuki, + CR_In_Marchen, + CR_In_Masaram_Gondi, + CR_In_Gunjala_Gondi, + CR_In_Makasar, + CR_In_Kawi, + CR_In_Lisu_Supplement, + CR_In_Tamil_Supplement, + CR_In_Cuneiform, + CR_In_Cuneiform_Numbers_and_Punctuation, + CR_In_Early_Dynastic_Cuneiform, + CR_In_Cypro_Minoan, + CR_In_Egyptian_Hieroglyphs, + CR_In_Egyptian_Hieroglyph_Format_Controls, + CR_In_Egyptian_Hieroglyphs_Extended_A, + CR_In_Anatolian_Hieroglyphs, + CR_In_Gurung_Khema, + CR_In_Bamum_Supplement, + CR_In_Mro, + CR_In_Tangsa, + CR_In_Bassa_Vah, + CR_In_Pahawh_Hmong, + CR_In_Kirat_Rai, + CR_In_Medefaidrin, + CR_In_Miao, + CR_In_Ideographic_Symbols_and_Punctuation, + CR_In_Tangut, + CR_In_Tangut_Components, + CR_In_Khitan_Small_Script, + CR_In_Tangut_Supplement, + CR_In_Kana_Extended_B, + CR_In_Kana_Supplement, + CR_In_Kana_Extended_A, + CR_In_Small_Kana_Extension, + CR_In_Nushu, + CR_In_Duployan, + CR_In_Shorthand_Format_Controls, + CR_In_Symbols_for_Legacy_Computing_Supplement, + CR_In_Znamenny_Musical_Notation, + CR_In_Byzantine_Musical_Symbols, + CR_In_Musical_Symbols, + CR_In_Ancient_Greek_Musical_Notation, + CR_In_Kaktovik_Numerals, + CR_In_Mayan_Numerals, + CR_In_Tai_Xuan_Jing_Symbols, + CR_In_Counting_Rod_Numerals, + CR_In_Mathematical_Alphanumeric_Symbols, + CR_In_Sutton_SignWriting, + CR_In_Latin_Extended_G, + CR_In_Glagolitic_Supplement, + CR_In_Cyrillic_Extended_D, + CR_In_Nyiakeng_Puachue_Hmong, + CR_In_Toto, + CR_In_Wancho, + CR_In_Nag_Mundari, + CR_In_Ol_Onal, + CR_In_Ethiopic_Extended_B, + CR_In_Mende_Kikakui, + CR_In_Adlam, + CR_In_Indic_Siyaq_Numbers, + CR_In_Ottoman_Siyaq_Numbers, + CR_In_Arabic_Mathematical_Alphabetic_Symbols, + CR_In_Mahjong_Tiles, + CR_In_Domino_Tiles, + CR_In_Playing_Cards, + CR_In_Enclosed_Alphanumeric_Supplement, + CR_In_Enclosed_Ideographic_Supplement, + CR_In_Miscellaneous_Symbols_and_Pictographs, + CR_In_Emoticons, + CR_In_Ornamental_Dingbats, + CR_In_Transport_and_Map_Symbols, + CR_In_Alchemical_Symbols, + CR_In_Geometric_Shapes_Extended, + CR_In_Supplemental_Arrows_C, + CR_In_Supplemental_Symbols_and_Pictographs, + CR_In_Chess_Symbols, + CR_In_Symbols_and_Pictographs_Extended_A, + CR_In_Symbols_for_Legacy_Computing, + CR_In_CJK_Unified_Ideographs_Extension_B, + CR_In_CJK_Unified_Ideographs_Extension_C, + CR_In_CJK_Unified_Ideographs_Extension_D, + CR_In_CJK_Unified_Ideographs_Extension_E, + CR_In_CJK_Unified_Ideographs_Extension_F, + CR_In_CJK_Unified_Ideographs_Extension_I, + CR_In_CJK_Compatibility_Ideographs_Supplement, + CR_In_CJK_Unified_Ideographs_Extension_G, + CR_In_CJK_Unified_Ideographs_Extension_H, + CR_In_Tags, + CR_In_Variation_Selectors_Supplement, + CR_In_Supplementary_Private_Use_Area_A, + CR_In_Supplementary_Private_Use_Area_B, + CR_In_No_Block, +}; + +#define pool_offset(s) offsetof(struct unicode_prop_name_pool_t, unicode_prop_name_pool_str##s) + + +#define TOTAL_KEYWORDS 886 +#define MIN_WORD_LENGTH 1 +#define MAX_WORD_LENGTH 45 +#define MIN_HASH_VALUE 12 +#define MAX_HASH_VALUE 6900 +/* maximum key range = 6889, duplicates = 0 */ + +#ifndef GPERF_DOWNCASE +#define GPERF_DOWNCASE 1 +static unsigned char gperf_downcase[256] = + { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255 + }; +#endif + +#ifndef GPERF_CASE_STRNCMP +#define GPERF_CASE_STRNCMP 1 +static int +gperf_case_strncmp (register const char *s1, register const char *s2, register size_t n) +{ + for (; n > 0;) + { + unsigned char c1 = gperf_downcase[(unsigned char)*s1++]; + unsigned char c2 = gperf_downcase[(unsigned char)*s2++]; + if (c1 != 0 && c1 == c2) + { + n--; + continue; + } + return (int)c1 - (int)c2; + } + return 0; +} +#endif + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +hash (register const char *str, register size_t len) +{ + static const unsigned short asso_values[] = + { + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 0, 1564, 118, 343, 36, + 1531, 1146, 1071, 7, 1812, 8, 684, 99, 4, 16, + 1399, 824, 47, 173, 241, 486, 2191, 1723, 940, 1648, + 9, 0, 24, 6901, 6901, 6901, 6901, 0, 1564, 118, + 343, 36, 1531, 1146, 1071, 7, 1812, 8, 684, 99, + 4, 16, 1399, 824, 47, 173, 241, 486, 2191, 1723, + 940, 1648, 9, 0, 24, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901, + 6901, 6901, 6901, 6901, 6901, 6901, 6901, 6901 + }; + register unsigned int hval = (unsigned int )len; + + switch (hval) + { + default: + hval += asso_values[(unsigned char)str[15]]; + /*FALLTHROUGH*/ + case 15: + case 14: + case 13: + case 12: + hval += asso_values[(unsigned char)str[11]]; + /*FALLTHROUGH*/ + case 11: + case 10: + case 9: + case 8: + case 7: + case 6: + hval += asso_values[(unsigned char)str[5]]; + /*FALLTHROUGH*/ + case 5: + hval += asso_values[(unsigned char)str[4]]; + /*FALLTHROUGH*/ + case 4: + case 3: + hval += asso_values[(unsigned char)str[2]]; + /*FALLTHROUGH*/ + case 2: + hval += asso_values[(unsigned char)str[1]]; + /*FALLTHROUGH*/ + case 1: + hval += asso_values[(unsigned char)str[0]+2]; + break; + } + return hval + asso_values[(unsigned char)str[len - 1]]; +} + +struct unicode_prop_name_pool_t + { + char unicode_prop_name_pool_str12[sizeof("lana")]; + char unicode_prop_name_pool_str16[sizeof("yi")]; + char unicode_prop_name_pool_str19[sizeof("lina")]; + char unicode_prop_name_pool_str25[sizeof("yiii")]; + char unicode_prop_name_pool_str26[sizeof("mn")]; + char unicode_prop_name_pool_str28[sizeof("maka")]; + char unicode_prop_name_pool_str31[sizeof("mani")]; + char unicode_prop_name_pool_str34[sizeof("z")]; + char unicode_prop_name_pool_str37[sizeof("inkannada")]; + char unicode_prop_name_pool_str38[sizeof("lo")]; + char unicode_prop_name_pool_str39[sizeof("lao")]; + char unicode_prop_name_pool_str40[sizeof("laoo")]; + char unicode_prop_name_pool_str43[sizeof("miao")]; + char unicode_prop_name_pool_str46[sizeof("cn")]; + char unicode_prop_name_pool_str52[sizeof("ci")]; + char unicode_prop_name_pool_str53[sizeof("innko")]; + char unicode_prop_name_pool_str55[sizeof("zzzz")]; + char unicode_prop_name_pool_str56[sizeof("yezi")]; + char unicode_prop_name_pool_str58[sizeof("gara")]; + char unicode_prop_name_pool_str62[sizeof("gran")]; + char unicode_prop_name_pool_str63[sizeof("pi")]; + char unicode_prop_name_pool_str69[sizeof("lineara")]; + char unicode_prop_name_pool_str70[sizeof("co")]; + char unicode_prop_name_pool_str75[sizeof("mark")]; + char unicode_prop_name_pool_str81[sizeof("po")]; + char unicode_prop_name_pool_str84[sizeof("inkiratrai")]; + char unicode_prop_name_pool_str90[sizeof("me")]; + char unicode_prop_name_pool_str93[sizeof("inkharoshthi")]; + char unicode_prop_name_pool_str94[sizeof("cari")]; + char unicode_prop_name_pool_str95[sizeof("loe")]; + char unicode_prop_name_pool_str97[sizeof("carian")]; + char unicode_prop_name_pool_str98[sizeof("mro")]; + char unicode_prop_name_pool_str99[sizeof("mroo")]; + char unicode_prop_name_pool_str102[sizeof("grek")]; + char unicode_prop_name_pool_str107[sizeof("kana")]; + char unicode_prop_name_pool_str110[sizeof("geor")]; + char unicode_prop_name_pool_str111[sizeof("greek")]; + char unicode_prop_name_pool_str116[sizeof("m")]; + char unicode_prop_name_pool_str119[sizeof("mero")]; + char unicode_prop_name_pool_str121[sizeof("pe")]; + char unicode_prop_name_pool_str126[sizeof("mendekikakui")]; + char unicode_prop_name_pool_str130[sizeof("gonm")]; + char unicode_prop_name_pool_str136[sizeof("inosmanya")]; + char unicode_prop_name_pool_str142[sizeof("inmanichaean")]; + char unicode_prop_name_pool_str146[sizeof("inchakma")]; + char unicode_prop_name_pool_str147[sizeof("cakm")]; + char unicode_prop_name_pool_str148[sizeof("inmro")]; + char unicode_prop_name_pool_str149[sizeof("inmiao")]; + char unicode_prop_name_pool_str150[sizeof("meeteimayek")]; + char unicode_prop_name_pool_str152[sizeof("mandaic")]; + char unicode_prop_name_pool_str155[sizeof("c")]; + char unicode_prop_name_pool_str157[sizeof("krai")]; + char unicode_prop_name_pool_str161[sizeof("inarmenian")]; + char unicode_prop_name_pool_str171[sizeof("inmyanmar")]; + char unicode_prop_name_pool_str175[sizeof("inmakasar")]; + char unicode_prop_name_pool_str181[sizeof("common")]; + char unicode_prop_name_pool_str184[sizeof("qaai")]; + char unicode_prop_name_pool_str185[sizeof("marc")]; + char unicode_prop_name_pool_str195[sizeof("inrunic")]; + char unicode_prop_name_pool_str196[sizeof("incarian")]; + char unicode_prop_name_pool_str204[sizeof("lm")]; + char unicode_prop_name_pool_str209[sizeof("inkhmer")]; + char unicode_prop_name_pool_str213[sizeof("inchorasmian")]; + char unicode_prop_name_pool_str215[sizeof("inideographicsymbolsandpunctuation")]; + char unicode_prop_name_pool_str217[sizeof("cans")]; + char unicode_prop_name_pool_str221[sizeof("merc")]; + char unicode_prop_name_pool_str230[sizeof("combiningmark")]; + char unicode_prop_name_pool_str232[sizeof("inahom")]; + char unicode_prop_name_pool_str233[sizeof("perm")]; + char unicode_prop_name_pool_str234[sizeof("inavestan")]; + char unicode_prop_name_pool_str238[sizeof("connectorpunctuation")]; + char unicode_prop_name_pool_str241[sizeof("insharada")]; + char unicode_prop_name_pool_str242[sizeof("lc")]; + char unicode_prop_name_pool_str244[sizeof("prependedconcatenationmark")]; + char unicode_prop_name_pool_str246[sizeof("incuneiformnumbersandpunctuation")]; + char unicode_prop_name_pool_str250[sizeof("inipaextensions")]; + char unicode_prop_name_pool_str251[sizeof("makasar")]; + char unicode_prop_name_pool_str253[sizeof("latn")]; + char unicode_prop_name_pool_str254[sizeof("mc")]; + char unicode_prop_name_pool_str256[sizeof("inarrows")]; + char unicode_prop_name_pool_str257[sizeof("ri")]; + char unicode_prop_name_pool_str258[sizeof("latin")]; + char unicode_prop_name_pool_str259[sizeof("incherokee")]; + char unicode_prop_name_pool_str261[sizeof("inthaana")]; + char unicode_prop_name_pool_str262[sizeof("masaramgondi")]; + char unicode_prop_name_pool_str271[sizeof("inkatakana")]; + char unicode_prop_name_pool_str272[sizeof("armn")]; + char unicode_prop_name_pool_str273[sizeof("inthai")]; + char unicode_prop_name_pool_str274[sizeof("cc")]; + char unicode_prop_name_pool_str275[sizeof("armi")]; + char unicode_prop_name_pool_str280[sizeof("incuneiform")]; + char unicode_prop_name_pool_str283[sizeof("inkaithi")]; + char unicode_prop_name_pool_str285[sizeof("pc")]; + char unicode_prop_name_pool_str287[sizeof("armenian")]; + char unicode_prop_name_pool_str289[sizeof("inmarchen")]; + char unicode_prop_name_pool_str293[sizeof("qmark")]; + char unicode_prop_name_pool_str295[sizeof("qaac")]; + char unicode_prop_name_pool_str296[sizeof("initialpunctuation")]; + char unicode_prop_name_pool_str298[sizeof("inzanabazarsquare")]; + char unicode_prop_name_pool_str299[sizeof("insamaritan")]; + char unicode_prop_name_pool_str300[sizeof("lineseparator")]; + char unicode_prop_name_pool_str304[sizeof("mtei")]; + char unicode_prop_name_pool_str309[sizeof("inmasaramgondi")]; + char unicode_prop_name_pool_str311[sizeof("inscriptionalparthian")]; + char unicode_prop_name_pool_str312[sizeof("incyrillic")]; + char unicode_prop_name_pool_str322[sizeof("intakri")]; + char unicode_prop_name_pool_str334[sizeof("incham")]; + char unicode_prop_name_pool_str335[sizeof("mcm")]; + char unicode_prop_name_pool_str346[sizeof("prti")]; + char unicode_prop_name_pool_str356[sizeof("katakana")]; + char unicode_prop_name_pool_str358[sizeof("inkhmersymbols")]; + char unicode_prop_name_pool_str365[sizeof("insyriac")]; + char unicode_prop_name_pool_str366[sizeof("pcm")]; + char unicode_prop_name_pool_str367[sizeof("mand")]; + char unicode_prop_name_pool_str372[sizeof("zs")]; + char unicode_prop_name_pool_str382[sizeof("inkanaextendeda")]; + char unicode_prop_name_pool_str384[sizeof("cs")]; + char unicode_prop_name_pool_str386[sizeof("modi")]; + char unicode_prop_name_pool_str388[sizeof("privateuse")]; + char unicode_prop_name_pool_str395[sizeof("ps")]; + char unicode_prop_name_pool_str401[sizeof("brai")]; + char unicode_prop_name_pool_str403[sizeof("mend")]; + char unicode_prop_name_pool_str407[sizeof("ideo")]; + char unicode_prop_name_pool_str408[sizeof("yezidi")]; + char unicode_prop_name_pool_str410[sizeof("inmyanmarextendeda")]; + char unicode_prop_name_pool_str414[sizeof("arabic")]; + char unicode_prop_name_pool_str417[sizeof("letter")]; + char unicode_prop_name_pool_str426[sizeof("xidcontinue")]; + char unicode_prop_name_pool_str428[sizeof("ascii")]; + char unicode_prop_name_pool_str430[sizeof("innandinagari")]; + char unicode_prop_name_pool_str443[sizeof("inoldnortharabian")]; + char unicode_prop_name_pool_str445[sizeof("inmeeteimayek")]; + char unicode_prop_name_pool_str450[sizeof("knda")]; + char unicode_prop_name_pool_str453[sizeof("kannada")]; + char unicode_prop_name_pool_str454[sizeof("intransportandmapsymbols")]; + char unicode_prop_name_pool_str456[sizeof("kiratrai")]; + char unicode_prop_name_pool_str457[sizeof("inruminumeralsymbols")]; + char unicode_prop_name_pool_str458[sizeof("inideographicdescriptioncharacters")]; + char unicode_prop_name_pool_str466[sizeof("incjkcompatibilityforms")]; + char unicode_prop_name_pool_str470[sizeof("letternumber")]; + char unicode_prop_name_pool_str471[sizeof("incjkcompatibilityideographs")]; + char unicode_prop_name_pool_str474[sizeof("inmodi")]; + char unicode_prop_name_pool_str481[sizeof("xidc")]; + char unicode_prop_name_pool_str487[sizeof("inmendekikakui")]; + char unicode_prop_name_pool_str488[sizeof("lt")]; + char unicode_prop_name_pool_str489[sizeof("inemoticons")]; + char unicode_prop_name_pool_str504[sizeof("sk")]; + char unicode_prop_name_pool_str507[sizeof("inolditalic")]; + char unicode_prop_name_pool_str509[sizeof("brahmi")]; + char unicode_prop_name_pool_str513[sizeof("gothic")]; + char unicode_prop_name_pool_str514[sizeof("inmedefaidrin")]; + char unicode_prop_name_pool_str518[sizeof("psalterpahlavi")]; + char unicode_prop_name_pool_str520[sizeof("so")]; + char unicode_prop_name_pool_str522[sizeof("inspecials")]; + char unicode_prop_name_pool_str524[sizeof("kits")]; + char unicode_prop_name_pool_str528[sizeof("inmyanmarextendedc")]; + char unicode_prop_name_pool_str532[sizeof("intoto")]; + char unicode_prop_name_pool_str536[sizeof("xids")]; + char unicode_prop_name_pool_str542[sizeof("inchesssymbols")]; + char unicode_prop_name_pool_str549[sizeof("incjkcompatibilityideographssupplement")]; + char unicode_prop_name_pool_str550[sizeof("inopticalcharacterrecognition")]; + char unicode_prop_name_pool_str553[sizeof("sora")]; + char unicode_prop_name_pool_str558[sizeof("inkanasupplement")]; + char unicode_prop_name_pool_str564[sizeof("inoldsogdian")]; + char unicode_prop_name_pool_str571[sizeof("meroiticcursive")]; + char unicode_prop_name_pool_str572[sizeof("inmiscellaneousmathematicalsymbolsa")]; + char unicode_prop_name_pool_str577[sizeof("grext")]; + char unicode_prop_name_pool_str578[sizeof("patternwhitespace")]; + char unicode_prop_name_pool_str579[sizeof("insundanese")]; + char unicode_prop_name_pool_str585[sizeof("inmandaic")]; + char unicode_prop_name_pool_str588[sizeof("print")]; + char unicode_prop_name_pool_str590[sizeof("idc")]; + char unicode_prop_name_pool_str596[sizeof("batk")]; + char unicode_prop_name_pool_str598[sizeof("inancientsymbols")]; + char unicode_prop_name_pool_str605[sizeof("batak")]; + char unicode_prop_name_pool_str609[sizeof("intaitham")]; + char unicode_prop_name_pool_str612[sizeof("inoldsoutharabian")]; + char unicode_prop_name_pool_str631[sizeof("incommonindicnumberforms")]; + char unicode_prop_name_pool_str635[sizeof("inznamennymusicalnotation")]; + char unicode_prop_name_pool_str636[sizeof("samr")]; + char unicode_prop_name_pool_str639[sizeof("patws")]; + char unicode_prop_name_pool_str645[sizeof("bamum")]; + char unicode_prop_name_pool_str651[sizeof("idsbinaryoperator")]; + char unicode_prop_name_pool_str652[sizeof("samaritan")]; + char unicode_prop_name_pool_str655[sizeof("pauc")]; + char unicode_prop_name_pool_str660[sizeof("s")]; + char unicode_prop_name_pool_str669[sizeof("incjkstrokes")]; + char unicode_prop_name_pool_str673[sizeof("inugaritic")]; + char unicode_prop_name_pool_str674[sizeof("lisu")]; + char unicode_prop_name_pool_str683[sizeof("indominotiles")]; + char unicode_prop_name_pool_str685[sizeof("idsunaryoperator")]; + char unicode_prop_name_pool_str686[sizeof("sm")]; + char unicode_prop_name_pool_str689[sizeof("l")]; + char unicode_prop_name_pool_str692[sizeof("inancientgreekmusicalnotation")]; + char unicode_prop_name_pool_str693[sizeof("bass")]; + char unicode_prop_name_pool_str700[sizeof("ids")]; + char unicode_prop_name_pool_str707[sizeof("inmodifiertoneletters")]; + char unicode_prop_name_pool_str719[sizeof("incontrolpictures")]; + char unicode_prop_name_pool_str724[sizeof("sc")]; + char unicode_prop_name_pool_str730[sizeof("insaurashtra")]; + char unicode_prop_name_pool_str731[sizeof("insunuwar")]; + char unicode_prop_name_pool_str733[sizeof("inlao")]; + char unicode_prop_name_pool_str735[sizeof("pd")]; + char unicode_prop_name_pool_str740[sizeof("inolonal")]; + char unicode_prop_name_pool_str741[sizeof("inoldturkic")]; + char unicode_prop_name_pool_str745[sizeof("inlineara")]; + char unicode_prop_name_pool_str749[sizeof("mongolian")]; + char unicode_prop_name_pool_str752[sizeof("inmusicalsymbols")]; + char unicode_prop_name_pool_str760[sizeof("idcontinue")]; + char unicode_prop_name_pool_str761[sizeof("incaucasianalbanian")]; + char unicode_prop_name_pool_str764[sizeof("grlink")]; + char unicode_prop_name_pool_str769[sizeof("idst")]; + char unicode_prop_name_pool_str782[sizeof("runr")]; + char unicode_prop_name_pool_str794[sizeof("kali")]; + char unicode_prop_name_pool_str802[sizeof("inadlam")]; + char unicode_prop_name_pool_str806[sizeof("inmiscellaneoussymbols")]; + char unicode_prop_name_pool_str810[sizeof("control")]; + char unicode_prop_name_pool_str814[sizeof("indeseret")]; + char unicode_prop_name_pool_str815[sizeof("inmiscellaneoussymbolsandarrows")]; + char unicode_prop_name_pool_str819[sizeof("idstart")]; + char unicode_prop_name_pool_str820[sizeof("inmiscellaneoussymbolsandpictographs")]; + char unicode_prop_name_pool_str833[sizeof("inlycian")]; + char unicode_prop_name_pool_str834[sizeof("palm")]; + char unicode_prop_name_pool_str844[sizeof("sind")]; + char unicode_prop_name_pool_str848[sizeof("onao")]; + char unicode_prop_name_pool_str849[sizeof("xidstart")]; + char unicode_prop_name_pool_str853[sizeof("inancientgreeknumbers")]; + char unicode_prop_name_pool_str854[sizeof("xdigit")]; + char unicode_prop_name_pool_str861[sizeof("inmeeteimayekextensions")]; + char unicode_prop_name_pool_str867[sizeof("inkhudawadi")]; + char unicode_prop_name_pool_str879[sizeof("inspacingmodifierletters")]; + char unicode_prop_name_pool_str883[sizeof("oriya")]; + char unicode_prop_name_pool_str900[sizeof("cased")]; + char unicode_prop_name_pool_str905[sizeof("inmalayalam")]; + char unicode_prop_name_pool_str915[sizeof("inolduyghur")]; + char unicode_prop_name_pool_str929[sizeof("incountingrodnumerals")]; + char unicode_prop_name_pool_str932[sizeof("bamu")]; + char unicode_prop_name_pool_str933[sizeof("insmallkanaextension")]; + char unicode_prop_name_pool_str934[sizeof("bidic")]; + char unicode_prop_name_pool_str937[sizeof("ital")]; + char unicode_prop_name_pool_str946[sizeof("inkaktoviknumerals")]; + char unicode_prop_name_pool_str948[sizeof("joinc")]; + char unicode_prop_name_pool_str952[sizeof("insylotinagri")]; + char unicode_prop_name_pool_str957[sizeof("vai")]; + char unicode_prop_name_pool_str958[sizeof("vaii")]; + char unicode_prop_name_pool_str963[sizeof("inlinearbideograms")]; + char unicode_prop_name_pool_str964[sizeof("inlatinextendeda")]; + char unicode_prop_name_pool_str966[sizeof("sterm")]; + char unicode_prop_name_pool_str967[sizeof("incyrillicsupplement")]; + char unicode_prop_name_pool_str972[sizeof("runic")]; + char unicode_prop_name_pool_str978[sizeof("lu")]; + char unicode_prop_name_pool_str979[sizeof("insiddham")]; + char unicode_prop_name_pool_str984[sizeof("quotationmark")]; + char unicode_prop_name_pool_str987[sizeof("intaile")]; + char unicode_prop_name_pool_str996[sizeof("incherokeesupplement")]; + char unicode_prop_name_pool_str1009[sizeof("alnum")]; + char unicode_prop_name_pool_str1014[sizeof("idsu")]; + char unicode_prop_name_pool_str1015[sizeof("incjkunifiedideographsextensiona")]; + char unicode_prop_name_pool_str1022[sizeof("incjkunifiedideographsextensioni")]; + char unicode_prop_name_pool_str1023[sizeof("saur")]; + char unicode_prop_name_pool_str1024[sizeof("punct")]; + char unicode_prop_name_pool_str1025[sizeof("sundanese")]; + char unicode_prop_name_pool_str1030[sizeof("guru")]; + char unicode_prop_name_pool_str1036[sizeof("inlatinextendede")]; + char unicode_prop_name_pool_str1038[sizeof("bali")]; + char unicode_prop_name_pool_str1039[sizeof("paucinhau")]; + char unicode_prop_name_pool_str1048[sizeof("blank")]; + char unicode_prop_name_pool_str1049[sizeof("gurmukhi")]; + char unicode_prop_name_pool_str1050[sizeof("intamil")]; + char unicode_prop_name_pool_str1051[sizeof("incjkunifiedideographsextensione")]; + char unicode_prop_name_pool_str1052[sizeof("inmultani")]; + char unicode_prop_name_pool_str1058[sizeof("inlydian")]; + char unicode_prop_name_pool_str1074[sizeof("osage")]; + char unicode_prop_name_pool_str1081[sizeof("bengali")]; + char unicode_prop_name_pool_str1087[sizeof("limbu")]; + char unicode_prop_name_pool_str1100[sizeof("osma")]; + char unicode_prop_name_pool_str1110[sizeof("zinh")]; + char unicode_prop_name_pool_str1111[sizeof("balinese")]; + char unicode_prop_name_pool_str1117[sizeof("inhanifirohingya")]; + char unicode_prop_name_pool_str1125[sizeof("plrd")]; + char unicode_prop_name_pool_str1133[sizeof("incjkunifiedideographsextensionc")]; + char unicode_prop_name_pool_str1140[sizeof("inhiragana")]; + char unicode_prop_name_pool_str1143[sizeof("canadianaboriginal")]; + char unicode_prop_name_pool_str1155[sizeof("saurashtra")]; + char unicode_prop_name_pool_str1159[sizeof("phoenician")]; + char unicode_prop_name_pool_str1171[sizeof("ingrantha")]; + char unicode_prop_name_pool_str1174[sizeof("sd")]; + char unicode_prop_name_pool_str1177[sizeof("gong")]; + char unicode_prop_name_pool_str1178[sizeof("incjkunifiedideographs")]; + char unicode_prop_name_pool_str1181[sizeof("marchen")]; + char unicode_prop_name_pool_str1183[sizeof("sidd")]; + char unicode_prop_name_pool_str1184[sizeof("odi")]; + char unicode_prop_name_pool_str1186[sizeof("mong")]; + char unicode_prop_name_pool_str1188[sizeof("sinhala")]; + char unicode_prop_name_pool_str1189[sizeof("graphemelink")]; + char unicode_prop_name_pool_str1193[sizeof("inearlydynasticcuneiform")]; + char unicode_prop_name_pool_str1194[sizeof("cher")]; + char unicode_prop_name_pool_str1197[sizeof("kaithi")]; + char unicode_prop_name_pool_str1199[sizeof("inmahajani")]; + char unicode_prop_name_pool_str1200[sizeof("inlatinextendedc")]; + char unicode_prop_name_pool_str1204[sizeof("multani")]; + char unicode_prop_name_pool_str1205[sizeof("inogham")]; + char unicode_prop_name_pool_str1207[sizeof("gunjalagondi")]; + char unicode_prop_name_pool_str1210[sizeof("cham")]; + char unicode_prop_name_pool_str1211[sizeof("cherokee")]; + char unicode_prop_name_pool_str1212[sizeof("chakma")]; + char unicode_prop_name_pool_str1214[sizeof("khojki")]; + char unicode_prop_name_pool_str1217[sizeof("inosage")]; + char unicode_prop_name_pool_str1221[sizeof("khar")]; + char unicode_prop_name_pool_str1223[sizeof("manichaean")]; + char unicode_prop_name_pool_str1224[sizeof("georgian")]; + char unicode_prop_name_pool_str1226[sizeof("ingeneralpunctuation")]; + char unicode_prop_name_pool_str1233[sizeof("inolchiki")]; + char unicode_prop_name_pool_str1235[sizeof("ingeorgian")]; + char unicode_prop_name_pool_str1245[sizeof("graphemebase")]; + char unicode_prop_name_pool_str1248[sizeof("adlm")]; + char unicode_prop_name_pool_str1254[sizeof("inethiopic")]; + char unicode_prop_name_pool_str1259[sizeof("inkhitansmallscript")]; + char unicode_prop_name_pool_str1269[sizeof("insinhala")]; + char unicode_prop_name_pool_str1276[sizeof("inmongolian")]; + char unicode_prop_name_pool_str1279[sizeof("punctuation")]; + char unicode_prop_name_pool_str1280[sizeof("emoji")]; + char unicode_prop_name_pool_str1287[sizeof("innagmundari")]; + char unicode_prop_name_pool_str1288[sizeof("vs")]; + char unicode_prop_name_pool_str1294[sizeof("casedletter")]; + char unicode_prop_name_pool_str1296[sizeof("oidc")]; + char unicode_prop_name_pool_str1305[sizeof("intamilsupplement")]; + char unicode_prop_name_pool_str1308[sizeof("ahom")]; + char unicode_prop_name_pool_str1310[sizeof("chorasmian")]; + char unicode_prop_name_pool_str1320[sizeof("khmr")]; + char unicode_prop_name_pool_str1321[sizeof("ingurmukhi")]; + char unicode_prop_name_pool_str1323[sizeof("sund")]; + char unicode_prop_name_pool_str1324[sizeof("patternsyntax")]; + char unicode_prop_name_pool_str1331[sizeof("chrs")]; + char unicode_prop_name_pool_str1332[sizeof("math")]; + char unicode_prop_name_pool_str1337[sizeof("inscriptionalpahlavi")]; + char unicode_prop_name_pool_str1339[sizeof("goth")]; + char unicode_prop_name_pool_str1348[sizeof("adlam")]; + char unicode_prop_name_pool_str1351[sizeof("oids")]; + char unicode_prop_name_pool_str1358[sizeof("incjkunifiedideographsextensiond")]; + char unicode_prop_name_pool_str1368[sizeof("khmer")]; + char unicode_prop_name_pool_str1373[sizeof("grantha")]; + char unicode_prop_name_pool_str1374[sizeof("ll")]; + char unicode_prop_name_pool_str1376[sizeof("kharoshthi")]; + char unicode_prop_name_pool_str1380[sizeof("intirhuta")]; + char unicode_prop_name_pool_str1383[sizeof("inhatran")]; + char unicode_prop_name_pool_str1387[sizeof("inmiscellaneoustechnical")]; + char unicode_prop_name_pool_str1392[sizeof("logicalorderexception")]; + char unicode_prop_name_pool_str1393[sizeof("radical")]; + char unicode_prop_name_pool_str1394[sizeof("zl")]; + char unicode_prop_name_pool_str1395[sizeof("insorasompeng")]; + char unicode_prop_name_pool_str1404[sizeof("n")]; + char unicode_prop_name_pool_str1411[sizeof("intangsa")]; + char unicode_prop_name_pool_str1422[sizeof("kthi")]; + char unicode_prop_name_pool_str1431[sizeof("mult")]; + char unicode_prop_name_pool_str1432[sizeof("nandinagari")]; + char unicode_prop_name_pool_str1433[sizeof("no")]; + char unicode_prop_name_pool_str1442[sizeof("nko")]; + char unicode_prop_name_pool_str1443[sizeof("nkoo")]; + char unicode_prop_name_pool_str1444[sizeof("intulutigalari")]; + char unicode_prop_name_pool_str1447[sizeof("p")]; + char unicode_prop_name_pool_str1463[sizeof("emojimodifier")]; + char unicode_prop_name_pool_str1464[sizeof("xpeo")]; + char unicode_prop_name_pool_str1465[sizeof("brah")]; + char unicode_prop_name_pool_str1466[sizeof("sunu")]; + char unicode_prop_name_pool_str1467[sizeof("inoldhungarian")]; + char unicode_prop_name_pool_str1483[sizeof("inphoenician")]; + char unicode_prop_name_pool_str1486[sizeof("incyrillicextendeda")]; + char unicode_prop_name_pool_str1489[sizeof("inherited")]; + char unicode_prop_name_pool_str1496[sizeof("intaixuanjingsymbols")]; + char unicode_prop_name_pool_str1498[sizeof("ingreekandcoptic")]; + char unicode_prop_name_pool_str1512[sizeof("inenclosedideographicsupplement")]; + char unicode_prop_name_pool_str1519[sizeof("glagolitic")]; + char unicode_prop_name_pool_str1521[sizeof("inmeroitichieroglyphs")]; + char unicode_prop_name_pool_str1522[sizeof("bidicontrol")]; + char unicode_prop_name_pool_str1525[sizeof("enclosingmark")]; + char unicode_prop_name_pool_str1530[sizeof("regionalindicator")]; + char unicode_prop_name_pool_str1533[sizeof("beng")]; + char unicode_prop_name_pool_str1535[sizeof("inanatolianhieroglyphs")]; + char unicode_prop_name_pool_str1536[sizeof("joincontrol")]; + char unicode_prop_name_pool_str1539[sizeof("inkangxiradicals")]; + char unicode_prop_name_pool_str1541[sizeof("dia")]; + char unicode_prop_name_pool_str1542[sizeof("cpmn")]; + char unicode_prop_name_pool_str1547[sizeof("di")]; + char unicode_prop_name_pool_str1550[sizeof("diak")]; + char unicode_prop_name_pool_str1554[sizeof("graphemeextend")]; + char unicode_prop_name_pool_str1555[sizeof("indogra")]; + char unicode_prop_name_pool_str1557[sizeof("inphaistosdisc")]; + char unicode_prop_name_pool_str1561[sizeof("lepc")]; + char unicode_prop_name_pool_str1572[sizeof("sinh")]; + char unicode_prop_name_pool_str1575[sizeof("shavian")]; + char unicode_prop_name_pool_str1576[sizeof("gukh")]; + char unicode_prop_name_pool_str1583[sizeof("linb")]; + char unicode_prop_name_pool_str1592[sizeof("ingreekextended")]; + char unicode_prop_name_pool_str1593[sizeof("incyprominoan")]; + char unicode_prop_name_pool_str1595[sizeof("innabataean")]; + char unicode_prop_name_pool_str1596[sizeof("zanb")]; + char unicode_prop_name_pool_str1598[sizeof("inhanunoo")]; + char unicode_prop_name_pool_str1599[sizeof("bhks")]; + char unicode_prop_name_pool_str1600[sizeof("inkanbun")]; + char unicode_prop_name_pool_str1601[sizeof("inbhaiksuki")]; + char unicode_prop_name_pool_str1604[sizeof("incyrillicextendedc")]; + char unicode_prop_name_pool_str1608[sizeof("emod")]; + char unicode_prop_name_pool_str1611[sizeof("bhaiksuki")]; + char unicode_prop_name_pool_str1612[sizeof("xsux")]; + char unicode_prop_name_pool_str1622[sizeof("format")]; + char unicode_prop_name_pool_str1625[sizeof("inelbasan")]; + char unicode_prop_name_pool_str1629[sizeof("emojimodifierbase")]; + char unicode_prop_name_pool_str1633[sizeof("linearb")]; + char unicode_prop_name_pool_str1638[sizeof("olck")]; + char unicode_prop_name_pool_str1643[sizeof("inimperialaramaic")]; + char unicode_prop_name_pool_str1650[sizeof("inlatinextendedd")]; + char unicode_prop_name_pool_str1651[sizeof("insundanesesupplement")]; + char unicode_prop_name_pool_str1652[sizeof("intangut")]; + char unicode_prop_name_pool_str1654[sizeof("cntrl")]; + char unicode_prop_name_pool_str1655[sizeof("olchiki")]; + char unicode_prop_name_pool_str1657[sizeof("inlatinextendedadditional")]; + char unicode_prop_name_pool_str1660[sizeof("olower")]; + char unicode_prop_name_pool_str1666[sizeof("sogdian")]; + char unicode_prop_name_pool_str1668[sizeof("sogo")]; + char unicode_prop_name_pool_str1672[sizeof("ingeometricshapes")]; + char unicode_prop_name_pool_str1677[sizeof("emojicomponent")]; + char unicode_prop_name_pool_str1678[sizeof("limb")]; + char unicode_prop_name_pool_str1682[sizeof("intodhri")]; + char unicode_prop_name_pool_str1684[sizeof("inkayahli")]; + char unicode_prop_name_pool_str1687[sizeof("insogdian")]; + char unicode_prop_name_pool_str1688[sizeof("indingbats")]; + char unicode_prop_name_pool_str1690[sizeof("inoriya")]; + char unicode_prop_name_pool_str1691[sizeof("inyezidi")]; + char unicode_prop_name_pool_str1692[sizeof("insinhalaarchaicnumbers")]; + char unicode_prop_name_pool_str1696[sizeof("copt")]; + char unicode_prop_name_pool_str1697[sizeof("vithkuqi")]; + char unicode_prop_name_pool_str1698[sizeof("incb")]; + char unicode_prop_name_pool_str1699[sizeof("wara")]; + char unicode_prop_name_pool_str1700[sizeof("coptic")]; + char unicode_prop_name_pool_str1701[sizeof("gurungkhema")]; + char unicode_prop_name_pool_str1702[sizeof("inarabic")]; + char unicode_prop_name_pool_str1709[sizeof("ideographic")]; + char unicode_prop_name_pool_str1719[sizeof("diacritic")]; + char unicode_prop_name_pool_str1727[sizeof("cprt")]; + char unicode_prop_name_pool_str1733[sizeof("arab")]; + char unicode_prop_name_pool_str1734[sizeof("inenclosedalphanumerics")]; + char unicode_prop_name_pool_str1735[sizeof("anatolianhieroglyphs")]; + char unicode_prop_name_pool_str1745[sizeof("innewa")]; + char unicode_prop_name_pool_str1748[sizeof("asciihexdigit")]; + char unicode_prop_name_pool_str1750[sizeof("nand")]; + char unicode_prop_name_pool_str1751[sizeof("intags")]; + char unicode_prop_name_pool_str1752[sizeof("ininscriptionalparthian")]; + char unicode_prop_name_pool_str1753[sizeof("innushu")]; + char unicode_prop_name_pool_str1754[sizeof("ininscriptionalpahlavi")]; + char unicode_prop_name_pool_str1763[sizeof("inkawi")]; + char unicode_prop_name_pool_str1774[sizeof("inkatakanaphoneticextensions")]; + char unicode_prop_name_pool_str1775[sizeof("inarabicpresentationformsa")]; + char unicode_prop_name_pool_str1776[sizeof("inbasiclatin")]; + char unicode_prop_name_pool_str1778[sizeof("bopo")]; + char unicode_prop_name_pool_str1781[sizeof("lyci")]; + char unicode_prop_name_pool_str1784[sizeof("lycian")]; + char unicode_prop_name_pool_str1790[sizeof("inoldpersian")]; + char unicode_prop_name_pool_str1792[sizeof("imperialaramaic")]; + char unicode_prop_name_pool_str1801[sizeof("braille")]; + char unicode_prop_name_pool_str1803[sizeof("ingurungkhema")]; + char unicode_prop_name_pool_str1808[sizeof("inwarangciti")]; + char unicode_prop_name_pool_str1811[sizeof("inenclosedalphanumericsupplement")]; + char unicode_prop_name_pool_str1813[sizeof("phli")]; + char unicode_prop_name_pool_str1814[sizeof("mymr")]; + char unicode_prop_name_pool_str1817[sizeof("myanmar")]; + char unicode_prop_name_pool_str1823[sizeof("han")]; + char unicode_prop_name_pool_str1827[sizeof("hani")]; + char unicode_prop_name_pool_str1829[sizeof("incyrillicextendedd")]; + char unicode_prop_name_pool_str1832[sizeof("inbatak")]; + char unicode_prop_name_pool_str1833[sizeof("kawi")]; + char unicode_prop_name_pool_str1836[sizeof("hano")]; + char unicode_prop_name_pool_str1841[sizeof("glag")]; + char unicode_prop_name_pool_str1842[sizeof("lower")]; + char unicode_prop_name_pool_str1847[sizeof("inlisu")]; + char unicode_prop_name_pool_str1850[sizeof("ingeometricshapesextended")]; + char unicode_prop_name_pool_str1859[sizeof("hanunoo")]; + char unicode_prop_name_pool_str1863[sizeof("inkhojki")]; + char unicode_prop_name_pool_str1866[sizeof("intibetan")]; + char unicode_prop_name_pool_str1869[sizeof("grbase")]; + char unicode_prop_name_pool_str1870[sizeof("hira")]; + char unicode_prop_name_pool_str1874[sizeof("insoyombo")]; + char unicode_prop_name_pool_str1880[sizeof("decimalnumber")]; + char unicode_prop_name_pool_str1881[sizeof("inwancho")]; + char unicode_prop_name_pool_str1889[sizeof("inlisusupplement")]; + char unicode_prop_name_pool_str1895[sizeof("sorasompeng")]; + char unicode_prop_name_pool_str1896[sizeof("incoptic")]; + char unicode_prop_name_pool_str1897[sizeof("bopomofo")]; + char unicode_prop_name_pool_str1899[sizeof("inoldpermic")]; + char unicode_prop_name_pool_str1907[sizeof("sharada")]; + char unicode_prop_name_pool_str1909[sizeof("inethiopicsupplement")]; + char unicode_prop_name_pool_str1913[sizeof("incjksymbolsandpunctuation")]; + char unicode_prop_name_pool_str1915[sizeof("spacingmark")]; + char unicode_prop_name_pool_str1917[sizeof("intelugu")]; + char unicode_prop_name_pool_str1922[sizeof("inelymaic")]; + char unicode_prop_name_pool_str1930[sizeof("medf")]; + char unicode_prop_name_pool_str1933[sizeof("insyriacsupplement")]; + char unicode_prop_name_pool_str1934[sizeof("inblockelements")]; + char unicode_prop_name_pool_str1936[sizeof("incjkcompatibility")]; + char unicode_prop_name_pool_str1941[sizeof("medefaidrin")]; + char unicode_prop_name_pool_str1946[sizeof("inkanaextendedb")]; + char unicode_prop_name_pool_str1948[sizeof("oldpersian")]; + char unicode_prop_name_pool_str1950[sizeof("patsyn")]; + char unicode_prop_name_pool_str1951[sizeof("shrd")]; + char unicode_prop_name_pool_str1953[sizeof("lowercase")]; + char unicode_prop_name_pool_str1954[sizeof("orkh")]; + char unicode_prop_name_pool_str1962[sizeof("space")]; + char unicode_prop_name_pool_str1964[sizeof("innumberforms")]; + char unicode_prop_name_pool_str1965[sizeof("assigned")]; + char unicode_prop_name_pool_str1972[sizeof("inarabicextendeda")]; + char unicode_prop_name_pool_str1974[sizeof("inmyanmarextendedb")]; + char unicode_prop_name_pool_str1977[sizeof("inshorthandformatcontrols")]; + char unicode_prop_name_pool_str1980[sizeof("cwcm")]; + char unicode_prop_name_pool_str1986[sizeof("bugi")]; + char unicode_prop_name_pool_str1992[sizeof("variationselector")]; + char unicode_prop_name_pool_str1994[sizeof("inmayannumerals")]; + char unicode_prop_name_pool_str1995[sizeof("sogd")]; + char unicode_prop_name_pool_str1996[sizeof("dsrt")]; + char unicode_prop_name_pool_str2000[sizeof("inbyzantinemusicalsymbols")]; + char unicode_prop_name_pool_str2004[sizeof("ingeorgiansupplement")]; + char unicode_prop_name_pool_str2006[sizeof("lydi")]; + char unicode_prop_name_pool_str2009[sizeof("lydian")]; + char unicode_prop_name_pool_str2013[sizeof("siddham")]; + char unicode_prop_name_pool_str2018[sizeof("inbraillepatterns")]; + char unicode_prop_name_pool_str2024[sizeof("separator")]; + char unicode_prop_name_pool_str2027[sizeof("innewtailue")]; + char unicode_prop_name_pool_str2049[sizeof("sentenceterminal")]; + char unicode_prop_name_pool_str2055[sizeof("inornamentaldingbats")]; + char unicode_prop_name_pool_str2058[sizeof("word")]; + char unicode_prop_name_pool_str2059[sizeof("buginese")]; + char unicode_prop_name_pool_str2061[sizeof("oldpermic")]; + char unicode_prop_name_pool_str2065[sizeof("inyiradicals")]; + char unicode_prop_name_pool_str2066[sizeof("phnx")]; + char unicode_prop_name_pool_str2067[sizeof("hatran")]; + char unicode_prop_name_pool_str2071[sizeof("deseret")]; + char unicode_prop_name_pool_str2073[sizeof("ogam")]; + char unicode_prop_name_pool_str2077[sizeof("insuttonsignwriting")]; + char unicode_prop_name_pool_str2085[sizeof("inunifiedcanadianaboriginalsyllabicsextendeda")]; + char unicode_prop_name_pool_str2086[sizeof("incjkunifiedideographsextensionh")]; + char unicode_prop_name_pool_str2087[sizeof("nd")]; + char unicode_prop_name_pool_str2090[sizeof("inarabicextendedc")]; + char unicode_prop_name_pool_str2092[sizeof("idsb")]; + char unicode_prop_name_pool_str2095[sizeof("caseignorable")]; + char unicode_prop_name_pool_str2101[sizeof("sarb")]; + char unicode_prop_name_pool_str2104[sizeof("hatr")]; + char unicode_prop_name_pool_str2110[sizeof("uideo")]; + char unicode_prop_name_pool_str2120[sizeof("number")]; + char unicode_prop_name_pool_str2129[sizeof("zanabazarsquare")]; + char unicode_prop_name_pool_str2136[sizeof("inmiscellaneousmathematicalsymbolsb")]; + char unicode_prop_name_pool_str2161[sizeof("incjkunifiedideographsextensiong")]; + char unicode_prop_name_pool_str2163[sizeof("innyiakengpuachuehmong")]; + char unicode_prop_name_pool_str2169[sizeof("ahex")]; + char unicode_prop_name_pool_str2170[sizeof("soyo")]; + char unicode_prop_name_pool_str2172[sizeof("cuneiform")]; + char unicode_prop_name_pool_str2173[sizeof("insymbolsforlegacycomputingsupplement")]; + char unicode_prop_name_pool_str2180[sizeof("incopticepactnumbers")]; + char unicode_prop_name_pool_str2183[sizeof("osge")]; + char unicode_prop_name_pool_str2195[sizeof("closepunctuation")]; + char unicode_prop_name_pool_str2201[sizeof("graph")]; + char unicode_prop_name_pool_str2206[sizeof("alpha")]; + char unicode_prop_name_pool_str2211[sizeof("lowercaseletter")]; + char unicode_prop_name_pool_str2215[sizeof("modifierletter")]; + char unicode_prop_name_pool_str2218[sizeof("takri")]; + char unicode_prop_name_pool_str2219[sizeof("olditalic")]; + char unicode_prop_name_pool_str2221[sizeof("inlepcha")]; + char unicode_prop_name_pool_str2222[sizeof("invai")]; + char unicode_prop_name_pool_str2226[sizeof("surrogate")]; + char unicode_prop_name_pool_str2234[sizeof("meroitichieroglyphs")]; + char unicode_prop_name_pool_str2235[sizeof("other")]; + char unicode_prop_name_pool_str2241[sizeof("inpalmyrene")]; + char unicode_prop_name_pool_str2244[sizeof("cwt")]; + char unicode_prop_name_pool_str2245[sizeof("othernumber")]; + char unicode_prop_name_pool_str2247[sizeof("buhd")]; + char unicode_prop_name_pool_str2248[sizeof("otheridcontinue")]; + char unicode_prop_name_pool_str2249[sizeof("inunifiedcanadianaboriginalsyllabics")]; + char unicode_prop_name_pool_str2250[sizeof("takr")]; + char unicode_prop_name_pool_str2260[sizeof("unassigned")]; + char unicode_prop_name_pool_str2263[sizeof("vith")]; + char unicode_prop_name_pool_str2267[sizeof("inbamum")]; + char unicode_prop_name_pool_str2268[sizeof("phag")]; + char unicode_prop_name_pool_str2275[sizeof("taile")]; + char unicode_prop_name_pool_str2277[sizeof("inhanguljamo")]; + char unicode_prop_name_pool_str2280[sizeof("caucasianalbanian")]; + char unicode_prop_name_pool_str2281[sizeof("innoblock")]; + char unicode_prop_name_pool_str2283[sizeof("idstrinaryoperator")]; + char unicode_prop_name_pool_str2303[sizeof("syrc")]; + char unicode_prop_name_pool_str2306[sizeof("inhanguljamoextendeda")]; + char unicode_prop_name_pool_str2313[sizeof("inbalinese")]; + char unicode_prop_name_pool_str2352[sizeof("otheralphabetic")]; + char unicode_prop_name_pool_str2356[sizeof("gujr")]; + char unicode_prop_name_pool_str2361[sizeof("oldhungarian")]; + char unicode_prop_name_pool_str2367[sizeof("gujarati")]; + char unicode_prop_name_pool_str2372[sizeof("tnsa")]; + char unicode_prop_name_pool_str2374[sizeof("tangsa")]; + char unicode_prop_name_pool_str2377[sizeof("term")]; + char unicode_prop_name_pool_str2380[sizeof("inmongoliansupplement")]; + char unicode_prop_name_pool_str2383[sizeof("incombiningdiacriticalmarks")]; + char unicode_prop_name_pool_str2389[sizeof("inshavian")]; + char unicode_prop_name_pool_str2393[sizeof("incombiningdiacriticalmarksforsymbols")]; + char unicode_prop_name_pool_str2396[sizeof("spaceseparator")]; + char unicode_prop_name_pool_str2419[sizeof("cyrl")]; + char unicode_prop_name_pool_str2423[sizeof("syriac")]; + char unicode_prop_name_pool_str2427[sizeof("inunifiedcanadianaboriginalsyllabicsextended")]; + char unicode_prop_name_pool_str2428[sizeof("inethiopicextendeda")]; + char unicode_prop_name_pool_str2431[sizeof("inmathematicalalphanumericsymbols")]; + char unicode_prop_name_pool_str2451[sizeof("mlym")]; + char unicode_prop_name_pool_str2452[sizeof("induployan")]; + char unicode_prop_name_pool_str2456[sizeof("malayalam")]; + char unicode_prop_name_pool_str2461[sizeof("incombiningdiacriticalmarkssupplement")]; + char unicode_prop_name_pool_str2464[sizeof("insymbolsandpictographsextendeda")]; + char unicode_prop_name_pool_str2468[sizeof("toto")]; + char unicode_prop_name_pool_str2469[sizeof("ethi")]; + char unicode_prop_name_pool_str2471[sizeof("palmyrene")]; + char unicode_prop_name_pool_str2478[sizeof("rohg")]; + char unicode_prop_name_pool_str2489[sizeof("taiviet")]; + char unicode_prop_name_pool_str2507[sizeof("ougr")]; + char unicode_prop_name_pool_str2511[sizeof("oldturkic")]; + char unicode_prop_name_pool_str2512[sizeof("inpaucinhau")]; + char unicode_prop_name_pool_str2516[sizeof("lepcha")]; + char unicode_prop_name_pool_str2523[sizeof("orya")]; + char unicode_prop_name_pool_str2532[sizeof("incjkradicalssupplement")]; + char unicode_prop_name_pool_str2546[sizeof("incjkunifiedideographsextensionf")]; + char unicode_prop_name_pool_str2552[sizeof("inglagolitic")]; + char unicode_prop_name_pool_str2554[sizeof("intagalog")]; + char unicode_prop_name_pool_str2561[sizeof("incombiningdiacriticalmarksextended")]; + char unicode_prop_name_pool_str2566[sizeof("inphagspa")]; + char unicode_prop_name_pool_str2571[sizeof("ext")]; + char unicode_prop_name_pool_str2572[sizeof("indevanagari")]; + char unicode_prop_name_pool_str2579[sizeof("incjkunifiedideographsextensionb")]; + char unicode_prop_name_pool_str2585[sizeof("oalpha")]; + char unicode_prop_name_pool_str2591[sizeof("buhid")]; + char unicode_prop_name_pool_str2596[sizeof("ingothic")]; + char unicode_prop_name_pool_str2597[sizeof("avestan")]; + char unicode_prop_name_pool_str2601[sizeof("todr")]; + char unicode_prop_name_pool_str2610[sizeof("indevanagariextendeda")]; + char unicode_prop_name_pool_str2613[sizeof("inottomansiyaqnumbers")]; + char unicode_prop_name_pool_str2617[sizeof("todhri")]; + char unicode_prop_name_pool_str2638[sizeof("inlatin1supplement")]; + char unicode_prop_name_pool_str2648[sizeof("nagm")]; + char unicode_prop_name_pool_str2662[sizeof("inbrahmi")]; + char unicode_prop_name_pool_str2667[sizeof("terminalpunctuation")]; + char unicode_prop_name_pool_str2684[sizeof("otheridstart")]; + char unicode_prop_name_pool_str2687[sizeof("nchar")]; + char unicode_prop_name_pool_str2695[sizeof("inverticalforms")]; + char unicode_prop_name_pool_str2697[sizeof("phagspa")]; + char unicode_prop_name_pool_str2698[sizeof("dogra")]; + char unicode_prop_name_pool_str2700[sizeof("extpict")]; + char unicode_prop_name_pool_str2701[sizeof("intaiviet")]; + char unicode_prop_name_pool_str2719[sizeof("otheruppercase")]; + char unicode_prop_name_pool_str2727[sizeof("avst")]; + char unicode_prop_name_pool_str2729[sizeof("extender")]; + char unicode_prop_name_pool_str2734[sizeof("cwu")]; + char unicode_prop_name_pool_str2737[sizeof("inphoneticextensions")]; + char unicode_prop_name_pool_str2741[sizeof("invariationselectors")]; + char unicode_prop_name_pool_str2742[sizeof("inbengali")]; + char unicode_prop_name_pool_str2744[sizeof("dogr")]; + char unicode_prop_name_pool_str2745[sizeof("softdotted")]; + char unicode_prop_name_pool_str2746[sizeof("incurrencysymbols")]; + char unicode_prop_name_pool_str2751[sizeof("invedicextensions")]; + char unicode_prop_name_pool_str2753[sizeof("sunuwar")]; + char unicode_prop_name_pool_str2755[sizeof("osmanya")]; + char unicode_prop_name_pool_str2761[sizeof("wancho")]; + char unicode_prop_name_pool_str2769[sizeof("nl")]; + char unicode_prop_name_pool_str2770[sizeof("inethiopicextended")]; + char unicode_prop_name_pool_str2772[sizeof("mathsymbol")]; + char unicode_prop_name_pool_str2775[sizeof("inbuginese")]; + char unicode_prop_name_pool_str2779[sizeof("dash")]; + char unicode_prop_name_pool_str2780[sizeof("inlowsurrogates")]; + char unicode_prop_name_pool_str2787[sizeof("ebase")]; + char unicode_prop_name_pool_str2815[sizeof("inphoneticextensionssupplement")]; + char unicode_prop_name_pool_str2819[sizeof("invariationselectorssupplement")]; + char unicode_prop_name_pool_str2824[sizeof("zp")]; + char unicode_prop_name_pool_str2826[sizeof("posixpunct")]; + char unicode_prop_name_pool_str2835[sizeof("noncharactercodepoint")]; + char unicode_prop_name_pool_str2838[sizeof("sylo")]; + char unicode_prop_name_pool_str2840[sizeof("nonspacingmark")]; + char unicode_prop_name_pool_str2845[sizeof("oupper")]; + char unicode_prop_name_pool_str2852[sizeof("inlimbu")]; + char unicode_prop_name_pool_str2857[sizeof("wcho")]; + char unicode_prop_name_pool_str2860[sizeof("ingaray")]; + char unicode_prop_name_pool_str2862[sizeof("warangciti")]; + char unicode_prop_name_pool_str2865[sizeof("ingeorgianextended")]; + char unicode_prop_name_pool_str2870[sizeof("changeswhencasemapped")]; + char unicode_prop_name_pool_str2871[sizeof("currencysymbol")]; + char unicode_prop_name_pool_str2872[sizeof("intifinagh")]; + char unicode_prop_name_pool_str2879[sizeof("java")]; + char unicode_prop_name_pool_str2896[sizeof("titlecaseletter")]; + char unicode_prop_name_pool_str2898[sizeof("olonal")]; + char unicode_prop_name_pool_str2903[sizeof("mahj")]; + char unicode_prop_name_pool_str2904[sizeof("inmeroiticcursive")]; + char unicode_prop_name_pool_str2914[sizeof("mahajani")]; + char unicode_prop_name_pool_str2915[sizeof("tale")]; + char unicode_prop_name_pool_str2917[sizeof("otherlowercase")]; + char unicode_prop_name_pool_str2920[sizeof("ugar")]; + char unicode_prop_name_pool_str2925[sizeof("otherletter")]; + char unicode_prop_name_pool_str2930[sizeof("changeswhentitlecased")]; + char unicode_prop_name_pool_str2943[sizeof("epres")]; + char unicode_prop_name_pool_str2945[sizeof("emojipresentation")]; + char unicode_prop_name_pool_str2946[sizeof("inaegeannumbers")]; + char unicode_prop_name_pool_str2949[sizeof("inindicsiyaqnumbers")]; + char unicode_prop_name_pool_str2952[sizeof("indevanagariextended")]; + char unicode_prop_name_pool_str2959[sizeof("javanese")]; + char unicode_prop_name_pool_str2966[sizeof("hang")]; + char unicode_prop_name_pool_str2970[sizeof("inletterlikesymbols")]; + char unicode_prop_name_pool_str2973[sizeof("intagbanwa")]; + char unicode_prop_name_pool_str2975[sizeof("inalphabeticpresentationforms")]; + char unicode_prop_name_pool_str2978[sizeof("taml")]; + char unicode_prop_name_pool_str2979[sizeof("tirhuta")]; + char unicode_prop_name_pool_str2981[sizeof("whitespace")]; + char unicode_prop_name_pool_str2987[sizeof("ingujarati")]; + char unicode_prop_name_pool_str2992[sizeof("paragraphseparator")]; + char unicode_prop_name_pool_str2997[sizeof("intangutcomponents")]; + char unicode_prop_name_pool_str2999[sizeof("ingunjalagondi")]; + char unicode_prop_name_pool_str3002[sizeof("khoj")]; + char unicode_prop_name_pool_str3003[sizeof("inbassavah")]; + char unicode_prop_name_pool_str3004[sizeof("inbuhid")]; + char unicode_prop_name_pool_str3011[sizeof("khitansmallscript")]; + char unicode_prop_name_pool_str3014[sizeof("narb")]; + char unicode_prop_name_pool_str3017[sizeof("inbopomofo")]; + char unicode_prop_name_pool_str3020[sizeof("hiragana")]; + char unicode_prop_name_pool_str3025[sizeof("inrejang")]; + char unicode_prop_name_pool_str3027[sizeof("oldsogdian")]; + char unicode_prop_name_pool_str3035[sizeof("nushu")]; + char unicode_prop_name_pool_str3050[sizeof("incyrillicextendedb")]; + char unicode_prop_name_pool_str3051[sizeof("othersymbol")]; + char unicode_prop_name_pool_str3052[sizeof("nagmundari")]; + char unicode_prop_name_pool_str3053[sizeof("extendedpictographic")]; + char unicode_prop_name_pool_str3054[sizeof("otherdefaultignorablecodepoint")]; + char unicode_prop_name_pool_str3065[sizeof("hmng")]; + char unicode_prop_name_pool_str3068[sizeof("insymbolsforlegacycomputing")]; + char unicode_prop_name_pool_str3070[sizeof("omath")]; + char unicode_prop_name_pool_str3084[sizeof("sylotinagri")]; + char unicode_prop_name_pool_str3086[sizeof("inlinearbsyllabary")]; + char unicode_prop_name_pool_str3097[sizeof("intangutsupplement")]; + char unicode_prop_name_pool_str3098[sizeof("inarabicmathematicalalphabeticsymbols")]; + char unicode_prop_name_pool_str3100[sizeof("cf")]; + char unicode_prop_name_pool_str3105[sizeof("inenclosedcjklettersandmonths")]; + char unicode_prop_name_pool_str3107[sizeof("inbamumsupplement")]; + char unicode_prop_name_pool_str3111[sizeof("pf")]; + char unicode_prop_name_pool_str3130[sizeof("cwl")]; + char unicode_prop_name_pool_str3133[sizeof("nshu")]; + char unicode_prop_name_pool_str3136[sizeof("inmathematicaloperators")]; + char unicode_prop_name_pool_str3143[sizeof("inhangulsyllables")]; + char unicode_prop_name_pool_str3156[sizeof("incombininghalfmarks")]; + char unicode_prop_name_pool_str3162[sizeof("newa")]; + char unicode_prop_name_pool_str3169[sizeof("tangut")]; + char unicode_prop_name_pool_str3171[sizeof("digit")]; + char unicode_prop_name_pool_str3186[sizeof("changeswhenuppercased")]; + char unicode_prop_name_pool_str3189[sizeof("finalpunctuation")]; + char unicode_prop_name_pool_str3196[sizeof("inpsalterpahlavi")]; + char unicode_prop_name_pool_str3205[sizeof("phlp")]; + char unicode_prop_name_pool_str3207[sizeof("rjng")]; + char unicode_prop_name_pool_str3208[sizeof("nbat")]; + char unicode_prop_name_pool_str3210[sizeof("newtailue")]; + char unicode_prop_name_pool_str3212[sizeof("newline")]; + char unicode_prop_name_pool_str3213[sizeof("cyprominoan")]; + char unicode_prop_name_pool_str3217[sizeof("nabataean")]; + char unicode_prop_name_pool_str3223[sizeof("insuperscriptsandsubscripts")]; + char unicode_prop_name_pool_str3225[sizeof("cyrillic")]; + char unicode_prop_name_pool_str3243[sizeof("ugaritic")]; + char unicode_prop_name_pool_str3244[sizeof("ogham")]; + char unicode_prop_name_pool_str3252[sizeof("insmallformvariants")]; + char unicode_prop_name_pool_str3256[sizeof("inlatinextendedg")]; + char unicode_prop_name_pool_str3266[sizeof("thaa")]; + char unicode_prop_name_pool_str3270[sizeof("inarabicsupplement")]; + char unicode_prop_name_pool_str3272[sizeof("thaana")]; + char unicode_prop_name_pool_str3273[sizeof("thai")]; + char unicode_prop_name_pool_str3284[sizeof("shaw")]; + char unicode_prop_name_pool_str3292[sizeof("insupplementalarrowsa")]; + char unicode_prop_name_pool_str3293[sizeof("inplayingcards")]; + char unicode_prop_name_pool_str3318[sizeof("hmnp")]; + char unicode_prop_name_pool_str3320[sizeof("tirh")]; + char unicode_prop_name_pool_str3335[sizeof("idcompatmathcontinue")]; + char unicode_prop_name_pool_str3339[sizeof("inarabicpresentationformsb")]; + char unicode_prop_name_pool_str3343[sizeof("idcompatmathstart")]; + char unicode_prop_name_pool_str3345[sizeof("tang")]; + char unicode_prop_name_pool_str3349[sizeof("tagbanwa")]; + char unicode_prop_name_pool_str3354[sizeof("cypriot")]; + char unicode_prop_name_pool_str3355[sizeof("garay")]; + char unicode_prop_name_pool_str3362[sizeof("othermath")]; + char unicode_prop_name_pool_str3363[sizeof("sgnw")]; + char unicode_prop_name_pool_str3365[sizeof("talu")]; + char unicode_prop_name_pool_str3375[sizeof("taitham")]; + char unicode_prop_name_pool_str3384[sizeof("changeswhenlowercased")]; + char unicode_prop_name_pool_str3395[sizeof("khudawadi")]; + char unicode_prop_name_pool_str3398[sizeof("elba")]; + char unicode_prop_name_pool_str3401[sizeof("telu")]; + char unicode_prop_name_pool_str3410[sizeof("insupplementalarrowsc")]; + char unicode_prop_name_pool_str3412[sizeof("cwcf")]; + char unicode_prop_name_pool_str3416[sizeof("wspace")]; + char unicode_prop_name_pool_str3421[sizeof("any")]; + char unicode_prop_name_pool_str3432[sizeof("insupplementalmathematicaloperators")]; + char unicode_prop_name_pool_str3445[sizeof("ogrext")]; + char unicode_prop_name_pool_str3452[sizeof("hung")]; + char unicode_prop_name_pool_str3463[sizeof("hebr")]; + char unicode_prop_name_pool_str3473[sizeof("deprecated")]; + char unicode_prop_name_pool_str3485[sizeof("unknown")]; + char unicode_prop_name_pool_str3497[sizeof("oldnortharabian")]; + char unicode_prop_name_pool_str3510[sizeof("modifiercombiningmark")]; + char unicode_prop_name_pool_str3516[sizeof("kayahli")]; + char unicode_prop_name_pool_str3532[sizeof("invithkuqi")]; + char unicode_prop_name_pool_str3536[sizeof("inarabicextendedb")]; + char unicode_prop_name_pool_str3566[sizeof("indivesakuru")]; + char unicode_prop_name_pool_str3578[sizeof("elbasan")]; + char unicode_prop_name_pool_str3581[sizeof("elym")]; + char unicode_prop_name_pool_str3606[sizeof("otherpunctuation")]; + char unicode_prop_name_pool_str3610[sizeof("elymaic")]; + char unicode_prop_name_pool_str3623[sizeof("symbol")]; + char unicode_prop_name_pool_str3635[sizeof("tulutigalari")]; + char unicode_prop_name_pool_str3641[sizeof("inalchemicalsymbols")]; + char unicode_prop_name_pool_str3645[sizeof("inpahawhhmong")]; + char unicode_prop_name_pool_str3661[sizeof("inprivateusearea")]; + char unicode_prop_name_pool_str3663[sizeof("tamil")]; + char unicode_prop_name_pool_str3676[sizeof("hangul")]; + char unicode_prop_name_pool_str3703[sizeof("inyisyllables")]; + char unicode_prop_name_pool_str3731[sizeof("hex")]; + char unicode_prop_name_pool_str3739[sizeof("insupplementalpunctuation")]; + char unicode_prop_name_pool_str3762[sizeof("deva")]; + char unicode_prop_name_pool_str3774[sizeof("inyijinghexagramsymbols")]; + char unicode_prop_name_pool_str3776[sizeof("inhighprivateusesurrogates")]; + char unicode_prop_name_pool_str3779[sizeof("devanagari")]; + char unicode_prop_name_pool_str3786[sizeof("bassavah")]; + char unicode_prop_name_pool_str3836[sizeof("soyombo")]; + char unicode_prop_name_pool_str3849[sizeof("dashpunctuation")]; + char unicode_prop_name_pool_str3865[sizeof("inmahjongtiles")]; + char unicode_prop_name_pool_str3870[sizeof("inhanguljamoextendedb")]; + char unicode_prop_name_pool_str3893[sizeof("alphabetic")]; + char unicode_prop_name_pool_str3903[sizeof("aghb")]; + char unicode_prop_name_pool_str3926[sizeof("incypriotsyllabary")]; + char unicode_prop_name_pool_str3936[sizeof("oldsoutharabian")]; + char unicode_prop_name_pool_str3985[sizeof("inhalfwidthandfullwidthforms")]; + char unicode_prop_name_pool_str3992[sizeof("inethiopicextendedb")]; + char unicode_prop_name_pool_str3999[sizeof("ethiopic")]; + char unicode_prop_name_pool_str4007[sizeof("tibt")]; + char unicode_prop_name_pool_str4014[sizeof("tibetan")]; + char unicode_prop_name_pool_str4026[sizeof("inlatinextendedf")]; + char unicode_prop_name_pool_str4031[sizeof("othergraphemeextend")]; + char unicode_prop_name_pool_str4061[sizeof("injavanese")]; + char unicode_prop_name_pool_str4068[sizeof("tutg")]; + char unicode_prop_name_pool_str4083[sizeof("ecomp")]; + char unicode_prop_name_pool_str4084[sizeof("inglagoliticsupplement")]; + char unicode_prop_name_pool_str4092[sizeof("inlatinextendedb")]; + char unicode_prop_name_pool_str4104[sizeof("dupl")]; + char unicode_prop_name_pool_str4175[sizeof("modifiersymbol")]; + char unicode_prop_name_pool_str4190[sizeof("hexdigit")]; + char unicode_prop_name_pool_str4278[sizeof("inegyptianhieroglyphsextendeda")]; + char unicode_prop_name_pool_str4302[sizeof("changeswhencasefolded")]; + char unicode_prop_name_pool_str4368[sizeof("dep")]; + char unicode_prop_name_pool_str4391[sizeof("rejang")]; + char unicode_prop_name_pool_str4398[sizeof("divesakuru")]; + char unicode_prop_name_pool_str4404[sizeof("openpunctuation")]; + char unicode_prop_name_pool_str4425[sizeof("inhebrew")]; + char unicode_prop_name_pool_str4442[sizeof("inegyptianhieroglyphs")]; + char unicode_prop_name_pool_str4455[sizeof("inegyptianhieroglyphformatcontrols")]; + char unicode_prop_name_pool_str4514[sizeof("hanifirohingya")]; + char unicode_prop_name_pool_str4566[sizeof("signwriting")]; + char unicode_prop_name_pool_str4617[sizeof("defaultignorablecodepoint")]; + char unicode_prop_name_pool_str4620[sizeof("upper")]; + char unicode_prop_name_pool_str4627[sizeof("tavt")]; + char unicode_prop_name_pool_str4635[sizeof("inbopomofoextended")]; + char unicode_prop_name_pool_str4653[sizeof("insupplementaryprivateuseareaa")]; + char unicode_prop_name_pool_str4701[sizeof("olduyghur")]; + char unicode_prop_name_pool_str4709[sizeof("hluw")]; + char unicode_prop_name_pool_str4731[sizeof("uppercase")]; + char unicode_prop_name_pool_str4808[sizeof("inhighsurrogates")]; + char unicode_prop_name_pool_str4812[sizeof("tifinagh")]; + char unicode_prop_name_pool_str4856[sizeof("insupplementalarrowsb")]; + char unicode_prop_name_pool_str4876[sizeof("tfng")]; + char unicode_prop_name_pool_str4905[sizeof("tagb")]; + char unicode_prop_name_pool_str4909[sizeof("hyphen")]; + char unicode_prop_name_pool_str4972[sizeof("zyyy")]; + char unicode_prop_name_pool_str4989[sizeof("uppercaseletter")]; + char unicode_prop_name_pool_str5035[sizeof("telugu")]; + char unicode_prop_name_pool_str5069[sizeof("pahawhhmong")]; + char unicode_prop_name_pool_str5080[sizeof("insupplementalsymbolsandpictographs")]; + char unicode_prop_name_pool_str5081[sizeof("unifiedideograph")]; + char unicode_prop_name_pool_str5092[sizeof("duployan")]; + char unicode_prop_name_pool_str5163[sizeof("inboxdrawing")]; + char unicode_prop_name_pool_str5171[sizeof("tglg")]; + char unicode_prop_name_pool_str5190[sizeof("tagalog")]; + char unicode_prop_name_pool_str5237[sizeof("inhangulcompatibilityjamo")]; + char unicode_prop_name_pool_str5343[sizeof("egyp")]; + char unicode_prop_name_pool_str5453[sizeof("nyiakengpuachuehmong")]; + char unicode_prop_name_pool_str6075[sizeof("egyptianhieroglyphs")]; + char unicode_prop_name_pool_str6217[sizeof("insupplementaryprivateuseareab")]; + char unicode_prop_name_pool_str6900[sizeof("hebrew")]; + }; +static const struct unicode_prop_name_pool_t unicode_prop_name_pool_contents = + { + "lana", + "yi", + "lina", + "yiii", + "mn", + "maka", + "mani", + "z", + "inkannada", + "lo", + "lao", + "laoo", + "miao", + "cn", + "ci", + "innko", + "zzzz", + "yezi", + "gara", + "gran", + "pi", + "lineara", + "co", + "mark", + "po", + "inkiratrai", + "me", + "inkharoshthi", + "cari", + "loe", + "carian", + "mro", + "mroo", + "grek", + "kana", + "geor", + "greek", + "m", + "mero", + "pe", + "mendekikakui", + "gonm", + "inosmanya", + "inmanichaean", + "inchakma", + "cakm", + "inmro", + "inmiao", + "meeteimayek", + "mandaic", + "c", + "krai", + "inarmenian", + "inmyanmar", + "inmakasar", + "common", + "qaai", + "marc", + "inrunic", + "incarian", + "lm", + "inkhmer", + "inchorasmian", + "inideographicsymbolsandpunctuation", + "cans", + "merc", + "combiningmark", + "inahom", + "perm", + "inavestan", + "connectorpunctuation", + "insharada", + "lc", + "prependedconcatenationmark", + "incuneiformnumbersandpunctuation", + "inipaextensions", + "makasar", + "latn", + "mc", + "inarrows", + "ri", + "latin", + "incherokee", + "inthaana", + "masaramgondi", + "inkatakana", + "armn", + "inthai", + "cc", + "armi", + "incuneiform", + "inkaithi", + "pc", + "armenian", + "inmarchen", + "qmark", + "qaac", + "initialpunctuation", + "inzanabazarsquare", + "insamaritan", + "lineseparator", + "mtei", + "inmasaramgondi", + "inscriptionalparthian", + "incyrillic", + "intakri", + "incham", + "mcm", + "prti", + "katakana", + "inkhmersymbols", + "insyriac", + "pcm", + "mand", + "zs", + "inkanaextendeda", + "cs", + "modi", + "privateuse", + "ps", + "brai", + "mend", + "ideo", + "yezidi", + "inmyanmarextendeda", + "arabic", + "letter", + "xidcontinue", + "ascii", + "innandinagari", + "inoldnortharabian", + "inmeeteimayek", + "knda", + "kannada", + "intransportandmapsymbols", + "kiratrai", + "inruminumeralsymbols", + "inideographicdescriptioncharacters", + "incjkcompatibilityforms", + "letternumber", + "incjkcompatibilityideographs", + "inmodi", + "xidc", + "inmendekikakui", + "lt", + "inemoticons", + "sk", + "inolditalic", + "brahmi", + "gothic", + "inmedefaidrin", + "psalterpahlavi", + "so", + "inspecials", + "kits", + "inmyanmarextendedc", + "intoto", + "xids", + "inchesssymbols", + "incjkcompatibilityideographssupplement", + "inopticalcharacterrecognition", + "sora", + "inkanasupplement", + "inoldsogdian", + "meroiticcursive", + "inmiscellaneousmathematicalsymbolsa", + "grext", + "patternwhitespace", + "insundanese", + "inmandaic", + "print", + "idc", + "batk", + "inancientsymbols", + "batak", + "intaitham", + "inoldsoutharabian", + "incommonindicnumberforms", + "inznamennymusicalnotation", + "samr", + "patws", + "bamum", + "idsbinaryoperator", + "samaritan", + "pauc", + "s", + "incjkstrokes", + "inugaritic", + "lisu", + "indominotiles", + "idsunaryoperator", + "sm", + "l", + "inancientgreekmusicalnotation", + "bass", + "ids", + "inmodifiertoneletters", + "incontrolpictures", + "sc", + "insaurashtra", + "insunuwar", + "inlao", + "pd", + "inolonal", + "inoldturkic", + "inlineara", + "mongolian", + "inmusicalsymbols", + "idcontinue", + "incaucasianalbanian", + "grlink", + "idst", + "runr", + "kali", + "inadlam", + "inmiscellaneoussymbols", + "control", + "indeseret", + "inmiscellaneoussymbolsandarrows", + "idstart", + "inmiscellaneoussymbolsandpictographs", + "inlycian", + "palm", + "sind", + "onao", + "xidstart", + "inancientgreeknumbers", + "xdigit", + "inmeeteimayekextensions", + "inkhudawadi", + "inspacingmodifierletters", + "oriya", + "cased", + "inmalayalam", + "inolduyghur", + "incountingrodnumerals", + "bamu", + "insmallkanaextension", + "bidic", + "ital", + "inkaktoviknumerals", + "joinc", + "insylotinagri", + "vai", + "vaii", + "inlinearbideograms", + "inlatinextendeda", + "sterm", + "incyrillicsupplement", + "runic", + "lu", + "insiddham", + "quotationmark", + "intaile", + "incherokeesupplement", + "alnum", + "idsu", + "incjkunifiedideographsextensiona", + "incjkunifiedideographsextensioni", + "saur", + "punct", + "sundanese", + "guru", + "inlatinextendede", + "bali", + "paucinhau", + "blank", + "gurmukhi", + "intamil", + "incjkunifiedideographsextensione", + "inmultani", + "inlydian", + "osage", + "bengali", + "limbu", + "osma", + "zinh", + "balinese", + "inhanifirohingya", + "plrd", + "incjkunifiedideographsextensionc", + "inhiragana", + "canadianaboriginal", + "saurashtra", + "phoenician", + "ingrantha", + "sd", + "gong", + "incjkunifiedideographs", + "marchen", + "sidd", + "odi", + "mong", + "sinhala", + "graphemelink", + "inearlydynasticcuneiform", + "cher", + "kaithi", + "inmahajani", + "inlatinextendedc", + "multani", + "inogham", + "gunjalagondi", + "cham", + "cherokee", + "chakma", + "khojki", + "inosage", + "khar", + "manichaean", + "georgian", + "ingeneralpunctuation", + "inolchiki", + "ingeorgian", + "graphemebase", + "adlm", + "inethiopic", + "inkhitansmallscript", + "insinhala", + "inmongolian", + "punctuation", + "emoji", + "innagmundari", + "vs", + "casedletter", + "oidc", + "intamilsupplement", + "ahom", + "chorasmian", + "khmr", + "ingurmukhi", + "sund", + "patternsyntax", + "chrs", + "math", + "inscriptionalpahlavi", + "goth", + "adlam", + "oids", + "incjkunifiedideographsextensiond", + "khmer", + "grantha", + "ll", + "kharoshthi", + "intirhuta", + "inhatran", + "inmiscellaneoustechnical", + "logicalorderexception", + "radical", + "zl", + "insorasompeng", + "n", + "intangsa", + "kthi", + "mult", + "nandinagari", + "no", + "nko", + "nkoo", + "intulutigalari", + "p", + "emojimodifier", + "xpeo", + "brah", + "sunu", + "inoldhungarian", + "inphoenician", + "incyrillicextendeda", + "inherited", + "intaixuanjingsymbols", + "ingreekandcoptic", + "inenclosedideographicsupplement", + "glagolitic", + "inmeroitichieroglyphs", + "bidicontrol", + "enclosingmark", + "regionalindicator", + "beng", + "inanatolianhieroglyphs", + "joincontrol", + "inkangxiradicals", + "dia", + "cpmn", + "di", + "diak", + "graphemeextend", + "indogra", + "inphaistosdisc", + "lepc", + "sinh", + "shavian", + "gukh", + "linb", + "ingreekextended", + "incyprominoan", + "innabataean", + "zanb", + "inhanunoo", + "bhks", + "inkanbun", + "inbhaiksuki", + "incyrillicextendedc", + "emod", + "bhaiksuki", + "xsux", + "format", + "inelbasan", + "emojimodifierbase", + "linearb", + "olck", + "inimperialaramaic", + "inlatinextendedd", + "insundanesesupplement", + "intangut", + "cntrl", + "olchiki", + "inlatinextendedadditional", + "olower", + "sogdian", + "sogo", + "ingeometricshapes", + "emojicomponent", + "limb", + "intodhri", + "inkayahli", + "insogdian", + "indingbats", + "inoriya", + "inyezidi", + "insinhalaarchaicnumbers", + "copt", + "vithkuqi", + "incb", + "wara", + "coptic", + "gurungkhema", + "inarabic", + "ideographic", + "diacritic", + "cprt", + "arab", + "inenclosedalphanumerics", + "anatolianhieroglyphs", + "innewa", + "asciihexdigit", + "nand", + "intags", + "ininscriptionalparthian", + "innushu", + "ininscriptionalpahlavi", + "inkawi", + "inkatakanaphoneticextensions", + "inarabicpresentationformsa", + "inbasiclatin", + "bopo", + "lyci", + "lycian", + "inoldpersian", + "imperialaramaic", + "braille", + "ingurungkhema", + "inwarangciti", + "inenclosedalphanumericsupplement", + "phli", + "mymr", + "myanmar", + "han", + "hani", + "incyrillicextendedd", + "inbatak", + "kawi", + "hano", + "glag", + "lower", + "inlisu", + "ingeometricshapesextended", + "hanunoo", + "inkhojki", + "intibetan", + "grbase", + "hira", + "insoyombo", + "decimalnumber", + "inwancho", + "inlisusupplement", + "sorasompeng", + "incoptic", + "bopomofo", + "inoldpermic", + "sharada", + "inethiopicsupplement", + "incjksymbolsandpunctuation", + "spacingmark", + "intelugu", + "inelymaic", + "medf", + "insyriacsupplement", + "inblockelements", + "incjkcompatibility", + "medefaidrin", + "inkanaextendedb", + "oldpersian", + "patsyn", + "shrd", + "lowercase", + "orkh", + "space", + "innumberforms", + "assigned", + "inarabicextendeda", + "inmyanmarextendedb", + "inshorthandformatcontrols", + "cwcm", + "bugi", + "variationselector", + "inmayannumerals", + "sogd", + "dsrt", + "inbyzantinemusicalsymbols", + "ingeorgiansupplement", + "lydi", + "lydian", + "siddham", + "inbraillepatterns", + "separator", + "innewtailue", + "sentenceterminal", + "inornamentaldingbats", + "word", + "buginese", + "oldpermic", + "inyiradicals", + "phnx", + "hatran", + "deseret", + "ogam", + "insuttonsignwriting", + "inunifiedcanadianaboriginalsyllabicsextendeda", + "incjkunifiedideographsextensionh", + "nd", + "inarabicextendedc", + "idsb", + "caseignorable", + "sarb", + "hatr", + "uideo", + "number", + "zanabazarsquare", + "inmiscellaneousmathematicalsymbolsb", + "incjkunifiedideographsextensiong", + "innyiakengpuachuehmong", + "ahex", + "soyo", + "cuneiform", + "insymbolsforlegacycomputingsupplement", + "incopticepactnumbers", + "osge", + "closepunctuation", + "graph", + "alpha", + "lowercaseletter", + "modifierletter", + "takri", + "olditalic", + "inlepcha", + "invai", + "surrogate", + "meroitichieroglyphs", + "other", + "inpalmyrene", + "cwt", + "othernumber", + "buhd", + "otheridcontinue", + "inunifiedcanadianaboriginalsyllabics", + "takr", + "unassigned", + "vith", + "inbamum", + "phag", + "taile", + "inhanguljamo", + "caucasianalbanian", + "innoblock", + "idstrinaryoperator", + "syrc", + "inhanguljamoextendeda", + "inbalinese", + "otheralphabetic", + "gujr", + "oldhungarian", + "gujarati", + "tnsa", + "tangsa", + "term", + "inmongoliansupplement", + "incombiningdiacriticalmarks", + "inshavian", + "incombiningdiacriticalmarksforsymbols", + "spaceseparator", + "cyrl", + "syriac", + "inunifiedcanadianaboriginalsyllabicsextended", + "inethiopicextendeda", + "inmathematicalalphanumericsymbols", + "mlym", + "induployan", + "malayalam", + "incombiningdiacriticalmarkssupplement", + "insymbolsandpictographsextendeda", + "toto", + "ethi", + "palmyrene", + "rohg", + "taiviet", + "ougr", + "oldturkic", + "inpaucinhau", + "lepcha", + "orya", + "incjkradicalssupplement", + "incjkunifiedideographsextensionf", + "inglagolitic", + "intagalog", + "incombiningdiacriticalmarksextended", + "inphagspa", + "ext", + "indevanagari", + "incjkunifiedideographsextensionb", + "oalpha", + "buhid", + "ingothic", + "avestan", + "todr", + "indevanagariextendeda", + "inottomansiyaqnumbers", + "todhri", + "inlatin1supplement", + "nagm", + "inbrahmi", + "terminalpunctuation", + "otheridstart", + "nchar", + "inverticalforms", + "phagspa", + "dogra", + "extpict", + "intaiviet", + "otheruppercase", + "avst", + "extender", + "cwu", + "inphoneticextensions", + "invariationselectors", + "inbengali", + "dogr", + "softdotted", + "incurrencysymbols", + "invedicextensions", + "sunuwar", + "osmanya", + "wancho", + "nl", + "inethiopicextended", + "mathsymbol", + "inbuginese", + "dash", + "inlowsurrogates", + "ebase", + "inphoneticextensionssupplement", + "invariationselectorssupplement", + "zp", + "posixpunct", + "noncharactercodepoint", + "sylo", + "nonspacingmark", + "oupper", + "inlimbu", + "wcho", + "ingaray", + "warangciti", + "ingeorgianextended", + "changeswhencasemapped", + "currencysymbol", + "intifinagh", + "java", + "titlecaseletter", + "olonal", + "mahj", + "inmeroiticcursive", + "mahajani", + "tale", + "otherlowercase", + "ugar", + "otherletter", + "changeswhentitlecased", + "epres", + "emojipresentation", + "inaegeannumbers", + "inindicsiyaqnumbers", + "indevanagariextended", + "javanese", + "hang", + "inletterlikesymbols", + "intagbanwa", + "inalphabeticpresentationforms", + "taml", + "tirhuta", + "whitespace", + "ingujarati", + "paragraphseparator", + "intangutcomponents", + "ingunjalagondi", + "khoj", + "inbassavah", + "inbuhid", + "khitansmallscript", + "narb", + "inbopomofo", + "hiragana", + "inrejang", + "oldsogdian", + "nushu", + "incyrillicextendedb", + "othersymbol", + "nagmundari", + "extendedpictographic", + "otherdefaultignorablecodepoint", + "hmng", + "insymbolsforlegacycomputing", + "omath", + "sylotinagri", + "inlinearbsyllabary", + "intangutsupplement", + "inarabicmathematicalalphabeticsymbols", + "cf", + "inenclosedcjklettersandmonths", + "inbamumsupplement", + "pf", + "cwl", + "nshu", + "inmathematicaloperators", + "inhangulsyllables", + "incombininghalfmarks", + "newa", + "tangut", + "digit", + "changeswhenuppercased", + "finalpunctuation", + "inpsalterpahlavi", + "phlp", + "rjng", + "nbat", + "newtailue", + "newline", + "cyprominoan", + "nabataean", + "insuperscriptsandsubscripts", + "cyrillic", + "ugaritic", + "ogham", + "insmallformvariants", + "inlatinextendedg", + "thaa", + "inarabicsupplement", + "thaana", + "thai", + "shaw", + "insupplementalarrowsa", + "inplayingcards", + "hmnp", + "tirh", + "idcompatmathcontinue", + "inarabicpresentationformsb", + "idcompatmathstart", + "tang", + "tagbanwa", + "cypriot", + "garay", + "othermath", + "sgnw", + "talu", + "taitham", + "changeswhenlowercased", + "khudawadi", + "elba", + "telu", + "insupplementalarrowsc", + "cwcf", + "wspace", + "any", + "insupplementalmathematicaloperators", + "ogrext", + "hung", + "hebr", + "deprecated", + "unknown", + "oldnortharabian", + "modifiercombiningmark", + "kayahli", + "invithkuqi", + "inarabicextendedb", + "indivesakuru", + "elbasan", + "elym", + "otherpunctuation", + "elymaic", + "symbol", + "tulutigalari", + "inalchemicalsymbols", + "inpahawhhmong", + "inprivateusearea", + "tamil", + "hangul", + "inyisyllables", + "hex", + "insupplementalpunctuation", + "deva", + "inyijinghexagramsymbols", + "inhighprivateusesurrogates", + "devanagari", + "bassavah", + "soyombo", + "dashpunctuation", + "inmahjongtiles", + "inhanguljamoextendedb", + "alphabetic", + "aghb", + "incypriotsyllabary", + "oldsoutharabian", + "inhalfwidthandfullwidthforms", + "inethiopicextendedb", + "ethiopic", + "tibt", + "tibetan", + "inlatinextendedf", + "othergraphemeextend", + "injavanese", + "tutg", + "ecomp", + "inglagoliticsupplement", + "inlatinextendedb", + "dupl", + "modifiersymbol", + "hexdigit", + "inegyptianhieroglyphsextendeda", + "changeswhencasefolded", + "dep", + "rejang", + "divesakuru", + "openpunctuation", + "inhebrew", + "inegyptianhieroglyphs", + "inegyptianhieroglyphformatcontrols", + "hanifirohingya", + "signwriting", + "defaultignorablecodepoint", + "upper", + "tavt", + "inbopomofoextended", + "insupplementaryprivateuseareaa", + "olduyghur", + "hluw", + "uppercase", + "inhighsurrogates", + "tifinagh", + "insupplementalarrowsb", + "tfng", + "tagb", + "hyphen", + "zyyy", + "uppercaseletter", + "telugu", + "pahawhhmong", + "insupplementalsymbolsandpictographs", + "unifiedideograph", + "duployan", + "inboxdrawing", + "tglg", + "tagalog", + "inhangulcompatibilityjamo", + "egyp", + "nyiakengpuachuehmong", + "egyptianhieroglyphs", + "insupplementaryprivateuseareab", + "hebrew" + }; +#define unicode_prop_name_pool ((const char *) &unicode_prop_name_pool_contents) +static const struct PoolPropertyNameCtype * +unicode_lookup_property_name (register const char *str, register size_t len) +{ + static const struct PoolPropertyNameCtype wordlist[] = + { + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(12), 255}, + {-1}, {-1}, {-1}, + + {pool_offset(16), 284}, + {-1}, {-1}, + + {pool_offset(19), 137}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(25), 284}, + + {pool_offset(26), 166}, + {-1}, + + {pool_offset(28), 151}, + {-1}, {-1}, + + {pool_offset(31), 154}, + {-1}, {-1}, + + {pool_offset(34), 285}, + {-1}, {-1}, + + {pool_offset(37), 319}, + + {pool_offset(38), 142}, + + {pool_offset(39), 133}, + + {pool_offset(40), 133}, + {-1}, {-1}, + + {pool_offset(43), 165}, + {-1}, {-1}, + + {pool_offset(46), 54}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(52), 40}, + + {pool_offset(53), 306}, + {-1}, + + {pool_offset(55), 273}, + + {pool_offset(56), 283}, + {-1}, + + {pool_offset(58), 83}, + {-1}, {-1}, {-1}, + + {pool_offset(62), 87}, + + {pool_offset(63), 221}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(69), 137}, + + {pool_offset(70), 55}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(75), 149}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(81), 222}, + {-1}, {-1}, + + {pool_offset(84), 559}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(90), 159}, + {-1}, {-1}, + + {pool_offset(93), 487}, + + {pool_offset(94), 39}, + + {pool_offset(95), 143}, + {-1}, + + {pool_offset(97), 39}, + + {pool_offset(98), 170}, + + {pool_offset(99), 170}, + {-1}, {-1}, + + {pool_offset(102), 91}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(107), 122}, + {-1}, {-1}, + + {pool_offset(110), 84}, + + {pool_offset(111), 91}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(116), 149}, + {-1}, {-1}, + + {pool_offset(119), 164}, + {-1}, + + {pool_offset(121), 217}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(126), 162}, + {-1}, {-1}, {-1}, + + {pool_offset(130), 156}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(136), 470}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(142), 490}, + {-1}, {-1}, {-1}, + + {pool_offset(146), 510}, + + {pool_offset(147), 45}, + + {pool_offset(148), 555}, + + {pool_offset(149), 561}, + + {pool_offset(150), 161}, + {-1}, + + {pool_offset(152), 153}, + {-1}, {-1}, + + {pool_offset(155), 37}, + {-1}, + + {pool_offset(157), 130}, + {-1}, {-1}, {-1}, + + {pool_offset(161), 300}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(171), 325}, + {-1}, {-1}, {-1}, + + {pool_offset(175), 541}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(181), 56}, + {-1}, {-1}, + + {pool_offset(184), 115}, + + {pool_offset(185), 155}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(195), 333}, + + {pool_offset(196), 461}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(204), 141}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(209), 338}, + {-1}, {-1}, {-1}, + + {pool_offset(213), 505}, + {-1}, + + {pool_offset(215), 562}, + {-1}, + + {pool_offset(217), 38}, + {-1}, {-1}, {-1}, + + {pool_offset(221), 163}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(230), 149}, + {-1}, + + {pool_offset(232), 526}, + + {pool_offset(233), 192}, + + {pool_offset(234), 491}, + {-1}, {-1}, {-1}, + + {pool_offset(238), 215}, + {-1}, {-1}, + + {pool_offset(241), 512}, + + {pool_offset(242), 132}, + {-1}, + + {pool_offset(244), 223}, + {-1}, + + {pool_offset(246), 546}, + {-1}, {-1}, {-1}, + + {pool_offset(250), 294}, + + {pool_offset(251), 151}, + {-1}, + + {pool_offset(253), 134}, + + {pool_offset(254), 158}, + {-1}, + + {pool_offset(256), 368}, + + {pool_offset(257), 228}, + + {pool_offset(258), 134}, + + {pool_offset(259), 330}, + {-1}, + + {pool_offset(261), 305}, + + {pool_offset(262), 156}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(271), 399}, + + {pool_offset(272), 22}, + + {pool_offset(273), 322}, + + {pool_offset(274), 43}, + + {pool_offset(275), 113}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(280), 545}, + {-1}, {-1}, + + {pool_offset(283), 508}, + {-1}, + + {pool_offset(285), 215}, + {-1}, + + {pool_offset(287), 22}, + {-1}, + + {pool_offset(289), 538}, + {-1}, {-1}, {-1}, + + {pool_offset(293), 226}, + {-1}, + + {pool_offset(295), 57}, + + {pool_offset(296), 221}, + {-1}, + + {pool_offset(298), 531}, + + {pool_offset(299), 307}, + + {pool_offset(300), 287}, + {-1}, {-1}, {-1}, + + {pool_offset(304), 161}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(309), 539}, + {-1}, + + {pool_offset(311), 117}, + + {pool_offset(312), 298}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(322), 524}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(334), 429}, + + {pool_offset(335), 168}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(346), 117}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(356), 122}, + {-1}, + + {pool_offset(358), 344}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(365), 303}, + + {pool_offset(366), 223}, + + {pool_offset(367), 153}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(372), 289}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(382), 569}, + {-1}, + + {pool_offset(384), 58}, + {-1}, + + {pool_offset(386), 167}, + {-1}, + + {pool_offset(388), 55}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(395), 224}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(401), 34}, + {-1}, + + {pool_offset(403), 162}, + {-1}, {-1}, {-1}, + + {pool_offset(407), 112}, + + {pool_offset(408), 283}, + {-1}, + + {pool_offset(410), 430}, + {-1}, {-1}, {-1}, + + {pool_offset(414), 21}, + {-1}, {-1}, + + {pool_offset(417), 131}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(426), 281}, + {-1}, + + {pool_offset(428), 14}, + {-1}, + + {pool_offset(430), 530}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(443), 489}, + {-1}, + + {pool_offset(445), 436}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(450), 121}, + {-1}, {-1}, + + {pool_offset(453), 121}, + + {pool_offset(454), 607}, + {-1}, + + {pool_offset(456), 130}, + + {pool_offset(457), 499}, + + {pool_offset(458), 396}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(466), 449}, + {-1}, {-1}, {-1}, + + {pool_offset(470), 181}, + + {pool_offset(471), 443}, + {-1}, {-1}, + + {pool_offset(474), 522}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(481), 281}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(487), 594}, + + {pool_offset(488), 145}, + + {pool_offset(489), 605}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(504), 241}, + {-1}, {-1}, + + {pool_offset(507), 463}, + {-1}, + + {pool_offset(509), 33}, + {-1}, {-1}, {-1}, + + {pool_offset(513), 86}, + + {pool_offset(514), 560}, + {-1}, {-1}, {-1}, + + {pool_offset(518), 225}, + {-1}, + + {pool_offset(520), 243}, + {-1}, + + {pool_offset(522), 453}, + {-1}, + + {pool_offset(524), 126}, + {-1}, {-1}, {-1}, + + {pool_offset(528), 525}, + {-1}, {-1}, {-1}, + + {pool_offset(532), 589}, + {-1}, {-1}, {-1}, + + {pool_offset(536), 282}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(542), 612}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(549), 621}, + + {pool_offset(550), 372}, + {-1}, {-1}, + + {pool_offset(553), 246}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(558), 568}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(564), 502}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(571), 163}, + + {pool_offset(572), 379}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(577), 89}, + + {pool_offset(578), 213}, + + {pool_offset(579), 349}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(585), 308}, + {-1}, {-1}, + + {pool_offset(588), 7}, + {-1}, + + {pool_offset(590), 110}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(596), 28}, + {-1}, + + {pool_offset(598), 458}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(605), 28}, + {-1}, {-1}, {-1}, + + {pool_offset(609), 346}, + {-1}, {-1}, + + {pool_offset(612), 488}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(631), 420}, + {-1}, {-1}, {-1}, + + {pool_offset(635), 575}, + + {pool_offset(636), 232}, + {-1}, {-1}, + + {pool_offset(639), 213}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(645), 26}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(651), 105}, + + {pool_offset(652), 232}, + {-1}, {-1}, + + {pool_offset(655), 214}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(660), 231}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(669), 404}, + {-1}, {-1}, {-1}, + + {pool_offset(673), 466}, + + {pool_offset(674), 139}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(683), 600}, + {-1}, + + {pool_offset(685), 107}, + + {pool_offset(686), 242}, + {-1}, {-1}, + + {pool_offset(689), 131}, + {-1}, {-1}, + + {pool_offset(692), 578}, + + {pool_offset(693), 27}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(700), 111}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(707), 417}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(719), 371}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(724), 234}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(730), 422}, + + {pool_offset(731), 536}, + {-1}, + + {pool_offset(733), 323}, + {-1}, + + {pool_offset(735), 216}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(740), 592}, + + {pool_offset(741), 495}, + {-1}, {-1}, {-1}, + + {pool_offset(745), 476}, + {-1}, {-1}, {-1}, + + {pool_offset(749), 169}, + {-1}, {-1}, + + {pool_offset(752), 577}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(760), 110}, + + {pool_offset(761), 473}, + {-1}, {-1}, + + {pool_offset(764), 90}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(769), 106}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(782), 230}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(794), 124}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(802), 595}, + {-1}, {-1}, {-1}, + + {pool_offset(806), 377}, + {-1}, {-1}, {-1}, + + {pool_offset(810), 43}, + {-1}, {-1}, {-1}, + + {pool_offset(814), 468}, + + {pool_offset(815), 385}, + {-1}, {-1}, {-1}, + + {pool_offset(819), 111}, + + {pool_offset(820), 604}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(833), 460}, + + {pool_offset(834), 211}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(844), 129}, + {-1}, {-1}, {-1}, + + {pool_offset(848), 188}, + + {pool_offset(849), 282}, + {-1}, {-1}, {-1}, + + {pool_offset(853), 457}, + + {pool_offset(854), 11}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(861), 432}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(867), 516}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(879), 295}, + {-1}, {-1}, {-1}, + + {pool_offset(883), 198}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(900), 41}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(905), 320}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(915), 504}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(929), 582}, + {-1}, {-1}, + + {pool_offset(932), 26}, + + {pool_offset(933), 570}, + + {pool_offset(934), 31}, + {-1}, {-1}, + + {pool_offset(937), 190}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(946), 579}, + {-1}, + + {pool_offset(948), 119}, + {-1}, {-1}, {-1}, + + {pool_offset(952), 419}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(957), 275}, + + {pool_offset(958), 275}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(963), 455}, + + {pool_offset(964), 292}, + {-1}, + + {pool_offset(966), 235}, + + {pool_offset(967), 299}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(972), 230}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(978), 146}, + + {pool_offset(979), 521}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(984), 226}, + {-1}, {-1}, + + {pool_offset(987), 342}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(996), 435}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(1009), 13}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1014), 107}, + + {pool_offset(1015), 408}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1022), 620}, + + {pool_offset(1023), 233}, + + {pool_offset(1024), 209}, + + {pool_offset(1025), 248}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1030), 94}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1036), 434}, + {-1}, + + {pool_offset(1038), 25}, + + {pool_offset(1039), 214}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1048), 2}, + + {pool_offset(1049), 94}, + + {pool_offset(1050), 317}, + + {pool_offset(1051), 618}, + + {pool_offset(1052), 515}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1058), 484}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1074), 199}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1081), 29}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1087), 136}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(1100), 200}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1110), 115}, + + {pool_offset(1111), 25}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1117), 497}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1125), 165}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1133), 616}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1140), 398}, + {-1}, {-1}, + + {pool_offset(1143), 38}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(1155), 233}, + {-1}, {-1}, {-1}, + + {pool_offset(1159), 220}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(1171), 517}, + {-1}, {-1}, + + {pool_offset(1174), 244}, + {-1}, {-1}, + + {pool_offset(1177), 93}, + + {pool_offset(1178), 410}, + {-1}, {-1}, + + {pool_offset(1181), 155}, + {-1}, + + {pool_offset(1183), 238}, + + {pool_offset(1184), 202}, + {-1}, + + {pool_offset(1186), 169}, + {-1}, + + {pool_offset(1188), 240}, + + {pool_offset(1189), 90}, + {-1}, {-1}, {-1}, + + {pool_offset(1193), 547}, + + {pool_offset(1194), 52}, + {-1}, {-1}, + + {pool_offset(1197), 120}, + {-1}, + + {pool_offset(1199), 511}, + + {pool_offset(1200), 387}, + {-1}, {-1}, {-1}, + + {pool_offset(1204), 171}, + + {pool_offset(1205), 332}, + {-1}, + + {pool_offset(1207), 93}, + {-1}, {-1}, + + {pool_offset(1210), 46}, + + {pool_offset(1211), 52}, + + {pool_offset(1212), 45}, + {-1}, + + {pool_offset(1214), 128}, + {-1}, {-1}, + + {pool_offset(1217), 471}, + {-1}, {-1}, {-1}, + + {pool_offset(1221), 125}, + {-1}, + + {pool_offset(1223), 154}, + + {pool_offset(1224), 84}, + {-1}, + + {pool_offset(1226), 362}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1233), 352}, + {-1}, + + {pool_offset(1235), 326}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1245), 88}, + {-1}, {-1}, + + {pool_offset(1248), 16}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1254), 328}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1259), 565}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1269), 321}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1276), 339}, + {-1}, {-1}, + + {pool_offset(1279), 209}, + + {pool_offset(1280), 75}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1287), 591}, + + {pool_offset(1288), 276}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1294), 132}, + {-1}, + + {pool_offset(1296), 204}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1305), 544}, + {-1}, {-1}, + + {pool_offset(1308), 17}, + {-1}, + + {pool_offset(1310), 53}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1320), 127}, + + {pool_offset(1321), 314}, + {-1}, + + {pool_offset(1323), 248}, + + {pool_offset(1324), 212}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1331), 53}, + + {pool_offset(1332), 157}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1337), 116}, + {-1}, + + {pool_offset(1339), 86}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1348), 16}, + {-1}, {-1}, + + {pool_offset(1351), 205}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1358), 617}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1368), 127}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1373), 87}, + + {pool_offset(1374), 140}, + {-1}, + + {pool_offset(1376), 125}, + {-1}, {-1}, {-1}, + + {pool_offset(1380), 520}, + {-1}, {-1}, + + {pool_offset(1383), 482}, + {-1}, {-1}, {-1}, + + {pool_offset(1387), 370}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1392), 143}, + + {pool_offset(1393), 227}, + + {pool_offset(1394), 287}, + + {pool_offset(1395), 509}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1404), 173}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1411), 556}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(1422), 120}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1431), 171}, + + {pool_offset(1432), 176}, + + {pool_offset(1433), 182}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1442), 180}, + + {pool_offset(1443), 180}, + + {pool_offset(1444), 518}, + {-1}, {-1}, + + {pool_offset(1447), 209}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1463), 77}, + + {pool_offset(1464), 193}, + + {pool_offset(1465), 33}, + + {pool_offset(1466), 249}, + + {pool_offset(1467), 496}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1483), 483}, + {-1}, {-1}, + + {pool_offset(1486), 392}, + {-1}, {-1}, + + {pool_offset(1489), 115}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1496), 581}, + {-1}, + + {pool_offset(1498), 297}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1512), 603}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1519), 85}, + {-1}, + + {pool_offset(1521), 485}, + + {pool_offset(1522), 31}, + {-1}, {-1}, + + {pool_offset(1525), 159}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1530), 228}, + {-1}, {-1}, + + {pool_offset(1533), 29}, + {-1}, + + {pool_offset(1535), 552}, + + {pool_offset(1536), 119}, + {-1}, {-1}, + + {pool_offset(1539), 395}, + {-1}, + + {pool_offset(1541), 68}, + + {pool_offset(1542), 61}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1547), 64}, + {-1}, {-1}, + + {pool_offset(1550), 69}, + {-1}, {-1}, {-1}, + + {pool_offset(1554), 89}, + + {pool_offset(1555), 527}, + {-1}, + + {pool_offset(1557), 459}, + {-1}, {-1}, {-1}, + + {pool_offset(1561), 135}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(1572), 240}, + {-1}, {-1}, + + {pool_offset(1575), 237}, + + {pool_offset(1576), 95}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1583), 138}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1592), 361}, + + {pool_offset(1593), 548}, + {-1}, + + {pool_offset(1595), 481}, + + {pool_offset(1596), 286}, + {-1}, + + {pool_offset(1598), 335}, + + {pool_offset(1599), 30}, + + {pool_offset(1600), 402}, + + {pool_offset(1601), 537}, + {-1}, {-1}, + + {pool_offset(1604), 353}, + {-1}, {-1}, {-1}, + + {pool_offset(1608), 77}, + {-1}, {-1}, + + {pool_offset(1611), 30}, + + {pool_offset(1612), 59}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1622), 44}, + {-1}, {-1}, + + {pool_offset(1625), 472}, + {-1}, {-1}, {-1}, + + {pool_offset(1629), 78}, + {-1}, {-1}, {-1}, + + {pool_offset(1633), 138}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1638), 187}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1643), 479}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1650), 418}, + + {pool_offset(1651), 355}, + + {pool_offset(1652), 563}, + {-1}, + + {pool_offset(1654), 3}, + + {pool_offset(1655), 187}, + {-1}, + + {pool_offset(1657), 360}, + {-1}, {-1}, + + {pool_offset(1660), 206}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1666), 245}, + {-1}, + + {pool_offset(1668), 194}, + {-1}, {-1}, {-1}, + + {pool_offset(1672), 376}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1677), 76}, + + {pool_offset(1678), 136}, + {-1}, {-1}, {-1}, + + {pool_offset(1682), 475}, + {-1}, + + {pool_offset(1684), 424}, + {-1}, {-1}, + + {pool_offset(1687), 503}, + + {pool_offset(1688), 378}, + {-1}, + + {pool_offset(1690), 316}, + + {pool_offset(1691), 500}, + + {pool_offset(1692), 513}, + {-1}, {-1}, {-1}, + + {pool_offset(1696), 57}, + + {pool_offset(1697), 277}, + + {pool_offset(1698), 114}, + + {pool_offset(1699), 279}, + + {pool_offset(1700), 57}, + + {pool_offset(1701), 95}, + + {pool_offset(1702), 302}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1709), 112}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1719), 68}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1727), 60}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1733), 21}, + + {pool_offset(1734), 373}, + + {pool_offset(1735), 19}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1745), 519}, + {-1}, {-1}, + + {pool_offset(1748), 15}, + {-1}, + + {pool_offset(1750), 176}, + + {pool_offset(1751), 624}, + + {pool_offset(1752), 492}, + + {pool_offset(1753), 571}, + + {pool_offset(1754), 493}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1763), 542}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(1774), 405}, + + {pool_offset(1775), 445}, + + {pool_offset(1776), 290}, + {-1}, + + {pool_offset(1778), 32}, + {-1}, {-1}, + + {pool_offset(1781), 147}, + {-1}, {-1}, + + {pool_offset(1784), 147}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1790), 467}, + {-1}, + + {pool_offset(1792), 113}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1801), 34}, + {-1}, + + {pool_offset(1803), 553}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1808), 528}, + {-1}, {-1}, + + {pool_offset(1811), 602}, + {-1}, + + {pool_offset(1813), 116}, + + {pool_offset(1814), 172}, + {-1}, {-1}, + + {pool_offset(1817), 172}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1823), 96}, + {-1}, {-1}, {-1}, + + {pool_offset(1827), 96}, + {-1}, + + {pool_offset(1829), 587}, + {-1}, {-1}, + + {pool_offset(1832), 350}, + + {pool_offset(1833), 123}, + {-1}, {-1}, + + {pool_offset(1836), 99}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1841), 85}, + + {pool_offset(1842), 6}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1847), 413}, + {-1}, {-1}, + + {pool_offset(1850), 609}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1859), 99}, + {-1}, {-1}, {-1}, + + {pool_offset(1863), 514}, + {-1}, {-1}, + + {pool_offset(1866), 324}, + {-1}, {-1}, + + {pool_offset(1869), 88}, + + {pool_offset(1870), 103}, + {-1}, {-1}, {-1}, + + {pool_offset(1874), 532}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1880), 177}, + + {pool_offset(1881), 590}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1889), 543}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1895), 246}, + + {pool_offset(1896), 388}, + + {pool_offset(1897), 32}, + {-1}, + + {pool_offset(1899), 465}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1907), 236}, + {-1}, + + {pool_offset(1909), 329}, + {-1}, {-1}, {-1}, + + {pool_offset(1913), 397}, + {-1}, + + {pool_offset(1915), 158}, + {-1}, + + {pool_offset(1917), 318}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1922), 506}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1930), 160}, + {-1}, {-1}, + + {pool_offset(1933), 309}, + + {pool_offset(1934), 375}, + {-1}, + + {pool_offset(1936), 407}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1941), 160}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1946), 567}, + {-1}, + + {pool_offset(1948), 193}, + {-1}, + + {pool_offset(1950), 212}, + + {pool_offset(1951), 236}, + {-1}, + + {pool_offset(1953), 144}, + + {pool_offset(1954), 196}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1962), 9}, + {-1}, + + {pool_offset(1964), 367}, + + {pool_offset(1965), 23}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1972), 311}, + {-1}, + + {pool_offset(1974), 428}, + {-1}, {-1}, + + {pool_offset(1977), 573}, + {-1}, {-1}, + + {pool_offset(1980), 48}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1986), 35}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(1992), 276}, + {-1}, + + {pool_offset(1994), 580}, + + {pool_offset(1995), 245}, + + {pool_offset(1996), 66}, + {-1}, {-1}, {-1}, + + {pool_offset(2000), 576}, + {-1}, {-1}, {-1}, + + {pool_offset(2004), 389}, + {-1}, + + {pool_offset(2006), 148}, + {-1}, {-1}, + + {pool_offset(2009), 148}, + {-1}, {-1}, {-1}, + + {pool_offset(2013), 238}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2018), 381}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2024), 285}, + {-1}, {-1}, + + {pool_offset(2027), 343}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(2049), 235}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2055), 606}, + {-1}, {-1}, + + {pool_offset(2058), 12}, + + {pool_offset(2059), 35}, + {-1}, + + {pool_offset(2061), 192}, + {-1}, {-1}, {-1}, + + {pool_offset(2065), 412}, + + {pool_offset(2066), 220}, + + {pool_offset(2067), 100}, + {-1}, {-1}, {-1}, + + {pool_offset(2071), 66}, + {-1}, + + {pool_offset(2073), 186}, + {-1}, {-1}, {-1}, + + {pool_offset(2077), 584}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2085), 533}, + + {pool_offset(2086), 623}, + + {pool_offset(2087), 177}, + {-1}, {-1}, + + {pool_offset(2090), 501}, + {-1}, + + {pool_offset(2092), 105}, + {-1}, {-1}, + + {pool_offset(2095), 40}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2101), 195}, + {-1}, {-1}, + + {pool_offset(2104), 100}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2110), 272}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2120), 173}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2129), 286}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2136), 383}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2161), 622}, + {-1}, + + {pool_offset(2163), 588}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2169), 15}, + + {pool_offset(2170), 247}, + {-1}, + + {pool_offset(2172), 59}, + + {pool_offset(2173), 574}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2180), 462}, + {-1}, {-1}, + + {pool_offset(2183), 199}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(2195), 217}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2201), 5}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2206), 1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2211), 140}, + {-1}, {-1}, {-1}, + + {pool_offset(2215), 141}, + {-1}, {-1}, + + {pool_offset(2218), 257}, + + {pool_offset(2219), 190}, + {-1}, + + {pool_offset(2221), 351}, + + {pool_offset(2222), 414}, + {-1}, {-1}, {-1}, + + {pool_offset(2226), 58}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2234), 164}, + + {pool_offset(2235), 37}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2241), 480}, + {-1}, {-1}, + + {pool_offset(2244), 50}, + + {pool_offset(2245), 182}, + {-1}, + + {pool_offset(2247), 36}, + + {pool_offset(2248), 204}, + + {pool_offset(2249), 331}, + + {pool_offset(2250), 257}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2260), 54}, + {-1}, {-1}, + + {pool_offset(2263), 277}, + {-1}, {-1}, {-1}, + + {pool_offset(2267), 416}, + + {pool_offset(2268), 219}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2275), 254}, + {-1}, + + {pool_offset(2277), 327}, + {-1}, {-1}, + + {pool_offset(2280), 42}, + + {pool_offset(2281), 628}, + {-1}, + + {pool_offset(2283), 106}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(2303), 251}, + {-1}, {-1}, + + {pool_offset(2306), 426}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2313), 348}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(2352), 201}, + {-1}, {-1}, {-1}, + + {pool_offset(2356), 92}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2361), 189}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2367), 92}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2372), 259}, + {-1}, + + {pool_offset(2374), 259}, + {-1}, {-1}, + + {pool_offset(2377), 262}, + {-1}, {-1}, + + {pool_offset(2380), 523}, + {-1}, {-1}, + + {pool_offset(2383), 296}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2389), 469}, + {-1}, {-1}, {-1}, + + {pool_offset(2393), 365}, + {-1}, {-1}, + + {pool_offset(2396), 289}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2419), 62}, + {-1}, {-1}, {-1}, + + {pool_offset(2423), 251}, + {-1}, {-1}, {-1}, + + {pool_offset(2427), 340}, + + {pool_offset(2428), 433}, + {-1}, {-1}, + + {pool_offset(2431), 583}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(2451), 152}, + + {pool_offset(2452), 572}, + {-1}, {-1}, {-1}, + + {pool_offset(2456), 152}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2461), 359}, + {-1}, {-1}, + + {pool_offset(2464), 613}, + {-1}, {-1}, {-1}, + + {pool_offset(2468), 269}, + + {pool_offset(2469), 80}, + {-1}, + + {pool_offset(2471), 211}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2478), 98}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(2489), 256}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2507), 197}, + {-1}, {-1}, {-1}, + + {pool_offset(2511), 196}, + + {pool_offset(2512), 534}, + {-1}, {-1}, {-1}, + + {pool_offset(2516), 135}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2523), 198}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2532), 394}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2546), 619}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2552), 386}, + {-1}, + + {pool_offset(2554), 334}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2561), 347}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2566), 421}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2571), 82}, + + {pool_offset(2572), 312}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2579), 615}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2585), 201}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2591), 36}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2596), 464}, + + {pool_offset(2597), 24}, + {-1}, {-1}, {-1}, + + {pool_offset(2601), 268}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2610), 535}, + {-1}, {-1}, + + {pool_offset(2613), 597}, + {-1}, {-1}, {-1}, + + {pool_offset(2617), 268}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(2638), 291}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2648), 175}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2662), 507}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2667), 262}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2684), 205}, + {-1}, {-1}, + + {pool_offset(2687), 183}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2695), 447}, + {-1}, + + {pool_offset(2697), 219}, + + {pool_offset(2698), 70}, + {-1}, + + {pool_offset(2700), 81}, + + {pool_offset(2701), 431}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2719), 208}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2727), 24}, + {-1}, + + {pool_offset(2729), 82}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2734), 51}, + {-1}, {-1}, + + {pool_offset(2737), 357}, + {-1}, {-1}, {-1}, + + {pool_offset(2741), 446}, + + {pool_offset(2742), 313}, + {-1}, + + {pool_offset(2744), 70}, + + {pool_offset(2745), 244}, + + {pool_offset(2746), 364}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2751), 356}, + {-1}, + + {pool_offset(2753), 249}, + {-1}, + + {pool_offset(2755), 200}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2761), 278}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2769), 181}, + + {pool_offset(2770), 391}, + {-1}, + + {pool_offset(2772), 242}, + {-1}, {-1}, + + {pool_offset(2775), 345}, + {-1}, {-1}, {-1}, + + {pool_offset(2779), 63}, + + {pool_offset(2780), 441}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2787), 78}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2815), 358}, + {-1}, {-1}, {-1}, + + {pool_offset(2819), 625}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2824), 288}, + {-1}, + + {pool_offset(2826), 8}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2835), 183}, + {-1}, {-1}, + + {pool_offset(2838), 250}, + {-1}, + + {pool_offset(2840), 166}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2845), 208}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2852), 341}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2857), 278}, + {-1}, {-1}, + + {pool_offset(2860), 498}, + {-1}, + + {pool_offset(2862), 279}, + {-1}, {-1}, + + {pool_offset(2865), 354}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2870), 48}, + + {pool_offset(2871), 234}, + + {pool_offset(2872), 390}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2879), 118}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2896), 145}, + {-1}, + + {pool_offset(2898), 188}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2903), 150}, + + {pool_offset(2904), 486}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2914), 150}, + + {pool_offset(2915), 254}, + {-1}, + + {pool_offset(2917), 206}, + {-1}, {-1}, + + {pool_offset(2920), 271}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2925), 142}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2930), 50}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(2943), 79}, + {-1}, + + {pool_offset(2945), 79}, + + {pool_offset(2946), 456}, + {-1}, {-1}, + + {pool_offset(2949), 596}, + {-1}, {-1}, + + {pool_offset(2952), 423}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2959), 118}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2966), 97}, + {-1}, {-1}, {-1}, + + {pool_offset(2970), 366}, + {-1}, {-1}, + + {pool_offset(2973), 337}, + {-1}, + + {pool_offset(2975), 444}, + {-1}, {-1}, + + {pool_offset(2978), 258}, + + {pool_offset(2979), 267}, + {-1}, + + {pool_offset(2981), 280}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2987), 315}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2992), 288}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(2997), 564}, + {-1}, + + {pool_offset(2999), 540}, + {-1}, {-1}, + + {pool_offset(3002), 128}, + + {pool_offset(3003), 557}, + + {pool_offset(3004), 336}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3011), 126}, + {-1}, {-1}, + + {pool_offset(3014), 191}, + {-1}, {-1}, + + {pool_offset(3017), 400}, + {-1}, {-1}, + + {pool_offset(3020), 103}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3025), 425}, + {-1}, + + {pool_offset(3027), 194}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3035), 184}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3050), 415}, + + {pool_offset(3051), 243}, + + {pool_offset(3052), 175}, + + {pool_offset(3053), 81}, + + {pool_offset(3054), 202}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(3065), 210}, + {-1}, {-1}, + + {pool_offset(3068), 614}, + {-1}, + + {pool_offset(3070), 207}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3084), 250}, + {-1}, + + {pool_offset(3086), 454}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(3097), 566}, + + {pool_offset(3098), 598}, + {-1}, + + {pool_offset(3100), 44}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3105), 406}, + {-1}, + + {pool_offset(3107), 554}, + {-1}, {-1}, {-1}, + + {pool_offset(3111), 218}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3130), 49}, + {-1}, {-1}, + + {pool_offset(3133), 184}, + {-1}, {-1}, + + {pool_offset(3136), 369}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3143), 437}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(3156), 448}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3162), 179}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3169), 260}, + {-1}, + + {pool_offset(3171), 4}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3186), 51}, + {-1}, {-1}, + + {pool_offset(3189), 218}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3196), 494}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3205), 225}, + {-1}, + + {pool_offset(3207), 229}, + + {pool_offset(3208), 174}, + {-1}, + + {pool_offset(3210), 178}, + {-1}, + + {pool_offset(3212), 0}, + + {pool_offset(3213), 61}, + {-1}, {-1}, {-1}, + + {pool_offset(3217), 174}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3223), 363}, + {-1}, + + {pool_offset(3225), 62}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3243), 271}, + + {pool_offset(3244), 186}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3252), 450}, + {-1}, {-1}, {-1}, + + {pool_offset(3256), 585}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3266), 263}, + {-1}, {-1}, {-1}, + + {pool_offset(3270), 304}, + {-1}, + + {pool_offset(3272), 263}, + + {pool_offset(3273), 264}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(3284), 237}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3292), 380}, + + {pool_offset(3293), 601}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3318), 185}, + {-1}, + + {pool_offset(3320), 267}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3335), 108}, + {-1}, {-1}, {-1}, + + {pool_offset(3339), 451}, + {-1}, {-1}, {-1}, + + {pool_offset(3343), 109}, + {-1}, + + {pool_offset(3345), 260}, + {-1}, {-1}, {-1}, + + {pool_offset(3349), 253}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3354), 60}, + + {pool_offset(3355), 83}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3362), 207}, + + {pool_offset(3363), 239}, + {-1}, + + {pool_offset(3365), 178}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3375), 255}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3384), 49}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(3395), 129}, + {-1}, {-1}, + + {pool_offset(3398), 73}, + {-1}, {-1}, + + {pool_offset(3401), 261}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3410), 610}, + {-1}, + + {pool_offset(3412), 47}, + {-1}, {-1}, {-1}, + + {pool_offset(3416), 280}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3421), 20}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(3432), 384}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(3445), 203}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3452), 189}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(3463), 101}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3473), 65}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(3485), 273}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(3497), 191}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(3510), 168}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3516), 124}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3532), 474}, + {-1}, {-1}, {-1}, + + {pool_offset(3536), 310}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(3566), 529}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(3578), 73}, + {-1}, {-1}, + + {pool_offset(3581), 74}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3606), 222}, + {-1}, {-1}, {-1}, + + {pool_offset(3610), 74}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(3623), 231}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(3635), 270}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3641), 608}, + {-1}, {-1}, {-1}, + + {pool_offset(3645), 558}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3661), 442}, + {-1}, + + {pool_offset(3663), 258}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(3676), 97}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3703), 411}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3731), 102}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3739), 393}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3762), 67}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(3774), 409}, + {-1}, + + {pool_offset(3776), 440}, + {-1}, {-1}, + + {pool_offset(3779), 67}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3786), 27}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3836), 247}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(3849), 216}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3865), 599}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3870), 438}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3893), 18}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3903), 42}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3926), 478}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3936), 195}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(3985), 452}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3992), 593}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(3999), 80}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4007), 265}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4014), 265}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(4026), 477}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4031), 203}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(4061), 427}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4068), 270}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4083), 76}, + + {pool_offset(4084), 586}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4092), 293}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(4104), 71}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4175), 241}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4190), 102}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4278), 551}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4302), 47}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(4368), 65}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4391), 229}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4398), 69}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4404), 224}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(4425), 301}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4442), 549}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(4455), 550}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4514), 98}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4566), 239}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4617), 64}, + {-1}, {-1}, + + {pool_offset(4620), 10}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4627), 256}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4635), 403}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4653), 626}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, + + {pool_offset(4701), 197}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4709), 19}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, + + {pool_offset(4731), 274}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4808), 439}, + {-1}, {-1}, {-1}, + + {pool_offset(4812), 266}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4856), 382}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(4876), 266}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(4905), 253}, + {-1}, {-1}, {-1}, + + {pool_offset(4909), 104}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4972), 56}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(4989), 146}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(5035), 261}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(5069), 210}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(5080), 611}, + + {pool_offset(5081), 272}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(5092), 71}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(5163), 374}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(5171), 252}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(5190), 252}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(5237), 401}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(5343), 72}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, + + {pool_offset(5453), 185}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(6075), 72}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(6217), 627}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + + {pool_offset(6900), 101} + }; + + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register unsigned int key = hash (str, len); + + if (key <= MAX_HASH_VALUE) + { + register int o = wordlist[key].name; + if (o >= 0) + { + register const char *s = o + unicode_prop_name_pool; + + if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strncmp (str, s, len) && s[len] == '\0') + return &wordlist[key]; + } + } + } + return 0; +} + + + +#define UNICODE_PROPERTY_VERSION 160000 +#define UNICODE_EMOJI_VERSION 1600 + +#define PROPERTY_NAME_MAX_SIZE 61 +#define CODE_RANGES_NUM 629 + +#define PROP_INDEX_NEWLINE 0 +#define PROP_INDEX_ALPHA 1 +#define PROP_INDEX_BLANK 2 +#define PROP_INDEX_CNTRL 3 +#define PROP_INDEX_DIGIT 4 +#define PROP_INDEX_GRAPH 5 +#define PROP_INDEX_LOWER 6 +#define PROP_INDEX_PRINT 7 +#define PROP_INDEX_POSIXPUNCT 8 +#define PROP_INDEX_SPACE 9 +#define PROP_INDEX_UPPER 10 +#define PROP_INDEX_XDIGIT 11 +#define PROP_INDEX_WORD 12 +#define PROP_INDEX_ALNUM 13 +#define PROP_INDEX_ASCII 14 +#define PROP_INDEX_ASCIIHEXDIGIT 15 +#define PROP_INDEX_AHEX 15 +#define PROP_INDEX_ADLAM 16 +#define PROP_INDEX_ADLM 16 +#define PROP_INDEX_AHOM 17 +#define PROP_INDEX_ALPHABETIC 18 +#define PROP_INDEX_ANATOLIANHIEROGLYPHS 19 +#define PROP_INDEX_HLUW 19 +#define PROP_INDEX_ANY 20 +#define PROP_INDEX_ARABIC 21 +#define PROP_INDEX_ARAB 21 +#define PROP_INDEX_ARMENIAN 22 +#define PROP_INDEX_ARMN 22 +#define PROP_INDEX_ASSIGNED 23 +#define PROP_INDEX_AVESTAN 24 +#define PROP_INDEX_AVST 24 +#define PROP_INDEX_BALINESE 25 +#define PROP_INDEX_BALI 25 +#define PROP_INDEX_BAMUM 26 +#define PROP_INDEX_BAMU 26 +#define PROP_INDEX_BASSAVAH 27 +#define PROP_INDEX_BASS 27 +#define PROP_INDEX_BATAK 28 +#define PROP_INDEX_BATK 28 +#define PROP_INDEX_BENGALI 29 +#define PROP_INDEX_BENG 29 +#define PROP_INDEX_BHAIKSUKI 30 +#define PROP_INDEX_BHKS 30 +#define PROP_INDEX_BIDICONTROL 31 +#define PROP_INDEX_BIDIC 31 +#define PROP_INDEX_BOPOMOFO 32 +#define PROP_INDEX_BOPO 32 +#define PROP_INDEX_BRAHMI 33 +#define PROP_INDEX_BRAH 33 +#define PROP_INDEX_BRAILLE 34 +#define PROP_INDEX_BRAI 34 +#define PROP_INDEX_BUGINESE 35 +#define PROP_INDEX_BUGI 35 +#define PROP_INDEX_BUHID 36 +#define PROP_INDEX_BUHD 36 +#define PROP_INDEX_C 37 +#define PROP_INDEX_OTHER 37 +#define PROP_INDEX_CANADIANABORIGINAL 38 +#define PROP_INDEX_CANS 38 +#define PROP_INDEX_CARIAN 39 +#define PROP_INDEX_CARI 39 +#define PROP_INDEX_CASEIGNORABLE 40 +#define PROP_INDEX_CI 40 +#define PROP_INDEX_CASED 41 +#define PROP_INDEX_CAUCASIANALBANIAN 42 +#define PROP_INDEX_AGHB 42 +#define PROP_INDEX_CC 43 +#define PROP_INDEX_CONTROL 43 +#define PROP_INDEX_CF 44 +#define PROP_INDEX_FORMAT 44 +#define PROP_INDEX_CHAKMA 45 +#define PROP_INDEX_CAKM 45 +#define PROP_INDEX_CHAM 46 +#define PROP_INDEX_CHANGESWHENCASEFOLDED 47 +#define PROP_INDEX_CWCF 47 +#define PROP_INDEX_CHANGESWHENCASEMAPPED 48 +#define PROP_INDEX_CWCM 48 +#define PROP_INDEX_CHANGESWHENLOWERCASED 49 +#define PROP_INDEX_CWL 49 +#define PROP_INDEX_CHANGESWHENTITLECASED 50 +#define PROP_INDEX_CWT 50 +#define PROP_INDEX_CHANGESWHENUPPERCASED 51 +#define PROP_INDEX_CWU 51 +#define PROP_INDEX_CHEROKEE 52 +#define PROP_INDEX_CHER 52 +#define PROP_INDEX_CHORASMIAN 53 +#define PROP_INDEX_CHRS 53 +#define PROP_INDEX_CN 54 +#define PROP_INDEX_UNASSIGNED 54 +#define PROP_INDEX_CO 55 +#define PROP_INDEX_PRIVATEUSE 55 +#define PROP_INDEX_COMMON 56 +#define PROP_INDEX_ZYYY 56 +#define PROP_INDEX_COPTIC 57 +#define PROP_INDEX_COPT 57 +#define PROP_INDEX_QAAC 57 +#define PROP_INDEX_CS 58 +#define PROP_INDEX_SURROGATE 58 +#define PROP_INDEX_CUNEIFORM 59 +#define PROP_INDEX_XSUX 59 +#define PROP_INDEX_CYPRIOT 60 +#define PROP_INDEX_CPRT 60 +#define PROP_INDEX_CYPROMINOAN 61 +#define PROP_INDEX_CPMN 61 +#define PROP_INDEX_CYRILLIC 62 +#define PROP_INDEX_CYRL 62 +#define PROP_INDEX_DASH 63 +#define PROP_INDEX_DEFAULTIGNORABLECODEPOINT 64 +#define PROP_INDEX_DI 64 +#define PROP_INDEX_DEPRECATED 65 +#define PROP_INDEX_DEP 65 +#define PROP_INDEX_DESERET 66 +#define PROP_INDEX_DSRT 66 +#define PROP_INDEX_DEVANAGARI 67 +#define PROP_INDEX_DEVA 67 +#define PROP_INDEX_DIACRITIC 68 +#define PROP_INDEX_DIA 68 +#define PROP_INDEX_DIVESAKURU 69 +#define PROP_INDEX_DIAK 69 +#define PROP_INDEX_DOGRA 70 +#define PROP_INDEX_DOGR 70 +#define PROP_INDEX_DUPLOYAN 71 +#define PROP_INDEX_DUPL 71 +#define PROP_INDEX_EGYPTIANHIEROGLYPHS 72 +#define PROP_INDEX_EGYP 72 +#define PROP_INDEX_ELBASAN 73 +#define PROP_INDEX_ELBA 73 +#define PROP_INDEX_ELYMAIC 74 +#define PROP_INDEX_ELYM 74 +#define PROP_INDEX_EMOJI 75 +#define PROP_INDEX_EMOJICOMPONENT 76 +#define PROP_INDEX_ECOMP 76 +#define PROP_INDEX_EMOJIMODIFIER 77 +#define PROP_INDEX_EMOD 77 +#define PROP_INDEX_EMOJIMODIFIERBASE 78 +#define PROP_INDEX_EBASE 78 +#define PROP_INDEX_EMOJIPRESENTATION 79 +#define PROP_INDEX_EPRES 79 +#define PROP_INDEX_ETHIOPIC 80 +#define PROP_INDEX_ETHI 80 +#define PROP_INDEX_EXTENDEDPICTOGRAPHIC 81 +#define PROP_INDEX_EXTPICT 81 +#define PROP_INDEX_EXTENDER 82 +#define PROP_INDEX_EXT 82 +#define PROP_INDEX_GARAY 83 +#define PROP_INDEX_GARA 83 +#define PROP_INDEX_GEORGIAN 84 +#define PROP_INDEX_GEOR 84 +#define PROP_INDEX_GLAGOLITIC 85 +#define PROP_INDEX_GLAG 85 +#define PROP_INDEX_GOTHIC 86 +#define PROP_INDEX_GOTH 86 +#define PROP_INDEX_GRANTHA 87 +#define PROP_INDEX_GRAN 87 +#define PROP_INDEX_GRAPHEMEBASE 88 +#define PROP_INDEX_GRBASE 88 +#define PROP_INDEX_GRAPHEMEEXTEND 89 +#define PROP_INDEX_GREXT 89 +#define PROP_INDEX_GRAPHEMELINK 90 +#define PROP_INDEX_GRLINK 90 +#define PROP_INDEX_GREEK 91 +#define PROP_INDEX_GREK 91 +#define PROP_INDEX_GUJARATI 92 +#define PROP_INDEX_GUJR 92 +#define PROP_INDEX_GUNJALAGONDI 93 +#define PROP_INDEX_GONG 93 +#define PROP_INDEX_GURMUKHI 94 +#define PROP_INDEX_GURU 94 +#define PROP_INDEX_GURUNGKHEMA 95 +#define PROP_INDEX_GUKH 95 +#define PROP_INDEX_HAN 96 +#define PROP_INDEX_HANI 96 +#define PROP_INDEX_HANGUL 97 +#define PROP_INDEX_HANG 97 +#define PROP_INDEX_HANIFIROHINGYA 98 +#define PROP_INDEX_ROHG 98 +#define PROP_INDEX_HANUNOO 99 +#define PROP_INDEX_HANO 99 +#define PROP_INDEX_HATRAN 100 +#define PROP_INDEX_HATR 100 +#define PROP_INDEX_HEBREW 101 +#define PROP_INDEX_HEBR 101 +#define PROP_INDEX_HEXDIGIT 102 +#define PROP_INDEX_HEX 102 +#define PROP_INDEX_HIRAGANA 103 +#define PROP_INDEX_HIRA 103 +#define PROP_INDEX_HYPHEN 104 +#define PROP_INDEX_IDSBINARYOPERATOR 105 +#define PROP_INDEX_IDSB 105 +#define PROP_INDEX_IDSTRINARYOPERATOR 106 +#define PROP_INDEX_IDST 106 +#define PROP_INDEX_IDSUNARYOPERATOR 107 +#define PROP_INDEX_IDSU 107 +#define PROP_INDEX_IDCOMPATMATHCONTINUE 108 +#define PROP_INDEX_IDCOMPATMATHSTART 109 +#define PROP_INDEX_IDCONTINUE 110 +#define PROP_INDEX_IDC 110 +#define PROP_INDEX_IDSTART 111 +#define PROP_INDEX_IDS 111 +#define PROP_INDEX_IDEOGRAPHIC 112 +#define PROP_INDEX_IDEO 112 +#define PROP_INDEX_IMPERIALARAMAIC 113 +#define PROP_INDEX_ARMI 113 +#define PROP_INDEX_INCB 114 +#define PROP_INDEX_INHERITED 115 +#define PROP_INDEX_QAAI 115 +#define PROP_INDEX_ZINH 115 +#define PROP_INDEX_INSCRIPTIONALPAHLAVI 116 +#define PROP_INDEX_PHLI 116 +#define PROP_INDEX_INSCRIPTIONALPARTHIAN 117 +#define PROP_INDEX_PRTI 117 +#define PROP_INDEX_JAVANESE 118 +#define PROP_INDEX_JAVA 118 +#define PROP_INDEX_JOINCONTROL 119 +#define PROP_INDEX_JOINC 119 +#define PROP_INDEX_KAITHI 120 +#define PROP_INDEX_KTHI 120 +#define PROP_INDEX_KANNADA 121 +#define PROP_INDEX_KNDA 121 +#define PROP_INDEX_KATAKANA 122 +#define PROP_INDEX_KANA 122 +#define PROP_INDEX_KAWI 123 +#define PROP_INDEX_KAYAHLI 124 +#define PROP_INDEX_KALI 124 +#define PROP_INDEX_KHAROSHTHI 125 +#define PROP_INDEX_KHAR 125 +#define PROP_INDEX_KHITANSMALLSCRIPT 126 +#define PROP_INDEX_KITS 126 +#define PROP_INDEX_KHMER 127 +#define PROP_INDEX_KHMR 127 +#define PROP_INDEX_KHOJKI 128 +#define PROP_INDEX_KHOJ 128 +#define PROP_INDEX_KHUDAWADI 129 +#define PROP_INDEX_SIND 129 +#define PROP_INDEX_KIRATRAI 130 +#define PROP_INDEX_KRAI 130 +#define PROP_INDEX_L 131 +#define PROP_INDEX_LETTER 131 +#define PROP_INDEX_LC 132 +#define PROP_INDEX_CASEDLETTER 132 +#define PROP_INDEX_LAO 133 +#define PROP_INDEX_LAOO 133 +#define PROP_INDEX_LATIN 134 +#define PROP_INDEX_LATN 134 +#define PROP_INDEX_LEPCHA 135 +#define PROP_INDEX_LEPC 135 +#define PROP_INDEX_LIMBU 136 +#define PROP_INDEX_LIMB 136 +#define PROP_INDEX_LINEARA 137 +#define PROP_INDEX_LINA 137 +#define PROP_INDEX_LINEARB 138 +#define PROP_INDEX_LINB 138 +#define PROP_INDEX_LISU 139 +#define PROP_INDEX_LL 140 +#define PROP_INDEX_LOWERCASELETTER 140 +#define PROP_INDEX_LM 141 +#define PROP_INDEX_MODIFIERLETTER 141 +#define PROP_INDEX_LO 142 +#define PROP_INDEX_OTHERLETTER 142 +#define PROP_INDEX_LOGICALORDEREXCEPTION 143 +#define PROP_INDEX_LOE 143 +#define PROP_INDEX_LOWERCASE 144 +#define PROP_INDEX_LT 145 +#define PROP_INDEX_TITLECASELETTER 145 +#define PROP_INDEX_LU 146 +#define PROP_INDEX_UPPERCASELETTER 146 +#define PROP_INDEX_LYCIAN 147 +#define PROP_INDEX_LYCI 147 +#define PROP_INDEX_LYDIAN 148 +#define PROP_INDEX_LYDI 148 +#define PROP_INDEX_M 149 +#define PROP_INDEX_COMBININGMARK 149 +#define PROP_INDEX_MARK 149 +#define PROP_INDEX_MAHAJANI 150 +#define PROP_INDEX_MAHJ 150 +#define PROP_INDEX_MAKASAR 151 +#define PROP_INDEX_MAKA 151 +#define PROP_INDEX_MALAYALAM 152 +#define PROP_INDEX_MLYM 152 +#define PROP_INDEX_MANDAIC 153 +#define PROP_INDEX_MAND 153 +#define PROP_INDEX_MANICHAEAN 154 +#define PROP_INDEX_MANI 154 +#define PROP_INDEX_MARCHEN 155 +#define PROP_INDEX_MARC 155 +#define PROP_INDEX_MASARAMGONDI 156 +#define PROP_INDEX_GONM 156 +#define PROP_INDEX_MATH 157 +#define PROP_INDEX_MC 158 +#define PROP_INDEX_SPACINGMARK 158 +#define PROP_INDEX_ME 159 +#define PROP_INDEX_ENCLOSINGMARK 159 +#define PROP_INDEX_MEDEFAIDRIN 160 +#define PROP_INDEX_MEDF 160 +#define PROP_INDEX_MEETEIMAYEK 161 +#define PROP_INDEX_MTEI 161 +#define PROP_INDEX_MENDEKIKAKUI 162 +#define PROP_INDEX_MEND 162 +#define PROP_INDEX_MEROITICCURSIVE 163 +#define PROP_INDEX_MERC 163 +#define PROP_INDEX_MEROITICHIEROGLYPHS 164 +#define PROP_INDEX_MERO 164 +#define PROP_INDEX_MIAO 165 +#define PROP_INDEX_PLRD 165 +#define PROP_INDEX_MN 166 +#define PROP_INDEX_NONSPACINGMARK 166 +#define PROP_INDEX_MODI 167 +#define PROP_INDEX_MODIFIERCOMBININGMARK 168 +#define PROP_INDEX_MCM 168 +#define PROP_INDEX_MONGOLIAN 169 +#define PROP_INDEX_MONG 169 +#define PROP_INDEX_MRO 170 +#define PROP_INDEX_MROO 170 +#define PROP_INDEX_MULTANI 171 +#define PROP_INDEX_MULT 171 +#define PROP_INDEX_MYANMAR 172 +#define PROP_INDEX_MYMR 172 +#define PROP_INDEX_N 173 +#define PROP_INDEX_NUMBER 173 +#define PROP_INDEX_NABATAEAN 174 +#define PROP_INDEX_NBAT 174 +#define PROP_INDEX_NAGMUNDARI 175 +#define PROP_INDEX_NAGM 175 +#define PROP_INDEX_NANDINAGARI 176 +#define PROP_INDEX_NAND 176 +#define PROP_INDEX_ND 177 +#define PROP_INDEX_DECIMALNUMBER 177 +#define PROP_INDEX_NEWTAILUE 178 +#define PROP_INDEX_TALU 178 +#define PROP_INDEX_NEWA 179 +#define PROP_INDEX_NKO 180 +#define PROP_INDEX_NKOO 180 +#define PROP_INDEX_NL 181 +#define PROP_INDEX_LETTERNUMBER 181 +#define PROP_INDEX_NO 182 +#define PROP_INDEX_OTHERNUMBER 182 +#define PROP_INDEX_NONCHARACTERCODEPOINT 183 +#define PROP_INDEX_NCHAR 183 +#define PROP_INDEX_NUSHU 184 +#define PROP_INDEX_NSHU 184 +#define PROP_INDEX_NYIAKENGPUACHUEHMONG 185 +#define PROP_INDEX_HMNP 185 +#define PROP_INDEX_OGHAM 186 +#define PROP_INDEX_OGAM 186 +#define PROP_INDEX_OLCHIKI 187 +#define PROP_INDEX_OLCK 187 +#define PROP_INDEX_OLONAL 188 +#define PROP_INDEX_ONAO 188 +#define PROP_INDEX_OLDHUNGARIAN 189 +#define PROP_INDEX_HUNG 189 +#define PROP_INDEX_OLDITALIC 190 +#define PROP_INDEX_ITAL 190 +#define PROP_INDEX_OLDNORTHARABIAN 191 +#define PROP_INDEX_NARB 191 +#define PROP_INDEX_OLDPERMIC 192 +#define PROP_INDEX_PERM 192 +#define PROP_INDEX_OLDPERSIAN 193 +#define PROP_INDEX_XPEO 193 +#define PROP_INDEX_OLDSOGDIAN 194 +#define PROP_INDEX_SOGO 194 +#define PROP_INDEX_OLDSOUTHARABIAN 195 +#define PROP_INDEX_SARB 195 +#define PROP_INDEX_OLDTURKIC 196 +#define PROP_INDEX_ORKH 196 +#define PROP_INDEX_OLDUYGHUR 197 +#define PROP_INDEX_OUGR 197 +#define PROP_INDEX_ORIYA 198 +#define PROP_INDEX_ORYA 198 +#define PROP_INDEX_OSAGE 199 +#define PROP_INDEX_OSGE 199 +#define PROP_INDEX_OSMANYA 200 +#define PROP_INDEX_OSMA 200 +#define PROP_INDEX_OTHERALPHABETIC 201 +#define PROP_INDEX_OALPHA 201 +#define PROP_INDEX_OTHERDEFAULTIGNORABLECODEPOINT 202 +#define PROP_INDEX_ODI 202 +#define PROP_INDEX_OTHERGRAPHEMEEXTEND 203 +#define PROP_INDEX_OGREXT 203 +#define PROP_INDEX_OTHERIDCONTINUE 204 +#define PROP_INDEX_OIDC 204 +#define PROP_INDEX_OTHERIDSTART 205 +#define PROP_INDEX_OIDS 205 +#define PROP_INDEX_OTHERLOWERCASE 206 +#define PROP_INDEX_OLOWER 206 +#define PROP_INDEX_OTHERMATH 207 +#define PROP_INDEX_OMATH 207 +#define PROP_INDEX_OTHERUPPERCASE 208 +#define PROP_INDEX_OUPPER 208 +#define PROP_INDEX_P 209 +#define PROP_INDEX_PUNCT 209 +#define PROP_INDEX_PUNCTUATION 209 +#define PROP_INDEX_PAHAWHHMONG 210 +#define PROP_INDEX_HMNG 210 +#define PROP_INDEX_PALMYRENE 211 +#define PROP_INDEX_PALM 211 +#define PROP_INDEX_PATTERNSYNTAX 212 +#define PROP_INDEX_PATSYN 212 +#define PROP_INDEX_PATTERNWHITESPACE 213 +#define PROP_INDEX_PATWS 213 +#define PROP_INDEX_PAUCINHAU 214 +#define PROP_INDEX_PAUC 214 +#define PROP_INDEX_PC 215 +#define PROP_INDEX_CONNECTORPUNCTUATION 215 +#define PROP_INDEX_PD 216 +#define PROP_INDEX_DASHPUNCTUATION 216 +#define PROP_INDEX_PE 217 +#define PROP_INDEX_CLOSEPUNCTUATION 217 +#define PROP_INDEX_PF 218 +#define PROP_INDEX_FINALPUNCTUATION 218 +#define PROP_INDEX_PHAGSPA 219 +#define PROP_INDEX_PHAG 219 +#define PROP_INDEX_PHOENICIAN 220 +#define PROP_INDEX_PHNX 220 +#define PROP_INDEX_PI 221 +#define PROP_INDEX_INITIALPUNCTUATION 221 +#define PROP_INDEX_PO 222 +#define PROP_INDEX_OTHERPUNCTUATION 222 +#define PROP_INDEX_PREPENDEDCONCATENATIONMARK 223 +#define PROP_INDEX_PCM 223 +#define PROP_INDEX_PS 224 +#define PROP_INDEX_OPENPUNCTUATION 224 +#define PROP_INDEX_PSALTERPAHLAVI 225 +#define PROP_INDEX_PHLP 225 +#define PROP_INDEX_QUOTATIONMARK 226 +#define PROP_INDEX_QMARK 226 +#define PROP_INDEX_RADICAL 227 +#define PROP_INDEX_REGIONALINDICATOR 228 +#define PROP_INDEX_RI 228 +#define PROP_INDEX_REJANG 229 +#define PROP_INDEX_RJNG 229 +#define PROP_INDEX_RUNIC 230 +#define PROP_INDEX_RUNR 230 +#define PROP_INDEX_S 231 +#define PROP_INDEX_SYMBOL 231 +#define PROP_INDEX_SAMARITAN 232 +#define PROP_INDEX_SAMR 232 +#define PROP_INDEX_SAURASHTRA 233 +#define PROP_INDEX_SAUR 233 +#define PROP_INDEX_SC 234 +#define PROP_INDEX_CURRENCYSYMBOL 234 +#define PROP_INDEX_SENTENCETERMINAL 235 +#define PROP_INDEX_STERM 235 +#define PROP_INDEX_SHARADA 236 +#define PROP_INDEX_SHRD 236 +#define PROP_INDEX_SHAVIAN 237 +#define PROP_INDEX_SHAW 237 +#define PROP_INDEX_SIDDHAM 238 +#define PROP_INDEX_SIDD 238 +#define PROP_INDEX_SIGNWRITING 239 +#define PROP_INDEX_SGNW 239 +#define PROP_INDEX_SINHALA 240 +#define PROP_INDEX_SINH 240 +#define PROP_INDEX_SK 241 +#define PROP_INDEX_MODIFIERSYMBOL 241 +#define PROP_INDEX_SM 242 +#define PROP_INDEX_MATHSYMBOL 242 +#define PROP_INDEX_SO 243 +#define PROP_INDEX_OTHERSYMBOL 243 +#define PROP_INDEX_SOFTDOTTED 244 +#define PROP_INDEX_SD 244 +#define PROP_INDEX_SOGDIAN 245 +#define PROP_INDEX_SOGD 245 +#define PROP_INDEX_SORASOMPENG 246 +#define PROP_INDEX_SORA 246 +#define PROP_INDEX_SOYOMBO 247 +#define PROP_INDEX_SOYO 247 +#define PROP_INDEX_SUNDANESE 248 +#define PROP_INDEX_SUND 248 +#define PROP_INDEX_SUNUWAR 249 +#define PROP_INDEX_SUNU 249 +#define PROP_INDEX_SYLOTINAGRI 250 +#define PROP_INDEX_SYLO 250 +#define PROP_INDEX_SYRIAC 251 +#define PROP_INDEX_SYRC 251 +#define PROP_INDEX_TAGALOG 252 +#define PROP_INDEX_TGLG 252 +#define PROP_INDEX_TAGBANWA 253 +#define PROP_INDEX_TAGB 253 +#define PROP_INDEX_TAILE 254 +#define PROP_INDEX_TALE 254 +#define PROP_INDEX_TAITHAM 255 +#define PROP_INDEX_LANA 255 +#define PROP_INDEX_TAIVIET 256 +#define PROP_INDEX_TAVT 256 +#define PROP_INDEX_TAKRI 257 +#define PROP_INDEX_TAKR 257 +#define PROP_INDEX_TAMIL 258 +#define PROP_INDEX_TAML 258 +#define PROP_INDEX_TANGSA 259 +#define PROP_INDEX_TNSA 259 +#define PROP_INDEX_TANGUT 260 +#define PROP_INDEX_TANG 260 +#define PROP_INDEX_TELUGU 261 +#define PROP_INDEX_TELU 261 +#define PROP_INDEX_TERMINALPUNCTUATION 262 +#define PROP_INDEX_TERM 262 +#define PROP_INDEX_THAANA 263 +#define PROP_INDEX_THAA 263 +#define PROP_INDEX_THAI 264 +#define PROP_INDEX_TIBETAN 265 +#define PROP_INDEX_TIBT 265 +#define PROP_INDEX_TIFINAGH 266 +#define PROP_INDEX_TFNG 266 +#define PROP_INDEX_TIRHUTA 267 +#define PROP_INDEX_TIRH 267 +#define PROP_INDEX_TODHRI 268 +#define PROP_INDEX_TODR 268 +#define PROP_INDEX_TOTO 269 +#define PROP_INDEX_TULUTIGALARI 270 +#define PROP_INDEX_TUTG 270 +#define PROP_INDEX_UGARITIC 271 +#define PROP_INDEX_UGAR 271 +#define PROP_INDEX_UNIFIEDIDEOGRAPH 272 +#define PROP_INDEX_UIDEO 272 +#define PROP_INDEX_UNKNOWN 273 +#define PROP_INDEX_ZZZZ 273 +#define PROP_INDEX_UPPERCASE 274 +#define PROP_INDEX_VAI 275 +#define PROP_INDEX_VAII 275 +#define PROP_INDEX_VARIATIONSELECTOR 276 +#define PROP_INDEX_VS 276 +#define PROP_INDEX_VITHKUQI 277 +#define PROP_INDEX_VITH 277 +#define PROP_INDEX_WANCHO 278 +#define PROP_INDEX_WCHO 278 +#define PROP_INDEX_WARANGCITI 279 +#define PROP_INDEX_WARA 279 +#define PROP_INDEX_WHITESPACE 280 +#define PROP_INDEX_WSPACE 280 +#define PROP_INDEX_XIDCONTINUE 281 +#define PROP_INDEX_XIDC 281 +#define PROP_INDEX_XIDSTART 282 +#define PROP_INDEX_XIDS 282 +#define PROP_INDEX_YEZIDI 283 +#define PROP_INDEX_YEZI 283 +#define PROP_INDEX_YI 284 +#define PROP_INDEX_YIII 284 +#define PROP_INDEX_Z 285 +#define PROP_INDEX_SEPARATOR 285 +#define PROP_INDEX_ZANABAZARSQUARE 286 +#define PROP_INDEX_ZANB 286 +#define PROP_INDEX_ZL 287 +#define PROP_INDEX_LINESEPARATOR 287 +#define PROP_INDEX_ZP 288 +#define PROP_INDEX_PARAGRAPHSEPARATOR 288 +#define PROP_INDEX_ZS 289 +#define PROP_INDEX_SPACESEPARATOR 289 +#define PROP_INDEX_INBASICLATIN 290 +#define PROP_INDEX_INLATIN1SUPPLEMENT 291 +#define PROP_INDEX_INLATINEXTENDEDA 292 +#define PROP_INDEX_INLATINEXTENDEDB 293 +#define PROP_INDEX_INIPAEXTENSIONS 294 +#define PROP_INDEX_INSPACINGMODIFIERLETTERS 295 +#define PROP_INDEX_INCOMBININGDIACRITICALMARKS 296 +#define PROP_INDEX_INGREEKANDCOPTIC 297 +#define PROP_INDEX_INCYRILLIC 298 +#define PROP_INDEX_INCYRILLICSUPPLEMENT 299 +#define PROP_INDEX_INARMENIAN 300 +#define PROP_INDEX_INHEBREW 301 +#define PROP_INDEX_INARABIC 302 +#define PROP_INDEX_INSYRIAC 303 +#define PROP_INDEX_INARABICSUPPLEMENT 304 +#define PROP_INDEX_INTHAANA 305 +#define PROP_INDEX_INNKO 306 +#define PROP_INDEX_INSAMARITAN 307 +#define PROP_INDEX_INMANDAIC 308 +#define PROP_INDEX_INSYRIACSUPPLEMENT 309 +#define PROP_INDEX_INARABICEXTENDEDB 310 +#define PROP_INDEX_INARABICEXTENDEDA 311 +#define PROP_INDEX_INDEVANAGARI 312 +#define PROP_INDEX_INBENGALI 313 +#define PROP_INDEX_INGURMUKHI 314 +#define PROP_INDEX_INGUJARATI 315 +#define PROP_INDEX_INORIYA 316 +#define PROP_INDEX_INTAMIL 317 +#define PROP_INDEX_INTELUGU 318 +#define PROP_INDEX_INKANNADA 319 +#define PROP_INDEX_INMALAYALAM 320 +#define PROP_INDEX_INSINHALA 321 +#define PROP_INDEX_INTHAI 322 +#define PROP_INDEX_INLAO 323 +#define PROP_INDEX_INTIBETAN 324 +#define PROP_INDEX_INMYANMAR 325 +#define PROP_INDEX_INGEORGIAN 326 +#define PROP_INDEX_INHANGULJAMO 327 +#define PROP_INDEX_INETHIOPIC 328 +#define PROP_INDEX_INETHIOPICSUPPLEMENT 329 +#define PROP_INDEX_INCHEROKEE 330 +#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICS 331 +#define PROP_INDEX_INOGHAM 332 +#define PROP_INDEX_INRUNIC 333 +#define PROP_INDEX_INTAGALOG 334 +#define PROP_INDEX_INHANUNOO 335 +#define PROP_INDEX_INBUHID 336 +#define PROP_INDEX_INTAGBANWA 337 +#define PROP_INDEX_INKHMER 338 +#define PROP_INDEX_INMONGOLIAN 339 +#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED 340 +#define PROP_INDEX_INLIMBU 341 +#define PROP_INDEX_INTAILE 342 +#define PROP_INDEX_INNEWTAILUE 343 +#define PROP_INDEX_INKHMERSYMBOLS 344 +#define PROP_INDEX_INBUGINESE 345 +#define PROP_INDEX_INTAITHAM 346 +#define PROP_INDEX_INCOMBININGDIACRITICALMARKSEXTENDED 347 +#define PROP_INDEX_INBALINESE 348 +#define PROP_INDEX_INSUNDANESE 349 +#define PROP_INDEX_INBATAK 350 +#define PROP_INDEX_INLEPCHA 351 +#define PROP_INDEX_INOLCHIKI 352 +#define PROP_INDEX_INCYRILLICEXTENDEDC 353 +#define PROP_INDEX_INGEORGIANEXTENDED 354 +#define PROP_INDEX_INSUNDANESESUPPLEMENT 355 +#define PROP_INDEX_INVEDICEXTENSIONS 356 +#define PROP_INDEX_INPHONETICEXTENSIONS 357 +#define PROP_INDEX_INPHONETICEXTENSIONSSUPPLEMENT 358 +#define PROP_INDEX_INCOMBININGDIACRITICALMARKSSUPPLEMENT 359 +#define PROP_INDEX_INLATINEXTENDEDADDITIONAL 360 +#define PROP_INDEX_INGREEKEXTENDED 361 +#define PROP_INDEX_INGENERALPUNCTUATION 362 +#define PROP_INDEX_INSUPERSCRIPTSANDSUBSCRIPTS 363 +#define PROP_INDEX_INCURRENCYSYMBOLS 364 +#define PROP_INDEX_INCOMBININGDIACRITICALMARKSFORSYMBOLS 365 +#define PROP_INDEX_INLETTERLIKESYMBOLS 366 +#define PROP_INDEX_INNUMBERFORMS 367 +#define PROP_INDEX_INARROWS 368 +#define PROP_INDEX_INMATHEMATICALOPERATORS 369 +#define PROP_INDEX_INMISCELLANEOUSTECHNICAL 370 +#define PROP_INDEX_INCONTROLPICTURES 371 +#define PROP_INDEX_INOPTICALCHARACTERRECOGNITION 372 +#define PROP_INDEX_INENCLOSEDALPHANUMERICS 373 +#define PROP_INDEX_INBOXDRAWING 374 +#define PROP_INDEX_INBLOCKELEMENTS 375 +#define PROP_INDEX_INGEOMETRICSHAPES 376 +#define PROP_INDEX_INMISCELLANEOUSSYMBOLS 377 +#define PROP_INDEX_INDINGBATS 378 +#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSA 379 +#define PROP_INDEX_INSUPPLEMENTALARROWSA 380 +#define PROP_INDEX_INBRAILLEPATTERNS 381 +#define PROP_INDEX_INSUPPLEMENTALARROWSB 382 +#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSB 383 +#define PROP_INDEX_INSUPPLEMENTALMATHEMATICALOPERATORS 384 +#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDARROWS 385 +#define PROP_INDEX_INGLAGOLITIC 386 +#define PROP_INDEX_INLATINEXTENDEDC 387 +#define PROP_INDEX_INCOPTIC 388 +#define PROP_INDEX_INGEORGIANSUPPLEMENT 389 +#define PROP_INDEX_INTIFINAGH 390 +#define PROP_INDEX_INETHIOPICEXTENDED 391 +#define PROP_INDEX_INCYRILLICEXTENDEDA 392 +#define PROP_INDEX_INSUPPLEMENTALPUNCTUATION 393 +#define PROP_INDEX_INCJKRADICALSSUPPLEMENT 394 +#define PROP_INDEX_INKANGXIRADICALS 395 +#define PROP_INDEX_INIDEOGRAPHICDESCRIPTIONCHARACTERS 396 +#define PROP_INDEX_INCJKSYMBOLSANDPUNCTUATION 397 +#define PROP_INDEX_INHIRAGANA 398 +#define PROP_INDEX_INKATAKANA 399 +#define PROP_INDEX_INBOPOMOFO 400 +#define PROP_INDEX_INHANGULCOMPATIBILITYJAMO 401 +#define PROP_INDEX_INKANBUN 402 +#define PROP_INDEX_INBOPOMOFOEXTENDED 403 +#define PROP_INDEX_INCJKSTROKES 404 +#define PROP_INDEX_INKATAKANAPHONETICEXTENSIONS 405 +#define PROP_INDEX_INENCLOSEDCJKLETTERSANDMONTHS 406 +#define PROP_INDEX_INCJKCOMPATIBILITY 407 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONA 408 +#define PROP_INDEX_INYIJINGHEXAGRAMSYMBOLS 409 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHS 410 +#define PROP_INDEX_INYISYLLABLES 411 +#define PROP_INDEX_INYIRADICALS 412 +#define PROP_INDEX_INLISU 413 +#define PROP_INDEX_INVAI 414 +#define PROP_INDEX_INCYRILLICEXTENDEDB 415 +#define PROP_INDEX_INBAMUM 416 +#define PROP_INDEX_INMODIFIERTONELETTERS 417 +#define PROP_INDEX_INLATINEXTENDEDD 418 +#define PROP_INDEX_INSYLOTINAGRI 419 +#define PROP_INDEX_INCOMMONINDICNUMBERFORMS 420 +#define PROP_INDEX_INPHAGSPA 421 +#define PROP_INDEX_INSAURASHTRA 422 +#define PROP_INDEX_INDEVANAGARIEXTENDED 423 +#define PROP_INDEX_INKAYAHLI 424 +#define PROP_INDEX_INREJANG 425 +#define PROP_INDEX_INHANGULJAMOEXTENDEDA 426 +#define PROP_INDEX_INJAVANESE 427 +#define PROP_INDEX_INMYANMAREXTENDEDB 428 +#define PROP_INDEX_INCHAM 429 +#define PROP_INDEX_INMYANMAREXTENDEDA 430 +#define PROP_INDEX_INTAIVIET 431 +#define PROP_INDEX_INMEETEIMAYEKEXTENSIONS 432 +#define PROP_INDEX_INETHIOPICEXTENDEDA 433 +#define PROP_INDEX_INLATINEXTENDEDE 434 +#define PROP_INDEX_INCHEROKEESUPPLEMENT 435 +#define PROP_INDEX_INMEETEIMAYEK 436 +#define PROP_INDEX_INHANGULSYLLABLES 437 +#define PROP_INDEX_INHANGULJAMOEXTENDEDB 438 +#define PROP_INDEX_INHIGHSURROGATES 439 +#define PROP_INDEX_INHIGHPRIVATEUSESURROGATES 440 +#define PROP_INDEX_INLOWSURROGATES 441 +#define PROP_INDEX_INPRIVATEUSEAREA 442 +#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHS 443 +#define PROP_INDEX_INALPHABETICPRESENTATIONFORMS 444 +#define PROP_INDEX_INARABICPRESENTATIONFORMSA 445 +#define PROP_INDEX_INVARIATIONSELECTORS 446 +#define PROP_INDEX_INVERTICALFORMS 447 +#define PROP_INDEX_INCOMBININGHALFMARKS 448 +#define PROP_INDEX_INCJKCOMPATIBILITYFORMS 449 +#define PROP_INDEX_INSMALLFORMVARIANTS 450 +#define PROP_INDEX_INARABICPRESENTATIONFORMSB 451 +#define PROP_INDEX_INHALFWIDTHANDFULLWIDTHFORMS 452 +#define PROP_INDEX_INSPECIALS 453 +#define PROP_INDEX_INLINEARBSYLLABARY 454 +#define PROP_INDEX_INLINEARBIDEOGRAMS 455 +#define PROP_INDEX_INAEGEANNUMBERS 456 +#define PROP_INDEX_INANCIENTGREEKNUMBERS 457 +#define PROP_INDEX_INANCIENTSYMBOLS 458 +#define PROP_INDEX_INPHAISTOSDISC 459 +#define PROP_INDEX_INLYCIAN 460 +#define PROP_INDEX_INCARIAN 461 +#define PROP_INDEX_INCOPTICEPACTNUMBERS 462 +#define PROP_INDEX_INOLDITALIC 463 +#define PROP_INDEX_INGOTHIC 464 +#define PROP_INDEX_INOLDPERMIC 465 +#define PROP_INDEX_INUGARITIC 466 +#define PROP_INDEX_INOLDPERSIAN 467 +#define PROP_INDEX_INDESERET 468 +#define PROP_INDEX_INSHAVIAN 469 +#define PROP_INDEX_INOSMANYA 470 +#define PROP_INDEX_INOSAGE 471 +#define PROP_INDEX_INELBASAN 472 +#define PROP_INDEX_INCAUCASIANALBANIAN 473 +#define PROP_INDEX_INVITHKUQI 474 +#define PROP_INDEX_INTODHRI 475 +#define PROP_INDEX_INLINEARA 476 +#define PROP_INDEX_INLATINEXTENDEDF 477 +#define PROP_INDEX_INCYPRIOTSYLLABARY 478 +#define PROP_INDEX_INIMPERIALARAMAIC 479 +#define PROP_INDEX_INPALMYRENE 480 +#define PROP_INDEX_INNABATAEAN 481 +#define PROP_INDEX_INHATRAN 482 +#define PROP_INDEX_INPHOENICIAN 483 +#define PROP_INDEX_INLYDIAN 484 +#define PROP_INDEX_INMEROITICHIEROGLYPHS 485 +#define PROP_INDEX_INMEROITICCURSIVE 486 +#define PROP_INDEX_INKHAROSHTHI 487 +#define PROP_INDEX_INOLDSOUTHARABIAN 488 +#define PROP_INDEX_INOLDNORTHARABIAN 489 +#define PROP_INDEX_INMANICHAEAN 490 +#define PROP_INDEX_INAVESTAN 491 +#define PROP_INDEX_ININSCRIPTIONALPARTHIAN 492 +#define PROP_INDEX_ININSCRIPTIONALPAHLAVI 493 +#define PROP_INDEX_INPSALTERPAHLAVI 494 +#define PROP_INDEX_INOLDTURKIC 495 +#define PROP_INDEX_INOLDHUNGARIAN 496 +#define PROP_INDEX_INHANIFIROHINGYA 497 +#define PROP_INDEX_INGARAY 498 +#define PROP_INDEX_INRUMINUMERALSYMBOLS 499 +#define PROP_INDEX_INYEZIDI 500 +#define PROP_INDEX_INARABICEXTENDEDC 501 +#define PROP_INDEX_INOLDSOGDIAN 502 +#define PROP_INDEX_INSOGDIAN 503 +#define PROP_INDEX_INOLDUYGHUR 504 +#define PROP_INDEX_INCHORASMIAN 505 +#define PROP_INDEX_INELYMAIC 506 +#define PROP_INDEX_INBRAHMI 507 +#define PROP_INDEX_INKAITHI 508 +#define PROP_INDEX_INSORASOMPENG 509 +#define PROP_INDEX_INCHAKMA 510 +#define PROP_INDEX_INMAHAJANI 511 +#define PROP_INDEX_INSHARADA 512 +#define PROP_INDEX_INSINHALAARCHAICNUMBERS 513 +#define PROP_INDEX_INKHOJKI 514 +#define PROP_INDEX_INMULTANI 515 +#define PROP_INDEX_INKHUDAWADI 516 +#define PROP_INDEX_INGRANTHA 517 +#define PROP_INDEX_INTULUTIGALARI 518 +#define PROP_INDEX_INNEWA 519 +#define PROP_INDEX_INTIRHUTA 520 +#define PROP_INDEX_INSIDDHAM 521 +#define PROP_INDEX_INMODI 522 +#define PROP_INDEX_INMONGOLIANSUPPLEMENT 523 +#define PROP_INDEX_INTAKRI 524 +#define PROP_INDEX_INMYANMAREXTENDEDC 525 +#define PROP_INDEX_INAHOM 526 +#define PROP_INDEX_INDOGRA 527 +#define PROP_INDEX_INWARANGCITI 528 +#define PROP_INDEX_INDIVESAKURU 529 +#define PROP_INDEX_INNANDINAGARI 530 +#define PROP_INDEX_INZANABAZARSQUARE 531 +#define PROP_INDEX_INSOYOMBO 532 +#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDEDA 533 +#define PROP_INDEX_INPAUCINHAU 534 +#define PROP_INDEX_INDEVANAGARIEXTENDEDA 535 +#define PROP_INDEX_INSUNUWAR 536 +#define PROP_INDEX_INBHAIKSUKI 537 +#define PROP_INDEX_INMARCHEN 538 +#define PROP_INDEX_INMASARAMGONDI 539 +#define PROP_INDEX_INGUNJALAGONDI 540 +#define PROP_INDEX_INMAKASAR 541 +#define PROP_INDEX_INKAWI 542 +#define PROP_INDEX_INLISUSUPPLEMENT 543 +#define PROP_INDEX_INTAMILSUPPLEMENT 544 +#define PROP_INDEX_INCUNEIFORM 545 +#define PROP_INDEX_INCUNEIFORMNUMBERSANDPUNCTUATION 546 +#define PROP_INDEX_INEARLYDYNASTICCUNEIFORM 547 +#define PROP_INDEX_INCYPROMINOAN 548 +#define PROP_INDEX_INEGYPTIANHIEROGLYPHS 549 +#define PROP_INDEX_INEGYPTIANHIEROGLYPHFORMATCONTROLS 550 +#define PROP_INDEX_INEGYPTIANHIEROGLYPHSEXTENDEDA 551 +#define PROP_INDEX_INANATOLIANHIEROGLYPHS 552 +#define PROP_INDEX_INGURUNGKHEMA 553 +#define PROP_INDEX_INBAMUMSUPPLEMENT 554 +#define PROP_INDEX_INMRO 555 +#define PROP_INDEX_INTANGSA 556 +#define PROP_INDEX_INBASSAVAH 557 +#define PROP_INDEX_INPAHAWHHMONG 558 +#define PROP_INDEX_INKIRATRAI 559 +#define PROP_INDEX_INMEDEFAIDRIN 560 +#define PROP_INDEX_INMIAO 561 +#define PROP_INDEX_INIDEOGRAPHICSYMBOLSANDPUNCTUATION 562 +#define PROP_INDEX_INTANGUT 563 +#define PROP_INDEX_INTANGUTCOMPONENTS 564 +#define PROP_INDEX_INKHITANSMALLSCRIPT 565 +#define PROP_INDEX_INTANGUTSUPPLEMENT 566 +#define PROP_INDEX_INKANAEXTENDEDB 567 +#define PROP_INDEX_INKANASUPPLEMENT 568 +#define PROP_INDEX_INKANAEXTENDEDA 569 +#define PROP_INDEX_INSMALLKANAEXTENSION 570 +#define PROP_INDEX_INNUSHU 571 +#define PROP_INDEX_INDUPLOYAN 572 +#define PROP_INDEX_INSHORTHANDFORMATCONTROLS 573 +#define PROP_INDEX_INSYMBOLSFORLEGACYCOMPUTINGSUPPLEMENT 574 +#define PROP_INDEX_INZNAMENNYMUSICALNOTATION 575 +#define PROP_INDEX_INBYZANTINEMUSICALSYMBOLS 576 +#define PROP_INDEX_INMUSICALSYMBOLS 577 +#define PROP_INDEX_INANCIENTGREEKMUSICALNOTATION 578 +#define PROP_INDEX_INKAKTOVIKNUMERALS 579 +#define PROP_INDEX_INMAYANNUMERALS 580 +#define PROP_INDEX_INTAIXUANJINGSYMBOLS 581 +#define PROP_INDEX_INCOUNTINGRODNUMERALS 582 +#define PROP_INDEX_INMATHEMATICALALPHANUMERICSYMBOLS 583 +#define PROP_INDEX_INSUTTONSIGNWRITING 584 +#define PROP_INDEX_INLATINEXTENDEDG 585 +#define PROP_INDEX_INGLAGOLITICSUPPLEMENT 586 +#define PROP_INDEX_INCYRILLICEXTENDEDD 587 +#define PROP_INDEX_INNYIAKENGPUACHUEHMONG 588 +#define PROP_INDEX_INTOTO 589 +#define PROP_INDEX_INWANCHO 590 +#define PROP_INDEX_INNAGMUNDARI 591 +#define PROP_INDEX_INOLONAL 592 +#define PROP_INDEX_INETHIOPICEXTENDEDB 593 +#define PROP_INDEX_INMENDEKIKAKUI 594 +#define PROP_INDEX_INADLAM 595 +#define PROP_INDEX_ININDICSIYAQNUMBERS 596 +#define PROP_INDEX_INOTTOMANSIYAQNUMBERS 597 +#define PROP_INDEX_INARABICMATHEMATICALALPHABETICSYMBOLS 598 +#define PROP_INDEX_INMAHJONGTILES 599 +#define PROP_INDEX_INDOMINOTILES 600 +#define PROP_INDEX_INPLAYINGCARDS 601 +#define PROP_INDEX_INENCLOSEDALPHANUMERICSUPPLEMENT 602 +#define PROP_INDEX_INENCLOSEDIDEOGRAPHICSUPPLEMENT 603 +#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDPICTOGRAPHS 604 +#define PROP_INDEX_INEMOTICONS 605 +#define PROP_INDEX_INORNAMENTALDINGBATS 606 +#define PROP_INDEX_INTRANSPORTANDMAPSYMBOLS 607 +#define PROP_INDEX_INALCHEMICALSYMBOLS 608 +#define PROP_INDEX_INGEOMETRICSHAPESEXTENDED 609 +#define PROP_INDEX_INSUPPLEMENTALARROWSC 610 +#define PROP_INDEX_INSUPPLEMENTALSYMBOLSANDPICTOGRAPHS 611 +#define PROP_INDEX_INCHESSSYMBOLS 612 +#define PROP_INDEX_INSYMBOLSANDPICTOGRAPHSEXTENDEDA 613 +#define PROP_INDEX_INSYMBOLSFORLEGACYCOMPUTING 614 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONB 615 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONC 616 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIOND 617 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONE 618 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONF 619 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONI 620 +#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT 621 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONG 622 +#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONH 623 +#define PROP_INDEX_INTAGS 624 +#define PROP_INDEX_INVARIATIONSELECTORSSUPPLEMENT 625 +#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAA 626 +#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAB 627 +#define PROP_INDEX_INNOBLOCK 628 diff --git a/thirdparty/oniguruma/unicode_unfold_key.c b/thirdparty/oniguruma/unicode_unfold_key.c new file mode 100644 index 000000000..a26cf5f88 --- /dev/null +++ b/thirdparty/oniguruma/unicode_unfold_key.c @@ -0,0 +1,3497 @@ +/* This file was converted by gperf_unfold_key_conv.py + from gperf output file. */ +/* ANSI-C code produced by gperf version 3.1 */ +/* Command-line: gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1,0 -N onigenc_unicode_unfold_key unicode_unfold_key.gperf */ +/* Computed positions: -k'1-3' */ + + + +/* This gperf source file was generated by make_unicode_fold_data.py */ + +/*- + * Copyright (c) 2017-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include "regint.h" + +#define TOTAL_KEYWORDS 1557 +#define MIN_WORD_LENGTH 3 +#define MAX_WORD_LENGTH 3 +#define MIN_HASH_VALUE 8 +#define MAX_HASH_VALUE 2248 +/* maximum key range = 2241, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +/*ARGSUSED*/ +static unsigned int +hash(OnigCodePoint codes[]) +{ + static const unsigned short asso_values[] = + { + 9, 7, 4, 52, 130, 1, 169, 2249, 2249, 2249, + 2249, 2249, 2249, 21, 155, 2249, 2249, 78, 2249, 2249, + 100, 2249, 2249, 2249, 2249, 84, 2249, 2249, 2249, 8, + 2249, 2, 3, 2249, 834, 718, 1614, 141, 1598, 712, + 1570, 694, 1668, 706, 1606, 0, 1593, 680, 1584, 651, + 1579, 1006, 1665, 1000, 1560, 688, 1553, 410, 1539, 645, + 1545, 639, 1530, 633, 269, 988, 1662, 966, 1122, 817, + 1647, 751, 994, 743, 379, 789, 1657, 261, 959, 783, + 1651, 771, 599, 826, 381, 1151, 286, 1521, 206, 1516, + 68, 1511, 915, 1431, 1607, 1640, 697, 671, 1531, 1507, + 1434, 1420, 1367, 1257, 1387, 1243, 717, 920, 1125, 613, + 1363, 331, 178, 909, 774, 843, 1451, 829, 1422, 822, + 1026, 724, 510, 1239, 754, 1222, 1324, 1413, 1072, 1409, + 764, 949, 316, 473, 384, 27, 169, 1405, 63, 1206, + 888, 1197, 879, 1189, 873, 386, 371, 1161, 903, 1139, + 807, 347, 613, 1398, 272, 197, 1633, 1449, 279, 1180, + 1, 1383, 286, 510, 1374, 490, 228, 15, 5, 398, + 1130, 595, 6, 464, 363, 574, 566, 457, 1228, 35, + 1112, 357, 1357, 324, 1330, 240, 158, 220, 1348, 432, + 1340, 548, 1326, 539, 1318, 97, 1106, 127, 1105, 85, + 1098, 76, 902, 211, 500, 189, 848, 118, 760, 106, + 1088, 151, 866, 56, 895, 419, 584, 315, 856, 66, + 1048, 303, 1290, 295, 1275, 274, 1257, 805, 657, 443, + 1312, 531, 1081, 1074, 253, 1065, 1311, 482, 1056, 561, + 1301, 1508, 1433, 1043, 1520, 1285, 929, 1634, 392, 1034, + 183, 1022, 42, 1014, 246, 1275, 26, 1266, 76, 1502, + 2249, 604, 70, 1497, 2249, 1491, 50, 1487, 41, 1478, + 342, 1471, 26, 1251, 2249, 666, 88, 1465, 19, 1460, + 46, 1627, 44, 1621, 207, 1443, 13, 1096, 17, 427, + 9 + }; + return asso_values[(unsigned char)onig_codes_byte_at(codes, 2)+35] + asso_values[(unsigned char)onig_codes_byte_at(codes, 1)+1] + asso_values[(unsigned char)onig_codes_byte_at(codes, 0)]; +} + +const struct ByUnfoldKey * +onigenc_unicode_unfold_key(OnigCodePoint code) +{ + static const struct ByUnfoldKey wordlist[] = + { + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1040a, 3480, 1}, + + {0x2c0a, 2615, 1}, + + {0x040a, 1035, 1}, + + {0x1e0a, 1891, 1}, + + {0x1f0a, 2252, 1}, + + {0x010a, 186, 1}, + + {0x017d, 351, 1}, + + {0xa77d, 1867, 1}, + + {0xab7d, 1645, 1}, + + {0x1f85, 154, 2}, + + {0x1f89, 134, 2}, + + {0x0189, 622, 1}, + + {0xab85, 1669, 1}, + + {0xab89, 1681, 1}, + + {0x1c85, 960, 1}, + + {0x1c89, 1864, 1}, + + {0x2c84, 2759, 1}, + + {0x1ffb, 2429, 1}, + + {0x1e84, 2075, 1}, + + {0x1f84, 149, 2}, + + {0x0184, 360, 1}, + + {0xa784, 3273, 1}, + + {0xab84, 1666, 1}, + + {0x1ff3, 96, 2}, + + {0x1c84, 960, 1}, + + {0x10c85, 3798, 1}, + + {0x10c89, 3810, 1}, + + {0x2ced, 2906, 1}, + + {0x2c64, 682, 1}, + + {0x0464, 1060, 1}, + + {0x1e64, 2027, 1}, + + {0xa684, 3108, 1}, + + {0x0164, 315, 1}, + + {0xa764, 3240, 1}, + + {0x00dd, 162, 1}, + + {0x10c84, 3795, 1}, + + {0x2c90, 2777, 1}, + + {0x0490, 1114, 1}, + + {0x1e90, 2093, 1}, + + {0x1f90, 169, 2}, + + {0x0190, 631, 1}, + + {0xa790, 3282, 1}, + + {0xab90, 1702, 1}, + + {0xa664, 3087, 1}, + + {0x1c90, 1468, 1}, + + {0x1fe9, 2447, 1}, + + {0x1fd9, 2441, 1}, + + {0x01d9, 450, 1}, + + {0x1ff7, 67, 3}, + + {0x01f7, 417, 1}, + + {0x00d9, 150, 1}, + + {0xa690, 3126, 1}, + + {0xa7f5, 3366, 1}, + + {0x020a, 520, 1}, + + {0x1fe7, 47, 3}, + + {0x10c90, 3831, 1}, + + {0x104b2, 3576, 1}, + + {0x2cb2, 2828, 1}, + + {0x04b2, 1165, 1}, + + {0x1eb2, 2129, 1}, + + {0x1fb2, 249, 2}, + + {0x01b2, 706, 1}, + + {0xa7b2, 715, 1}, + + {0xabb2, 1804, 1}, + + {0x2c67, 2738, 1}, + + {0x1cb2, 1570, 1}, + + {0x104b8, 3594, 1}, + + {0x2cb8, 2837, 1}, + + {0x04b8, 1174, 1}, + + {0x1eb8, 2138, 1}, + + {0x1fb8, 2432, 1}, + + {0x01b8, 411, 1}, + + {0xa7b8, 3327, 1}, + + {0xabb8, 1822, 1}, + + {0x1fe3, 41, 3}, + + {0x1cb8, 1588, 1}, + + {0x10cb2, 3933, 1}, + + {0x2ca6, 2810, 1}, + + {0x04a6, 1147, 1}, + + {0x1ea6, 2111, 1}, + + {0x1fa6, 239, 2}, + + {0x01a6, 685, 1}, + + {0xa7a6, 3315, 1}, + + {0xaba6, 1768, 1}, + + {0x00df, 24, 2}, + + {0x1ca6, 1534, 1}, + + {0x2ca4, 2807, 1}, + + {0x04a4, 1144, 1}, + + {0x1ea4, 2108, 1}, + + {0x1fa4, 229, 2}, + + {0x01a4, 393, 1}, + + {0xa7a4, 3312, 1}, + + {0xaba4, 1762, 1}, + + {0x01f1, 486, 1}, + + {0x1ca4, 1528, 1}, + + {0xff37, 3438, 1}, + + {0x10ca6, 3897, 1}, + {0xffffffff, -1, 0}, + + {0x2ca0, 2801, 1}, + + {0x04a0, 1138, 1}, + + {0x1ea0, 2102, 1}, + + {0x1fa0, 209, 2}, + + {0x01a0, 387, 1}, + + {0xa7a0, 3306, 1}, + + {0xaba0, 1750, 1}, + + {0x10ca4, 3891, 1}, + + {0x1ca0, 1516, 1}, + + {0x2cae, 2822, 1}, + + {0x04ae, 1159, 1}, + + {0x1eae, 2123, 1}, + + {0x1fae, 239, 2}, + + {0x01ae, 697, 1}, + + {0xa7ae, 661, 1}, + + {0xabae, 1792, 1}, + + {0x13fb, 1855, 1}, + + {0x1cae, 1558, 1}, + {0xffffffff, -1, 0}, + + {0x10ca0, 3879, 1}, + + {0x13fd, 1861, 1}, + + {0x2cac, 2819, 1}, + + {0x04ac, 1156, 1}, + + {0x1eac, 2120, 1}, + + {0x1fac, 229, 2}, + + {0x01ac, 399, 1}, + + {0xa7ac, 640, 1}, + + {0xabac, 1786, 1}, + + {0x10cae, 3921, 1}, + + {0x1cac, 1552, 1}, + + {0x2ca2, 2804, 1}, + + {0x04a2, 1141, 1}, + + {0x1ea2, 2105, 1}, + + {0x1fa2, 219, 2}, + + {0x01a2, 390, 1}, + + {0xa7a2, 3309, 1}, + + {0xaba2, 1756, 1}, + + {0x10b2, 2966, 1}, + + {0x1ca2, 1522, 1}, + + {0x0389, 745, 1}, + + {0x10cac, 3915, 1}, + + {0x118b2, 4056, 1}, + + {0x03ff, 736, 1}, + + {0x10402, 3456, 1}, + + {0x2c02, 2591, 1}, + + {0x0402, 1011, 1}, + + {0x1e02, 1879, 1}, + + {0x10b8, 2984, 1}, + + {0x0102, 174, 1}, + + {0x10ca2, 3885, 1}, + + {0x03fd, 730, 1}, + + {0x118b8, 4074, 1}, + {0xffffffff, -1, 0}, + + {0x104b0, 3570, 1}, + + {0x2cb0, 2825, 1}, + + {0x04b0, 1162, 1}, + + {0x1eb0, 2126, 1}, + + {0x10a6, 2930, 1}, + {0xffffffff, -1, 0}, + + {0xa7b0, 718, 1}, + + {0xabb0, 1798, 1}, + + {0x118a6, 4020, 1}, + + {0x1cb0, 1564, 1}, + + {0x1e97, 34, 2}, + + {0x1f97, 204, 2}, + + {0x0197, 655, 1}, + + {0x10a4, 2924, 1}, + + {0xab97, 1723, 1}, + + {0x0390, 25, 3}, + + {0x1c97, 1489, 1}, + + {0x118a4, 4014, 1}, + + {0x1057d, 3714, 1}, + + {0x050a, 1297, 1}, + + {0x10cb0, 3927, 1}, + {0xffffffff, -1, 0}, + + {0x10585, 3738, 1}, + + {0x10589, 3750, 1}, + + {0x03f7, 896, 1}, + + {0x10a0, 2912, 1}, + + {0x03f5, 764, 1}, + + {0x10c97, 3852, 1}, + {0xffffffff, -1, 0}, + + {0x118a0, 4002, 1}, + + {0x10d64, 3996, 1}, + + {0x1f4d, 2351, 1}, + + {0x10584, 3735, 1}, + + {0xfb02, 12, 2}, + + {0x10ae, 2954, 1}, + + {0x004d, 34, 1}, + + {0x1fd7, 31, 3}, + + {0x01d7, 447, 1}, + + {0x118ae, 4044, 1}, + + {0x2caa, 2816, 1}, + + {0x04aa, 1153, 1}, + + {0x1eaa, 2117, 1}, + + {0x1faa, 219, 2}, + + {0x0202, 508, 1}, + + {0xa7aa, 652, 1}, + + {0xabaa, 1780, 1}, + + {0x10ac, 2948, 1}, + + {0x1caa, 1546, 1}, + + {0x0478, 1090, 1}, + + {0x1e78, 2057, 1}, + + {0x118ac, 4038, 1}, + + {0x0178, 168, 1}, + + {0x10590, 3768, 1}, + + {0xab78, 1630, 1}, + {0xffffffff, -1, 0}, + + {0x10a2, 2918, 1}, + + {0x03a6, 822, 1}, + + {0x24b8, 2513, 1}, + + {0x10caa, 3909, 1}, + + {0x118a2, 4008, 1}, + + {0x1ff9, 2417, 1}, + + {0x2ca8, 2813, 1}, + + {0x04a8, 1150, 1}, + + {0x1ea8, 2114, 1}, + + {0x1fa8, 209, 2}, + + {0x03a4, 816, 1}, + + {0xa7a8, 3318, 1}, + + {0xaba8, 1774, 1}, + + {0x03f1, 808, 1}, + + {0x1ca8, 1540, 1}, + + {0x2c98, 2789, 1}, + + {0x0498, 1126, 1}, + + {0x1e98, 38, 2}, + + {0x1f98, 169, 2}, + + {0x0198, 375, 1}, + + {0xa798, 3294, 1}, + + {0xab98, 1726, 1}, + + {0x03a0, 804, 1}, + + {0x1c98, 1492, 1}, + + {0x10b0, 2960, 1}, + + {0x10ca8, 3903, 1}, + + {0x1f83, 144, 2}, + + {0xff35, 3432, 1}, + + {0x118b0, 4050, 1}, + + {0xab83, 1663, 1}, + + {0xa698, 3138, 1}, + + {0x1c83, 956, 1}, + + {0x0537, 1372, 1}, + {0xffffffff, -1, 0}, + + {0x10c98, 3855, 1}, + + {0x2c96, 2786, 1}, + + {0x0496, 1123, 1}, + + {0x1e96, 16, 2}, + + {0x1f96, 199, 2}, + + {0x0196, 658, 1}, + + {0xa796, 3291, 1}, + + {0xab96, 1720, 1}, + + {0x10c83, 3792, 1}, + + {0x1c96, 1486, 1}, + + {0x1fdb, 2411, 1}, + + {0x01db, 453, 1}, + + {0x1e90a, 4224, 1}, + + {0x104c7, 3639, 1}, + + {0x00db, 156, 1}, + + {0x04c7, 1195, 1}, + + {0xa696, 3135, 1}, + + {0x1fc7, 15, 3}, + + {0x01c7, 424, 1}, + + {0xa7c7, 3345, 1}, + + {0x10c96, 3849, 1}, + + {0x00c7, 99, 1}, + + {0x2c2a, 2711, 1}, + + {0x042a, 986, 1}, + + {0x1e2a, 1939, 1}, + + {0x1f2a, 2294, 1}, + + {0x012a, 234, 1}, + + {0xa72a, 3156, 1}, + + {0x10aa, 2942, 1}, + + {0x1041d, 3537, 1}, + + {0x2c1d, 2672, 1}, + + {0x041d, 943, 1}, + + {0x118aa, 4032, 1}, + + {0x1f1d, 2285, 1}, + + {0x104be, 3612, 1}, + + {0x2cbe, 2846, 1}, + + {0x04be, 1183, 1}, + + {0x1ebe, 2147, 1}, + + {0x1fbe, 779, 1}, + + {0xab77, 1627, 1}, + + {0xa7be, 3336, 1}, + + {0xabbe, 1840, 1}, + + {0x03b0, 41, 3}, + + {0x1cbe, 1600, 1}, + + {0x017b, 348, 1}, + + {0xa77b, 3261, 1}, + + {0xab7b, 1639, 1}, + + {0x2c7f, 586, 1}, + + {0xff2a, 3399, 1}, + + {0x0397, 771, 1}, + + {0x10a8, 2936, 1}, + + {0x017f, 52, 1}, + {0xffffffff, -1, 0}, + + {0xab7f, 1651, 1}, + + {0x118a8, 4026, 1}, + + {0x104bc, 3606, 1}, + + {0x2cbc, 2843, 1}, + + {0x04bc, 1180, 1}, + + {0x1ebc, 2144, 1}, + + {0x1fbc, 62, 2}, + + {0x01bc, 414, 1}, + + {0xa7bc, 3333, 1}, + + {0xabbc, 1834, 1}, + + {0x104ba, 3600, 1}, + + {0x2cba, 2840, 1}, + + {0x04ba, 1177, 1}, + + {0x1eba, 2141, 1}, + + {0x1fba, 2390, 1}, + + {0x13f9, 1849, 1}, + + {0xa7ba, 3330, 1}, + + {0xabba, 1828, 1}, + + {0x0502, 1285, 1}, + + {0x1cba, 1594, 1}, + + {0xff33, 3426, 1}, + + {0x022a, 565, 1}, + + {0x104b6, 3588, 1}, + + {0x2cb6, 2834, 1}, + + {0x04b6, 1171, 1}, + + {0x1eb6, 2135, 1}, + + {0x1fb6, 58, 2}, + + {0x03aa, 836, 1}, + + {0xa7b6, 3324, 1}, + + {0xabb6, 1816, 1}, + + {0x10d65, 3999, 1}, + + {0x1cb6, 1582, 1}, + + {0x2c94, 2783, 1}, + + {0x0494, 1120, 1}, + + {0x1e94, 2099, 1}, + + {0x1f94, 189, 2}, + + {0x0194, 643, 1}, + {0xffffffff, -1, 0}, + + {0xab94, 1714, 1}, + + {0x10c7, 3026, 1}, + + {0x1c94, 1480, 1}, + + {0x1e4c, 1990, 1}, + + {0x1f4c, 2348, 1}, + + {0x014c, 279, 1}, + + {0xa74c, 3204, 1}, + + {0x03f9, 890, 1}, + + {0x004c, 31, 1}, + + {0xa694, 3132, 1}, + {0xffffffff, -1, 0}, + + {0x03a8, 829, 1}, + + {0x2ceb, 2903, 1}, + + {0x10c94, 3843, 1}, + {0xffffffff, -1, 0}, + + {0x1feb, 2423, 1}, + + {0xa64c, 3051, 1}, + + {0x054d, 1438, 1}, + + {0x0474, 1084, 1}, + + {0x1e74, 2051, 1}, + + {0x0398, 774, 1}, + + {0x0174, 339, 1}, + + {0x10be, 3002, 1}, + + {0xab74, 1618, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x118be, 4092, 1}, + + {0x2c92, 2780, 1}, + + {0x0492, 1117, 1}, + + {0x1e92, 2096, 1}, + + {0x1f92, 179, 2}, + {0xffffffff, -1, 0}, + + {0xa792, 3285, 1}, + + {0xab92, 1708, 1}, + + {0x10578, 3702, 1}, + + {0x1c92, 1474, 1}, + + {0x1f8b, 144, 2}, + + {0x018b, 366, 1}, + + {0xa78b, 3279, 1}, + + {0xab8b, 1687, 1}, + + {0x0396, 768, 1}, + + {0x2c6f, 607, 1}, + + {0xa692, 3129, 1}, + + {0x10bc, 2996, 1}, + + {0x1f6f, 2387, 1}, + + {0x0535, 1366, 1}, + + {0x10c92, 3837, 1}, + + {0x118bc, 4086, 1}, + + {0x10427, 3567, 1}, + + {0x2c27, 2702, 1}, + + {0x0427, 977, 1}, + + {0x10ba, 2990, 1}, + + {0x10c8b, 3816, 1}, + + {0x024c, 601, 1}, + + {0x2c63, 1870, 1}, + + {0x118ba, 4080, 1}, + + {0x2c6e, 673, 1}, + + {0x046e, 1075, 1}, + + {0x1e6e, 2042, 1}, + + {0x1f6e, 2384, 1}, + + {0x016e, 330, 1}, + + {0xa76e, 3255, 1}, + + {0x1e902, 4200, 1}, + + {0x10b6, 2978, 1}, + + {0x24c7, 2558, 1}, + + {0x10583, 3732, 1}, + + {0x01d5, 444, 1}, + + {0x118b6, 4068, 1}, + + {0x2c86, 2762, 1}, + + {0x00d5, 141, 1}, + + {0x1e86, 2078, 1}, + + {0x1f86, 159, 2}, + + {0x0186, 619, 1}, + + {0xa786, 3276, 1}, + + {0xab86, 1672, 1}, + + {0xff27, 3390, 1}, + + {0x1c86, 986, 1}, + + {0xff31, 3420, 1}, + {0xffffffff, -1, 0}, + + {0x10416, 3516, 1}, + + {0x2c16, 2651, 1}, + + {0x0416, 922, 1}, + + {0x1e16, 1909, 1}, + + {0xa686, 3111, 1}, + + {0x0116, 204, 1}, + + {0x24be, 2531, 1}, + + {0x037f, 893, 1}, + + {0x10c86, 3801, 1}, + + {0x104b4, 3582, 1}, + + {0x2cb4, 2831, 1}, + + {0x04b4, 1168, 1}, + + {0x1eb4, 2132, 1}, + + {0x1fb4, 50, 2}, + {0xffffffff, -1, 0}, + + {0xa7b4, 3321, 1}, + + {0xabb4, 1810, 1}, + {0xffffffff, -1, 0}, + + {0x1cb4, 1576, 1}, + + {0x04fe, 1279, 1}, + + {0x1efe, 2243, 1}, + + {0x052a, 1345, 1}, + + {0x01fe, 502, 1}, + + {0x2c9a, 2792, 1}, + + {0x049a, 1129, 1}, + + {0x1e9a, 0, 2}, + + {0x1f9a, 179, 2}, + + {0x24bc, 2525, 1}, + + {0xa79a, 3297, 1}, + + {0xab9a, 1732, 1}, + + {0x10577, 3699, 1}, + + {0x1c9a, 1498, 1}, + {0xffffffff, -1, 0}, + + {0x104c2, 3624, 1}, + + {0x2cc2, 2852, 1}, + + {0x24ba, 2519, 1}, + + {0x1ec2, 2153, 1}, + + {0x1fc2, 253, 2}, + + {0xa69a, 3141, 1}, + + {0xa7c2, 3342, 1}, + {0xffffffff, -1, 0}, + + {0x00c2, 83, 1}, + + {0x10c9a, 3861, 1}, + + {0xfb16, 125, 2}, + + {0x1057f, 3720, 1}, + + {0x0394, 761, 1}, + + {0x0533, 1360, 1}, + + {0x24b6, 2507, 1}, + + {0x2c8e, 2774, 1}, + + {0x048e, 1111, 1}, + + {0x1e8e, 2090, 1}, + + {0x1f8e, 159, 2}, + + {0x018e, 456, 1}, + + {0x0216, 538, 1}, + + {0xab8e, 1696, 1}, + + {0x2c8a, 2768, 1}, + + {0x048a, 1105, 1}, + + {0x1e8a, 2084, 1}, + + {0x1f8a, 139, 2}, + + {0x018a, 625, 1}, + + {0x10d61, 3987, 1}, + + {0xab8a, 1684, 1}, + {0xffffffff, -1, 0}, + + {0xa68e, 3123, 1}, + + {0x2c62, 664, 1}, + + {0x0462, 1056, 1}, + + {0x1e62, 2024, 1}, + + {0x10c8e, 3825, 1}, + + {0x0162, 312, 1}, + + {0xa762, 3237, 1}, + + {0xa68a, 3117, 1}, + {0xffffffff, -1, 0}, + + {0x104ca, 3648, 1}, + + {0x2cca, 2864, 1}, + + {0x10c8a, 3813, 1}, + + {0x1eca, 2165, 1}, + + {0x1fca, 2402, 1}, + + {0x01ca, 428, 1}, + + {0x0392, 754, 1}, + + {0xa662, 3084, 1}, + + {0x00ca, 108, 1}, + + {0x2c82, 2756, 1}, + + {0x10594, 3777, 1}, + + {0x1e82, 2072, 1}, + + {0x1f82, 139, 2}, + + {0x0182, 357, 1}, + + {0xa782, 3270, 1}, + + {0xab82, 1660, 1}, + + {0x10b4, 2972, 1}, + + {0x1c82, 946, 1}, + {0xffffffff, -1, 0}, + + {0x054c, 1435, 1}, + + {0x118b4, 4062, 1}, + {0xffffffff, -1, 0}, + + {0x1fa9, 214, 2}, + + {0x01a9, 691, 1}, + + {0xa682, 3105, 1}, + + {0xaba9, 1777, 1}, + + {0x16e4d, 4137, 1}, + + {0x1ca9, 1543, 1}, + + {0x10c82, 3789, 1}, + + {0x2c80, 2753, 1}, + + {0x0480, 1102, 1}, + + {0x1e80, 2069, 1}, + + {0x1f80, 129, 2}, + + {0x10574, 3690, 1}, + + {0xa780, 3267, 1}, + + {0xab80, 1654, 1}, + + {0x0057, 65, 1}, + + {0x1c80, 908, 1}, + + {0x10ca9, 3906, 1}, + + {0x1e91d, 4281, 1}, + + {0x10c2, 3014, 1}, + + {0x03d5, 822, 1}, + {0xffffffff, -1, 0}, + + {0x10592, 3774, 1}, + + {0xa680, 3102, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x0386, 739, 1}, + + {0x10c80, 3783, 1}, + + {0x104c4, 3630, 1}, + + {0x2cc4, 2855, 1}, + {0xffffffff, -1, 0}, + + {0x1ec4, 2156, 1}, + + {0x1fc4, 54, 2}, + + {0x01c4, 420, 1}, + + {0xa7c4, 3288, 1}, + + {0x10d63, 3993, 1}, + + {0x00c4, 89, 1}, + + {0x2c9e, 2798, 1}, + + {0x049e, 1135, 1}, + + {0x1e9e, 24, 2}, + + {0x1f9e, 199, 2}, + {0xffffffff, -1, 0}, + + {0xa79e, 3303, 1}, + + {0xab9e, 1744, 1}, + {0xffffffff, -1, 0}, + + {0x1c9e, 1510, 1}, + + {0x2c9c, 2795, 1}, + + {0x049c, 1132, 1}, + + {0x0531, 1354, 1}, + + {0x1f9c, 189, 2}, + + {0x019c, 670, 1}, + + {0xa79c, 3300, 1}, + + {0xab9c, 1738, 1}, + {0xffffffff, -1, 0}, + + {0x1c9c, 1504, 1}, + + {0x03fe, 733, 1}, + + {0x10c9e, 3873, 1}, + {0xffffffff, -1, 0}, + + {0x104cc, 3654, 1}, + + {0x2ccc, 2867, 1}, + + {0x039a, 784, 1}, + + {0x1ecc, 2168, 1}, + + {0x1fcc, 71, 2}, + + {0x10586, 3741, 1}, + + {0xa7cc, 3351, 1}, + + {0x10c9c, 3867, 1}, + + {0x00cc, 114, 1}, + + {0x1f8d, 154, 2}, + {0xffffffff, -1, 0}, + + {0xa78d, 649, 1}, + + {0xab8d, 1693, 1}, + + {0x03c2, 812, 1}, + + {0x2c8c, 2771, 1}, + + {0x048c, 1108, 1}, + + {0x1e8c, 2087, 1}, + + {0x1f8c, 149, 2}, + + {0x10a9, 2939, 1}, + + {0x0516, 1315, 1}, + + {0xab8c, 1690, 1}, + {0xffffffff, -1, 0}, + + {0x118a9, 4029, 1}, + + {0x104b5, 3585, 1}, + + {0x24c2, 2543, 1}, + + {0x10c8d, 3822, 1}, + {0xffffffff, -1, 0}, + + {0x038e, 845, 1}, + + {0x01b5, 408, 1}, + + {0xa68c, 3120, 1}, + + {0xabb5, 1813, 1}, + + {0x00b5, 791, 1}, + + {0x1cb5, 1579, 1}, + + {0x10c8c, 3819, 1}, + + {0x038a, 748, 1}, + + {0x2c88, 2765, 1}, + {0xffffffff, -1, 0}, + + {0x1e88, 2081, 1}, + + {0x1f88, 129, 2}, + + {0x2c2f, 2726, 1}, + + {0x042f, 1002, 1}, + + {0xab88, 1678, 1}, + + {0x1f2f, 2309, 1}, + + {0x1c88, 3047, 1}, + + {0x2ce2, 2900, 1}, + + {0x04e2, 1237, 1}, + + {0x1ee2, 2201, 1}, + + {0x1fe2, 36, 3}, + + {0x01e2, 465, 1}, + + {0x10c4, 3020, 1}, + + {0xa688, 3114, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x2c75, 2750, 1}, + + {0x10c88, 3807, 1}, + + {0x1e4a, 1987, 1}, + + {0x1f4a, 2342, 1}, + + {0x014a, 276, 1}, + + {0xa74a, 3201, 1}, + + {0xab75, 1621, 1}, + + {0x004a, 24, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x24ca, 2567, 1}, + + {0x1058e, 3762, 1}, + + {0xff2f, 3414, 1}, + + {0x10d62, 3990, 1}, + {0xffffffff, -1, 0}, + + {0xa64a, 3047, 1}, + {0xffffffff, -1, 0}, + + {0x03a9, 832, 1}, + + {0x1058a, 3753, 1}, + + {0x1041c, 3534, 1}, + + {0x2c1c, 2669, 1}, + + {0x041c, 940, 1}, + + {0x1e1c, 1918, 1}, + + {0x1f1c, 2282, 1}, + + {0x011c, 213, 1}, + + {0x1041a, 3528, 1}, + + {0x2c1a, 2663, 1}, + + {0x041a, 934, 1}, + + {0x1e1a, 1915, 1}, + + {0x1f1a, 2276, 1}, + + {0x011a, 210, 1}, + + {0x10418, 3522, 1}, + + {0x2c18, 2657, 1}, + + {0x0418, 928, 1}, + + {0x1e18, 1912, 1}, + + {0x1f18, 2270, 1}, + + {0x0118, 207, 1}, + + {0x1040e, 3492, 1}, + + {0x2c0e, 2627, 1}, + + {0x040e, 1047, 1}, + + {0x1e0e, 1897, 1}, + + {0x1f0e, 2264, 1}, + + {0x010e, 192, 1}, + + {0x104c1, 3621, 1}, + + {0x10582, 3729, 1}, + + {0x04c1, 1186, 1}, + {0xffffffff, -1, 0}, + + {0x16e4c, 4134, 1}, + + {0x1e916, 4260, 1}, + + {0x10b5, 2975, 1}, + + {0x10d57, 3957, 1}, + + {0x00c1, 80, 1}, + + {0x024a, 598, 1}, + + {0x118b5, 4065, 1}, + + {0x04f0, 1258, 1}, + + {0x1ef0, 2222, 1}, + + {0x039e, 798, 1}, + + {0x01f0, 20, 2}, + {0xffffffff, -1, 0}, + + {0x24c4, 2549, 1}, + + {0x1e3e, 1969, 1}, + + {0x1f3e, 2330, 1}, + {0xffffffff, -1, 0}, + + {0xa73e, 3183, 1}, + + {0x10580, 3723, 1}, + + {0x039c, 791, 1}, + + {0x1040c, 3486, 1}, + + {0x2c0c, 2621, 1}, + + {0x040c, 1041, 1}, + + {0x1e0c, 1894, 1}, + + {0x1f0c, 2258, 1}, + + {0x010c, 189, 1}, + + {0x021c, 547, 1}, + {0xffffffff, -1, 0}, + + {0x10414, 3510, 1}, + + {0x2c14, 2645, 1}, + + {0x0414, 915, 1}, + + {0x1e14, 1906, 1}, + + {0x021a, 544, 1}, + + {0x0114, 201, 1}, + + {0x10406, 3468, 1}, + + {0x2c06, 2603, 1}, + + {0x0406, 1023, 1}, + + {0x1e06, 1885, 1}, + + {0x0218, 541, 1}, + + {0x0106, 180, 1}, + {0xffffffff, -1, 0}, + + {0x1f3d, 2327, 1}, + + {0x013d, 258, 1}, + + {0x24cc, 2573, 1}, + + {0x020e, 526, 1}, + + {0x038c, 842, 1}, + + {0x10408, 3474, 1}, + + {0x2c08, 2609, 1}, + + {0x0408, 1029, 1}, + + {0x1e08, 1888, 1}, + + {0x1f08, 2246, 1}, + + {0x0108, 183, 1}, + + {0x10404, 3462, 1}, + + {0x2c04, 2597, 1}, + + {0x0404, 1017, 1}, + + {0x1e04, 1882, 1}, + {0xffffffff, -1, 0}, + + {0x0104, 177, 1}, + + {0x10400, 3450, 1}, + + {0x2c00, 2585, 1}, + + {0x0400, 1005, 1}, + + {0x1e00, 1876, 1}, + + {0x0147, 273, 1}, + + {0x0100, 171, 1}, + + {0x023e, 2735, 1}, + + {0x0047, 18, 1}, + + {0x0388, 742, 1}, + + {0x1e56, 2005, 1}, + + {0x1f56, 62, 3}, + + {0x0156, 294, 1}, + + {0xa756, 3219, 1}, + + {0xfb14, 109, 2}, + + {0x0056, 62, 1}, + + {0x020c, 523, 1}, + + {0x1058d, 3759, 1}, + + {0x03e2, 869, 1}, + + {0x10c1, 3011, 1}, + + {0xfb06, 29, 2}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0xa656, 3066, 1}, + + {0x0214, 535, 1}, + + {0x1058c, 3756, 1}, + + {0x10426, 3564, 1}, + + {0x2c26, 2699, 1}, + + {0x0426, 974, 1}, + + {0x1e26, 1933, 1}, + + {0x0206, 514, 1}, + + {0x0126, 228, 1}, + + {0xa726, 3150, 1}, + + {0x023d, 378, 1}, + + {0x10424, 3558, 1}, + + {0x2c24, 2693, 1}, + + {0x0424, 968, 1}, + + {0x1e24, 1930, 1}, + + {0xfb04, 5, 3}, + + {0x0124, 225, 1}, + + {0xa724, 3147, 1}, + + {0x1f59, 2354, 1}, + + {0x0208, 517, 1}, + {0xffffffff, -1, 0}, + + {0xfb00, 4, 2}, + + {0x0059, 71, 1}, + + {0x10588, 3747, 1}, + + {0x1fad, 234, 2}, + + {0x0204, 511, 1}, + + {0xa7ad, 667, 1}, + + {0xabad, 1789, 1}, + + {0x1f5f, 2363, 1}, + + {0x1cad, 1555, 1}, + + {0xff26, 3387, 1}, + + {0x0200, 505, 1}, + + {0x2c2e, 2723, 1}, + + {0x042e, 999, 1}, + + {0x1e2e, 1945, 1}, + + {0x1f2e, 2306, 1}, + + {0x012e, 240, 1}, + + {0xa72e, 3162, 1}, + + {0xff24, 3381, 1}, + {0xffffffff, -1, 0}, + + {0x10cad, 3918, 1}, + + {0x10575, 3693, 1}, + + {0x004f, 40, 1}, + + {0x054a, 1429, 1}, + + {0x2c2c, 2717, 1}, + + {0x042c, 993, 1}, + + {0x1e2c, 1942, 1}, + + {0x1f2c, 2300, 1}, + + {0x012c, 237, 1}, + + {0xa72c, 3159, 1}, + + {0x2c28, 2705, 1}, + + {0x0428, 980, 1}, + + {0x1e28, 1936, 1}, + + {0x1f28, 2288, 1}, + + {0x0128, 231, 1}, + + {0xa728, 3153, 1}, + + {0x0226, 559, 1}, + + {0x03f0, 784, 1}, + + {0xff2e, 3411, 1}, + + {0x24c1, 2540, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x051c, 1324, 1}, + + {0x0224, 556, 1}, + + {0x104c0, 3618, 1}, + + {0x2cc0, 2849, 1}, + + {0x04c0, 1207, 1}, + + {0x1ec0, 2150, 1}, + + {0x051a, 1321, 1}, + + {0xff2c, 3405, 1}, + + {0xa7c0, 3339, 1}, + {0xffffffff, -1, 0}, + + {0x00c0, 77, 1}, + + {0xab73, 1615, 1}, + + {0x0518, 1318, 1}, + + {0xff28, 3393, 1}, + + {0x10422, 3552, 1}, + + {0x2c22, 2687, 1}, + + {0x0422, 960, 1}, + + {0x1e22, 1927, 1}, + + {0x050e, 1303, 1}, + + {0x0122, 222, 1}, + + {0xa722, 3144, 1}, + + {0x022e, 571, 1}, + + {0x1e54, 2002, 1}, + + {0x1f54, 57, 3}, + + {0x0154, 291, 1}, + + {0xa754, 3216, 1}, + + {0x1e30, 1948, 1}, + + {0x0054, 56, 1}, + + {0x0130, 261, 2}, + + {0x1e52, 1999, 1}, + + {0x1f52, 52, 3}, + + {0x0152, 288, 1}, + + {0xa752, 3213, 1}, + + {0x022c, 568, 1}, + + {0x0052, 49, 1}, + + {0xa654, 3063, 1}, + + {0x10ad, 2951, 1}, + + {0x16e57, 4167, 1}, + + {0x053e, 1393, 1}, + + {0x0228, 562, 1}, + + {0x118ad, 4041, 1}, + + {0xff22, 3375, 1}, + + {0xa652, 3060, 1}, + + {0x1e50, 1996, 1}, + + {0x1f50, 84, 2}, + + {0x0150, 285, 1}, + + {0xa750, 3210, 1}, + + {0x050c, 1300, 1}, + + {0x0050, 43, 1}, + + {0x1fab, 224, 2}, + + {0xff30, 3417, 1}, + + {0xa7ab, 634, 1}, + + {0xabab, 1783, 1}, + + {0x104b7, 3591, 1}, + + {0x1cab, 1549, 1}, + + {0x0514, 1312, 1}, + + {0xa650, 3057, 1}, + + {0x1fb7, 10, 3}, + + {0x01b7, 712, 1}, + + {0x2164, 2468, 1}, + + {0xabb7, 1819, 1}, + + {0x0506, 1291, 1}, + + {0x1cb7, 1585, 1}, + + {0x104b1, 3573, 1}, + + {0x053d, 1390, 1}, + + {0x10cab, 3912, 1}, + {0xffffffff, -1, 0}, + + {0x0222, 553, 1}, + + {0x01b1, 703, 1}, + + {0xa7b1, 694, 1}, + + {0xabb1, 1801, 1}, + + {0x2c6d, 610, 1}, + + {0x1cb1, 1567, 1}, + + {0x0508, 1294, 1}, + + {0x1f6d, 2381, 1}, + + {0x10d56, 3954, 1}, + + {0x0230, 574, 1}, + + {0x2c6b, 2744, 1}, + {0xffffffff, -1, 0}, + + {0x0504, 1288, 1}, + + {0x1f6b, 2375, 1}, + + {0x10c0, 3008, 1}, + + {0x1e91c, 4278, 1}, + + {0x10cb1, 3930, 1}, + + {0x0547, 1420, 1}, + + {0x0500, 1282, 1}, + + {0x2c69, 2741, 1}, + {0xffffffff, -1, 0}, + + {0x1e91a, 4272, 1}, + + {0x1f69, 2369, 1}, + {0xffffffff, -1, 0}, + + {0x0556, 1465, 1}, + + {0x104b3, 3579, 1}, + {0xffffffff, -1, 0}, + + {0x1e918, 4266, 1}, + + {0x2167, 2477, 1}, + + {0x1fb3, 62, 2}, + + {0x01b3, 405, 1}, + + {0xa7b3, 3369, 1}, + + {0xabb3, 1807, 1}, + + {0x1e90e, 4236, 1}, + + {0x1cb3, 1573, 1}, + {0xffffffff, -1, 0}, + + {0x1fa7, 244, 2}, + + {0x01a7, 396, 1}, + + {0x10d59, 3963, 1}, + + {0xaba7, 1771, 1}, + + {0xab71, 1609, 1}, + + {0x1ca7, 1537, 1}, + + {0x1e4e, 1993, 1}, + + {0x0526, 1339, 1}, + + {0x014e, 282, 1}, + + {0xa74e, 3207, 1}, + {0xffffffff, -1, 0}, + + {0x004e, 37, 1}, + + {0x10d5f, 3981, 1}, + + {0x1f39, 2315, 1}, + + {0x0139, 252, 1}, + + {0x0524, 1336, 1}, + + {0x10ca7, 3900, 1}, + + {0x1e48, 1984, 1}, + + {0x1f48, 2336, 1}, + + {0xa64e, 3054, 1}, + + {0xa748, 3198, 1}, + + {0x10ab, 2945, 1}, + + {0x0048, 21, 1}, + + {0x104d3, 3675, 1}, + {0xffffffff, -1, 0}, + + {0x118ab, 4035, 1}, + + {0x1e90c, 4230, 1}, + + {0x1fd3, 25, 3}, + + {0x01d3, 441, 1}, + + {0x10b7, 2981, 1}, + + {0xa648, 3044, 1}, + + {0x00d3, 135, 1}, + {0xffffffff, -1, 0}, + + {0x118b7, 4071, 1}, + + {0x1e914, 4254, 1}, + + {0x052e, 1351, 1}, + + {0xff39, 3444, 1}, + + {0x16e4a, 4128, 1}, + + {0x054f, 1444, 1}, + + {0x10b1, 2963, 1}, + + {0x1e906, 4212, 1}, + + {0x24c0, 2537, 1}, + {0xffffffff, -1, 0}, + + {0x118b1, 4053, 1}, + + {0x2c60, 2729, 1}, + + {0x0460, 1053, 1}, + + {0x1e60, 2020, 1}, + + {0x052c, 1348, 1}, + + {0x0160, 309, 1}, + + {0xa760, 3234, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e908, 4218, 1}, + + {0x0528, 1342, 1}, + + {0x2c2b, 2714, 1}, + + {0x042b, 990, 1}, + + {0x024e, 604, 1}, + + {0x1f2b, 2297, 1}, + + {0x1e904, 4206, 1}, + + {0xa660, 3081, 1}, + + {0x10420, 3546, 1}, + + {0x2c20, 2681, 1}, + + {0x0420, 953, 1}, + + {0x1e20, 1924, 1}, + + {0x1e900, 4194, 1}, + + {0x0120, 219, 1}, + {0xffffffff, -1, 0}, + + {0x0248, 595, 1}, + + {0x10b3, 2969, 1}, + + {0x10573, 3687, 1}, + + {0x10d54, 3948, 1}, + {0xffffffff, -1, 0}, + + {0x118b3, 4059, 1}, + + {0x03ab, 839, 1}, + {0xffffffff, -1, 0}, + + {0x10a7, 2933, 1}, + {0xffffffff, -1, 0}, + + {0x10d52, 3942, 1}, + {0xffffffff, -1, 0}, + + {0x118a7, 4023, 1}, + + {0xff2b, 3402, 1}, + + {0x0522, 1333, 1}, + + {0x1041e, 3540, 1}, + + {0x2c1e, 2675, 1}, + + {0x041e, 946, 1}, + + {0x1e1e, 1921, 1}, + + {0x0554, 1459, 1}, + + {0x011e, 216, 1}, + + {0x10425, 3561, 1}, + + {0x2c25, 2696, 1}, + + {0x0425, 971, 1}, + + {0x10d50, 3936, 1}, + + {0x24b7, 2510, 1}, + + {0x0552, 1453, 1}, + + {0x10412, 3504, 1}, + + {0x2c12, 2639, 1}, + + {0x0412, 908, 1}, + + {0x1e12, 1903, 1}, + + {0x2165, 2471, 1}, + + {0x0112, 198, 1}, + + {0x10410, 3498, 1}, + + {0x2c10, 2633, 1}, + + {0x0410, 902, 1}, + + {0x1e10, 1900, 1}, + {0xffffffff, -1, 0}, + + {0x0110, 195, 1}, + {0xffffffff, -1, 0}, + + {0x0550, 1447, 1}, + {0xffffffff, -1, 0}, + + {0x2cda, 2888, 1}, + + {0x04da, 1225, 1}, + + {0x1eda, 2189, 1}, + + {0x1fda, 2408, 1}, + + {0x0220, 384, 1}, + + {0xa7da, 3363, 1}, + + {0xff25, 3384, 1}, + + {0x00da, 153, 1}, + + {0x2cd8, 2885, 1}, + + {0x04d8, 1222, 1}, + + {0x1ed8, 2186, 1}, + + {0x1fd8, 2438, 1}, + {0xffffffff, -1, 0}, + + {0xa7d8, 3360, 1}, + {0xffffffff, -1, 0}, + + {0x00d8, 147, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x03a7, 826, 1}, + + {0x0055, 59, 1}, + + {0x2cd6, 2882, 1}, + + {0x04d6, 1219, 1}, + + {0x1ed6, 2183, 1}, + + {0x1fd6, 76, 2}, + {0xffffffff, -1, 0}, + + {0xa7d6, 3357, 1}, + + {0x021e, 550, 1}, + + {0x00d6, 144, 1}, + + {0x104d0, 3666, 1}, + + {0x2cd0, 2873, 1}, + + {0x04d0, 1210, 1}, + + {0x1ed0, 2174, 1}, + + {0x16e47, 4119, 1}, + + {0x104b9, 3597, 1}, + + {0xa7d0, 3354, 1}, + {0xffffffff, -1, 0}, + + {0x00d0, 126, 1}, + + {0x1fb9, 2435, 1}, + + {0x0212, 532, 1}, + + {0x16e56, 4164, 1}, + + {0xabb9, 1825, 1}, + + {0x104cb, 3651, 1}, + + {0x1cb9, 1591, 1}, + + {0x04cb, 1201, 1}, + + {0x0210, 529, 1}, + + {0x1fcb, 2405, 1}, + + {0x01cb, 428, 1}, + + {0xa7cb, 646, 1}, + + {0x2183, 2504, 1}, + + {0x00cb, 111, 1}, + + {0x104c8, 3642, 1}, + + {0x2cc8, 2861, 1}, + {0xffffffff, -1, 0}, + + {0x1ec8, 2162, 1}, + + {0x1fc8, 2396, 1}, + + {0x01c8, 424, 1}, + + {0x10571, 3681, 1}, + {0xffffffff, -1, 0}, + + {0x00c8, 102, 1}, + + {0x104c6, 3636, 1}, + + {0x2cc6, 2858, 1}, + + {0x1f5d, 2360, 1}, + + {0x1ec6, 2159, 1}, + + {0x1fc6, 67, 2}, + + {0x054e, 1441, 1}, + + {0xa7c6, 1873, 1}, + + {0x104c5, 3633, 1}, + + {0x00c6, 96, 1}, + + {0x04c5, 1192, 1}, + + {0x16e59, 4173, 1}, + + {0x0539, 1378, 1}, + + {0x01c5, 420, 1}, + + {0xa7c5, 688, 1}, + {0xffffffff, -1, 0}, + + {0x00c5, 92, 1}, + + {0x0548, 1423, 1}, + {0xffffffff, -1, 0}, + + {0x1faf, 244, 2}, + + {0x01af, 402, 1}, + + {0x16e5f, 4191, 1}, + + {0xabaf, 1795, 1}, + + {0x212a, 27, 1}, + + {0x1caf, 1561, 1}, + + {0x04fc, 1276, 1}, + + {0x1efc, 2240, 1}, + + {0x1ffc, 96, 2}, + + {0x01fc, 499, 1}, + + {0x1fa5, 234, 2}, + + {0x10d60, 3984, 1}, + + {0x16e4f, 4143, 1}, + + {0xaba5, 1765, 1}, + {0xffffffff, -1, 0}, + + {0x1ca5, 1531, 1}, + + {0x10caf, 3924, 1}, + + {0x1fa3, 224, 2}, + + {0x1fa1, 214, 2}, + {0xffffffff, -1, 0}, + + {0xaba3, 1759, 1}, + + {0xaba1, 1753, 1}, + + {0x1ca3, 1525, 1}, + + {0x1ca1, 1519, 1}, + + {0x1f91, 174, 2}, + + {0x0191, 369, 1}, + + {0x10ca5, 3894, 1}, + + {0xab91, 1705, 1}, + {0xffffffff, -1, 0}, + + {0x1c91, 1471, 1}, + + {0x10421, 3549, 1}, + + {0x2c21, 2684, 1}, + + {0x0421, 956, 1}, + + {0x10ca3, 3888, 1}, + + {0x10ca1, 3882, 1}, + + {0x10b9, 2987, 1}, + {0xffffffff, -1, 0}, + + {0x1f49, 2339, 1}, + + {0x0149, 46, 2}, + + {0x118b9, 4077, 1}, + + {0x10c91, 3834, 1}, + + {0x0049, 4296, 1}, + + {0x1f87, 164, 2}, + + {0x0187, 363, 1}, + + {0x0520, 1330, 1}, + + {0xab87, 1675, 1}, + {0xffffffff, -1, 0}, + + {0x1c87, 1056, 1}, + + {0x2c72, 2747, 1}, + + {0x0472, 1081, 1}, + + {0x1e72, 2048, 1}, + {0xffffffff, -1, 0}, + + {0x0172, 336, 1}, + + {0x03da, 857, 1}, + + {0xab72, 1612, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0xff21, 3372, 1}, + + {0x10c87, 3804, 1}, + + {0x2161, 2459, 1}, + + {0x16e54, 4158, 1}, + + {0x03d8, 854, 1}, + + {0x1e32, 1951, 1}, + {0xffffffff, -1, 0}, + + {0x0132, 243, 1}, + + {0xa732, 3165, 1}, + + {0x051e, 1327, 1}, + + {0x16e52, 4152, 1}, + + {0x10c5, 3023, 1}, + {0xffffffff, -1, 0}, + + {0x2c70, 613, 1}, + + {0x0470, 1078, 1}, + + {0x1e70, 2045, 1}, + + {0x03d6, 804, 1}, + + {0x0170, 333, 1}, + + {0x10af, 2957, 1}, + + {0xab70, 1606, 1}, + {0xffffffff, -1, 0}, + + {0x0512, 1309, 1}, + + {0x118af, 4047, 1}, + {0xffffffff, -1, 0}, + + {0x16e50, 4146, 1}, + + {0x03d0, 754, 1}, + {0xffffffff, -1, 0}, + + {0x0510, 1306, 1}, + + {0x10a5, 2927, 1}, + + {0xff32, 3423, 1}, + {0xffffffff, -1, 0}, + + {0x10d55, 3951, 1}, + + {0x118a5, 4017, 1}, + + {0x047c, 1096, 1}, + + {0x1e7c, 2063, 1}, + + {0x10a3, 2921, 1}, + + {0x10a1, 2915, 1}, + {0xffffffff, -1, 0}, + + {0xab7c, 1642, 1}, + + {0x118a3, 4011, 1}, + + {0x118a1, 4005, 1}, + + {0x24b9, 2516, 1}, + + {0x046c, 1072, 1}, + + {0x1e6c, 2039, 1}, + + {0x1f6c, 2378, 1}, + + {0x016c, 327, 1}, + + {0xa76c, 3252, 1}, + + {0x0555, 1462, 1}, + + {0x13fc, 1858, 1}, + + {0x24cb, 2570, 1}, + + {0x046a, 1069, 1}, + + {0x1e6a, 2036, 1}, + + {0x1f6a, 2372, 1}, + + {0x016a, 324, 1}, + + {0xa76a, 3249, 1}, + + {0x0232, 577, 1}, + + {0xa66c, 3099, 1}, + + {0x216f, 2501, 1}, + + {0x24c8, 2561, 1}, + + {0x0468, 1066, 1}, + + {0x1e68, 2033, 1}, + + {0x1f68, 2366, 1}, + + {0x0168, 321, 1}, + + {0xa768, 3246, 1}, + + {0xa66a, 3096, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x24c6, 2555, 1}, + {0xffffffff, -1, 0}, + + {0x1e920, 4290, 1}, + + {0x2163, 2465, 1}, + {0xffffffff, -1, 0}, + + {0x216e, 2498, 1}, + + {0xa668, 3093, 1}, + + {0x24c5, 2552, 1}, + {0xffffffff, -1, 0}, + + {0x1e5a, 2011, 1}, + + {0x10d5d, 3975, 1}, + + {0x015a, 300, 1}, + + {0xa75a, 3225, 1}, + + {0x03a5, 819, 1}, + + {0x005a, 74, 1}, + {0xffffffff, -1, 0}, + + {0x1f8f, 164, 2}, + + {0x018f, 628, 1}, + {0xffffffff, -1, 0}, + + {0xab8f, 1699, 1}, + + {0x03a3, 812, 1}, + + {0x03a1, 808, 1}, + + {0xa65a, 3072, 1}, + + {0x16e4e, 4140, 1}, + + {0x1e91e, 4284, 1}, + {0xffffffff, -1, 0}, + + {0x1e58, 2008, 1}, + + {0x0391, 751, 1}, + + {0x0158, 297, 1}, + + {0xa758, 3222, 1}, + + {0x1e46, 1981, 1}, + + {0x0058, 68, 1}, + + {0x10c8f, 3828, 1}, + + {0xa746, 3195, 1}, + + {0x16e48, 4122, 1}, + + {0x0046, 15, 1}, + + {0x1e912, 4248, 1}, + + {0x04ee, 1255, 1}, + + {0x1eee, 2219, 1}, + + {0xa658, 3069, 1}, + + {0x01ee, 483, 1}, + + {0x104bf, 3615, 1}, + + {0x1e910, 4242, 1}, + + {0xa646, 3041, 1}, + + {0x1e44, 1978, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0xa744, 3192, 1}, + + {0xabbf, 1843, 1}, + + {0x0044, 9, 1}, + + {0x1cbf, 1603, 1}, + + {0x2cde, 2894, 1}, + + {0x04de, 1231, 1}, + + {0x1ede, 2195, 1}, + + {0x0372, 724, 1}, + + {0x01de, 459, 1}, + {0xffffffff, -1, 0}, + + {0xa644, 3038, 1}, + + {0x00de, 165, 1}, + + {0x104bd, 3609, 1}, + + {0x2cdc, 2891, 1}, + + {0x04dc, 1228, 1}, + + {0x1edc, 2192, 1}, + {0xffffffff, -1, 0}, + + {0x10591, 3771, 1}, + + {0xa7dc, 381, 1}, + + {0xabbd, 1837, 1}, + + {0x00dc, 159, 1}, + + {0x1cbd, 1597, 1}, + + {0x104d2, 3672, 1}, + + {0x2cd2, 2876, 1}, + + {0x04d2, 1213, 1}, + + {0x1ed2, 2177, 1}, + + {0x1fd2, 20, 3}, + + {0x104bb, 3603, 1}, + {0xffffffff, -1, 0}, + + {0x0370, 721, 1}, + + {0x00d2, 132, 1}, + + {0x1fbb, 2393, 1}, + + {0x0549, 1426, 1}, + + {0x0246, 592, 1}, + + {0xabbb, 1831, 1}, + + {0x10587, 3744, 1}, + {0xffffffff, -1, 0}, + + {0x0587, 105, 2}, + + {0x104cd, 3657, 1}, + {0xffffffff, -1, 0}, + + {0x04cd, 1204, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x01cd, 432, 1}, + + {0x10572, 3684, 1}, + + {0x2162, 2462, 1}, + + {0x00cd, 117, 1}, + + {0x0244, 700, 1}, + + {0x104c9, 3645, 1}, + + {0x104c3, 3627, 1}, + + {0x04c9, 1198, 1}, + + {0x04c3, 1189, 1}, + + {0x1fc9, 2399, 1}, + + {0x1fc3, 71, 2}, + + {0xa7c9, 3348, 1}, + {0xffffffff, -1, 0}, + + {0x00c9, 105, 1}, + + {0x00c3, 86, 1}, + + {0x0532, 1357, 1}, + + {0x1f9f, 204, 2}, + + {0x019f, 679, 1}, + {0xffffffff, -1, 0}, + + {0xab9f, 1747, 1}, + {0xffffffff, -1, 0}, + + {0x1c9f, 1513, 1}, + + {0x1f5b, 2357, 1}, + + {0x10570, 3678, 1}, + + {0x1f9d, 194, 2}, + + {0x019d, 676, 1}, + {0xffffffff, -1, 0}, + + {0xab9d, 1741, 1}, + + {0x1f95, 194, 2}, + + {0x1c9d, 1507, 1}, + + {0x10bf, 3005, 1}, + + {0xab95, 1717, 1}, + + {0x10c9f, 3876, 1}, + + {0x1c95, 1483, 1}, + + {0x118bf, 4095, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e9b, 2020, 1}, + + {0x1f9b, 184, 2}, + {0xffffffff, -1, 0}, + + {0x10c9d, 3870, 1}, + + {0xab9b, 1735, 1}, + + {0x1057c, 3711, 1}, + + {0x1c9b, 1501, 1}, + + {0x10c95, 3846, 1}, + + {0x1e99, 42, 2}, + + {0x1f99, 174, 2}, + {0xffffffff, -1, 0}, + + {0x10bd, 2999, 1}, + + {0xab99, 1729, 1}, + + {0x16e55, 4161, 1}, + + {0x1c99, 1495, 1}, + + {0x118bd, 4089, 1}, + + {0x038f, 848, 1}, + + {0x10c9b, 3864, 1}, + + {0x1f93, 184, 2}, + + {0x0193, 637, 1}, + {0xffffffff, -1, 0}, + + {0xab93, 1711, 1}, + {0xffffffff, -1, 0}, + + {0x1c93, 1477, 1}, + + {0x1f4b, 2345, 1}, + + {0x10c99, 3858, 1}, + + {0x10bb, 2993, 1}, + {0xffffffff, -1, 0}, + + {0x004b, 27, 1}, + + {0x0143, 267, 1}, + + {0x118bb, 4083, 1}, + + {0x1e921, 4293, 1}, + + {0x0043, 6, 1}, + + {0x10d5a, 3966, 1}, + + {0x10c93, 3840, 1}, + + {0x1f81, 134, 2}, + + {0x0181, 616, 1}, + + {0x10cd, 3029, 1}, + + {0xab81, 1657, 1}, + + {0x03ee, 887, 1}, + + {0x1c81, 915, 1}, + + {0x2c7e, 583, 1}, + + {0x047e, 1099, 1}, + + {0x1e7e, 2066, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0xa77e, 3264, 1}, + + {0xab7e, 1648, 1}, + + {0x10c3, 3017, 1}, + + {0x0145, 270, 1}, + + {0x10d58, 3960, 1}, + + {0x10c81, 3786, 1}, + + {0x0045, 12, 1}, + + {0x1058f, 3765, 1}, + + {0x03de, 863, 1}, + {0xffffffff, -1, 0}, + + {0x24bf, 2534, 1}, + + {0x0476, 1087, 1}, + + {0x1e76, 2054, 1}, + + {0x16e5d, 4185, 1}, + + {0x0176, 342, 1}, + {0xffffffff, -1, 0}, + + {0xab76, 1624, 1}, + + {0x03dc, 860, 1}, + + {0x0466, 1063, 1}, + + {0x1e66, 2030, 1}, + {0xffffffff, -1, 0}, + + {0x0166, 318, 1}, + + {0xa766, 3243, 1}, + + {0x1e5e, 2017, 1}, + + {0x0546, 1417, 1}, + + {0x015e, 306, 1}, + + {0xa75e, 3231, 1}, + + {0x1e5c, 2014, 1}, + + {0x24bd, 2528, 1}, + + {0x015c, 303, 1}, + + {0xa75c, 3228, 1}, + + {0x0243, 354, 1}, + + {0xa666, 3090, 1}, + {0xffffffff, -1, 0}, + + {0x1e42, 1975, 1}, + {0xffffffff, -1, 0}, + + {0xa65e, 3078, 1}, + + {0xa742, 3189, 1}, + + {0x0544, 1411, 1}, + + {0x0042, 3, 1}, + + {0xa65c, 3075, 1}, + + {0x0053, 52, 1}, + {0xffffffff, -1, 0}, + + {0x24bb, 2522, 1}, + + {0x104cf, 3663, 1}, + + {0x1e3a, 1963, 1}, + + {0x1f3a, 2318, 1}, + + {0xa642, 3035, 1}, + + {0xa73a, 3177, 1}, + + {0x01cf, 435, 1}, + + {0x0141, 264, 1}, + + {0x0245, 709, 1}, + + {0x00cf, 123, 1}, + + {0x0041, 0, 1}, + + {0x24cd, 2576, 1}, + {0xffffffff, -1, 0}, + + {0x04fa, 1273, 1}, + + {0x1efa, 2237, 1}, + + {0x1ffa, 2426, 1}, + + {0x01fa, 496, 1}, + + {0x039f, 801, 1}, + {0xffffffff, -1, 0}, + + {0x047a, 1093, 1}, + + {0x1e7a, 2060, 1}, + + {0x24c9, 2564, 1}, + + {0x24c3, 2546, 1}, + + {0x16e49, 4125, 1}, + + {0xab7a, 1636, 1}, + + {0x039d, 795, 1}, + + {0xff3a, 3447, 1}, + + {0x0051, 46, 1}, + {0xffffffff, -1, 0}, + + {0x0395, 764, 1}, + + {0x04f4, 1264, 1}, + + {0x1ef4, 2228, 1}, + + {0x1ff4, 101, 2}, + + {0x01f4, 490, 1}, + + {0x2cf2, 2909, 1}, + + {0x04f2, 1261, 1}, + + {0x1ef2, 2225, 1}, + + {0x1ff2, 257, 2}, + + {0x01f2, 486, 1}, + + {0x039b, 788, 1}, + {0xffffffff, -1, 0}, + + {0x04ec, 1252, 1}, + + {0x1eec, 2216, 1}, + + {0x1fec, 2450, 1}, + + {0x01ec, 480, 1}, + {0xffffffff, -1, 0}, + + {0x10d5b, 3969, 1}, + + {0x0399, 779, 1}, + + {0x04ea, 1249, 1}, + + {0x1eea, 2213, 1}, + + {0x1fea, 2420, 1}, + + {0x01ea, 477, 1}, + + {0x023a, 2732, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x0241, 589, 1}, + + {0x0393, 758, 1}, + + {0x04e8, 1246, 1}, + + {0x1ee8, 2210, 1}, + + {0x1fe8, 2444, 1}, + + {0x01e8, 474, 1}, + + {0x04e6, 1243, 1}, + + {0x1ee6, 2207, 1}, + + {0x1fe6, 88, 2}, + + {0x01e6, 471, 1}, + {0xffffffff, -1, 0}, + + {0x10595, 3780, 1}, + + {0x04e4, 1240, 1}, + + {0x1ee4, 2204, 1}, + + {0x1fe4, 80, 2}, + + {0x01e4, 468, 1}, + + {0x2ce0, 2897, 1}, + + {0x04e0, 1234, 1}, + + {0x1ee0, 2198, 1}, + {0xffffffff, -1, 0}, + + {0x01e0, 462, 1}, + + {0x104ce, 3660, 1}, + + {0x2cce, 2870, 1}, + + {0x1e40, 1972, 1}, + + {0x1ece, 2171, 1}, + {0xffffffff, -1, 0}, + + {0xa740, 3186, 1}, + + {0x1e38, 1960, 1}, + + {0x1f38, 2312, 1}, + + {0x00ce, 120, 1}, + + {0xa738, 3174, 1}, + + {0x0345, 779, 1}, + + {0x1e36, 1957, 1}, + + {0x104d1, 3669, 1}, + + {0x0136, 249, 1}, + + {0xa736, 3171, 1}, + + {0xa640, 3032, 1}, + + {0x1e34, 1954, 1}, + + {0x01d1, 438, 1}, + + {0x0134, 246, 1}, + + {0xa734, 3168, 1}, + + {0x00d1, 129, 1}, + + {0x0376, 727, 1}, + + {0x1041b, 3531, 1}, + + {0x2c1b, 2666, 1}, + + {0x041b, 937, 1}, + + {0x054b, 1432, 1}, + + {0x1f1b, 2279, 1}, + + {0x1f3f, 2333, 1}, + + {0x013f, 261, 1}, + + {0x0543, 1408, 1}, + + {0xff38, 3441, 1}, + + {0x10417, 3519, 1}, + + {0x2c17, 2654, 1}, + + {0x0417, 925, 1}, + + {0x10581, 3726, 1}, + + {0xff36, 3435, 1}, + + {0x13fa, 1852, 1}, + + {0x10419, 3525, 1}, + + {0x2c19, 2660, 1}, + + {0x0419, 931, 1}, + + {0xff34, 3429, 1}, + + {0x1f19, 2273, 1}, + {0xffffffff, -1, 0}, + + {0x1057e, 3717, 1}, + + {0x16e5a, 4176, 1}, + + {0x10415, 3513, 1}, + + {0x2c15, 2648, 1}, + + {0x0415, 919, 1}, + {0xffffffff, -1, 0}, + + {0x0545, 1414, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x10413, 3507, 1}, + + {0x2c13, 2642, 1}, + + {0x0413, 912, 1}, + + {0x10d5e, 3978, 1}, + + {0x03cf, 851, 1}, + {0xffffffff, -1, 0}, + + {0x10576, 3696, 1}, + + {0x10d5c, 3972, 1}, + {0xffffffff, -1, 0}, + + {0x16e58, 4170, 1}, + + {0x10405, 3465, 1}, + + {0x2c05, 2600, 1}, + + {0x0405, 1020, 1}, + + {0x16e46, 4116, 1}, + + {0x03fa, 899, 1}, + + {0x24cf, 2582, 1}, + + {0x10d53, 3945, 1}, + {0xffffffff, -1, 0}, + + {0x2126, 832, 1}, + + {0x1040f, 3495, 1}, + + {0x2c0f, 2630, 1}, + + {0x040f, 1050, 1}, + + {0xfb17, 117, 2}, + + {0x1f0f, 2267, 1}, + + {0x1040d, 3489, 1}, + + {0x2c0d, 2624, 1}, + + {0x040d, 1044, 1}, + + {0x16e44, 4110, 1}, + + {0x1f0d, 2261, 1}, + {0xffffffff, -1, 0}, + + {0x0542, 1405, 1}, + + {0x03f4, 774, 1}, + + {0x0553, 1456, 1}, + + {0x1040b, 3483, 1}, + + {0x2c0b, 2618, 1}, + + {0x040b, 1038, 1}, + + {0xfb15, 113, 2}, + + {0x1f0b, 2255, 1}, + + {0x10403, 3459, 1}, + + {0x2c03, 2594, 1}, + + {0x0403, 1014, 1}, + + {0x053a, 1381, 1}, + + {0x03ec, 884, 1}, + + {0xfb13, 121, 2}, + + {0x0541, 1402, 1}, + + {0x10d51, 3939, 1}, + + {0x10409, 3477, 1}, + + {0x2c09, 2612, 1}, + + {0x0409, 1032, 1}, + + {0x03ea, 881, 1}, + + {0x1f09, 2249, 1}, + + {0x1f3b, 2321, 1}, + + {0x013b, 255, 1}, + + {0xfb05, 29, 2}, + + {0x10401, 3453, 1}, + + {0x2c01, 2588, 1}, + + {0x0401, 1008, 1}, + + {0x1057a, 3708, 1}, + + {0x03e8, 878, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x0551, 1450, 1}, + + {0x03e6, 875, 1}, + + {0x04f8, 1270, 1}, + + {0x1ef8, 2234, 1}, + + {0x1ff8, 2414, 1}, + + {0x01f8, 493, 1}, + {0xffffffff, -1, 0}, + + {0x03e4, 872, 1}, + + {0x04f6, 1267, 1}, + + {0x1ef6, 2231, 1}, + + {0x1ff6, 92, 2}, + + {0x01f6, 372, 1}, + + {0x03e0, 866, 1}, + {0xffffffff, -1, 0}, + + {0x2cd4, 2879, 1}, + + {0x04d4, 1216, 1}, + + {0x1ed4, 2180, 1}, + + {0x0179, 345, 1}, + + {0xa779, 3258, 1}, + + {0xab79, 1633, 1}, + + {0xfb03, 0, 3}, + + {0x00d4, 138, 1}, + + {0x1e3c, 1966, 1}, + + {0x1f3c, 2324, 1}, + {0xffffffff, -1, 0}, + + {0xa73c, 3180, 1}, + + {0x10423, 3555, 1}, + + {0x2c23, 2690, 1}, + + {0x0423, 965, 1}, + + {0x24ce, 2579, 1}, + + {0x03d1, 774, 1}, + + {0x2c2d, 2720, 1}, + + {0x042d, 996, 1}, + + {0x16e5b, 4179, 1}, + + {0x1f2d, 2303, 1}, + {0xffffffff, -1, 0}, + + {0xfb01, 8, 2}, + + {0x2c29, 2708, 1}, + + {0x0429, 983, 1}, + + {0x023b, 580, 1}, + + {0x1f29, 2291, 1}, + + {0x1041f, 3543, 1}, + + {0x2c1f, 2678, 1}, + + {0x041f, 950, 1}, + + {0x10411, 3501, 1}, + + {0x2c11, 2636, 1}, + + {0x0411, 905, 1}, + + {0x10407, 3471, 1}, + + {0x2c07, 2606, 1}, + + {0x0407, 1026, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0xff23, 3378, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x0540, 1399, 1}, + + {0xff2d, 3408, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x0538, 1375, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0xff29, 3396, 1}, + {0xffffffff, -1, 0}, + + {0x0536, 1369, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x0534, 1363, 1}, + {0xffffffff, -1, 0}, + + {0x16e4b, 4131, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x16e43, 4107, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x053f, 1396, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, + + {0x216d, 2495, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x216b, 2489, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x16e45, 4113, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x13f8, 1846, 1}, + + {0x2169, 2483, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x16e5e, 4188, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x16e5c, 4182, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, + + {0x16e42, 4104, 1}, + {0xffffffff, -1, 0}, + + {0x16e53, 4155, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, + + {0x16e41, 4101, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x053b, 1384, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x16e51, 4149, 1}, + + {0x1e91b, 4275, 1}, + {0xffffffff, -1, 0}, + + {0x2160, 2456, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, + + {0x1e917, 4263, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x212b, 92, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e919, 4269, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x10579, 3705, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e915, 4257, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x053c, 1387, 1}, + {0xffffffff, -1, 0}, + + {0x1e913, 4251, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e905, 4209, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e90f, 4239, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e90d, 4233, 1}, + + {0x16e40, 4098, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e90b, 4227, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e903, 4203, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e909, 4221, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e901, 4197, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e91f, 4287, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e911, 4245, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x1e907, 4215, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x2132, 2453, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x216c, 2492, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x216a, 2486, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x2168, 2480, 1}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, + + {0x2166, 2474, 1} + }; + + + { + int key = hash(&code); + + if (key <= MAX_HASH_VALUE) + { + OnigCodePoint gcode = wordlist[key].code; + + if (code == gcode && wordlist[key].index >= 0) + return &wordlist[key]; + } + } + return 0; +} diff --git a/thirdparty/oniguruma/unicode_wb_data.c b/thirdparty/oniguruma/unicode_wb_data.c new file mode 100644 index 000000000..cfea5e23f --- /dev/null +++ b/thirdparty/oniguruma/unicode_wb_data.c @@ -0,0 +1,1138 @@ +/* unicode_wb_data.c: Generated by make_unicode_wb_data.py. */ +/*- + * Copyright (c) 2019-2024 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#define WORD_BREAK_PROPERTY_VERSION 160000 + +/* +ALetter +CR +Double_Quote +Extend +ExtendNumLet +Format +Hebrew_Letter +Katakana +LF +MidLetter +MidNum +MidNumLet +Newline +Numeric +Regional_Indicator +Single_Quote +WSegSpace +ZWJ +*/ + +static int WB_RANGE_NUM = 1085; +static WB_RANGE_TYPE WB_RANGES[] = { + {0x00000a, 0x00000a, WB_LF }, + {0x00000b, 0x00000c, WB_Newline }, + {0x00000d, 0x00000d, WB_CR }, + {0x000020, 0x000020, WB_WSegSpace }, + {0x000022, 0x000022, WB_Double_Quote }, + {0x000027, 0x000027, WB_Single_Quote }, + {0x00002c, 0x00002c, WB_MidNum }, + {0x00002e, 0x00002e, WB_MidNumLet }, + {0x000030, 0x000039, WB_Numeric }, + {0x00003a, 0x00003a, WB_MidLetter }, + {0x00003b, 0x00003b, WB_MidNum }, + {0x000041, 0x00005a, WB_ALetter }, + {0x00005f, 0x00005f, WB_ExtendNumLet }, + {0x000061, 0x00007a, WB_ALetter }, + {0x000085, 0x000085, WB_Newline }, + {0x0000aa, 0x0000aa, WB_ALetter }, + {0x0000ad, 0x0000ad, WB_Format }, + {0x0000b5, 0x0000b5, WB_ALetter }, + {0x0000b7, 0x0000b7, WB_MidLetter }, + {0x0000ba, 0x0000ba, WB_ALetter }, + {0x0000c0, 0x0000d6, WB_ALetter }, + {0x0000d8, 0x0000f6, WB_ALetter }, + {0x0000f8, 0x0002d7, WB_ALetter }, + {0x0002de, 0x0002ff, WB_ALetter }, + {0x000300, 0x00036f, WB_Extend }, + {0x000370, 0x000374, WB_ALetter }, + {0x000376, 0x000377, WB_ALetter }, + {0x00037a, 0x00037d, WB_ALetter }, + {0x00037e, 0x00037e, WB_MidNum }, + {0x00037f, 0x00037f, WB_ALetter }, + {0x000386, 0x000386, WB_ALetter }, + {0x000387, 0x000387, WB_MidLetter }, + {0x000388, 0x00038a, WB_ALetter }, + {0x00038c, 0x00038c, WB_ALetter }, + {0x00038e, 0x0003a1, WB_ALetter }, + {0x0003a3, 0x0003f5, WB_ALetter }, + {0x0003f7, 0x000481, WB_ALetter }, + {0x000483, 0x000489, WB_Extend }, + {0x00048a, 0x00052f, WB_ALetter }, + {0x000531, 0x000556, WB_ALetter }, + {0x000559, 0x00055c, WB_ALetter }, + {0x00055e, 0x00055e, WB_ALetter }, + {0x00055f, 0x00055f, WB_MidLetter }, + {0x000560, 0x000588, WB_ALetter }, + {0x000589, 0x000589, WB_MidNum }, + {0x00058a, 0x00058a, WB_ALetter }, + {0x000591, 0x0005bd, WB_Extend }, + {0x0005bf, 0x0005bf, WB_Extend }, + {0x0005c1, 0x0005c2, WB_Extend }, + {0x0005c4, 0x0005c5, WB_Extend }, + {0x0005c7, 0x0005c7, WB_Extend }, + {0x0005d0, 0x0005ea, WB_Hebrew_Letter }, + {0x0005ef, 0x0005f2, WB_Hebrew_Letter }, + {0x0005f3, 0x0005f3, WB_ALetter }, + {0x0005f4, 0x0005f4, WB_MidLetter }, + {0x000600, 0x000605, WB_Numeric }, + {0x00060c, 0x00060d, WB_MidNum }, + {0x000610, 0x00061a, WB_Extend }, + {0x00061c, 0x00061c, WB_Format }, + {0x000620, 0x00064a, WB_ALetter }, + {0x00064b, 0x00065f, WB_Extend }, + {0x000660, 0x000669, WB_Numeric }, + {0x00066b, 0x00066b, WB_Numeric }, + {0x00066c, 0x00066c, WB_MidNum }, + {0x00066e, 0x00066f, WB_ALetter }, + {0x000670, 0x000670, WB_Extend }, + {0x000671, 0x0006d3, WB_ALetter }, + {0x0006d5, 0x0006d5, WB_ALetter }, + {0x0006d6, 0x0006dc, WB_Extend }, + {0x0006dd, 0x0006dd, WB_Numeric }, + {0x0006df, 0x0006e4, WB_Extend }, + {0x0006e5, 0x0006e6, WB_ALetter }, + {0x0006e7, 0x0006e8, WB_Extend }, + {0x0006ea, 0x0006ed, WB_Extend }, + {0x0006ee, 0x0006ef, WB_ALetter }, + {0x0006f0, 0x0006f9, WB_Numeric }, + {0x0006fa, 0x0006fc, WB_ALetter }, + {0x0006ff, 0x0006ff, WB_ALetter }, + {0x00070f, 0x000710, WB_ALetter }, + {0x000711, 0x000711, WB_Extend }, + {0x000712, 0x00072f, WB_ALetter }, + {0x000730, 0x00074a, WB_Extend }, + {0x00074d, 0x0007a5, WB_ALetter }, + {0x0007a6, 0x0007b0, WB_Extend }, + {0x0007b1, 0x0007b1, WB_ALetter }, + {0x0007c0, 0x0007c9, WB_Numeric }, + {0x0007ca, 0x0007ea, WB_ALetter }, + {0x0007eb, 0x0007f3, WB_Extend }, + {0x0007f4, 0x0007f5, WB_ALetter }, + {0x0007f8, 0x0007f8, WB_MidNum }, + {0x0007fa, 0x0007fa, WB_ALetter }, + {0x0007fd, 0x0007fd, WB_Extend }, + {0x000800, 0x000815, WB_ALetter }, + {0x000816, 0x000819, WB_Extend }, + {0x00081a, 0x00081a, WB_ALetter }, + {0x00081b, 0x000823, WB_Extend }, + {0x000824, 0x000824, WB_ALetter }, + {0x000825, 0x000827, WB_Extend }, + {0x000828, 0x000828, WB_ALetter }, + {0x000829, 0x00082d, WB_Extend }, + {0x000840, 0x000858, WB_ALetter }, + {0x000859, 0x00085b, WB_Extend }, + {0x000860, 0x00086a, WB_ALetter }, + {0x000870, 0x000887, WB_ALetter }, + {0x000889, 0x00088e, WB_ALetter }, + {0x000890, 0x000891, WB_Numeric }, + {0x000897, 0x00089f, WB_Extend }, + {0x0008a0, 0x0008c9, WB_ALetter }, + {0x0008ca, 0x0008e1, WB_Extend }, + {0x0008e2, 0x0008e2, WB_Numeric }, + {0x0008e3, 0x000903, WB_Extend }, + {0x000904, 0x000939, WB_ALetter }, + {0x00093a, 0x00093c, WB_Extend }, + {0x00093d, 0x00093d, WB_ALetter }, + {0x00093e, 0x00094f, WB_Extend }, + {0x000950, 0x000950, WB_ALetter }, + {0x000951, 0x000957, WB_Extend }, + {0x000958, 0x000961, WB_ALetter }, + {0x000962, 0x000963, WB_Extend }, + {0x000966, 0x00096f, WB_Numeric }, + {0x000971, 0x000980, WB_ALetter }, + {0x000981, 0x000983, WB_Extend }, + {0x000985, 0x00098c, WB_ALetter }, + {0x00098f, 0x000990, WB_ALetter }, + {0x000993, 0x0009a8, WB_ALetter }, + {0x0009aa, 0x0009b0, WB_ALetter }, + {0x0009b2, 0x0009b2, WB_ALetter }, + {0x0009b6, 0x0009b9, WB_ALetter }, + {0x0009bc, 0x0009bc, WB_Extend }, + {0x0009bd, 0x0009bd, WB_ALetter }, + {0x0009be, 0x0009c4, WB_Extend }, + {0x0009c7, 0x0009c8, WB_Extend }, + {0x0009cb, 0x0009cd, WB_Extend }, + {0x0009ce, 0x0009ce, WB_ALetter }, + {0x0009d7, 0x0009d7, WB_Extend }, + {0x0009dc, 0x0009dd, WB_ALetter }, + {0x0009df, 0x0009e1, WB_ALetter }, + {0x0009e2, 0x0009e3, WB_Extend }, + {0x0009e6, 0x0009ef, WB_Numeric }, + {0x0009f0, 0x0009f1, WB_ALetter }, + {0x0009fc, 0x0009fc, WB_ALetter }, + {0x0009fe, 0x0009fe, WB_Extend }, + {0x000a01, 0x000a03, WB_Extend }, + {0x000a05, 0x000a0a, WB_ALetter }, + {0x000a0f, 0x000a10, WB_ALetter }, + {0x000a13, 0x000a28, WB_ALetter }, + {0x000a2a, 0x000a30, WB_ALetter }, + {0x000a32, 0x000a33, WB_ALetter }, + {0x000a35, 0x000a36, WB_ALetter }, + {0x000a38, 0x000a39, WB_ALetter }, + {0x000a3c, 0x000a3c, WB_Extend }, + {0x000a3e, 0x000a42, WB_Extend }, + {0x000a47, 0x000a48, WB_Extend }, + {0x000a4b, 0x000a4d, WB_Extend }, + {0x000a51, 0x000a51, WB_Extend }, + {0x000a59, 0x000a5c, WB_ALetter }, + {0x000a5e, 0x000a5e, WB_ALetter }, + {0x000a66, 0x000a6f, WB_Numeric }, + {0x000a70, 0x000a71, WB_Extend }, + {0x000a72, 0x000a74, WB_ALetter }, + {0x000a75, 0x000a75, WB_Extend }, + {0x000a81, 0x000a83, WB_Extend }, + {0x000a85, 0x000a8d, WB_ALetter }, + {0x000a8f, 0x000a91, WB_ALetter }, + {0x000a93, 0x000aa8, WB_ALetter }, + {0x000aaa, 0x000ab0, WB_ALetter }, + {0x000ab2, 0x000ab3, WB_ALetter }, + {0x000ab5, 0x000ab9, WB_ALetter }, + {0x000abc, 0x000abc, WB_Extend }, + {0x000abd, 0x000abd, WB_ALetter }, + {0x000abe, 0x000ac5, WB_Extend }, + {0x000ac7, 0x000ac9, WB_Extend }, + {0x000acb, 0x000acd, WB_Extend }, + {0x000ad0, 0x000ad0, WB_ALetter }, + {0x000ae0, 0x000ae1, WB_ALetter }, + {0x000ae2, 0x000ae3, WB_Extend }, + {0x000ae6, 0x000aef, WB_Numeric }, + {0x000af9, 0x000af9, WB_ALetter }, + {0x000afa, 0x000aff, WB_Extend }, + {0x000b01, 0x000b03, WB_Extend }, + {0x000b05, 0x000b0c, WB_ALetter }, + {0x000b0f, 0x000b10, WB_ALetter }, + {0x000b13, 0x000b28, WB_ALetter }, + {0x000b2a, 0x000b30, WB_ALetter }, + {0x000b32, 0x000b33, WB_ALetter }, + {0x000b35, 0x000b39, WB_ALetter }, + {0x000b3c, 0x000b3c, WB_Extend }, + {0x000b3d, 0x000b3d, WB_ALetter }, + {0x000b3e, 0x000b44, WB_Extend }, + {0x000b47, 0x000b48, WB_Extend }, + {0x000b4b, 0x000b4d, WB_Extend }, + {0x000b55, 0x000b57, WB_Extend }, + {0x000b5c, 0x000b5d, WB_ALetter }, + {0x000b5f, 0x000b61, WB_ALetter }, + {0x000b62, 0x000b63, WB_Extend }, + {0x000b66, 0x000b6f, WB_Numeric }, + {0x000b71, 0x000b71, WB_ALetter }, + {0x000b82, 0x000b82, WB_Extend }, + {0x000b83, 0x000b83, WB_ALetter }, + {0x000b85, 0x000b8a, WB_ALetter }, + {0x000b8e, 0x000b90, WB_ALetter }, + {0x000b92, 0x000b95, WB_ALetter }, + {0x000b99, 0x000b9a, WB_ALetter }, + {0x000b9c, 0x000b9c, WB_ALetter }, + {0x000b9e, 0x000b9f, WB_ALetter }, + {0x000ba3, 0x000ba4, WB_ALetter }, + {0x000ba8, 0x000baa, WB_ALetter }, + {0x000bae, 0x000bb9, WB_ALetter }, + {0x000bbe, 0x000bc2, WB_Extend }, + {0x000bc6, 0x000bc8, WB_Extend }, + {0x000bca, 0x000bcd, WB_Extend }, + {0x000bd0, 0x000bd0, WB_ALetter }, + {0x000bd7, 0x000bd7, WB_Extend }, + {0x000be6, 0x000bef, WB_Numeric }, + {0x000c00, 0x000c04, WB_Extend }, + {0x000c05, 0x000c0c, WB_ALetter }, + {0x000c0e, 0x000c10, WB_ALetter }, + {0x000c12, 0x000c28, WB_ALetter }, + {0x000c2a, 0x000c39, WB_ALetter }, + {0x000c3c, 0x000c3c, WB_Extend }, + {0x000c3d, 0x000c3d, WB_ALetter }, + {0x000c3e, 0x000c44, WB_Extend }, + {0x000c46, 0x000c48, WB_Extend }, + {0x000c4a, 0x000c4d, WB_Extend }, + {0x000c55, 0x000c56, WB_Extend }, + {0x000c58, 0x000c5a, WB_ALetter }, + {0x000c5d, 0x000c5d, WB_ALetter }, + {0x000c60, 0x000c61, WB_ALetter }, + {0x000c62, 0x000c63, WB_Extend }, + {0x000c66, 0x000c6f, WB_Numeric }, + {0x000c80, 0x000c80, WB_ALetter }, + {0x000c81, 0x000c83, WB_Extend }, + {0x000c85, 0x000c8c, WB_ALetter }, + {0x000c8e, 0x000c90, WB_ALetter }, + {0x000c92, 0x000ca8, WB_ALetter }, + {0x000caa, 0x000cb3, WB_ALetter }, + {0x000cb5, 0x000cb9, WB_ALetter }, + {0x000cbc, 0x000cbc, WB_Extend }, + {0x000cbd, 0x000cbd, WB_ALetter }, + {0x000cbe, 0x000cc4, WB_Extend }, + {0x000cc6, 0x000cc8, WB_Extend }, + {0x000cca, 0x000ccd, WB_Extend }, + {0x000cd5, 0x000cd6, WB_Extend }, + {0x000cdd, 0x000cde, WB_ALetter }, + {0x000ce0, 0x000ce1, WB_ALetter }, + {0x000ce2, 0x000ce3, WB_Extend }, + {0x000ce6, 0x000cef, WB_Numeric }, + {0x000cf1, 0x000cf2, WB_ALetter }, + {0x000cf3, 0x000cf3, WB_Extend }, + {0x000d00, 0x000d03, WB_Extend }, + {0x000d04, 0x000d0c, WB_ALetter }, + {0x000d0e, 0x000d10, WB_ALetter }, + {0x000d12, 0x000d3a, WB_ALetter }, + {0x000d3b, 0x000d3c, WB_Extend }, + {0x000d3d, 0x000d3d, WB_ALetter }, + {0x000d3e, 0x000d44, WB_Extend }, + {0x000d46, 0x000d48, WB_Extend }, + {0x000d4a, 0x000d4d, WB_Extend }, + {0x000d4e, 0x000d4e, WB_ALetter }, + {0x000d54, 0x000d56, WB_ALetter }, + {0x000d57, 0x000d57, WB_Extend }, + {0x000d5f, 0x000d61, WB_ALetter }, + {0x000d62, 0x000d63, WB_Extend }, + {0x000d66, 0x000d6f, WB_Numeric }, + {0x000d7a, 0x000d7f, WB_ALetter }, + {0x000d81, 0x000d83, WB_Extend }, + {0x000d85, 0x000d96, WB_ALetter }, + {0x000d9a, 0x000db1, WB_ALetter }, + {0x000db3, 0x000dbb, WB_ALetter }, + {0x000dbd, 0x000dbd, WB_ALetter }, + {0x000dc0, 0x000dc6, WB_ALetter }, + {0x000dca, 0x000dca, WB_Extend }, + {0x000dcf, 0x000dd4, WB_Extend }, + {0x000dd6, 0x000dd6, WB_Extend }, + {0x000dd8, 0x000ddf, WB_Extend }, + {0x000de6, 0x000def, WB_Numeric }, + {0x000df2, 0x000df3, WB_Extend }, + {0x000e31, 0x000e31, WB_Extend }, + {0x000e34, 0x000e3a, WB_Extend }, + {0x000e47, 0x000e4e, WB_Extend }, + {0x000e50, 0x000e59, WB_Numeric }, + {0x000eb1, 0x000eb1, WB_Extend }, + {0x000eb4, 0x000ebc, WB_Extend }, + {0x000ec8, 0x000ece, WB_Extend }, + {0x000ed0, 0x000ed9, WB_Numeric }, + {0x000f00, 0x000f00, WB_ALetter }, + {0x000f18, 0x000f19, WB_Extend }, + {0x000f20, 0x000f29, WB_Numeric }, + {0x000f35, 0x000f35, WB_Extend }, + {0x000f37, 0x000f37, WB_Extend }, + {0x000f39, 0x000f39, WB_Extend }, + {0x000f3e, 0x000f3f, WB_Extend }, + {0x000f40, 0x000f47, WB_ALetter }, + {0x000f49, 0x000f6c, WB_ALetter }, + {0x000f71, 0x000f84, WB_Extend }, + {0x000f86, 0x000f87, WB_Extend }, + {0x000f88, 0x000f8c, WB_ALetter }, + {0x000f8d, 0x000f97, WB_Extend }, + {0x000f99, 0x000fbc, WB_Extend }, + {0x000fc6, 0x000fc6, WB_Extend }, + {0x00102b, 0x00103e, WB_Extend }, + {0x001040, 0x001049, WB_Numeric }, + {0x001056, 0x001059, WB_Extend }, + {0x00105e, 0x001060, WB_Extend }, + {0x001062, 0x001064, WB_Extend }, + {0x001067, 0x00106d, WB_Extend }, + {0x001071, 0x001074, WB_Extend }, + {0x001082, 0x00108d, WB_Extend }, + {0x00108f, 0x00108f, WB_Extend }, + {0x001090, 0x001099, WB_Numeric }, + {0x00109a, 0x00109d, WB_Extend }, + {0x0010a0, 0x0010c5, WB_ALetter }, + {0x0010c7, 0x0010c7, WB_ALetter }, + {0x0010cd, 0x0010cd, WB_ALetter }, + {0x0010d0, 0x0010fa, WB_ALetter }, + {0x0010fc, 0x001248, WB_ALetter }, + {0x00124a, 0x00124d, WB_ALetter }, + {0x001250, 0x001256, WB_ALetter }, + {0x001258, 0x001258, WB_ALetter }, + {0x00125a, 0x00125d, WB_ALetter }, + {0x001260, 0x001288, WB_ALetter }, + {0x00128a, 0x00128d, WB_ALetter }, + {0x001290, 0x0012b0, WB_ALetter }, + {0x0012b2, 0x0012b5, WB_ALetter }, + {0x0012b8, 0x0012be, WB_ALetter }, + {0x0012c0, 0x0012c0, WB_ALetter }, + {0x0012c2, 0x0012c5, WB_ALetter }, + {0x0012c8, 0x0012d6, WB_ALetter }, + {0x0012d8, 0x001310, WB_ALetter }, + {0x001312, 0x001315, WB_ALetter }, + {0x001318, 0x00135a, WB_ALetter }, + {0x00135d, 0x00135f, WB_Extend }, + {0x001380, 0x00138f, WB_ALetter }, + {0x0013a0, 0x0013f5, WB_ALetter }, + {0x0013f8, 0x0013fd, WB_ALetter }, + {0x001401, 0x00166c, WB_ALetter }, + {0x00166f, 0x00167f, WB_ALetter }, + {0x001680, 0x001680, WB_WSegSpace }, + {0x001681, 0x00169a, WB_ALetter }, + {0x0016a0, 0x0016ea, WB_ALetter }, + {0x0016ee, 0x0016f8, WB_ALetter }, + {0x001700, 0x001711, WB_ALetter }, + {0x001712, 0x001715, WB_Extend }, + {0x00171f, 0x001731, WB_ALetter }, + {0x001732, 0x001734, WB_Extend }, + {0x001740, 0x001751, WB_ALetter }, + {0x001752, 0x001753, WB_Extend }, + {0x001760, 0x00176c, WB_ALetter }, + {0x00176e, 0x001770, WB_ALetter }, + {0x001772, 0x001773, WB_Extend }, + {0x0017b4, 0x0017d3, WB_Extend }, + {0x0017dd, 0x0017dd, WB_Extend }, + {0x0017e0, 0x0017e9, WB_Numeric }, + {0x00180b, 0x00180d, WB_Extend }, + {0x00180e, 0x00180e, WB_Format }, + {0x00180f, 0x00180f, WB_Extend }, + {0x001810, 0x001819, WB_Numeric }, + {0x001820, 0x001878, WB_ALetter }, + {0x001880, 0x001884, WB_ALetter }, + {0x001885, 0x001886, WB_Extend }, + {0x001887, 0x0018a8, WB_ALetter }, + {0x0018a9, 0x0018a9, WB_Extend }, + {0x0018aa, 0x0018aa, WB_ALetter }, + {0x0018b0, 0x0018f5, WB_ALetter }, + {0x001900, 0x00191e, WB_ALetter }, + {0x001920, 0x00192b, WB_Extend }, + {0x001930, 0x00193b, WB_Extend }, + {0x001946, 0x00194f, WB_Numeric }, + {0x0019d0, 0x0019da, WB_Numeric }, + {0x001a00, 0x001a16, WB_ALetter }, + {0x001a17, 0x001a1b, WB_Extend }, + {0x001a55, 0x001a5e, WB_Extend }, + {0x001a60, 0x001a7c, WB_Extend }, + {0x001a7f, 0x001a7f, WB_Extend }, + {0x001a80, 0x001a89, WB_Numeric }, + {0x001a90, 0x001a99, WB_Numeric }, + {0x001ab0, 0x001ace, WB_Extend }, + {0x001b00, 0x001b04, WB_Extend }, + {0x001b05, 0x001b33, WB_ALetter }, + {0x001b34, 0x001b44, WB_Extend }, + {0x001b45, 0x001b4c, WB_ALetter }, + {0x001b50, 0x001b59, WB_Numeric }, + {0x001b6b, 0x001b73, WB_Extend }, + {0x001b80, 0x001b82, WB_Extend }, + {0x001b83, 0x001ba0, WB_ALetter }, + {0x001ba1, 0x001bad, WB_Extend }, + {0x001bae, 0x001baf, WB_ALetter }, + {0x001bb0, 0x001bb9, WB_Numeric }, + {0x001bba, 0x001be5, WB_ALetter }, + {0x001be6, 0x001bf3, WB_Extend }, + {0x001c00, 0x001c23, WB_ALetter }, + {0x001c24, 0x001c37, WB_Extend }, + {0x001c40, 0x001c49, WB_Numeric }, + {0x001c4d, 0x001c4f, WB_ALetter }, + {0x001c50, 0x001c59, WB_Numeric }, + {0x001c5a, 0x001c7d, WB_ALetter }, + {0x001c80, 0x001c8a, WB_ALetter }, + {0x001c90, 0x001cba, WB_ALetter }, + {0x001cbd, 0x001cbf, WB_ALetter }, + {0x001cd0, 0x001cd2, WB_Extend }, + {0x001cd4, 0x001ce8, WB_Extend }, + {0x001ce9, 0x001cec, WB_ALetter }, + {0x001ced, 0x001ced, WB_Extend }, + {0x001cee, 0x001cf3, WB_ALetter }, + {0x001cf4, 0x001cf4, WB_Extend }, + {0x001cf5, 0x001cf6, WB_ALetter }, + {0x001cf7, 0x001cf9, WB_Extend }, + {0x001cfa, 0x001cfa, WB_ALetter }, + {0x001d00, 0x001dbf, WB_ALetter }, + {0x001dc0, 0x001dff, WB_Extend }, + {0x001e00, 0x001f15, WB_ALetter }, + {0x001f18, 0x001f1d, WB_ALetter }, + {0x001f20, 0x001f45, WB_ALetter }, + {0x001f48, 0x001f4d, WB_ALetter }, + {0x001f50, 0x001f57, WB_ALetter }, + {0x001f59, 0x001f59, WB_ALetter }, + {0x001f5b, 0x001f5b, WB_ALetter }, + {0x001f5d, 0x001f5d, WB_ALetter }, + {0x001f5f, 0x001f7d, WB_ALetter }, + {0x001f80, 0x001fb4, WB_ALetter }, + {0x001fb6, 0x001fbc, WB_ALetter }, + {0x001fbe, 0x001fbe, WB_ALetter }, + {0x001fc2, 0x001fc4, WB_ALetter }, + {0x001fc6, 0x001fcc, WB_ALetter }, + {0x001fd0, 0x001fd3, WB_ALetter }, + {0x001fd6, 0x001fdb, WB_ALetter }, + {0x001fe0, 0x001fec, WB_ALetter }, + {0x001ff2, 0x001ff4, WB_ALetter }, + {0x001ff6, 0x001ffc, WB_ALetter }, + {0x002000, 0x002006, WB_WSegSpace }, + {0x002008, 0x00200a, WB_WSegSpace }, + {0x00200c, 0x00200c, WB_Extend }, + {0x00200d, 0x00200d, WB_ZWJ }, + {0x00200e, 0x00200f, WB_Format }, + {0x002018, 0x002019, WB_MidNumLet }, + {0x002024, 0x002024, WB_MidNumLet }, + {0x002027, 0x002027, WB_MidLetter }, + {0x002028, 0x002029, WB_Newline }, + {0x00202a, 0x00202e, WB_Format }, + {0x00202f, 0x00202f, WB_ExtendNumLet }, + {0x00203f, 0x002040, WB_ExtendNumLet }, + {0x002044, 0x002044, WB_MidNum }, + {0x002054, 0x002054, WB_ExtendNumLet }, + {0x00205f, 0x00205f, WB_WSegSpace }, + {0x002060, 0x002064, WB_Format }, + {0x002066, 0x00206f, WB_Format }, + {0x002071, 0x002071, WB_ALetter }, + {0x00207f, 0x00207f, WB_ALetter }, + {0x002090, 0x00209c, WB_ALetter }, + {0x0020d0, 0x0020f0, WB_Extend }, + {0x002102, 0x002102, WB_ALetter }, + {0x002107, 0x002107, WB_ALetter }, + {0x00210a, 0x002113, WB_ALetter }, + {0x002115, 0x002115, WB_ALetter }, + {0x002119, 0x00211d, WB_ALetter }, + {0x002124, 0x002124, WB_ALetter }, + {0x002126, 0x002126, WB_ALetter }, + {0x002128, 0x002128, WB_ALetter }, + {0x00212a, 0x00212d, WB_ALetter }, + {0x00212f, 0x002139, WB_ALetter }, + {0x00213c, 0x00213f, WB_ALetter }, + {0x002145, 0x002149, WB_ALetter }, + {0x00214e, 0x00214e, WB_ALetter }, + {0x002160, 0x002188, WB_ALetter }, + {0x0024b6, 0x0024e9, WB_ALetter }, + {0x002c00, 0x002ce4, WB_ALetter }, + {0x002ceb, 0x002cee, WB_ALetter }, + {0x002cef, 0x002cf1, WB_Extend }, + {0x002cf2, 0x002cf3, WB_ALetter }, + {0x002d00, 0x002d25, WB_ALetter }, + {0x002d27, 0x002d27, WB_ALetter }, + {0x002d2d, 0x002d2d, WB_ALetter }, + {0x002d30, 0x002d67, WB_ALetter }, + {0x002d6f, 0x002d6f, WB_ALetter }, + {0x002d7f, 0x002d7f, WB_Extend }, + {0x002d80, 0x002d96, WB_ALetter }, + {0x002da0, 0x002da6, WB_ALetter }, + {0x002da8, 0x002dae, WB_ALetter }, + {0x002db0, 0x002db6, WB_ALetter }, + {0x002db8, 0x002dbe, WB_ALetter }, + {0x002dc0, 0x002dc6, WB_ALetter }, + {0x002dc8, 0x002dce, WB_ALetter }, + {0x002dd0, 0x002dd6, WB_ALetter }, + {0x002dd8, 0x002dde, WB_ALetter }, + {0x002de0, 0x002dff, WB_Extend }, + {0x002e2f, 0x002e2f, WB_ALetter }, + {0x003000, 0x003000, WB_WSegSpace }, + {0x003005, 0x003005, WB_ALetter }, + {0x00302a, 0x00302f, WB_Extend }, + {0x003031, 0x003035, WB_Katakana }, + {0x00303b, 0x00303c, WB_ALetter }, + {0x003099, 0x00309a, WB_Extend }, + {0x00309b, 0x00309c, WB_Katakana }, + {0x0030a0, 0x0030fa, WB_Katakana }, + {0x0030fc, 0x0030ff, WB_Katakana }, + {0x003105, 0x00312f, WB_ALetter }, + {0x003131, 0x00318e, WB_ALetter }, + {0x0031a0, 0x0031bf, WB_ALetter }, + {0x0031f0, 0x0031ff, WB_Katakana }, + {0x0032d0, 0x0032fe, WB_Katakana }, + {0x003300, 0x003357, WB_Katakana }, + {0x00a000, 0x00a48c, WB_ALetter }, + {0x00a4d0, 0x00a4fd, WB_ALetter }, + {0x00a500, 0x00a60c, WB_ALetter }, + {0x00a610, 0x00a61f, WB_ALetter }, + {0x00a620, 0x00a629, WB_Numeric }, + {0x00a62a, 0x00a62b, WB_ALetter }, + {0x00a640, 0x00a66e, WB_ALetter }, + {0x00a66f, 0x00a672, WB_Extend }, + {0x00a674, 0x00a67d, WB_Extend }, + {0x00a67f, 0x00a69d, WB_ALetter }, + {0x00a69e, 0x00a69f, WB_Extend }, + {0x00a6a0, 0x00a6ef, WB_ALetter }, + {0x00a6f0, 0x00a6f1, WB_Extend }, + {0x00a708, 0x00a7cd, WB_ALetter }, + {0x00a7d0, 0x00a7d1, WB_ALetter }, + {0x00a7d3, 0x00a7d3, WB_ALetter }, + {0x00a7d5, 0x00a7dc, WB_ALetter }, + {0x00a7f2, 0x00a801, WB_ALetter }, + {0x00a802, 0x00a802, WB_Extend }, + {0x00a803, 0x00a805, WB_ALetter }, + {0x00a806, 0x00a806, WB_Extend }, + {0x00a807, 0x00a80a, WB_ALetter }, + {0x00a80b, 0x00a80b, WB_Extend }, + {0x00a80c, 0x00a822, WB_ALetter }, + {0x00a823, 0x00a827, WB_Extend }, + {0x00a82c, 0x00a82c, WB_Extend }, + {0x00a840, 0x00a873, WB_ALetter }, + {0x00a880, 0x00a881, WB_Extend }, + {0x00a882, 0x00a8b3, WB_ALetter }, + {0x00a8b4, 0x00a8c5, WB_Extend }, + {0x00a8d0, 0x00a8d9, WB_Numeric }, + {0x00a8e0, 0x00a8f1, WB_Extend }, + {0x00a8f2, 0x00a8f7, WB_ALetter }, + {0x00a8fb, 0x00a8fb, WB_ALetter }, + {0x00a8fd, 0x00a8fe, WB_ALetter }, + {0x00a8ff, 0x00a8ff, WB_Extend }, + {0x00a900, 0x00a909, WB_Numeric }, + {0x00a90a, 0x00a925, WB_ALetter }, + {0x00a926, 0x00a92d, WB_Extend }, + {0x00a930, 0x00a946, WB_ALetter }, + {0x00a947, 0x00a953, WB_Extend }, + {0x00a960, 0x00a97c, WB_ALetter }, + {0x00a980, 0x00a983, WB_Extend }, + {0x00a984, 0x00a9b2, WB_ALetter }, + {0x00a9b3, 0x00a9c0, WB_Extend }, + {0x00a9cf, 0x00a9cf, WB_ALetter }, + {0x00a9d0, 0x00a9d9, WB_Numeric }, + {0x00a9e5, 0x00a9e5, WB_Extend }, + {0x00a9f0, 0x00a9f9, WB_Numeric }, + {0x00aa00, 0x00aa28, WB_ALetter }, + {0x00aa29, 0x00aa36, WB_Extend }, + {0x00aa40, 0x00aa42, WB_ALetter }, + {0x00aa43, 0x00aa43, WB_Extend }, + {0x00aa44, 0x00aa4b, WB_ALetter }, + {0x00aa4c, 0x00aa4d, WB_Extend }, + {0x00aa50, 0x00aa59, WB_Numeric }, + {0x00aa7b, 0x00aa7d, WB_Extend }, + {0x00aab0, 0x00aab0, WB_Extend }, + {0x00aab2, 0x00aab4, WB_Extend }, + {0x00aab7, 0x00aab8, WB_Extend }, + {0x00aabe, 0x00aabf, WB_Extend }, + {0x00aac1, 0x00aac1, WB_Extend }, + {0x00aae0, 0x00aaea, WB_ALetter }, + {0x00aaeb, 0x00aaef, WB_Extend }, + {0x00aaf2, 0x00aaf4, WB_ALetter }, + {0x00aaf5, 0x00aaf6, WB_Extend }, + {0x00ab01, 0x00ab06, WB_ALetter }, + {0x00ab09, 0x00ab0e, WB_ALetter }, + {0x00ab11, 0x00ab16, WB_ALetter }, + {0x00ab20, 0x00ab26, WB_ALetter }, + {0x00ab28, 0x00ab2e, WB_ALetter }, + {0x00ab30, 0x00ab69, WB_ALetter }, + {0x00ab70, 0x00abe2, WB_ALetter }, + {0x00abe3, 0x00abea, WB_Extend }, + {0x00abec, 0x00abed, WB_Extend }, + {0x00abf0, 0x00abf9, WB_Numeric }, + {0x00ac00, 0x00d7a3, WB_ALetter }, + {0x00d7b0, 0x00d7c6, WB_ALetter }, + {0x00d7cb, 0x00d7fb, WB_ALetter }, + {0x00fb00, 0x00fb06, WB_ALetter }, + {0x00fb13, 0x00fb17, WB_ALetter }, + {0x00fb1d, 0x00fb1d, WB_Hebrew_Letter }, + {0x00fb1e, 0x00fb1e, WB_Extend }, + {0x00fb1f, 0x00fb28, WB_Hebrew_Letter }, + {0x00fb2a, 0x00fb36, WB_Hebrew_Letter }, + {0x00fb38, 0x00fb3c, WB_Hebrew_Letter }, + {0x00fb3e, 0x00fb3e, WB_Hebrew_Letter }, + {0x00fb40, 0x00fb41, WB_Hebrew_Letter }, + {0x00fb43, 0x00fb44, WB_Hebrew_Letter }, + {0x00fb46, 0x00fb4f, WB_Hebrew_Letter }, + {0x00fb50, 0x00fbb1, WB_ALetter }, + {0x00fbd3, 0x00fd3d, WB_ALetter }, + {0x00fd50, 0x00fd8f, WB_ALetter }, + {0x00fd92, 0x00fdc7, WB_ALetter }, + {0x00fdf0, 0x00fdfb, WB_ALetter }, + {0x00fe00, 0x00fe0f, WB_Extend }, + {0x00fe13, 0x00fe13, WB_MidLetter }, + {0x00fe20, 0x00fe2f, WB_Extend }, + {0x00fe33, 0x00fe34, WB_ExtendNumLet }, + {0x00fe4d, 0x00fe4f, WB_ExtendNumLet }, + {0x00fe50, 0x00fe50, WB_MidNum }, + {0x00fe52, 0x00fe52, WB_MidNumLet }, + {0x00fe54, 0x00fe54, WB_MidNum }, + {0x00fe55, 0x00fe55, WB_MidLetter }, + {0x00fe70, 0x00fe74, WB_ALetter }, + {0x00fe76, 0x00fefc, WB_ALetter }, + {0x00feff, 0x00feff, WB_Format }, + {0x00ff07, 0x00ff07, WB_MidNumLet }, + {0x00ff0c, 0x00ff0c, WB_MidNum }, + {0x00ff0e, 0x00ff0e, WB_MidNumLet }, + {0x00ff10, 0x00ff19, WB_Numeric }, + {0x00ff1a, 0x00ff1a, WB_MidLetter }, + {0x00ff1b, 0x00ff1b, WB_MidNum }, + {0x00ff21, 0x00ff3a, WB_ALetter }, + {0x00ff3f, 0x00ff3f, WB_ExtendNumLet }, + {0x00ff41, 0x00ff5a, WB_ALetter }, + {0x00ff66, 0x00ff9d, WB_Katakana }, + {0x00ff9e, 0x00ff9f, WB_Extend }, + {0x00ffa0, 0x00ffbe, WB_ALetter }, + {0x00ffc2, 0x00ffc7, WB_ALetter }, + {0x00ffca, 0x00ffcf, WB_ALetter }, + {0x00ffd2, 0x00ffd7, WB_ALetter }, + {0x00ffda, 0x00ffdc, WB_ALetter }, + {0x00fff9, 0x00fffb, WB_Format }, + {0x010000, 0x01000b, WB_ALetter }, + {0x01000d, 0x010026, WB_ALetter }, + {0x010028, 0x01003a, WB_ALetter }, + {0x01003c, 0x01003d, WB_ALetter }, + {0x01003f, 0x01004d, WB_ALetter }, + {0x010050, 0x01005d, WB_ALetter }, + {0x010080, 0x0100fa, WB_ALetter }, + {0x010140, 0x010174, WB_ALetter }, + {0x0101fd, 0x0101fd, WB_Extend }, + {0x010280, 0x01029c, WB_ALetter }, + {0x0102a0, 0x0102d0, WB_ALetter }, + {0x0102e0, 0x0102e0, WB_Extend }, + {0x010300, 0x01031f, WB_ALetter }, + {0x01032d, 0x01034a, WB_ALetter }, + {0x010350, 0x010375, WB_ALetter }, + {0x010376, 0x01037a, WB_Extend }, + {0x010380, 0x01039d, WB_ALetter }, + {0x0103a0, 0x0103c3, WB_ALetter }, + {0x0103c8, 0x0103cf, WB_ALetter }, + {0x0103d1, 0x0103d5, WB_ALetter }, + {0x010400, 0x01049d, WB_ALetter }, + {0x0104a0, 0x0104a9, WB_Numeric }, + {0x0104b0, 0x0104d3, WB_ALetter }, + {0x0104d8, 0x0104fb, WB_ALetter }, + {0x010500, 0x010527, WB_ALetter }, + {0x010530, 0x010563, WB_ALetter }, + {0x010570, 0x01057a, WB_ALetter }, + {0x01057c, 0x01058a, WB_ALetter }, + {0x01058c, 0x010592, WB_ALetter }, + {0x010594, 0x010595, WB_ALetter }, + {0x010597, 0x0105a1, WB_ALetter }, + {0x0105a3, 0x0105b1, WB_ALetter }, + {0x0105b3, 0x0105b9, WB_ALetter }, + {0x0105bb, 0x0105bc, WB_ALetter }, + {0x0105c0, 0x0105f3, WB_ALetter }, + {0x010600, 0x010736, WB_ALetter }, + {0x010740, 0x010755, WB_ALetter }, + {0x010760, 0x010767, WB_ALetter }, + {0x010780, 0x010785, WB_ALetter }, + {0x010787, 0x0107b0, WB_ALetter }, + {0x0107b2, 0x0107ba, WB_ALetter }, + {0x010800, 0x010805, WB_ALetter }, + {0x010808, 0x010808, WB_ALetter }, + {0x01080a, 0x010835, WB_ALetter }, + {0x010837, 0x010838, WB_ALetter }, + {0x01083c, 0x01083c, WB_ALetter }, + {0x01083f, 0x010855, WB_ALetter }, + {0x010860, 0x010876, WB_ALetter }, + {0x010880, 0x01089e, WB_ALetter }, + {0x0108e0, 0x0108f2, WB_ALetter }, + {0x0108f4, 0x0108f5, WB_ALetter }, + {0x010900, 0x010915, WB_ALetter }, + {0x010920, 0x010939, WB_ALetter }, + {0x010980, 0x0109b7, WB_ALetter }, + {0x0109be, 0x0109bf, WB_ALetter }, + {0x010a00, 0x010a00, WB_ALetter }, + {0x010a01, 0x010a03, WB_Extend }, + {0x010a05, 0x010a06, WB_Extend }, + {0x010a0c, 0x010a0f, WB_Extend }, + {0x010a10, 0x010a13, WB_ALetter }, + {0x010a15, 0x010a17, WB_ALetter }, + {0x010a19, 0x010a35, WB_ALetter }, + {0x010a38, 0x010a3a, WB_Extend }, + {0x010a3f, 0x010a3f, WB_Extend }, + {0x010a60, 0x010a7c, WB_ALetter }, + {0x010a80, 0x010a9c, WB_ALetter }, + {0x010ac0, 0x010ac7, WB_ALetter }, + {0x010ac9, 0x010ae4, WB_ALetter }, + {0x010ae5, 0x010ae6, WB_Extend }, + {0x010b00, 0x010b35, WB_ALetter }, + {0x010b40, 0x010b55, WB_ALetter }, + {0x010b60, 0x010b72, WB_ALetter }, + {0x010b80, 0x010b91, WB_ALetter }, + {0x010c00, 0x010c48, WB_ALetter }, + {0x010c80, 0x010cb2, WB_ALetter }, + {0x010cc0, 0x010cf2, WB_ALetter }, + {0x010d00, 0x010d23, WB_ALetter }, + {0x010d24, 0x010d27, WB_Extend }, + {0x010d30, 0x010d39, WB_Numeric }, + {0x010d40, 0x010d49, WB_Numeric }, + {0x010d4a, 0x010d65, WB_ALetter }, + {0x010d69, 0x010d6d, WB_Extend }, + {0x010d6f, 0x010d85, WB_ALetter }, + {0x010e80, 0x010ea9, WB_ALetter }, + {0x010eab, 0x010eac, WB_Extend }, + {0x010eb0, 0x010eb1, WB_ALetter }, + {0x010ec2, 0x010ec4, WB_ALetter }, + {0x010efc, 0x010eff, WB_Extend }, + {0x010f00, 0x010f1c, WB_ALetter }, + {0x010f27, 0x010f27, WB_ALetter }, + {0x010f30, 0x010f45, WB_ALetter }, + {0x010f46, 0x010f50, WB_Extend }, + {0x010f70, 0x010f81, WB_ALetter }, + {0x010f82, 0x010f85, WB_Extend }, + {0x010fb0, 0x010fc4, WB_ALetter }, + {0x010fe0, 0x010ff6, WB_ALetter }, + {0x011000, 0x011002, WB_Extend }, + {0x011003, 0x011037, WB_ALetter }, + {0x011038, 0x011046, WB_Extend }, + {0x011066, 0x01106f, WB_Numeric }, + {0x011070, 0x011070, WB_Extend }, + {0x011071, 0x011072, WB_ALetter }, + {0x011073, 0x011074, WB_Extend }, + {0x011075, 0x011075, WB_ALetter }, + {0x01107f, 0x011082, WB_Extend }, + {0x011083, 0x0110af, WB_ALetter }, + {0x0110b0, 0x0110ba, WB_Extend }, + {0x0110bd, 0x0110bd, WB_Numeric }, + {0x0110c2, 0x0110c2, WB_Extend }, + {0x0110cd, 0x0110cd, WB_Numeric }, + {0x0110d0, 0x0110e8, WB_ALetter }, + {0x0110f0, 0x0110f9, WB_Numeric }, + {0x011100, 0x011102, WB_Extend }, + {0x011103, 0x011126, WB_ALetter }, + {0x011127, 0x011134, WB_Extend }, + {0x011136, 0x01113f, WB_Numeric }, + {0x011144, 0x011144, WB_ALetter }, + {0x011145, 0x011146, WB_Extend }, + {0x011147, 0x011147, WB_ALetter }, + {0x011150, 0x011172, WB_ALetter }, + {0x011173, 0x011173, WB_Extend }, + {0x011176, 0x011176, WB_ALetter }, + {0x011180, 0x011182, WB_Extend }, + {0x011183, 0x0111b2, WB_ALetter }, + {0x0111b3, 0x0111c0, WB_Extend }, + {0x0111c1, 0x0111c4, WB_ALetter }, + {0x0111c9, 0x0111cc, WB_Extend }, + {0x0111ce, 0x0111cf, WB_Extend }, + {0x0111d0, 0x0111d9, WB_Numeric }, + {0x0111da, 0x0111da, WB_ALetter }, + {0x0111dc, 0x0111dc, WB_ALetter }, + {0x011200, 0x011211, WB_ALetter }, + {0x011213, 0x01122b, WB_ALetter }, + {0x01122c, 0x011237, WB_Extend }, + {0x01123e, 0x01123e, WB_Extend }, + {0x01123f, 0x011240, WB_ALetter }, + {0x011241, 0x011241, WB_Extend }, + {0x011280, 0x011286, WB_ALetter }, + {0x011288, 0x011288, WB_ALetter }, + {0x01128a, 0x01128d, WB_ALetter }, + {0x01128f, 0x01129d, WB_ALetter }, + {0x01129f, 0x0112a8, WB_ALetter }, + {0x0112b0, 0x0112de, WB_ALetter }, + {0x0112df, 0x0112ea, WB_Extend }, + {0x0112f0, 0x0112f9, WB_Numeric }, + {0x011300, 0x011303, WB_Extend }, + {0x011305, 0x01130c, WB_ALetter }, + {0x01130f, 0x011310, WB_ALetter }, + {0x011313, 0x011328, WB_ALetter }, + {0x01132a, 0x011330, WB_ALetter }, + {0x011332, 0x011333, WB_ALetter }, + {0x011335, 0x011339, WB_ALetter }, + {0x01133b, 0x01133c, WB_Extend }, + {0x01133d, 0x01133d, WB_ALetter }, + {0x01133e, 0x011344, WB_Extend }, + {0x011347, 0x011348, WB_Extend }, + {0x01134b, 0x01134d, WB_Extend }, + {0x011350, 0x011350, WB_ALetter }, + {0x011357, 0x011357, WB_Extend }, + {0x01135d, 0x011361, WB_ALetter }, + {0x011362, 0x011363, WB_Extend }, + {0x011366, 0x01136c, WB_Extend }, + {0x011370, 0x011374, WB_Extend }, + {0x011380, 0x011389, WB_ALetter }, + {0x01138b, 0x01138b, WB_ALetter }, + {0x01138e, 0x01138e, WB_ALetter }, + {0x011390, 0x0113b5, WB_ALetter }, + {0x0113b7, 0x0113b7, WB_ALetter }, + {0x0113b8, 0x0113c0, WB_Extend }, + {0x0113c2, 0x0113c2, WB_Extend }, + {0x0113c5, 0x0113c5, WB_Extend }, + {0x0113c7, 0x0113ca, WB_Extend }, + {0x0113cc, 0x0113d0, WB_Extend }, + {0x0113d1, 0x0113d1, WB_ALetter }, + {0x0113d2, 0x0113d2, WB_Extend }, + {0x0113d3, 0x0113d3, WB_ALetter }, + {0x0113e1, 0x0113e2, WB_Extend }, + {0x011400, 0x011434, WB_ALetter }, + {0x011435, 0x011446, WB_Extend }, + {0x011447, 0x01144a, WB_ALetter }, + {0x011450, 0x011459, WB_Numeric }, + {0x01145e, 0x01145e, WB_Extend }, + {0x01145f, 0x011461, WB_ALetter }, + {0x011480, 0x0114af, WB_ALetter }, + {0x0114b0, 0x0114c3, WB_Extend }, + {0x0114c4, 0x0114c5, WB_ALetter }, + {0x0114c7, 0x0114c7, WB_ALetter }, + {0x0114d0, 0x0114d9, WB_Numeric }, + {0x011580, 0x0115ae, WB_ALetter }, + {0x0115af, 0x0115b5, WB_Extend }, + {0x0115b8, 0x0115c0, WB_Extend }, + {0x0115d8, 0x0115db, WB_ALetter }, + {0x0115dc, 0x0115dd, WB_Extend }, + {0x011600, 0x01162f, WB_ALetter }, + {0x011630, 0x011640, WB_Extend }, + {0x011644, 0x011644, WB_ALetter }, + {0x011650, 0x011659, WB_Numeric }, + {0x011680, 0x0116aa, WB_ALetter }, + {0x0116ab, 0x0116b7, WB_Extend }, + {0x0116b8, 0x0116b8, WB_ALetter }, + {0x0116c0, 0x0116c9, WB_Numeric }, + {0x0116d0, 0x0116e3, WB_Numeric }, + {0x01171d, 0x01172b, WB_Extend }, + {0x011730, 0x011739, WB_Numeric }, + {0x011800, 0x01182b, WB_ALetter }, + {0x01182c, 0x01183a, WB_Extend }, + {0x0118a0, 0x0118df, WB_ALetter }, + {0x0118e0, 0x0118e9, WB_Numeric }, + {0x0118ff, 0x011906, WB_ALetter }, + {0x011909, 0x011909, WB_ALetter }, + {0x01190c, 0x011913, WB_ALetter }, + {0x011915, 0x011916, WB_ALetter }, + {0x011918, 0x01192f, WB_ALetter }, + {0x011930, 0x011935, WB_Extend }, + {0x011937, 0x011938, WB_Extend }, + {0x01193b, 0x01193e, WB_Extend }, + {0x01193f, 0x01193f, WB_ALetter }, + {0x011940, 0x011940, WB_Extend }, + {0x011941, 0x011941, WB_ALetter }, + {0x011942, 0x011943, WB_Extend }, + {0x011950, 0x011959, WB_Numeric }, + {0x0119a0, 0x0119a7, WB_ALetter }, + {0x0119aa, 0x0119d0, WB_ALetter }, + {0x0119d1, 0x0119d7, WB_Extend }, + {0x0119da, 0x0119e0, WB_Extend }, + {0x0119e1, 0x0119e1, WB_ALetter }, + {0x0119e3, 0x0119e3, WB_ALetter }, + {0x0119e4, 0x0119e4, WB_Extend }, + {0x011a00, 0x011a00, WB_ALetter }, + {0x011a01, 0x011a0a, WB_Extend }, + {0x011a0b, 0x011a32, WB_ALetter }, + {0x011a33, 0x011a39, WB_Extend }, + {0x011a3a, 0x011a3a, WB_ALetter }, + {0x011a3b, 0x011a3e, WB_Extend }, + {0x011a47, 0x011a47, WB_Extend }, + {0x011a50, 0x011a50, WB_ALetter }, + {0x011a51, 0x011a5b, WB_Extend }, + {0x011a5c, 0x011a89, WB_ALetter }, + {0x011a8a, 0x011a99, WB_Extend }, + {0x011a9d, 0x011a9d, WB_ALetter }, + {0x011ab0, 0x011af8, WB_ALetter }, + {0x011bc0, 0x011be0, WB_ALetter }, + {0x011bf0, 0x011bf9, WB_Numeric }, + {0x011c00, 0x011c08, WB_ALetter }, + {0x011c0a, 0x011c2e, WB_ALetter }, + {0x011c2f, 0x011c36, WB_Extend }, + {0x011c38, 0x011c3f, WB_Extend }, + {0x011c40, 0x011c40, WB_ALetter }, + {0x011c50, 0x011c59, WB_Numeric }, + {0x011c72, 0x011c8f, WB_ALetter }, + {0x011c92, 0x011ca7, WB_Extend }, + {0x011ca9, 0x011cb6, WB_Extend }, + {0x011d00, 0x011d06, WB_ALetter }, + {0x011d08, 0x011d09, WB_ALetter }, + {0x011d0b, 0x011d30, WB_ALetter }, + {0x011d31, 0x011d36, WB_Extend }, + {0x011d3a, 0x011d3a, WB_Extend }, + {0x011d3c, 0x011d3d, WB_Extend }, + {0x011d3f, 0x011d45, WB_Extend }, + {0x011d46, 0x011d46, WB_ALetter }, + {0x011d47, 0x011d47, WB_Extend }, + {0x011d50, 0x011d59, WB_Numeric }, + {0x011d60, 0x011d65, WB_ALetter }, + {0x011d67, 0x011d68, WB_ALetter }, + {0x011d6a, 0x011d89, WB_ALetter }, + {0x011d8a, 0x011d8e, WB_Extend }, + {0x011d90, 0x011d91, WB_Extend }, + {0x011d93, 0x011d97, WB_Extend }, + {0x011d98, 0x011d98, WB_ALetter }, + {0x011da0, 0x011da9, WB_Numeric }, + {0x011ee0, 0x011ef2, WB_ALetter }, + {0x011ef3, 0x011ef6, WB_Extend }, + {0x011f00, 0x011f01, WB_Extend }, + {0x011f02, 0x011f02, WB_ALetter }, + {0x011f03, 0x011f03, WB_Extend }, + {0x011f04, 0x011f10, WB_ALetter }, + {0x011f12, 0x011f33, WB_ALetter }, + {0x011f34, 0x011f3a, WB_Extend }, + {0x011f3e, 0x011f42, WB_Extend }, + {0x011f50, 0x011f59, WB_Numeric }, + {0x011f5a, 0x011f5a, WB_Extend }, + {0x011fb0, 0x011fb0, WB_ALetter }, + {0x012000, 0x012399, WB_ALetter }, + {0x012400, 0x01246e, WB_ALetter }, + {0x012480, 0x012543, WB_ALetter }, + {0x012f90, 0x012ff0, WB_ALetter }, + {0x013000, 0x01342f, WB_ALetter }, + {0x013430, 0x01343f, WB_Format }, + {0x013440, 0x013440, WB_Extend }, + {0x013441, 0x013446, WB_ALetter }, + {0x013447, 0x013455, WB_Extend }, + {0x013460, 0x0143fa, WB_ALetter }, + {0x014400, 0x014646, WB_ALetter }, + {0x016100, 0x01611d, WB_ALetter }, + {0x01611e, 0x01612f, WB_Extend }, + {0x016130, 0x016139, WB_Numeric }, + {0x016800, 0x016a38, WB_ALetter }, + {0x016a40, 0x016a5e, WB_ALetter }, + {0x016a60, 0x016a69, WB_Numeric }, + {0x016a70, 0x016abe, WB_ALetter }, + {0x016ac0, 0x016ac9, WB_Numeric }, + {0x016ad0, 0x016aed, WB_ALetter }, + {0x016af0, 0x016af4, WB_Extend }, + {0x016b00, 0x016b2f, WB_ALetter }, + {0x016b30, 0x016b36, WB_Extend }, + {0x016b40, 0x016b43, WB_ALetter }, + {0x016b50, 0x016b59, WB_Numeric }, + {0x016b63, 0x016b77, WB_ALetter }, + {0x016b7d, 0x016b8f, WB_ALetter }, + {0x016d40, 0x016d6c, WB_ALetter }, + {0x016d70, 0x016d79, WB_Numeric }, + {0x016e40, 0x016e7f, WB_ALetter }, + {0x016f00, 0x016f4a, WB_ALetter }, + {0x016f4f, 0x016f4f, WB_Extend }, + {0x016f50, 0x016f50, WB_ALetter }, + {0x016f51, 0x016f87, WB_Extend }, + {0x016f8f, 0x016f92, WB_Extend }, + {0x016f93, 0x016f9f, WB_ALetter }, + {0x016fe0, 0x016fe1, WB_ALetter }, + {0x016fe3, 0x016fe3, WB_ALetter }, + {0x016fe4, 0x016fe4, WB_Extend }, + {0x016ff0, 0x016ff1, WB_Extend }, + {0x01aff0, 0x01aff3, WB_Katakana }, + {0x01aff5, 0x01affb, WB_Katakana }, + {0x01affd, 0x01affe, WB_Katakana }, + {0x01b000, 0x01b000, WB_Katakana }, + {0x01b120, 0x01b122, WB_Katakana }, + {0x01b155, 0x01b155, WB_Katakana }, + {0x01b164, 0x01b167, WB_Katakana }, + {0x01bc00, 0x01bc6a, WB_ALetter }, + {0x01bc70, 0x01bc7c, WB_ALetter }, + {0x01bc80, 0x01bc88, WB_ALetter }, + {0x01bc90, 0x01bc99, WB_ALetter }, + {0x01bc9d, 0x01bc9e, WB_Extend }, + {0x01bca0, 0x01bca3, WB_Format }, + {0x01ccf0, 0x01ccf9, WB_Numeric }, + {0x01cf00, 0x01cf2d, WB_Extend }, + {0x01cf30, 0x01cf46, WB_Extend }, + {0x01d165, 0x01d169, WB_Extend }, + {0x01d16d, 0x01d172, WB_Extend }, + {0x01d173, 0x01d17a, WB_Format }, + {0x01d17b, 0x01d182, WB_Extend }, + {0x01d185, 0x01d18b, WB_Extend }, + {0x01d1aa, 0x01d1ad, WB_Extend }, + {0x01d242, 0x01d244, WB_Extend }, + {0x01d400, 0x01d454, WB_ALetter }, + {0x01d456, 0x01d49c, WB_ALetter }, + {0x01d49e, 0x01d49f, WB_ALetter }, + {0x01d4a2, 0x01d4a2, WB_ALetter }, + {0x01d4a5, 0x01d4a6, WB_ALetter }, + {0x01d4a9, 0x01d4ac, WB_ALetter }, + {0x01d4ae, 0x01d4b9, WB_ALetter }, + {0x01d4bb, 0x01d4bb, WB_ALetter }, + {0x01d4bd, 0x01d4c3, WB_ALetter }, + {0x01d4c5, 0x01d505, WB_ALetter }, + {0x01d507, 0x01d50a, WB_ALetter }, + {0x01d50d, 0x01d514, WB_ALetter }, + {0x01d516, 0x01d51c, WB_ALetter }, + {0x01d51e, 0x01d539, WB_ALetter }, + {0x01d53b, 0x01d53e, WB_ALetter }, + {0x01d540, 0x01d544, WB_ALetter }, + {0x01d546, 0x01d546, WB_ALetter }, + {0x01d54a, 0x01d550, WB_ALetter }, + {0x01d552, 0x01d6a5, WB_ALetter }, + {0x01d6a8, 0x01d6c0, WB_ALetter }, + {0x01d6c2, 0x01d6da, WB_ALetter }, + {0x01d6dc, 0x01d6fa, WB_ALetter }, + {0x01d6fc, 0x01d714, WB_ALetter }, + {0x01d716, 0x01d734, WB_ALetter }, + {0x01d736, 0x01d74e, WB_ALetter }, + {0x01d750, 0x01d76e, WB_ALetter }, + {0x01d770, 0x01d788, WB_ALetter }, + {0x01d78a, 0x01d7a8, WB_ALetter }, + {0x01d7aa, 0x01d7c2, WB_ALetter }, + {0x01d7c4, 0x01d7cb, WB_ALetter }, + {0x01d7ce, 0x01d7ff, WB_Numeric }, + {0x01da00, 0x01da36, WB_Extend }, + {0x01da3b, 0x01da6c, WB_Extend }, + {0x01da75, 0x01da75, WB_Extend }, + {0x01da84, 0x01da84, WB_Extend }, + {0x01da9b, 0x01da9f, WB_Extend }, + {0x01daa1, 0x01daaf, WB_Extend }, + {0x01df00, 0x01df1e, WB_ALetter }, + {0x01df25, 0x01df2a, WB_ALetter }, + {0x01e000, 0x01e006, WB_Extend }, + {0x01e008, 0x01e018, WB_Extend }, + {0x01e01b, 0x01e021, WB_Extend }, + {0x01e023, 0x01e024, WB_Extend }, + {0x01e026, 0x01e02a, WB_Extend }, + {0x01e030, 0x01e06d, WB_ALetter }, + {0x01e08f, 0x01e08f, WB_Extend }, + {0x01e100, 0x01e12c, WB_ALetter }, + {0x01e130, 0x01e136, WB_Extend }, + {0x01e137, 0x01e13d, WB_ALetter }, + {0x01e140, 0x01e149, WB_Numeric }, + {0x01e14e, 0x01e14e, WB_ALetter }, + {0x01e290, 0x01e2ad, WB_ALetter }, + {0x01e2ae, 0x01e2ae, WB_Extend }, + {0x01e2c0, 0x01e2eb, WB_ALetter }, + {0x01e2ec, 0x01e2ef, WB_Extend }, + {0x01e2f0, 0x01e2f9, WB_Numeric }, + {0x01e4d0, 0x01e4eb, WB_ALetter }, + {0x01e4ec, 0x01e4ef, WB_Extend }, + {0x01e4f0, 0x01e4f9, WB_Numeric }, + {0x01e5d0, 0x01e5ed, WB_ALetter }, + {0x01e5ee, 0x01e5ef, WB_Extend }, + {0x01e5f0, 0x01e5f0, WB_ALetter }, + {0x01e5f1, 0x01e5fa, WB_Numeric }, + {0x01e7e0, 0x01e7e6, WB_ALetter }, + {0x01e7e8, 0x01e7eb, WB_ALetter }, + {0x01e7ed, 0x01e7ee, WB_ALetter }, + {0x01e7f0, 0x01e7fe, WB_ALetter }, + {0x01e800, 0x01e8c4, WB_ALetter }, + {0x01e8d0, 0x01e8d6, WB_Extend }, + {0x01e900, 0x01e943, WB_ALetter }, + {0x01e944, 0x01e94a, WB_Extend }, + {0x01e94b, 0x01e94b, WB_ALetter }, + {0x01e950, 0x01e959, WB_Numeric }, + {0x01ee00, 0x01ee03, WB_ALetter }, + {0x01ee05, 0x01ee1f, WB_ALetter }, + {0x01ee21, 0x01ee22, WB_ALetter }, + {0x01ee24, 0x01ee24, WB_ALetter }, + {0x01ee27, 0x01ee27, WB_ALetter }, + {0x01ee29, 0x01ee32, WB_ALetter }, + {0x01ee34, 0x01ee37, WB_ALetter }, + {0x01ee39, 0x01ee39, WB_ALetter }, + {0x01ee3b, 0x01ee3b, WB_ALetter }, + {0x01ee42, 0x01ee42, WB_ALetter }, + {0x01ee47, 0x01ee47, WB_ALetter }, + {0x01ee49, 0x01ee49, WB_ALetter }, + {0x01ee4b, 0x01ee4b, WB_ALetter }, + {0x01ee4d, 0x01ee4f, WB_ALetter }, + {0x01ee51, 0x01ee52, WB_ALetter }, + {0x01ee54, 0x01ee54, WB_ALetter }, + {0x01ee57, 0x01ee57, WB_ALetter }, + {0x01ee59, 0x01ee59, WB_ALetter }, + {0x01ee5b, 0x01ee5b, WB_ALetter }, + {0x01ee5d, 0x01ee5d, WB_ALetter }, + {0x01ee5f, 0x01ee5f, WB_ALetter }, + {0x01ee61, 0x01ee62, WB_ALetter }, + {0x01ee64, 0x01ee64, WB_ALetter }, + {0x01ee67, 0x01ee6a, WB_ALetter }, + {0x01ee6c, 0x01ee72, WB_ALetter }, + {0x01ee74, 0x01ee77, WB_ALetter }, + {0x01ee79, 0x01ee7c, WB_ALetter }, + {0x01ee7e, 0x01ee7e, WB_ALetter }, + {0x01ee80, 0x01ee89, WB_ALetter }, + {0x01ee8b, 0x01ee9b, WB_ALetter }, + {0x01eea1, 0x01eea3, WB_ALetter }, + {0x01eea5, 0x01eea9, WB_ALetter }, + {0x01eeab, 0x01eebb, WB_ALetter }, + {0x01f130, 0x01f149, WB_ALetter }, + {0x01f150, 0x01f169, WB_ALetter }, + {0x01f170, 0x01f189, WB_ALetter }, + {0x01f1e6, 0x01f1ff, WB_Regional_Indicator }, + {0x01f3fb, 0x01f3ff, WB_Extend }, + {0x01fbf0, 0x01fbf9, WB_Numeric }, + {0x0e0001, 0x0e0001, WB_Format }, + {0x0e0020, 0x0e007f, WB_Extend }, + {0x0e0100, 0x0e01ef, WB_Extend } +}; diff --git a/thirdparty/oniguruma/utf8.c b/thirdparty/oniguruma/utf8.c new file mode 100644 index 000000000..b31e0dd7b --- /dev/null +++ b/thirdparty/oniguruma/utf8.c @@ -0,0 +1,290 @@ +/********************************************************************** + utf8.c - Oniguruma (regular expression library) +**********************************************************************/ +/*- + * Copyright (c) 2002-2019 K.Kosako + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "regenc.h" + +/* U+0000 - U+10FFFF */ +#define USE_RFC3629_RANGE + +/* #define USE_INVALID_CODE_SCHEME */ + +#ifdef USE_INVALID_CODE_SCHEME +/* virtual codepoint values for invalid encoding byte 0xfe and 0xff */ +#define INVALID_CODE_FE 0xfffffffe +#define INVALID_CODE_FF 0xffffffff +#define VALID_CODE_LIMIT 0x7fffffff +#endif + +#define utf8_islead(c) ((UChar )((c) & 0xc0) != 0x80) +#define utf8_istail(c) ((UChar )((c) & 0xc0) == 0x80) + +static const int EncLen_UTF8[] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +#ifdef USE_RFC3629_RANGE + 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +#else + 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 1, 1 +#endif +}; + +static int +mbc_enc_len(const UChar* p) +{ + return EncLen_UTF8[*p]; +} + +static int +is_valid_mbc_string(const UChar* p, const UChar* end) +{ + int i, len; + + while (p < end) { + if (! utf8_islead(*p)) + return FALSE; + + len = mbc_enc_len(p++); + if (len > 1) { + for (i = 1; i < len; i++) { + if (p == end) + return FALSE; + + if (! utf8_istail(*p++)) + return FALSE; + } + } + } + + return TRUE; +} + +static OnigCodePoint +mbc_to_code(const UChar* p, const UChar* end) +{ + int c, len; + OnigCodePoint n; + + len = mbc_enc_len(p); + if (len > (int )(end - p)) len = (int )(end - p); + + c = *p++; + if (len > 1) { + len--; + n = c & ((1 << (6 - len)) - 1); + while (len--) { + c = *p++; + n = (n << 6) | (c & ((1 << 6) - 1)); + } + return n; + } + else { +#ifdef USE_INVALID_CODE_SCHEME + if (c > 0xfd) { + return ((c == 0xfe) ? INVALID_CODE_FE : INVALID_CODE_FF); + } +#endif + return (OnigCodePoint )c; + } +} + +static int +code_to_mbclen(OnigCodePoint code) +{ + if ((code & 0xffffff80) == 0) return 1; + else if ((code & 0xfffff800) == 0) return 2; + else if ((code & 0xffff0000) == 0) return 3; + else if ((code & 0xffe00000) == 0) return 4; +#ifndef USE_RFC3629_RANGE + else if ((code & 0xfc000000) == 0) return 5; + else if ((code & 0x80000000) == 0) return 6; +#endif +#ifdef USE_INVALID_CODE_SCHEME + else if (code == INVALID_CODE_FE) return 1; + else if (code == INVALID_CODE_FF) return 1; +#endif + else + return ONIGERR_INVALID_CODE_POINT_VALUE; +} + +static int +code_to_mbc(OnigCodePoint code, UChar *buf) +{ +#define UTF8_TRAILS(code, shift) (UChar )((((code) >> (shift)) & 0x3f) | 0x80) +#define UTF8_TRAIL0(code) (UChar )(((code) & 0x3f) | 0x80) + + if ((code & 0xffffff80) == 0) { + *buf = (UChar )code; + return 1; + } + else { + UChar *p = buf; + + if ((code & 0xfffff800) == 0) { + *p++ = (UChar )(((code>>6)& 0x1f) | 0xc0); + } + else if ((code & 0xffff0000) == 0) { + *p++ = (UChar )(((code>>12) & 0x0f) | 0xe0); + *p++ = UTF8_TRAILS(code, 6); + } + else if ((code & 0xffe00000) == 0) { + *p++ = (UChar )(((code>>18) & 0x07) | 0xf0); + *p++ = UTF8_TRAILS(code, 12); + *p++ = UTF8_TRAILS(code, 6); + } +#ifndef USE_RFC3629_RANGE + else if ((code & 0xfc000000) == 0) { + *p++ = (UChar )(((code>>24) & 0x03) | 0xf8); + *p++ = UTF8_TRAILS(code, 18); + *p++ = UTF8_TRAILS(code, 12); + *p++ = UTF8_TRAILS(code, 6); + } + else if ((code & 0x80000000) == 0) { + *p++ = (UChar )(((code>>30) & 0x01) | 0xfc); + *p++ = UTF8_TRAILS(code, 24); + *p++ = UTF8_TRAILS(code, 18); + *p++ = UTF8_TRAILS(code, 12); + *p++ = UTF8_TRAILS(code, 6); + } +#endif +#ifdef USE_INVALID_CODE_SCHEME + else if (code == INVALID_CODE_FE) { + *p = 0xfe; + return 1; + } + else if (code == INVALID_CODE_FF) { + *p = 0xff; + return 1; + } +#endif + else { + return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; + } + + *p++ = UTF8_TRAIL0(code); + return (int )(p - buf); + } +} + +static int +mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, + const UChar* end, UChar* fold) +{ + const UChar* p = *pp; + + if (ONIGENC_IS_MBC_ASCII(p)) { +#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI + if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { + if (*p == 0x49) { + *fold++ = 0xc4; + *fold = 0xb1; + (*pp)++; + return 2; + } + } +#endif + + *fold = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p); + (*pp)++; + return 1; /* return byte length of converted char to lower */ + } + else { + return onigenc_unicode_mbc_case_fold(ONIG_ENCODING_UTF8, flag, + pp, end, fold); + } +} + +static int +get_ctype_code_range(OnigCtype ctype, OnigCodePoint *sb_out, + const OnigCodePoint* ranges[]) +{ + *sb_out = 0x80; + return onigenc_unicode_ctype_code_range(ctype, ranges); +} + + +static UChar* +left_adjust_char_head(const UChar* start, const UChar* s) +{ + const UChar *p; + + if (s <= start) return (UChar* )s; + p = s; + + while (!utf8_islead(*p) && p > start) p--; + return (UChar* )p; +} + +static int +get_case_fold_codes_by_str(OnigCaseFoldType flag, + const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]) +{ + return onigenc_unicode_get_case_fold_codes_by_str(ONIG_ENCODING_UTF8, + flag, p, end, items); +} + +OnigEncodingType OnigEncodingUTF8 = { + mbc_enc_len, + "UTF-8", /* name */ +#ifdef USE_RFC3629_RANGE + 4, /* max enc length */ +#else + 6, +#endif + 1, /* min enc length */ + onigenc_is_mbc_newline_0x0a, + mbc_to_code, + code_to_mbclen, + code_to_mbc, + mbc_case_fold, + onigenc_unicode_apply_all_case_fold, + get_case_fold_codes_by_str, + onigenc_unicode_property_name_to_ctype, + onigenc_unicode_is_code_ctype, + get_ctype_code_range, + left_adjust_char_head, + onigenc_always_true_is_allowed_reverse_match, + NULL, /* init */ + NULL, /* is_initialized */ + is_valid_mbc_string, + ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_UNICODE|ENC_FLAG_SKIP_OFFSET_1_OR_0, + 0, 0 +}; diff --git a/thirdparty/utf8proc/LICENSE.md b/thirdparty/utf8proc/LICENSE.md new file mode 100644 index 000000000..d5c535e7e --- /dev/null +++ b/thirdparty/utf8proc/LICENSE.md @@ -0,0 +1,93 @@ +## utf8proc license ## + +**utf8proc** is a software package originally developed +by Jan Behrens and the rest of the Public Software Group, who +deserve nearly all of the credit for this library, that is now maintained by the Julia-language developers. Like the original utf8proc, +whose copyright and license statements are reproduced below, all new +work on the utf8proc library is licensed under the [MIT "expat" +license](http://opensource.org/licenses/MIT): + +*Copyright © 2014-2021 by Steven G. Johnson, Jiahao Chen, Tony Kelman, Jonas Fonseca, and other contributors listed in the git history.* + +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. + +## Original utf8proc license ## + +*Copyright (c) 2009, 2013 Public Software Group e. V., Berlin, Germany* + +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. + +## Unicode data license ## + +This software contains data (`utf8proc_data.c`) derived from processing +the Unicode data files. The following license applies to that data: + +**COPYRIGHT AND PERMISSION NOTICE** + +*Copyright (c) 1991-2007 Unicode, Inc. All rights reserved. Distributed +under the Terms of Use in http://www.unicode.org/copyright.html.* + +Permission is hereby granted, free of charge, to any person obtaining a +copy of the Unicode data files and any associated documentation (the "Data +Files") or Unicode software and any associated documentation (the +"Software") to deal in the Data Files or Software without restriction, +including without limitation the rights to use, copy, modify, merge, +publish, distribute, and/or sell copies of the Data Files or Software, and +to permit persons to whom the Data Files or Software are furnished to do +so, provided that (a) the above copyright notice(s) and this permission +notice appear with all copies of the Data Files or Software, (b) both the +above copyright notice(s) and this permission notice appear in associated +documentation, and (c) there is clear notice in each modified Data File or +in the Software as well as in the documentation associated with the Data +File(s) or Software that the data or software has been modified. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS +INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR +CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF +USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in these Data Files or Software without prior written +authorization of the copyright holder. + +Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be +registered in some jurisdictions. All other trademarks and registered +trademarks mentioned herein are the property of their respective owners. diff --git a/thirdparty/utf8proc/README.md b/thirdparty/utf8proc/README.md new file mode 100644 index 000000000..9ce841e2c --- /dev/null +++ b/thirdparty/utf8proc/README.md @@ -0,0 +1,45 @@ +# utf8proc source subset + +This directory contains the utf8proc sources used by sd.cpp's +[JSON tokenizer](../../src/tokenizers/json_tokenizer.cpp) for NFC normalization, +lowercase mapping, and UTF-8 decoding and encoding. + +## Upstream source + +- Repository: [JuliaStrings/utf8proc](https://github.com/JuliaStrings/utf8proc) +- Release: `v2.10.0` +- Commit: [`a1b99daa2a3393884220264c927a48ba1251a9c6`](https://github.com/JuliaStrings/utf8proc/tree/a1b99daa2a3393884220264c927a48ba1251a9c6) +- Unicode version: `16.0.0` +- License: [MIT and Unicode data licenses](LICENSE.md) + +The following four files were copied from the upstream repository root without +local modifications. Their original filenames are preserved. This README is +maintained by sd.cpp and replaces the upstream README. + +| File | Purpose | +| --- | --- | +| `utf8proc.c` | Library implementation; the only separately compiled C file. | +| `utf8proc.h` | Public declarations, types and version definitions. | +| `utf8proc_data.c` | Unicode data tables included by `utf8proc.c`. | +| `LICENSE.md` | Library and Unicode data license notices. | + +The library implementation and Unicode tables are retained in full. +`utf8proc_data.c` is copied as supplied by upstream; sd.cpp does not regenerate +it or compile it as a separate translation unit. Upstream tests, benchmarks, +documentation, data-generation tools and build/packaging files are omitted. + +## Build integration + +[The parent CMake file](../CMakeLists.txt) compiles `utf8proc.c` as the +`sd-utf8proc` OBJECT target with `UTF8PROC_STATIC` and position-independent code +enabled. The object is included directly in the sd.cpp static or shared library, +with no separate utf8proc library required by consumers. The license is installed +alongside sd.cpp. + +All four upstream files belong under version control. Build artifacts belong +in the build directory; this subset requires no generated configuration header. + +When refreshing this subset, copy all four files from the same upstream revision +and retain `LICENSE.md`. Update the release, commit and Unicode version recorded +here. Recheck source dependencies and validate tokenizer normalization, lowercase +conversion and token IDs on supported platforms. diff --git a/thirdparty/utf8proc/utf8proc.c b/thirdparty/utf8proc/utf8proc.c new file mode 100644 index 000000000..08ef3cdd4 --- /dev/null +++ b/thirdparty/utf8proc/utf8proc.c @@ -0,0 +1,823 @@ +/* -*- mode: c; c-basic-offset: 2; tab-width: 2; indent-tabs-mode: nil -*- */ +/* + * Copyright (c) 2014-2021 Steven G. Johnson, Jiahao Chen, Peter Colberg, Tony Kelman, Scott P. Jones, and other contributors. + * Copyright (c) 2009 Public Software Group e. V., Berlin, Germany + * + * 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. + */ + +/* + * This library contains derived data from a modified version of the + * Unicode data files. + * + * The original data files are available at + * https://www.unicode.org/Public/UNIDATA/ + * + * Please notice the copyright statement in the file "utf8proc_data.c". + */ + + +/* + * File name: utf8proc.c + * + * Description: + * Implementation of libutf8proc. + */ + + +#include "utf8proc.h" + +#ifndef SSIZE_MAX +#define SSIZE_MAX ((size_t)SIZE_MAX/2) +#endif +#ifndef UINT16_MAX +# define UINT16_MAX 65535U +#endif + +#include "utf8proc_data.c" + + +UTF8PROC_DLLEXPORT const utf8proc_int8_t utf8proc_utf8class[256] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0 }; + +#define UTF8PROC_HANGUL_SBASE 0xAC00 +#define UTF8PROC_HANGUL_LBASE 0x1100 +#define UTF8PROC_HANGUL_VBASE 0x1161 +#define UTF8PROC_HANGUL_TBASE 0x11A7 +#define UTF8PROC_HANGUL_LCOUNT 19 +#define UTF8PROC_HANGUL_VCOUNT 21 +#define UTF8PROC_HANGUL_TCOUNT 28 +#define UTF8PROC_HANGUL_NCOUNT 588 +#define UTF8PROC_HANGUL_SCOUNT 11172 +/* END is exclusive */ +#define UTF8PROC_HANGUL_L_START 0x1100 +#define UTF8PROC_HANGUL_L_END 0x115A +#define UTF8PROC_HANGUL_L_FILLER 0x115F +#define UTF8PROC_HANGUL_V_START 0x1160 +#define UTF8PROC_HANGUL_V_END 0x11A3 +#define UTF8PROC_HANGUL_T_START 0x11A8 +#define UTF8PROC_HANGUL_T_END 0x11FA +#define UTF8PROC_HANGUL_S_START 0xAC00 +#define UTF8PROC_HANGUL_S_END 0xD7A4 + +/* Should follow semantic-versioning rules (semver.org) based on API + compatibility. (Note that the shared-library version number will + be different, being based on ABI compatibility.): */ +#define STRINGIZEx(x) #x +#define STRINGIZE(x) STRINGIZEx(x) +UTF8PROC_DLLEXPORT const char *utf8proc_version(void) { + return STRINGIZE(UTF8PROC_VERSION_MAJOR) "." STRINGIZE(UTF8PROC_VERSION_MINOR) "." STRINGIZE(UTF8PROC_VERSION_PATCH) ""; +} + +UTF8PROC_DLLEXPORT const char *utf8proc_unicode_version(void) { + return "16.0.0"; +} + +UTF8PROC_DLLEXPORT const char *utf8proc_errmsg(utf8proc_ssize_t errcode) { + switch (errcode) { + case UTF8PROC_ERROR_NOMEM: + return "Memory for processing UTF-8 data could not be allocated."; + case UTF8PROC_ERROR_OVERFLOW: + return "UTF-8 string is too long to be processed."; + case UTF8PROC_ERROR_INVALIDUTF8: + return "Invalid UTF-8 string"; + case UTF8PROC_ERROR_NOTASSIGNED: + return "Unassigned Unicode code point found in UTF-8 string."; + case UTF8PROC_ERROR_INVALIDOPTS: + return "Invalid options for UTF-8 processing chosen."; + default: + return "An unknown error occurred while processing UTF-8 data."; + } +} + +#define utf_cont(ch) (((ch) & 0xc0) == 0x80) +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_iterate( + const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_int32_t *dst +) { + utf8proc_int32_t uc; + const utf8proc_uint8_t *end; + + *dst = -1; + if (!strlen) return 0; + end = str + ((strlen < 0) ? 4 : strlen); + uc = *str++; + if (uc < 0x80) { + *dst = uc; + return 1; + } + // Must be between 0xc2 and 0xf4 inclusive to be valid + if ((utf8proc_uint32_t)(uc - 0xc2) > (0xf4-0xc2)) return UTF8PROC_ERROR_INVALIDUTF8; + if (uc < 0xe0) { // 2-byte sequence + // Must have valid continuation character + if (str >= end || !utf_cont(*str)) return UTF8PROC_ERROR_INVALIDUTF8; + *dst = ((uc & 0x1f)<<6) | (*str & 0x3f); + return 2; + } + if (uc < 0xf0) { // 3-byte sequence + if ((str + 1 >= end) || !utf_cont(*str) || !utf_cont(str[1])) + return UTF8PROC_ERROR_INVALIDUTF8; + // Check for surrogate chars + if (uc == 0xed && *str > 0x9f) + return UTF8PROC_ERROR_INVALIDUTF8; + uc = ((uc & 0xf)<<12) | ((*str & 0x3f)<<6) | (str[1] & 0x3f); + if (uc < 0x800) + return UTF8PROC_ERROR_INVALIDUTF8; + *dst = uc; + return 3; + } + // 4-byte sequence + // Must have 3 valid continuation characters + if ((str + 2 >= end) || !utf_cont(*str) || !utf_cont(str[1]) || !utf_cont(str[2])) + return UTF8PROC_ERROR_INVALIDUTF8; + // Make sure in correct range (0x10000 - 0x10ffff) + if (uc == 0xf0) { + if (*str < 0x90) return UTF8PROC_ERROR_INVALIDUTF8; + } else if (uc == 0xf4) { + if (*str > 0x8f) return UTF8PROC_ERROR_INVALIDUTF8; + } + *dst = ((uc & 7)<<18) | ((*str & 0x3f)<<12) | ((str[1] & 0x3f)<<6) | (str[2] & 0x3f); + return 4; +} + +UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_codepoint_valid(utf8proc_int32_t uc) { + return (((utf8proc_uint32_t)uc)-0xd800 > 0x07ff) && ((utf8proc_uint32_t)uc < 0x110000); +} + +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_encode_char(utf8proc_int32_t uc, utf8proc_uint8_t *dst) { + if (uc < 0x00) { + return 0; + } else if (uc < 0x80) { + dst[0] = (utf8proc_uint8_t) uc; + return 1; + } else if (uc < 0x800) { + dst[0] = (utf8proc_uint8_t)(0xC0 + (uc >> 6)); + dst[1] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); + return 2; + // Note: we allow encoding 0xd800-0xdfff here, so as not to change + // the API, however, these are actually invalid in UTF-8 + } else if (uc < 0x10000) { + dst[0] = (utf8proc_uint8_t)(0xE0 + (uc >> 12)); + dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); + dst[2] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); + return 3; + } else if (uc < 0x110000) { + dst[0] = (utf8proc_uint8_t)(0xF0 + (uc >> 18)); + dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 12) & 0x3F)); + dst[2] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); + dst[3] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); + return 4; + } else return 0; +} + +/* internal version used for inserting 0xff bytes between graphemes */ +static utf8proc_ssize_t charbound_encode_char(utf8proc_int32_t uc, utf8proc_uint8_t *dst) { + if (uc < 0x00) { + if (uc == -1) { /* internal value used for grapheme breaks */ + dst[0] = (utf8proc_uint8_t)0xFF; + return 1; + } + return 0; + } else if (uc < 0x80) { + dst[0] = (utf8proc_uint8_t)uc; + return 1; + } else if (uc < 0x800) { + dst[0] = (utf8proc_uint8_t)(0xC0 + (uc >> 6)); + dst[1] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); + return 2; + } else if (uc < 0x10000) { + dst[0] = (utf8proc_uint8_t)(0xE0 + (uc >> 12)); + dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); + dst[2] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); + return 3; + } else if (uc < 0x110000) { + dst[0] = (utf8proc_uint8_t)(0xF0 + (uc >> 18)); + dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 12) & 0x3F)); + dst[2] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); + dst[3] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); + return 4; + } else return 0; +} + +/* internal "unsafe" version that does not check whether uc is in range */ +static const utf8proc_property_t *unsafe_get_property(utf8proc_int32_t uc) { + /* ASSERT: uc >= 0 && uc < 0x110000 */ + return utf8proc_properties + ( + utf8proc_stage2table[ + utf8proc_stage1table[uc >> 8] + (uc & 0xFF) + ] + ); +} + +UTF8PROC_DLLEXPORT const utf8proc_property_t *utf8proc_get_property(utf8proc_int32_t uc) { + return uc < 0 || uc >= 0x110000 ? utf8proc_properties : unsafe_get_property(uc); +} + +/* return whether there is a grapheme break between boundclasses lbc and tbc + (according to the definition of extended grapheme clusters) + + Rule numbering refers to TR29 Version 29 (Unicode 9.0.0): + http://www.unicode.org/reports/tr29/tr29-29.html + + CAVEATS: + Please note that evaluation of GB10 (grapheme breaks between emoji zwj sequences) + and GB 12/13 (regional indicator code points) require knowledge of previous characters + and are thus not handled by this function. This may result in an incorrect break before + an E_Modifier class codepoint and an incorrectly missing break between two + REGIONAL_INDICATOR class code points if such support does not exist in the caller. + + See the special support in grapheme_break_extended, for required bookkeeping by the caller. +*/ +static utf8proc_bool grapheme_break_simple(int lbc, int tbc) { + return + (lbc == UTF8PROC_BOUNDCLASS_START) ? true : // GB1 + (lbc == UTF8PROC_BOUNDCLASS_CR && // GB3 + tbc == UTF8PROC_BOUNDCLASS_LF) ? false : // --- + (lbc >= UTF8PROC_BOUNDCLASS_CR && lbc <= UTF8PROC_BOUNDCLASS_CONTROL) ? true : // GB4 + (tbc >= UTF8PROC_BOUNDCLASS_CR && tbc <= UTF8PROC_BOUNDCLASS_CONTROL) ? true : // GB5 + (lbc == UTF8PROC_BOUNDCLASS_L && // GB6 + (tbc == UTF8PROC_BOUNDCLASS_L || // --- + tbc == UTF8PROC_BOUNDCLASS_V || // --- + tbc == UTF8PROC_BOUNDCLASS_LV || // --- + tbc == UTF8PROC_BOUNDCLASS_LVT)) ? false : // --- + ((lbc == UTF8PROC_BOUNDCLASS_LV || // GB7 + lbc == UTF8PROC_BOUNDCLASS_V) && // --- + (tbc == UTF8PROC_BOUNDCLASS_V || // --- + tbc == UTF8PROC_BOUNDCLASS_T)) ? false : // --- + ((lbc == UTF8PROC_BOUNDCLASS_LVT || // GB8 + lbc == UTF8PROC_BOUNDCLASS_T) && // --- + tbc == UTF8PROC_BOUNDCLASS_T) ? false : // --- + (tbc == UTF8PROC_BOUNDCLASS_EXTEND || // GB9 + tbc == UTF8PROC_BOUNDCLASS_ZWJ || // --- + tbc == UTF8PROC_BOUNDCLASS_SPACINGMARK || // GB9a + lbc == UTF8PROC_BOUNDCLASS_PREPEND) ? false : // GB9b + (lbc == UTF8PROC_BOUNDCLASS_E_ZWG && // GB11 (requires additional handling below) + tbc == UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC) ? false : // ---- + (lbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR && // GB12/13 (requires additional handling below) + tbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR) ? false : // ---- + true; // GB999 +} + +static utf8proc_bool grapheme_break_extended(int lbc, int tbc, int licb, int ticb, utf8proc_int32_t *state) +{ + if (state) { + int state_bc, state_icb; /* boundclass and indic_conjunct_break state */ + if (*state == 0) { /* state initialization */ + state_bc = lbc; + state_icb = licb == UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT ? licb : UTF8PROC_INDIC_CONJUNCT_BREAK_NONE; + } + else { /* lbc and licb are already encoded in *state */ + state_bc = *state & 0xff; // 1st byte of state is bound class + state_icb = *state >> 8; // 2nd byte of state is indic conjunct break + } + + utf8proc_bool break_permitted = grapheme_break_simple(state_bc, tbc) && + !(state_icb == UTF8PROC_INDIC_CONJUNCT_BREAK_LINKER + && ticb == UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT); // GB9c + + // Special support for GB9c. Don't break between two consonants + // separated 1+ linker characters and 0+ extend characters in any order. + // After a consonant, we enter LINKER state after at least one linker. + if (ticb == UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT + || state_icb == UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT + || state_icb == UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND) + state_icb = ticb; + else if (state_icb == UTF8PROC_INDIC_CONJUNCT_BREAK_LINKER) + state_icb = ticb == UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND ? + UTF8PROC_INDIC_CONJUNCT_BREAK_LINKER : ticb; + + // Special support for GB 12/13 made possible by GB999. After two RI + // class codepoints we want to force a break. Do this by resetting the + // second RI's bound class to UTF8PROC_BOUNDCLASS_OTHER, to force a break + // after that character according to GB999 (unless of course such a break is + // forbidden by a different rule such as GB9). + if (state_bc == tbc && tbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR) + state_bc = UTF8PROC_BOUNDCLASS_OTHER; + // Special support for GB11 (emoji extend* zwj / emoji) + else if (state_bc == UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC) { + if (tbc == UTF8PROC_BOUNDCLASS_EXTEND) // fold EXTEND codepoints into emoji + state_bc = UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC; + else if (tbc == UTF8PROC_BOUNDCLASS_ZWJ) + state_bc = UTF8PROC_BOUNDCLASS_E_ZWG; // state to record emoji+zwg combo + else + state_bc = tbc; + } + else + state_bc = tbc; + + *state = state_bc + (state_icb << 8); + return break_permitted; + } + else + return grapheme_break_simple(lbc, tbc); +} + +UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break_stateful( + utf8proc_int32_t c1, utf8proc_int32_t c2, utf8proc_int32_t *state) { + + const utf8proc_property_t *p1 = utf8proc_get_property(c1); + const utf8proc_property_t *p2 = utf8proc_get_property(c2); + return grapheme_break_extended(p1->boundclass, + p2->boundclass, + p1->indic_conjunct_break, + p2->indic_conjunct_break, + state); +} + + +UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break( + utf8proc_int32_t c1, utf8proc_int32_t c2) { + return utf8proc_grapheme_break_stateful(c1, c2, NULL); +} + +static utf8proc_int32_t seqindex_decode_entry(const utf8proc_uint16_t **entry) +{ + utf8proc_int32_t entry_cp = **entry; + if ((entry_cp & 0xF800) == 0xD800) { + *entry = *entry + 1; + entry_cp = ((entry_cp & 0x03FF) << 10) | (**entry & 0x03FF); + entry_cp += 0x10000; + } + return entry_cp; +} + +static utf8proc_int32_t seqindex_decode_index(const utf8proc_uint32_t seqindex) +{ + const utf8proc_uint16_t *entry = &utf8proc_sequences[seqindex]; + return seqindex_decode_entry(&entry); +} + +static utf8proc_ssize_t seqindex_write_char_decomposed(utf8proc_uint16_t seqindex, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize, utf8proc_option_t options, int *last_boundclass) { + utf8proc_ssize_t written = 0; + const utf8proc_uint16_t *entry = &utf8proc_sequences[seqindex & 0x3FFF]; + int len = seqindex >> 14; + if (len >= 3) { + len = *entry; + entry++; + } + for (; len >= 0; entry++, len--) { + utf8proc_int32_t entry_cp = seqindex_decode_entry(&entry); + + written += utf8proc_decompose_char(entry_cp, dst+written, + (bufsize > written) ? (bufsize - written) : 0, options, + last_boundclass); + if (written < 0) return UTF8PROC_ERROR_OVERFLOW; + } + return written; +} + +UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_tolower(utf8proc_int32_t c) +{ + utf8proc_int32_t cl = utf8proc_get_property(c)->lowercase_seqindex; + return cl != UINT16_MAX ? seqindex_decode_index((utf8proc_uint32_t)cl) : c; +} + +UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_toupper(utf8proc_int32_t c) +{ + utf8proc_int32_t cu = utf8proc_get_property(c)->uppercase_seqindex; + return cu != UINT16_MAX ? seqindex_decode_index((utf8proc_uint32_t)cu) : c; +} + +UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_totitle(utf8proc_int32_t c) +{ + utf8proc_int32_t cu = utf8proc_get_property(c)->titlecase_seqindex; + return cu != UINT16_MAX ? seqindex_decode_index((utf8proc_uint32_t)cu) : c; +} + +UTF8PROC_DLLEXPORT int utf8proc_islower(utf8proc_int32_t c) +{ + const utf8proc_property_t *p = utf8proc_get_property(c); + return p->lowercase_seqindex != p->uppercase_seqindex && p->lowercase_seqindex == UINT16_MAX; +} + +UTF8PROC_DLLEXPORT int utf8proc_isupper(utf8proc_int32_t c) +{ + const utf8proc_property_t *p = utf8proc_get_property(c); + return p->lowercase_seqindex != p->uppercase_seqindex && p->uppercase_seqindex == UINT16_MAX && p->category != UTF8PROC_CATEGORY_LT; +} + +/* return a character width analogous to wcwidth (except portable and + hopefully less buggy than most system wcwidth functions). */ +UTF8PROC_DLLEXPORT int utf8proc_charwidth(utf8proc_int32_t c) { + return utf8proc_get_property(c)->charwidth; +} + +UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_charwidth_ambiguous(utf8proc_int32_t c) { + return utf8proc_get_property(c)->ambiguous_width; +} + +UTF8PROC_DLLEXPORT utf8proc_category_t utf8proc_category(utf8proc_int32_t c) { + return (utf8proc_category_t) utf8proc_get_property(c)->category; +} + +UTF8PROC_DLLEXPORT const char *utf8proc_category_string(utf8proc_int32_t c) { + static const char s[][3] = {"Cn","Lu","Ll","Lt","Lm","Lo","Mn","Mc","Me","Nd","Nl","No","Pc","Pd","Ps","Pe","Pi","Pf","Po","Sm","Sc","Sk","So","Zs","Zl","Zp","Cc","Cf","Cs","Co"}; + return s[utf8proc_category(c)]; +} + +#define utf8proc_decompose_lump(replacement_uc) \ + return utf8proc_decompose_char((replacement_uc), dst, bufsize, \ + options & ~(unsigned int)UTF8PROC_LUMP, last_boundclass) + +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_char(utf8proc_int32_t uc, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize, utf8proc_option_t options, int *last_boundclass) { + const utf8proc_property_t *property; + utf8proc_propval_t category; + utf8proc_int32_t hangul_sindex; + if (uc < 0 || uc >= 0x110000) return UTF8PROC_ERROR_NOTASSIGNED; + property = unsafe_get_property(uc); + category = property->category; + hangul_sindex = uc - UTF8PROC_HANGUL_SBASE; + if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) { + if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT) { + utf8proc_int32_t hangul_tindex; + if (bufsize >= 1) { + dst[0] = UTF8PROC_HANGUL_LBASE + + hangul_sindex / UTF8PROC_HANGUL_NCOUNT; + if (bufsize >= 2) dst[1] = UTF8PROC_HANGUL_VBASE + + (hangul_sindex % UTF8PROC_HANGUL_NCOUNT) / UTF8PROC_HANGUL_TCOUNT; + } + hangul_tindex = hangul_sindex % UTF8PROC_HANGUL_TCOUNT; + if (!hangul_tindex) return 2; + if (bufsize >= 3) dst[2] = UTF8PROC_HANGUL_TBASE + hangul_tindex; + return 3; + } + } + if (options & UTF8PROC_REJECTNA) { + if (!category) return UTF8PROC_ERROR_NOTASSIGNED; + } + if (options & UTF8PROC_IGNORE) { + if (property->ignorable) return 0; + } + if (options & UTF8PROC_STRIPNA) { + if (!category) return 0; + } + if (options & UTF8PROC_LUMP) { + if (category == UTF8PROC_CATEGORY_ZS) utf8proc_decompose_lump(0x0020); + if (uc == 0x2018 || uc == 0x2019 || uc == 0x02BC || uc == 0x02C8) + utf8proc_decompose_lump(0x0027); + if (category == UTF8PROC_CATEGORY_PD || uc == 0x2212) + utf8proc_decompose_lump(0x002D); + if (uc == 0x2044 || uc == 0x2215) utf8proc_decompose_lump(0x002F); + if (uc == 0x2236) utf8proc_decompose_lump(0x003A); + if (uc == 0x2039 || uc == 0x2329 || uc == 0x3008) + utf8proc_decompose_lump(0x003C); + if (uc == 0x203A || uc == 0x232A || uc == 0x3009) + utf8proc_decompose_lump(0x003E); + if (uc == 0x2216) utf8proc_decompose_lump(0x005C); + if (uc == 0x02C4 || uc == 0x02C6 || uc == 0x2038 || uc == 0x2303) + utf8proc_decompose_lump(0x005E); + if (category == UTF8PROC_CATEGORY_PC || uc == 0x02CD) + utf8proc_decompose_lump(0x005F); + if (uc == 0x02CB) utf8proc_decompose_lump(0x0060); + if (uc == 0x2223) utf8proc_decompose_lump(0x007C); + if (uc == 0x223C) utf8proc_decompose_lump(0x007E); + if ((options & UTF8PROC_NLF2LS) && (options & UTF8PROC_NLF2PS)) { + if (category == UTF8PROC_CATEGORY_ZL || + category == UTF8PROC_CATEGORY_ZP) + utf8proc_decompose_lump(0x000A); + } + } + if (options & UTF8PROC_STRIPMARK) { + if (category == UTF8PROC_CATEGORY_MN || + category == UTF8PROC_CATEGORY_MC || + category == UTF8PROC_CATEGORY_ME) return 0; + } + if (options & UTF8PROC_CASEFOLD) { + if (property->casefold_seqindex != UINT16_MAX) { + return seqindex_write_char_decomposed(property->casefold_seqindex, dst, bufsize, options, last_boundclass); + } + } + if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) { + if (property->decomp_seqindex != UINT16_MAX && + (!property->decomp_type || (options & UTF8PROC_COMPAT))) { + return seqindex_write_char_decomposed(property->decomp_seqindex, dst, bufsize, options, last_boundclass); + } + } + if (options & UTF8PROC_CHARBOUND) { + utf8proc_bool boundary; + boundary = grapheme_break_extended(0, property->boundclass, 0, property->indic_conjunct_break, + last_boundclass); + if (boundary) { + if (bufsize >= 1) dst[0] = -1; /* sentinel value for grapheme break */ + if (bufsize >= 2) dst[1] = uc; + return 2; + } + } + if (bufsize >= 1) *dst = uc; + return 1; +} + +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose( + const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, + utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options +) { + return utf8proc_decompose_custom(str, strlen, buffer, bufsize, options, NULL, NULL); +} + +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_custom( + const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, + utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options, + utf8proc_custom_func custom_func, void *custom_data +) { + /* strlen will be ignored, if UTF8PROC_NULLTERM is set in options */ + utf8proc_ssize_t wpos = 0; + if ((options & UTF8PROC_COMPOSE) && (options & UTF8PROC_DECOMPOSE)) + return UTF8PROC_ERROR_INVALIDOPTS; + if ((options & UTF8PROC_STRIPMARK) && + !(options & UTF8PROC_COMPOSE) && !(options & UTF8PROC_DECOMPOSE)) + return UTF8PROC_ERROR_INVALIDOPTS; + { + utf8proc_int32_t uc; + utf8proc_ssize_t rpos = 0; + utf8proc_ssize_t decomp_result; + int boundclass = UTF8PROC_BOUNDCLASS_START; + while (1) { + if (options & UTF8PROC_NULLTERM) { + rpos += utf8proc_iterate(str + rpos, -1, &uc); + /* checking of return value is not necessary, + as 'uc' is < 0 in case of error */ + if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8; + if (rpos < 0) return UTF8PROC_ERROR_OVERFLOW; + if (uc == 0) break; + } else { + if (rpos >= strlen) break; + rpos += utf8proc_iterate(str + rpos, strlen - rpos, &uc); + if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8; + } + if (custom_func != NULL) { + uc = custom_func(uc, custom_data); /* user-specified custom mapping */ + } + decomp_result = utf8proc_decompose_char( + uc, buffer + wpos, (bufsize > wpos) ? (bufsize - wpos) : 0, options, + &boundclass + ); + if (decomp_result < 0) return decomp_result; + wpos += decomp_result; + /* prohibiting integer overflows due to too long strings: */ + if (wpos < 0 || + wpos > (utf8proc_ssize_t)(SSIZE_MAX/sizeof(utf8proc_int32_t)/2)) + return UTF8PROC_ERROR_OVERFLOW; + } + } + if ((options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) && bufsize >= wpos) { + utf8proc_ssize_t pos = 0; + while (pos < wpos-1) { + utf8proc_int32_t uc1, uc2; + const utf8proc_property_t *property1, *property2; + uc1 = buffer[pos]; + uc2 = buffer[pos+1]; + property1 = unsafe_get_property(uc1); + property2 = unsafe_get_property(uc2); + if (property1->combining_class > property2->combining_class && + property2->combining_class > 0) { + buffer[pos] = uc2; + buffer[pos+1] = uc1; + if (pos > 0) pos--; else pos++; + } else { + pos++; + } + } + } + return wpos; +} + +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) { + /* UTF8PROC_NULLTERM option will be ignored, 'length' is never ignored */ + if (options & (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS | UTF8PROC_STRIPCC)) { + utf8proc_ssize_t rpos; + utf8proc_ssize_t wpos = 0; + utf8proc_int32_t uc; + for (rpos = 0; rpos < length; rpos++) { + uc = buffer[rpos]; + if (uc == 0x000D && rpos < length-1 && buffer[rpos+1] == 0x000A) rpos++; + if (uc == 0x000A || uc == 0x000D || uc == 0x0085 || + ((options & UTF8PROC_STRIPCC) && (uc == 0x000B || uc == 0x000C))) { + if (options & UTF8PROC_NLF2LS) { + if (options & UTF8PROC_NLF2PS) { + buffer[wpos++] = 0x000A; + } else { + buffer[wpos++] = 0x2028; + } + } else { + if (options & UTF8PROC_NLF2PS) { + buffer[wpos++] = 0x2029; + } else { + buffer[wpos++] = 0x0020; + } + } + } else if ((options & UTF8PROC_STRIPCC) && + (uc < 0x0020 || (uc >= 0x007F && uc < 0x00A0))) { + if (uc == 0x0009) buffer[wpos++] = 0x0020; + } else { + buffer[wpos++] = uc; + } + } + length = wpos; + } + if (options & UTF8PROC_COMPOSE) { + utf8proc_int32_t *starter = NULL; + const utf8proc_property_t *starter_property = NULL; + utf8proc_propval_t max_combining_class = -1; + utf8proc_ssize_t rpos; + utf8proc_ssize_t wpos = 0; + for (rpos = 0; rpos < length; rpos++) { + utf8proc_int32_t current_char = buffer[rpos]; + const utf8proc_property_t *current_property = unsafe_get_property(current_char); + if (starter && current_property->combining_class > max_combining_class) { + /* combination perhaps possible */ + utf8proc_int32_t hangul_lindex; + utf8proc_int32_t hangul_sindex; + hangul_lindex = *starter - UTF8PROC_HANGUL_LBASE; + if (hangul_lindex >= 0 && hangul_lindex < UTF8PROC_HANGUL_LCOUNT) { + utf8proc_int32_t hangul_vindex; + hangul_vindex = current_char - UTF8PROC_HANGUL_VBASE; + if (hangul_vindex >= 0 && hangul_vindex < UTF8PROC_HANGUL_VCOUNT) { + *starter = UTF8PROC_HANGUL_SBASE + + (hangul_lindex * UTF8PROC_HANGUL_VCOUNT + hangul_vindex) * + UTF8PROC_HANGUL_TCOUNT; + starter_property = NULL; + continue; + } + } + hangul_sindex = *starter - UTF8PROC_HANGUL_SBASE; + if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT && + (hangul_sindex % UTF8PROC_HANGUL_TCOUNT) == 0) { + utf8proc_int32_t hangul_tindex; + hangul_tindex = current_char - UTF8PROC_HANGUL_TBASE; + if (hangul_tindex >= 0 && hangul_tindex < UTF8PROC_HANGUL_TCOUNT) { + *starter += hangul_tindex; + starter_property = NULL; + continue; + } + } + if (!starter_property) { + starter_property = unsafe_get_property(*starter); + } + int idx = starter_property->comb_index; + if (idx < 0x3FF && current_property->comb_issecond) { + int len = starter_property->comb_length; + utf8proc_int32_t max_second = utf8proc_combinations_second[idx + len - 1]; + if (current_char <= max_second) { + // TODO: binary search? arithmetic search? + for (int off = 0; off < len; ++off) { + utf8proc_int32_t second = utf8proc_combinations_second[idx + off]; + if (current_char < second) { + /* not found */ + break; + } + if (current_char == second) { + /* found */ + utf8proc_int32_t composition = utf8proc_combinations_combined[idx + off]; + *starter = composition; + starter_property = NULL; + break; + } + } + if (starter_property == NULL) { + /* found */ + continue; + } + } + } + } + buffer[wpos] = current_char; + if (current_property->combining_class) { + if (current_property->combining_class > max_combining_class) { + max_combining_class = current_property->combining_class; + } + } else { + starter = buffer + wpos; + starter_property = NULL; + max_combining_class = -1; + } + wpos++; + } + length = wpos; + } + return length; +} + +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_reencode(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) { + /* UTF8PROC_NULLTERM option will be ignored, 'length' is never ignored + ASSERT: 'buffer' has one spare byte of free space at the end! */ + length = utf8proc_normalize_utf32(buffer, length, options); + if (length < 0) return length; + { + utf8proc_ssize_t rpos, wpos = 0; + utf8proc_int32_t uc; + if (options & UTF8PROC_CHARBOUND) { + for (rpos = 0; rpos < length; rpos++) { + uc = buffer[rpos]; + wpos += charbound_encode_char(uc, ((utf8proc_uint8_t *)buffer) + wpos); + } + } else { + for (rpos = 0; rpos < length; rpos++) { + uc = buffer[rpos]; + wpos += utf8proc_encode_char(uc, ((utf8proc_uint8_t *)buffer) + wpos); + } + } + ((utf8proc_uint8_t *)buffer)[wpos] = 0; + return wpos; + } +} + +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map( + const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options +) { + return utf8proc_map_custom(str, strlen, dstptr, options, NULL, NULL); +} + +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map_custom( + const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options, + utf8proc_custom_func custom_func, void *custom_data +) { + utf8proc_int32_t *buffer; + utf8proc_ssize_t result; + *dstptr = NULL; + result = utf8proc_decompose_custom(str, strlen, NULL, 0, options, custom_func, custom_data); + if (result < 0) return result; + buffer = (utf8proc_int32_t *) malloc(((utf8proc_size_t)result) * sizeof(utf8proc_int32_t) + 1); + if (!buffer) return UTF8PROC_ERROR_NOMEM; + result = utf8proc_decompose_custom(str, strlen, buffer, result, options, custom_func, custom_data); + if (result < 0) { + free(buffer); + return result; + } + result = utf8proc_reencode(buffer, result, options); + if (result < 0) { + free(buffer); + return result; + } + { + utf8proc_int32_t *newptr; + newptr = (utf8proc_int32_t *) realloc(buffer, (size_t)result+1); + if (newptr) buffer = newptr; + } + *dstptr = (utf8proc_uint8_t *)buffer; + return result; +} + +UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFD(const utf8proc_uint8_t *str) { + utf8proc_uint8_t *retval; + utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | + UTF8PROC_DECOMPOSE); + return retval; +} + +UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFC(const utf8proc_uint8_t *str) { + utf8proc_uint8_t *retval; + utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | + UTF8PROC_COMPOSE); + return retval; +} + +UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKD(const utf8proc_uint8_t *str) { + utf8proc_uint8_t *retval; + utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | + UTF8PROC_DECOMPOSE | UTF8PROC_COMPAT); + return retval; +} + +UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKC(const utf8proc_uint8_t *str) { + utf8proc_uint8_t *retval; + utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | + UTF8PROC_COMPOSE | UTF8PROC_COMPAT); + return retval; +} + +UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKC_Casefold(const utf8proc_uint8_t *str) { + utf8proc_uint8_t *retval; + utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | + UTF8PROC_COMPOSE | UTF8PROC_COMPAT | UTF8PROC_CASEFOLD | UTF8PROC_IGNORE); + return retval; +} diff --git a/thirdparty/utf8proc/utf8proc.h b/thirdparty/utf8proc/utf8proc.h new file mode 100644 index 000000000..64cb0af9c --- /dev/null +++ b/thirdparty/utf8proc/utf8proc.h @@ -0,0 +1,789 @@ +/* + * Copyright (c) 2014-2021 Steven G. Johnson, Jiahao Chen, Peter Colberg, Tony Kelman, Scott P. Jones, and other contributors. + * Copyright (c) 2009 Public Software Group e. V., Berlin, Germany + * + * 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. + */ + + +/** + * @mainpage + * + * utf8proc is a free/open-source (MIT/expat licensed) C library + * providing Unicode normalization, case-folding, and other operations + * for strings in the UTF-8 encoding, supporting up-to-date Unicode versions. + * See the utf8proc home page (http://julialang.org/utf8proc/) + * for downloads and other information, or the source code on github + * (https://github.com/JuliaLang/utf8proc). + * + * For the utf8proc API documentation, see: @ref utf8proc.h + * + * The features of utf8proc include: + * + * - Transformation of strings (utf8proc_map()) to: + * - decompose (@ref UTF8PROC_DECOMPOSE) or compose (@ref UTF8PROC_COMPOSE) Unicode combining characters (http://en.wikipedia.org/wiki/Combining_character) + * - canonicalize Unicode compatibility characters (@ref UTF8PROC_COMPAT) + * - strip "ignorable" (@ref UTF8PROC_IGNORE) characters, control characters (@ref UTF8PROC_STRIPCC), or combining characters such as accents (@ref UTF8PROC_STRIPMARK) + * - case-folding (@ref UTF8PROC_CASEFOLD) + * - Unicode normalization: utf8proc_NFD(), utf8proc_NFC(), utf8proc_NFKD(), utf8proc_NFKC() + * - Detecting grapheme boundaries (utf8proc_grapheme_break() and @ref UTF8PROC_CHARBOUND) + * - Character-width computation: utf8proc_charwidth() + * - Classification of characters by Unicode category: utf8proc_category() and utf8proc_category_string() + * - Encode (utf8proc_encode_char()) and decode (utf8proc_iterate()) Unicode codepoints to/from UTF-8. + */ + +/** @file */ + +#ifndef UTF8PROC_H +#define UTF8PROC_H + +/** @name API version + * + * The utf8proc API version MAJOR.MINOR.PATCH, following + * semantic-versioning rules (http://semver.org) based on API + * compatibility. + * + * This is also returned at runtime by utf8proc_version(); however, the + * runtime version may append a string like "-dev" to the version number + * for prerelease versions. + * + * @note The shared-library version number in the Makefile + * (and CMakeLists.txt, and MANIFEST) may be different, + * being based on ABI compatibility rather than API compatibility. + */ +/** @{ */ +/** The MAJOR version number (increased when backwards API compatibility is broken). */ +#define UTF8PROC_VERSION_MAJOR 2 +/** The MINOR version number (increased when new functionality is added in a backwards-compatible manner). */ +#define UTF8PROC_VERSION_MINOR 10 +/** The PATCH version (increased for fixes that do not change the API). */ +#define UTF8PROC_VERSION_PATCH 0 +/** @} */ + +#include + +#if defined(_MSC_VER) && _MSC_VER < 1800 +// MSVC prior to 2013 lacked stdbool.h and stdint.h +typedef signed char utf8proc_int8_t; +typedef unsigned char utf8proc_uint8_t; +typedef short utf8proc_int16_t; +typedef unsigned short utf8proc_uint16_t; +typedef int utf8proc_int32_t; +typedef unsigned int utf8proc_uint32_t; +# ifdef _WIN64 +typedef __int64 utf8proc_ssize_t; +typedef unsigned __int64 utf8proc_size_t; +# else +typedef int utf8proc_ssize_t; +typedef unsigned int utf8proc_size_t; +# endif +# ifndef __cplusplus +// emulate C99 bool +typedef unsigned char utf8proc_bool; +# ifndef __bool_true_false_are_defined +# define false 0 +# define true 1 +# define __bool_true_false_are_defined 1 +# endif +# else +typedef bool utf8proc_bool; +# endif +#else +# include +# include +# include +typedef int8_t utf8proc_int8_t; +typedef uint8_t utf8proc_uint8_t; +typedef int16_t utf8proc_int16_t; +typedef uint16_t utf8proc_uint16_t; +typedef int32_t utf8proc_int32_t; +typedef uint32_t utf8proc_uint32_t; +typedef size_t utf8proc_size_t; +typedef ptrdiff_t utf8proc_ssize_t; +typedef bool utf8proc_bool; +#endif +#include + +#ifdef UTF8PROC_STATIC +# define UTF8PROC_DLLEXPORT +#else +# ifdef _WIN32 +# ifdef UTF8PROC_EXPORTS +# define UTF8PROC_DLLEXPORT __declspec(dllexport) +# else +# define UTF8PROC_DLLEXPORT __declspec(dllimport) +# endif +# elif __GNUC__ >= 4 +# define UTF8PROC_DLLEXPORT __attribute__ ((visibility("default"))) +# else +# define UTF8PROC_DLLEXPORT +# endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Option flags used by several functions in the library. + */ +typedef enum { + /** The given UTF-8 input is NULL terminated. */ + UTF8PROC_NULLTERM = (1<<0), + /** Unicode Versioning Stability has to be respected. */ + UTF8PROC_STABLE = (1<<1), + /** Compatibility decomposition (i.e. formatting information is lost). */ + UTF8PROC_COMPAT = (1<<2), + /** Return a result with decomposed characters. */ + UTF8PROC_COMPOSE = (1<<3), + /** Return a result with decomposed characters. */ + UTF8PROC_DECOMPOSE = (1<<4), + /** Strip "default ignorable characters" such as SOFT-HYPHEN or ZERO-WIDTH-SPACE. */ + UTF8PROC_IGNORE = (1<<5), + /** Return an error, if the input contains unassigned codepoints. */ + UTF8PROC_REJECTNA = (1<<6), + /** + * Indicating that NLF-sequences (LF, CRLF, CR, NEL) are representing a + * line break, and should be converted to the codepoint for line + * separation (LS). + */ + UTF8PROC_NLF2LS = (1<<7), + /** + * Indicating that NLF-sequences are representing a paragraph break, and + * should be converted to the codepoint for paragraph separation + * (PS). + */ + UTF8PROC_NLF2PS = (1<<8), + /** Indicating that the meaning of NLF-sequences is unknown. */ + UTF8PROC_NLF2LF = (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS), + /** Strips and/or convers control characters. + * + * NLF-sequences are transformed into space, except if one of the + * NLF2LS/PS/LF options is given. HorizontalTab (HT) and FormFeed (FF) + * are treated as a NLF-sequence in this case. All other control + * characters are simply removed. + */ + UTF8PROC_STRIPCC = (1<<9), + /** + * Performs unicode case folding, to be able to do a case-insensitive + * string comparison. + */ + UTF8PROC_CASEFOLD = (1<<10), + /** + * Inserts 0xFF bytes at the beginning of each sequence which is + * representing a single grapheme cluster (see UAX#29). + */ + UTF8PROC_CHARBOUND = (1<<11), + /** Lumps certain characters together. + * + * E.g. HYPHEN U+2010 and MINUS U+2212 to ASCII "-". See lump.md for details. + * + * If NLF2LF is set, this includes a transformation of paragraph and + * line separators to ASCII line-feed (LF). + */ + UTF8PROC_LUMP = (1<<12), + /** Strips all character markings. + * + * This includes non-spacing, spacing and enclosing (i.e. accents). + * @note This option works only with @ref UTF8PROC_COMPOSE or + * @ref UTF8PROC_DECOMPOSE + */ + UTF8PROC_STRIPMARK = (1<<13), + /** + * Strip unassigned codepoints. + */ + UTF8PROC_STRIPNA = (1<<14), +} utf8proc_option_t; + +/** @name Error codes + * Error codes being returned by almost all functions. + */ +/** @{ */ +/** Memory could not be allocated. */ +#define UTF8PROC_ERROR_NOMEM -1 +/** The given string is too long to be processed. */ +#define UTF8PROC_ERROR_OVERFLOW -2 +/** The given string is not a legal UTF-8 string. */ +#define UTF8PROC_ERROR_INVALIDUTF8 -3 +/** The @ref UTF8PROC_REJECTNA flag was set and an unassigned codepoint was found. */ +#define UTF8PROC_ERROR_NOTASSIGNED -4 +/** Invalid options have been used. */ +#define UTF8PROC_ERROR_INVALIDOPTS -5 +/** @} */ + +/* @name Types */ + +/** Holds the value of a property. */ +typedef utf8proc_int16_t utf8proc_propval_t; + +/** Struct containing information about a codepoint. */ +typedef struct utf8proc_property_struct { + /** + * Unicode category. + * @see utf8proc_category_t. + */ + utf8proc_propval_t category; + utf8proc_propval_t combining_class; + /** + * Bidirectional class. + * @see utf8proc_bidi_class_t. + */ + utf8proc_propval_t bidi_class; + /** + * @anchor Decomposition type. + * @see utf8proc_decomp_type_t. + */ + utf8proc_propval_t decomp_type; + utf8proc_uint16_t decomp_seqindex; + utf8proc_uint16_t casefold_seqindex; + utf8proc_uint16_t uppercase_seqindex; + utf8proc_uint16_t lowercase_seqindex; + utf8proc_uint16_t titlecase_seqindex; + /** + * Character combining table. + * + * The character combining table is formally indexed by two + * characters, the first and second character that might form a + * combining pair. The table entry then contains the combined + * character. Most character pairs cannot be combined. There are + * about 1,000 characters that can be the first character in a + * combining pair, and for most, there are only a handful for + * possible second characters. + * + * The combining table is stored as sparse matrix in the CSR + * (compressed sparse row) format. That is, it is stored as two + * arrays, `utf8proc_uint32_t utf8proc_combinations_second[]` and + * `utf8proc_uint32_t utf8proc_combinations_combined[]`. These + * contain the second combining characters and the combined + * character of every combining pair. + * + * - `comb_index`: Index into the combining table if this character + * is the first character in a combining pair, else 0x3ff + * + * - `comb_length`: Number of table entries for this first character + * + * - `comb_is_second`: As optimization we also record whether this + * character is the second combining character in any pair. If + * not, we can skip the table lookup. + * + * A table lookup starts from a given character pair. It first + * checks whether the first character is stored in the table + * (checking whether the index is 0x3ff) and whether the second + * index is stored in the table (looking at `comb_is_second`). If + * so, the `comb_length` table entries will be checked sequentially + * for a match. + */ + utf8proc_uint16_t comb_index:10; + utf8proc_uint16_t comb_length:5; + utf8proc_uint16_t comb_issecond:1; + unsigned bidi_mirrored:1; + unsigned comp_exclusion:1; + /** + * Can this codepoint be ignored? + * + * Used by utf8proc_decompose_char() when @ref UTF8PROC_IGNORE is + * passed as an option. + */ + unsigned ignorable:1; + unsigned control_boundary:1; + /** The width of the codepoint. */ + unsigned charwidth:2; + /** East Asian width class A */ + unsigned ambiguous_width:1; + unsigned pad:1; + /** + * Boundclass. + * @see utf8proc_boundclass_t. + */ + unsigned boundclass:6; + unsigned indic_conjunct_break:2; +} utf8proc_property_t; + +/** Unicode categories. */ +typedef enum { + UTF8PROC_CATEGORY_CN = 0, /**< Other, not assigned */ + UTF8PROC_CATEGORY_LU = 1, /**< Letter, uppercase */ + UTF8PROC_CATEGORY_LL = 2, /**< Letter, lowercase */ + UTF8PROC_CATEGORY_LT = 3, /**< Letter, titlecase */ + UTF8PROC_CATEGORY_LM = 4, /**< Letter, modifier */ + UTF8PROC_CATEGORY_LO = 5, /**< Letter, other */ + UTF8PROC_CATEGORY_MN = 6, /**< Mark, nonspacing */ + UTF8PROC_CATEGORY_MC = 7, /**< Mark, spacing combining */ + UTF8PROC_CATEGORY_ME = 8, /**< Mark, enclosing */ + UTF8PROC_CATEGORY_ND = 9, /**< Number, decimal digit */ + UTF8PROC_CATEGORY_NL = 10, /**< Number, letter */ + UTF8PROC_CATEGORY_NO = 11, /**< Number, other */ + UTF8PROC_CATEGORY_PC = 12, /**< Punctuation, connector */ + UTF8PROC_CATEGORY_PD = 13, /**< Punctuation, dash */ + UTF8PROC_CATEGORY_PS = 14, /**< Punctuation, open */ + UTF8PROC_CATEGORY_PE = 15, /**< Punctuation, close */ + UTF8PROC_CATEGORY_PI = 16, /**< Punctuation, initial quote */ + UTF8PROC_CATEGORY_PF = 17, /**< Punctuation, final quote */ + UTF8PROC_CATEGORY_PO = 18, /**< Punctuation, other */ + UTF8PROC_CATEGORY_SM = 19, /**< Symbol, math */ + UTF8PROC_CATEGORY_SC = 20, /**< Symbol, currency */ + UTF8PROC_CATEGORY_SK = 21, /**< Symbol, modifier */ + UTF8PROC_CATEGORY_SO = 22, /**< Symbol, other */ + UTF8PROC_CATEGORY_ZS = 23, /**< Separator, space */ + UTF8PROC_CATEGORY_ZL = 24, /**< Separator, line */ + UTF8PROC_CATEGORY_ZP = 25, /**< Separator, paragraph */ + UTF8PROC_CATEGORY_CC = 26, /**< Other, control */ + UTF8PROC_CATEGORY_CF = 27, /**< Other, format */ + UTF8PROC_CATEGORY_CS = 28, /**< Other, surrogate */ + UTF8PROC_CATEGORY_CO = 29, /**< Other, private use */ +} utf8proc_category_t; + +/** Bidirectional character classes. */ +typedef enum { + UTF8PROC_BIDI_CLASS_L = 1, /**< Left-to-Right */ + UTF8PROC_BIDI_CLASS_LRE = 2, /**< Left-to-Right Embedding */ + UTF8PROC_BIDI_CLASS_LRO = 3, /**< Left-to-Right Override */ + UTF8PROC_BIDI_CLASS_R = 4, /**< Right-to-Left */ + UTF8PROC_BIDI_CLASS_AL = 5, /**< Right-to-Left Arabic */ + UTF8PROC_BIDI_CLASS_RLE = 6, /**< Right-to-Left Embedding */ + UTF8PROC_BIDI_CLASS_RLO = 7, /**< Right-to-Left Override */ + UTF8PROC_BIDI_CLASS_PDF = 8, /**< Pop Directional Format */ + UTF8PROC_BIDI_CLASS_EN = 9, /**< European Number */ + UTF8PROC_BIDI_CLASS_ES = 10, /**< European Separator */ + UTF8PROC_BIDI_CLASS_ET = 11, /**< European Number Terminator */ + UTF8PROC_BIDI_CLASS_AN = 12, /**< Arabic Number */ + UTF8PROC_BIDI_CLASS_CS = 13, /**< Common Number Separator */ + UTF8PROC_BIDI_CLASS_NSM = 14, /**< Nonspacing Mark */ + UTF8PROC_BIDI_CLASS_BN = 15, /**< Boundary Neutral */ + UTF8PROC_BIDI_CLASS_B = 16, /**< Paragraph Separator */ + UTF8PROC_BIDI_CLASS_S = 17, /**< Segment Separator */ + UTF8PROC_BIDI_CLASS_WS = 18, /**< Whitespace */ + UTF8PROC_BIDI_CLASS_ON = 19, /**< Other Neutrals */ + UTF8PROC_BIDI_CLASS_LRI = 20, /**< Left-to-Right Isolate */ + UTF8PROC_BIDI_CLASS_RLI = 21, /**< Right-to-Left Isolate */ + UTF8PROC_BIDI_CLASS_FSI = 22, /**< First Strong Isolate */ + UTF8PROC_BIDI_CLASS_PDI = 23, /**< Pop Directional Isolate */ +} utf8proc_bidi_class_t; + +/** Decomposition type. */ +typedef enum { + UTF8PROC_DECOMP_TYPE_FONT = 1, /**< Font */ + UTF8PROC_DECOMP_TYPE_NOBREAK = 2, /**< Nobreak */ + UTF8PROC_DECOMP_TYPE_INITIAL = 3, /**< Initial */ + UTF8PROC_DECOMP_TYPE_MEDIAL = 4, /**< Medial */ + UTF8PROC_DECOMP_TYPE_FINAL = 5, /**< Final */ + UTF8PROC_DECOMP_TYPE_ISOLATED = 6, /**< Isolated */ + UTF8PROC_DECOMP_TYPE_CIRCLE = 7, /**< Circle */ + UTF8PROC_DECOMP_TYPE_SUPER = 8, /**< Super */ + UTF8PROC_DECOMP_TYPE_SUB = 9, /**< Sub */ + UTF8PROC_DECOMP_TYPE_VERTICAL = 10, /**< Vertical */ + UTF8PROC_DECOMP_TYPE_WIDE = 11, /**< Wide */ + UTF8PROC_DECOMP_TYPE_NARROW = 12, /**< Narrow */ + UTF8PROC_DECOMP_TYPE_SMALL = 13, /**< Small */ + UTF8PROC_DECOMP_TYPE_SQUARE = 14, /**< Square */ + UTF8PROC_DECOMP_TYPE_FRACTION = 15, /**< Fraction */ + UTF8PROC_DECOMP_TYPE_COMPAT = 16, /**< Compat */ +} utf8proc_decomp_type_t; + +/** Boundclass property. (TR29) */ +typedef enum { + UTF8PROC_BOUNDCLASS_START = 0, /**< Start */ + UTF8PROC_BOUNDCLASS_OTHER = 1, /**< Other */ + UTF8PROC_BOUNDCLASS_CR = 2, /**< Cr */ + UTF8PROC_BOUNDCLASS_LF = 3, /**< Lf */ + UTF8PROC_BOUNDCLASS_CONTROL = 4, /**< Control */ + UTF8PROC_BOUNDCLASS_EXTEND = 5, /**< Extend */ + UTF8PROC_BOUNDCLASS_L = 6, /**< L */ + UTF8PROC_BOUNDCLASS_V = 7, /**< V */ + UTF8PROC_BOUNDCLASS_T = 8, /**< T */ + UTF8PROC_BOUNDCLASS_LV = 9, /**< Lv */ + UTF8PROC_BOUNDCLASS_LVT = 10, /**< Lvt */ + UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR = 11, /**< Regional indicator */ + UTF8PROC_BOUNDCLASS_SPACINGMARK = 12, /**< Spacingmark */ + UTF8PROC_BOUNDCLASS_PREPEND = 13, /**< Prepend */ + UTF8PROC_BOUNDCLASS_ZWJ = 14, /**< Zero Width Joiner */ + + /* the following are no longer used in Unicode 11, but we keep + the constants here for backward compatibility */ + UTF8PROC_BOUNDCLASS_E_BASE = 15, /**< Emoji Base */ + UTF8PROC_BOUNDCLASS_E_MODIFIER = 16, /**< Emoji Modifier */ + UTF8PROC_BOUNDCLASS_GLUE_AFTER_ZWJ = 17, /**< Glue_After_ZWJ */ + UTF8PROC_BOUNDCLASS_E_BASE_GAZ = 18, /**< E_BASE + GLUE_AFTER_ZJW */ + + /* the Extended_Pictographic property is used in the Unicode 11 + grapheme-boundary rules, so we store it in the boundclass field */ + UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC = 19, + UTF8PROC_BOUNDCLASS_E_ZWG = 20, /* UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC + ZWJ */ +} utf8proc_boundclass_t; + +/** Indic_Conjunct_Break property. (TR44) */ +typedef enum { + UTF8PROC_INDIC_CONJUNCT_BREAK_NONE = 0, + UTF8PROC_INDIC_CONJUNCT_BREAK_LINKER = 1, + UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT = 2, + UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND = 3, +} utf8proc_indic_conjunct_break_t; + +/** + * Function pointer type passed to utf8proc_map_custom() and + * utf8proc_decompose_custom(), which is used to specify a user-defined + * mapping of codepoints to be applied in conjunction with other mappings. + */ +typedef utf8proc_int32_t (*utf8proc_custom_func)(utf8proc_int32_t codepoint, void *data); + +/** + * Array containing the byte lengths of a UTF-8 encoded codepoint based + * on the first byte. + */ +UTF8PROC_DLLEXPORT extern const utf8proc_int8_t utf8proc_utf8class[256]; + +/** + * Returns the utf8proc API version as a string MAJOR.MINOR.PATCH + * (http://semver.org format), possibly with a "-dev" suffix for + * development versions. + */ +UTF8PROC_DLLEXPORT const char *utf8proc_version(void); + +/** + * Returns the utf8proc supported Unicode version as a string MAJOR.MINOR.PATCH. + */ +UTF8PROC_DLLEXPORT const char *utf8proc_unicode_version(void); + +/** + * Returns an informative error string for the given utf8proc error code + * (e.g. the error codes returned by utf8proc_map()). + */ +UTF8PROC_DLLEXPORT const char *utf8proc_errmsg(utf8proc_ssize_t errcode); + +/** + * Reads a single codepoint from the UTF-8 sequence being pointed to by `str`. + * The maximum number of bytes read is `strlen`, unless `strlen` is + * negative (in which case up to 4 bytes are read). + * + * If a valid codepoint could be read, it is stored in the variable + * pointed to by `codepoint_ref`, otherwise that variable will be set to -1. + * In case of success, the number of bytes read is returned; otherwise, a + * negative error code is returned. + */ +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_iterate(const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_int32_t *codepoint_ref); + +/** + * Check if a codepoint is valid (regardless of whether it has been + * assigned a value by the current Unicode standard). + * + * @return 1 if the given `codepoint` is valid and otherwise return 0. + */ +UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_codepoint_valid(utf8proc_int32_t codepoint); + +/** + * Encodes the codepoint as an UTF-8 string in the byte array pointed + * to by `dst`. This array must be at least 4 bytes long. + * + * In case of success the number of bytes written is returned, and + * otherwise 0 is returned. + * + * This function does not check whether `codepoint` is valid Unicode. + */ +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_encode_char(utf8proc_int32_t codepoint, utf8proc_uint8_t *dst); + +/** + * Look up the properties for a given codepoint. + * + * @param codepoint The Unicode codepoint. + * + * @returns + * A pointer to a (constant) struct containing information about + * the codepoint. + * @par + * If the codepoint is unassigned or invalid, a pointer to a special struct is + * returned in which `category` is 0 (@ref UTF8PROC_CATEGORY_CN). + */ +UTF8PROC_DLLEXPORT const utf8proc_property_t *utf8proc_get_property(utf8proc_int32_t codepoint); + +/** Decompose a codepoint into an array of codepoints. + * + * @param codepoint the codepoint. + * @param dst the destination buffer. + * @param bufsize the size of the destination buffer. + * @param options one or more of the following flags: + * - @ref UTF8PROC_REJECTNA - return an error `codepoint` is unassigned + * - @ref UTF8PROC_IGNORE - strip "default ignorable" codepoints + * - @ref UTF8PROC_CASEFOLD - apply Unicode casefolding + * - @ref UTF8PROC_COMPAT - replace certain codepoints with their + * compatibility decomposition + * - @ref UTF8PROC_CHARBOUND - insert 0xFF bytes before each grapheme cluster + * - @ref UTF8PROC_LUMP - lump certain different codepoints together + * - @ref UTF8PROC_STRIPMARK - remove all character marks + * - @ref UTF8PROC_STRIPNA - remove unassigned codepoints + * @param last_boundclass + * Pointer to an integer variable containing + * the previous codepoint's (boundclass + indic_conjunct_break << 1) if the @ref UTF8PROC_CHARBOUND + * option is used. If the string is being processed in order, this can be initialized to 0 for + * the beginning of the string, and is thereafter updated automatically. Otherwise, this parameter is ignored. + * + * @return + * In case of success, the number of codepoints written is returned; in case + * of an error, a negative error code is returned (utf8proc_errmsg()). + * @par + * If the number of written codepoints would be bigger than `bufsize`, the + * required buffer size is returned, while the buffer will be overwritten with + * undefined data. + */ +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_char( + utf8proc_int32_t codepoint, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize, + utf8proc_option_t options, int *last_boundclass +); + +/** + * The same as utf8proc_decompose_char(), but acts on a whole UTF-8 + * string and orders the decomposed sequences correctly. + * + * If the @ref UTF8PROC_NULLTERM flag in `options` is set, processing + * will be stopped, when a NULL byte is encountered, otherwise `strlen` + * bytes are processed. The result (in the form of 32-bit unicode + * codepoints) is written into the buffer being pointed to by + * `buffer` (which must contain at least `bufsize` entries). In case of + * success, the number of codepoints written is returned; in case of an + * error, a negative error code is returned (utf8proc_errmsg()). + * See utf8proc_decompose_custom() to supply additional transformations. + * + * If the number of written codepoints would be bigger than `bufsize`, the + * required buffer size is returned, while the buffer will be overwritten with + * undefined data. + */ +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose( + const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, + utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options +); + +/** + * The same as utf8proc_decompose(), but also takes a `custom_func` mapping function + * that is called on each codepoint in `str` before any other transformations + * (along with a `custom_data` pointer that is passed through to `custom_func`). + * The `custom_func` argument is ignored if it is `NULL`. See also utf8proc_map_custom(). + */ +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_custom( + const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, + utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options, + utf8proc_custom_func custom_func, void *custom_data +); + +/** + * Normalizes the sequence of `length` codepoints pointed to by `buffer` + * in-place (i.e., the result is also stored in `buffer`). + * + * @param buffer the (native-endian UTF-32) unicode codepoints to re-encode. + * @param length the length (in codepoints) of the buffer. + * @param options a bitwise or (`|`) of one or more of the following flags: + * - @ref UTF8PROC_NLF2LS - convert LF, CRLF, CR and NEL into LS + * - @ref UTF8PROC_NLF2PS - convert LF, CRLF, CR and NEL into PS + * - @ref UTF8PROC_NLF2LF - convert LF, CRLF, CR and NEL into LF + * - @ref UTF8PROC_STRIPCC - strip or convert all non-affected control characters + * - @ref UTF8PROC_COMPOSE - try to combine decomposed codepoints into composite + * codepoints + * - @ref UTF8PROC_STABLE - prohibit combining characters that would violate + * the unicode versioning stability + * + * @return + * In case of success, the length (in codepoints) of the normalized UTF-32 string is + * returned; otherwise, a negative error code is returned (utf8proc_errmsg()). + * + * @warning The entries of the array pointed to by `str` have to be in the + * range `0x0000` to `0x10FFFF`. Otherwise, the program might crash! + */ +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options); + +/** + * Reencodes the sequence of `length` codepoints pointed to by `buffer` + * UTF-8 data in-place (i.e., the result is also stored in `buffer`). + * Can optionally normalize the UTF-32 sequence prior to UTF-8 conversion. + * + * @param buffer the (native-endian UTF-32) unicode codepoints to re-encode. + * @param length the length (in codepoints) of the buffer. + * @param options a bitwise or (`|`) of one or more of the following flags: + * - @ref UTF8PROC_NLF2LS - convert LF, CRLF, CR and NEL into LS + * - @ref UTF8PROC_NLF2PS - convert LF, CRLF, CR and NEL into PS + * - @ref UTF8PROC_NLF2LF - convert LF, CRLF, CR and NEL into LF + * - @ref UTF8PROC_STRIPCC - strip or convert all non-affected control characters + * - @ref UTF8PROC_COMPOSE - try to combine decomposed codepoints into composite + * codepoints + * - @ref UTF8PROC_STABLE - prohibit combining characters that would violate + * the unicode versioning stability + * - @ref UTF8PROC_CHARBOUND - insert 0xFF bytes before each grapheme cluster + * + * @return + * In case of success, the length (in bytes) of the resulting nul-terminated + * UTF-8 string is returned; otherwise, a negative error code is returned + * (utf8proc_errmsg()). + * + * @warning The amount of free space pointed to by `buffer` must + * exceed the amount of the input data by one byte, and the + * entries of the array pointed to by `str` have to be in the + * range `0x0000` to `0x10FFFF`. Otherwise, the program might crash! + */ +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_reencode(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options); + +/** + * Given a pair of consecutive codepoints, return whether a grapheme break is + * permitted between them (as defined by the extended grapheme clusters in UAX#29). + * + * @param codepoint1 The first codepoint. + * @param codepoint2 The second codepoint, occurring consecutively after `codepoint1`. + * @param state Beginning with Version 29 (Unicode 9.0.0), this algorithm requires + * state to break graphemes. This state can be passed in as a pointer + * in the `state` argument and should initially be set to 0. If the + * state is not passed in (i.e. a null pointer is passed), UAX#29 rules + * GB10/12/13 which require this state will not be applied, essentially + * matching the rules in Unicode 8.0.0. + * + * @warning If the state parameter is used, `utf8proc_grapheme_break_stateful` must + * be called IN ORDER on ALL potential breaks in a string. However, it + * is safe to reset the state to zero after a grapheme break. + */ +UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break_stateful( + utf8proc_int32_t codepoint1, utf8proc_int32_t codepoint2, utf8proc_int32_t *state); + +/** + * Same as utf8proc_grapheme_break_stateful(), except without support for the + * Unicode 9 additions to the algorithm. Supported for legacy reasons. + */ +UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break( + utf8proc_int32_t codepoint1, utf8proc_int32_t codepoint2); + + +/** + * Given a codepoint `c`, return the codepoint of the corresponding + * lower-case character, if any; otherwise (if there is no lower-case + * variant, or if `c` is not a valid codepoint) return `c`. + */ +UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_tolower(utf8proc_int32_t c); + +/** + * Given a codepoint `c`, return the codepoint of the corresponding + * upper-case character, if any; otherwise (if there is no upper-case + * variant, or if `c` is not a valid codepoint) return `c`. + */ +UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_toupper(utf8proc_int32_t c); + +/** + * Given a codepoint `c`, return the codepoint of the corresponding + * title-case character, if any; otherwise (if there is no title-case + * variant, or if `c` is not a valid codepoint) return `c`. + */ +UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_totitle(utf8proc_int32_t c); + +/** + * Given a codepoint `c`, return `1` if the codepoint corresponds to a lower-case character + * and `0` otherwise. + */ +UTF8PROC_DLLEXPORT int utf8proc_islower(utf8proc_int32_t c); + +/** + * Given a codepoint `c`, return `1` if the codepoint corresponds to an upper-case character + * and `0` otherwise. + */ +UTF8PROC_DLLEXPORT int utf8proc_isupper(utf8proc_int32_t c); + +/** + * Given a codepoint, return a character width analogous to `wcwidth(codepoint)`, + * except that a width of 0 is returned for non-printable codepoints + * instead of -1 as in `wcwidth`. + * + * @note + * If you want to check for particular types of non-printable characters, + * (analogous to `isprint` or `iscntrl`), use utf8proc_category(). */ +UTF8PROC_DLLEXPORT int utf8proc_charwidth(utf8proc_int32_t codepoint); + +/** + * Given a codepoint, return whether it has East Asian width class A (Ambiguous) + * + * Codepoints with this property are considered to have charwidth 1 (if they are printable) + * but some East Asian fonts render them as double width. + */ +UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_charwidth_ambiguous(utf8proc_int32_t codepoint); + +/** + * Return the Unicode category for the codepoint (one of the + * @ref utf8proc_category_t constants.) + */ +UTF8PROC_DLLEXPORT utf8proc_category_t utf8proc_category(utf8proc_int32_t codepoint); + +/** + * Return the two-letter (nul-terminated) Unicode category string for + * the codepoint (e.g. `"Lu"` or `"Co"`). + */ +UTF8PROC_DLLEXPORT const char *utf8proc_category_string(utf8proc_int32_t codepoint); + +/** + * Maps the given UTF-8 string pointed to by `str` to a new UTF-8 + * string, allocated dynamically by `malloc` and returned via `dstptr`. + * + * If the @ref UTF8PROC_NULLTERM flag in the `options` field is set, + * the length is determined by a NULL terminator, otherwise the + * parameter `strlen` is evaluated to determine the string length, but + * in any case the result will be NULL terminated (though it might + * contain NULL characters with the string if `str` contained NULL + * characters). Other flags in the `options` field are passed to the + * functions defined above, and regarded as described. See also + * utf8proc_map_custom() to supply a custom codepoint transformation. + * + * In case of success the length of the new string is returned, + * otherwise a negative error code is returned. + * + * @note The memory of the new UTF-8 string will have been allocated + * with `malloc`, and should therefore be deallocated with `free`. + */ +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map( + const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options +); + +/** + * Like utf8proc_map(), but also takes a `custom_func` mapping function + * that is called on each codepoint in `str` before any other transformations + * (along with a `custom_data` pointer that is passed through to `custom_func`). + * The `custom_func` argument is ignored if it is `NULL`. + */ +UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map_custom( + const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options, + utf8proc_custom_func custom_func, void *custom_data +); + +/** @name Unicode normalization + * + * Returns a pointer to newly allocated memory of a NFD, NFC, NFKD, NFKC or + * NFKC_Casefold normalized version of the null-terminated string `str`. These + * are shortcuts to calling utf8proc_map() with @ref UTF8PROC_NULLTERM + * combined with @ref UTF8PROC_STABLE and flags indicating the normalization. + */ +/** @{ */ +/** NFD normalization (@ref UTF8PROC_DECOMPOSE). */ +UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFD(const utf8proc_uint8_t *str); +/** NFC normalization (@ref UTF8PROC_COMPOSE). */ +UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFC(const utf8proc_uint8_t *str); +/** NFKD normalization (@ref UTF8PROC_DECOMPOSE and @ref UTF8PROC_COMPAT). */ +UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKD(const utf8proc_uint8_t *str); +/** NFKC normalization (@ref UTF8PROC_COMPOSE and @ref UTF8PROC_COMPAT). */ +UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKC(const utf8proc_uint8_t *str); +/** + * NFKC_Casefold normalization (@ref UTF8PROC_COMPOSE and @ref UTF8PROC_COMPAT + * and @ref UTF8PROC_CASEFOLD and @ref UTF8PROC_IGNORE). + **/ +UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKC_Casefold(const utf8proc_uint8_t *str); +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/thirdparty/utf8proc/utf8proc_data.c b/thirdparty/utf8proc/utf8proc_data.c new file mode 100644 index 000000000..dc32729a4 --- /dev/null +++ b/thirdparty/utf8proc/utf8proc_data.c @@ -0,0 +1,17106 @@ +static const utf8proc_uint16_t utf8proc_sequences[] = { + 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 32, 32, 776, + 170, 32, 772, 50, 51, 32, 769, 956, + 924, 32, 807, 49, 186, 49, 8260, 52, + 49, 8260, 50, 51, 8260, 52, 65, 768, + 224, 65, 769, 225, 65, 770, 226, 65, + 771, 227, 65, 776, 228, 65, 778, 229, + 230, 67, 807, 231, 69, 768, 232, 69, + 769, 233, 69, 770, 234, 69, 776, 235, + 73, 768, 236, 73, 769, 237, 73, 770, + 238, 73, 776, 239, 240, 78, 771, 241, + 79, 768, 242, 79, 769, 243, 79, 770, + 244, 79, 771, 245, 79, 776, 246, 248, + 85, 768, 249, 85, 769, 250, 85, 770, + 251, 85, 776, 252, 89, 769, 253, 254, + 115, 115, 7838, 97, 768, 192, 97, 769, + 193, 97, 770, 194, 97, 771, 195, 97, + 776, 196, 97, 778, 197, 198, 99, 807, + 199, 101, 768, 200, 101, 769, 201, 101, + 770, 202, 101, 776, 203, 105, 768, 204, + 105, 769, 205, 105, 770, 206, 105, 776, + 207, 208, 110, 771, 209, 111, 768, 210, + 111, 769, 211, 111, 770, 212, 111, 771, + 213, 111, 776, 214, 216, 117, 768, 217, + 117, 769, 218, 117, 770, 219, 117, 776, + 220, 121, 769, 221, 222, 121, 776, 376, + 65, 772, 257, 97, 772, 256, 65, 774, + 259, 97, 774, 258, 65, 808, 261, 97, + 808, 260, 67, 769, 263, 99, 769, 262, + 67, 770, 265, 99, 770, 264, 67, 775, + 267, 99, 775, 266, 67, 780, 269, 99, + 780, 268, 68, 780, 271, 100, 780, 270, + 273, 272, 69, 772, 275, 101, 772, 274, + 69, 774, 277, 101, 774, 276, 69, 775, + 279, 101, 775, 278, 69, 808, 281, 101, + 808, 280, 69, 780, 283, 101, 780, 282, + 71, 770, 285, 103, 770, 284, 71, 774, + 287, 103, 774, 286, 71, 775, 289, 103, + 775, 288, 71, 807, 291, 103, 807, 290, + 72, 770, 293, 104, 770, 292, 295, 294, + 73, 771, 297, 105, 771, 296, 73, 772, + 299, 105, 772, 298, 73, 774, 301, 105, + 774, 300, 73, 808, 303, 105, 808, 302, + 73, 775, 105, 775, 73, 74, 307, 105, + 106, 306, 74, 770, 309, 106, 770, 308, + 75, 807, 311, 107, 807, 310, 312, 76, + 769, 314, 108, 769, 313, 76, 807, 316, + 108, 807, 315, 76, 780, 318, 108, 780, + 317, 76, 183, 320, 108, 183, 319, 322, + 321, 78, 769, 324, 110, 769, 323, 78, + 807, 326, 110, 807, 325, 78, 780, 328, + 110, 780, 327, 700, 110, 329, 331, 330, + 79, 772, 333, 111, 772, 332, 79, 774, + 335, 111, 774, 334, 79, 779, 337, 111, + 779, 336, 339, 338, 82, 769, 341, 114, + 769, 340, 82, 807, 343, 114, 807, 342, + 82, 780, 345, 114, 780, 344, 83, 769, + 347, 115, 769, 346, 83, 770, 349, 115, + 770, 348, 83, 807, 351, 115, 807, 350, + 83, 780, 353, 115, 780, 352, 84, 807, + 355, 116, 807, 354, 84, 780, 357, 116, + 780, 356, 359, 358, 85, 771, 361, 117, + 771, 360, 85, 772, 363, 117, 772, 362, + 85, 774, 365, 117, 774, 364, 85, 778, + 367, 117, 778, 366, 85, 779, 369, 117, + 779, 368, 85, 808, 371, 117, 808, 370, + 87, 770, 373, 119, 770, 372, 89, 770, + 375, 121, 770, 374, 89, 776, 255, 90, + 769, 378, 122, 769, 377, 90, 775, 380, + 122, 775, 379, 90, 780, 382, 122, 780, + 381, 579, 595, 387, 386, 389, 388, 596, + 392, 391, 598, 599, 396, 395, 397, 477, + 601, 603, 402, 401, 608, 611, 502, 617, + 616, 409, 408, 573, 42972, 623, 626, 544, + 629, 79, 795, 417, 111, 795, 416, 419, + 418, 421, 420, 640, 424, 423, 643, 426, + 427, 429, 428, 648, 85, 795, 432, 117, + 795, 431, 650, 651, 436, 435, 438, 437, + 658, 441, 440, 442, 445, 444, 446, 503, + 68, 381, 454, 453, 68, 382, 452, 100, + 382, 76, 74, 457, 456, 76, 106, 455, + 108, 106, 78, 74, 460, 459, 78, 106, + 458, 110, 106, 65, 780, 462, 97, 780, + 461, 73, 780, 464, 105, 780, 463, 79, + 780, 466, 111, 780, 465, 85, 780, 468, + 117, 780, 467, 220, 772, 470, 252, 772, + 469, 220, 769, 472, 252, 769, 471, 220, + 780, 474, 252, 780, 473, 220, 768, 476, + 252, 768, 475, 398, 196, 772, 479, 228, + 772, 478, 550, 772, 481, 551, 772, 480, + 198, 772, 483, 230, 772, 482, 485, 484, + 71, 780, 487, 103, 780, 486, 75, 780, + 489, 107, 780, 488, 79, 808, 491, 111, + 808, 490, 490, 772, 493, 491, 772, 492, + 439, 780, 495, 658, 780, 494, 106, 780, + 496, 68, 90, 499, 498, 68, 122, 497, + 100, 122, 71, 769, 501, 103, 769, 500, + 405, 447, 78, 768, 505, 110, 768, 504, + 197, 769, 507, 229, 769, 506, 198, 769, + 509, 230, 769, 508, 216, 769, 511, 248, + 769, 510, 65, 783, 513, 97, 783, 512, + 65, 785, 515, 97, 785, 514, 69, 783, + 517, 101, 783, 516, 69, 785, 519, 101, + 785, 518, 73, 783, 521, 105, 783, 520, + 73, 785, 523, 105, 785, 522, 79, 783, + 525, 111, 783, 524, 79, 785, 527, 111, + 785, 526, 82, 783, 529, 114, 783, 528, + 82, 785, 531, 114, 785, 530, 85, 783, + 533, 117, 783, 532, 85, 785, 535, 117, + 785, 534, 83, 806, 537, 115, 806, 536, + 84, 806, 539, 116, 806, 538, 541, 540, + 72, 780, 543, 104, 780, 542, 414, 545, + 547, 546, 549, 548, 65, 775, 551, 97, + 775, 550, 69, 807, 553, 101, 807, 552, + 214, 772, 555, 246, 772, 554, 213, 772, + 557, 245, 772, 556, 79, 775, 559, 111, + 775, 558, 558, 772, 561, 559, 772, 560, + 89, 772, 563, 121, 772, 562, 564, 565, + 566, 567, 568, 569, 11365, 572, 571, 410, + 11366, 11390, 11391, 578, 577, 384, 649, 652, + 583, 582, 585, 584, 587, 586, 589, 588, + 591, 590, 11375, 11373, 11376, 385, 390, 597, + 393, 394, 600, 399, 602, 400, 42923, 605, + 606, 607, 403, 42924, 610, 404, 42955, 42893, + 42922, 615, 407, 406, 42926, 11362, 42925, 621, + 622, 412, 624, 11374, 413, 627, 628, 415, + 630, 631, 632, 633, 634, 635, 636, 11364, + 638, 639, 422, 641, 42949, 425, 644, 645, + 646, 42929, 430, 580, 433, 434, 581, 653, + 654, 655, 656, 657, 439, 659, 661, 662, + 663, 664, 665, 666, 667, 668, 42930, 42928, + 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 614, 689, 690, 691, 692, 693, + 694, 695, 696, 704, 705, 32, 774, 32, + 775, 32, 778, 32, 808, 32, 771, 32, + 779, 736, 737, 738, 739, 740, 768, 769, + 787, 776, 769, 953, 921, 881, 880, 883, + 882, 697, 887, 886, 32, 837, 890, 1021, + 1022, 1023, 59, 1011, 168, 769, 913, 769, + 940, 183, 917, 769, 941, 919, 769, 942, + 921, 769, 943, 927, 769, 972, 933, 769, + 973, 937, 769, 974, 970, 769, 953, 776, + 769, 912, 945, 946, 947, 948, 949, 950, + 951, 952, 954, 955, 957, 958, 959, 960, + 961, 963, 964, 965, 966, 967, 968, 969, + 921, 776, 970, 933, 776, 971, 945, 769, + 902, 949, 769, 904, 951, 769, 905, 953, + 769, 906, 971, 769, 965, 776, 769, 944, + 913, 914, 915, 916, 917, 918, 919, 920, + 922, 923, 925, 926, 927, 928, 929, 931, + 932, 933, 934, 935, 936, 937, 953, 776, + 938, 965, 776, 939, 959, 769, 908, 965, + 769, 910, 969, 769, 911, 983, 978, 978, + 769, 979, 978, 776, 980, 975, 985, 984, + 987, 986, 989, 988, 991, 990, 993, 992, + 995, 994, 997, 996, 999, 998, 1001, 1000, + 1003, 1002, 1005, 1004, 1007, 1006, 962, 1017, + 895, 1016, 1015, 1010, 1019, 1018, 1020, 891, + 892, 893, 1045, 768, 1104, 1045, 776, 1105, + 1106, 1043, 769, 1107, 1108, 1109, 1110, 1030, + 776, 1111, 1112, 1113, 1114, 1115, 1050, 769, + 1116, 1048, 768, 1117, 1059, 774, 1118, 1119, + 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, + 1080, 1048, 774, 1081, 1082, 1083, 1084, 1085, + 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, + 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, + 1102, 1103, 1040, 1041, 1042, 1043, 1044, 1045, + 1046, 1047, 1048, 1080, 774, 1049, 1050, 1051, + 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, + 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, + 1068, 1069, 1070, 1071, 1077, 768, 1024, 1077, + 776, 1025, 1026, 1075, 769, 1027, 1028, 1029, + 1030, 1110, 776, 1031, 1032, 1033, 1034, 1035, + 1082, 769, 1036, 1080, 768, 1037, 1091, 774, + 1038, 1039, 1121, 1120, 1123, 1122, 1125, 1124, + 1127, 1126, 1129, 1128, 1131, 1130, 1133, 1132, + 1135, 1134, 1137, 1136, 1139, 1138, 1141, 1140, + 1140, 783, 1143, 1141, 783, 1142, 1145, 1144, + 1147, 1146, 1149, 1148, 1151, 1150, 1153, 1152, + 1163, 1162, 1165, 1164, 1167, 1166, 1169, 1168, + 1171, 1170, 1173, 1172, 1175, 1174, 1177, 1176, + 1179, 1178, 1181, 1180, 1183, 1182, 1185, 1184, + 1187, 1186, 1189, 1188, 1191, 1190, 1193, 1192, + 1195, 1194, 1197, 1196, 1199, 1198, 1201, 1200, + 1203, 1202, 1205, 1204, 1207, 1206, 1209, 1208, + 1211, 1210, 1213, 1212, 1215, 1214, 1231, 1046, + 774, 1218, 1078, 774, 1217, 1220, 1219, 1222, + 1221, 1224, 1223, 1226, 1225, 1228, 1227, 1230, + 1229, 1216, 1040, 774, 1233, 1072, 774, 1232, + 1040, 776, 1235, 1072, 776, 1234, 1237, 1236, + 1045, 774, 1239, 1077, 774, 1238, 1241, 1240, + 1240, 776, 1243, 1241, 776, 1242, 1046, 776, + 1245, 1078, 776, 1244, 1047, 776, 1247, 1079, + 776, 1246, 1249, 1248, 1048, 772, 1251, 1080, + 772, 1250, 1048, 776, 1253, 1080, 776, 1252, + 1054, 776, 1255, 1086, 776, 1254, 1257, 1256, + 1256, 776, 1259, 1257, 776, 1258, 1069, 776, + 1261, 1101, 776, 1260, 1059, 772, 1263, 1091, + 772, 1262, 1059, 776, 1265, 1091, 776, 1264, + 1059, 779, 1267, 1091, 779, 1266, 1063, 776, + 1269, 1095, 776, 1268, 1271, 1270, 1067, 776, + 1273, 1099, 776, 1272, 1275, 1274, 1277, 1276, + 1279, 1278, 1281, 1280, 1283, 1282, 1285, 1284, + 1287, 1286, 1289, 1288, 1291, 1290, 1293, 1292, + 1295, 1294, 1297, 1296, 1299, 1298, 1301, 1300, + 1303, 1302, 1305, 1304, 1307, 1306, 1309, 1308, + 1311, 1310, 1313, 1312, 1315, 1314, 1317, 1316, + 1319, 1318, 1321, 1320, 1323, 1322, 1325, 1324, + 1327, 1326, 1377, 1378, 1379, 1380, 1381, 1382, + 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, + 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, + 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, + 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, + 1376, 1329, 1330, 1331, 1332, 1333, 1334, 1335, + 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, + 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, + 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, + 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1381, + 1410, 1415, 1416, 1575, 1619, 1575, 1620, 1608, + 1620, 1575, 1621, 1610, 1620, 1575, 1652, 1608, + 1652, 1735, 1652, 1610, 1652, 1749, 1620, 1729, + 1620, 1746, 1620, 2344, 2364, 2352, 2364, 2355, + 2364, 2325, 2364, 2326, 2364, 2327, 2364, 2332, + 2364, 2337, 2364, 2338, 2364, 2347, 2364, 2351, + 2364, 2503, 2494, 2503, 2519, 2465, 2492, 2466, + 2492, 2479, 2492, 2610, 2620, 2616, 2620, 2582, + 2620, 2583, 2620, 2588, 2620, 2603, 2620, 2887, + 2902, 2887, 2878, 2887, 2903, 2849, 2876, 2850, + 2876, 2962, 3031, 3014, 3006, 3015, 3006, 3014, + 3031, 3142, 3158, 3263, 3285, 3270, 3285, 3270, + 3286, 3270, 3266, 3274, 3285, 3398, 3390, 3399, + 3390, 3398, 3415, 3545, 3530, 3545, 3535, 3548, + 3530, 3545, 3551, 3661, 3634, 3789, 3762, 3755, + 3737, 3755, 3745, 3851, 3906, 4023, 3916, 4023, + 3921, 4023, 3926, 4023, 3931, 4023, 3904, 4021, + 3953, 3954, 3953, 3956, 4018, 3968, 4018, 3969, + 4019, 3968, 4019, 3969, 3953, 3968, 3986, 4023, + 3996, 4023, 4001, 4023, 4006, 4023, 4011, 4023, + 3984, 4021, 4133, 4142, 11520, 11521, 11522, 11523, + 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, + 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, + 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, + 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, + 11556, 11557, 11559, 11565, 7312, 4304, 7313, 4305, + 7314, 4306, 7315, 4307, 7316, 4308, 7317, 4309, + 7318, 4310, 7319, 4311, 7320, 4312, 7321, 4313, + 7322, 4314, 7323, 4315, 7324, 4316, 7325, 4317, + 7326, 4318, 7327, 4319, 7328, 4320, 7329, 4321, + 7330, 4322, 7331, 4323, 7332, 4324, 7333, 4325, + 7334, 4326, 7335, 4327, 7336, 4328, 7337, 4329, + 7338, 4330, 7339, 4331, 7340, 4332, 7341, 4333, + 7342, 4334, 7343, 4335, 7344, 4336, 7345, 4337, + 7346, 4338, 7347, 4339, 7348, 4340, 7349, 4341, + 7350, 4342, 7351, 4343, 7352, 4344, 7353, 4345, + 7354, 4346, 4348, 7357, 4349, 7358, 4350, 7359, + 4351, 43888, 43889, 43890, 43891, 43892, 43893, 43894, + 43895, 43896, 43897, 43898, 43899, 43900, 43901, 43902, + 43903, 43904, 43905, 43906, 43907, 43908, 43909, 43910, + 43911, 43912, 43913, 43914, 43915, 43916, 43917, 43918, + 43919, 43920, 43921, 43922, 43923, 43924, 43925, 43926, + 43927, 43928, 43929, 43930, 43931, 43932, 43933, 43934, + 43935, 43936, 43937, 43938, 43939, 43940, 43941, 43942, + 43943, 43944, 43945, 43946, 43947, 43948, 43949, 43950, + 43951, 43952, 43953, 43954, 43955, 43956, 43957, 43958, + 43959, 43960, 43961, 43962, 43963, 43964, 43965, 43966, + 43967, 5112, 5113, 5114, 5115, 5116, 5117, 5104, + 5105, 5106, 5107, 5108, 5109, 6917, 6965, 6919, + 6965, 6921, 6965, 6923, 6965, 6925, 6965, 6929, + 6965, 6970, 6965, 6972, 6965, 6974, 6965, 6975, + 6965, 6978, 6965, 42571, 42570, 7306, 7305, 7424, + 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, + 7433, 7434, 7435, 7436, 7437, 7438, 7439, 7440, + 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, + 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, + 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, + 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, + 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, + 7481, 7482, 7483, 7484, 7485, 7486, 7487, 7488, + 7489, 7490, 7491, 592, 7492, 593, 7493, 7494, + 7495, 7496, 7497, 7498, 7499, 604, 7500, 7501, + 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, + 7510, 7511, 7512, 7513, 7514, 7515, 7516, 7517, + 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, + 7526, 7527, 7528, 7529, 7530, 7531, 7532, 7533, + 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, + 7542, 7543, 7544, 42877, 7546, 7547, 7548, 11363, + 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, + 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7565, + 42950, 7567, 7568, 7569, 7570, 7571, 7572, 7573, + 7574, 7575, 7576, 7577, 7578, 594, 7579, 7580, + 7581, 7582, 7583, 7584, 7585, 609, 7586, 613, + 7587, 7588, 7589, 618, 7590, 7591, 669, 7592, + 7593, 7594, 7595, 625, 7596, 7597, 7598, 7599, + 7600, 7601, 7602, 642, 7603, 7604, 7605, 7606, + 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7614, + 7615, 65, 805, 7681, 97, 805, 7680, 66, + 775, 7683, 98, 775, 7682, 66, 803, 7685, + 98, 803, 7684, 66, 817, 7687, 98, 817, + 7686, 199, 769, 7689, 231, 769, 7688, 68, + 775, 7691, 100, 775, 7690, 68, 803, 7693, + 100, 803, 7692, 68, 817, 7695, 100, 817, + 7694, 68, 807, 7697, 100, 807, 7696, 68, + 813, 7699, 100, 813, 7698, 274, 768, 7701, + 275, 768, 7700, 274, 769, 7703, 275, 769, + 7702, 69, 813, 7705, 101, 813, 7704, 69, + 816, 7707, 101, 816, 7706, 552, 774, 7709, + 553, 774, 7708, 70, 775, 7711, 102, 775, + 7710, 71, 772, 7713, 103, 772, 7712, 72, + 775, 7715, 104, 775, 7714, 72, 803, 7717, + 104, 803, 7716, 72, 776, 7719, 104, 776, + 7718, 72, 807, 7721, 104, 807, 7720, 72, + 814, 7723, 104, 814, 7722, 73, 816, 7725, + 105, 816, 7724, 207, 769, 7727, 239, 769, + 7726, 75, 769, 7729, 107, 769, 7728, 75, + 803, 7731, 107, 803, 7730, 75, 817, 7733, + 107, 817, 7732, 76, 803, 7735, 108, 803, + 7734, 7734, 772, 7737, 7735, 772, 7736, 76, + 817, 7739, 108, 817, 7738, 76, 813, 7741, + 108, 813, 7740, 77, 769, 7743, 109, 769, + 7742, 77, 775, 7745, 109, 775, 7744, 77, + 803, 7747, 109, 803, 7746, 78, 775, 7749, + 110, 775, 7748, 78, 803, 7751, 110, 803, + 7750, 78, 817, 7753, 110, 817, 7752, 78, + 813, 7755, 110, 813, 7754, 213, 769, 7757, + 245, 769, 7756, 213, 776, 7759, 245, 776, + 7758, 332, 768, 7761, 333, 768, 7760, 332, + 769, 7763, 333, 769, 7762, 80, 769, 7765, + 112, 769, 7764, 80, 775, 7767, 112, 775, + 7766, 82, 775, 7769, 114, 775, 7768, 82, + 803, 7771, 114, 803, 7770, 7770, 772, 7773, + 7771, 772, 7772, 82, 817, 7775, 114, 817, + 7774, 83, 775, 7777, 115, 775, 7776, 83, + 803, 7779, 115, 803, 7778, 346, 775, 7781, + 347, 775, 7780, 352, 775, 7783, 353, 775, + 7782, 7778, 775, 7785, 7779, 775, 7784, 84, + 775, 7787, 116, 775, 7786, 84, 803, 7789, + 116, 803, 7788, 84, 817, 7791, 116, 817, + 7790, 84, 813, 7793, 116, 813, 7792, 85, + 804, 7795, 117, 804, 7794, 85, 816, 7797, + 117, 816, 7796, 85, 813, 7799, 117, 813, + 7798, 360, 769, 7801, 361, 769, 7800, 362, + 776, 7803, 363, 776, 7802, 86, 771, 7805, + 118, 771, 7804, 86, 803, 7807, 118, 803, + 7806, 87, 768, 7809, 119, 768, 7808, 87, + 769, 7811, 119, 769, 7810, 87, 776, 7813, + 119, 776, 7812, 87, 775, 7815, 119, 775, + 7814, 87, 803, 7817, 119, 803, 7816, 88, + 775, 7819, 120, 775, 7818, 88, 776, 7821, + 120, 776, 7820, 89, 775, 7823, 121, 775, + 7822, 90, 770, 7825, 122, 770, 7824, 90, + 803, 7827, 122, 803, 7826, 90, 817, 7829, + 122, 817, 7828, 104, 817, 7830, 116, 776, + 7831, 119, 778, 7832, 121, 778, 7833, 97, + 702, 7834, 383, 775, 7836, 7837, 223, 7839, + 65, 803, 7841, 97, 803, 7840, 65, 777, + 7843, 97, 777, 7842, 194, 769, 7845, 226, + 769, 7844, 194, 768, 7847, 226, 768, 7846, + 194, 777, 7849, 226, 777, 7848, 194, 771, + 7851, 226, 771, 7850, 7840, 770, 7853, 7841, + 770, 7852, 258, 769, 7855, 259, 769, 7854, + 258, 768, 7857, 259, 768, 7856, 258, 777, + 7859, 259, 777, 7858, 258, 771, 7861, 259, + 771, 7860, 7840, 774, 7863, 7841, 774, 7862, + 69, 803, 7865, 101, 803, 7864, 69, 777, + 7867, 101, 777, 7866, 69, 771, 7869, 101, + 771, 7868, 202, 769, 7871, 234, 769, 7870, + 202, 768, 7873, 234, 768, 7872, 202, 777, + 7875, 234, 777, 7874, 202, 771, 7877, 234, + 771, 7876, 7864, 770, 7879, 7865, 770, 7878, + 73, 777, 7881, 105, 777, 7880, 73, 803, + 7883, 105, 803, 7882, 79, 803, 7885, 111, + 803, 7884, 79, 777, 7887, 111, 777, 7886, + 212, 769, 7889, 244, 769, 7888, 212, 768, + 7891, 244, 768, 7890, 212, 777, 7893, 244, + 777, 7892, 212, 771, 7895, 244, 771, 7894, + 7884, 770, 7897, 7885, 770, 7896, 416, 769, + 7899, 417, 769, 7898, 416, 768, 7901, 417, + 768, 7900, 416, 777, 7903, 417, 777, 7902, + 416, 771, 7905, 417, 771, 7904, 416, 803, + 7907, 417, 803, 7906, 85, 803, 7909, 117, + 803, 7908, 85, 777, 7911, 117, 777, 7910, + 431, 769, 7913, 432, 769, 7912, 431, 768, + 7915, 432, 768, 7914, 431, 777, 7917, 432, + 777, 7916, 431, 771, 7919, 432, 771, 7918, + 431, 803, 7921, 432, 803, 7920, 89, 768, + 7923, 121, 768, 7922, 89, 803, 7925, 121, + 803, 7924, 89, 777, 7927, 121, 777, 7926, + 89, 771, 7929, 121, 771, 7928, 7931, 7930, + 7933, 7932, 7935, 7934, 945, 787, 7944, 945, + 788, 7945, 7936, 768, 7946, 7937, 768, 7947, + 7936, 769, 7948, 7937, 769, 7949, 7936, 834, + 7950, 7937, 834, 7951, 913, 787, 7936, 913, + 788, 7937, 7944, 768, 7938, 7945, 768, 7939, + 7944, 769, 7940, 7945, 769, 7941, 7944, 834, + 7942, 7945, 834, 7943, 949, 787, 7960, 949, + 788, 7961, 7952, 768, 7962, 7953, 768, 7963, + 7952, 769, 7964, 7953, 769, 7965, 917, 787, + 7952, 917, 788, 7953, 7960, 768, 7954, 7961, + 768, 7955, 7960, 769, 7956, 7961, 769, 7957, + 951, 787, 7976, 951, 788, 7977, 7968, 768, + 7978, 7969, 768, 7979, 7968, 769, 7980, 7969, + 769, 7981, 7968, 834, 7982, 7969, 834, 7983, + 919, 787, 7968, 919, 788, 7969, 7976, 768, + 7970, 7977, 768, 7971, 7976, 769, 7972, 7977, + 769, 7973, 7976, 834, 7974, 7977, 834, 7975, + 953, 787, 7992, 953, 788, 7993, 7984, 768, + 7994, 7985, 768, 7995, 7984, 769, 7996, 7985, + 769, 7997, 7984, 834, 7998, 7985, 834, 7999, + 921, 787, 7984, 921, 788, 7985, 7992, 768, + 7986, 7993, 768, 7987, 7992, 769, 7988, 7993, + 769, 7989, 7992, 834, 7990, 7993, 834, 7991, + 959, 787, 8008, 959, 788, 8009, 8000, 768, + 8010, 8001, 768, 8011, 8000, 769, 8012, 8001, + 769, 8013, 927, 787, 8000, 927, 788, 8001, + 8008, 768, 8002, 8009, 768, 8003, 8008, 769, + 8004, 8009, 769, 8005, 965, 787, 8016, 965, + 788, 8025, 8016, 768, 965, 787, 768, 8018, + 8017, 768, 8027, 8016, 769, 965, 787, 769, + 8020, 8017, 769, 8029, 8016, 834, 965, 787, + 834, 8022, 8017, 834, 8031, 933, 788, 8017, + 8025, 768, 8019, 8025, 769, 8021, 8025, 834, + 8023, 969, 787, 8040, 969, 788, 8041, 8032, + 768, 8042, 8033, 768, 8043, 8032, 769, 8044, + 8033, 769, 8045, 8032, 834, 8046, 8033, 834, + 8047, 937, 787, 8032, 937, 788, 8033, 8040, + 768, 8034, 8041, 768, 8035, 8040, 769, 8036, + 8041, 769, 8037, 8040, 834, 8038, 8041, 834, + 8039, 945, 768, 8122, 8123, 949, 768, 8136, + 8137, 951, 768, 8138, 8139, 953, 768, 8154, + 8155, 959, 768, 8184, 8185, 965, 768, 8170, + 8171, 969, 768, 8186, 8187, 7936, 837, 7936, + 953, 8072, 7937, 837, 7937, 953, 8073, 7938, + 837, 7938, 953, 8074, 7939, 837, 7939, 953, + 8075, 7940, 837, 7940, 953, 8076, 7941, 837, + 7941, 953, 8077, 7942, 837, 7942, 953, 8078, + 7943, 837, 7943, 953, 8079, 7944, 837, 8064, + 7945, 837, 8065, 7946, 837, 8066, 7947, 837, + 8067, 7948, 837, 8068, 7949, 837, 8069, 7950, + 837, 8070, 7951, 837, 8071, 7968, 837, 7968, + 953, 8088, 7969, 837, 7969, 953, 8089, 7970, + 837, 7970, 953, 8090, 7971, 837, 7971, 953, + 8091, 7972, 837, 7972, 953, 8092, 7973, 837, + 7973, 953, 8093, 7974, 837, 7974, 953, 8094, + 7975, 837, 7975, 953, 8095, 7976, 837, 8080, + 7977, 837, 8081, 7978, 837, 8082, 7979, 837, + 8083, 7980, 837, 8084, 7981, 837, 8085, 7982, + 837, 8086, 7983, 837, 8087, 8032, 837, 8032, + 953, 8104, 8033, 837, 8033, 953, 8105, 8034, + 837, 8034, 953, 8106, 8035, 837, 8035, 953, + 8107, 8036, 837, 8036, 953, 8108, 8037, 837, + 8037, 953, 8109, 8038, 837, 8038, 953, 8110, + 8039, 837, 8039, 953, 8111, 8040, 837, 8096, + 8041, 837, 8097, 8042, 837, 8098, 8043, 837, + 8099, 8044, 837, 8100, 8045, 837, 8101, 8046, + 837, 8102, 8047, 837, 8103, 945, 774, 8120, + 945, 772, 8121, 8048, 837, 8048, 953, 8114, + 945, 837, 945, 953, 8124, 940, 837, 940, + 953, 8116, 945, 834, 8118, 8118, 837, 945, + 834, 953, 8119, 913, 774, 8112, 913, 772, + 8113, 913, 768, 8048, 8049, 913, 837, 8115, + 32, 787, 32, 834, 168, 834, 8052, 837, + 8052, 953, 8130, 951, 837, 951, 953, 8140, + 942, 837, 942, 953, 8132, 951, 834, 8134, + 8134, 837, 951, 834, 953, 8135, 917, 768, + 8050, 8051, 919, 768, 8052, 8053, 919, 837, + 8131, 8127, 768, 8127, 769, 8127, 834, 953, + 774, 8152, 953, 772, 8153, 970, 768, 953, + 776, 768, 8146, 8147, 953, 834, 8150, 970, + 834, 953, 776, 834, 8151, 921, 774, 8144, + 921, 772, 8145, 921, 768, 8054, 8055, 8190, + 768, 8190, 769, 8190, 834, 965, 774, 8168, + 965, 772, 8169, 971, 768, 965, 776, 768, + 8162, 8163, 961, 787, 8164, 961, 788, 8172, + 965, 834, 8166, 971, 834, 965, 776, 834, + 8167, 933, 774, 8160, 933, 772, 8161, 933, + 768, 8058, 8059, 929, 788, 8165, 168, 768, + 901, 96, 8060, 837, 8060, 953, 8178, 969, + 837, 969, 953, 8188, 974, 837, 974, 953, + 8180, 969, 834, 8182, 8182, 837, 969, 834, + 953, 8183, 927, 768, 8056, 8057, 937, 768, + 8060, 8061, 937, 837, 8179, 180, 32, 788, + 8194, 8195, 8208, 32, 819, 46, 46, 46, + 46, 46, 46, 8242, 8242, 8242, 8242, 8242, + 8245, 8245, 8245, 8245, 8245, 33, 33, 32, + 773, 63, 63, 63, 33, 33, 63, 3, + 8242, 8242, 8242, 8242, 48, 8305, 52, 53, + 54, 55, 56, 57, 43, 8722, 61, 40, + 41, 8319, 8336, 8337, 8338, 8339, 8340, 8341, + 8342, 8343, 8344, 8345, 8346, 8347, 8348, 82, + 115, 97, 47, 99, 97, 47, 115, 8450, + 176, 67, 99, 47, 111, 99, 47, 117, + 8455, 176, 70, 8458, 8459, 8460, 8461, 8462, + 8463, 8464, 8465, 8466, 8467, 8469, 78, 111, + 8473, 8474, 8475, 8476, 8477, 83, 77, 84, + 69, 76, 84, 77, 8484, 8488, 8492, 8493, + 8495, 8496, 8497, 8526, 8499, 8500, 1488, 1489, + 1490, 1491, 8505, 70, 65, 88, 8508, 8509, + 8510, 8511, 8721, 8517, 8518, 8519, 8520, 8521, + 8498, 49, 8260, 55, 49, 8260, 57, 3, + 49, 8260, 49, 48, 49, 8260, 51, 50, + 8260, 51, 49, 8260, 53, 50, 8260, 53, + 51, 8260, 53, 52, 8260, 53, 49, 8260, + 54, 53, 8260, 54, 49, 8260, 56, 51, + 8260, 56, 53, 8260, 56, 55, 8260, 56, + 49, 8260, 8560, 73, 73, 8561, 73, 73, + 73, 8562, 73, 86, 8563, 8564, 86, 73, + 8565, 86, 73, 73, 8566, 3, 86, 73, + 73, 73, 8567, 73, 88, 8568, 8569, 88, + 73, 8570, 88, 73, 73, 8571, 8572, 8573, + 8574, 8575, 8544, 105, 105, 8545, 105, 105, + 105, 8546, 105, 118, 8547, 8548, 118, 105, + 8549, 118, 105, 105, 8550, 3, 118, 105, + 105, 105, 8551, 105, 120, 8552, 8553, 120, + 105, 8554, 120, 105, 105, 8555, 8556, 8557, + 8558, 8559, 8580, 8579, 48, 8260, 51, 8592, + 824, 8594, 824, 8596, 824, 8656, 824, 8660, + 824, 8658, 824, 8707, 824, 8712, 824, 8715, + 824, 8739, 824, 8741, 824, 8747, 8747, 8747, + 8747, 8747, 8750, 8750, 8750, 8750, 8750, 8764, + 824, 8771, 824, 8773, 824, 8776, 824, 61, + 824, 8801, 824, 8781, 824, 60, 824, 62, + 824, 8804, 824, 8805, 824, 8818, 824, 8819, + 824, 8822, 824, 8823, 824, 8826, 824, 8827, + 824, 8834, 824, 8835, 824, 8838, 824, 8839, + 824, 8866, 824, 8872, 824, 8873, 824, 8875, + 824, 8828, 824, 8829, 824, 8849, 824, 8850, + 824, 8882, 824, 8883, 824, 8884, 824, 8885, + 824, 12296, 12297, 49, 48, 49, 49, 49, + 50, 49, 51, 49, 52, 49, 53, 49, + 54, 49, 55, 49, 56, 49, 57, 50, + 48, 40, 49, 41, 40, 50, 41, 40, + 51, 41, 40, 52, 41, 40, 53, 41, + 40, 54, 41, 40, 55, 41, 40, 56, + 41, 40, 57, 41, 3, 40, 49, 48, + 41, 3, 40, 49, 49, 41, 3, 40, + 49, 50, 41, 3, 40, 49, 51, 41, + 3, 40, 49, 52, 41, 3, 40, 49, + 53, 41, 3, 40, 49, 54, 41, 3, + 40, 49, 55, 41, 3, 40, 49, 56, + 41, 3, 40, 49, 57, 41, 3, 40, + 50, 48, 41, 49, 46, 50, 46, 51, + 46, 52, 46, 53, 46, 54, 46, 55, + 46, 56, 46, 57, 46, 49, 48, 46, + 49, 49, 46, 49, 50, 46, 49, 51, + 46, 49, 52, 46, 49, 53, 46, 49, + 54, 46, 49, 55, 46, 49, 56, 46, + 49, 57, 46, 50, 48, 46, 40, 97, + 41, 40, 98, 41, 40, 99, 41, 40, + 100, 41, 40, 101, 41, 40, 102, 41, + 40, 103, 41, 40, 104, 41, 40, 105, + 41, 40, 106, 41, 40, 107, 41, 40, + 108, 41, 40, 109, 41, 40, 110, 41, + 40, 111, 41, 40, 112, 41, 40, 113, + 41, 40, 114, 41, 40, 115, 41, 40, + 116, 41, 40, 117, 41, 40, 118, 41, + 40, 119, 41, 40, 120, 41, 40, 121, + 41, 40, 122, 41, 9424, 9425, 9426, 9427, + 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, + 9436, 9437, 9438, 9439, 9440, 9441, 9442, 9443, + 9444, 9445, 9446, 9447, 9448, 9449, 9398, 9399, + 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, + 9408, 9409, 9410, 9411, 9412, 9413, 9414, 9415, + 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423, + 3, 8747, 8747, 8747, 8747, 58, 58, 61, + 61, 61, 61, 61, 61, 10973, 824, 11312, + 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, + 11321, 11322, 11323, 11324, 11325, 11326, 11327, 11328, + 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, + 11337, 11338, 11339, 11340, 11341, 11342, 11343, 11344, + 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, + 11353, 11354, 11355, 11356, 11357, 11358, 11359, 11264, + 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, + 11273, 11274, 11275, 11276, 11277, 11278, 11279, 11280, + 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, + 11289, 11290, 11291, 11292, 11293, 11294, 11295, 11296, + 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, + 11305, 11306, 11307, 11308, 11309, 11310, 11311, 11361, + 11360, 619, 7549, 637, 570, 574, 11368, 11367, + 11370, 11369, 11372, 11371, 11377, 11379, 11378, 11380, + 11382, 11381, 11383, 11384, 11385, 11386, 11387, 11388, + 11389, 575, 576, 11393, 11392, 11395, 11394, 11397, + 11396, 11399, 11398, 11401, 11400, 11403, 11402, 11405, + 11404, 11407, 11406, 11409, 11408, 11411, 11410, 11413, + 11412, 11415, 11414, 11417, 11416, 11419, 11418, 11421, + 11420, 11423, 11422, 11425, 11424, 11427, 11426, 11429, + 11428, 11431, 11430, 11433, 11432, 11435, 11434, 11437, + 11436, 11439, 11438, 11441, 11440, 11443, 11442, 11445, + 11444, 11447, 11446, 11449, 11448, 11451, 11450, 11453, + 11452, 11455, 11454, 11457, 11456, 11459, 11458, 11461, + 11460, 11463, 11462, 11465, 11464, 11467, 11466, 11469, + 11468, 11471, 11470, 11473, 11472, 11475, 11474, 11477, + 11476, 11479, 11478, 11481, 11480, 11483, 11482, 11485, + 11484, 11487, 11486, 11489, 11488, 11491, 11490, 11492, + 11500, 11499, 11502, 11501, 11507, 11506, 4256, 4257, + 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, + 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, + 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, + 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, + 4290, 4291, 4292, 4293, 4295, 4301, 11617, 27597, + 40863, 19968, 20008, 20022, 20031, 20057, 20101, 20108, + 20128, 20154, 20799, 20837, 20843, 20866, 20886, 20907, + 20960, 20981, 20992, 21147, 21241, 21269, 21274, 21304, + 21313, 21340, 21353, 21378, 21430, 21448, 21475, 22231, + 22303, 22763, 22786, 22794, 22805, 22823, 22899, 23376, + 23424, 23544, 23567, 23586, 23608, 23662, 23665, 24027, + 24037, 24049, 24062, 24178, 24186, 24191, 24308, 24318, + 24331, 24339, 24400, 24417, 24435, 24515, 25096, 25142, + 25163, 25903, 25908, 25991, 26007, 26020, 26041, 26080, + 26085, 26352, 26376, 26408, 27424, 27490, 27513, 27571, + 27595, 27604, 27611, 27663, 27668, 27700, 28779, 29226, + 29238, 29243, 29247, 29255, 29273, 29275, 29356, 29572, + 29577, 29916, 29926, 29976, 29983, 29992, 30000, 30091, + 30098, 30326, 30333, 30382, 30399, 30446, 30683, 30690, + 30707, 31034, 31160, 31166, 31348, 31435, 31481, 31859, + 31992, 32566, 32593, 32650, 32701, 32769, 32780, 32786, + 32819, 32895, 32905, 33251, 33258, 33267, 33276, 33292, + 33307, 33311, 33390, 33394, 33400, 34381, 34411, 34880, + 34892, 34915, 35198, 35211, 35282, 35328, 35895, 35910, + 35925, 35960, 35997, 36196, 36208, 36275, 36523, 36554, + 36763, 36784, 36789, 37009, 37193, 37318, 37324, 37329, + 38263, 38272, 38428, 38582, 38585, 38632, 38737, 38750, + 38754, 38761, 38859, 38893, 38899, 38913, 39080, 39131, + 39135, 39318, 39321, 39340, 39592, 39640, 39647, 39717, + 39727, 39730, 39740, 39770, 40165, 40565, 40575, 40613, + 40635, 40643, 40653, 40657, 40697, 40701, 40718, 40723, + 40736, 40763, 40778, 40786, 40845, 40860, 40864, 12306, + 21316, 21317, 12363, 12441, 12365, 12441, 12367, 12441, + 12369, 12441, 12371, 12441, 12373, 12441, 12375, 12441, + 12377, 12441, 12379, 12441, 12381, 12441, 12383, 12441, + 12385, 12441, 12388, 12441, 12390, 12441, 12392, 12441, + 12399, 12441, 12399, 12442, 12402, 12441, 12402, 12442, + 12405, 12441, 12405, 12442, 12408, 12441, 12408, 12442, + 12411, 12441, 12411, 12442, 12358, 12441, 32, 12441, + 32, 12442, 12445, 12441, 12424, 12426, 12459, 12441, + 12461, 12441, 12463, 12441, 12465, 12441, 12467, 12441, + 12469, 12441, 12471, 12441, 12473, 12441, 12475, 12441, + 12477, 12441, 12479, 12441, 12481, 12441, 12484, 12441, + 12486, 12441, 12488, 12441, 12495, 12441, 12495, 12442, + 12498, 12441, 12498, 12442, 12501, 12441, 12501, 12442, + 12504, 12441, 12504, 12442, 12507, 12441, 12507, 12442, + 12454, 12441, 12527, 12441, 12528, 12441, 12529, 12441, + 12530, 12441, 12541, 12441, 12467, 12488, 4352, 4353, + 4522, 4354, 4524, 4525, 4355, 4356, 4357, 4528, + 4529, 4530, 4531, 4532, 4533, 4378, 4358, 4359, + 4360, 4385, 4361, 4362, 4363, 4364, 4365, 4366, + 4367, 4368, 4369, 4370, 4449, 4450, 4451, 4452, + 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, + 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, + 4469, 4448, 4372, 4373, 4551, 4552, 4556, 4558, + 4563, 4567, 4569, 4380, 4573, 4575, 4381, 4382, + 4384, 4386, 4387, 4391, 4393, 4395, 4396, 4397, + 4398, 4399, 4402, 4406, 4416, 4423, 4428, 4593, + 4594, 4439, 4440, 4441, 4484, 4485, 4488, 4497, + 4498, 4500, 4510, 4513, 19977, 22235, 19978, 20013, + 19979, 30002, 19993, 19969, 22825, 22320, 40, 4352, + 41, 40, 4354, 41, 40, 4355, 41, 40, + 4357, 41, 40, 4358, 41, 40, 4359, 41, + 40, 4361, 41, 40, 4363, 41, 40, 4364, + 41, 40, 4366, 41, 40, 4367, 41, 40, + 4368, 41, 40, 4369, 41, 40, 4370, 41, + 3, 40, 4352, 4449, 41, 3, 40, 4354, + 4449, 41, 3, 40, 4355, 4449, 41, 3, + 40, 4357, 4449, 41, 3, 40, 4358, 4449, + 41, 3, 40, 4359, 4449, 41, 3, 40, + 4361, 4449, 41, 3, 40, 4363, 4449, 41, + 3, 40, 4364, 4449, 41, 3, 40, 4366, + 4449, 41, 3, 40, 4367, 4449, 41, 3, + 40, 4368, 4449, 41, 3, 40, 4369, 4449, + 41, 3, 40, 4370, 4449, 41, 3, 40, + 4364, 4462, 41, 6, 40, 4363, 4457, 4364, + 4453, 4523, 41, 5, 40, 4363, 4457, 4370, + 4462, 41, 40, 19968, 41, 40, 20108, 41, + 40, 19977, 41, 40, 22235, 41, 40, 20116, + 41, 40, 20845, 41, 40, 19971, 41, 40, + 20843, 41, 40, 20061, 41, 40, 21313, 41, + 40, 26376, 41, 40, 28779, 41, 40, 27700, + 41, 40, 26408, 41, 40, 37329, 41, 40, + 22303, 41, 40, 26085, 41, 40, 26666, 41, + 40, 26377, 41, 40, 31038, 41, 40, 21517, + 41, 40, 29305, 41, 40, 36001, 41, 40, + 31069, 41, 40, 21172, 41, 40, 20195, 41, + 40, 21628, 41, 40, 23398, 41, 40, 30435, + 41, 40, 20225, 41, 40, 36039, 41, 40, + 21332, 41, 40, 31085, 41, 40, 20241, 41, + 40, 33258, 41, 40, 33267, 41, 21839, 24188, + 31631, 80, 84, 69, 50, 49, 50, 50, + 50, 51, 50, 52, 50, 53, 50, 54, + 50, 55, 50, 56, 50, 57, 51, 48, + 51, 49, 51, 50, 51, 51, 51, 52, + 51, 53, 4352, 4449, 4354, 4449, 4355, 4449, + 4357, 4449, 4358, 4449, 4359, 4449, 4361, 4449, + 4363, 4449, 4364, 4449, 4366, 4449, 4367, 4449, + 4368, 4449, 4369, 4449, 4370, 4449, 4, 4366, + 4449, 4535, 4352, 4457, 3, 4364, 4462, 4363, + 4468, 4363, 4462, 20116, 20845, 19971, 20061, 26666, + 26377, 31038, 21517, 29305, 36001, 31069, 21172, 31192, + 30007, 36969, 20778, 21360, 27880, 38917, 20241, 20889, + 27491, 24038, 21491, 21307, 23447, 23398, 30435, 20225, + 36039, 21332, 22812, 51, 54, 51, 55, 51, + 56, 51, 57, 52, 48, 52, 49, 52, + 50, 52, 51, 52, 52, 52, 53, 52, + 54, 52, 55, 52, 56, 52, 57, 53, + 48, 49, 26376, 50, 26376, 51, 26376, 52, + 26376, 53, 26376, 54, 26376, 55, 26376, 56, + 26376, 57, 26376, 49, 48, 26376, 49, 49, + 26376, 49, 50, 26376, 72, 103, 101, 114, + 103, 101, 86, 76, 84, 68, 12450, 12452, + 12454, 12456, 12458, 12459, 12461, 12463, 12465, 12467, + 12469, 12471, 12473, 12475, 12477, 12479, 12481, 12484, + 12486, 12488, 12490, 12491, 12492, 12493, 12494, 12495, + 12498, 12501, 12504, 12507, 12510, 12511, 12512, 12513, + 12514, 12516, 12518, 12520, 12521, 12522, 12523, 12524, + 12525, 12527, 12528, 12529, 12530, 20196, 21644, 3, + 12450, 12497, 12540, 12488, 3, 12450, 12523, 12501, + 12449, 3, 12450, 12531, 12506, 12450, 12450, 12540, + 12523, 3, 12452, 12491, 12531, 12464, 12452, 12531, + 12481, 12454, 12457, 12531, 4, 12456, 12473, 12463, + 12540, 12489, 3, 12456, 12540, 12459, 12540, 12458, + 12531, 12473, 12458, 12540, 12512, 12459, 12452, 12522, + 3, 12459, 12521, 12483, 12488, 3, 12459, 12525, + 12522, 12540, 12460, 12525, 12531, 12460, 12531, 12510, + 12462, 12460, 12462, 12491, 12540, 3, 12461, 12517, + 12522, 12540, 3, 12462, 12523, 12480, 12540, 12461, + 12525, 4, 12461, 12525, 12464, 12521, 12512, 5, + 12461, 12525, 12513, 12540, 12488, 12523, 4, 12461, + 12525, 12527, 12483, 12488, 12464, 12521, 12512, 4, + 12464, 12521, 12512, 12488, 12531, 4, 12463, 12523, + 12476, 12452, 12525, 3, 12463, 12525, 12540, 12493, + 12465, 12540, 12473, 12467, 12523, 12490, 12467, 12540, + 12509, 3, 12469, 12452, 12463, 12523, 4, 12469, + 12531, 12481, 12540, 12512, 3, 12471, 12522, 12531, + 12464, 12475, 12531, 12481, 12475, 12531, 12488, 12480, + 12540, 12473, 12487, 12471, 12489, 12523, 12488, 12531, + 12490, 12494, 12494, 12483, 12488, 12495, 12452, 12484, + 4, 12497, 12540, 12475, 12531, 12488, 12497, 12540, + 12484, 3, 12496, 12540, 12524, 12523, 4, 12500, + 12450, 12473, 12488, 12523, 12500, 12463, 12523, 12500, + 12467, 12499, 12523, 4, 12501, 12449, 12521, 12483, + 12489, 3, 12501, 12451, 12540, 12488, 4, 12502, + 12483, 12471, 12455, 12523, 12501, 12521, 12531, 4, + 12504, 12463, 12479, 12540, 12523, 12506, 12477, 12506, + 12491, 12498, 12504, 12523, 12484, 12506, 12531, 12473, + 12506, 12540, 12472, 12505, 12540, 12479, 3, 12509, + 12452, 12531, 12488, 12508, 12523, 12488, 12507, 12531, + 12509, 12531, 12489, 12507, 12540, 12523, 12507, 12540, + 12531, 3, 12510, 12452, 12463, 12525, 12510, 12452, + 12523, 12510, 12483, 12495, 12510, 12523, 12463, 4, + 12510, 12531, 12471, 12519, 12531, 3, 12511, 12463, + 12525, 12531, 12511, 12522, 4, 12511, 12522, 12496, + 12540, 12523, 12513, 12460, 3, 12513, 12460, 12488, + 12531, 3, 12513, 12540, 12488, 12523, 12516, 12540, + 12489, 12516, 12540, 12523, 12518, 12450, 12531, 3, + 12522, 12483, 12488, 12523, 12522, 12521, 12523, 12500, + 12540, 3, 12523, 12540, 12502, 12523, 12524, 12512, + 4, 12524, 12531, 12488, 12466, 12531, 12527, 12483, + 12488, 48, 28857, 49, 28857, 50, 28857, 51, + 28857, 52, 28857, 53, 28857, 54, 28857, 55, + 28857, 56, 28857, 57, 28857, 49, 48, 28857, + 49, 49, 28857, 49, 50, 28857, 49, 51, + 28857, 49, 52, 28857, 49, 53, 28857, 49, + 54, 28857, 49, 55, 28857, 49, 56, 28857, + 49, 57, 28857, 50, 48, 28857, 50, 49, + 28857, 50, 50, 28857, 50, 51, 28857, 50, + 52, 28857, 104, 80, 97, 100, 97, 65, + 85, 98, 97, 114, 111, 86, 112, 99, + 100, 109, 100, 109, 178, 100, 109, 179, + 73, 85, 24179, 25104, 26157, 21644, 22823, 27491, + 26126, 27835, 3, 26666, 24335, 20250, 31038, 112, + 65, 110, 65, 956, 65, 109, 65, 107, + 65, 75, 66, 77, 66, 71, 66, 99, + 97, 108, 3, 107, 99, 97, 108, 112, + 70, 110, 70, 956, 70, 956, 103, 109, + 103, 107, 103, 72, 122, 107, 72, 122, + 77, 72, 122, 71, 72, 122, 84, 72, + 122, 956, 8467, 109, 8467, 100, 8467, 107, + 8467, 102, 109, 110, 109, 956, 109, 109, + 109, 99, 109, 107, 109, 109, 109, 178, + 99, 109, 178, 109, 178, 107, 109, 178, + 109, 109, 179, 99, 109, 179, 109, 179, + 107, 109, 179, 109, 8725, 115, 3, 109, + 8725, 115, 178, 80, 97, 107, 80, 97, + 77, 80, 97, 71, 80, 97, 114, 97, + 100, 4, 114, 97, 100, 8725, 115, 5, + 114, 97, 100, 8725, 115, 178, 112, 115, + 110, 115, 956, 115, 109, 115, 112, 86, + 110, 86, 956, 86, 109, 86, 107, 86, + 77, 86, 112, 87, 110, 87, 956, 87, + 109, 87, 107, 87, 77, 87, 107, 937, + 77, 937, 3, 97, 46, 109, 46, 66, + 113, 99, 99, 99, 100, 3, 67, 8725, + 107, 103, 67, 111, 46, 100, 66, 71, + 121, 104, 97, 72, 80, 105, 110, 75, + 75, 75, 77, 107, 116, 108, 109, 108, + 110, 108, 111, 103, 108, 120, 109, 98, + 109, 105, 108, 109, 111, 108, 80, 72, + 3, 112, 46, 109, 46, 80, 80, 77, + 80, 82, 115, 114, 83, 118, 87, 98, + 86, 8725, 109, 65, 8725, 109, 49, 26085, + 50, 26085, 51, 26085, 52, 26085, 53, 26085, + 54, 26085, 55, 26085, 56, 26085, 57, 26085, + 49, 48, 26085, 49, 49, 26085, 49, 50, + 26085, 49, 51, 26085, 49, 52, 26085, 49, + 53, 26085, 49, 54, 26085, 49, 55, 26085, + 49, 56, 26085, 49, 57, 26085, 50, 48, + 26085, 50, 49, 26085, 50, 50, 26085, 50, + 51, 26085, 50, 52, 26085, 50, 53, 26085, + 50, 54, 26085, 50, 55, 26085, 50, 56, + 26085, 50, 57, 26085, 51, 48, 26085, 51, + 49, 26085, 103, 97, 108, 42561, 42560, 42563, + 42562, 42565, 42564, 42567, 42566, 42569, 42568, 42573, + 42572, 42575, 42574, 42577, 42576, 42579, 42578, 42581, + 42580, 42583, 42582, 42585, 42584, 42587, 42586, 42589, + 42588, 42591, 42590, 42593, 42592, 42595, 42594, 42597, + 42596, 42599, 42598, 42601, 42600, 42603, 42602, 42605, + 42604, 42625, 42624, 42627, 42626, 42629, 42628, 42631, + 42630, 42633, 42632, 42635, 42634, 42637, 42636, 42639, + 42638, 42641, 42640, 42643, 42642, 42645, 42644, 42647, + 42646, 42649, 42648, 42651, 42650, 42652, 42653, 42787, + 42786, 42789, 42788, 42791, 42790, 42793, 42792, 42795, + 42794, 42797, 42796, 42799, 42798, 42800, 42801, 42803, + 42802, 42805, 42804, 42807, 42806, 42809, 42808, 42811, + 42810, 42813, 42812, 42815, 42814, 42817, 42816, 42819, + 42818, 42821, 42820, 42823, 42822, 42825, 42824, 42827, + 42826, 42829, 42828, 42831, 42830, 42833, 42832, 42835, + 42834, 42837, 42836, 42839, 42838, 42841, 42840, 42843, + 42842, 42845, 42844, 42847, 42846, 42849, 42848, 42851, + 42850, 42853, 42852, 42855, 42854, 42857, 42856, 42859, + 42858, 42861, 42860, 42863, 42862, 42864, 42865, 42866, + 42867, 42868, 42869, 42870, 42871, 42872, 42874, 42873, + 42876, 42875, 7545, 42879, 42878, 42881, 42880, 42883, + 42882, 42885, 42884, 42887, 42886, 42892, 42891, 42894, + 42897, 42896, 42899, 42898, 42948, 42901, 42903, 42902, + 42905, 42904, 42907, 42906, 42909, 42908, 42911, 42910, + 42913, 42912, 42915, 42914, 42917, 42916, 42919, 42918, + 42921, 42920, 620, 42927, 670, 647, 43859, 42933, + 42932, 42935, 42934, 42937, 42936, 42939, 42938, 42941, + 42940, 42943, 42942, 42945, 42944, 42947, 42946, 42900, + 7566, 42952, 42951, 42954, 42953, 612, 42957, 42956, + 42961, 42960, 42963, 42965, 42967, 42966, 42969, 42968, + 42971, 42970, 411, 42994, 42995, 42996, 42998, 42997, + 43000, 43001, 43002, 43824, 43825, 43826, 43827, 43828, + 43829, 43830, 43831, 43832, 43833, 43834, 43835, 43836, + 43837, 43838, 43839, 43840, 43841, 43842, 43843, 43844, + 43845, 43846, 43847, 43848, 43849, 43850, 43851, 43852, + 43853, 43854, 43855, 43856, 43857, 43858, 42931, 43860, + 43861, 43862, 43863, 43864, 43865, 43866, 43868, 43869, + 43870, 43871, 43872, 43873, 43874, 43875, 43876, 43877, + 43878, 43879, 43880, 43881, 5024, 5025, 5026, 5027, + 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, + 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, + 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, + 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, + 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, + 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, + 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, + 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, + 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, + 5100, 5101, 5102, 5103, 35912, 26356, 36040, 28369, + 20018, 21477, 22865, 21895, 22856, 25078, 30313, 32645, + 34367, 34746, 35064, 37007, 27138, 27931, 28889, 29662, + 33853, 37226, 39409, 20098, 21365, 27396, 29211, 34349, + 40478, 23888, 28651, 34253, 35172, 25289, 33240, 34847, + 24266, 26391, 28010, 29436, 37070, 20358, 20919, 21214, + 25796, 27347, 29200, 30439, 34310, 34396, 36335, 38706, + 39791, 40442, 30860, 31103, 32160, 33737, 37636, 35542, + 22751, 24324, 31840, 32894, 29282, 30922, 36034, 38647, + 22744, 23650, 27155, 28122, 28431, 32047, 32311, 38475, + 21202, 32907, 20956, 20940, 31260, 32190, 33777, 38517, + 35712, 25295, 35582, 20025, 23527, 24594, 29575, 30064, + 21271, 30971, 20415, 24489, 19981, 27852, 25976, 32034, + 21443, 22622, 30465, 33865, 35498, 27578, 27784, 25342, + 33509, 25504, 30053, 20142, 20841, 20937, 26753, 31975, + 33391, 35538, 37327, 21237, 21570, 24300, 26053, 28670, + 31018, 38317, 39530, 40599, 40654, 26310, 27511, 36706, + 24180, 24976, 25088, 25754, 28451, 29001, 29833, 31178, + 32244, 32879, 36646, 34030, 36899, 37706, 21015, 21155, + 21693, 28872, 35010, 24265, 24565, 25467, 27566, 31806, + 29557, 20196, 22265, 23994, 24604, 29618, 29801, 32666, + 32838, 37428, 38646, 38728, 38936, 20363, 31150, 37300, + 38584, 24801, 20102, 20698, 23534, 23615, 26009, 29134, + 30274, 34044, 36988, 26248, 38446, 21129, 26491, 26611, + 27969, 28316, 29705, 30041, 30827, 32016, 39006, 25134, + 38520, 20523, 23833, 28138, 36650, 24459, 24900, 26647, + 38534, 21033, 21519, 23653, 26131, 26446, 26792, 27877, + 29702, 30178, 32633, 35023, 35041, 38626, 21311, 28346, + 21533, 29136, 29848, 34298, 38563, 40023, 40607, 26519, + 28107, 33256, 31520, 31890, 29376, 28825, 35672, 20160, + 33590, 21050, 20999, 24230, 25299, 31958, 23429, 27934, + 26292, 36667, 38477, 24275, 20800, 21952, 22618, 26228, + 20958, 29482, 30410, 31036, 31070, 31077, 31119, 38742, + 31934, 34322, 35576, 36920, 37117, 39151, 39164, 39208, + 40372, 37086, 38583, 20398, 20711, 20813, 21193, 21220, + 21329, 21917, 22022, 22120, 22592, 22696, 23652, 24724, + 24936, 24974, 25074, 25935, 26082, 26257, 26757, 28023, + 28186, 28450, 29038, 29227, 29730, 30865, 31049, 31048, + 31056, 31062, 31117, 31118, 31296, 31361, 31680, 32265, + 32321, 32626, 32773, 33261, 33401, 33879, 35088, 35222, + 35585, 35641, 36051, 36104, 36790, 38627, 38911, 38971, + 24693, 55376, 57070, 33304, 20006, 20917, 20840, 20352, + 20805, 20864, 21191, 21242, 21845, 21913, 21986, 22707, + 22852, 22868, 23138, 23336, 24274, 24281, 24425, 24493, + 24792, 24910, 24840, 24928, 25140, 25540, 25628, 25682, + 25942, 26395, 26454, 28379, 28363, 28702, 30631, 29237, + 29359, 29809, 29958, 30011, 30237, 30239, 30427, 30452, + 30538, 30528, 30924, 31409, 31867, 32091, 32574, 33618, + 33775, 34681, 35137, 35206, 35519, 35531, 35565, 35722, + 36664, 36978, 37273, 37494, 38524, 38875, 38923, 39698, + 55370, 56394, 55370, 56388, 55372, 57301, 15261, 16408, + 16441, 55380, 56905, 55383, 56528, 55391, 57043, 40771, + 40846, 102, 102, 64256, 102, 105, 64257, 102, + 108, 64258, 102, 102, 105, 64259, 102, 102, + 108, 64260, 383, 116, 115, 116, 64261, 64262, + 1396, 1398, 64275, 1396, 1381, 64276, 1396, 1387, + 64277, 1406, 1398, 64278, 1396, 1389, 64279, 1497, + 1460, 1522, 1463, 1506, 1492, 1499, 1500, 1501, + 1512, 1514, 1513, 1473, 1513, 1474, 64329, 1473, + 64329, 1474, 1488, 1463, 1488, 1464, 1488, 1468, + 1489, 1468, 1490, 1468, 1491, 1468, 1492, 1468, + 1493, 1468, 1494, 1468, 1496, 1468, 1497, 1468, + 1498, 1468, 1499, 1468, 1500, 1468, 1502, 1468, + 1504, 1468, 1505, 1468, 1507, 1468, 1508, 1468, + 1510, 1468, 1511, 1468, 1512, 1468, 1513, 1468, + 1514, 1468, 1493, 1465, 1489, 1471, 1499, 1471, + 1508, 1471, 1488, 1500, 1649, 1659, 1662, 1664, + 1658, 1663, 1657, 1700, 1702, 1668, 1667, 1670, + 1671, 1677, 1676, 1678, 1672, 1688, 1681, 1705, + 1711, 1715, 1713, 1722, 1723, 1728, 1729, 1726, + 1746, 1747, 1709, 1735, 1734, 1736, 1655, 1739, + 1733, 1737, 1744, 1609, 1574, 1575, 1574, 1749, + 1574, 1608, 1574, 1735, 1574, 1734, 1574, 1736, + 1574, 1744, 1574, 1609, 1740, 1574, 1580, 1574, + 1581, 1574, 1605, 1574, 1610, 1576, 1580, 1576, + 1581, 1576, 1582, 1576, 1605, 1576, 1609, 1576, + 1610, 1578, 1580, 1578, 1581, 1578, 1582, 1578, + 1605, 1578, 1609, 1578, 1610, 1579, 1580, 1579, + 1605, 1579, 1609, 1579, 1610, 1580, 1581, 1580, + 1605, 1581, 1580, 1581, 1605, 1582, 1580, 1582, + 1581, 1582, 1605, 1587, 1580, 1587, 1581, 1587, + 1582, 1587, 1605, 1589, 1581, 1589, 1605, 1590, + 1580, 1590, 1581, 1590, 1582, 1590, 1605, 1591, + 1581, 1591, 1605, 1592, 1605, 1593, 1580, 1593, + 1605, 1594, 1580, 1594, 1605, 1601, 1580, 1601, + 1581, 1601, 1582, 1601, 1605, 1601, 1609, 1601, + 1610, 1602, 1581, 1602, 1605, 1602, 1609, 1602, + 1610, 1603, 1575, 1603, 1580, 1603, 1581, 1603, + 1582, 1603, 1604, 1603, 1605, 1603, 1609, 1603, + 1610, 1604, 1580, 1604, 1581, 1604, 1582, 1604, + 1605, 1604, 1609, 1604, 1610, 1605, 1580, 1605, + 1581, 1605, 1582, 1605, 1605, 1605, 1609, 1605, + 1610, 1606, 1580, 1606, 1581, 1606, 1582, 1606, + 1605, 1606, 1609, 1606, 1610, 1607, 1580, 1607, + 1605, 1607, 1609, 1607, 1610, 1610, 1580, 1610, + 1581, 1610, 1582, 1610, 1605, 1610, 1609, 1610, + 1610, 1584, 1648, 1585, 1648, 1609, 1648, 32, + 1612, 1617, 32, 1613, 1617, 32, 1614, 1617, + 32, 1615, 1617, 32, 1616, 1617, 32, 1617, + 1648, 1574, 1585, 1574, 1586, 1574, 1606, 1576, + 1585, 1576, 1586, 1576, 1606, 1578, 1585, 1578, + 1586, 1578, 1606, 1579, 1585, 1579, 1586, 1579, + 1606, 1605, 1575, 1606, 1585, 1606, 1586, 1606, + 1606, 1610, 1585, 1610, 1586, 1610, 1606, 1574, + 1582, 1574, 1607, 1576, 1607, 1578, 1607, 1589, + 1582, 1604, 1607, 1606, 1607, 1607, 1648, 1610, + 1607, 1579, 1607, 1587, 1607, 1588, 1605, 1588, + 1607, 1600, 1614, 1617, 1600, 1615, 1617, 1600, + 1616, 1617, 1591, 1609, 1591, 1610, 1593, 1609, + 1593, 1610, 1594, 1609, 1594, 1610, 1587, 1609, + 1587, 1610, 1588, 1609, 1588, 1610, 1581, 1609, + 1581, 1610, 1580, 1609, 1580, 1610, 1582, 1609, + 1582, 1610, 1589, 1609, 1589, 1610, 1590, 1609, + 1590, 1610, 1588, 1580, 1588, 1581, 1588, 1582, + 1588, 1585, 1587, 1585, 1589, 1585, 1590, 1585, + 1575, 1611, 1578, 1580, 1605, 1578, 1581, 1580, + 1578, 1581, 1605, 1578, 1582, 1605, 1578, 1605, + 1580, 1578, 1605, 1581, 1578, 1605, 1582, 1580, + 1605, 1581, 1581, 1605, 1610, 1581, 1605, 1609, + 1587, 1581, 1580, 1587, 1580, 1581, 1587, 1580, + 1609, 1587, 1605, 1581, 1587, 1605, 1580, 1587, + 1605, 1605, 1589, 1581, 1581, 1589, 1605, 1605, + 1588, 1581, 1605, 1588, 1580, 1610, 1588, 1605, + 1582, 1588, 1605, 1605, 1590, 1581, 1609, 1590, + 1582, 1605, 1591, 1605, 1581, 1591, 1605, 1605, + 1591, 1605, 1610, 1593, 1580, 1605, 1593, 1605, + 1605, 1593, 1605, 1609, 1594, 1605, 1605, 1594, + 1605, 1610, 1594, 1605, 1609, 1601, 1582, 1605, + 1602, 1605, 1581, 1602, 1605, 1605, 1604, 1581, + 1605, 1604, 1581, 1610, 1604, 1581, 1609, 1604, + 1580, 1580, 1604, 1582, 1605, 1604, 1605, 1581, + 1605, 1581, 1580, 1605, 1581, 1605, 1605, 1581, + 1610, 1605, 1580, 1581, 1605, 1580, 1605, 1605, + 1582, 1580, 1605, 1582, 1605, 1605, 1580, 1582, + 1607, 1605, 1580, 1607, 1605, 1605, 1606, 1581, + 1605, 1606, 1581, 1609, 1606, 1580, 1605, 1606, + 1580, 1609, 1606, 1605, 1610, 1606, 1605, 1609, + 1610, 1605, 1605, 1576, 1582, 1610, 1578, 1580, + 1610, 1578, 1580, 1609, 1578, 1582, 1610, 1578, + 1582, 1609, 1578, 1605, 1610, 1578, 1605, 1609, + 1580, 1605, 1610, 1580, 1581, 1609, 1580, 1605, + 1609, 1587, 1582, 1609, 1589, 1581, 1610, 1588, + 1581, 1610, 1590, 1581, 1610, 1604, 1580, 1610, + 1604, 1605, 1610, 1610, 1581, 1610, 1610, 1580, + 1610, 1610, 1605, 1610, 1605, 1605, 1610, 1602, + 1605, 1610, 1606, 1581, 1610, 1593, 1605, 1610, + 1603, 1605, 1610, 1606, 1580, 1581, 1605, 1582, + 1610, 1604, 1580, 1605, 1603, 1605, 1605, 1580, + 1581, 1610, 1581, 1580, 1610, 1605, 1580, 1610, + 1601, 1605, 1610, 1576, 1581, 1610, 1587, 1582, + 1610, 1606, 1580, 1610, 1589, 1604, 1746, 1602, + 1604, 1746, 3, 1575, 1604, 1604, 1607, 3, + 1575, 1603, 1576, 1585, 3, 1605, 1581, 1605, + 1583, 3, 1589, 1604, 1593, 1605, 3, 1585, + 1587, 1608, 1604, 3, 1593, 1604, 1610, 1607, + 3, 1608, 1587, 1604, 1605, 1589, 1604, 1609, + 17, 1589, 1604, 1609, 32, 1575, 1604, 1604, + 1607, 32, 1593, 1604, 1610, 1607, 32, 1608, + 1587, 1604, 1605, 7, 1580, 1604, 32, 1580, + 1604, 1575, 1604, 1607, 3, 1585, 1740, 1575, + 1604, 44, 12289, 12290, 58, 33, 63, 12310, + 12311, 8230, 8229, 8212, 8211, 95, 123, 125, + 12308, 12309, 12304, 12305, 12298, 12299, 12300, 12301, + 12302, 12303, 91, 93, 8254, 35, 38, 42, + 45, 60, 62, 92, 36, 37, 64, 32, + 1611, 1600, 1611, 32, 1612, 32, 1613, 32, + 1614, 1600, 1614, 32, 1615, 1600, 1615, 32, + 1616, 1600, 1616, 32, 1617, 1600, 1617, 32, + 1618, 1600, 1618, 1569, 1570, 1571, 1572, 1573, + 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, + 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, + 1590, 1591, 1592, 1593, 1594, 1601, 1602, 1603, + 1604, 1605, 1606, 1607, 1608, 1610, 1604, 1570, + 1604, 1571, 1604, 1573, 1604, 1575, 34, 39, + 47, 65345, 65346, 65347, 65348, 65349, 65350, 65351, + 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, + 65360, 65361, 65362, 65363, 65364, 65365, 65366, 65367, + 65368, 65369, 65370, 94, 65313, 65314, 65315, 65316, + 65317, 65318, 65319, 65320, 65321, 65322, 65323, 65324, + 65325, 65326, 65327, 65328, 65329, 65330, 65331, 65332, + 65333, 65334, 65335, 65336, 65337, 65338, 124, 126, + 10629, 10630, 12539, 12449, 12451, 12453, 12455, 12457, + 12515, 12517, 12519, 12483, 12540, 12531, 12441, 12442, + 12644, 12593, 12594, 12595, 12596, 12597, 12598, 12599, + 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, + 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, + 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, + 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, + 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, + 12640, 12641, 12642, 12643, 162, 163, 172, 175, + 166, 165, 8361, 9474, 8592, 8593, 8594, 8595, + 9632, 9675, 55297, 56360, 55297, 56361, 55297, 56362, + 55297, 56363, 55297, 56364, 55297, 56365, 55297, 56366, + 55297, 56367, 55297, 56368, 55297, 56369, 55297, 56370, + 55297, 56371, 55297, 56372, 55297, 56373, 55297, 56374, + 55297, 56375, 55297, 56376, 55297, 56377, 55297, 56378, + 55297, 56379, 55297, 56380, 55297, 56381, 55297, 56382, + 55297, 56383, 55297, 56384, 55297, 56385, 55297, 56386, + 55297, 56387, 55297, 56388, 55297, 56389, 55297, 56390, + 55297, 56391, 55297, 56392, 55297, 56393, 55297, 56394, + 55297, 56395, 55297, 56396, 55297, 56397, 55297, 56398, + 55297, 56399, 55297, 56320, 55297, 56321, 55297, 56322, + 55297, 56323, 55297, 56324, 55297, 56325, 55297, 56326, + 55297, 56327, 55297, 56328, 55297, 56329, 55297, 56330, + 55297, 56331, 55297, 56332, 55297, 56333, 55297, 56334, + 55297, 56335, 55297, 56336, 55297, 56337, 55297, 56338, + 55297, 56339, 55297, 56340, 55297, 56341, 55297, 56342, + 55297, 56343, 55297, 56344, 55297, 56345, 55297, 56346, + 55297, 56347, 55297, 56348, 55297, 56349, 55297, 56350, + 55297, 56351, 55297, 56352, 55297, 56353, 55297, 56354, + 55297, 56355, 55297, 56356, 55297, 56357, 55297, 56358, + 55297, 56359, 55297, 56536, 55297, 56537, 55297, 56538, + 55297, 56539, 55297, 56540, 55297, 56541, 55297, 56542, + 55297, 56543, 55297, 56544, 55297, 56545, 55297, 56546, + 55297, 56547, 55297, 56548, 55297, 56549, 55297, 56550, + 55297, 56551, 55297, 56552, 55297, 56553, 55297, 56554, + 55297, 56555, 55297, 56556, 55297, 56557, 55297, 56558, + 55297, 56559, 55297, 56560, 55297, 56561, 55297, 56562, + 55297, 56563, 55297, 56564, 55297, 56565, 55297, 56566, + 55297, 56567, 55297, 56568, 55297, 56569, 55297, 56570, + 55297, 56571, 55297, 56496, 55297, 56497, 55297, 56498, + 55297, 56499, 55297, 56500, 55297, 56501, 55297, 56502, + 55297, 56503, 55297, 56504, 55297, 56505, 55297, 56506, + 55297, 56507, 55297, 56508, 55297, 56509, 55297, 56510, + 55297, 56511, 55297, 56512, 55297, 56513, 55297, 56514, + 55297, 56515, 55297, 56516, 55297, 56517, 55297, 56518, + 55297, 56519, 55297, 56520, 55297, 56521, 55297, 56522, + 55297, 56523, 55297, 56524, 55297, 56525, 55297, 56526, + 55297, 56527, 55297, 56528, 55297, 56529, 55297, 56530, + 55297, 56531, 55297, 56727, 55297, 56728, 55297, 56729, + 55297, 56730, 55297, 56731, 55297, 56732, 55297, 56733, + 55297, 56734, 55297, 56735, 55297, 56736, 55297, 56737, + 55297, 56739, 55297, 56740, 55297, 56741, 55297, 56742, + 55297, 56743, 55297, 56744, 55297, 56745, 55297, 56746, + 55297, 56747, 55297, 56748, 55297, 56749, 55297, 56750, + 55297, 56751, 55297, 56752, 55297, 56753, 55297, 56755, + 55297, 56756, 55297, 56757, 55297, 56758, 55297, 56759, + 55297, 56760, 55297, 56761, 55297, 56763, 55297, 56764, + 55297, 56688, 55297, 56689, 55297, 56690, 55297, 56691, + 55297, 56692, 55297, 56693, 55297, 56694, 55297, 56695, + 55297, 56696, 55297, 56697, 55297, 56698, 55297, 56700, + 55297, 56701, 55297, 56702, 55297, 56703, 55297, 56704, + 55297, 56705, 55297, 56706, 55297, 56707, 55297, 56708, + 55297, 56709, 55297, 56710, 55297, 56711, 55297, 56712, + 55297, 56713, 55297, 56714, 55297, 56716, 55297, 56717, + 55297, 56718, 55297, 56719, 55297, 56720, 55297, 56721, + 55297, 56722, 55297, 56724, 55297, 56725, 55297, 56786, + 775, 55297, 56794, 775, 55297, 57216, 720, 721, + 55297, 57219, 55297, 57220, 55297, 57221, 55297, 57223, + 55297, 57224, 55297, 57225, 55297, 57226, 55297, 57227, + 55297, 57228, 55297, 57229, 55297, 57230, 55297, 57231, + 55297, 57232, 55297, 57233, 55297, 57234, 55297, 57235, + 55297, 57236, 55297, 57237, 55297, 57238, 55297, 57239, + 55297, 57240, 55297, 57241, 55297, 57242, 55297, 57243, + 55351, 57092, 55297, 57244, 55297, 57245, 55297, 57246, + 55351, 57093, 55297, 57247, 55297, 57248, 55351, 57094, + 55297, 57249, 55297, 57250, 55297, 57251, 55297, 57252, + 55297, 57253, 55297, 57254, 55351, 57096, 55297, 57255, + 55297, 57256, 55297, 57257, 55297, 57258, 55297, 57259, + 55297, 57260, 55297, 57261, 55297, 57262, 55297, 57263, + 55297, 57264, 55297, 57266, 55297, 57267, 55297, 57268, + 55297, 57269, 448, 55297, 57270, 449, 55297, 57271, + 450, 55297, 57272, 55351, 57098, 55297, 57273, 55351, + 57118, 55297, 57274, 55299, 56512, 55299, 56513, 55299, + 56514, 55299, 56515, 55299, 56516, 55299, 56517, 55299, + 56518, 55299, 56519, 55299, 56520, 55299, 56521, 55299, + 56522, 55299, 56523, 55299, 56524, 55299, 56525, 55299, + 56526, 55299, 56527, 55299, 56528, 55299, 56529, 55299, + 56530, 55299, 56531, 55299, 56532, 55299, 56533, 55299, + 56534, 55299, 56535, 55299, 56536, 55299, 56537, 55299, + 56538, 55299, 56539, 55299, 56540, 55299, 56541, 55299, + 56542, 55299, 56543, 55299, 56544, 55299, 56545, 55299, + 56546, 55299, 56547, 55299, 56548, 55299, 56549, 55299, + 56550, 55299, 56551, 55299, 56552, 55299, 56553, 55299, + 56554, 55299, 56555, 55299, 56556, 55299, 56557, 55299, + 56558, 55299, 56559, 55299, 56560, 55299, 56561, 55299, + 56562, 55299, 56448, 55299, 56449, 55299, 56450, 55299, + 56451, 55299, 56452, 55299, 56453, 55299, 56454, 55299, + 56455, 55299, 56456, 55299, 56457, 55299, 56458, 55299, + 56459, 55299, 56460, 55299, 56461, 55299, 56462, 55299, + 56463, 55299, 56464, 55299, 56465, 55299, 56466, 55299, + 56467, 55299, 56468, 55299, 56469, 55299, 56470, 55299, + 56471, 55299, 56472, 55299, 56473, 55299, 56474, 55299, + 56475, 55299, 56476, 55299, 56477, 55299, 56478, 55299, + 56479, 55299, 56480, 55299, 56481, 55299, 56482, 55299, + 56483, 55299, 56484, 55299, 56485, 55299, 56486, 55299, + 56487, 55299, 56488, 55299, 56489, 55299, 56490, 55299, + 56491, 55299, 56492, 55299, 56493, 55299, 56494, 55299, + 56495, 55299, 56496, 55299, 56497, 55299, 56498, 55299, + 56688, 55299, 56689, 55299, 56690, 55299, 56691, 55299, + 56692, 55299, 56693, 55299, 56694, 55299, 56695, 55299, + 56696, 55299, 56697, 55299, 56698, 55299, 56699, 55299, + 56700, 55299, 56701, 55299, 56702, 55299, 56703, 55299, + 56704, 55299, 56705, 55299, 56706, 55299, 56707, 55299, + 56708, 55299, 56709, 55299, 56656, 55299, 56657, 55299, + 56658, 55299, 56659, 55299, 56660, 55299, 56661, 55299, + 56662, 55299, 56663, 55299, 56664, 55299, 56665, 55299, + 56666, 55299, 56667, 55299, 56668, 55299, 56669, 55299, + 56670, 55299, 56671, 55299, 56672, 55299, 56673, 55299, + 56674, 55299, 56675, 55299, 56676, 55299, 56677, 55300, + 56473, 55300, 56506, 55300, 56475, 55300, 56506, 55300, + 56485, 55300, 56506, 55300, 56625, 55300, 56615, 55300, + 56626, 55300, 56615, 55300, 57159, 55300, 57150, 55300, + 57159, 55300, 57175, 55300, 57218, 55300, 57289, 55300, + 57220, 55300, 57275, 55300, 57227, 55300, 57282, 55300, + 57232, 55300, 57289, 55300, 57282, 55300, 57282, 55300, + 57282, 55300, 57272, 55300, 57282, 55300, 57289, 55301, + 56505, 55301, 56506, 55301, 56505, 55301, 56496, 55301, + 56505, 55301, 56509, 55301, 56760, 55301, 56751, 55301, + 56761, 55301, 56751, 55302, 56512, 55302, 56513, 55302, + 56514, 55302, 56515, 55302, 56516, 55302, 56517, 55302, + 56518, 55302, 56519, 55302, 56520, 55302, 56521, 55302, + 56522, 55302, 56523, 55302, 56524, 55302, 56525, 55302, + 56526, 55302, 56527, 55302, 56528, 55302, 56529, 55302, + 56530, 55302, 56531, 55302, 56532, 55302, 56533, 55302, + 56534, 55302, 56535, 55302, 56536, 55302, 56537, 55302, + 56538, 55302, 56539, 55302, 56540, 55302, 56541, 55302, + 56542, 55302, 56543, 55302, 56480, 55302, 56481, 55302, + 56482, 55302, 56483, 55302, 56484, 55302, 56485, 55302, + 56486, 55302, 56487, 55302, 56488, 55302, 56489, 55302, + 56490, 55302, 56491, 55302, 56492, 55302, 56493, 55302, + 56494, 55302, 56495, 55302, 56496, 55302, 56497, 55302, + 56498, 55302, 56499, 55302, 56500, 55302, 56501, 55302, + 56502, 55302, 56503, 55302, 56504, 55302, 56505, 55302, + 56506, 55302, 56507, 55302, 56508, 55302, 56509, 55302, + 56510, 55302, 56511, 55302, 56629, 55302, 56624, 55320, + 56606, 55320, 56606, 55320, 56606, 55320, 56617, 55320, + 56606, 55320, 56607, 55320, 56617, 55320, 56607, 55320, + 56606, 55320, 56608, 55320, 56609, 55320, 56607, 55320, + 56610, 55320, 56607, 55320, 56609, 55320, 56608, 55323, + 56679, 55323, 56679, 55323, 56675, 55323, 56679, 55323, + 56681, 55323, 56679, 55323, 56928, 55323, 56929, 55323, + 56930, 55323, 56931, 55323, 56932, 55323, 56933, 55323, + 56934, 55323, 56935, 55323, 56936, 55323, 56937, 55323, + 56938, 55323, 56939, 55323, 56940, 55323, 56941, 55323, + 56942, 55323, 56943, 55323, 56944, 55323, 56945, 55323, + 56946, 55323, 56947, 55323, 56948, 55323, 56949, 55323, + 56950, 55323, 56951, 55323, 56952, 55323, 56953, 55323, + 56954, 55323, 56955, 55323, 56956, 55323, 56957, 55323, + 56958, 55323, 56959, 55323, 56896, 55323, 56897, 55323, + 56898, 55323, 56899, 55323, 56900, 55323, 56901, 55323, + 56902, 55323, 56903, 55323, 56904, 55323, 56905, 55323, + 56906, 55323, 56907, 55323, 56908, 55323, 56909, 55323, + 56910, 55323, 56911, 55323, 56912, 55323, 56913, 55323, + 56914, 55323, 56915, 55323, 56916, 55323, 56917, 55323, + 56918, 55323, 56919, 55323, 56920, 55323, 56921, 55323, + 56922, 55323, 56923, 55323, 56924, 55323, 56925, 55323, + 56926, 55323, 56927, 55348, 56663, 55348, 56677, 55348, + 56664, 55348, 56677, 55348, 56671, 55348, 56686, 55348, + 56671, 55348, 56687, 55348, 56671, 55348, 56688, 55348, + 56671, 55348, 56689, 55348, 56671, 55348, 56690, 55348, + 56761, 55348, 56677, 55348, 56762, 55348, 56677, 55348, + 56763, 55348, 56686, 55348, 56764, 55348, 56686, 55348, + 56763, 55348, 56687, 55348, 56764, 55348, 56687, 55349, + 56320, 55349, 56321, 55349, 56322, 55349, 56323, 55349, + 56324, 55349, 56325, 55349, 56326, 55349, 56327, 55349, + 56328, 55349, 56329, 55349, 56330, 55349, 56331, 55349, + 56332, 55349, 56333, 55349, 56334, 55349, 56335, 55349, + 56336, 55349, 56337, 55349, 56338, 55349, 56339, 55349, + 56340, 55349, 56341, 55349, 56342, 55349, 56343, 55349, + 56344, 55349, 56345, 55349, 56346, 55349, 56347, 55349, + 56348, 55349, 56349, 55349, 56350, 55349, 56351, 55349, + 56352, 55349, 56353, 55349, 56354, 55349, 56355, 55349, + 56356, 55349, 56357, 55349, 56358, 55349, 56359, 55349, + 56360, 55349, 56361, 55349, 56362, 55349, 56363, 55349, + 56364, 55349, 56365, 55349, 56366, 55349, 56367, 55349, + 56368, 55349, 56369, 55349, 56370, 55349, 56371, 55349, + 56372, 55349, 56373, 55349, 56374, 55349, 56375, 55349, + 56376, 55349, 56377, 55349, 56378, 55349, 56379, 55349, + 56380, 55349, 56381, 55349, 56382, 55349, 56383, 55349, + 56384, 55349, 56385, 55349, 56386, 55349, 56387, 55349, + 56388, 55349, 56389, 55349, 56390, 55349, 56391, 55349, + 56392, 55349, 56393, 55349, 56394, 55349, 56395, 55349, + 56396, 55349, 56397, 55349, 56398, 55349, 56399, 55349, + 56400, 55349, 56401, 55349, 56402, 55349, 56403, 55349, + 56404, 55349, 56406, 55349, 56407, 55349, 56408, 55349, + 56409, 55349, 56410, 55349, 56411, 55349, 56412, 55349, + 56413, 55349, 56414, 55349, 56415, 55349, 56416, 55349, + 56417, 55349, 56418, 55349, 56419, 55349, 56420, 55349, + 56421, 55349, 56422, 55349, 56423, 55349, 56424, 55349, + 56425, 55349, 56426, 55349, 56427, 55349, 56428, 55349, + 56429, 55349, 56430, 55349, 56431, 55349, 56432, 55349, + 56433, 55349, 56434, 55349, 56435, 55349, 56436, 55349, + 56437, 55349, 56438, 55349, 56439, 55349, 56440, 55349, + 56441, 55349, 56442, 55349, 56443, 55349, 56444, 55349, + 56445, 55349, 56446, 55349, 56447, 55349, 56448, 55349, + 56449, 55349, 56450, 55349, 56451, 55349, 56452, 55349, + 56453, 55349, 56454, 55349, 56455, 55349, 56456, 55349, + 56457, 55349, 56458, 55349, 56459, 55349, 56460, 55349, + 56461, 55349, 56462, 55349, 56463, 55349, 56464, 55349, + 56465, 55349, 56466, 55349, 56467, 55349, 56468, 55349, + 56469, 55349, 56470, 55349, 56471, 55349, 56472, 55349, + 56473, 55349, 56474, 55349, 56475, 55349, 56476, 55349, + 56478, 55349, 56479, 55349, 56482, 55349, 56485, 55349, + 56486, 55349, 56489, 55349, 56490, 55349, 56491, 55349, + 56492, 55349, 56494, 55349, 56495, 55349, 56496, 55349, + 56497, 55349, 56498, 55349, 56499, 55349, 56500, 55349, + 56501, 55349, 56502, 55349, 56503, 55349, 56504, 55349, + 56505, 55349, 56507, 55349, 56509, 55349, 56510, 55349, + 56511, 55349, 56512, 55349, 56513, 55349, 56514, 55349, + 56515, 55349, 56517, 55349, 56518, 55349, 56519, 55349, + 56520, 55349, 56521, 55349, 56522, 55349, 56523, 55349, + 56524, 55349, 56525, 55349, 56526, 55349, 56527, 55349, + 56528, 55349, 56529, 55349, 56530, 55349, 56531, 55349, + 56532, 55349, 56533, 55349, 56534, 55349, 56535, 55349, + 56536, 55349, 56537, 55349, 56538, 55349, 56539, 55349, + 56540, 55349, 56541, 55349, 56542, 55349, 56543, 55349, + 56544, 55349, 56545, 55349, 56546, 55349, 56547, 55349, + 56548, 55349, 56549, 55349, 56550, 55349, 56551, 55349, + 56552, 55349, 56553, 55349, 56554, 55349, 56555, 55349, + 56556, 55349, 56557, 55349, 56558, 55349, 56559, 55349, + 56560, 55349, 56561, 55349, 56562, 55349, 56563, 55349, + 56564, 55349, 56565, 55349, 56566, 55349, 56567, 55349, + 56568, 55349, 56569, 55349, 56570, 55349, 56571, 55349, + 56572, 55349, 56573, 55349, 56574, 55349, 56575, 55349, + 56576, 55349, 56577, 55349, 56578, 55349, 56579, 55349, + 56580, 55349, 56581, 55349, 56583, 55349, 56584, 55349, + 56585, 55349, 56586, 55349, 56589, 55349, 56590, 55349, + 56591, 55349, 56592, 55349, 56593, 55349, 56594, 55349, + 56595, 55349, 56596, 55349, 56598, 55349, 56599, 55349, + 56600, 55349, 56601, 55349, 56602, 55349, 56603, 55349, + 56604, 55349, 56606, 55349, 56607, 55349, 56608, 55349, + 56609, 55349, 56610, 55349, 56611, 55349, 56612, 55349, + 56613, 55349, 56614, 55349, 56615, 55349, 56616, 55349, + 56617, 55349, 56618, 55349, 56619, 55349, 56620, 55349, + 56621, 55349, 56622, 55349, 56623, 55349, 56624, 55349, + 56625, 55349, 56626, 55349, 56627, 55349, 56628, 55349, + 56629, 55349, 56630, 55349, 56631, 55349, 56632, 55349, + 56633, 55349, 56635, 55349, 56636, 55349, 56637, 55349, + 56638, 55349, 56640, 55349, 56641, 55349, 56642, 55349, + 56643, 55349, 56644, 55349, 56646, 55349, 56650, 55349, + 56651, 55349, 56652, 55349, 56653, 55349, 56654, 55349, + 56655, 55349, 56656, 55349, 56658, 55349, 56659, 55349, + 56660, 55349, 56661, 55349, 56662, 55349, 56663, 55349, + 56664, 55349, 56665, 55349, 56666, 55349, 56667, 55349, + 56668, 55349, 56669, 55349, 56670, 55349, 56671, 55349, + 56672, 55349, 56673, 55349, 56674, 55349, 56675, 55349, + 56676, 55349, 56677, 55349, 56678, 55349, 56679, 55349, + 56680, 55349, 56681, 55349, 56682, 55349, 56683, 55349, + 56684, 55349, 56685, 55349, 56686, 55349, 56687, 55349, + 56688, 55349, 56689, 55349, 56690, 55349, 56691, 55349, + 56692, 55349, 56693, 55349, 56694, 55349, 56695, 55349, + 56696, 55349, 56697, 55349, 56698, 55349, 56699, 55349, + 56700, 55349, 56701, 55349, 56702, 55349, 56703, 55349, + 56704, 55349, 56705, 55349, 56706, 55349, 56707, 55349, + 56708, 55349, 56709, 55349, 56710, 55349, 56711, 55349, + 56712, 55349, 56713, 55349, 56714, 55349, 56715, 55349, + 56716, 55349, 56717, 55349, 56718, 55349, 56719, 55349, + 56720, 55349, 56721, 55349, 56722, 55349, 56723, 55349, + 56724, 55349, 56725, 55349, 56726, 55349, 56727, 55349, + 56728, 55349, 56729, 55349, 56730, 55349, 56731, 55349, + 56732, 55349, 56733, 55349, 56734, 55349, 56735, 55349, + 56736, 55349, 56737, 55349, 56738, 55349, 56739, 55349, + 56740, 55349, 56741, 55349, 56742, 55349, 56743, 55349, + 56744, 55349, 56745, 55349, 56746, 55349, 56747, 55349, + 56748, 55349, 56749, 55349, 56750, 55349, 56751, 55349, + 56752, 55349, 56753, 55349, 56754, 55349, 56755, 55349, + 56756, 55349, 56757, 55349, 56758, 55349, 56759, 55349, + 56760, 55349, 56761, 55349, 56762, 55349, 56763, 55349, + 56764, 55349, 56765, 55349, 56766, 55349, 56767, 55349, + 56768, 55349, 56769, 55349, 56770, 55349, 56771, 55349, + 56772, 55349, 56773, 55349, 56774, 55349, 56775, 55349, + 56776, 55349, 56777, 55349, 56778, 55349, 56779, 55349, + 56780, 55349, 56781, 55349, 56782, 55349, 56783, 55349, + 56784, 55349, 56785, 55349, 56786, 55349, 56787, 55349, + 56788, 55349, 56789, 55349, 56790, 55349, 56791, 55349, + 56792, 55349, 56793, 55349, 56794, 55349, 56795, 55349, + 56796, 55349, 56797, 55349, 56798, 55349, 56799, 55349, + 56800, 55349, 56801, 55349, 56802, 55349, 56803, 55349, + 56804, 55349, 56805, 55349, 56806, 55349, 56807, 55349, + 56808, 55349, 56809, 55349, 56810, 55349, 56811, 55349, + 56812, 55349, 56813, 55349, 56814, 55349, 56815, 55349, + 56816, 55349, 56817, 55349, 56818, 55349, 56819, 55349, + 56820, 55349, 56821, 55349, 56822, 55349, 56823, 55349, + 56824, 55349, 56825, 55349, 56826, 55349, 56827, 55349, + 56828, 55349, 56829, 55349, 56830, 55349, 56831, 55349, + 56832, 55349, 56833, 55349, 56834, 55349, 56835, 55349, + 56836, 55349, 56837, 55349, 56838, 55349, 56839, 55349, + 56840, 55349, 56841, 55349, 56842, 55349, 56843, 55349, + 56844, 55349, 56845, 55349, 56846, 55349, 56847, 55349, + 56848, 55349, 56849, 55349, 56850, 55349, 56851, 55349, + 56852, 55349, 56853, 55349, 56854, 55349, 56855, 55349, + 56856, 55349, 56857, 55349, 56858, 55349, 56859, 55349, + 56860, 55349, 56861, 55349, 56862, 55349, 56863, 55349, + 56864, 55349, 56865, 55349, 56866, 55349, 56867, 55349, + 56868, 55349, 56869, 55349, 56870, 55349, 56871, 55349, + 56872, 55349, 56873, 55349, 56874, 55349, 56875, 55349, + 56876, 55349, 56877, 55349, 56878, 55349, 56879, 55349, + 56880, 55349, 56881, 55349, 56882, 55349, 56883, 55349, + 56884, 55349, 56885, 55349, 56886, 55349, 56887, 55349, + 56888, 55349, 56889, 55349, 56890, 55349, 56891, 55349, + 56892, 55349, 56893, 55349, 56894, 55349, 56895, 55349, + 56896, 55349, 56897, 55349, 56898, 55349, 56899, 55349, + 56900, 55349, 56901, 55349, 56902, 55349, 56903, 55349, + 56904, 55349, 56905, 55349, 56906, 55349, 56907, 55349, + 56908, 55349, 56909, 55349, 56910, 55349, 56911, 55349, + 56912, 55349, 56913, 55349, 56914, 55349, 56915, 55349, + 56916, 55349, 56917, 55349, 56918, 55349, 56919, 55349, + 56920, 55349, 56921, 55349, 56922, 55349, 56923, 55349, + 56924, 55349, 56925, 55349, 56926, 55349, 56927, 55349, + 56928, 55349, 56929, 55349, 56930, 55349, 56931, 55349, + 56932, 55349, 56933, 55349, 56934, 55349, 56935, 55349, + 56936, 55349, 56937, 55349, 56938, 55349, 56939, 55349, + 56940, 55349, 56941, 55349, 56942, 55349, 56943, 55349, + 56944, 55349, 56945, 55349, 56946, 55349, 56947, 55349, + 56948, 55349, 56949, 55349, 56950, 55349, 56951, 55349, + 56952, 55349, 56953, 55349, 56954, 55349, 56955, 55349, + 56956, 55349, 56957, 55349, 56958, 55349, 56959, 55349, + 56960, 55349, 56961, 55349, 56962, 55349, 56963, 55349, + 56964, 55349, 56965, 55349, 56966, 55349, 56967, 55349, + 56968, 55349, 56969, 55349, 56970, 55349, 56971, 55349, + 56972, 55349, 56973, 55349, 56974, 55349, 56975, 55349, + 56976, 55349, 56977, 55349, 56978, 55349, 56979, 55349, + 56980, 55349, 56981, 55349, 56982, 55349, 56983, 55349, + 56984, 55349, 56985, 55349, 56986, 55349, 56987, 55349, + 56988, 55349, 56989, 55349, 56990, 55349, 56991, 55349, + 56992, 55349, 56993, 55349, 56994, 55349, 56995, 305, + 55349, 56996, 55349, 56997, 55349, 57000, 55349, 57001, + 55349, 57002, 55349, 57003, 55349, 57004, 55349, 57005, + 55349, 57006, 55349, 57007, 55349, 57008, 55349, 57009, + 55349, 57010, 55349, 57011, 55349, 57012, 55349, 57013, + 55349, 57014, 55349, 57015, 55349, 57016, 1012, 55349, + 57017, 55349, 57018, 55349, 57019, 55349, 57020, 55349, + 57021, 55349, 57022, 55349, 57023, 55349, 57024, 8711, + 55349, 57026, 55349, 57027, 55349, 57028, 55349, 57029, + 55349, 57030, 55349, 57031, 55349, 57032, 55349, 57033, + 55349, 57034, 55349, 57035, 55349, 57036, 55349, 57037, + 55349, 57038, 55349, 57039, 55349, 57040, 55349, 57041, + 55349, 57042, 55349, 57043, 55349, 57044, 55349, 57045, + 55349, 57046, 55349, 57047, 55349, 57048, 55349, 57049, + 55349, 57050, 8706, 1013, 55349, 57052, 977, 55349, + 57053, 1008, 55349, 57054, 981, 55349, 57055, 1009, + 55349, 57056, 982, 55349, 57057, 55349, 57058, 55349, + 57059, 55349, 57060, 55349, 57061, 55349, 57062, 55349, + 57063, 55349, 57064, 55349, 57065, 55349, 57066, 55349, + 57067, 55349, 57068, 55349, 57069, 55349, 57070, 55349, + 57071, 55349, 57072, 55349, 57073, 55349, 57074, 55349, + 57075, 55349, 57076, 55349, 57077, 55349, 57078, 55349, + 57079, 55349, 57080, 55349, 57081, 55349, 57082, 55349, + 57084, 55349, 57085, 55349, 57086, 55349, 57087, 55349, + 57088, 55349, 57089, 55349, 57090, 55349, 57091, 55349, + 57092, 55349, 57093, 55349, 57094, 55349, 57095, 55349, + 57096, 55349, 57097, 55349, 57098, 55349, 57099, 55349, + 57100, 55349, 57101, 55349, 57102, 55349, 57103, 55349, + 57104, 55349, 57105, 55349, 57106, 55349, 57107, 55349, + 57108, 55349, 57110, 55349, 57111, 55349, 57112, 55349, + 57113, 55349, 57114, 55349, 57115, 55349, 57116, 55349, + 57117, 55349, 57118, 55349, 57119, 55349, 57120, 55349, + 57121, 55349, 57122, 55349, 57123, 55349, 57124, 55349, + 57125, 55349, 57126, 55349, 57127, 55349, 57128, 55349, + 57129, 55349, 57130, 55349, 57131, 55349, 57132, 55349, + 57133, 55349, 57134, 55349, 57135, 55349, 57136, 55349, + 57137, 55349, 57138, 55349, 57139, 55349, 57140, 55349, + 57142, 55349, 57143, 55349, 57144, 55349, 57145, 55349, + 57146, 55349, 57147, 55349, 57148, 55349, 57149, 55349, + 57150, 55349, 57151, 55349, 57152, 55349, 57153, 55349, + 57154, 55349, 57155, 55349, 57156, 55349, 57157, 55349, + 57158, 55349, 57159, 55349, 57160, 55349, 57161, 55349, + 57162, 55349, 57163, 55349, 57164, 55349, 57165, 55349, + 57166, 55349, 57168, 55349, 57169, 55349, 57170, 55349, + 57171, 55349, 57172, 55349, 57173, 55349, 57174, 55349, + 57175, 55349, 57176, 55349, 57177, 55349, 57178, 55349, + 57179, 55349, 57180, 55349, 57181, 55349, 57182, 55349, + 57183, 55349, 57184, 55349, 57185, 55349, 57186, 55349, + 57187, 55349, 57188, 55349, 57189, 55349, 57190, 55349, + 57191, 55349, 57192, 55349, 57193, 55349, 57194, 55349, + 57195, 55349, 57196, 55349, 57197, 55349, 57198, 55349, + 57200, 55349, 57201, 55349, 57202, 55349, 57203, 55349, + 57204, 55349, 57205, 55349, 57206, 55349, 57207, 55349, + 57208, 55349, 57209, 55349, 57210, 55349, 57211, 55349, + 57212, 55349, 57213, 55349, 57214, 55349, 57215, 55349, + 57216, 55349, 57217, 55349, 57218, 55349, 57219, 55349, + 57220, 55349, 57221, 55349, 57222, 55349, 57223, 55349, + 57224, 55349, 57226, 55349, 57227, 55349, 57228, 55349, + 57229, 55349, 57230, 55349, 57231, 55349, 57232, 55349, + 57233, 55349, 57234, 55349, 57235, 55349, 57236, 55349, + 57237, 55349, 57238, 55349, 57239, 55349, 57240, 55349, + 57241, 55349, 57242, 55349, 57243, 55349, 57244, 55349, + 57245, 55349, 57246, 55349, 57247, 55349, 57248, 55349, + 57249, 55349, 57250, 55349, 57251, 55349, 57252, 55349, + 57253, 55349, 57254, 55349, 57255, 55349, 57256, 55349, + 57258, 55349, 57259, 55349, 57260, 55349, 57261, 55349, + 57262, 55349, 57263, 55349, 57264, 55349, 57265, 55349, + 57266, 55349, 57267, 55349, 57268, 55349, 57269, 55349, + 57270, 55349, 57271, 55349, 57272, 55349, 57273, 55349, + 57274, 55349, 57275, 55349, 57276, 55349, 57277, 55349, + 57278, 55349, 57279, 55349, 57280, 55349, 57281, 55349, + 57282, 55349, 57284, 55349, 57285, 55349, 57286, 55349, + 57287, 55349, 57288, 55349, 57289, 55349, 57290, 55349, + 57291, 55351, 57088, 55351, 57089, 55351, 57090, 55351, + 57091, 55351, 57095, 55351, 57097, 55351, 57099, 55351, + 57100, 55351, 57101, 55351, 57102, 55351, 57103, 55351, + 57104, 55351, 57105, 55351, 57106, 55351, 57107, 55351, + 57108, 55351, 57109, 55351, 57110, 55351, 57111, 55351, + 57112, 55351, 57113, 55351, 57114, 55351, 57115, 55351, + 57116, 55351, 57117, 55351, 57125, 55351, 57126, 55351, + 57127, 55351, 57128, 55351, 57129, 55351, 57130, 55352, + 56368, 55352, 56369, 55352, 56370, 55352, 56371, 55352, + 56372, 55352, 56373, 55352, 56374, 55352, 56375, 55352, + 56376, 55352, 56377, 55352, 56378, 55352, 56379, 55352, + 56380, 55352, 56381, 55352, 56382, 55352, 56383, 55352, + 56384, 55352, 56385, 55352, 56386, 55352, 56387, 55352, + 56388, 55352, 56389, 55352, 56390, 55352, 56391, 55352, + 56392, 55352, 56393, 55352, 56394, 55352, 56395, 55352, + 56396, 55352, 56397, 55352, 56398, 55352, 56399, 55352, + 56400, 55352, 56401, 55352, 56402, 55352, 56403, 55352, + 56404, 55352, 56405, 55352, 56406, 55352, 56407, 55352, + 56408, 55352, 56409, 55352, 56410, 55352, 56411, 55352, + 56412, 55352, 56413, 55352, 56414, 55352, 56415, 55352, + 56416, 55352, 56417, 55352, 56418, 55352, 56419, 55352, + 56420, 55352, 56421, 55352, 56422, 55352, 56423, 55352, + 56424, 55352, 56425, 55352, 56426, 55352, 56427, 55352, + 56428, 55352, 56429, 55354, 56610, 55354, 56611, 55354, + 56612, 55354, 56613, 55354, 56614, 55354, 56615, 55354, + 56616, 55354, 56617, 55354, 56618, 55354, 56619, 55354, + 56620, 55354, 56621, 55354, 56622, 55354, 56623, 55354, + 56624, 55354, 56625, 55354, 56626, 55354, 56627, 55354, + 56628, 55354, 56629, 55354, 56630, 55354, 56631, 55354, + 56632, 55354, 56633, 55354, 56634, 55354, 56635, 55354, + 56636, 55354, 56637, 55354, 56638, 55354, 56639, 55354, + 56640, 55354, 56641, 55354, 56642, 55354, 56643, 55354, + 56576, 55354, 56577, 55354, 56578, 55354, 56579, 55354, + 56580, 55354, 56581, 55354, 56582, 55354, 56583, 55354, + 56584, 55354, 56585, 55354, 56586, 55354, 56587, 55354, + 56588, 55354, 56589, 55354, 56590, 55354, 56591, 55354, + 56592, 55354, 56593, 55354, 56594, 55354, 56595, 55354, + 56596, 55354, 56597, 55354, 56598, 55354, 56599, 55354, + 56600, 55354, 56601, 55354, 56602, 55354, 56603, 55354, + 56604, 55354, 56605, 55354, 56606, 55354, 56607, 55354, + 56608, 55354, 56609, 1646, 1697, 1647, 48, 46, + 48, 44, 49, 44, 50, 44, 51, 44, + 52, 44, 53, 44, 54, 44, 55, 44, + 56, 44, 57, 44, 40, 65, 41, 40, + 66, 41, 40, 67, 41, 40, 68, 41, + 40, 69, 41, 40, 70, 41, 40, 71, + 41, 40, 72, 41, 40, 73, 41, 40, + 74, 41, 40, 75, 41, 40, 76, 41, + 40, 77, 41, 40, 78, 41, 40, 79, + 41, 40, 80, 41, 40, 81, 41, 40, + 82, 41, 40, 83, 41, 40, 84, 41, + 40, 85, 41, 40, 86, 41, 40, 87, + 41, 40, 88, 41, 40, 89, 41, 40, + 90, 41, 12308, 83, 12309, 67, 68, 87, + 90, 55356, 56624, 55356, 56625, 55356, 56626, 55356, + 56627, 55356, 56628, 55356, 56629, 55356, 56630, 55356, + 56631, 55356, 56632, 55356, 56633, 55356, 56634, 55356, + 56635, 55356, 56636, 55356, 56637, 55356, 56638, 55356, + 56639, 55356, 56640, 55356, 56641, 55356, 56642, 55356, + 56643, 55356, 56644, 55356, 56645, 55356, 56646, 55356, + 56647, 55356, 56648, 55356, 56649, 72, 86, 83, + 68, 83, 83, 80, 80, 86, 87, 67, + 55356, 56656, 55356, 56657, 55356, 56658, 55356, 56659, + 55356, 56660, 55356, 56661, 55356, 56662, 55356, 56663, + 55356, 56664, 55356, 56665, 55356, 56666, 55356, 56667, + 55356, 56668, 55356, 56669, 55356, 56670, 55356, 56671, + 55356, 56672, 55356, 56673, 55356, 56674, 55356, 56675, + 55356, 56676, 55356, 56677, 55356, 56678, 55356, 56679, + 55356, 56680, 55356, 56681, 77, 67, 77, 68, + 77, 82, 55356, 56688, 55356, 56689, 55356, 56690, + 55356, 56691, 55356, 56692, 55356, 56693, 55356, 56694, + 55356, 56695, 55356, 56696, 55356, 56697, 55356, 56698, + 55356, 56699, 55356, 56700, 55356, 56701, 55356, 56702, + 55356, 56703, 55356, 56704, 55356, 56705, 55356, 56706, + 55356, 56707, 55356, 56708, 55356, 56709, 55356, 56710, + 55356, 56711, 55356, 56712, 55356, 56713, 68, 74, + 12411, 12363, 12467, 12467, 23383, 21452, 12487, 22810, + 35299, 20132, 26144, 28961, 21069, 24460, 20877, 26032, + 21021, 32066, 36009, 22768, 21561, 28436, 25237, 25429, + 36938, 25351, 25171, 31105, 31354, 21512, 28288, 30003, + 21106, 21942, 37197, 12308, 26412, 12309, 12308, 19977, + 12309, 12308, 20108, 12309, 12308, 23433, 12309, 12308, + 28857, 12309, 12308, 25171, 12309, 12308, 30423, 12309, + 12308, 21213, 12309, 12308, 25943, 12309, 24471, 21487, + 20029, 20024, 20033, 55360, 56610, 20320, 20411, 20482, + 20602, 20633, 20687, 13470, 55361, 56890, 20820, 20836, + 20855, 55361, 56604, 13497, 20839, 55361, 56651, 20887, + 20900, 20172, 20908, 55396, 56799, 20995, 13535, 21051, + 21062, 21111, 13589, 21253, 21254, 21321, 21338, 21363, + 21373, 21375, 55362, 56876, 28784, 21450, 21471, 55362, + 57187, 21483, 21489, 21510, 21662, 21560, 21576, 21608, + 21666, 21750, 21776, 21843, 21859, 21892, 21931, 21939, + 21954, 22294, 22295, 22097, 22132, 22766, 22478, 22516, + 22541, 22411, 22578, 22577, 22700, 55365, 56548, 22770, + 22775, 22790, 22818, 22882, 55365, 57000, 55365, 57066, + 23020, 23067, 23079, 23000, 23142, 14062, 14076, 23304, + 23358, 55366, 56776, 23491, 23512, 23539, 55366, 57112, + 23551, 23558, 24403, 14209, 23648, 23744, 23693, 55367, + 56804, 23875, 55367, 56806, 23918, 23915, 23932, 24033, + 24034, 14383, 24061, 24104, 24125, 24169, 14434, 55368, + 56707, 14460, 24240, 24243, 24246, 55400, 57234, 55368, + 57137, 33281, 24354, 14535, 55372, 57016, 55384, 56794, + 24418, 24427, 14563, 24474, 24525, 24535, 24569, 24705, + 14650, 14620, 55369, 57044, 24775, 24904, 24908, 24954, + 25010, 24996, 25007, 25054, 25104, 25115, 25181, 25265, + 25300, 25424, 55370, 57100, 25405, 25340, 25448, 25475, + 25572, 55370, 57329, 25634, 25541, 25513, 14894, 25705, + 25726, 25757, 25719, 14956, 25964, 55372, 56330, 26083, + 26360, 26185, 15129, 15112, 15076, 20882, 20885, 26368, + 26268, 32941, 17369, 26401, 26462, 26451, 55372, 57283, + 15177, 26618, 26501, 26706, 55373, 56429, 26766, 26655, + 26900, 26946, 27043, 27114, 27304, 55373, 56995, 27355, + 15384, 27425, 55374, 56487, 27476, 15438, 27506, 27551, + 27579, 55374, 56973, 55367, 56587, 55374, 57082, 27726, + 55375, 56508, 27839, 27853, 27751, 27926, 27966, 28009, + 28024, 28037, 55375, 56606, 27956, 28207, 28270, 15667, + 28359, 55375, 57041, 28153, 28526, 55375, 57182, 55375, + 57230, 28614, 28729, 28699, 15766, 28746, 28797, 28791, + 28845, 55361, 56613, 28997, 55376, 56931, 29084, 55376, + 57259, 29224, 29264, 55377, 56840, 29312, 29333, 55377, + 57141, 55378, 56340, 29562, 29579, 16044, 29605, 16056, + 29767, 29788, 29829, 29898, 16155, 29988, 55379, 56374, + 30014, 55379, 56466, 55368, 56735, 30224, 55379, 57249, + 55379, 57272, 55380, 56388, 16380, 16392, 55380, 56563, + 55380, 56562, 55380, 56601, 55380, 56627, 30494, 30495, + 30603, 16454, 16534, 55381, 56349, 30798, 16611, 55381, + 56870, 55381, 56986, 55381, 57029, 31211, 16687, 31306, + 31311, 55382, 56700, 55382, 56999, 31470, 16898, 55382, + 57259, 31686, 31689, 16935, 55383, 56448, 31954, 17056, + 31976, 31971, 32000, 55383, 57222, 32099, 17153, 32199, + 32258, 32325, 17204, 55384, 56872, 55384, 56903, 17241, + 55384, 57049, 32634, 55384, 57150, 32661, 32762, 55385, + 56538, 55385, 56611, 32864, 55385, 56744, 32880, 55372, + 57183, 17365, 32946, 33027, 17419, 33086, 23221, 55385, + 57255, 55385, 57269, 55372, 57235, 55372, 57244, 33284, + 36766, 17515, 33425, 33419, 33437, 21171, 33457, 33459, + 33469, 33510, 55386, 57148, 33565, 33635, 33709, 33571, + 33725, 33767, 33619, 33738, 33740, 33756, 55387, 56374, + 55387, 56683, 55387, 56533, 17707, 34033, 34035, 34070, + 55388, 57290, 34148, 55387, 57132, 17757, 17761, 55387, + 57265, 55388, 56530, 17771, 34384, 34407, 34409, 34473, + 34440, 34574, 34530, 34600, 34667, 34694, 17879, 34785, + 34817, 17913, 34912, 55389, 56935, 35031, 35038, 17973, + 35066, 13499, 55390, 56494, 55390, 56678, 18110, 18119, + 35488, 55391, 56488, 36011, 36033, 36123, 36215, 55391, + 57135, 55362, 56324, 36299, 36284, 36336, 55362, 56542, + 36564, 55393, 56786, 55393, 56813, 37012, 37105, 37137, + 55393, 57134, 37147, 37432, 37591, 37592, 37500, 37881, + 37909, 55394, 57338, 38283, 18837, 38327, 55395, 56695, + 18918, 38595, 23986, 38691, 55396, 56645, 55396, 56858, + 19054, 19062, 38880, 55397, 56330, 19122, 55397, 56470, + 38953, 55397, 56758, 39138, 19251, 39209, 39335, 39362, + 39422, 19406, 55398, 57136, 40000, 40189, 19662, 19693, + 40295, 55400, 56526, 19704, 55400, 56581, 55400, 56846, + 55400, 56977, 19798, 40702, 40709, 40719, 40726, 55401, + 56832, }; + +static const utf8proc_uint16_t utf8proc_stage1table[] = { + 0, 256, 512, 768, 1024, 1280, 1536, + 1792, 2048, 2304, 2560, 2816, 3072, 3328, 3584, + 3840, 4096, 4352, 4608, 4864, 5120, 5376, 5632, + 5888, 6144, 6400, 6656, 6912, 7168, 7424, 7680, + 7936, 8192, 8448, 8704, 8960, 9216, 9472, 9728, + 9984, 10240, 10496, 10752, 11008, 11264, 11520, 11776, + 12032, 12288, 12544, 12800, 13056, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13568, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13824, 13312, 13312, 13312, 14080, 5376, 14336, + 14592, 14848, 15104, 15360, 15616, 15872, 16128, 16384, + 16640, 16896, 17152, 17408, 15872, 16128, 16384, 16640, + 16896, 17152, 17408, 15872, 16128, 16384, 16640, 16896, + 17152, 17408, 15872, 16128, 16384, 16640, 16896, 17152, + 17408, 15872, 16128, 16384, 16640, 16896, 17152, 17408, + 15872, 16128, 16384, 16640, 16896, 17152, 17408, 15872, + 17664, 17920, 17920, 17920, 17920, 17920, 17920, 17920, + 17920, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18432, 18688, 18944, 19200, 19456, 19712, + 19968, 20224, 20480, 20736, 20992, 21248, 21504, 5376, + 21760, 22016, 22272, 22528, 22784, 23040, 23296, 23552, + 23808, 24064, 24320, 24576, 24832, 25088, 25344, 25600, + 25856, 26112, 26368, 26624, 26880, 27136, 27392, 27648, + 27904, 5376, 5376, 5376, 28160, 28416, 28672, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 29184, 5376, 5376, 5376, 5376, 29440, 5376, 5376, + 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, + 5376, 5376, 5376, 5376, 29696, 5376, 5376, 29952, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 30208, 28928, 28928, 28928, 28928, 28928, + 28928, 5376, 5376, 30464, 30720, 28928, 30976, 31232, + 31488, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 31744, 13312, 13312, 13312, 13312, 32000, 32256, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 32512, 13312, 32768, 33024, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 33280, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 33536, 33792, 34048, + 34304, 34560, 34816, 35072, 35328, 35584, 35840, 36096, + 36352, 10240, 10240, 36608, 28928, 28928, 28928, 28928, + 36864, 37120, 37376, 37632, 28928, 37888, 38144, 28928, + 38400, 38656, 38912, 28928, 28928, 39168, 39424, 39680, + 28928, 39936, 40192, 40448, 40704, 40960, 41216, 41472, + 41728, 41984, 42240, 42496, 42752, 28928, 28928, 28928, + 28928, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 43008, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 43264, 43520, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 43776, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 44032, 13312, 13312, 44288, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 44544, 44800, 45056, 28928, 28928, 28928, 28928, + 28928, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 45312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, + 13312, 13312, 13312, 13312, 45568, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 45824, 46080, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 28928, 28928, 28928, 28928, 28928, 28928, 28928, + 28928, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 46336, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 18176, 18176, 18176, 18176, 18176, 18176, 18176, 18176, + 46336, }; + +static const utf8proc_uint16_t utf8proc_stage2table[] = { + 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 3, 2, 4, 5, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 6, 6, 6, + 2, 7, 8, 8, 9, 10, 9, 8, + 8, 11, 12, 8, 13, 14, 15, 14, + 14, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 14, 8, 17, 18, 19, + 8, 8, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 11, 8, 12, 46, + 47, 46, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 11, 74, 12, 74, + 1, 1, 1, 1, 1, 1, 6, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 75, 76, 10, 10, 77, 10, 78, + 76, 79, 80, 81, 82, 74, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 76, + 76, 92, 93, 94, 95, 96, 97, 98, + 76, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, + 122, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, + 353, 349, 349, 349, 349, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 349, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 598, 599, 599, 599, 599, + 599, 600, 601, 46, 46, 602, 46, 598, + 603, 598, 603, 603, 603, 598, 603, 598, + 598, 604, 599, 46, 46, 46, 46, 46, + 46, 605, 606, 607, 608, 609, 610, 46, + 602, 611, 612, 613, 614, 615, 46, 46, + 46, 46, 46, 46, 46, 598, 46, 599, + 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, + 46, 616, 616, 616, 616, 616, 617, 616, + 616, 616, 616, 616, 616, 616, 617, 617, + 616, 617, 616, 617, 616, 616, 618, 619, + 619, 619, 619, 618, 620, 619, 619, 619, + 619, 619, 621, 621, 622, 622, 622, 622, + 623, 623, 619, 619, 619, 619, 622, 622, + 619, 622, 622, 619, 619, 624, 624, 624, + 624, 625, 619, 619, 619, 619, 617, 617, + 617, 626, 627, 616, 628, 629, 630, 617, + 619, 619, 619, 617, 617, 617, 619, 619, + 631, 617, 617, 617, 619, 619, 619, 619, + 617, 618, 619, 619, 617, 632, 633, 633, + 632, 633, 633, 632, 617, 617, 617, 617, + 617, 617, 617, 617, 617, 617, 617, 617, + 617, 634, 635, 636, 637, 638, 46, 639, + 640, 0, 0, 641, 642, 643, 644, 645, + 646, 0, 0, 0, 0, 647, 648, 649, + 650, 651, 652, 653, 0, 654, 0, 655, + 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, + 672, 673, 674, 0, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 738, 739, 740, 741, 742, + 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 74, + 758, 759, 760, 761, 762, 763, 764, 765, + 766, 767, 768, 769, 770, 771, 772, 773, + 774, 775, 776, 777, 778, 779, 780, 781, + 782, 783, 784, 785, 786, 787, 788, 789, + 790, 791, 792, 793, 794, 795, 796, 797, + 798, 799, 800, 801, 802, 803, 804, 805, + 806, 807, 808, 809, 810, 811, 812, 813, + 814, 815, 816, 817, 818, 819, 820, 821, + 822, 823, 824, 825, 826, 827, 828, 829, + 830, 831, 832, 833, 834, 835, 836, 837, + 838, 839, 840, 841, 842, 843, 844, 845, + 846, 847, 848, 849, 850, 851, 852, 853, + 854, 855, 856, 857, 858, 859, 860, 861, + 862, 863, 864, 865, 866, 867, 868, 869, + 870, 871, 872, 873, 874, 875, 876, 877, + 878, 879, 880, 881, 882, 883, 884, 885, + 886, 887, 888, 889, 890, 891, 892, 893, + 894, 895, 896, 897, 898, 898, 898, 898, + 898, 899, 899, 900, 901, 902, 903, 904, + 905, 906, 907, 908, 909, 910, 911, 912, + 913, 914, 915, 916, 917, 918, 919, 920, + 921, 922, 923, 924, 925, 926, 927, 928, + 929, 930, 931, 932, 933, 934, 935, 936, + 937, 938, 939, 940, 941, 942, 943, 944, + 945, 946, 947, 948, 949, 950, 951, 952, + 953, 954, 955, 956, 957, 958, 959, 960, + 961, 962, 963, 964, 965, 966, 967, 968, + 969, 970, 971, 972, 973, 974, 975, 976, + 977, 978, 979, 980, 981, 982, 983, 984, + 985, 986, 987, 988, 989, 990, 991, 992, + 993, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, + 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, + 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, + 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, + 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, + 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, + 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, + 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, + 1065, 0, 1066, 1067, 1068, 1069, 1070, 1071, + 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, + 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, + 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, + 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, + 0, 0, 599, 1104, 1104, 1104, 1104, 1104, + 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, + 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, + 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, + 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, + 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, + 1144, 1145, 1104, 1146, 0, 0, 78, 78, + 10, 0, 1147, 898, 898, 898, 898, 1147, + 898, 898, 898, 1148, 1147, 898, 898, 898, + 898, 898, 898, 1147, 1147, 1147, 1147, 1147, + 1147, 898, 898, 1147, 898, 898, 1148, 1149, + 898, 1150, 1151, 1152, 1153, 1154, 1155, 1156, + 1157, 1158, 1159, 1159, 1160, 1161, 1162, 1163, + 1164, 1165, 1166, 1167, 1165, 898, 1147, 1165, + 1158, 0, 0, 0, 0, 0, 0, 0, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 0, 0, 0, 0, + 1168, 1168, 1168, 1168, 1165, 1165, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1169, 1169, 1169, 1169, 1169, 1169, 74, + 74, 1170, 9, 9, 1171, 14, 1172, 78, + 78, 898, 898, 898, 898, 898, 898, 898, + 898, 1173, 1174, 1175, 1172, 1176, 1172, 1172, + 1172, 1177, 1177, 1178, 1179, 1180, 1181, 1182, + 1183, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1184, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1185, 1177, 1186, 1187, 1188, 1189, 1173, + 1174, 1175, 1190, 1191, 1192, 1192, 1193, 1147, + 898, 898, 898, 898, 898, 1147, 898, 898, + 1147, 1194, 1194, 1194, 1194, 1194, 1194, 1194, + 1194, 1194, 1194, 9, 1195, 1195, 1172, 1177, + 1177, 1196, 1177, 1177, 1177, 1177, 1197, 1198, + 1199, 1200, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1201, 1202, 1203, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1204, 1205, 1172, 1206, 898, + 898, 898, 898, 898, 898, 898, 1169, 78, + 898, 898, 898, 898, 1147, 898, 1184, 1184, + 898, 898, 78, 1147, 898, 898, 1147, 1177, + 1177, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 1177, 1177, 1177, 1207, 1207, + 1177, 1172, 1172, 1172, 1172, 1172, 1172, 1172, + 1172, 1172, 1172, 1172, 1172, 1172, 1172, 0, + 1208, 1177, 1209, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 898, 1147, 898, 898, 1147, 898, 898, + 1147, 1147, 1147, 898, 1147, 1147, 898, 1147, + 898, 898, 898, 1147, 898, 1147, 898, 1147, + 898, 1147, 898, 898, 0, 0, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1177, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 898, 898, 898, 898, + 898, 898, 898, 1147, 898, 1212, 1212, 78, + 8, 8, 8, 1212, 0, 0, 1147, 1213, + 1213, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 898, + 898, 898, 898, 1212, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 1212, 898, 898, + 898, 1212, 898, 898, 898, 898, 898, 0, + 0, 1165, 1165, 1165, 1165, 1165, 1165, 1165, + 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1147, 1147, 1147, 0, 0, 1165, + 0, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 0, 0, 0, 0, + 0, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1214, 1177, 1177, 1177, 1177, 1177, 1177, + 0, 1169, 1169, 0, 0, 0, 0, 0, + 898, 898, 1147, 1147, 1147, 898, 898, 898, + 898, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1184, 898, 898, 898, 898, 898, + 1147, 1147, 1147, 1147, 1147, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 1169, 1147, 898, 898, 1147, + 898, 898, 1147, 898, 898, 898, 1147, 1147, + 1147, 1187, 1188, 1189, 898, 898, 898, 1147, + 898, 898, 1147, 1147, 898, 898, 898, 898, + 898, 1210, 1210, 1210, 1215, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1217, 1218, 1216, 1216, 1216, 1216, 1216, + 1216, 1219, 1220, 1216, 1221, 1222, 1216, 1216, + 1216, 1216, 1216, 1210, 1215, 1223, 349, 1215, + 1215, 1215, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1215, 1215, 1215, 1215, 1224, 1215, + 1215, 349, 898, 1147, 898, 898, 1210, 1210, + 1210, 1225, 1226, 1227, 1228, 1229, 1230, 1231, + 1232, 349, 349, 1210, 1210, 1104, 1104, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1104, 599, 349, 349, 349, 349, 349, + 349, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 349, 1210, 1215, 1215, 0, 349, 349, + 349, 349, 349, 349, 349, 349, 0, 0, + 349, 349, 0, 0, 349, 349, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 0, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 0, 1216, 0, 0, 0, 1216, + 1216, 1216, 1216, 0, 0, 1234, 349, 1235, + 1215, 1215, 1210, 1210, 1210, 1210, 0, 0, + 1236, 1215, 0, 0, 1237, 1238, 1224, 349, + 0, 0, 0, 0, 0, 0, 0, 0, + 1235, 0, 0, 0, 0, 1239, 1240, 0, + 1241, 349, 349, 1210, 1210, 0, 0, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1216, 1216, 10, 10, 1242, 1242, 1242, + 1242, 1242, 1242, 897, 10, 349, 1104, 898, + 0, 0, 1210, 1210, 1215, 0, 349, 349, + 349, 349, 349, 349, 0, 0, 0, 0, + 349, 349, 0, 0, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 349, 349, 349, 349, 349, + 349, 349, 0, 349, 1243, 0, 349, 1244, + 0, 349, 349, 0, 0, 1234, 0, 1215, + 1215, 1215, 1210, 1210, 0, 0, 0, 0, + 1210, 1210, 0, 0, 1210, 1210, 1245, 0, + 0, 0, 1210, 0, 0, 0, 0, 0, + 0, 0, 1246, 1247, 1248, 349, 0, 1249, + 0, 0, 0, 0, 0, 0, 0, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1210, 1210, 349, 349, 349, 1210, 1104, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1210, 1210, 1215, 0, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 0, + 349, 349, 349, 0, 349, 349, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 0, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 0, 1216, 1216, 0, 1216, 1216, + 1216, 1216, 1216, 0, 0, 1234, 349, 1215, + 1215, 1215, 1210, 1210, 1210, 1210, 1210, 0, + 1210, 1210, 1215, 0, 1215, 1215, 1224, 0, + 0, 349, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 1210, 1210, 0, 0, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1104, 10, 0, 0, 0, 0, 0, + 0, 0, 1216, 1210, 1210, 1210, 1210, 1210, + 1210, 0, 1210, 1215, 1215, 0, 349, 349, + 349, 349, 349, 349, 349, 349, 0, 0, + 349, 349, 0, 0, 349, 349, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 0, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 0, 1216, 1216, 0, 1216, 1216, + 1216, 1216, 1216, 0, 0, 1234, 349, 1235, + 1210, 1215, 1210, 1210, 1210, 1210, 0, 0, + 1250, 1251, 0, 0, 1252, 1253, 1224, 0, + 0, 0, 0, 0, 0, 0, 1210, 1254, + 1235, 0, 0, 0, 0, 1255, 1256, 0, + 1216, 349, 349, 1210, 1210, 0, 0, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 897, 1216, 1242, 1242, 1242, 1242, 1242, + 1242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1210, 349, 0, 349, 349, + 349, 349, 349, 349, 0, 0, 0, 349, + 349, 349, 0, 1257, 349, 1258, 349, 0, + 0, 0, 349, 349, 0, 349, 0, 349, + 349, 0, 0, 0, 349, 349, 0, 0, + 0, 349, 349, 349, 0, 0, 0, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 0, 0, 0, 0, 1235, + 1215, 1210, 1215, 1215, 0, 0, 0, 1259, + 1260, 1215, 0, 1261, 1262, 1263, 1245, 0, + 0, 349, 0, 0, 0, 0, 0, 0, + 1235, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1242, 1242, 1242, 78, 78, 78, 78, + 78, 78, 10, 78, 0, 0, 0, 0, + 0, 1210, 1215, 1215, 1215, 1210, 349, 349, + 349, 349, 349, 349, 349, 349, 0, 349, + 349, 349, 0, 349, 349, 349, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 0, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 1216, 0, 0, 1234, 349, 1210, + 1210, 1210, 1215, 1215, 1215, 1215, 0, 1264, + 1210, 1265, 0, 1210, 1210, 1210, 1224, 0, + 0, 0, 0, 0, 0, 0, 1266, 1267, + 0, 1216, 1216, 1216, 0, 0, 349, 0, + 0, 349, 349, 1210, 1210, 0, 0, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 0, 0, 0, 0, 0, 0, 0, + 1104, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 897, 349, 1210, 1215, 1215, 1104, 349, 349, + 349, 349, 349, 349, 349, 349, 0, 349, + 349, 349, 0, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 0, 349, 349, + 349, 349, 349, 0, 0, 1234, 349, 1215, + 1269, 1270, 1215, 1235, 1215, 1215, 0, 1271, + 1272, 1273, 0, 1274, 1275, 1210, 1245, 0, + 0, 0, 0, 0, 0, 0, 1235, 1235, + 0, 0, 0, 0, 0, 0, 349, 349, + 0, 349, 349, 1210, 1210, 0, 0, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 0, 349, 349, 1215, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1210, 1210, 1215, 1215, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 0, 349, + 349, 349, 0, 349, 349, 349, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 1216, 1216, 1245, 1245, 349, 1235, + 1215, 1215, 1210, 1210, 1210, 1210, 0, 1276, + 1277, 1215, 0, 1278, 1279, 1280, 1224, 1281, + 897, 0, 0, 0, 0, 349, 349, 349, + 1235, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 349, 349, 349, 1210, 1210, 0, 0, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 897, 349, 349, 349, 349, 349, + 349, 0, 1210, 1215, 1215, 0, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 0, 0, 0, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 0, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 0, 349, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 0, 0, 1282, 0, 0, 0, 0, + 1235, 1215, 1215, 1210, 1210, 1210, 0, 1210, + 0, 1215, 1283, 1284, 1215, 1285, 1286, 1287, + 1235, 0, 0, 0, 0, 0, 0, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 0, 0, 1215, 1215, 1104, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 1210, 349, 1288, 1210, 1210, 1210, + 1210, 1289, 1289, 1245, 0, 0, 0, 0, + 10, 349, 349, 349, 349, 349, 349, 599, + 1210, 1290, 1290, 1290, 1290, 1210, 1210, 1210, + 1104, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1104, 1104, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 349, 349, 0, 349, 0, 349, + 349, 349, 349, 349, 0, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 0, 349, 0, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 1210, 349, 1291, 1210, 1210, 1210, + 1210, 1292, 1292, 1245, 1210, 1210, 349, 0, + 0, 349, 349, 349, 349, 349, 0, 599, + 0, 1293, 1293, 1293, 1293, 1210, 1210, 1210, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 1294, 1295, 349, + 349, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 897, 897, 897, 1104, 1104, 1104, + 1104, 1104, 1104, 1104, 1104, 1296, 1104, 1104, + 1104, 1104, 1104, 1104, 897, 1104, 897, 897, + 897, 1147, 1147, 897, 897, 897, 897, 897, + 897, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 897, 1147, 897, + 1147, 897, 1297, 11, 12, 11, 12, 1215, + 1215, 349, 349, 349, 1298, 349, 349, 349, + 349, 0, 349, 349, 349, 349, 1299, 349, + 349, 349, 349, 1300, 349, 349, 349, 349, + 1301, 349, 349, 349, 349, 1302, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 1303, 349, 349, 349, 0, 0, + 0, 0, 1304, 1305, 1306, 1307, 1308, 1309, + 1310, 1311, 1312, 1305, 1305, 1305, 1305, 1210, + 1215, 1305, 1313, 898, 898, 1245, 1104, 898, + 898, 349, 349, 349, 349, 349, 1210, 1210, + 1210, 1210, 1210, 1210, 1314, 1210, 1210, 1210, + 1210, 0, 1210, 1210, 1210, 1210, 1315, 1210, + 1210, 1210, 1210, 1316, 1210, 1210, 1210, 1210, + 1317, 1210, 1210, 1210, 1210, 1318, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1319, 1210, 1210, 1210, 0, 897, + 897, 897, 897, 897, 897, 897, 897, 1147, + 897, 897, 897, 897, 897, 897, 0, 897, + 897, 1104, 1104, 1104, 1104, 1104, 897, 897, + 897, 897, 1104, 1104, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 1320, 1321, + 349, 349, 349, 349, 1322, 1322, 1210, 1254, + 1210, 1210, 1215, 1210, 1210, 1210, 1210, 1210, + 1234, 1322, 1245, 1245, 1215, 1215, 1210, 1210, + 349, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1104, 1104, 1104, 1104, 1104, + 1104, 349, 349, 349, 349, 349, 349, 1215, + 1215, 1210, 1210, 349, 349, 349, 349, 1210, + 1210, 1210, 349, 1322, 1322, 1322, 349, 349, + 1322, 1322, 1322, 1322, 1322, 1322, 1322, 349, + 349, 349, 1210, 1210, 1210, 1210, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 1210, 1322, 1215, 1210, 1210, + 1322, 1322, 1322, 1322, 1322, 1322, 1147, 349, + 1322, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1322, 1322, 1322, 1210, 897, + 897, 1323, 1324, 1325, 1326, 1327, 1328, 1329, + 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, + 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, + 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, + 1354, 1355, 1356, 1357, 1358, 1359, 1360, 0, + 1361, 0, 0, 0, 0, 0, 1362, 0, + 0, 1363, 1364, 1365, 1366, 1367, 1368, 1369, + 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, + 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, + 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, + 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, + 1402, 1403, 1404, 1405, 1104, 1406, 1407, 1408, + 1409, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1411, 1412, 1413, 1413, 1413, 1413, 1413, 1413, + 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, + 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, + 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, + 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, + 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, + 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, + 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, + 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, + 1413, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 349, 349, 349, 349, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 0, 349, 349, 349, 349, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 349, 349, 349, 349, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 349, 349, 349, 349, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 0, 349, 349, 349, 349, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 349, 349, 349, 349, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 0, 0, 898, 898, + 898, 1104, 1104, 1104, 1104, 1104, 1104, 1104, + 1104, 1104, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 0, 0, 0, 0, 0, + 0, 1415, 1416, 1417, 1418, 1419, 1420, 1421, + 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, + 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, + 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, + 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, + 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, + 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, + 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, + 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, + 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, + 1494, 1495, 1496, 1497, 1498, 1499, 1500, 0, + 0, 1501, 1502, 1503, 1504, 1505, 1506, 0, + 0, 1146, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 897, 1104, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 7, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 11, 12, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 1104, 1104, 1104, 1507, + 1507, 1507, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 1210, 1210, 1245, 1508, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 1210, 1210, 1508, 1104, 1104, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 1210, 1210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 0, 349, + 349, 349, 0, 1210, 1210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 1509, 1509, 1215, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1215, + 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1210, + 1215, 1215, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1245, 1210, 1104, 1104, 1104, + 599, 1104, 1104, 1104, 10, 349, 898, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 0, 0, 0, 0, 0, + 0, 8, 8, 8, 8, 8, 8, 1146, + 8, 8, 8, 8, 1509, 1509, 1509, 1510, + 1509, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 599, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 1210, 1210, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 1149, 349, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 0, 1210, 1210, 1210, 1215, 1215, 1215, 1215, + 1210, 1210, 1215, 1215, 1215, 0, 0, 0, + 0, 1215, 1215, 1210, 1215, 1215, 1215, 1215, + 1215, 1215, 1148, 898, 1147, 0, 0, 0, + 0, 78, 0, 0, 0, 8, 8, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 0, + 0, 349, 349, 349, 349, 349, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 0, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1242, 0, 0, 0, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 898, 1147, 1215, 1215, 1210, 0, 0, 1104, + 1104, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 1215, 1210, + 1215, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 0, 1245, 1322, 1210, 1322, 1322, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1215, 1215, + 1215, 1215, 1215, 1215, 1210, 1210, 898, 898, + 898, 898, 898, 898, 898, 898, 0, 0, + 1147, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 1104, 1104, 1104, 1104, 1104, 1104, 1104, + 599, 1104, 1104, 1104, 1104, 1104, 1104, 0, + 0, 898, 898, 898, 898, 898, 1147, 1147, + 1147, 1147, 1147, 1147, 898, 898, 1147, 899, + 1147, 1147, 898, 898, 1147, 1147, 898, 898, + 898, 898, 898, 1147, 898, 898, 898, 898, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1210, 1210, 1210, 1210, 1215, 1511, 1512, + 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, + 349, 349, 1521, 1522, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 1234, 1235, 1210, + 1210, 1210, 1210, 1523, 1524, 1525, 1526, 1527, + 1528, 1529, 1530, 1531, 1532, 1508, 349, 349, + 349, 349, 349, 349, 349, 349, 0, 1104, + 1104, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1104, 1104, 1104, 1104, 1104, + 1104, 1104, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 898, 1147, 898, 898, + 898, 898, 898, 898, 898, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 1104, 1104, + 1104, 1210, 1210, 1215, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 1215, 1210, 1210, 1210, 1210, 1215, + 1215, 1210, 1210, 1508, 1245, 1210, 1210, 349, + 349, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 1234, + 1215, 1210, 1210, 1215, 1215, 1215, 1210, 1215, + 1210, 1210, 1210, 1508, 1508, 0, 0, 0, + 0, 0, 0, 0, 0, 1104, 1104, 1104, + 1104, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 1215, 1215, 1215, + 1215, 1215, 1215, 1215, 1215, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1215, 1215, 1210, + 1234, 0, 0, 0, 1104, 1104, 1104, 1104, + 1104, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 349, 349, + 349, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 599, 599, 599, 599, 599, 599, 1104, + 1104, 1533, 1534, 1535, 1536, 1537, 1537, 1538, + 1539, 1540, 1541, 1542, 0, 0, 0, 0, + 0, 1543, 1544, 1545, 1546, 1547, 1548, 1549, + 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, + 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, + 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, + 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, + 1582, 1583, 1584, 1585, 0, 0, 1586, 1587, + 1588, 1104, 1104, 1104, 1104, 1104, 1104, 1104, + 1104, 0, 0, 0, 0, 0, 0, 0, + 0, 898, 898, 898, 1104, 1589, 1147, 1147, + 1147, 1147, 1147, 898, 898, 1147, 1147, 1147, + 1147, 898, 1215, 1589, 1589, 1589, 1589, 1589, + 1589, 1589, 349, 349, 349, 349, 1147, 349, + 349, 349, 349, 349, 349, 898, 349, 349, + 1215, 898, 898, 349, 0, 0, 0, 0, + 0, 1590, 1591, 1592, 1593, 1594, 1595, 1596, + 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, + 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, + 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, + 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, + 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, + 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, + 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, + 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, + 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, + 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, + 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, + 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, + 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, + 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, + 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, + 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, + 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, + 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, + 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, + 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, + 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, + 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, + 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, + 1781, 898, 898, 1147, 898, 898, 898, 898, + 898, 898, 898, 1147, 898, 898, 1782, 1783, + 1147, 1784, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 1785, + 1149, 1149, 1147, 1786, 898, 1787, 1147, 898, + 1147, 1788, 1789, 1790, 1791, 1792, 1793, 1794, + 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, + 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, + 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, + 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, + 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, + 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, + 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, + 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, + 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, + 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, + 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, + 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, + 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, + 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, + 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, + 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, + 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, + 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, + 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, + 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, + 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, + 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, + 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, + 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, + 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, + 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, + 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, + 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, + 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, + 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, + 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, + 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, + 2059, 2060, 2061, 2062, 2063, 2064, 2065, 0, + 0, 2066, 2067, 2068, 2069, 2070, 2071, 0, + 0, 2072, 2073, 2074, 2075, 2076, 2077, 2078, + 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, + 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, + 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, + 2103, 2104, 2105, 2106, 2107, 2108, 2109, 0, + 0, 2110, 2111, 2112, 2113, 2114, 2115, 0, + 0, 2116, 2117, 2118, 2119, 2120, 2121, 2122, + 2123, 0, 2124, 0, 2125, 0, 2126, 0, + 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, + 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, + 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, + 2151, 2152, 2153, 2154, 2155, 2156, 2157, 0, + 0, 2158, 2159, 2160, 2161, 2162, 2163, 2164, + 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, + 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, + 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, + 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, + 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, + 2205, 2206, 2207, 2208, 2209, 2210, 0, 2211, + 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, + 2220, 2221, 2222, 2223, 2224, 2225, 0, 2226, + 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, + 2235, 2236, 2237, 2238, 2239, 0, 0, 2240, + 2241, 2242, 2243, 2244, 2245, 0, 2246, 2247, + 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, + 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, + 2264, 0, 0, 2265, 2266, 2267, 0, 2268, + 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, + 0, 2277, 2278, 2279, 2279, 2279, 2279, 2279, + 2280, 2279, 2279, 2279, 1510, 2281, 2282, 2283, + 2284, 2285, 2286, 1146, 2285, 2285, 2285, 76, + 2287, 2288, 2289, 2290, 2291, 2288, 2289, 2290, + 2291, 76, 76, 76, 8, 2292, 2293, 2294, + 76, 2295, 2296, 2297, 2298, 2299, 2300, 2301, + 75, 2302, 9, 2302, 2303, 2304, 76, 2305, + 2306, 8, 82, 95, 76, 2307, 8, 2308, + 47, 47, 8, 8, 8, 2309, 11, 12, + 2310, 2311, 2312, 8, 8, 8, 8, 8, + 8, 8, 8, 74, 8, 47, 8, 8, + 2313, 8, 8, 8, 8, 8, 8, 8, + 2279, 1510, 1510, 1510, 1510, 1510, 0, 2314, + 2315, 2316, 2317, 1510, 1510, 1510, 1510, 1510, + 1510, 2318, 2319, 0, 0, 2320, 2321, 2322, + 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, + 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, + 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, + 0, 2347, 2348, 2349, 2350, 2351, 2352, 2353, + 2354, 2355, 2356, 2357, 2358, 2359, 0, 0, + 0, 10, 10, 10, 10, 10, 10, 10, + 10, 2360, 10, 10, 10, 77, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 898, 898, 1589, 1589, 898, 898, 898, + 898, 1589, 1589, 1589, 898, 898, 899, 899, + 899, 899, 898, 899, 899, 899, 1589, 1589, + 898, 1147, 898, 1589, 1589, 1147, 1147, 1147, + 1147, 898, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2361, 2362, 2363, 2364, 78, 2365, 2366, + 2367, 78, 2368, 2369, 2370, 2371, 2372, 2373, + 2374, 2375, 2376, 2377, 2378, 78, 2379, 2380, + 78, 74, 2381, 2382, 2383, 2384, 2385, 78, + 78, 2386, 2387, 2388, 78, 2389, 78, 2390, + 78, 2391, 78, 2392, 2393, 2394, 2395, 2396, + 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, + 2405, 2406, 2407, 78, 2408, 2409, 2410, 2411, + 2412, 2413, 74, 74, 74, 74, 2414, 2415, + 2416, 2417, 2418, 78, 74, 78, 78, 2419, + 897, 2420, 2421, 2422, 2423, 2424, 2425, 2426, + 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, + 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, + 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, + 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, + 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, + 2467, 1507, 1507, 1507, 2468, 2469, 1507, 1507, + 1507, 1507, 2470, 78, 78, 0, 0, 0, + 0, 2471, 122, 2472, 122, 2473, 84, 84, + 84, 84, 84, 2474, 2475, 78, 78, 78, + 78, 74, 78, 78, 74, 78, 78, 74, + 78, 78, 80, 80, 78, 78, 78, 2476, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 2477, 2477, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 2478, 2479, + 2480, 2481, 78, 2482, 78, 2483, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 2477, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 122, 2484, 2485, 2486, 2487, 74, 74, + 122, 2488, 2489, 2484, 2490, 2491, 2484, 74, + 122, 74, 2485, 13, 2492, 74, 2485, 2484, + 74, 74, 74, 2485, 2484, 2484, 2485, 122, + 2485, 2485, 2484, 2484, 2493, 2494, 2495, 2496, + 122, 122, 122, 122, 2485, 2497, 2498, 2485, + 2499, 2500, 2484, 2484, 2484, 122, 122, 122, + 122, 74, 2484, 74, 2484, 2501, 2485, 2484, + 2484, 2484, 2502, 2484, 2503, 2504, 2505, 2484, + 2506, 2507, 2508, 2484, 2484, 2485, 2509, 74, + 74, 74, 74, 2485, 2484, 2484, 2484, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 2484, 2510, 2511, 2512, 74, 2513, 2514, 2485, + 2485, 2484, 2484, 2485, 2485, 74, 2515, 2516, + 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, + 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2484, + 2484, 2532, 2533, 2534, 2535, 2536, 2537, 2538, + 2539, 2540, 2541, 2484, 2484, 2484, 74, 74, + 2484, 2484, 2542, 2543, 74, 74, 122, 74, + 74, 2484, 122, 74, 74, 74, 74, 74, + 74, 74, 74, 2544, 2484, 74, 122, 2484, + 2484, 2545, 2546, 2484, 2547, 2548, 2549, 2550, + 2551, 2484, 2484, 2552, 2553, 2554, 2555, 2484, + 2484, 2484, 74, 74, 74, 74, 74, 2484, + 2485, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 2484, 2484, 2484, 2484, 2484, 74, + 74, 2484, 2484, 74, 74, 74, 74, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 2556, 2557, 2558, 2559, 2484, 2484, 2484, + 2484, 2484, 2484, 2560, 2561, 2562, 2563, 74, + 74, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 78, 78, 78, 78, 78, 78, 78, + 78, 11, 12, 11, 12, 78, 78, 78, + 78, 78, 78, 2477, 78, 78, 78, 78, + 78, 78, 78, 2564, 2564, 78, 78, 78, + 78, 2484, 2484, 78, 78, 78, 78, 78, + 78, 80, 2565, 2566, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 78, 74, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 80, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 897, 78, + 78, 78, 78, 78, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 80, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 74, 74, 74, + 74, 74, 74, 78, 78, 78, 78, 78, + 78, 78, 2564, 2564, 2564, 2564, 80, 80, + 80, 2564, 80, 80, 2564, 78, 78, 78, + 78, 80, 80, 80, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2567, 2568, 2569, 2570, 2571, 2572, 2573, + 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, + 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, + 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, + 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, + 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, + 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, + 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, + 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, + 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, + 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, + 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, + 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, + 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, + 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, + 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, + 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, + 2702, 2703, 2704, 2705, 2706, 2706, 2706, 2706, + 2706, 2706, 2706, 2706, 2706, 2706, 2706, 2706, + 2706, 2706, 2706, 2706, 2706, 2706, 2706, 2706, + 2706, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 78, 78, 78, + 78, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, + 2477, 78, 78, 2477, 2477, 2477, 2477, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 2477, 2477, 78, 2477, 2477, 2477, 2477, + 2477, 2477, 2477, 80, 80, 78, 78, 78, + 78, 78, 78, 2477, 2477, 78, 78, 84, + 122, 78, 78, 78, 78, 2477, 2477, 78, + 78, 84, 122, 78, 78, 78, 78, 2477, + 2477, 2477, 78, 78, 2477, 78, 78, 2477, + 2477, 2477, 2477, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 2477, 2477, 2477, 2477, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 2477, 78, 78, 78, 78, 78, 78, 78, + 78, 74, 74, 74, 2707, 2707, 2708, 2708, + 74, 80, 80, 80, 80, 80, 84, 2477, + 80, 80, 84, 80, 80, 80, 80, 84, + 84, 80, 80, 80, 78, 2564, 2564, 80, + 80, 80, 80, 80, 80, 84, 80, 84, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 80, 80, 80, 80, 80, 80, 80, + 80, 84, 80, 84, 80, 80, 80, 80, + 80, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 84, 84, 80, 84, 84, 84, 80, + 84, 84, 84, 84, 80, 84, 84, 80, + 2709, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 2564, 80, 80, 80, 80, 80, 80, 78, + 78, 78, 78, 2710, 2710, 2710, 2710, 2710, + 2710, 80, 80, 80, 2564, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 84, + 84, 80, 2564, 80, 80, 80, 80, 80, + 80, 80, 80, 2564, 2564, 2711, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 2564, 2564, + 84, 80, 80, 80, 80, 2564, 2564, 84, + 84, 84, 84, 84, 84, 84, 84, 2564, + 84, 84, 84, 84, 84, 2564, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 80, 84, 80, 80, 80, + 80, 84, 84, 2564, 84, 84, 84, 84, + 84, 84, 84, 2564, 2564, 84, 2564, 84, + 84, 84, 84, 2564, 84, 84, 2564, 84, + 84, 80, 80, 80, 80, 80, 2564, 78, + 78, 80, 80, 2564, 2564, 80, 80, 80, + 80, 80, 80, 80, 78, 80, 78, 80, + 78, 78, 78, 78, 78, 78, 80, 78, + 78, 78, 80, 78, 78, 78, 78, 78, + 78, 2564, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 80, 80, 78, 78, + 78, 78, 78, 78, 78, 78, 2477, 78, + 78, 78, 78, 78, 78, 80, 78, 78, + 80, 78, 78, 78, 78, 2564, 78, 2564, + 78, 78, 78, 78, 2564, 2564, 2564, 78, + 2564, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 80, 80, 80, 80, + 80, 11, 12, 11, 12, 11, 12, 11, + 12, 11, 12, 11, 12, 11, 12, 2706, + 2706, 2706, 2706, 2706, 2706, 2706, 2706, 2706, + 2706, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 1268, 1268, 78, 2564, 2564, + 2564, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 80, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 2564, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 2564, 2484, 74, 74, 2484, 2484, 11, 12, + 74, 2484, 2484, 74, 2484, 2484, 2484, 74, + 74, 74, 74, 74, 2484, 2484, 2484, 2484, + 74, 74, 74, 74, 74, 2484, 2484, 2484, + 74, 74, 74, 2484, 2484, 2484, 2484, 11, + 12, 11, 12, 11, 12, 11, 12, 11, + 12, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 2707, 2707, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 11, 12, 11, 12, + 11, 12, 11, 12, 11, 12, 11, 12, + 11, 12, 11, 12, 11, 12, 11, 12, + 11, 12, 74, 74, 2484, 2484, 2484, 2484, + 2484, 2484, 74, 2484, 2484, 2484, 2484, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 74, 74, 74, 74, 74, 74, 74, + 74, 2484, 74, 74, 74, 74, 74, 74, + 74, 2484, 2484, 2484, 2484, 2484, 2484, 74, + 74, 74, 2484, 74, 74, 74, 74, 2484, + 2484, 2484, 2484, 2484, 74, 2484, 2484, 74, + 74, 11, 12, 11, 12, 2484, 74, 74, + 74, 74, 2484, 74, 2484, 2484, 2484, 74, + 74, 2484, 2484, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 2484, 2484, 2484, + 2484, 2484, 2484, 74, 74, 11, 12, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 2484, 2484, 2712, 2484, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 74, 2484, + 2484, 2484, 2484, 74, 74, 2484, 74, 2484, + 74, 74, 2484, 74, 2484, 2484, 2484, 2484, + 74, 74, 74, 74, 74, 2484, 2484, 74, + 74, 74, 74, 74, 74, 2484, 2484, 2484, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 2484, 2484, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 2484, 2484, 74, + 74, 74, 74, 2484, 2484, 2484, 2484, 74, + 2484, 2484, 74, 74, 2484, 2713, 2714, 2715, + 74, 74, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 2484, 2484, 2484, 2484, 74, 74, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 74, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, + 74, 74, 74, 74, 74, 2716, 74, 2484, + 74, 74, 74, 2484, 2484, 2484, 2484, 2484, + 74, 74, 74, 74, 74, 2484, 2484, 2484, + 74, 74, 74, 74, 2484, 74, 74, 74, + 2484, 2484, 2484, 2484, 2484, 74, 2484, 74, + 74, 78, 78, 78, 78, 78, 80, 80, + 80, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 2564, 2564, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 78, 78, + 74, 74, 74, 74, 74, 74, 78, 78, + 78, 2564, 78, 78, 78, 78, 2564, 2477, + 2477, 2477, 2477, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 0, 0, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 0, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 2717, + 78, 2718, 2719, 2720, 2721, 2722, 2723, 2724, + 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, + 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, + 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, + 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, + 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, + 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, + 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, + 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, + 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, + 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, + 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, + 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, + 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, + 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, + 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, + 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, + 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, + 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, + 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, + 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, + 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, + 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, + 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, + 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, + 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, + 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, + 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, + 2941, 2942, 2943, 2944, 2945, 2946, 78, 78, + 78, 78, 78, 78, 2947, 2948, 2949, 2950, + 898, 898, 898, 2951, 2952, 0, 0, 0, + 0, 0, 8, 8, 8, 8, 1268, 8, + 8, 2953, 2954, 2955, 2956, 2957, 2958, 2959, + 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, + 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, + 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, + 2984, 2985, 2986, 2987, 2988, 2989, 2990, 0, + 2991, 0, 0, 0, 0, 0, 2992, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 0, 0, 0, 0, 0, 0, 0, + 2993, 1104, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1245, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 898, + 898, 8, 8, 82, 95, 82, 95, 8, + 8, 8, 82, 95, 8, 82, 95, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 1146, 8, 8, 1146, 8, 82, 95, 8, + 8, 82, 95, 11, 12, 11, 12, 11, + 12, 11, 12, 8, 8, 8, 8, 8, + 598, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 1146, 1146, 8, 8, 8, + 8, 1146, 8, 2290, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 78, 78, 8, 8, 8, 11, 12, + 11, 12, 11, 12, 11, 12, 1146, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 0, 2710, 2710, 2710, 2710, + 2994, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2995, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2996, 2997, 2998, 2999, 3000, 3001, 3002, + 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, + 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, + 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, + 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, + 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, + 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, + 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, + 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, + 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, + 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, + 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, + 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, + 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, + 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, + 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, + 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, + 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, + 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, + 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, + 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, + 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, + 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, + 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, + 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, + 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, + 3203, 3204, 3205, 3206, 3207, 3208, 3209, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 3210, 3211, 3211, 3211, 2710, 3212, 3213, + 3214, 3215, 3216, 3215, 3216, 3215, 3216, 3215, + 3216, 3215, 3216, 2710, 2710, 3215, 3216, 3215, + 3216, 3215, 3216, 3215, 3216, 3217, 3218, 3219, + 3219, 2710, 3214, 3214, 3214, 3214, 3214, 3214, + 3214, 3214, 3214, 1786, 1149, 1785, 1148, 3220, + 3220, 3221, 3212, 3212, 3212, 3212, 3212, 3222, + 2710, 3223, 3224, 3225, 3212, 3213, 3226, 2710, + 78, 0, 3213, 3213, 3213, 3213, 3213, 3227, + 3213, 3213, 3213, 3213, 3228, 3229, 3230, 3231, + 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, + 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, + 3248, 3249, 3250, 3251, 3213, 3252, 3253, 3254, + 3255, 3256, 3257, 3213, 3213, 3213, 3213, 3213, + 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, + 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3273, 3213, 3213, + 0, 0, 3274, 3274, 3275, 3276, 3277, 3278, + 3279, 3217, 3213, 3213, 3213, 3213, 3213, 3280, + 3213, 3213, 3213, 3213, 3281, 3282, 3283, 3284, + 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, + 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, + 3301, 3302, 3303, 3304, 3213, 3305, 3306, 3307, + 3308, 3309, 3310, 3213, 3213, 3213, 3213, 3213, + 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, + 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3326, 3327, 3328, 3329, 3213, 3330, 3213, 3213, + 3331, 3332, 3333, 3334, 3211, 3212, 3335, 3336, + 3337, 0, 0, 0, 0, 0, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 0, 3338, 3339, 3340, 3341, 3342, 3343, + 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, + 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, + 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, + 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, + 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, + 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, + 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, + 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, + 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, + 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, + 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, + 0, 3432, 3432, 3433, 3434, 3435, 3436, 3437, + 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, + 3446, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2710, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3447, 3448, 3449, 3450, 3451, 3452, 3453, + 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, + 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, + 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, + 0, 3478, 3479, 3480, 3481, 3482, 3483, 3484, + 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, + 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, + 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, + 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, + 3517, 3518, 3518, 3518, 3518, 3518, 3518, 3518, + 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, + 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, + 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, + 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, + 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, + 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, + 3432, 3566, 3567, 3568, 3569, 3570, 3571, 3572, + 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, + 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, + 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, + 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, + 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, + 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, + 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, + 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, + 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, + 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, + 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, + 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, + 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, + 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, + 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, + 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, + 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, + 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, + 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, + 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, + 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, + 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, + 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, + 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, + 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, + 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, + 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, + 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, + 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, + 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, + 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, + 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, + 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, + 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, + 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, + 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, + 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, + 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, + 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, + 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, + 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, + 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, + 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, + 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, + 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, + 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, + 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, + 3949, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3212, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 0, 0, + 0, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 599, 599, 599, 599, 599, 599, 1104, + 1104, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 599, 8, 8, + 8, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 349, 349, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3950, 3951, 3952, 3953, 3954, 3955, 3956, + 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, + 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, + 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, + 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, + 3989, 3990, 3991, 3992, 3993, 3994, 3995, 349, + 898, 899, 899, 899, 8, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 8, + 598, 3996, 3997, 3998, 3999, 4000, 4001, 4002, + 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, + 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, + 4019, 4020, 4021, 4022, 4023, 4024, 4025, 898, + 898, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 898, 898, 1104, 1104, 1104, 1104, 1104, + 1104, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, + 598, 598, 598, 598, 598, 598, 598, 598, + 598, 46, 46, 4026, 4027, 4028, 4029, 4030, + 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, + 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, + 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, + 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, + 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, + 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, + 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, + 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, + 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, + 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, + 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, + 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, + 4127, 598, 4128, 4128, 4129, 4130, 4131, 4132, + 349, 4133, 4134, 4135, 4136, 4137, 4138, 4139, + 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, + 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, + 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, + 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, + 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, + 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, + 4188, 4189, 4190, 4191, 4192, 4193, 4194, 0, + 0, 4195, 4196, 0, 4197, 0, 4198, 4199, + 4200, 4201, 4202, 4203, 4204, 4205, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4206, 4207, 4208, 4209, 4210, + 349, 4211, 4212, 4213, 349, 349, 349, 349, + 349, 349, 349, 1210, 349, 349, 349, 1245, + 349, 349, 349, 349, 1210, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 1215, 1215, 1210, 1210, + 1215, 78, 78, 78, 78, 1245, 0, 0, + 0, 1242, 1242, 1242, 1242, 1242, 1242, 897, + 897, 10, 2396, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 8, 8, 8, + 8, 0, 0, 0, 0, 0, 0, 0, + 0, 1215, 1215, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 1215, 1215, 1215, + 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, + 1215, 1215, 1215, 1215, 1215, 1245, 1210, 0, + 0, 0, 0, 0, 0, 0, 0, 1104, + 1104, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 349, 349, 349, 349, 349, + 349, 1104, 1104, 1104, 349, 1104, 349, 349, + 1210, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 1210, + 1210, 1210, 1210, 1210, 1147, 1147, 1147, 1104, + 1104, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1215, 1508, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1104, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, + 1410, 1410, 1410, 1410, 1410, 1410, 0, 0, + 0, 1210, 1210, 1210, 1215, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 1234, 1215, 1215, 1210, + 1210, 1210, 1210, 1215, 1215, 1210, 1210, 1215, + 1215, 1508, 1104, 1104, 1104, 1104, 1104, 1104, + 1104, 1104, 1104, 1104, 1104, 1104, 1104, 0, + 599, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 1104, + 1104, 349, 349, 349, 349, 349, 1210, 599, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 349, 349, 349, 349, 349, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 1210, 1210, 1210, 1210, 1210, 1210, + 1215, 1215, 1210, 1210, 1215, 1215, 1210, 1210, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 1210, 349, 349, 349, + 349, 349, 349, 349, 349, 1210, 1215, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 1104, 1104, 1104, + 1104, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 599, 349, 349, 349, 349, 349, 349, + 897, 897, 897, 349, 1322, 1210, 1322, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 898, 349, 898, 898, 1147, 349, 349, + 898, 898, 349, 349, 349, 349, 349, 898, + 898, 349, 898, 349, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 349, 349, 599, 1104, + 1104, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 1215, 1210, 1210, 1215, + 1215, 1104, 1104, 349, 599, 599, 1215, 1245, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 349, 349, 349, 349, 349, 349, + 0, 0, 349, 349, 349, 349, 349, 349, + 0, 0, 349, 349, 349, 349, 349, 349, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 4214, 4215, 4216, 4217, 4218, 4219, 4220, + 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, + 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, + 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, + 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, + 4253, 4254, 4255, 4256, 4128, 4257, 4258, 4259, + 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, + 4268, 4269, 4270, 46, 46, 0, 0, 0, + 0, 4271, 4272, 4273, 4274, 4275, 4276, 4277, + 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, + 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, + 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, + 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, + 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, + 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, + 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, + 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, + 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, + 4350, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 1215, 1215, 1210, 1215, + 1215, 1210, 1215, 1215, 1104, 1215, 1245, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4351, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4351, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 4352, 4352, 4352, + 4352, 4352, 4352, 4352, 4352, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1413, 1413, 1413, 1413, 1413, 1413, 1413, + 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, + 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, + 0, 0, 0, 0, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, + 1414, 1414, 1414, 1414, 1414, 0, 0, 0, + 0, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, + 4353, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, + 4362, 4362, 4363, 4364, 4365, 4366, 4367, 4368, + 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, + 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, + 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, + 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, + 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, + 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, + 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, + 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, + 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, + 4441, 4442, 4443, 4444, 4445, 4374, 4446, 4447, + 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, + 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, + 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, + 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, + 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, + 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, + 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, + 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, + 4512, 4513, 4464, 4514, 4515, 4516, 4517, 4518, + 4519, 4520, 4521, 4448, 4522, 4523, 4524, 4525, + 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, + 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, + 4374, 4542, 4543, 4544, 4545, 4546, 4547, 4548, + 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, + 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, + 4565, 4566, 4567, 4568, 4450, 4569, 4570, 4571, + 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, + 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, + 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, + 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, + 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, + 4612, 4613, 4614, 4615, 4616, 4617, 4618, 3213, + 3213, 4619, 3213, 4620, 3213, 3213, 4621, 4622, + 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, + 3213, 4631, 3213, 4632, 3213, 3213, 4633, 4634, + 3213, 3213, 3213, 4635, 4636, 4637, 4638, 4639, + 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, + 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, + 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, + 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, + 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, + 4503, 4680, 4681, 4682, 4683, 4684, 4685, 4685, + 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, + 4633, 4694, 4695, 4696, 4697, 4698, 4699, 0, + 0, 4700, 4701, 4702, 4703, 4704, 4705, 4706, + 4707, 4647, 4708, 4709, 4710, 4619, 4711, 4712, + 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, + 4721, 4722, 4656, 4723, 4657, 4724, 4725, 4726, + 4727, 4728, 4620, 4395, 4729, 4730, 4731, 4465, + 4552, 4732, 4733, 4664, 4734, 4665, 4735, 4736, + 4737, 4622, 4738, 4739, 4740, 4741, 4742, 4623, + 4743, 4744, 4745, 4746, 4747, 4748, 4679, 4749, + 4750, 4503, 4751, 4683, 4752, 4753, 4754, 4755, + 4756, 4688, 4757, 4632, 4758, 4689, 4446, 4759, + 4690, 4760, 4692, 4761, 4762, 4763, 4764, 4765, + 4694, 4628, 4766, 4695, 4767, 4696, 4768, 4362, + 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, + 4777, 4778, 4779, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4780, 4781, 4782, 4783, 4784, 4785, 4786, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4787, 4788, 4789, 4790, + 4791, 0, 0, 0, 0, 0, 4792, 4793, + 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, + 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, + 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, + 0, 4818, 4819, 4820, 4821, 4822, 0, 4823, + 0, 4824, 4825, 0, 4826, 4827, 0, 4828, + 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, + 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, + 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, + 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, + 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, + 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, + 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, + 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, + 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, + 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, + 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, + 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, + 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, + 4933, 4934, 4935, 1214, 1214, 1214, 1214, 1214, + 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, + 1214, 1214, 1214, 1214, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4936, 4937, 4938, 4939, + 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, + 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, + 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, + 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, + 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, + 4980, 4981, 4982, 4983, 4974, 4984, 4985, 4986, + 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, + 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, + 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, + 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, + 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, + 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, + 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, + 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, + 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, + 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, + 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, + 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, + 5083, 4975, 5084, 5085, 5086, 5087, 5088, 5089, + 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, + 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, + 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, + 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, + 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, + 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, + 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, + 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, + 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, + 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, + 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, + 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, + 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, + 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, + 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, + 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, + 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, + 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, + 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, + 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, + 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, + 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, + 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, + 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, + 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, + 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, + 2290, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 5298, 5299, 5300, 5301, 5302, 5303, 5304, + 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, + 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, + 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, + 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, + 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, + 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, + 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, + 5361, 0, 0, 5362, 5363, 5364, 5365, 5366, + 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, + 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, + 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, + 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, + 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, + 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, + 5415, 0, 0, 0, 0, 0, 0, 0, + 78, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5416, 5417, 5418, 5419, 5420, 5421, 5422, + 5423, 5424, 5425, 5426, 5427, 5428, 78, 78, + 78, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 5429, 5430, 5431, 5432, 5433, 5434, 5435, + 5436, 5437, 5438, 0, 0, 0, 0, 0, + 0, 898, 898, 898, 898, 898, 898, 898, + 1147, 1147, 1147, 1147, 1147, 1147, 1147, 898, + 898, 5439, 5440, 5441, 5442, 5442, 5443, 5444, + 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, + 5453, 5454, 5455, 5456, 5457, 5458, 3211, 3211, + 5459, 5460, 5461, 5461, 5461, 5461, 5462, 5462, + 5462, 5463, 5464, 5465, 0, 5466, 5467, 5468, + 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, + 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, + 0, 5485, 5486, 5487, 5488, 0, 0, 0, + 0, 5489, 5490, 5491, 1177, 5492, 0, 5493, + 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, + 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, + 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, + 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, + 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, + 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, + 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, + 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, + 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, + 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, + 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, + 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, + 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, + 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, + 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, + 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, + 5622, 5623, 5624, 5625, 5626, 5627, 0, 0, + 1510, 0, 5628, 5629, 5630, 5631, 5632, 5633, + 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, + 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, + 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, + 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, + 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, + 5674, 5675, 5676, 5677, 5678, 5679, 5680, 5681, + 5682, 5683, 5684, 5685, 5686, 5687, 5688, 5689, + 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, + 5698, 5699, 5700, 5701, 5702, 5703, 5704, 5705, + 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, + 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, + 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, + 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, + 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, + 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, + 5754, 5755, 5756, 5757, 5758, 5759, 5760, 5761, + 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, + 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, + 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, + 5786, 5787, 5788, 5789, 5790, 5791, 5792, 5793, + 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, + 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, + 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, + 0, 0, 0, 5818, 5819, 5820, 5821, 5822, + 5823, 0, 0, 5824, 5825, 5826, 5827, 5828, + 5829, 0, 0, 5830, 5831, 5832, 5833, 5834, + 5835, 0, 0, 5836, 5837, 5838, 0, 0, + 0, 5839, 5840, 5841, 5842, 5843, 5844, 5845, + 0, 5846, 5847, 5848, 5849, 5850, 5851, 5852, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5853, 5853, 5853, 78, 2477, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 0, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 0, 349, 349, 0, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 0, 0, 0, 0, + 0, 1104, 8, 1104, 0, 0, 0, 0, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 0, 0, 0, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 5854, 5854, 5854, 5854, 5854, 5854, 5854, + 5854, 5854, 5854, 5854, 5854, 5854, 5854, 5854, + 5854, 5854, 5854, 5854, 5854, 5854, 5854, 5854, + 5854, 5854, 5854, 5854, 5854, 5854, 5854, 5854, + 5854, 5854, 5854, 5854, 5854, 5854, 5854, 5854, + 5854, 5854, 5854, 5854, 5854, 5854, 5854, 5854, + 5854, 5854, 5854, 5854, 5854, 5854, 1268, 1268, + 1268, 1268, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 1268, 1268, 78, 897, 897, + 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 0, 0, + 0, 78, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 1147, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1147, 5855, 5855, 5855, 5855, 5855, 5855, + 5855, 5855, 5855, 5855, 5855, 5855, 5855, 5855, + 5855, 5855, 5855, 5855, 5855, 5855, 5855, 5855, + 5855, 5855, 5855, 5855, 5855, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 1242, 1242, 1242, 1242, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 1507, 349, 349, 349, 349, 349, + 349, 349, 349, 1507, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 898, + 898, 898, 898, 898, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 0, + 1104, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 1104, 1507, 1507, 1507, 1507, 1507, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5856, 5857, 5858, 5859, 5860, 5861, 5862, + 5863, 5864, 5865, 5866, 5867, 5868, 5869, 5870, + 5871, 5872, 5873, 5874, 5875, 5876, 5877, 5878, + 5879, 5880, 5881, 5882, 5883, 5884, 5885, 5886, + 5887, 5888, 5889, 5890, 5891, 5892, 5893, 5894, + 5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, + 5903, 5904, 5905, 5906, 5907, 5908, 5909, 5910, + 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, + 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926, + 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, + 5935, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 5936, 5937, 5938, 5939, 5940, 5941, 5942, + 5943, 5944, 5945, 5946, 5947, 5948, 5949, 5950, + 5951, 5952, 5953, 5954, 5955, 5956, 5957, 5958, + 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, + 5967, 5968, 5969, 5970, 5971, 0, 0, 0, + 0, 5972, 5973, 5974, 5975, 5976, 5977, 5978, + 5979, 5980, 5981, 5982, 5983, 5984, 5985, 5986, + 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, + 5995, 5996, 5997, 5998, 5999, 6000, 6001, 6002, + 6003, 6004, 6005, 6006, 6007, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1104, 6008, 6009, 6010, 6011, 6012, 6013, 6014, + 6015, 6016, 6017, 6018, 0, 6019, 6020, 6021, + 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, + 6030, 6031, 6032, 6033, 0, 6034, 6035, 6036, + 6037, 6038, 6039, 6040, 0, 6041, 6042, 0, + 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, + 6051, 6052, 6053, 0, 6054, 6055, 6056, 6057, + 6058, 6059, 6060, 6061, 6062, 6063, 6064, 6065, + 6066, 6067, 6068, 0, 6069, 6070, 6071, 6072, + 6073, 6074, 6075, 0, 6076, 6077, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 6078, 349, 349, 349, 349, 349, + 349, 349, 349, 6079, 349, 349, 349, 349, + 349, 349, 349, 6080, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 6081, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6082, 6083, 6084, 6085, 6086, 6087, 0, + 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, + 6096, 6097, 6098, 6099, 6100, 6101, 6102, 6103, + 6104, 6105, 6106, 6107, 6108, 6109, 6110, 6111, + 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, + 6120, 6121, 6122, 6123, 6124, 6125, 6126, 6127, + 6128, 6129, 0, 6130, 6131, 6132, 6133, 6134, + 6135, 6136, 6137, 6138, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 0, + 0, 1168, 0, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 0, + 1168, 1168, 0, 0, 0, 1168, 0, 0, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 0, + 1165, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 6140, 6140, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 0, 0, 0, 0, 0, 0, 0, 0, + 6139, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 0, 1168, 1168, 0, + 0, 0, 0, 0, 6139, 6139, 6139, 6139, + 6139, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 6139, + 6139, 6139, 6139, 6139, 6139, 0, 0, 0, + 8, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 0, 0, 0, 0, 0, + 1165, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 0, 0, 0, 0, 6139, 6139, 1168, + 1168, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 0, 0, 6139, 6139, 6139, 6139, 6139, + 6139, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 1168, 1210, 1210, 1210, 0, 1210, 1210, + 0, 0, 0, 0, 0, 1210, 1147, 1210, + 898, 1168, 1168, 1168, 1168, 0, 1168, 1168, + 1168, 0, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 0, + 0, 898, 1589, 1147, 0, 0, 0, 0, + 1245, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 6139, 0, 0, 0, 0, 0, 0, + 0, 1165, 1165, 1165, 1165, 1165, 1165, 1165, + 1165, 1165, 0, 0, 0, 0, 0, 0, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 6139, 6139, + 1165, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 6139, 6139, + 6139, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 6140, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 898, 1147, + 0, 0, 0, 0, 6139, 6139, 6139, 6139, + 6139, 1165, 1165, 1165, 1165, 1165, 1165, 1165, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 0, + 0, 0, 8, 8, 8, 8, 8, 8, + 8, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 0, + 0, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 0, 0, 0, 0, + 0, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 0, 0, 0, 0, 0, + 0, 0, 1165, 1165, 1165, 1165, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6141, 6142, 6143, 6144, 6145, 6146, 6147, + 6148, 6149, 6150, 6151, 6152, 6153, 6154, 6155, + 6156, 6157, 6158, 6159, 6160, 6161, 6162, 6163, + 6164, 6165, 6166, 6167, 6168, 6169, 6170, 6171, + 6172, 6173, 6174, 6175, 6176, 6177, 6178, 6179, + 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, + 6188, 6189, 6190, 6191, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6192, 6193, 6194, 6195, 6196, 6197, 6198, + 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, + 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, + 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, + 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, + 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, + 6239, 6240, 6241, 6242, 0, 0, 0, 0, + 0, 0, 0, 6139, 6139, 6139, 6139, 6139, + 6139, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 898, 898, 898, + 898, 0, 0, 0, 0, 0, 0, 0, + 0, 1194, 1194, 1194, 1194, 1194, 1194, 1194, + 1194, 1194, 1194, 0, 0, 0, 0, 0, + 0, 1194, 1194, 1194, 1194, 1194, 1194, 1194, + 1194, 1194, 1194, 1168, 1168, 1168, 1168, 1212, + 1168, 6243, 6244, 6245, 6246, 6247, 6248, 6249, + 6250, 6251, 6252, 6253, 6254, 6255, 6256, 6257, + 6258, 6259, 6260, 6261, 6262, 6263, 6264, 0, + 0, 0, 898, 898, 898, 898, 898, 1146, + 1212, 6265, 6266, 6267, 6268, 6269, 6270, 6271, + 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, + 6280, 6281, 6282, 6283, 6284, 6285, 6286, 0, + 0, 0, 0, 0, 0, 0, 0, 6287, + 6287, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6288, 6288, 6288, 6288, 6288, 6288, 6288, + 6288, 6288, 6288, 6288, 6288, 6288, 6288, 6288, + 6288, 6288, 6288, 6288, 6288, 6288, 6288, 6288, + 6288, 6288, 6288, 6288, 6288, 6288, 6288, 6288, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 0, 898, 898, 1163, 0, + 0, 1168, 1168, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1177, 1177, 1177, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1210, 1147, 1147, + 1147, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 6139, 6139, + 6139, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 1168, 0, 0, 0, 0, 0, 0, 0, + 0, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1147, + 1147, 898, 898, 898, 1147, 898, 1147, 1147, + 1147, 1147, 6289, 6289, 6289, 6289, 1172, 1172, + 1172, 1172, 1172, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 898, 1147, 898, 1147, 1165, + 1165, 1165, 1165, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 6139, 6139, + 6139, 6139, 6139, 6139, 6139, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1215, 1210, 1215, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1245, + 1104, 1104, 1104, 1104, 1104, 1104, 1104, 0, + 0, 0, 0, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1245, 349, 349, 1210, 1210, 349, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1245, 1210, 1210, 1215, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 6290, 6291, 6292, 6293, 349, 349, + 349, 349, 349, 349, 349, 349, 6294, 349, + 349, 349, 349, 349, 6295, 349, 349, 349, + 349, 1215, 1215, 1215, 1210, 1210, 1210, 1210, + 1215, 1215, 1245, 1223, 1104, 1104, 6296, 1104, + 1104, 1104, 1104, 1210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 6296, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 0, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 898, 898, 898, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 1254, 1210, 1210, 1210, 1210, 1215, 1210, 6297, + 6298, 1210, 6299, 6300, 1245, 1245, 0, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1104, 1104, 1104, 1104, 349, 1215, 1215, + 349, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 1234, 1104, 1104, 349, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1210, 1210, 1215, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 1215, 1215, 1215, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1215, 1508, 349, 1281, 1281, 349, 1104, 1104, + 1104, 1104, 1210, 1234, 1210, 1210, 1104, 1215, + 1210, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 349, 1104, 349, 1104, 1104, + 1104, 0, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 0, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 1215, 1215, 1215, + 1210, 1210, 1210, 1215, 1215, 1210, 1508, 1234, + 1210, 1104, 1104, 1104, 1104, 1104, 1104, 1210, + 349, 349, 1210, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 0, 349, 349, 349, 349, 0, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 0, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 1104, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 1210, 1215, 1215, 1215, 1210, 1210, 1210, 1210, + 1210, 1210, 1234, 1245, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 1210, 1210, 1215, 1215, 0, 349, 349, + 349, 349, 349, 349, 349, 349, 0, 0, + 349, 349, 0, 0, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 349, 349, 349, 349, 349, + 349, 349, 0, 349, 349, 0, 349, 349, + 349, 349, 349, 0, 1234, 1234, 349, 1235, + 1215, 1210, 1215, 1215, 1215, 1215, 0, 0, + 6301, 1215, 0, 0, 6302, 6303, 1508, 0, + 0, 349, 0, 0, 0, 0, 0, 0, + 1235, 0, 0, 0, 0, 0, 349, 349, + 349, 349, 349, 1215, 1215, 0, 0, 898, + 898, 898, 898, 898, 898, 898, 0, 0, + 0, 898, 898, 898, 898, 898, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 6304, 6305, 6306, 6307, 349, + 349, 349, 349, 0, 6308, 0, 0, 6309, + 0, 6310, 6311, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 0, + 349, 1235, 1215, 1215, 1254, 1210, 1210, 1210, + 1210, 1210, 0, 6312, 0, 0, 6313, 0, + 6314, 6315, 1235, 1215, 0, 1215, 1215, 1245, + 1508, 1245, 1281, 1210, 349, 1104, 1104, 0, + 1104, 1104, 0, 0, 0, 0, 0, 0, + 0, 0, 1210, 1210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 1215, 1215, + 1215, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1215, 1215, 1245, 1210, 1210, 1215, 1234, + 349, 349, 349, 349, 1104, 1104, 1104, 1104, + 1104, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1104, 1104, 0, 1104, 898, + 349, 349, 349, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 1235, 1215, 1215, 1210, 1210, 1210, 1210, + 1210, 1210, 6316, 1254, 6317, 6318, 1235, 6319, + 1210, 1210, 1215, 1245, 1234, 349, 349, 1104, + 349, 0, 0, 0, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 1235, 1215, 1215, 1210, 1210, 1210, 1210, 0, + 0, 6320, 6321, 6322, 6323, 1210, 1210, 1215, + 1245, 1234, 1104, 1104, 1104, 1104, 1104, 1104, + 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, + 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, + 1104, 349, 349, 349, 349, 1210, 1210, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 1215, 1215, 1215, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1215, 1215, 1210, 1215, + 1245, 1210, 1104, 1104, 1104, 349, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 1210, 1215, 1210, 1215, + 1215, 1210, 1210, 1210, 1210, 1210, 1210, 1508, + 1234, 349, 1104, 0, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1233, 1233, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 0, 0, 1210, 1215, + 1210, 1322, 1322, 1210, 1210, 1210, 1210, 1215, + 1210, 1210, 1210, 1210, 1245, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1242, 1242, 1104, 1104, 1104, + 897, 349, 349, 349, 349, 349, 349, 349, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 1215, 1215, 1215, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1215, 1245, 1234, 1104, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6324, 6325, 6326, 6327, 6328, 6329, 6330, + 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, + 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, + 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, + 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, + 6363, 6364, 6365, 6366, 6367, 6368, 6369, 6370, + 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, + 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6386, + 6387, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 349, 349, 349, 349, 349, 349, 349, 349, + 0, 0, 349, 0, 0, 349, 349, 349, + 349, 349, 349, 349, 349, 0, 349, 349, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 1235, 1215, 1215, 1215, 1215, 6388, 0, + 1215, 6389, 0, 0, 1210, 1210, 1508, 1245, + 1281, 1215, 1281, 1215, 1234, 1104, 1104, 1104, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 0, 0, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 1215, 1215, 1215, 1210, 1210, 1210, + 1210, 0, 0, 1210, 1210, 1215, 1215, 1215, + 1215, 1245, 349, 1104, 349, 1215, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 1210, 1210, 1210, 1210, 1210, 1210, + 6390, 6390, 1210, 1210, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 1210, 1245, 1210, 1210, + 1210, 1210, 1215, 1281, 1210, 1210, 1210, 1210, + 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, + 1245, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 1210, 1210, 1210, 1210, 1210, 1210, + 1215, 1215, 1210, 1210, 1210, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 1281, 1281, 1281, + 1281, 1281, 1281, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1215, 1210, 1245, 1104, 1104, 1104, 349, 1104, + 1104, 1104, 1104, 1104, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 0, 0, 0, 0, 0, + 0, 1104, 1104, 1104, 1104, 1104, 1104, 1104, + 1104, 1104, 1104, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 1104, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 1215, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 0, 1210, 1210, 1210, 1210, 1210, 1210, 1215, + 6391, 349, 1104, 1104, 1104, 1104, 1104, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 0, 0, + 0, 1104, 1104, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 0, 0, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 0, 1215, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1215, 1210, 1210, 1215, 1210, 1210, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 349, 0, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 1210, 1210, 1210, 1210, 1210, 1210, + 0, 0, 0, 1210, 0, 1210, 1210, 0, + 1210, 1210, 1210, 1234, 1210, 1245, 1245, 1281, + 1210, 0, 0, 0, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 0, + 349, 349, 0, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 1215, 1215, 1215, 1215, 1215, + 0, 1210, 1210, 0, 1215, 1215, 1210, 1215, + 1245, 349, 0, 0, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 1210, 1210, 1215, 1215, + 1104, 1104, 0, 0, 0, 0, 0, 0, + 0, 1210, 1210, 1281, 1215, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 1215, 1215, 1210, + 1210, 1210, 1210, 1210, 0, 0, 0, 1215, + 1215, 1210, 1508, 1245, 1104, 1104, 1104, 1104, + 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, + 1104, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 78, 78, + 78, 78, 78, 78, 78, 78, 10, 10, + 10, 10, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1104, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, + 0, 1104, 1104, 1104, 1104, 1104, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 1104, 1104, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 6392, 6392, 6392, 6392, 6392, 6392, 6392, + 6392, 6392, 6392, 6392, 6392, 6392, 6392, 6392, + 6392, 1210, 349, 349, 349, 349, 349, 349, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 6393, + 1254, 1254, 6394, 6395, 6396, 6397, 6398, 6399, + 6400, 6401, 6402, 1215, 1215, 1215, 1210, 1210, + 1245, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 1104, + 1104, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 0, + 0, 1589, 1589, 1589, 1589, 1589, 1104, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 898, 898, 898, 898, 898, 898, 898, + 1104, 1104, 1104, 1104, 1104, 897, 897, 897, + 897, 599, 599, 599, 599, 1104, 897, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 0, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 0, 0, 0, 0, 0, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 599, 599, 599, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 6403, 349, 349, 349, + 6404, 6405, 6406, 6407, 599, 599, 1104, 1104, + 1104, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6408, 6409, 6410, 6411, 6412, 6413, 6414, + 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, + 6423, 6424, 6425, 6426, 6427, 6428, 6429, 6430, + 6431, 6432, 6433, 6434, 6435, 6436, 6437, 6438, + 6439, 6440, 6441, 6442, 6443, 6444, 6445, 6446, + 6447, 6448, 6449, 6450, 6451, 6452, 6453, 6454, + 6455, 6456, 6457, 6458, 6459, 6460, 6461, 6462, + 6463, 6464, 6465, 6466, 6467, 6468, 6469, 6470, + 6471, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1104, 1104, 1104, 1104, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 0, 0, 0, 0, + 1210, 349, 1215, 1215, 1215, 1215, 1215, 1215, + 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, + 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, + 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, + 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, + 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, + 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, + 1215, 0, 0, 0, 0, 0, 0, 0, + 1210, 1210, 1210, 1210, 599, 599, 599, 599, + 599, 599, 599, 599, 599, 599, 599, 599, + 599, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3212, 3212, 3211, 3212, 1210, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6472, 6472, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 0, 0, 0, 0, 0, 0, 0, + 0, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3212, 3212, 3212, 3212, 0, 3212, 3212, + 3212, 3212, 3212, 3212, 3212, 0, 3212, 3212, + 0, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3213, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3213, 3213, 3213, 0, 0, 3213, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3213, 3213, 3213, + 3213, 0, 0, 0, 0, 0, 0, 0, + 0, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 0, 0, 897, 1210, 1589, + 1104, 1510, 1510, 1510, 1510, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 6473, + 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, + 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, + 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, + 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, + 6506, 6507, 6508, 0, 0, 0, 0, 0, + 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 0, + 0, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 0, 0, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 6509, + 6510, 6511, 6512, 6513, 6514, 6515, 6516, 6516, + 1589, 1589, 1589, 897, 897, 897, 6517, 6516, + 6516, 6516, 6516, 6516, 1510, 1510, 1510, 1510, + 1510, 1510, 1510, 1510, 1147, 1147, 1147, 1147, + 1147, 1147, 1147, 1147, 897, 897, 898, 898, + 898, 898, 898, 1147, 1147, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 898, 898, 898, 898, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 6518, 6519, 6520, 6521, + 6522, 6523, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 78, 78, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 898, 898, 898, 78, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 1242, 1242, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6524, 6524, 6524, 6524, 6524, 6524, 6524, + 6524, 6524, 6524, 6524, 6524, 6524, 6524, 6524, + 6524, 6524, 6524, 6524, 6524, 6524, 6524, 6524, + 1242, 1242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6525, 6526, 6527, 6528, 6529, 6530, 6531, + 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, + 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, + 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, + 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, + 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, + 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6579, + 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, + 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, + 6596, 6597, 6598, 6599, 6600, 6601, 6602, 6603, + 6604, 6605, 6606, 6607, 6608, 6609, 0, 6610, + 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, + 6619, 6620, 6621, 6622, 6623, 6624, 6625, 6626, + 6627, 6628, 6629, 6630, 6631, 6632, 6633, 6634, + 6635, 6636, 6637, 6638, 6639, 6640, 6641, 6642, + 6643, 6644, 6645, 6646, 6647, 6648, 6649, 6650, + 6651, 6652, 6653, 6654, 6655, 6656, 6657, 6658, + 6659, 6660, 6661, 6662, 6663, 6664, 6665, 6666, + 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, + 6675, 6676, 6677, 6678, 6679, 6680, 0, 6681, + 6682, 0, 0, 6683, 0, 0, 6684, 6685, + 0, 0, 6686, 6687, 6688, 6689, 0, 6690, + 6691, 6692, 6693, 6694, 6695, 6696, 6697, 6698, + 6699, 6700, 6701, 0, 6702, 0, 6703, 6704, + 6705, 6706, 6707, 6708, 6709, 0, 6710, 6711, + 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, + 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, + 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735, + 6736, 6737, 6738, 6739, 6740, 6741, 6742, 6743, + 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6751, + 6752, 6753, 6754, 6755, 6756, 6757, 6758, 6759, + 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, + 6768, 6769, 6770, 6771, 6772, 6773, 6774, 0, + 6775, 6776, 6777, 6778, 0, 0, 6779, 6780, + 6781, 6782, 6783, 6784, 6785, 6786, 0, 6787, + 6788, 6789, 6790, 6791, 6792, 6793, 0, 6794, + 6795, 6796, 6797, 6798, 6799, 6800, 6801, 6802, + 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6810, + 6811, 6812, 6813, 6814, 6815, 6816, 6817, 6818, + 6819, 6820, 6821, 0, 6822, 6823, 6824, 6825, + 0, 6826, 6827, 6828, 6829, 6830, 0, 6831, + 0, 0, 0, 6832, 6833, 6834, 6835, 6836, + 6837, 6838, 0, 6839, 6840, 6841, 6842, 6843, + 6844, 6845, 6846, 6847, 6848, 6849, 6850, 6851, + 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, + 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, + 6868, 6869, 6870, 6871, 6872, 6873, 6874, 6875, + 6876, 6877, 6878, 6879, 6880, 6881, 6882, 6883, + 6884, 6885, 6886, 6887, 6888, 6889, 6890, 6891, + 6892, 6893, 6894, 6895, 6896, 6897, 6898, 6899, + 6900, 6901, 6902, 6903, 6904, 6905, 6906, 6907, + 6908, 6909, 6910, 6911, 6912, 6913, 6914, 6915, + 6916, 6917, 6918, 6919, 6920, 6921, 6922, 6923, + 6924, 6925, 6926, 6927, 6928, 6929, 6930, 6931, + 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, + 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, + 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, + 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, + 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, + 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, + 6980, 6981, 6982, 6983, 6984, 6985, 6986, 6987, + 6988, 6989, 6990, 6991, 6992, 6993, 6994, 6995, + 6996, 6997, 6998, 6999, 7000, 7001, 7002, 7003, + 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, + 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, + 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, + 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, + 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, + 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, + 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, + 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, + 7068, 7069, 7070, 7071, 7072, 7073, 7074, 7075, + 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, + 7084, 7085, 7086, 7087, 7088, 7089, 7090, 7091, + 7092, 7093, 7094, 7095, 7096, 7097, 7098, 7099, + 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107, + 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, + 7116, 7117, 7118, 7119, 7120, 7121, 7122, 7123, + 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, + 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, + 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, + 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, + 7156, 7157, 7158, 7159, 7160, 7161, 7162, 7163, + 7164, 7165, 7166, 7167, 7168, 7169, 7170, 7171, + 7172, 7173, 7174, 7175, 7176, 7177, 7178, 0, + 0, 7179, 7180, 7181, 7182, 7183, 7184, 7185, + 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, + 7194, 7195, 7196, 7197, 7198, 7199, 7200, 7201, + 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, + 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, + 7218, 7219, 7220, 7221, 7222, 7223, 7224, 7225, + 7226, 7227, 7228, 7229, 7230, 7231, 7232, 7233, + 7234, 7235, 7236, 7237, 7238, 7239, 7240, 7241, + 7242, 7243, 7244, 7245, 7246, 7247, 7248, 7249, + 7250, 7251, 7252, 7253, 7254, 7255, 7256, 7257, + 7258, 7259, 7260, 7261, 7204, 7262, 7263, 7264, + 7265, 7266, 7267, 7268, 7269, 7270, 7271, 7272, + 7273, 7274, 7275, 7276, 7277, 7278, 7279, 7280, + 7281, 7282, 7283, 7284, 7285, 7286, 7230, 7287, + 7288, 7289, 7290, 7291, 7292, 7293, 7294, 7295, + 7296, 7297, 7298, 7299, 7300, 7301, 7302, 7303, + 7304, 7305, 7306, 7307, 7308, 7309, 7310, 7311, + 7312, 7313, 7314, 7315, 7316, 7317, 7204, 7318, + 7319, 7320, 7321, 7322, 7323, 7324, 7325, 7326, + 7327, 7328, 7329, 7330, 7331, 7332, 7333, 7334, + 7335, 7336, 7337, 7338, 7339, 7340, 7341, 7342, + 7230, 7343, 7344, 7345, 7346, 7347, 7348, 7349, + 7350, 7351, 7352, 7353, 7354, 7355, 7356, 7357, + 7358, 7359, 7360, 7361, 7362, 7363, 7364, 7365, + 7366, 7367, 7368, 7369, 7370, 7371, 7372, 7373, + 7204, 7374, 7375, 7376, 7377, 7378, 7379, 7380, + 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, + 7389, 7390, 7391, 7392, 7393, 7394, 7395, 7396, + 7397, 7398, 7230, 7399, 7400, 7401, 7402, 7403, + 7404, 7405, 7406, 7407, 7408, 7409, 7410, 7411, + 7412, 7413, 7414, 7415, 7416, 7417, 7418, 7419, + 7420, 7421, 7422, 7423, 7424, 7425, 7426, 7427, + 7428, 7429, 7204, 7430, 7431, 7432, 7433, 7434, + 7435, 7436, 7437, 7438, 7439, 7440, 7441, 7442, + 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, + 7451, 7452, 7453, 7454, 7230, 7455, 7456, 7457, + 7458, 7459, 7460, 7461, 7462, 0, 0, 6499, + 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, + 6508, 6499, 6500, 6501, 6502, 6503, 6504, 6505, + 6506, 6507, 6508, 6499, 6500, 6501, 6502, 6503, + 6504, 6505, 6506, 6507, 6508, 6499, 6500, 6501, + 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6499, + 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, + 6508, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 897, 897, 897, 897, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 897, 897, + 897, 897, 897, 897, 897, 897, 1210, 897, + 897, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 1210, 897, 897, + 1104, 1104, 1104, 1104, 1104, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1210, 1210, 1210, 1210, + 1210, 0, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7463, 7464, 7465, 7466, 7467, 7468, 7469, + 7470, 7471, 7472, 349, 7473, 7474, 7475, 7476, + 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, + 7485, 7486, 7487, 7488, 7489, 7490, 7491, 7492, + 0, 0, 0, 0, 0, 0, 7493, 7494, + 7495, 7496, 7497, 7498, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 898, 898, 898, 898, 898, 898, 898, + 0, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 898, 898, + 898, 898, 0, 0, 898, 898, 898, 898, + 898, 898, 898, 0, 898, 898, 0, 898, + 898, 898, 898, 898, 0, 0, 0, 0, + 0, 7499, 7500, 7501, 7502, 7503, 7504, 7505, + 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, + 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, + 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, + 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, + 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, + 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, + 7554, 7555, 7556, 7557, 7558, 7559, 7560, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 898, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 0, 0, + 0, 898, 898, 898, 898, 898, 898, 898, + 599, 599, 599, 599, 599, 599, 599, 0, + 0, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 349, + 897, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 898, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 898, 898, 898, + 898, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 599, 1785, 1785, 1147, + 898, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 898, + 1147, 349, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1233, 0, 0, 0, 0, + 1104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 349, 349, 349, 349, 349, 349, 349, + 0, 349, 349, 349, 349, 0, 349, 349, + 0, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, + 0, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 0, 0, + 6139, 6139, 6139, 6139, 6139, 6139, 6139, 6139, + 6139, 1147, 1147, 1147, 1147, 1147, 1147, 1147, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7561, 7562, 7563, 7564, 7565, 7566, 7567, + 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, + 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, + 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, + 7592, 7593, 7594, 7595, 7596, 7597, 7598, 7599, + 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, + 7608, 7609, 7610, 7611, 7612, 7613, 7614, 7615, + 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, + 7624, 7625, 7626, 7627, 7628, 898, 898, 898, + 898, 898, 898, 1234, 1212, 0, 0, 0, + 0, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 0, 0, 0, 0, 1165, + 1165, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6289, 6289, 6289, 6289, 6289, 6289, + 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289, + 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289, + 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289, + 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289, + 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289, + 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289, + 6289, 6289, 6289, 6289, 6289, 1207, 6289, 6289, + 6289, 1171, 6289, 6289, 6289, 6289, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6289, 6289, 6289, 6289, 6289, 6289, + 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289, + 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289, + 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289, + 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289, + 6289, 6289, 6289, 6289, 6289, 6289, 6289, 1207, + 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289, + 6289, 6289, 6289, 6289, 6289, 6289, 6289, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7629, 7630, 7631, 7632, 0, 7633, 7634, + 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, + 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, + 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, + 7659, 0, 7630, 7631, 0, 7660, 0, 0, + 7635, 0, 7637, 7638, 7639, 7640, 7641, 7642, + 7643, 7644, 7645, 7646, 0, 7648, 7649, 7650, + 7651, 0, 7653, 0, 7655, 0, 0, 0, + 0, 0, 0, 7631, 0, 0, 0, 0, + 7635, 0, 7637, 0, 7639, 0, 7641, 7642, + 7643, 0, 7645, 7646, 0, 7648, 0, 0, + 7651, 0, 7653, 0, 7655, 0, 7657, 0, + 7659, 0, 7630, 7631, 0, 7660, 0, 0, + 7635, 7636, 7637, 7638, 0, 7640, 7641, 7642, + 7643, 7644, 7645, 7646, 0, 7648, 7649, 7650, + 7651, 0, 7653, 7654, 7655, 7656, 0, 7658, + 0, 7629, 7630, 7631, 7632, 7660, 7633, 7634, + 7635, 7636, 7637, 0, 7639, 7640, 7641, 7642, + 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, + 7651, 7652, 7653, 7654, 7655, 0, 0, 0, + 0, 0, 7630, 7631, 7632, 0, 7633, 7634, + 7635, 7636, 7637, 0, 7639, 7640, 7641, 7642, + 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, + 7651, 7652, 7653, 7654, 7655, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 74, 74, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 80, 80, 80, 80, 2564, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 0, 0, 0, + 0, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 0, 0, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 0, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 2564, 0, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7661, 7662, 7663, 7664, 7665, 7666, 7667, + 7668, 7669, 7670, 7671, 1268, 1268, 80, 80, + 80, 7672, 7673, 7674, 7675, 7676, 7677, 7678, + 7679, 7680, 7681, 7682, 7683, 7684, 7685, 7686, + 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, + 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, + 80, 7703, 7704, 7705, 7706, 7707, 7708, 7709, + 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, + 7718, 7719, 7720, 7721, 7722, 7723, 7724, 7725, + 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, + 7734, 7735, 7736, 7737, 7738, 7739, 7740, 7741, + 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, + 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, + 7758, 7759, 7760, 7761, 7762, 7763, 80, 80, + 80, 7764, 7765, 7766, 7767, 7768, 7769, 7770, + 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778, + 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, + 7787, 7788, 7789, 7790, 7790, 7790, 7790, 7791, + 7790, 7792, 7791, 7791, 7791, 7791, 7791, 7791, + 7791, 7791, 7791, 7791, 7790, 7790, 7790, 7790, + 7790, 7790, 7790, 7790, 7790, 7790, 7790, 7790, + 7790, 7790, 7790, 7790, 7790, 7790, 80, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7793, + 7793, 7793, 7793, 7793, 7793, 7793, 7793, 7793, + 7793, 7793, 7793, 7793, 7793, 7793, 7793, 7793, + 7793, 7793, 7793, 7793, 7793, 7793, 7793, 7793, + 7793, 7794, 7795, 7796, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7797, 7798, 7799, 7800, 7801, 7802, 7803, + 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, + 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819, + 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, + 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, + 7836, 7837, 7838, 7839, 7840, 0, 0, 0, + 0, 7841, 7842, 7843, 7844, 7845, 7846, 7847, + 7848, 7849, 0, 0, 0, 0, 0, 0, + 0, 7850, 7851, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2564, 2564, 2564, 2564, 2564, 2564, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 80, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 80, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 80, 80, 80, 80, + 2564, 2564, 2564, 2564, 2564, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 80, 80, 80, 2564, 80, 80, + 80, 2564, 2564, 2564, 7852, 7852, 7852, 7852, + 7852, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 80, 2564, 80, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 80, 80, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 78, + 78, 78, 78, 78, 78, 78, 78, 80, + 80, 80, 80, 80, 2564, 2564, 2564, 2564, + 80, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 2564, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 2564, 2564, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 2564, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 80, + 80, 80, 80, 80, 80, 2564, 80, 80, + 80, 2564, 2564, 2564, 80, 80, 2564, 2564, + 2564, 0, 0, 0, 0, 2564, 2564, 2564, + 2564, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 2564, 2564, 0, 0, + 0, 80, 80, 80, 80, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 0, 0, + 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 80, 80, 80, + 0, 0, 0, 0, 80, 80, 80, 80, + 80, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 80, 80, + 80, 80, 80, 0, 0, 0, 0, 0, + 0, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 0, 0, 0, + 0, 2564, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 0, 0, 0, + 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 0, 0, 0, 0, 0, 0, 0, + 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 0, 0, 0, 0, 0, + 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 0, 0, 0, 0, 0, 0, 0, + 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 0, + 0, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 0, 0, 0, + 0, 80, 80, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 78, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 78, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 0, + 0, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 0, 0, + 0, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 0, 0, 0, 0, 0, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 0, 0, 0, 0, 0, 0, 0, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 2564, 2564, 2564, 0, 0, + 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 2564, 0, 0, 0, 0, 0, + 0, 2564, 2564, 2564, 2564, 2564, 2564, 2564, + 2564, 2564, 0, 0, 0, 0, 0, 0, + 0, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 0, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, + 78, 6499, 6500, 6501, 6502, 6503, 6504, 6505, + 6506, 6507, 6508, 0, 0, 0, 0, 0, + 0, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 0, 0, 0, 0, 0, + 0, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 0, + 0, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7853, 7854, 7855, 7856, 7857, 4641, 7858, + 7859, 7860, 7861, 4642, 7862, 7863, 7864, 4643, + 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, + 7873, 7874, 7875, 7876, 4701, 7877, 7878, 7879, + 7880, 7881, 7882, 7883, 7884, 7885, 4706, 4644, + 4645, 4707, 7886, 7887, 4452, 7888, 4646, 7889, + 7890, 7891, 7892, 7892, 7892, 7893, 7894, 7895, + 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, + 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7910, + 4709, 7911, 7912, 7913, 7914, 4648, 7915, 7916, + 7917, 4605, 7918, 7919, 7920, 7921, 7922, 7923, + 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931, + 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939, + 7940, 7941, 7942, 7943, 7943, 7944, 7945, 7946, + 4448, 7947, 7948, 7949, 7950, 7951, 7952, 7953, + 7954, 4653, 7955, 7956, 7957, 7958, 7959, 7960, + 7961, 7962, 7963, 7964, 7965, 7966, 7967, 7968, + 7969, 7970, 7971, 7972, 7973, 7974, 7975, 4394, + 7976, 7977, 7978, 7978, 7979, 7980, 7980, 7981, + 7982, 7983, 7984, 7985, 7986, 7987, 7988, 7989, + 7990, 7991, 7992, 7993, 4654, 7994, 7995, 7996, + 7997, 4721, 7997, 7998, 4656, 7999, 8000, 8001, + 8002, 4657, 4367, 8003, 8004, 8005, 8006, 8007, + 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015, + 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, + 8024, 4658, 8025, 8026, 8027, 8028, 8029, 8030, + 4660, 8031, 8032, 8033, 8034, 8035, 8036, 8037, + 8038, 4395, 4729, 8039, 8040, 8041, 8042, 8043, + 8044, 8045, 8046, 4661, 8047, 8048, 8049, 8050, + 4772, 8051, 8052, 8053, 8054, 8055, 8056, 8057, + 8058, 8059, 8060, 8061, 8062, 8063, 4465, 8064, + 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, + 8073, 8074, 4662, 4552, 8075, 8076, 8077, 8078, + 8079, 8080, 8081, 8082, 4733, 8083, 8084, 8085, + 8086, 8087, 8088, 8089, 8090, 4734, 8091, 8092, + 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8100, + 8101, 8102, 4736, 8103, 8104, 8105, 8106, 8107, + 8108, 8109, 8110, 8111, 8112, 8113, 8113, 8114, + 8115, 4738, 8116, 8117, 8118, 8119, 8120, 8121, + 8122, 4451, 8123, 8124, 8125, 8126, 8127, 8128, + 8129, 4744, 8130, 8131, 8132, 8133, 8134, 8135, + 8135, 4745, 4774, 8136, 8137, 8138, 8139, 8140, + 4413, 4747, 8141, 8142, 4673, 8143, 8144, 4627, + 8145, 8146, 4677, 8147, 8148, 8149, 8150, 8150, + 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, + 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, + 8167, 8168, 8169, 8170, 8171, 8172, 8173, 8174, + 8175, 8176, 8177, 4683, 8178, 8179, 8180, 8181, + 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8189, + 8190, 8191, 8192, 8193, 7979, 8194, 8195, 8196, + 8197, 8198, 8199, 8200, 8201, 8202, 8203, 8204, + 8205, 4469, 8206, 8207, 8208, 8209, 8210, 8211, + 4686, 8212, 8213, 8214, 8215, 8216, 8217, 8218, + 8219, 8220, 8221, 8222, 8223, 8224, 8225, 8226, + 8227, 8228, 8229, 8230, 8231, 4408, 8232, 8233, + 8234, 8235, 8236, 8237, 4754, 8238, 8239, 8240, + 8241, 8242, 8243, 8244, 8245, 8246, 8247, 8248, + 8249, 8250, 8251, 8252, 8253, 8254, 8255, 8256, + 8257, 4759, 4760, 8258, 8259, 8260, 8261, 8262, + 8263, 8264, 8265, 8266, 8267, 8268, 8269, 8270, + 4761, 8271, 8272, 8273, 8274, 8275, 8276, 8277, + 8278, 8279, 8280, 8281, 8282, 8283, 8284, 8285, + 8286, 8287, 8288, 8289, 8290, 8291, 8292, 8293, + 8294, 8295, 8296, 8297, 8298, 8299, 8300, 4767, + 4767, 8301, 8302, 8303, 8304, 8305, 8306, 8307, + 8308, 8309, 8310, 4768, 8311, 8312, 8313, 8314, + 8315, 8316, 8317, 8318, 8319, 8320, 8321, 8322, + 8323, 8324, 8325, 8326, 8327, 8328, 8329, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 0, 0, 0, 0, + 0, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 3213, 3213, 3213, 3213, 3213, 3213, 3213, + 3213, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1510, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8330, 8330, 8330, 8330, 8330, 8330, 8330, + 8330, 8330, 8330, 8330, 8330, 8330, 8330, 8330, + 8330, 8330, 8330, 8330, 8330, 8330, 8330, 8330, + 8330, 8330, 8330, 8330, 8330, 8330, 8330, 8330, + 8330, 8330, 8330, 8330, 8330, 8330, 8330, 8330, + 8330, 8330, 8330, 8330, 8330, 8330, 8330, 8330, + 8330, 8330, 8330, 8330, 8330, 8330, 8330, 8330, + 8330, 8330, 8330, 8330, 8330, 8330, 8330, 8330, + 8330, 8330, 8330, 8330, 8330, 8330, 8330, 8330, + 8330, 8330, 8330, 8330, 8330, 8330, 8330, 8330, + 8330, 8330, 8330, 8330, 8330, 8330, 8330, 8330, + 8330, 8330, 8330, 8330, 8330, 8330, 8330, 8330, + 8330, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 631, 631, + 631, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, + 4354, 4354, 4354, 4354, 4354, 4354, 4354, 0, + 0, }; + +static const utf8proc_property_t utf8proc_properties[] = { + {0, 0, 0, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 0x3FF,0,false, false,false,false,false, 1, 0, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_BN, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_S, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_B, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, true, 0, false, 0, UTF8PROC_BOUNDCLASS_LF, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_WS, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_B, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CR, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_B, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ES, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 0, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 0, UINT16_MAX, 0, UINT16_MAX, 3, 16, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1, UINT16_MAX, 1, UINT16_MAX, 19, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2, UINT16_MAX, 2, UINT16_MAX, 22, 5, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 3, UINT16_MAX, 3, UINT16_MAX, 27, 6, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4, UINT16_MAX, 4, UINT16_MAX, 33, 17, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 5, UINT16_MAX, 5, UINT16_MAX, 50, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6, UINT16_MAX, 6, UINT16_MAX, 51, 7, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 7, UINT16_MAX, 7, UINT16_MAX, 58, 7, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8, UINT16_MAX, 8, UINT16_MAX, 65, 15, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9, UINT16_MAX, 9, UINT16_MAX, 80, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 10, UINT16_MAX, 10, UINT16_MAX, 81, 5, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 11, UINT16_MAX, 11, UINT16_MAX, 86, 6, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 12, UINT16_MAX, 12, UINT16_MAX, 92, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 13, UINT16_MAX, 13, UINT16_MAX, 95, 9, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 14, UINT16_MAX, 14, UINT16_MAX, 104, 16, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 15, UINT16_MAX, 15, UINT16_MAX, 120, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 16, UINT16_MAX, 16, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 17, UINT16_MAX, 17, UINT16_MAX, 122, 8, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 18, UINT16_MAX, 18, UINT16_MAX, 130, 7, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 19, UINT16_MAX, 19, UINT16_MAX, 137, 7, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 20, UINT16_MAX, 20, UINT16_MAX, 144, 19, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 21, UINT16_MAX, 21, UINT16_MAX, 163, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 22, UINT16_MAX, 22, UINT16_MAX, 165, 6, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 23, UINT16_MAX, 23, UINT16_MAX, 171, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 24, UINT16_MAX, 24, UINT16_MAX, 173, 9, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 25, UINT16_MAX, 25, UINT16_MAX, 182, 6, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 26, UINT16_MAX, 26, 188, 16, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 27, UINT16_MAX, 27, 204, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 28, UINT16_MAX, 28, 207, 5, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 29, UINT16_MAX, 29, 212, 6, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 30, UINT16_MAX, 30, 218, 17, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 31, UINT16_MAX, 31, 235, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 32, UINT16_MAX, 32, 236, 7, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 33, UINT16_MAX, 33, 243, 8, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 34, UINT16_MAX, 34, 251, 14, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 35, UINT16_MAX, 35, 265, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 36, UINT16_MAX, 36, 267, 5, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 37, UINT16_MAX, 37, 272, 6, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 38, UINT16_MAX, 38, 278, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 39, UINT16_MAX, 39, 281, 9, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 40, UINT16_MAX, 40, 290, 16, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 41, UINT16_MAX, 41, 306, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 42, UINT16_MAX, 42, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 43, UINT16_MAX, 43, 308, 8, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 44, UINT16_MAX, 44, 316, 7, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 45, UINT16_MAX, 45, 323, 8, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 46, UINT16_MAX, 46, 331, 19, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 47, UINT16_MAX, 47, 350, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 48, UINT16_MAX, 48, 352, 7, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 49, UINT16_MAX, 49, 359, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 50, UINT16_MAX, 50, 361, 10, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 51, UINT16_MAX, 51, 371, 6, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_NOBREAK, 52, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 16437, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 377, 3, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 0, UINT16_MAX, 55, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PI, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_BN, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 1, true, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 16440, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ET, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ET, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 58, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 59, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 16444, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 62, 62, 63, UINT16_MAX, 63, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 16448, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 66, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 14, UINT16_MAX, 67, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PF, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 32836, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 32839, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 32842, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16461, 79, UINT16_MAX, 79, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16464, 82, UINT16_MAX, 82, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16467, 85, UINT16_MAX, 85, UINT16_MAX, 380, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16470, 88, UINT16_MAX, 88, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16473, 91, UINT16_MAX, 91, UINT16_MAX, 384, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16476, 94, UINT16_MAX, 94, UINT16_MAX, 385, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 95, UINT16_MAX, 95, UINT16_MAX, 386, 2, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16480, 98, UINT16_MAX, 98, UINT16_MAX, 388, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16483, 101, UINT16_MAX, 101, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16486, 104, UINT16_MAX, 104, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16489, 107, UINT16_MAX, 107, UINT16_MAX, 389, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16492, 110, UINT16_MAX, 110, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16495, 113, UINT16_MAX, 113, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16498, 116, UINT16_MAX, 116, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16501, 119, UINT16_MAX, 119, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16504, 122, UINT16_MAX, 122, UINT16_MAX, 393, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 123, UINT16_MAX, 123, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16508, 126, UINT16_MAX, 126, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16511, 129, UINT16_MAX, 129, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16514, 132, UINT16_MAX, 132, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16517, 135, UINT16_MAX, 135, UINT16_MAX, 394, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16520, 138, UINT16_MAX, 138, UINT16_MAX, 398, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16523, 141, UINT16_MAX, 141, UINT16_MAX, 401, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 142, UINT16_MAX, 142, UINT16_MAX, 402, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16527, 145, UINT16_MAX, 145, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16530, 148, UINT16_MAX, 148, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16533, 151, UINT16_MAX, 151, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16536, 154, UINT16_MAX, 154, UINT16_MAX, 403, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16539, 157, UINT16_MAX, 157, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 158, UINT16_MAX, 158, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 16543, 161, UINT16_MAX, 161, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16546, UINT16_MAX, 164, UINT16_MAX, 164, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16549, UINT16_MAX, 167, UINT16_MAX, 167, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16552, UINT16_MAX, 170, UINT16_MAX, 170, 407, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16555, UINT16_MAX, 173, UINT16_MAX, 173, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16558, UINT16_MAX, 176, UINT16_MAX, 176, 411, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16561, UINT16_MAX, 179, UINT16_MAX, 179, 412, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 180, UINT16_MAX, 180, 413, 2, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16565, UINT16_MAX, 183, UINT16_MAX, 183, 415, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16568, UINT16_MAX, 186, UINT16_MAX, 186, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16571, UINT16_MAX, 189, UINT16_MAX, 189, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16574, UINT16_MAX, 192, UINT16_MAX, 192, 416, 4, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16577, UINT16_MAX, 195, UINT16_MAX, 195, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16580, UINT16_MAX, 198, UINT16_MAX, 198, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16583, UINT16_MAX, 201, UINT16_MAX, 201, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16586, UINT16_MAX, 204, UINT16_MAX, 204, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16589, UINT16_MAX, 207, UINT16_MAX, 207, 420, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 208, UINT16_MAX, 208, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16593, UINT16_MAX, 211, UINT16_MAX, 211, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16596, UINT16_MAX, 214, UINT16_MAX, 214, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16599, UINT16_MAX, 217, UINT16_MAX, 217, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16602, UINT16_MAX, 220, UINT16_MAX, 220, 421, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16605, UINT16_MAX, 223, UINT16_MAX, 223, 425, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16608, UINT16_MAX, 226, UINT16_MAX, 226, 428, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 227, UINT16_MAX, 227, 429, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16612, UINT16_MAX, 230, UINT16_MAX, 230, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16615, UINT16_MAX, 233, UINT16_MAX, 233, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16618, UINT16_MAX, 236, UINT16_MAX, 236, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16621, UINT16_MAX, 239, UINT16_MAX, 239, 430, 4, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16624, UINT16_MAX, 242, UINT16_MAX, 242, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 243, UINT16_MAX, 243, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16628, UINT16_MAX, 246, UINT16_MAX, 246, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16631, 249, UINT16_MAX, 249, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16634, UINT16_MAX, 252, UINT16_MAX, 252, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16637, 255, UINT16_MAX, 255, UINT16_MAX, 434, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16640, UINT16_MAX, 258, UINT16_MAX, 258, 438, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16643, 261, UINT16_MAX, 261, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16646, UINT16_MAX, 264, UINT16_MAX, 264, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16649, 267, UINT16_MAX, 267, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16652, UINT16_MAX, 270, UINT16_MAX, 270, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16655, 273, UINT16_MAX, 273, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16658, UINT16_MAX, 276, UINT16_MAX, 276, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16661, 279, UINT16_MAX, 279, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16664, UINT16_MAX, 282, UINT16_MAX, 282, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16667, 285, UINT16_MAX, 285, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16670, UINT16_MAX, 288, UINT16_MAX, 288, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16673, 291, UINT16_MAX, 291, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16676, UINT16_MAX, 294, UINT16_MAX, 294, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 295, UINT16_MAX, 295, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 296, UINT16_MAX, 296, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16681, 299, UINT16_MAX, 299, UINT16_MAX, 442, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16684, UINT16_MAX, 302, UINT16_MAX, 302, 444, 2, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16687, 305, UINT16_MAX, 305, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16690, UINT16_MAX, 308, UINT16_MAX, 308, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16693, 311, UINT16_MAX, 311, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16696, UINT16_MAX, 314, UINT16_MAX, 314, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16699, 317, UINT16_MAX, 317, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16702, UINT16_MAX, 320, UINT16_MAX, 320, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16705, 323, UINT16_MAX, 323, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16708, UINT16_MAX, 326, UINT16_MAX, 326, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16711, 329, UINT16_MAX, 329, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16714, UINT16_MAX, 332, UINT16_MAX, 332, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16717, 335, UINT16_MAX, 335, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16720, UINT16_MAX, 338, UINT16_MAX, 338, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16723, 341, UINT16_MAX, 341, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16726, UINT16_MAX, 344, UINT16_MAX, 344, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16729, 347, UINT16_MAX, 347, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16732, UINT16_MAX, 350, UINT16_MAX, 350, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16735, 353, UINT16_MAX, 353, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16738, UINT16_MAX, 356, UINT16_MAX, 356, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 357, UINT16_MAX, 357, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 358, UINT16_MAX, 358, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16743, 361, UINT16_MAX, 361, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16746, UINT16_MAX, 364, UINT16_MAX, 364, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16749, 367, UINT16_MAX, 367, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16752, UINT16_MAX, 370, UINT16_MAX, 370, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16755, 373, UINT16_MAX, 373, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16758, UINT16_MAX, 376, UINT16_MAX, 376, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16761, 379, UINT16_MAX, 379, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16764, UINT16_MAX, 382, UINT16_MAX, 382, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16767, 16769, UINT16_MAX, 8, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 34, UINT16_MAX, 34, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 16771, 389, UINT16_MAX, 389, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 16774, UINT16_MAX, 392, UINT16_MAX, 392, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16777, 395, UINT16_MAX, 395, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16780, UINT16_MAX, 398, UINT16_MAX, 398, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16783, 401, UINT16_MAX, 401, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16786, UINT16_MAX, 404, UINT16_MAX, 404, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 405, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16790, 408, UINT16_MAX, 408, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16793, UINT16_MAX, 411, UINT16_MAX, 411, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16796, 414, UINT16_MAX, 414, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16799, UINT16_MAX, 417, UINT16_MAX, 417, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16802, 420, UINT16_MAX, 420, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16805, UINT16_MAX, 423, UINT16_MAX, 423, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 16808, 426, UINT16_MAX, 426, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 16811, UINT16_MAX, 429, UINT16_MAX, 429, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 430, UINT16_MAX, 430, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 431, UINT16_MAX, 431, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16816, 434, UINT16_MAX, 434, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16819, UINT16_MAX, 437, UINT16_MAX, 437, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16822, 440, UINT16_MAX, 440, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16825, UINT16_MAX, 443, UINT16_MAX, 443, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16828, 446, UINT16_MAX, 446, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16831, UINT16_MAX, 449, UINT16_MAX, 449, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 16834, 16834, 452, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 453, UINT16_MAX, 453, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 454, UINT16_MAX, 454, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16839, 457, UINT16_MAX, 457, UINT16_MAX, 446, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16842, UINT16_MAX, 460, UINT16_MAX, 460, 448, 2, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16845, 463, UINT16_MAX, 463, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16848, UINT16_MAX, 466, UINT16_MAX, 466, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16851, 469, UINT16_MAX, 469, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16854, UINT16_MAX, 472, UINT16_MAX, 472, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 473, UINT16_MAX, 473, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 474, UINT16_MAX, 474, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16859, 477, UINT16_MAX, 477, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16862, UINT16_MAX, 480, UINT16_MAX, 480, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16865, 483, UINT16_MAX, 483, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16868, UINT16_MAX, 486, UINT16_MAX, 486, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16871, 489, UINT16_MAX, 489, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16874, UINT16_MAX, 492, UINT16_MAX, 492, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16877, 495, UINT16_MAX, 495, UINT16_MAX, 450, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16880, UINT16_MAX, 498, UINT16_MAX, 498, 451, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16883, 501, UINT16_MAX, 501, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16886, UINT16_MAX, 504, UINT16_MAX, 504, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16889, 507, UINT16_MAX, 507, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16892, UINT16_MAX, 510, UINT16_MAX, 510, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16895, 513, UINT16_MAX, 513, UINT16_MAX, 452, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16898, UINT16_MAX, 516, UINT16_MAX, 516, 453, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16901, 519, UINT16_MAX, 519, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16904, UINT16_MAX, 522, UINT16_MAX, 522, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16907, 525, UINT16_MAX, 525, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16910, UINT16_MAX, 528, UINT16_MAX, 528, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 529, UINT16_MAX, 529, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 530, UINT16_MAX, 530, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16915, 533, UINT16_MAX, 533, UINT16_MAX, 454, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16918, UINT16_MAX, 536, UINT16_MAX, 536, 455, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16921, 539, UINT16_MAX, 539, UINT16_MAX, 456, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16924, UINT16_MAX, 542, UINT16_MAX, 542, 457, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16927, 545, UINT16_MAX, 545, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16930, UINT16_MAX, 548, UINT16_MAX, 548, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16933, 551, UINT16_MAX, 551, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16936, UINT16_MAX, 554, UINT16_MAX, 554, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16939, 557, UINT16_MAX, 557, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16942, UINT16_MAX, 560, UINT16_MAX, 560, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16945, 563, UINT16_MAX, 563, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16948, UINT16_MAX, 566, UINT16_MAX, 566, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16951, 569, UINT16_MAX, 569, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16954, UINT16_MAX, 572, UINT16_MAX, 572, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16957, 575, UINT16_MAX, 575, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16960, UINT16_MAX, 578, UINT16_MAX, 578, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16963, 581, UINT16_MAX, 581, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16966, 584, UINT16_MAX, 584, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16969, UINT16_MAX, 587, UINT16_MAX, 587, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16972, 590, UINT16_MAX, 590, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16975, UINT16_MAX, 593, UINT16_MAX, 593, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 16978, 596, UINT16_MAX, 596, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 16981, UINT16_MAX, 599, UINT16_MAX, 599, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 18, 18, 44, UINT16_MAX, 44, 458, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 600, UINT16_MAX, 600, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 601, UINT16_MAX, 601, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 602, UINT16_MAX, 602, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 603, UINT16_MAX, 603, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 604, UINT16_MAX, 604, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 605, UINT16_MAX, 605, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 606, UINT16_MAX, 606, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 607, UINT16_MAX, 607, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 608, UINT16_MAX, 608, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 609, UINT16_MAX, 609, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 610, UINT16_MAX, 610, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 611, UINT16_MAX, 611, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 612, UINT16_MAX, 612, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 613, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 614, UINT16_MAX, 614, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 615, UINT16_MAX, 615, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 616, UINT16_MAX, 616, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 617, UINT16_MAX, 617, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 618, UINT16_MAX, 618, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 619, UINT16_MAX, 619, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 620, UINT16_MAX, 620, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 621, UINT16_MAX, 621, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 622, UINT16_MAX, 622, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 623, UINT16_MAX, 623, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 624, UINT16_MAX, 624, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 625, UINT16_MAX, 625, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 626, UINT16_MAX, 626, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 627, UINT16_MAX, 627, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 628, UINT16_MAX, 628, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 629, UINT16_MAX, 629, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 630, UINT16_MAX, 630, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 631, UINT16_MAX, 631, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17016, 634, UINT16_MAX, 634, UINT16_MAX, 459, 5, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17019, UINT16_MAX, 637, UINT16_MAX, 637, 464, 5, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 638, UINT16_MAX, 638, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 639, UINT16_MAX, 639, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 640, UINT16_MAX, 640, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 641, UINT16_MAX, 641, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 642, UINT16_MAX, 642, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 643, UINT16_MAX, 643, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 644, UINT16_MAX, 644, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 645, UINT16_MAX, 645, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 646, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 647, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 648, UINT16_MAX, 648, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 649, UINT16_MAX, 649, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 650, UINT16_MAX, 650, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17035, 653, UINT16_MAX, 653, UINT16_MAX, 469, 5, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17038, UINT16_MAX, 656, UINT16_MAX, 656, 474, 5, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 657, UINT16_MAX, 657, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 658, UINT16_MAX, 658, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 659, UINT16_MAX, 659, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 660, UINT16_MAX, 660, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 661, UINT16_MAX, 661, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 662, UINT16_MAX, 662, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 663, UINT16_MAX, 663, UINT16_MAX, 479, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 664, UINT16_MAX, 664, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 665, UINT16_MAX, 665, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 666, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 667, UINT16_MAX, 667, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 668, UINT16_MAX, 668, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 669, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 670, UINT16_MAX, 670, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 17055, 673, UINT16_MAX, 673, 674, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 17059, 673, 677, 673, 674, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 17062, UINT16_MAX, 677, UINT16_MAX, 674, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 17064, 682, UINT16_MAX, 682, 683, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 17068, 682, 686, 682, 683, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 17071, UINT16_MAX, 686, UINT16_MAX, 683, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 17073, 691, UINT16_MAX, 691, 692, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 17077, 691, 695, 691, 692, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 17080, UINT16_MAX, 695, UINT16_MAX, 692, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17082, 700, UINT16_MAX, 700, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17085, UINT16_MAX, 703, UINT16_MAX, 703, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17088, 706, UINT16_MAX, 706, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17091, UINT16_MAX, 709, UINT16_MAX, 709, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17094, 712, UINT16_MAX, 712, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17097, UINT16_MAX, 715, UINT16_MAX, 715, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17100, 718, UINT16_MAX, 718, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17103, UINT16_MAX, 721, UINT16_MAX, 721, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17106, 724, UINT16_MAX, 724, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17109, UINT16_MAX, 727, UINT16_MAX, 727, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17112, 730, UINT16_MAX, 730, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17115, UINT16_MAX, 733, UINT16_MAX, 733, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17118, 736, UINT16_MAX, 736, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17121, UINT16_MAX, 739, UINT16_MAX, 739, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17124, 742, UINT16_MAX, 742, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17127, UINT16_MAX, 745, UINT16_MAX, 745, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 746, UINT16_MAX, 746, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17131, 749, UINT16_MAX, 749, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17134, UINT16_MAX, 752, UINT16_MAX, 752, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17137, 755, UINT16_MAX, 755, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17140, UINT16_MAX, 758, UINT16_MAX, 758, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17143, 761, UINT16_MAX, 761, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17146, UINT16_MAX, 764, UINT16_MAX, 764, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 765, UINT16_MAX, 765, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 766, UINT16_MAX, 766, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17151, 769, UINT16_MAX, 769, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17154, UINT16_MAX, 772, UINT16_MAX, 772, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17157, 775, UINT16_MAX, 775, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17160, UINT16_MAX, 778, UINT16_MAX, 778, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17163, 781, UINT16_MAX, 781, UINT16_MAX, 480, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17166, UINT16_MAX, 784, UINT16_MAX, 784, 481, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17169, 787, UINT16_MAX, 787, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17172, UINT16_MAX, 790, UINT16_MAX, 790, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17175, 793, UINT16_MAX, 793, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17178, UINT16_MAX, 796, UINT16_MAX, 796, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17181, 17181, 799, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 17184, 802, UINT16_MAX, 802, 803, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 17188, 802, 806, 802, 803, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 17191, UINT16_MAX, 806, UINT16_MAX, 803, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17193, 811, UINT16_MAX, 811, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17196, UINT16_MAX, 814, UINT16_MAX, 814, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 815, UINT16_MAX, 815, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 816, UINT16_MAX, 816, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17201, 819, UINT16_MAX, 819, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17204, UINT16_MAX, 822, UINT16_MAX, 822, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17207, 825, UINT16_MAX, 825, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17210, UINT16_MAX, 828, UINT16_MAX, 828, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17213, 831, UINT16_MAX, 831, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17216, UINT16_MAX, 834, UINT16_MAX, 834, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17219, 837, UINT16_MAX, 837, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17222, UINT16_MAX, 840, UINT16_MAX, 840, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17225, 843, UINT16_MAX, 843, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17228, UINT16_MAX, 846, UINT16_MAX, 846, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17231, 849, UINT16_MAX, 849, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17234, UINT16_MAX, 852, UINT16_MAX, 852, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17237, 855, UINT16_MAX, 855, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17240, UINT16_MAX, 858, UINT16_MAX, 858, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17243, 861, UINT16_MAX, 861, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17246, UINT16_MAX, 864, UINT16_MAX, 864, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17249, 867, UINT16_MAX, 867, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17252, UINT16_MAX, 870, UINT16_MAX, 870, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17255, 873, UINT16_MAX, 873, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17258, UINT16_MAX, 876, UINT16_MAX, 876, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17261, 879, UINT16_MAX, 879, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17264, UINT16_MAX, 882, UINT16_MAX, 882, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17267, 885, UINT16_MAX, 885, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17270, UINT16_MAX, 888, UINT16_MAX, 888, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17273, 891, UINT16_MAX, 891, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17276, UINT16_MAX, 894, UINT16_MAX, 894, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17279, 897, UINT16_MAX, 897, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17282, UINT16_MAX, 900, UINT16_MAX, 900, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17285, 903, UINT16_MAX, 903, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17288, UINT16_MAX, 906, UINT16_MAX, 906, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17291, 909, UINT16_MAX, 909, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17294, UINT16_MAX, 912, UINT16_MAX, 912, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17297, 915, UINT16_MAX, 915, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17300, UINT16_MAX, 918, UINT16_MAX, 918, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17303, 921, UINT16_MAX, 921, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17306, UINT16_MAX, 924, UINT16_MAX, 924, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 925, UINT16_MAX, 925, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 926, UINT16_MAX, 926, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17311, 929, UINT16_MAX, 929, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17314, UINT16_MAX, 932, UINT16_MAX, 932, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 933, UINT16_MAX, 933, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 934, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 935, UINT16_MAX, 935, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 936, UINT16_MAX, 936, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 937, UINT16_MAX, 937, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 938, UINT16_MAX, 938, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17323, 941, UINT16_MAX, 941, UINT16_MAX, 482, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17326, UINT16_MAX, 944, UINT16_MAX, 944, 483, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17329, 947, UINT16_MAX, 947, UINT16_MAX, 484, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17332, UINT16_MAX, 950, UINT16_MAX, 950, 485, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17335, 953, UINT16_MAX, 953, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17338, UINT16_MAX, 956, UINT16_MAX, 956, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17341, 959, UINT16_MAX, 959, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17344, UINT16_MAX, 962, UINT16_MAX, 962, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17347, 965, UINT16_MAX, 965, UINT16_MAX, 486, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17350, UINT16_MAX, 968, UINT16_MAX, 968, 487, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17353, 971, UINT16_MAX, 971, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17356, UINT16_MAX, 974, UINT16_MAX, 974, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17359, 977, UINT16_MAX, 977, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17362, UINT16_MAX, 980, UINT16_MAX, 980, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 981, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 982, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 983, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 984, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 985, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 986, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 987, UINT16_MAX, 987, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 988, UINT16_MAX, 988, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 989, UINT16_MAX, 989, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 990, UINT16_MAX, 990, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 991, UINT16_MAX, 991, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 992, UINT16_MAX, 992, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 993, UINT16_MAX, 993, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 994, UINT16_MAX, 994, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 995, UINT16_MAX, 995, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 996, UINT16_MAX, 996, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 997, UINT16_MAX, 997, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 998, UINT16_MAX, 998, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 999, UINT16_MAX, 999, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1000, UINT16_MAX, 1000, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1001, UINT16_MAX, 1001, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1002, UINT16_MAX, 1002, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1003, UINT16_MAX, 1003, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1004, UINT16_MAX, 1004, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1005, UINT16_MAX, 1005, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1006, UINT16_MAX, 1006, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1007, UINT16_MAX, 1007, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1008, UINT16_MAX, 1008, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1009, UINT16_MAX, 1009, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1010, UINT16_MAX, 1010, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1011, UINT16_MAX, 1011, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1012, UINT16_MAX, 1012, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1013, UINT16_MAX, 1013, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1014, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1015, UINT16_MAX, 1015, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1016, UINT16_MAX, 1016, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1017, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1018, UINT16_MAX, 1018, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1019, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1020, UINT16_MAX, 1020, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1021, UINT16_MAX, 1021, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1022, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1023, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1024, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1025, UINT16_MAX, 1025, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1026, UINT16_MAX, 1026, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1027, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1028, UINT16_MAX, 1028, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1029, UINT16_MAX, 1029, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1030, UINT16_MAX, 1030, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1031, UINT16_MAX, 1031, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1032, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1033, UINT16_MAX, 1033, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1034, UINT16_MAX, 1034, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1035, UINT16_MAX, 1035, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1036, UINT16_MAX, 1036, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1037, UINT16_MAX, 1037, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1038, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1039, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1040, UINT16_MAX, 1040, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1041, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1042, UINT16_MAX, 1042, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1043, UINT16_MAX, 1043, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1044, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1045, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1046, UINT16_MAX, 1046, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1047, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1048, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1049, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1050, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1051, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1052, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1053, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1054, UINT16_MAX, 1054, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1055, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1056, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1057, UINT16_MAX, 1057, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1058, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1059, UINT16_MAX, 1059, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1060, UINT16_MAX, 1060, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1061, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1062, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1063, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1064, UINT16_MAX, 1064, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1065, UINT16_MAX, 1065, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1066, UINT16_MAX, 1066, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1067, UINT16_MAX, 1067, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1068, UINT16_MAX, 1068, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1069, UINT16_MAX, 1069, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1070, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1071, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1072, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1073, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1074, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1075, UINT16_MAX, 1075, 488, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1076, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1077, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1078, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1079, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1080, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1081, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1082, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1083, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1084, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1085, UINT16_MAX, 1085, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1086, UINT16_MAX, 1086, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1087, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1088, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1089, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1090, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1091, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1092, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1093, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1094, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1095, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1096, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1097, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1098, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1099, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1100, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1101, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1102, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1103, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7, UINT16_MAX, 1104, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1105, UINT16_MAX, 1106, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 9, UINT16_MAX, 1107, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 17, UINT16_MAX, 1108, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1050, UINT16_MAX, 1109, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1052, UINT16_MAX, 1110, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1058, UINT16_MAX, 1111, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 22, UINT16_MAX, 1112, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 24, UINT16_MAX, 1113, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1114, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1115, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 17500, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 17502, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 17504, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 17506, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 17508, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 17510, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 620, UINT16_MAX, 1128, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 11, UINT16_MAX, 1129, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 18, UINT16_MAX, 1130, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 23, UINT16_MAX, 1131, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1077, UINT16_MAX, 1132, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, true, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 232, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 216, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, true, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, true, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, true, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 1, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 1, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, true, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 1133, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 1134, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 1135, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 17520, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 240, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, 1138, 1139, UINT16_MAX, 1139, 1023, 0, true, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 233, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 234, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, true, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1140, UINT16_MAX, 1140, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1141, UINT16_MAX, 1141, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1142, UINT16_MAX, 1142, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1143, UINT16_MAX, 1143, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 1144, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1145, UINT16_MAX, 1145, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1146, UINT16_MAX, 1146, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 17531, UINT16_MAX, 1149, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1150, UINT16_MAX, 1150, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1151, UINT16_MAX, 1151, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1152, UINT16_MAX, 1152, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 1153, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1154, UINT16_MAX, 1154, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 16444, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 17539, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17541, 1159, UINT16_MAX, 1159, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 1160, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17545, 1163, UINT16_MAX, 1163, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17548, 1166, UINT16_MAX, 1166, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17551, 1169, UINT16_MAX, 1169, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17554, 1172, UINT16_MAX, 1172, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17557, 1175, UINT16_MAX, 1175, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17560, 1178, UINT16_MAX, 1178, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17563, 33949, 1184, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1185, UINT16_MAX, 1185, UINT16_MAX, 489, 7, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1186, UINT16_MAX, 1186, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1187, UINT16_MAX, 1187, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1188, UINT16_MAX, 1188, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1189, UINT16_MAX, 1189, UINT16_MAX, 496, 4, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1190, UINT16_MAX, 1190, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1191, UINT16_MAX, 1191, UINT16_MAX, 500, 5, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1192, UINT16_MAX, 1192, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1138, UINT16_MAX, 1138, UINT16_MAX, 505, 7, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1193, UINT16_MAX, 1193, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1194, UINT16_MAX, 1194, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 62, UINT16_MAX, 62, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1195, UINT16_MAX, 1195, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1196, UINT16_MAX, 1196, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1197, UINT16_MAX, 1197, UINT16_MAX, 512, 4, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1198, UINT16_MAX, 1198, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1199, UINT16_MAX, 1199, UINT16_MAX, 516, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1200, UINT16_MAX, 1200, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1201, UINT16_MAX, 1201, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1202, UINT16_MAX, 1202, UINT16_MAX, 517, 6, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1203, UINT16_MAX, 1203, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1204, UINT16_MAX, 1204, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1205, UINT16_MAX, 1205, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1206, UINT16_MAX, 1206, UINT16_MAX, 523, 5, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17591, 1209, UINT16_MAX, 1209, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17594, 1212, UINT16_MAX, 1212, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17597, UINT16_MAX, 1215, UINT16_MAX, 1215, 528, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17600, UINT16_MAX, 1218, UINT16_MAX, 1218, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17603, UINT16_MAX, 1221, UINT16_MAX, 1221, 529, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17606, UINT16_MAX, 1224, UINT16_MAX, 1224, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17609, 33995, 1230, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1231, UINT16_MAX, 1231, 530, 8, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1232, UINT16_MAX, 1232, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1233, UINT16_MAX, 1233, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1234, UINT16_MAX, 1234, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1235, UINT16_MAX, 1235, 538, 4, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1236, UINT16_MAX, 1236, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1237, UINT16_MAX, 1237, 542, 6, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1238, UINT16_MAX, 1238, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1139, UINT16_MAX, 1139, 548, 8, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1239, UINT16_MAX, 1239, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1240, UINT16_MAX, 1240, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 63, UINT16_MAX, 63, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1241, UINT16_MAX, 1241, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1242, UINT16_MAX, 1242, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1243, UINT16_MAX, 1243, 556, 4, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1244, UINT16_MAX, 1244, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1245, UINT16_MAX, 1245, 560, 2, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1200, 1246, UINT16_MAX, 1246, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1246, UINT16_MAX, 1246, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1247, UINT16_MAX, 1247, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1248, UINT16_MAX, 1248, 562, 8, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1249, UINT16_MAX, 1249, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1250, UINT16_MAX, 1250, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1251, UINT16_MAX, 1251, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1252, UINT16_MAX, 1252, 570, 6, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17637, UINT16_MAX, 1255, UINT16_MAX, 1255, 576, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17640, UINT16_MAX, 1258, UINT16_MAX, 1258, 579, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17643, UINT16_MAX, 1261, UINT16_MAX, 1261, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17646, UINT16_MAX, 1264, UINT16_MAX, 1264, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17649, UINT16_MAX, 1267, UINT16_MAX, 1267, 582, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1268, UINT16_MAX, 1268, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1186, 1186, 1232, UINT16_MAX, 1232, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1192, 1192, 1238, UINT16_MAX, 1238, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1248, UINT16_MAX, UINT16_MAX, 1269, UINT16_MAX, 583, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17654, UINT16_MAX, UINT16_MAX, 1272, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17657, UINT16_MAX, UINT16_MAX, 1275, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1203, 1203, 1249, UINT16_MAX, 1249, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1198, 1198, 1244, UINT16_MAX, 1244, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1276, UINT16_MAX, 1276, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1277, UINT16_MAX, 1277, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1278, UINT16_MAX, 1278, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1279, UINT16_MAX, 1279, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1280, UINT16_MAX, 1280, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1281, UINT16_MAX, 1281, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1282, UINT16_MAX, 1282, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1283, UINT16_MAX, 1283, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1284, UINT16_MAX, 1284, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1285, UINT16_MAX, 1285, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1286, UINT16_MAX, 1286, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1287, UINT16_MAX, 1287, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1288, UINT16_MAX, 1288, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1289, UINT16_MAX, 1289, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1290, UINT16_MAX, 1290, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1291, UINT16_MAX, 1291, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1292, UINT16_MAX, 1292, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1293, UINT16_MAX, 1293, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1294, UINT16_MAX, 1294, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1295, UINT16_MAX, 1295, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1296, UINT16_MAX, 1296, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1297, UINT16_MAX, 1297, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1298, UINT16_MAX, 1298, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1299, UINT16_MAX, 1299, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1300, UINT16_MAX, 1300, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1193, 1193, 1239, UINT16_MAX, 1239, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1199, 1199, 1245, UINT16_MAX, 1245, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1301, UINT16_MAX, 1302, UINT16_MAX, 1302, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1303, UINT16_MAX, 1303, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1238, 1192, UINT16_MAX, 1192, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1189, 1189, 1235, UINT16_MAX, 1235, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1304, UINT16_MAX, 1304, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1305, UINT16_MAX, 1305, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1246, 1306, UINT16_MAX, 1306, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1307, UINT16_MAX, 1307, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1308, UINT16_MAX, 1308, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1309, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1310, UINT16_MAX, 1310, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1311, UINT16_MAX, 1311, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1312, UINT16_MAX, 1312, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17697, 1315, UINT16_MAX, 1315, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17700, 1318, UINT16_MAX, 1318, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1319, UINT16_MAX, 1319, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17704, 1322, UINT16_MAX, 1322, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1323, UINT16_MAX, 1323, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1324, UINT16_MAX, 1324, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1325, UINT16_MAX, 1325, UINT16_MAX, 585, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17710, 1328, UINT16_MAX, 1328, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1329, UINT16_MAX, 1329, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1330, UINT16_MAX, 1330, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1331, UINT16_MAX, 1331, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1332, UINT16_MAX, 1332, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17717, 1335, UINT16_MAX, 1335, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17720, 1338, UINT16_MAX, 1338, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17723, 1341, UINT16_MAX, 1341, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1342, UINT16_MAX, 1342, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1343, UINT16_MAX, 1343, UINT16_MAX, 586, 2, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1344, UINT16_MAX, 1344, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1345, UINT16_MAX, 1345, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1346, UINT16_MAX, 1346, UINT16_MAX, 588, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1347, UINT16_MAX, 1347, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1348, UINT16_MAX, 1348, UINT16_MAX, 589, 3, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1349, UINT16_MAX, 1349, UINT16_MAX, 592, 2, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1350, UINT16_MAX, 1350, UINT16_MAX, 594, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1351, UINT16_MAX, 1351, UINT16_MAX, 595, 4, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17736, 1354, UINT16_MAX, 1354, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1355, UINT16_MAX, 1355, UINT16_MAX, 599, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1356, UINT16_MAX, 1356, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1357, UINT16_MAX, 1357, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1358, UINT16_MAX, 1358, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1359, UINT16_MAX, 1359, UINT16_MAX, 600, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1360, UINT16_MAX, 1360, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1361, UINT16_MAX, 1361, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1362, UINT16_MAX, 1362, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1363, UINT16_MAX, 1363, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1364, UINT16_MAX, 1364, UINT16_MAX, 601, 4, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1365, UINT16_MAX, 1365, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1366, UINT16_MAX, 1366, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1367, UINT16_MAX, 1367, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1368, UINT16_MAX, 1368, UINT16_MAX, 605, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1369, UINT16_MAX, 1369, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1370, UINT16_MAX, 1370, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1371, UINT16_MAX, 1371, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1372, UINT16_MAX, 1372, UINT16_MAX, 606, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1373, UINT16_MAX, 1373, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1374, UINT16_MAX, 1374, UINT16_MAX, 607, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1375, UINT16_MAX, 1375, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1376, UINT16_MAX, 1376, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1377, UINT16_MAX, 1377, 608, 2, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1378, UINT16_MAX, 1378, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1379, UINT16_MAX, 1379, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1380, UINT16_MAX, 1380, 610, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1381, UINT16_MAX, 1381, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1382, UINT16_MAX, 1382, 611, 3, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1383, UINT16_MAX, 1383, 614, 2, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1384, UINT16_MAX, 1384, 616, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1385, UINT16_MAX, 1385, 617, 4, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17770, UINT16_MAX, 1388, UINT16_MAX, 1388, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1389, UINT16_MAX, 1389, 621, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1390, UINT16_MAX, 1390, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1391, UINT16_MAX, 1391, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1392, UINT16_MAX, 1392, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1393, UINT16_MAX, 1393, 622, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1394, UINT16_MAX, 1394, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1395, UINT16_MAX, 1395, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1396, UINT16_MAX, 1396, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1397, UINT16_MAX, 1397, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1398, UINT16_MAX, 1398, 623, 4, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1399, UINT16_MAX, 1399, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1400, UINT16_MAX, 1400, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1401, UINT16_MAX, 1401, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1402, UINT16_MAX, 1402, 627, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1403, UINT16_MAX, 1403, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1404, UINT16_MAX, 1404, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1405, UINT16_MAX, 1405, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1406, UINT16_MAX, 1406, 628, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1407, UINT16_MAX, 1407, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1408, UINT16_MAX, 1408, 629, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1409, UINT16_MAX, 1409, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1410, UINT16_MAX, 1410, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17795, UINT16_MAX, 1413, UINT16_MAX, 1413, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17798, UINT16_MAX, 1416, UINT16_MAX, 1416, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1417, UINT16_MAX, 1417, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17802, UINT16_MAX, 1420, UINT16_MAX, 1420, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1421, UINT16_MAX, 1421, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1422, UINT16_MAX, 1422, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1423, UINT16_MAX, 1423, 630, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17808, UINT16_MAX, 1426, UINT16_MAX, 1426, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1427, UINT16_MAX, 1427, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1428, UINT16_MAX, 1428, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1429, UINT16_MAX, 1429, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1430, UINT16_MAX, 1430, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17815, UINT16_MAX, 1433, UINT16_MAX, 1433, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17818, UINT16_MAX, 1436, UINT16_MAX, 1436, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17821, UINT16_MAX, 1439, UINT16_MAX, 1439, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1440, UINT16_MAX, 1440, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1441, UINT16_MAX, 1441, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1442, UINT16_MAX, 1442, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1443, UINT16_MAX, 1443, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1444, UINT16_MAX, 1444, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1445, UINT16_MAX, 1445, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1446, UINT16_MAX, 1446, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1447, UINT16_MAX, 1447, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1448, UINT16_MAX, 1448, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1449, UINT16_MAX, 1449, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1450, UINT16_MAX, 1450, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1451, UINT16_MAX, 1451, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1452, UINT16_MAX, 1452, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1453, UINT16_MAX, 1453, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1454, UINT16_MAX, 1454, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1455, UINT16_MAX, 1455, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1456, UINT16_MAX, 1456, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1457, UINT16_MAX, 1457, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1458, UINT16_MAX, 1458, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1459, UINT16_MAX, 1459, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1460, UINT16_MAX, 1460, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1461, UINT16_MAX, 1461, UINT16_MAX, 631, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1462, UINT16_MAX, 1462, 632, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17847, 1465, UINT16_MAX, 1465, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17850, UINT16_MAX, 1468, UINT16_MAX, 1468, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1469, UINT16_MAX, 1469, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1470, UINT16_MAX, 1470, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1471, UINT16_MAX, 1471, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1472, UINT16_MAX, 1472, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1473, UINT16_MAX, 1473, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1474, UINT16_MAX, 1474, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1475, UINT16_MAX, 1475, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1476, UINT16_MAX, 1476, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1477, UINT16_MAX, 1477, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1478, UINT16_MAX, 1478, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_ME, 0, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1479, UINT16_MAX, 1479, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1480, UINT16_MAX, 1480, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1481, UINT16_MAX, 1481, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1482, UINT16_MAX, 1482, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1483, UINT16_MAX, 1483, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1484, UINT16_MAX, 1484, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1485, UINT16_MAX, 1485, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1486, UINT16_MAX, 1486, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1487, UINT16_MAX, 1487, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1488, UINT16_MAX, 1488, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1489, UINT16_MAX, 1489, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1490, UINT16_MAX, 1490, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1491, UINT16_MAX, 1491, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1492, UINT16_MAX, 1492, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1493, UINT16_MAX, 1493, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1494, UINT16_MAX, 1494, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1495, UINT16_MAX, 1495, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1496, UINT16_MAX, 1496, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1497, UINT16_MAX, 1497, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1498, UINT16_MAX, 1498, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1499, UINT16_MAX, 1499, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1500, UINT16_MAX, 1500, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1501, UINT16_MAX, 1501, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1502, UINT16_MAX, 1502, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1503, UINT16_MAX, 1503, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1504, UINT16_MAX, 1504, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1505, UINT16_MAX, 1505, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1506, UINT16_MAX, 1506, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1507, UINT16_MAX, 1507, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1508, UINT16_MAX, 1508, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1509, UINT16_MAX, 1509, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1510, UINT16_MAX, 1510, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1511, UINT16_MAX, 1511, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1512, UINT16_MAX, 1512, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1513, UINT16_MAX, 1513, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1514, UINT16_MAX, 1514, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1515, UINT16_MAX, 1515, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1516, UINT16_MAX, 1516, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1517, UINT16_MAX, 1517, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1518, UINT16_MAX, 1518, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1519, UINT16_MAX, 1519, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1520, UINT16_MAX, 1520, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1521, UINT16_MAX, 1521, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1522, UINT16_MAX, 1522, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1523, UINT16_MAX, 1523, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1524, UINT16_MAX, 1524, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1525, UINT16_MAX, 1525, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1526, UINT16_MAX, 1526, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1527, UINT16_MAX, 1527, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1528, UINT16_MAX, 1528, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1529, UINT16_MAX, 1529, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1530, UINT16_MAX, 1530, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1531, UINT16_MAX, 1531, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1532, UINT16_MAX, 1532, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1533, UINT16_MAX, 1533, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17918, 1536, UINT16_MAX, 1536, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17921, UINT16_MAX, 1539, UINT16_MAX, 1539, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1540, UINT16_MAX, 1540, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1541, UINT16_MAX, 1541, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1542, UINT16_MAX, 1542, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1543, UINT16_MAX, 1543, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1544, UINT16_MAX, 1544, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1545, UINT16_MAX, 1545, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1546, UINT16_MAX, 1546, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1547, UINT16_MAX, 1547, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1548, UINT16_MAX, 1548, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1549, UINT16_MAX, 1549, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1550, UINT16_MAX, 1550, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1551, UINT16_MAX, 1551, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1552, UINT16_MAX, 1552, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17937, 1555, UINT16_MAX, 1555, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17940, UINT16_MAX, 1558, UINT16_MAX, 1558, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17943, 1561, UINT16_MAX, 1561, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17946, UINT16_MAX, 1564, UINT16_MAX, 1564, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1565, UINT16_MAX, 1565, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1566, UINT16_MAX, 1566, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17951, 1569, UINT16_MAX, 1569, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17954, UINT16_MAX, 1572, UINT16_MAX, 1572, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1573, UINT16_MAX, 1573, UINT16_MAX, 633, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1574, UINT16_MAX, 1574, 634, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17959, 1577, UINT16_MAX, 1577, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17962, UINT16_MAX, 1580, UINT16_MAX, 1580, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17965, 1583, UINT16_MAX, 1583, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17968, UINT16_MAX, 1586, UINT16_MAX, 1586, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17971, 1589, UINT16_MAX, 1589, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17974, UINT16_MAX, 1592, UINT16_MAX, 1592, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1593, UINT16_MAX, 1593, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1594, UINT16_MAX, 1594, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17979, 1597, UINT16_MAX, 1597, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17982, UINT16_MAX, 1600, UINT16_MAX, 1600, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17985, 1603, UINT16_MAX, 1603, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17988, UINT16_MAX, 1606, UINT16_MAX, 1606, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17991, 1609, UINT16_MAX, 1609, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 17994, UINT16_MAX, 1612, UINT16_MAX, 1612, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1613, UINT16_MAX, 1613, UINT16_MAX, 635, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1614, UINT16_MAX, 1614, 636, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 17999, 1617, UINT16_MAX, 1617, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18002, UINT16_MAX, 1620, UINT16_MAX, 1620, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18005, 1623, UINT16_MAX, 1623, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18008, UINT16_MAX, 1626, UINT16_MAX, 1626, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18011, 1629, UINT16_MAX, 1629, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18014, UINT16_MAX, 1632, UINT16_MAX, 1632, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18017, 1635, UINT16_MAX, 1635, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18020, UINT16_MAX, 1638, UINT16_MAX, 1638, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18023, 1641, UINT16_MAX, 1641, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18026, UINT16_MAX, 1644, UINT16_MAX, 1644, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18029, 1647, UINT16_MAX, 1647, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18032, UINT16_MAX, 1650, UINT16_MAX, 1650, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1651, UINT16_MAX, 1651, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1652, UINT16_MAX, 1652, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18037, 1655, UINT16_MAX, 1655, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18040, UINT16_MAX, 1658, UINT16_MAX, 1658, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1659, UINT16_MAX, 1659, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1660, UINT16_MAX, 1660, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1661, UINT16_MAX, 1661, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1662, UINT16_MAX, 1662, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1663, UINT16_MAX, 1663, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1664, UINT16_MAX, 1664, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1665, UINT16_MAX, 1665, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1666, UINT16_MAX, 1666, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1667, UINT16_MAX, 1667, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1668, UINT16_MAX, 1668, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1669, UINT16_MAX, 1669, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1670, UINT16_MAX, 1670, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1671, UINT16_MAX, 1671, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1672, UINT16_MAX, 1672, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1673, UINT16_MAX, 1673, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1674, UINT16_MAX, 1674, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1675, UINT16_MAX, 1675, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1676, UINT16_MAX, 1676, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1677, UINT16_MAX, 1677, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1678, UINT16_MAX, 1678, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1679, UINT16_MAX, 1679, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1680, UINT16_MAX, 1680, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1681, UINT16_MAX, 1681, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1682, UINT16_MAX, 1682, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1683, UINT16_MAX, 1683, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1684, UINT16_MAX, 1684, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1685, UINT16_MAX, 1685, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1686, UINT16_MAX, 1686, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1687, UINT16_MAX, 1687, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1688, UINT16_MAX, 1688, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1689, UINT16_MAX, 1689, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1690, UINT16_MAX, 1690, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1691, UINT16_MAX, 1691, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1692, UINT16_MAX, 1692, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1693, UINT16_MAX, 1693, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1694, UINT16_MAX, 1694, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1695, UINT16_MAX, 1695, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1696, UINT16_MAX, 1696, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1697, UINT16_MAX, 1697, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1698, UINT16_MAX, 1698, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1699, UINT16_MAX, 1699, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1700, UINT16_MAX, 1700, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1701, UINT16_MAX, 1701, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1702, UINT16_MAX, 1702, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1703, UINT16_MAX, 1703, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1704, UINT16_MAX, 1704, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1705, UINT16_MAX, 1705, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1706, UINT16_MAX, 1706, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1707, UINT16_MAX, 1707, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1708, UINT16_MAX, 1708, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1709, UINT16_MAX, 1709, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1710, UINT16_MAX, 1710, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1711, UINT16_MAX, 1711, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1712, UINT16_MAX, 1712, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1713, UINT16_MAX, 1713, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1714, UINT16_MAX, 1714, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1715, UINT16_MAX, 1715, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1716, UINT16_MAX, 1716, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1717, UINT16_MAX, 1717, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1718, UINT16_MAX, 1718, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1719, UINT16_MAX, 1719, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1720, UINT16_MAX, 1720, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1721, UINT16_MAX, 1721, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1722, UINT16_MAX, 1722, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1723, UINT16_MAX, 1723, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1724, UINT16_MAX, 1724, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1725, UINT16_MAX, 1725, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1726, UINT16_MAX, 1726, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1727, UINT16_MAX, 1727, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1728, UINT16_MAX, 1728, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1729, UINT16_MAX, 1729, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1730, UINT16_MAX, 1730, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1731, UINT16_MAX, 1731, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1732, UINT16_MAX, 1732, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1733, UINT16_MAX, 1733, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1734, UINT16_MAX, 1734, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1735, UINT16_MAX, 1735, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1736, UINT16_MAX, 1736, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1737, UINT16_MAX, 1737, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1738, UINT16_MAX, 1738, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1739, UINT16_MAX, 1739, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1740, UINT16_MAX, 1740, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1741, UINT16_MAX, 1741, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1742, UINT16_MAX, 1742, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1743, UINT16_MAX, 1743, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1744, UINT16_MAX, 1744, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1745, UINT16_MAX, 1745, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1746, UINT16_MAX, 1746, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1747, UINT16_MAX, 1747, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1748, UINT16_MAX, 1748, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1749, UINT16_MAX, 1749, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1750, UINT16_MAX, 1750, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1751, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1752, UINT16_MAX, 1752, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1753, UINT16_MAX, 1753, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1754, UINT16_MAX, 1754, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1755, UINT16_MAX, 1755, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1756, UINT16_MAX, 1756, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1757, UINT16_MAX, 1757, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1758, UINT16_MAX, 1758, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1759, UINT16_MAX, 1759, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1760, UINT16_MAX, 1760, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1761, UINT16_MAX, 1761, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1762, UINT16_MAX, 1762, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1763, UINT16_MAX, 1763, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1764, UINT16_MAX, 1764, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1765, UINT16_MAX, 1765, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1766, UINT16_MAX, 1766, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1767, UINT16_MAX, 1767, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1768, UINT16_MAX, 1768, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1769, UINT16_MAX, 1769, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1770, UINT16_MAX, 1770, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1771, UINT16_MAX, 1771, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1772, UINT16_MAX, 1772, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1773, UINT16_MAX, 1773, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1774, UINT16_MAX, 1774, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1775, UINT16_MAX, 1775, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1776, UINT16_MAX, 1776, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1777, UINT16_MAX, 1777, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1778, UINT16_MAX, 1778, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1779, UINT16_MAX, 1779, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1780, UINT16_MAX, 1780, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1781, UINT16_MAX, 1781, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1782, UINT16_MAX, 1782, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1783, UINT16_MAX, 1783, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1784, UINT16_MAX, 1784, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1785, UINT16_MAX, 1785, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1786, UINT16_MAX, 1786, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1787, UINT16_MAX, 1787, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1788, UINT16_MAX, 1788, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1789, UINT16_MAX, 1789, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 18174, 18174, 1792, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1793, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 222, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 228, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 10, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 11, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 12, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 13, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 14, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 15, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 16, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 17, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 18, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 19, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 20, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 21, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 22, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 23, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 24, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 25, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_AN, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, true, 0, false, 0, UTF8PROC_BOUNDCLASS_PREPEND, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 30, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 31, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 32, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 18178, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 18180, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 18182, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 18184, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 18186, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 637, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 640, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 641, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 27, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 28, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 29, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 33, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 34, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, true, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, true, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_AN, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AN, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 35, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, 18188, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, 18190, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, 18192, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, 18194, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 18196, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 642, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 18198, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 643, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 18200, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 644, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, true, 0, false, 0, UTF8PROC_BOUNDCLASS_PREPEND, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 36, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 645, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18202, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 646, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18204, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 647, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18206, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_MN, 7, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, true, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_LINKER}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18208, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18210, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18212, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18214, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18216, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18218, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18220, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18222, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 7, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, true, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 648, 2, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18224, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18226, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18228, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18230, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18232, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18234, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18236, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18238, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18240, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18242, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18244, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 650, 3, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18246, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18248, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18250, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, true, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18252, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18254, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_CONSONANT}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 653, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18256, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 654, 2, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 656, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18258, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18260, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18262, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 657, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 18264, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 84, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 91, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, true, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 658, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18266, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 659, 3, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18268, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18270, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18272, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 662, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18274, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 663, 2, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 665, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18276, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18278, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18280, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_PREPEND, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, true, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 666, 3, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18282, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18284, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 669, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18286, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18288, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 18290, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 103, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 107, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 18292, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 118, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 122, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 18294, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 18296, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NOBREAK, 1914, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 216, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18299, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18301, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18303, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18305, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18307, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18309, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 129, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 130, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 18311, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 132, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 18313, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 18315, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, UTF8PROC_DECOMP_TYPE_COMPAT, 18317, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 18319, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, UTF8PROC_DECOMP_TYPE_COMPAT, 18321, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 18323, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 18325, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 18327, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 18329, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 18331, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 18333, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 18335, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 670, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18337, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1955, UINT16_MAX, 1955, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1956, UINT16_MAX, 1956, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1957, UINT16_MAX, 1957, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1958, UINT16_MAX, 1958, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1959, UINT16_MAX, 1959, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1960, UINT16_MAX, 1960, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1961, UINT16_MAX, 1961, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1962, UINT16_MAX, 1962, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1963, UINT16_MAX, 1963, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1964, UINT16_MAX, 1964, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1965, UINT16_MAX, 1965, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1966, UINT16_MAX, 1966, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1967, UINT16_MAX, 1967, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1968, UINT16_MAX, 1968, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1969, UINT16_MAX, 1969, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1970, UINT16_MAX, 1970, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1971, UINT16_MAX, 1971, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1972, UINT16_MAX, 1972, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1973, UINT16_MAX, 1973, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1974, UINT16_MAX, 1974, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1975, UINT16_MAX, 1975, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1976, UINT16_MAX, 1976, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1977, UINT16_MAX, 1977, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1978, UINT16_MAX, 1978, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1979, UINT16_MAX, 1979, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1980, UINT16_MAX, 1980, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1981, UINT16_MAX, 1981, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1982, UINT16_MAX, 1982, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1983, UINT16_MAX, 1983, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1984, UINT16_MAX, 1984, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1985, UINT16_MAX, 1985, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1986, UINT16_MAX, 1986, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1987, UINT16_MAX, 1987, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1988, UINT16_MAX, 1988, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1989, UINT16_MAX, 1989, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1990, UINT16_MAX, 1990, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1991, UINT16_MAX, 1991, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1992, UINT16_MAX, 1992, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1993, UINT16_MAX, 1993, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1994, UINT16_MAX, 1994, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1995, UINT16_MAX, 1996, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1997, UINT16_MAX, 1998, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 1999, UINT16_MAX, 2000, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2001, UINT16_MAX, 2002, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2003, UINT16_MAX, 2004, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2005, UINT16_MAX, 2006, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2007, UINT16_MAX, 2008, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2009, UINT16_MAX, 2010, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2011, UINT16_MAX, 2012, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2013, UINT16_MAX, 2014, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2015, UINT16_MAX, 2016, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2017, UINT16_MAX, 2018, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2019, UINT16_MAX, 2020, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2021, UINT16_MAX, 2022, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2023, UINT16_MAX, 2024, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2025, UINT16_MAX, 2026, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2027, UINT16_MAX, 2028, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2029, UINT16_MAX, 2030, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2031, UINT16_MAX, 2032, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2033, UINT16_MAX, 2034, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2035, UINT16_MAX, 2036, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2037, UINT16_MAX, 2038, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2039, UINT16_MAX, 2040, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2041, UINT16_MAX, 2042, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2043, UINT16_MAX, 2044, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2045, UINT16_MAX, 2046, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2047, UINT16_MAX, 2048, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2049, UINT16_MAX, 2050, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2051, UINT16_MAX, 2052, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2053, UINT16_MAX, 2054, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2055, UINT16_MAX, 2056, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2057, UINT16_MAX, 2058, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2059, UINT16_MAX, 2060, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2061, UINT16_MAX, 2062, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2063, UINT16_MAX, 2064, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2065, UINT16_MAX, 2066, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2067, UINT16_MAX, 2068, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2069, UINT16_MAX, 2070, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2071, UINT16_MAX, 2072, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2073, UINT16_MAX, 2074, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2075, UINT16_MAX, 2076, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2077, UINT16_MAX, 2078, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2079, UINT16_MAX, 2080, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2020, UINT16_MAX, 2081, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2082, UINT16_MAX, 2083, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2084, UINT16_MAX, 2085, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2086, UINT16_MAX, 2087, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_L, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, false, 2, false, 0, UTF8PROC_BOUNDCLASS_L, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, false, 1, false, 0, UTF8PROC_BOUNDCLASS_V, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_V, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_T, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2088, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2089, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2090, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2091, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2092, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2093, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2094, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2095, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2096, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2097, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2098, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2099, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2100, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2101, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2102, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2103, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2104, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2105, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2106, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2107, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2108, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2109, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2110, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2111, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2112, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2113, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2114, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2115, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2116, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2117, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2118, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2119, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2120, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2121, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2122, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2123, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2124, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2125, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2126, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2127, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2128, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2129, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2130, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2131, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2132, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2133, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2134, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2135, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2136, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2137, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2138, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2139, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2140, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2141, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2142, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2143, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2144, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2145, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2146, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2147, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2148, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2149, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2150, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2151, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2152, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2153, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2154, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2155, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2156, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2157, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2158, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2159, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2160, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2161, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2162, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2163, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2164, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2165, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2166, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2167, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2168, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2169, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2170, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2171, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2172, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 2173, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2174, 2174, UINT16_MAX, 2174, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2175, 2175, UINT16_MAX, 2175, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2176, 2176, UINT16_MAX, 2176, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2177, 2177, UINT16_MAX, 2177, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2178, 2178, UINT16_MAX, 2178, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2179, 2179, UINT16_MAX, 2179, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 9, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_BN, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 671, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18564, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 672, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18566, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 673, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18568, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 674, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18570, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 675, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18572, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 676, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18574, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 677, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18576, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 678, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18578, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 679, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 680, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18580, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18582, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 681, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 18584, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1345, 1379, UINT16_MAX, 1379, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1347, 1381, UINT16_MAX, 1381, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1359, 1393, UINT16_MAX, 1393, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1362, 1396, UINT16_MAX, 1396, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1363, 1397, UINT16_MAX, 1397, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1371, 1405, UINT16_MAX, 1405, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1443, 1444, UINT16_MAX, 1444, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2202, 2203, UINT16_MAX, 2203, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2204, UINT16_MAX, 2204, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2205, UINT16_MAX, 2205, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1996, UINT16_MAX, 1996, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1998, UINT16_MAX, 1998, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2000, UINT16_MAX, 2000, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2002, UINT16_MAX, 2002, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2004, UINT16_MAX, 2004, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2006, UINT16_MAX, 2006, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2008, UINT16_MAX, 2008, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2010, UINT16_MAX, 2010, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2012, UINT16_MAX, 2012, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2014, UINT16_MAX, 2014, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2016, UINT16_MAX, 2016, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2018, UINT16_MAX, 2018, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2020, UINT16_MAX, 2020, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2022, UINT16_MAX, 2022, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2024, UINT16_MAX, 2024, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2026, UINT16_MAX, 2026, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2028, UINT16_MAX, 2028, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2030, UINT16_MAX, 2030, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2032, UINT16_MAX, 2032, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2034, UINT16_MAX, 2034, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2036, UINT16_MAX, 2036, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2038, UINT16_MAX, 2038, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2040, UINT16_MAX, 2040, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2042, UINT16_MAX, 2042, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2044, UINT16_MAX, 2044, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2046, UINT16_MAX, 2046, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2048, UINT16_MAX, 2048, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2050, UINT16_MAX, 2050, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2052, UINT16_MAX, 2052, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2054, UINT16_MAX, 2054, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2056, UINT16_MAX, 2056, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2058, UINT16_MAX, 2058, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2060, UINT16_MAX, 2060, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2062, UINT16_MAX, 2062, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2064, UINT16_MAX, 2064, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2066, UINT16_MAX, 2066, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2068, UINT16_MAX, 2068, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2070, UINT16_MAX, 2070, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2072, UINT16_MAX, 2072, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2074, UINT16_MAX, 2074, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2076, UINT16_MAX, 2076, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2078, UINT16_MAX, 2078, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2080, UINT16_MAX, 2080, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2083, UINT16_MAX, 2083, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2085, UINT16_MAX, 2085, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2087, UINT16_MAX, 2087, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 1, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2206, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2207, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2208, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2209, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2210, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2211, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2212, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2213, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2214, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2215, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2216, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2217, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2218, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2219, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2220, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2221, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2222, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2223, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2224, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2225, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2226, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2227, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2228, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2229, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2230, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2231, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2232, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2233, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2234, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2235, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2236, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2237, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2238, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2239, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2240, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2241, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2242, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2243, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2244, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2245, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2246, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2247, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2248, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2249, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 26, UINT16_MAX, 2250, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 180, UINT16_MAX, 2251, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 27, UINT16_MAX, 2252, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2253, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 29, UINT16_MAX, 2254, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 30, UINT16_MAX, 2255, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 746, UINT16_MAX, 2256, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 32, UINT16_MAX, 2257, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 33, UINT16_MAX, 2258, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 34, UINT16_MAX, 2259, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 35, UINT16_MAX, 2260, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 36, UINT16_MAX, 2261, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 37, UINT16_MAX, 2262, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 38, UINT16_MAX, 2263, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 39, UINT16_MAX, 2264, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2265, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 40, UINT16_MAX, 2266, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 936, UINT16_MAX, 2267, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 41, UINT16_MAX, 2268, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 43, UINT16_MAX, 2269, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 45, UINT16_MAX, 2270, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 46, UINT16_MAX, 2271, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 48, UINT16_MAX, 2272, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 0, UINT16_MAX, 2273, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2274, UINT16_MAX, 2275, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2276, UINT16_MAX, 2277, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2208, UINT16_MAX, 2278, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1, UINT16_MAX, 2279, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 3, UINT16_MAX, 2280, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 4, UINT16_MAX, 2281, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 615, UINT16_MAX, 2282, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 616, UINT16_MAX, 2283, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2284, UINT16_MAX, 2285, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 6, UINT16_MAX, 2286, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2287, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 10, UINT16_MAX, 2288, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 12, UINT16_MAX, 2289, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 453, UINT16_MAX, 2290, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 14, UINT16_MAX, 2291, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 606, UINT16_MAX, 2292, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2228, UINT16_MAX, 2293, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2229, UINT16_MAX, 2294, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 15, UINT16_MAX, 2295, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 19, UINT16_MAX, 2296, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 20, UINT16_MAX, 2297, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2235, UINT16_MAX, 2298, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 628, UINT16_MAX, 2299, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 21, UINT16_MAX, 2300, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2243, UINT16_MAX, 2301, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1186, UINT16_MAX, 2302, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1187, UINT16_MAX, 2303, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1188, UINT16_MAX, 2304, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1203, UINT16_MAX, 2305, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1204, UINT16_MAX, 2306, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 8, UINT16_MAX, 2307, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 17, UINT16_MAX, 2308, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 20, UINT16_MAX, 2309, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 21, UINT16_MAX, 2310, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1186, UINT16_MAX, 2311, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1187, UINT16_MAX, 2312, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1199, UINT16_MAX, 2313, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1203, UINT16_MAX, 2314, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1204, UINT16_MAX, 2315, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2316, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2317, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2318, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2319, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2320, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2321, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2322, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2323, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2324, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2325, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2326, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2327, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2328, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1358, UINT16_MAX, 2329, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2330, UINT16_MAX, 2330, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2331, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2332, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2333, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2334, UINT16_MAX, 2334, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2335, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2336, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2337, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2338, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2339, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2340, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2341, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2342, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2343, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2344, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2345, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2346, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2347, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2348, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2349, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2350, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2351, UINT16_MAX, 2351, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2352, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2353, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2354, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2355, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2356, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2357, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2358, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2359, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2360, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2361, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2362, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2363, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2364, UINT16_MAX, 2365, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2, UINT16_MAX, 2366, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1014, UINT16_MAX, 2367, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 123, UINT16_MAX, 2368, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2284, UINT16_MAX, 2369, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 5, UINT16_MAX, 2370, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1024, UINT16_MAX, 2371, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2372, UINT16_MAX, 2373, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2374, UINT16_MAX, 2375, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 623, UINT16_MAX, 2376, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 622, UINT16_MAX, 2377, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2378, UINT16_MAX, 2379, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2332, UINT16_MAX, 2380, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2381, UINT16_MAX, 2382, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1038, UINT16_MAX, 2383, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2342, UINT16_MAX, 2384, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1087, UINT16_MAX, 2385, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2386, UINT16_MAX, 2387, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1041, UINT16_MAX, 2388, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 629, UINT16_MAX, 2389, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1044, UINT16_MAX, 2390, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1045, UINT16_MAX, 2391, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 631, UINT16_MAX, 2392, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1049, UINT16_MAX, 2393, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2394, UINT16_MAX, 2395, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 645, UINT16_MAX, 2396, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 647, UINT16_MAX, 2397, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 997, UINT16_MAX, 2398, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 657, UINT16_MAX, 2399, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2234, UINT16_MAX, 2400, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 658, UINT16_MAX, 2401, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 998, UINT16_MAX, 2402, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 25, UINT16_MAX, 2403, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1073, UINT16_MAX, 2404, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1074, UINT16_MAX, 2405, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 663, UINT16_MAX, 2406, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1192, UINT16_MAX, 2407, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 234, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 214, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 232, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 218, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 233, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18792, 2410, UINT16_MAX, 2410, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18795, UINT16_MAX, 2413, UINT16_MAX, 2413, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18798, 2416, UINT16_MAX, 2416, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18801, UINT16_MAX, 2419, UINT16_MAX, 2419, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18804, 2422, UINT16_MAX, 2422, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18807, UINT16_MAX, 2425, UINT16_MAX, 2425, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18810, 2428, UINT16_MAX, 2428, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18813, UINT16_MAX, 2431, UINT16_MAX, 2431, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18816, 2434, UINT16_MAX, 2434, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18819, UINT16_MAX, 2437, UINT16_MAX, 2437, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18822, 2440, UINT16_MAX, 2440, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18825, UINT16_MAX, 2443, UINT16_MAX, 2443, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18828, 2446, UINT16_MAX, 2446, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18831, UINT16_MAX, 2449, UINT16_MAX, 2449, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18834, 2452, UINT16_MAX, 2452, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18837, UINT16_MAX, 2455, UINT16_MAX, 2455, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18840, 2458, UINT16_MAX, 2458, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18843, UINT16_MAX, 2461, UINT16_MAX, 2461, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18846, 2464, UINT16_MAX, 2464, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18849, UINT16_MAX, 2467, UINT16_MAX, 2467, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18852, 2470, UINT16_MAX, 2470, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18855, UINT16_MAX, 2473, UINT16_MAX, 2473, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18858, 2476, UINT16_MAX, 2476, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18861, UINT16_MAX, 2479, UINT16_MAX, 2479, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18864, 2482, UINT16_MAX, 2482, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18867, UINT16_MAX, 2485, UINT16_MAX, 2485, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18870, 2488, UINT16_MAX, 2488, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18873, UINT16_MAX, 2491, UINT16_MAX, 2491, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18876, 2494, UINT16_MAX, 2494, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18879, UINT16_MAX, 2497, UINT16_MAX, 2497, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18882, 2500, UINT16_MAX, 2500, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18885, UINT16_MAX, 2503, UINT16_MAX, 2503, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18888, 2506, UINT16_MAX, 2506, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18891, UINT16_MAX, 2509, UINT16_MAX, 2509, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18894, 2512, UINT16_MAX, 2512, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18897, UINT16_MAX, 2515, UINT16_MAX, 2515, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18900, 2518, UINT16_MAX, 2518, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18903, UINT16_MAX, 2521, UINT16_MAX, 2521, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18906, 2524, UINT16_MAX, 2524, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18909, UINT16_MAX, 2527, UINT16_MAX, 2527, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18912, 2530, UINT16_MAX, 2530, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18915, UINT16_MAX, 2533, UINT16_MAX, 2533, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18918, 2536, UINT16_MAX, 2536, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18921, UINT16_MAX, 2539, UINT16_MAX, 2539, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18924, 2542, UINT16_MAX, 2542, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18927, UINT16_MAX, 2545, UINT16_MAX, 2545, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18930, 2548, UINT16_MAX, 2548, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18933, UINT16_MAX, 2551, UINT16_MAX, 2551, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18936, 2554, UINT16_MAX, 2554, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18939, UINT16_MAX, 2557, UINT16_MAX, 2557, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18942, 2560, UINT16_MAX, 2560, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18945, UINT16_MAX, 2563, UINT16_MAX, 2563, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18948, 2566, UINT16_MAX, 2566, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18951, UINT16_MAX, 2569, UINT16_MAX, 2569, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18954, 2572, UINT16_MAX, 2572, UINT16_MAX, 682, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18957, UINT16_MAX, 2575, UINT16_MAX, 2575, 683, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18960, 2578, UINT16_MAX, 2578, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18963, UINT16_MAX, 2581, UINT16_MAX, 2581, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18966, 2584, UINT16_MAX, 2584, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18969, UINT16_MAX, 2587, UINT16_MAX, 2587, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18972, 2590, UINT16_MAX, 2590, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18975, UINT16_MAX, 2593, UINT16_MAX, 2593, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18978, 2596, UINT16_MAX, 2596, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18981, UINT16_MAX, 2599, UINT16_MAX, 2599, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18984, 2602, UINT16_MAX, 2602, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18987, UINT16_MAX, 2605, UINT16_MAX, 2605, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18990, 2608, UINT16_MAX, 2608, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18993, UINT16_MAX, 2611, UINT16_MAX, 2611, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 18996, 2614, UINT16_MAX, 2614, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 18999, UINT16_MAX, 2617, UINT16_MAX, 2617, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19002, 2620, UINT16_MAX, 2620, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19005, UINT16_MAX, 2623, UINT16_MAX, 2623, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19008, 2626, UINT16_MAX, 2626, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19011, UINT16_MAX, 2629, UINT16_MAX, 2629, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19014, 2632, UINT16_MAX, 2632, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19017, UINT16_MAX, 2635, UINT16_MAX, 2635, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19020, 2638, UINT16_MAX, 2638, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19023, UINT16_MAX, 2641, UINT16_MAX, 2641, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19026, 2644, UINT16_MAX, 2644, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19029, UINT16_MAX, 2647, UINT16_MAX, 2647, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19032, 2650, UINT16_MAX, 2650, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19035, UINT16_MAX, 2653, UINT16_MAX, 2653, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19038, 2656, UINT16_MAX, 2656, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19041, UINT16_MAX, 2659, UINT16_MAX, 2659, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19044, 2662, UINT16_MAX, 2662, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19047, UINT16_MAX, 2665, UINT16_MAX, 2665, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19050, 2668, UINT16_MAX, 2668, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19053, UINT16_MAX, 2671, UINT16_MAX, 2671, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19056, 2674, UINT16_MAX, 2674, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19059, UINT16_MAX, 2677, UINT16_MAX, 2677, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19062, 2680, UINT16_MAX, 2680, UINT16_MAX, 684, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19065, UINT16_MAX, 2683, UINT16_MAX, 2683, 685, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19068, 2686, UINT16_MAX, 2686, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19071, UINT16_MAX, 2689, UINT16_MAX, 2689, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19074, 2692, UINT16_MAX, 2692, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19077, UINT16_MAX, 2695, UINT16_MAX, 2695, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19080, 2698, UINT16_MAX, 2698, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19083, UINT16_MAX, 2701, UINT16_MAX, 2701, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19086, 2704, UINT16_MAX, 2704, UINT16_MAX, 686, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19089, UINT16_MAX, 2707, UINT16_MAX, 2707, 687, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19092, 2710, UINT16_MAX, 2710, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19095, UINT16_MAX, 2713, UINT16_MAX, 2713, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19098, 2716, UINT16_MAX, 2716, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19101, UINT16_MAX, 2719, UINT16_MAX, 2719, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19104, 2722, UINT16_MAX, 2722, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19107, UINT16_MAX, 2725, UINT16_MAX, 2725, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19110, 2728, UINT16_MAX, 2728, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19113, UINT16_MAX, 2731, UINT16_MAX, 2731, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19116, 2734, UINT16_MAX, 2734, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19119, UINT16_MAX, 2737, UINT16_MAX, 2737, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19122, 2740, UINT16_MAX, 2740, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19125, UINT16_MAX, 2743, UINT16_MAX, 2743, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19128, 2746, UINT16_MAX, 2746, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19131, UINT16_MAX, 2749, UINT16_MAX, 2749, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19134, 2752, UINT16_MAX, 2752, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19137, UINT16_MAX, 2755, UINT16_MAX, 2755, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19140, 2758, UINT16_MAX, 2758, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19143, UINT16_MAX, 2761, UINT16_MAX, 2761, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19146, 2764, UINT16_MAX, 2764, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19149, UINT16_MAX, 2767, UINT16_MAX, 2767, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19152, 2770, UINT16_MAX, 2770, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19155, UINT16_MAX, 2773, UINT16_MAX, 2773, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19158, 2776, UINT16_MAX, 2776, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19161, UINT16_MAX, 2779, UINT16_MAX, 2779, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19164, 2782, UINT16_MAX, 2782, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19167, UINT16_MAX, 2785, UINT16_MAX, 2785, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19170, 2788, UINT16_MAX, 2788, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19173, UINT16_MAX, 2791, UINT16_MAX, 2791, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19176, 2794, UINT16_MAX, 2794, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19179, UINT16_MAX, 2797, UINT16_MAX, 2797, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19182, 2800, UINT16_MAX, 2800, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19185, UINT16_MAX, 2803, UINT16_MAX, 2803, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19188, 2806, UINT16_MAX, 2806, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19191, UINT16_MAX, 2809, UINT16_MAX, 2809, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19194, 2812, UINT16_MAX, 2812, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19197, UINT16_MAX, 2815, UINT16_MAX, 2815, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19200, 2818, UINT16_MAX, 2818, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19203, UINT16_MAX, 2821, UINT16_MAX, 2821, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19206, 2824, UINT16_MAX, 2824, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19209, UINT16_MAX, 2827, UINT16_MAX, 2827, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19212, 2830, UINT16_MAX, 2830, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19215, UINT16_MAX, 2833, UINT16_MAX, 2833, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19218, 2836, UINT16_MAX, 2836, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19221, UINT16_MAX, 2839, UINT16_MAX, 2839, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19224, 2842, UINT16_MAX, 2842, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19227, UINT16_MAX, 2845, UINT16_MAX, 2845, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19230, 2848, UINT16_MAX, 2848, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19233, UINT16_MAX, 2851, UINT16_MAX, 2851, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19236, 2854, UINT16_MAX, 2854, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19239, UINT16_MAX, 2857, UINT16_MAX, 2857, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19242, 19242, 2860, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19245, 19245, 2863, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19248, 19248, 2866, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19251, 19251, 2869, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 19254, 19254, 2872, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19257, 2698, 2701, UINT16_MAX, 2701, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2875, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2876, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 16543, UINT16_MAX, 2877, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2878, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19263, 2881, UINT16_MAX, 2881, UINT16_MAX, 688, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19266, UINT16_MAX, 2884, UINT16_MAX, 2884, 690, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19269, 2887, UINT16_MAX, 2887, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19272, UINT16_MAX, 2890, UINT16_MAX, 2890, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19275, 2893, UINT16_MAX, 2893, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19278, UINT16_MAX, 2896, UINT16_MAX, 2896, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19281, 2899, UINT16_MAX, 2899, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19284, UINT16_MAX, 2902, UINT16_MAX, 2902, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19287, 2905, UINT16_MAX, 2905, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19290, UINT16_MAX, 2908, UINT16_MAX, 2908, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19293, 2911, UINT16_MAX, 2911, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19296, UINT16_MAX, 2914, UINT16_MAX, 2914, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19299, 2917, UINT16_MAX, 2917, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19302, UINT16_MAX, 2920, UINT16_MAX, 2920, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19305, 2923, UINT16_MAX, 2923, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19308, UINT16_MAX, 2926, UINT16_MAX, 2926, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19311, 2929, UINT16_MAX, 2929, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19314, UINT16_MAX, 2932, UINT16_MAX, 2932, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19317, 2935, UINT16_MAX, 2935, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19320, UINT16_MAX, 2938, UINT16_MAX, 2938, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19323, 2941, UINT16_MAX, 2941, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19326, UINT16_MAX, 2944, UINT16_MAX, 2944, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19329, 2947, UINT16_MAX, 2947, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19332, UINT16_MAX, 2950, UINT16_MAX, 2950, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19335, 2953, UINT16_MAX, 2953, UINT16_MAX, 692, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19338, UINT16_MAX, 2956, UINT16_MAX, 2956, 693, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19341, 2959, UINT16_MAX, 2959, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19344, UINT16_MAX, 2962, UINT16_MAX, 2962, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19347, 2965, UINT16_MAX, 2965, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19350, UINT16_MAX, 2968, UINT16_MAX, 2968, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19353, 2971, UINT16_MAX, 2971, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19356, UINT16_MAX, 2974, UINT16_MAX, 2974, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19359, 2977, UINT16_MAX, 2977, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19362, UINT16_MAX, 2980, UINT16_MAX, 2980, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19365, 2983, UINT16_MAX, 2983, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19368, UINT16_MAX, 2986, UINT16_MAX, 2986, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19371, 2989, UINT16_MAX, 2989, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19374, UINT16_MAX, 2992, UINT16_MAX, 2992, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19377, 2995, UINT16_MAX, 2995, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19380, UINT16_MAX, 2998, UINT16_MAX, 2998, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19383, 3001, UINT16_MAX, 3001, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19386, UINT16_MAX, 3004, UINT16_MAX, 3004, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19389, 3007, UINT16_MAX, 3007, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19392, UINT16_MAX, 3010, UINT16_MAX, 3010, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19395, 3013, UINT16_MAX, 3013, UINT16_MAX, 694, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19398, UINT16_MAX, 3016, UINT16_MAX, 3016, 695, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19401, 3019, UINT16_MAX, 3019, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19404, UINT16_MAX, 3022, UINT16_MAX, 3022, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19407, 3025, UINT16_MAX, 3025, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19410, UINT16_MAX, 3028, UINT16_MAX, 3028, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19413, 3031, UINT16_MAX, 3031, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19416, UINT16_MAX, 3034, UINT16_MAX, 3034, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19419, 3037, UINT16_MAX, 3037, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19422, UINT16_MAX, 3040, UINT16_MAX, 3040, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19425, 3043, UINT16_MAX, 3043, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19428, UINT16_MAX, 3046, UINT16_MAX, 3046, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19431, 3049, UINT16_MAX, 3049, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19434, UINT16_MAX, 3052, UINT16_MAX, 3052, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19437, 3055, UINT16_MAX, 3055, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19440, UINT16_MAX, 3058, UINT16_MAX, 3058, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19443, 3061, UINT16_MAX, 3061, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19446, UINT16_MAX, 3064, UINT16_MAX, 3064, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19449, 3067, UINT16_MAX, 3067, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19452, UINT16_MAX, 3070, UINT16_MAX, 3070, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19455, 3073, UINT16_MAX, 3073, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19458, UINT16_MAX, 3076, UINT16_MAX, 3076, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19461, 3079, UINT16_MAX, 3079, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19464, UINT16_MAX, 3082, UINT16_MAX, 3082, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19467, 3085, UINT16_MAX, 3085, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19470, UINT16_MAX, 3088, UINT16_MAX, 3088, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19473, 3091, UINT16_MAX, 3091, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19476, UINT16_MAX, 3094, UINT16_MAX, 3094, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19479, 3097, UINT16_MAX, 3097, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19482, UINT16_MAX, 3100, UINT16_MAX, 3100, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19485, 3103, UINT16_MAX, 3103, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19488, UINT16_MAX, 3106, UINT16_MAX, 3106, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19491, 3109, UINT16_MAX, 3109, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19494, UINT16_MAX, 3112, UINT16_MAX, 3112, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19497, 3115, UINT16_MAX, 3115, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19500, UINT16_MAX, 3118, UINT16_MAX, 3118, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19503, 3121, UINT16_MAX, 3121, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19506, UINT16_MAX, 3124, UINT16_MAX, 3124, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19509, 3127, UINT16_MAX, 3127, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19512, UINT16_MAX, 3130, UINT16_MAX, 3130, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19515, 3133, UINT16_MAX, 3133, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19518, UINT16_MAX, 3136, UINT16_MAX, 3136, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19521, 3139, UINT16_MAX, 3139, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19524, UINT16_MAX, 3142, UINT16_MAX, 3142, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19527, 3145, UINT16_MAX, 3145, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19530, UINT16_MAX, 3148, UINT16_MAX, 3148, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 3149, UINT16_MAX, 3149, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 3150, UINT16_MAX, 3150, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 3151, UINT16_MAX, 3151, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 3152, UINT16_MAX, 3152, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 3153, UINT16_MAX, 3153, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 3154, UINT16_MAX, 3154, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19539, UINT16_MAX, 3157, UINT16_MAX, 3157, 696, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19542, UINT16_MAX, 3160, UINT16_MAX, 3160, 700, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19545, UINT16_MAX, 3163, UINT16_MAX, 3163, 704, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19548, UINT16_MAX, 3166, UINT16_MAX, 3166, 705, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19551, UINT16_MAX, 3169, UINT16_MAX, 3169, 706, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19554, UINT16_MAX, 3172, UINT16_MAX, 3172, 707, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19557, UINT16_MAX, 3175, UINT16_MAX, 3175, 708, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19560, UINT16_MAX, 3178, UINT16_MAX, 3178, 709, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19563, 3181, UINT16_MAX, 3181, UINT16_MAX, 710, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19566, 3184, UINT16_MAX, 3184, UINT16_MAX, 714, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19569, 3187, UINT16_MAX, 3187, UINT16_MAX, 718, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19572, 3190, UINT16_MAX, 3190, UINT16_MAX, 719, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19575, 3193, UINT16_MAX, 3193, UINT16_MAX, 720, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19578, 3196, UINT16_MAX, 3196, UINT16_MAX, 721, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19581, 3199, UINT16_MAX, 3199, UINT16_MAX, 722, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19584, 3202, UINT16_MAX, 3202, UINT16_MAX, 723, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19587, UINT16_MAX, 3205, UINT16_MAX, 3205, 724, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19590, UINT16_MAX, 3208, UINT16_MAX, 3208, 726, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19593, UINT16_MAX, 3211, UINT16_MAX, 3211, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19596, UINT16_MAX, 3214, UINT16_MAX, 3214, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19599, UINT16_MAX, 3217, UINT16_MAX, 3217, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19602, UINT16_MAX, 3220, UINT16_MAX, 3220, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19605, 3223, UINT16_MAX, 3223, UINT16_MAX, 728, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19608, 3226, UINT16_MAX, 3226, UINT16_MAX, 730, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19611, 3229, UINT16_MAX, 3229, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19614, 3232, UINT16_MAX, 3232, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19617, 3235, UINT16_MAX, 3235, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19620, 3238, UINT16_MAX, 3238, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19623, UINT16_MAX, 3241, UINT16_MAX, 3241, 732, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19626, UINT16_MAX, 3244, UINT16_MAX, 3244, 736, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19629, UINT16_MAX, 3247, UINT16_MAX, 3247, 740, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19632, UINT16_MAX, 3250, UINT16_MAX, 3250, 741, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19635, UINT16_MAX, 3253, UINT16_MAX, 3253, 742, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19638, UINT16_MAX, 3256, UINT16_MAX, 3256, 743, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19641, UINT16_MAX, 3259, UINT16_MAX, 3259, 744, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19644, UINT16_MAX, 3262, UINT16_MAX, 3262, 745, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19647, 3265, UINT16_MAX, 3265, UINT16_MAX, 746, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19650, 3268, UINT16_MAX, 3268, UINT16_MAX, 750, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19653, 3271, UINT16_MAX, 3271, UINT16_MAX, 754, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19656, 3274, UINT16_MAX, 3274, UINT16_MAX, 755, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19659, 3277, UINT16_MAX, 3277, UINT16_MAX, 756, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19662, 3280, UINT16_MAX, 3280, UINT16_MAX, 757, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19665, 3283, UINT16_MAX, 3283, UINT16_MAX, 758, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19668, 3286, UINT16_MAX, 3286, UINT16_MAX, 759, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19671, UINT16_MAX, 3289, UINT16_MAX, 3289, 760, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19674, UINT16_MAX, 3292, UINT16_MAX, 3292, 763, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19677, UINT16_MAX, 3295, UINT16_MAX, 3295, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19680, UINT16_MAX, 3298, UINT16_MAX, 3298, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19683, UINT16_MAX, 3301, UINT16_MAX, 3301, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19686, UINT16_MAX, 3304, UINT16_MAX, 3304, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19689, UINT16_MAX, 3307, UINT16_MAX, 3307, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19692, UINT16_MAX, 3310, UINT16_MAX, 3310, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19695, 3313, UINT16_MAX, 3313, UINT16_MAX, 766, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19698, 3316, UINT16_MAX, 3316, UINT16_MAX, 769, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19701, 3319, UINT16_MAX, 3319, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19704, 3322, UINT16_MAX, 3322, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19707, 3325, UINT16_MAX, 3325, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19710, 3328, UINT16_MAX, 3328, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19713, 3331, UINT16_MAX, 3331, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19716, 3334, UINT16_MAX, 3334, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19719, UINT16_MAX, 3337, UINT16_MAX, 3337, 772, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19722, UINT16_MAX, 3340, UINT16_MAX, 3340, 774, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19725, UINT16_MAX, 3343, UINT16_MAX, 3343, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19728, UINT16_MAX, 3346, UINT16_MAX, 3346, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19731, UINT16_MAX, 3349, UINT16_MAX, 3349, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19734, UINT16_MAX, 3352, UINT16_MAX, 3352, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19737, 3355, UINT16_MAX, 3355, UINT16_MAX, 776, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19740, 3358, UINT16_MAX, 3358, UINT16_MAX, 778, 2, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19743, 3361, UINT16_MAX, 3361, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19746, 3364, UINT16_MAX, 3364, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19749, 3367, UINT16_MAX, 3367, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19752, 3370, UINT16_MAX, 3370, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19755, 19755, 3373, UINT16_MAX, UINT16_MAX, 780, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19758, UINT16_MAX, 3376, UINT16_MAX, 3376, 783, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19761, 36147, 3382, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19767, UINT16_MAX, 3385, UINT16_MAX, 3385, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19770, 36156, 3391, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19776, UINT16_MAX, 3394, UINT16_MAX, 3394, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19779, 36165, 3400, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19785, UINT16_MAX, 3403, UINT16_MAX, 3403, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19788, 3406, UINT16_MAX, 3406, UINT16_MAX, 786, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19791, 3409, UINT16_MAX, 3409, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19794, 3412, UINT16_MAX, 3412, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19797, 3415, UINT16_MAX, 3415, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19800, UINT16_MAX, 3418, UINT16_MAX, 3418, 789, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19803, UINT16_MAX, 3421, UINT16_MAX, 3421, 793, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19806, UINT16_MAX, 3424, UINT16_MAX, 3424, 797, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19809, UINT16_MAX, 3427, UINT16_MAX, 3427, 798, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19812, UINT16_MAX, 3430, UINT16_MAX, 3430, 799, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19815, UINT16_MAX, 3433, UINT16_MAX, 3433, 800, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19818, UINT16_MAX, 3436, UINT16_MAX, 3436, 801, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19821, UINT16_MAX, 3439, UINT16_MAX, 3439, 802, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19824, 3442, UINT16_MAX, 3442, UINT16_MAX, 803, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19827, 3445, UINT16_MAX, 3445, UINT16_MAX, 807, 4, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19830, 3448, UINT16_MAX, 3448, UINT16_MAX, 811, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19833, 3451, UINT16_MAX, 3451, UINT16_MAX, 812, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19836, 3454, UINT16_MAX, 3454, UINT16_MAX, 813, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19839, 3457, UINT16_MAX, 3457, UINT16_MAX, 814, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19842, 3460, UINT16_MAX, 3460, UINT16_MAX, 815, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 19845, 3463, UINT16_MAX, 3463, UINT16_MAX, 816, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19848, UINT16_MAX, 3466, UINT16_MAX, 3466, 817, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 1159, UINT16_MAX, 3467, UINT16_MAX, 3467, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19852, UINT16_MAX, 3470, UINT16_MAX, 3470, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 1163, UINT16_MAX, 3471, UINT16_MAX, 3471, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19856, UINT16_MAX, 3474, UINT16_MAX, 3474, 818, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 1166, UINT16_MAX, 3475, UINT16_MAX, 3475, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19860, UINT16_MAX, 3478, UINT16_MAX, 3478, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 1169, UINT16_MAX, 3479, UINT16_MAX, 3479, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19864, UINT16_MAX, 3482, UINT16_MAX, 3482, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 1172, UINT16_MAX, 3483, UINT16_MAX, 3483, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19868, UINT16_MAX, 3486, UINT16_MAX, 3486, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 1175, UINT16_MAX, 3487, UINT16_MAX, 3487, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19872, UINT16_MAX, 3490, UINT16_MAX, 3490, 819, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 1178, UINT16_MAX, 3491, UINT16_MAX, 3491, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19876, 19878, 3496, UINT16_MAX, 3496, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19881, 19883, 3501, UINT16_MAX, 3501, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19886, 19888, 3506, UINT16_MAX, 3506, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19891, 19893, 3511, UINT16_MAX, 3511, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19896, 19898, 3516, UINT16_MAX, 3516, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19901, 19903, 3521, UINT16_MAX, 3521, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19906, 19908, 3526, UINT16_MAX, 3526, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19911, 19913, 3531, UINT16_MAX, 3531, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19916, 19878, UINT16_MAX, 3534, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19919, 19883, UINT16_MAX, 3537, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19922, 19888, UINT16_MAX, 3540, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19925, 19893, UINT16_MAX, 3543, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19928, 19898, UINT16_MAX, 3546, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19931, 19903, UINT16_MAX, 3549, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19934, 19908, UINT16_MAX, 3552, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19937, 19913, UINT16_MAX, 3555, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19940, 19942, 3560, UINT16_MAX, 3560, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19945, 19947, 3565, UINT16_MAX, 3565, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19950, 19952, 3570, UINT16_MAX, 3570, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19955, 19957, 3575, UINT16_MAX, 3575, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19960, 19962, 3580, UINT16_MAX, 3580, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19965, 19967, 3585, UINT16_MAX, 3585, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19970, 19972, 3590, UINT16_MAX, 3590, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 19975, 19977, 3595, UINT16_MAX, 3595, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19980, 19942, UINT16_MAX, 3598, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19983, 19947, UINT16_MAX, 3601, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19986, 19952, UINT16_MAX, 3604, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19989, 19957, UINT16_MAX, 3607, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19992, 19962, UINT16_MAX, 3610, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19995, 19967, UINT16_MAX, 3613, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 19998, 19972, UINT16_MAX, 3616, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 20001, 19977, UINT16_MAX, 3619, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20004, 20006, 3624, UINT16_MAX, 3624, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20009, 20011, 3629, UINT16_MAX, 3629, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20014, 20016, 3634, UINT16_MAX, 3634, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20019, 20021, 3639, UINT16_MAX, 3639, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20024, 20026, 3644, UINT16_MAX, 3644, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20029, 20031, 3649, UINT16_MAX, 3649, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20034, 20036, 3654, UINT16_MAX, 3654, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20039, 20041, 3659, UINT16_MAX, 3659, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 20044, 20006, UINT16_MAX, 3662, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 20047, 20011, UINT16_MAX, 3665, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 20050, 20016, UINT16_MAX, 3668, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 20053, 20021, UINT16_MAX, 3671, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 20056, 20026, UINT16_MAX, 3674, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 20059, 20031, UINT16_MAX, 3677, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 20062, 20036, UINT16_MAX, 3680, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 20065, 20041, UINT16_MAX, 3683, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20068, UINT16_MAX, 3686, UINT16_MAX, 3686, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20071, UINT16_MAX, 3689, UINT16_MAX, 3689, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20074, 20076, 3694, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20079, 20081, 3699, UINT16_MAX, 3699, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20084, 20086, 3704, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20089, 20089, 3707, UINT16_MAX, UINT16_MAX, 820, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20092, 36478, 3713, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20098, 3716, UINT16_MAX, 3716, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20101, 3719, UINT16_MAX, 3719, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20104, 3722, UINT16_MAX, 3722, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 1215, 3723, UINT16_MAX, 3723, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 20108, 20081, UINT16_MAX, 3726, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20111, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 1138, 1138, 1139, UINT16_MAX, 1139, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20111, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 821, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20113, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20115, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20117, 20119, 3737, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20122, 20124, 3742, UINT16_MAX, 3742, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20127, 20129, 3747, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20132, 20132, 3750, UINT16_MAX, UINT16_MAX, 824, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20135, 36521, 3756, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20141, 3759, UINT16_MAX, 3759, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 1218, 3760, UINT16_MAX, 3760, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20145, 3763, UINT16_MAX, 3763, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 1221, 3764, UINT16_MAX, 3764, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 20149, 20124, UINT16_MAX, 3767, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20152, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20154, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20156, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20158, UINT16_MAX, 3776, UINT16_MAX, 3776, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20161, UINT16_MAX, 3779, UINT16_MAX, 3779, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20164, 36550, 3785, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 1184, 33949, 3786, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20171, 20171, 3789, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20174, 36560, 3795, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20180, 3798, UINT16_MAX, 3798, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20183, 3801, UINT16_MAX, 3801, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20186, 3804, UINT16_MAX, 3804, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 1224, 3805, UINT16_MAX, 3805, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20190, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20192, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20194, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20196, UINT16_MAX, 3814, UINT16_MAX, 3814, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20199, UINT16_MAX, 3817, UINT16_MAX, 3817, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20202, 36588, 3823, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 1230, 33995, 3824, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20209, 20209, 3827, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20212, UINT16_MAX, 3830, UINT16_MAX, 3830, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20215, 20215, 3833, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20218, 36604, 3839, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20224, 3842, UINT16_MAX, 3842, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20227, 3845, UINT16_MAX, 3845, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20230, 3848, UINT16_MAX, 3848, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 1264, 3849, UINT16_MAX, 3849, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20234, 3852, UINT16_MAX, 3852, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20237, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 3855, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 3856, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20241, 20243, 3861, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20246, 20248, 3866, UINT16_MAX, 3866, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20251, 20253, 3871, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20256, 20256, 3874, UINT16_MAX, UINT16_MAX, 825, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 20259, 36645, 3880, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20265, 3883, UINT16_MAX, 3883, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 1261, 3884, UINT16_MAX, 3884, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 20269, 3887, UINT16_MAX, 3887, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 1267, 3888, UINT16_MAX, 3888, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, 20273, 20248, UINT16_MAX, 3891, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 3892, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20277, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 826, 3, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, 0, 3895, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, 0, 3896, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, UTF8PROC_DECOMP_TYPE_COMPAT, 52, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, UTF8PROC_DECOMP_TYPE_NOBREAK, 52, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_BN, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_BN, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, false, 0, false, 0, UTF8PROC_BOUNDCLASS_ZWJ, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NOBREAK, 3897, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20282, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PI, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PF, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PI, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 3900, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20285, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36671, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ZL, 0, UTF8PROC_BIDI_CLASS_WS, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ZP, 0, UTF8PROC_BIDI_CLASS_B, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_LRE, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_RLE, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_PDF, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_LRO, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_RLO, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_COMPAT, 20290, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_COMPAT, 36676, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20295, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36681, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20300, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20302, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_CS, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20304, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20306, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20308, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 53078, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_LRI, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_RLI, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_FSI, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_PDI, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 3931, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 8, UINT16_MAX, 3932, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 3933, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 3934, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 3935, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 3936, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 3937, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 3938, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUPER, 3939, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUPER, 3940, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 3941, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 3942, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 3943, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 13, UINT16_MAX, 3944, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 3931, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 66, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 58, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 59, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 3933, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 3934, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 3935, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 3936, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 3937, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 3938, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUB, 3939, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUB, 3940, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUB, 3941, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUB, 3942, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUB, 3943, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 0, UINT16_MAX, 3945, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 4, UINT16_MAX, 3946, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 14, UINT16_MAX, 3947, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 23, UINT16_MAX, 3948, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 615, UINT16_MAX, 3949, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 7, UINT16_MAX, 3950, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 10, UINT16_MAX, 3951, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 11, UINT16_MAX, 3952, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 12, UINT16_MAX, 3953, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 13, UINT16_MAX, 3954, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 15, UINT16_MAX, 3955, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 18, UINT16_MAX, 3956, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 19, UINT16_MAX, 3957, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_COMPAT, 20342, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36728, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36731, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, 3966, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20351, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36737, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36740, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1020, UINT16_MAX, UINT16_MAX, 3975, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20360, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 6, UINT16_MAX, 3978, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, 3979, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, 3980, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, 3981, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 7, UINT16_MAX, 3982, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 357, UINT16_MAX, 3983, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, 3984, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, 3985, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, 3986, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 3987, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, 3988, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20373, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, 3991, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, 3992, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, 3993, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, 3994, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, 3995, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 20380, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36766, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 20385, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, 4003, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 1252, 1206, UINT16_MAX, 1206, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, 4004, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 36, 10, UINT16_MAX, 10, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 179, 94, UINT16_MAX, 94, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, 4005, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, 4006, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ET, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 4007, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, 4008, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, 4009, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4010, UINT16_MAX, 4010, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, 4011, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 14, UINT16_MAX, 4012, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4013, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4014, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4015, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4016, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 4017, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36786, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1198, UINT16_MAX, 4021, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1187, UINT16_MAX, 4022, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1233, UINT16_MAX, UINT16_MAX, 4023, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1244, UINT16_MAX, UINT16_MAX, 4024, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FONT, 4025, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 4026, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 4027, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 4028, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 4029, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 4030, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4031, UINT16_MAX, 4031, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36800, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36803, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 53190, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36811, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36814, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36817, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36820, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36823, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36826, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36829, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36832, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36835, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36838, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36841, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36844, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 20463, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 34, 4081, UINT16_MAX, 4081, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 20466, 4084, UINT16_MAX, 4084, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 36853, 4088, UINT16_MAX, 4088, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 20473, 4091, UINT16_MAX, 4091, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 47, 4092, UINT16_MAX, 4092, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 20477, 4095, UINT16_MAX, 4095, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 36864, 4099, UINT16_MAX, 4099, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 53252, 4105, UINT16_MAX, 4105, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 20490, 4108, UINT16_MAX, 4108, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 49, 4109, UINT16_MAX, 4109, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 20494, 4112, UINT16_MAX, 4112, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 36881, 4116, UINT16_MAX, 4116, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37, 4117, UINT16_MAX, 4117, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 28, 4118, UINT16_MAX, 4118, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 29, 4119, UINT16_MAX, 4119, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38, 4120, UINT16_MAX, 4120, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 8, UINT16_MAX, 4121, UINT16_MAX, 4121, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 20506, UINT16_MAX, 4124, UINT16_MAX, 4124, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 36893, UINT16_MAX, 4128, UINT16_MAX, 4128, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 20513, UINT16_MAX, 4131, UINT16_MAX, 4131, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 21, UINT16_MAX, 4132, UINT16_MAX, 4132, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 20517, UINT16_MAX, 4135, UINT16_MAX, 4135, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 36904, UINT16_MAX, 4139, UINT16_MAX, 4139, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 53292, UINT16_MAX, 4145, UINT16_MAX, 4145, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 20530, UINT16_MAX, 4148, UINT16_MAX, 4148, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 23, UINT16_MAX, 4149, UINT16_MAX, 4149, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 20534, UINT16_MAX, 4152, UINT16_MAX, 4152, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 36921, UINT16_MAX, 4156, UINT16_MAX, 4156, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 11, UINT16_MAX, 4157, UINT16_MAX, 4157, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 2, UINT16_MAX, 4158, UINT16_MAX, 4158, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 3, UINT16_MAX, 4159, UINT16_MAX, 4159, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 12, UINT16_MAX, 4160, UINT16_MAX, 4160, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4161, UINT16_MAX, 4161, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4162, UINT16_MAX, 4162, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, 36931, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 829, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 830, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 831, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20550, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20552, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20554, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20556, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20558, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20560, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 832, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 833, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 834, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 835, 1, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20562, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 836, 1, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20564, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 837, 1, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20566, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ET, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 838, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20568, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 839, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20570, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20572, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36958, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20577, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36963, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 840, 1, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20582, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 841, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20584, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 842, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20586, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 843, 1, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20588, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 844, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20590, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 845, 1, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20592, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 846, 1, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 847, 1, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20594, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20596, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20598, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20600, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20602, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 848, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 849, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20604, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20606, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 850, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 851, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20608, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20610, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 852, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 853, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 854, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 855, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20612, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20614, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 856, 1, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 857, 1, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20616, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20618, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 858, 1, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 859, 1, false, true, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20620, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20622, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 860, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 861, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 862, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 863, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 864, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 865, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20624, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20626, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20628, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20630, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 866, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 867, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 868, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 869, 1, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20632, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20634, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20636, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20638, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20640, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20642, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20644, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20646, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, 4264, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, 4265, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 66, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 58, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 59, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 3933, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 3934, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 3935, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 3936, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 3937, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 3938, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 20650, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 20652, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 20654, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 20656, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 20658, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 20660, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 20662, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 20664, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 20666, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 20668, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 20670, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37056, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37059, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37062, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37065, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37068, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37071, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37074, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37077, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37080, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 53467, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 53472, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 53477, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 53482, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 53487, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 53492, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 53497, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 53502, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 53507, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 53512, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 53517, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 20754, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 20756, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 20758, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 20760, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 20762, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 20764, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 20766, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 20768, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 20770, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 37156, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 37159, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 37162, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 37165, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 37168, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 37171, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 37174, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 37177, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 37180, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 37183, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 37186, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37189, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37192, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37195, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37198, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37201, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37204, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37207, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37210, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37213, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37216, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37219, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37222, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37225, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37228, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37231, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37234, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37237, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37240, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37243, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37246, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37249, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37252, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37255, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37258, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37261, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 37264, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 26, 4499, UINT16_MAX, 4499, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 27, 4500, UINT16_MAX, 4500, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 28, 4501, UINT16_MAX, 4501, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 29, 4502, UINT16_MAX, 4502, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 30, 4503, UINT16_MAX, 4503, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 31, 4504, UINT16_MAX, 4504, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 32, 4505, UINT16_MAX, 4505, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 33, 4506, UINT16_MAX, 4506, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 34, 4507, UINT16_MAX, 4507, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 35, 4508, UINT16_MAX, 4508, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 36, 4509, UINT16_MAX, 4509, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 37, 4510, UINT16_MAX, 4510, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 38, 4511, UINT16_MAX, 4511, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 39, 4512, UINT16_MAX, 4512, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 40, 4513, UINT16_MAX, 4513, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 41, 4514, UINT16_MAX, 4514, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 42, 4515, UINT16_MAX, 4515, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 43, 4516, UINT16_MAX, 4516, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 44, 4517, UINT16_MAX, 4517, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 45, 4518, UINT16_MAX, 4518, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 46, 4519, UINT16_MAX, 4519, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 47, 4520, UINT16_MAX, 4520, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 48, 4521, UINT16_MAX, 4521, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 49, 4522, UINT16_MAX, 4522, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 50, 4523, UINT16_MAX, 4523, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 51, 4524, UINT16_MAX, 4524, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 0, UINT16_MAX, 4525, UINT16_MAX, 4525, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 1, UINT16_MAX, 4526, UINT16_MAX, 4526, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 2, UINT16_MAX, 4527, UINT16_MAX, 4527, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 3, UINT16_MAX, 4528, UINT16_MAX, 4528, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4, UINT16_MAX, 4529, UINT16_MAX, 4529, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5, UINT16_MAX, 4530, UINT16_MAX, 4530, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 6, UINT16_MAX, 4531, UINT16_MAX, 4531, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 7, UINT16_MAX, 4532, UINT16_MAX, 4532, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 8, UINT16_MAX, 4533, UINT16_MAX, 4533, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 9, UINT16_MAX, 4534, UINT16_MAX, 4534, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 10, UINT16_MAX, 4535, UINT16_MAX, 4535, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 11, UINT16_MAX, 4536, UINT16_MAX, 4536, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12, UINT16_MAX, 4537, UINT16_MAX, 4537, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 13, UINT16_MAX, 4538, UINT16_MAX, 4538, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 14, UINT16_MAX, 4539, UINT16_MAX, 4539, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 15, UINT16_MAX, 4540, UINT16_MAX, 4540, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 16, UINT16_MAX, 4541, UINT16_MAX, 4541, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 17, UINT16_MAX, 4542, UINT16_MAX, 4542, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 18, UINT16_MAX, 4543, UINT16_MAX, 4543, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 19, UINT16_MAX, 4544, UINT16_MAX, 4544, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20, UINT16_MAX, 4545, UINT16_MAX, 4545, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21, UINT16_MAX, 4546, UINT16_MAX, 4546, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 22, UINT16_MAX, 4547, UINT16_MAX, 4547, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 23, UINT16_MAX, 4548, UINT16_MAX, 4548, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 24, UINT16_MAX, 4549, UINT16_MAX, 4549, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 25, UINT16_MAX, 4550, UINT16_MAX, 4550, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 3931, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 53703, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37324, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20943, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37329, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 20948, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4566, UINT16_MAX, 4566, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4567, UINT16_MAX, 4567, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4568, UINT16_MAX, 4568, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4569, UINT16_MAX, 4569, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4570, UINT16_MAX, 4570, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4571, UINT16_MAX, 4571, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4572, UINT16_MAX, 4572, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4573, UINT16_MAX, 4573, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4574, UINT16_MAX, 4574, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4575, UINT16_MAX, 4575, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4576, UINT16_MAX, 4576, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4577, UINT16_MAX, 4577, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4578, UINT16_MAX, 4578, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4579, UINT16_MAX, 4579, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4580, UINT16_MAX, 4580, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4581, UINT16_MAX, 4581, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4582, UINT16_MAX, 4582, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4583, UINT16_MAX, 4583, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4584, UINT16_MAX, 4584, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4585, UINT16_MAX, 4585, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4586, UINT16_MAX, 4586, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4587, UINT16_MAX, 4587, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4588, UINT16_MAX, 4588, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4589, UINT16_MAX, 4589, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4590, UINT16_MAX, 4590, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4591, UINT16_MAX, 4591, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4592, UINT16_MAX, 4592, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4593, UINT16_MAX, 4593, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4594, UINT16_MAX, 4594, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4595, UINT16_MAX, 4595, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4596, UINT16_MAX, 4596, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4597, UINT16_MAX, 4597, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4598, UINT16_MAX, 4598, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4599, UINT16_MAX, 4599, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4600, UINT16_MAX, 4600, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4601, UINT16_MAX, 4601, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4602, UINT16_MAX, 4602, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4603, UINT16_MAX, 4603, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4604, UINT16_MAX, 4604, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4605, UINT16_MAX, 4605, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4606, UINT16_MAX, 4606, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4607, UINT16_MAX, 4607, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4608, UINT16_MAX, 4608, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4609, UINT16_MAX, 4609, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4610, UINT16_MAX, 4610, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4611, UINT16_MAX, 4611, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4612, UINT16_MAX, 4612, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4613, UINT16_MAX, 4613, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4614, UINT16_MAX, 4614, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4615, UINT16_MAX, 4615, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4616, UINT16_MAX, 4616, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4617, UINT16_MAX, 4617, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4618, UINT16_MAX, 4618, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4619, UINT16_MAX, 4619, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4620, UINT16_MAX, 4620, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4621, UINT16_MAX, 4621, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4622, UINT16_MAX, 4622, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4623, UINT16_MAX, 4623, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4624, UINT16_MAX, 4624, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4625, UINT16_MAX, 4625, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4626, UINT16_MAX, 4626, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4627, UINT16_MAX, 4627, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4628, UINT16_MAX, 4628, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4629, UINT16_MAX, 4629, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4630, UINT16_MAX, 4630, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4631, UINT16_MAX, 4631, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4632, UINT16_MAX, 4632, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4633, UINT16_MAX, 4633, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4634, UINT16_MAX, 4634, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4635, UINT16_MAX, 4635, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4636, UINT16_MAX, 4636, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4637, UINT16_MAX, 4637, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4638, UINT16_MAX, 4638, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4639, UINT16_MAX, 4639, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4640, UINT16_MAX, 4640, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4641, UINT16_MAX, 4641, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4642, UINT16_MAX, 4642, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4643, UINT16_MAX, 4643, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4644, UINT16_MAX, 4644, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4645, UINT16_MAX, 4645, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4646, UINT16_MAX, 4646, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4647, UINT16_MAX, 4647, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4648, UINT16_MAX, 4648, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4649, UINT16_MAX, 4649, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4650, UINT16_MAX, 4650, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4651, UINT16_MAX, 4651, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4652, UINT16_MAX, 4652, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4653, UINT16_MAX, 4653, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4654, UINT16_MAX, 4654, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4655, UINT16_MAX, 4655, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4656, UINT16_MAX, 4656, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4657, UINT16_MAX, 4657, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4658, UINT16_MAX, 4658, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4659, UINT16_MAX, 4659, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4660, UINT16_MAX, 4660, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4661, UINT16_MAX, 4661, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4662, UINT16_MAX, 4662, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4663, UINT16_MAX, 4663, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4664, UINT16_MAX, 4664, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4665, UINT16_MAX, 4665, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4666, UINT16_MAX, 4666, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4667, UINT16_MAX, 4667, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4668, UINT16_MAX, 4668, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4669, UINT16_MAX, 4669, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4670, UINT16_MAX, 4670, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4671, UINT16_MAX, 4671, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4672, UINT16_MAX, 4672, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4673, UINT16_MAX, 4673, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4674, UINT16_MAX, 4674, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2276, UINT16_MAX, 2276, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2386, UINT16_MAX, 2386, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2274, UINT16_MAX, 2274, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2364, UINT16_MAX, 2364, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4675, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4676, UINT16_MAX, 4676, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4677, UINT16_MAX, 4677, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4678, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4679, UINT16_MAX, 4679, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4680, UINT16_MAX, 4680, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4681, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4682, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4683, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4684, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4685, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 9, UINT16_MAX, 4686, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 47, UINT16_MAX, 4687, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4688, UINT16_MAX, 4688, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4689, UINT16_MAX, 4689, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4690, UINT16_MAX, 4690, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4691, UINT16_MAX, 4691, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4692, UINT16_MAX, 4692, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4693, UINT16_MAX, 4693, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4694, UINT16_MAX, 4694, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4695, UINT16_MAX, 4695, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4696, UINT16_MAX, 4696, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4697, UINT16_MAX, 4697, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4698, UINT16_MAX, 4698, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4699, UINT16_MAX, 4699, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4700, UINT16_MAX, 4700, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4701, UINT16_MAX, 4701, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4702, UINT16_MAX, 4702, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4703, UINT16_MAX, 4703, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4704, UINT16_MAX, 4704, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4705, UINT16_MAX, 4705, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4706, UINT16_MAX, 4706, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4707, UINT16_MAX, 4707, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4708, UINT16_MAX, 4708, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4709, UINT16_MAX, 4709, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4710, UINT16_MAX, 4710, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4711, UINT16_MAX, 4711, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4712, UINT16_MAX, 4712, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4713, UINT16_MAX, 4713, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4714, UINT16_MAX, 4714, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4715, UINT16_MAX, 4715, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4716, UINT16_MAX, 4716, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4717, UINT16_MAX, 4717, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4718, UINT16_MAX, 4718, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4719, UINT16_MAX, 4719, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4720, UINT16_MAX, 4720, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4721, UINT16_MAX, 4721, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4722, UINT16_MAX, 4722, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4723, UINT16_MAX, 4723, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4724, UINT16_MAX, 4724, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4725, UINT16_MAX, 4725, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4726, UINT16_MAX, 4726, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4727, UINT16_MAX, 4727, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4728, UINT16_MAX, 4728, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4729, UINT16_MAX, 4729, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4730, UINT16_MAX, 4730, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4731, UINT16_MAX, 4731, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4732, UINT16_MAX, 4732, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4733, UINT16_MAX, 4733, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4734, UINT16_MAX, 4734, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4735, UINT16_MAX, 4735, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4736, UINT16_MAX, 4736, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4737, UINT16_MAX, 4737, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4738, UINT16_MAX, 4738, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4739, UINT16_MAX, 4739, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4740, UINT16_MAX, 4740, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4741, UINT16_MAX, 4741, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4742, UINT16_MAX, 4742, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4743, UINT16_MAX, 4743, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4744, UINT16_MAX, 4744, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4745, UINT16_MAX, 4745, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4746, UINT16_MAX, 4746, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4747, UINT16_MAX, 4747, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4748, UINT16_MAX, 4748, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4749, UINT16_MAX, 4749, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4750, UINT16_MAX, 4750, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4751, UINT16_MAX, 4751, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4752, UINT16_MAX, 4752, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4753, UINT16_MAX, 4753, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4754, UINT16_MAX, 4754, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4755, UINT16_MAX, 4755, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4756, UINT16_MAX, 4756, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4757, UINT16_MAX, 4757, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4758, UINT16_MAX, 4758, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4759, UINT16_MAX, 4759, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4760, UINT16_MAX, 4760, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4761, UINT16_MAX, 4761, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4762, UINT16_MAX, 4762, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4763, UINT16_MAX, 4763, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4764, UINT16_MAX, 4764, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4765, UINT16_MAX, 4765, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4766, UINT16_MAX, 4766, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4767, UINT16_MAX, 4767, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4768, UINT16_MAX, 4768, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4769, UINT16_MAX, 4769, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4770, UINT16_MAX, 4770, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4771, UINT16_MAX, 4771, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4772, UINT16_MAX, 4772, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4773, UINT16_MAX, 4773, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4774, UINT16_MAX, 4774, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4775, UINT16_MAX, 4775, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4776, UINT16_MAX, 4776, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4777, UINT16_MAX, 4777, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4778, UINT16_MAX, 4778, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4779, UINT16_MAX, 4779, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4780, UINT16_MAX, 4780, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4781, UINT16_MAX, 4781, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4782, UINT16_MAX, 4782, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4783, UINT16_MAX, 4783, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4784, UINT16_MAX, 4784, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4785, UINT16_MAX, 4785, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4786, UINT16_MAX, 4786, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4787, UINT16_MAX, 4787, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4788, UINT16_MAX, 4788, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4789, UINT16_MAX, 4789, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4790, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4791, UINT16_MAX, 4791, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4792, UINT16_MAX, 4792, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4793, UINT16_MAX, 4793, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4794, UINT16_MAX, 4794, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 4795, UINT16_MAX, 4795, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4796, UINT16_MAX, 4796, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4797, UINT16_MAX, 4797, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4798, UINT16_MAX, 4798, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4799, UINT16_MAX, 4799, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4800, UINT16_MAX, 4800, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4801, UINT16_MAX, 4801, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4802, UINT16_MAX, 4802, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4803, UINT16_MAX, 4803, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4804, UINT16_MAX, 4804, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4805, UINT16_MAX, 4805, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4806, UINT16_MAX, 4806, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4807, UINT16_MAX, 4807, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4808, UINT16_MAX, 4808, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4809, UINT16_MAX, 4809, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4810, UINT16_MAX, 4810, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4811, UINT16_MAX, 4811, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4812, UINT16_MAX, 4812, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4813, UINT16_MAX, 4813, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4814, UINT16_MAX, 4814, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4815, UINT16_MAX, 4815, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4816, UINT16_MAX, 4816, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4817, UINT16_MAX, 4817, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4818, UINT16_MAX, 4818, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4819, UINT16_MAX, 4819, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4820, UINT16_MAX, 4820, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4821, UINT16_MAX, 4821, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4822, UINT16_MAX, 4822, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4823, UINT16_MAX, 4823, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4824, UINT16_MAX, 4824, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4825, UINT16_MAX, 4825, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4826, UINT16_MAX, 4826, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4827, UINT16_MAX, 4827, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4828, UINT16_MAX, 4828, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4829, UINT16_MAX, 4829, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4830, UINT16_MAX, 4830, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4831, UINT16_MAX, 4831, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4832, UINT16_MAX, 4832, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4833, UINT16_MAX, 4833, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4834, UINT16_MAX, 4834, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4835, UINT16_MAX, 4835, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 4836, UINT16_MAX, 4836, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 4837, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4838, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4839, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4840, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4841, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4842, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4843, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4844, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4845, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4846, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4847, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4848, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4849, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4850, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4851, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4852, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4853, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4854, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4855, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4856, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4857, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4858, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4859, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4860, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4861, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4862, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4863, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4864, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4865, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4866, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4867, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4868, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4869, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4870, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4871, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4872, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4873, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4874, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4875, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4876, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4877, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4878, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4879, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4880, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4881, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4882, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4883, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4884, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4885, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4886, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4887, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4888, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4889, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4890, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4891, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4892, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4893, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4894, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4895, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4896, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4897, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4898, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4899, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4900, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4901, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4902, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4903, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4904, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4905, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4906, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4907, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4908, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4909, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4910, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4911, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4912, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4913, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4914, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4915, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4916, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4917, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4918, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4919, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4920, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4921, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4922, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4923, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4924, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4925, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4926, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4927, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4928, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4929, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4930, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4931, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4932, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4933, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4934, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4935, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4936, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4937, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4938, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4939, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4940, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4941, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4942, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4943, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4944, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4945, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4946, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4947, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4948, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4949, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4950, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4951, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4952, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4953, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4954, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4955, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4956, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4957, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4958, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4959, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4960, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4961, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4962, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4963, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4964, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4965, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4966, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4967, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4968, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4969, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4970, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4971, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4972, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4973, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4974, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4975, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4976, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4977, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4978, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4979, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4980, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4981, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4982, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4983, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4984, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4985, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4986, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4987, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4988, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4989, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4990, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4991, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4992, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4993, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4994, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4995, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4996, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4997, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4998, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 4999, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5000, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5001, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5002, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5003, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5004, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5005, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5006, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5007, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5008, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5009, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5010, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5011, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5012, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5013, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5014, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5015, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5016, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5017, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5018, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5019, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5020, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5021, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5022, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5023, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5024, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5025, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5026, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5027, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5028, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5029, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5030, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5031, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5032, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5033, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5034, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5035, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5036, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5037, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5038, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5039, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5040, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5041, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5042, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5043, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5044, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5045, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5046, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5047, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5048, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5049, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5050, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5051, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5052, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5053, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, UTF8PROC_DECOMP_TYPE_WIDE, 52, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 224, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 5054, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4863, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5055, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5056, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 870, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 871, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21441, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 872, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21443, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 873, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21445, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 874, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21447, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 875, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21449, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 876, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21451, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 877, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21453, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 878, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21455, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 879, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21457, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 880, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21459, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 881, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21461, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 882, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21463, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 883, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21465, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 884, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21467, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 885, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21469, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 886, 2, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21471, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21473, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 888, 2, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21475, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21477, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 890, 2, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21479, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21481, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 892, 2, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21483, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21485, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 894, 2, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21487, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21489, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21491, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 8, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, true, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21493, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21495, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 896, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 21497, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_VERTICAL, 21499, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 897, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 898, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21501, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 899, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21503, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 900, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21505, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 901, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21507, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 902, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21509, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 903, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21511, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 904, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21513, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 905, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21515, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 906, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21517, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 907, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21519, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 908, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21521, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 909, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21523, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 910, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21525, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 911, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21527, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 912, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21529, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 913, 2, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21531, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21533, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 915, 2, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21535, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21537, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 917, 2, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21539, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21541, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 919, 2, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21543, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21545, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 921, 2, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21547, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21549, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 923, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 924, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 925, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 926, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21551, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21553, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21555, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21557, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21559, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 927, 1, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 21561, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_VERTICAL, 21563, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5181, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5182, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5183, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5184, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5185, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5186, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5187, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5188, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5189, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5190, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5191, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5192, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5193, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5194, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5195, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5196, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5197, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5198, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5199, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5200, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5201, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5202, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5203, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5204, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5205, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5206, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5207, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5208, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5209, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5210, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5211, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5212, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5213, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5214, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5215, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5216, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5217, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5218, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5219, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5220, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5221, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5222, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5223, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5224, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5225, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5226, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5227, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5228, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5229, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5230, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5231, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5232, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5233, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5234, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5235, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5236, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5237, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5238, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5239, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5240, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5241, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5242, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5243, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5244, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5245, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5246, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5247, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5248, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5249, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5250, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5251, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5252, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5253, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5254, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5255, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5256, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5257, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5258, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5259, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5260, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5261, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5262, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5263, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5264, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5265, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5266, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5267, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5268, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5269, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5270, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5271, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5272, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5273, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 5274, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 4840, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 4846, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 5275, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 5276, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 5277, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 5278, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 5279, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 5280, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 4844, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 5281, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 5282, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 5283, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 5284, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 4848, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38053, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38056, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38059, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38062, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38065, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38068, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38071, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38074, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38077, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38080, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38083, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38086, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38089, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38092, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54479, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54484, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54489, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54494, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54499, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54504, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54509, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54514, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54519, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54524, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54529, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54534, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54539, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54544, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 54549, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 54554, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 54562, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38185, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38188, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38191, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38194, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38197, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38200, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38203, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38206, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38209, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38212, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38215, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38218, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38221, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38224, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38227, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38230, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38233, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38236, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38239, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38242, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38245, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38248, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38251, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38254, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38257, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38260, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38263, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38266, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38269, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38272, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38275, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38278, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38281, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38284, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38287, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38290, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5525, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5526, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4906, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5527, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, 38296, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21915, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21917, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21919, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21921, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21923, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21925, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21927, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21929, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21931, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21933, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21935, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21937, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21939, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21941, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21943, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5181, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5184, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5187, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5189, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5197, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5198, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5201, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5203, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5204, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5206, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5207, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5208, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5209, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5210, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21945, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21947, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21949, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21951, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21953, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21955, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21957, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21959, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21961, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21963, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21965, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21967, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21969, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21971, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 54741, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 54747, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 21984, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4840, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4846, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5275, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5276, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5602, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5603, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5604, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4851, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5605, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4863, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4913, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4925, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4924, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4914, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5006, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4871, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4911, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5606, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5607, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5608, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5609, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5610, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5611, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5612, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5613, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5614, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5615, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4877, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5616, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5617, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5618, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5619, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5620, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5621, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5622, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5623, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5277, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5278, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5279, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5624, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5625, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5626, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5627, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5628, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5629, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5630, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5631, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5632, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5633, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22018, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22020, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22022, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22024, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22026, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22028, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22030, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22032, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22034, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22036, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22038, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22040, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22042, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22044, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 22046, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22048, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22050, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22052, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22054, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22056, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22058, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22060, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22062, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22064, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38450, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38453, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38456, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, 22075, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, 38461, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, 22080, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, 38466, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5701, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5702, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5703, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5704, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5705, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5706, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5707, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5708, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5709, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5710, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5711, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5712, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5713, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5714, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5715, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5716, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5717, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5718, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5719, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5720, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5721, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5722, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5723, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5724, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5725, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5726, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5727, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5728, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5729, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5730, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5731, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5732, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5733, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5734, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5735, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5736, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5737, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5738, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5739, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5740, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5741, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5742, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5743, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5744, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5745, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5746, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 5747, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22132, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 54902, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 54907, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 54912, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38533, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 54920, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38541, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38544, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 54931, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 54937, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38558, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38561, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38564, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 54951, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 54956, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38577, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38580, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22199, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38585, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 54972, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 54977, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22214, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 54984, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 54990, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 54997, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38619, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55006, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55012, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55018, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38639, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38642, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38645, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55032, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55037, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55043, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38664, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38667, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38670, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22289, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22291, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22293, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22295, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38681, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38684, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55071, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38693, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55080, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55085, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38707, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22326, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22328, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55098, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55104, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55109, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38731, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55118, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22356, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38742, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38745, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38748, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38751, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38754, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55141, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38762, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22381, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38767, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38770, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38773, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55160, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38781, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38784, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38787, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55174, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55180, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22417, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55187, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22425, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55195, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55200, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38821, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38824, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38827, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55214, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22451, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38837, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55224, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22461, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55231, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38853, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22472, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22474, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22476, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22478, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22480, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22482, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22484, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22486, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22488, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22490, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38876, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38879, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38882, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38885, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38888, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38891, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38894, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38897, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38900, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38903, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38906, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38909, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38912, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38915, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 38918, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38921, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22540, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22542, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38928, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22547, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22549, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, 22551, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, 38937, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, 38940, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, 22559, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22561, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22563, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22565, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22567, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55337, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22574, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22576, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22578, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22580, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22582, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22584, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22586, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22588, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38974, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55361, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22598, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22600, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22602, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22604, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22606, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22608, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22610, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38996, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38999, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39002, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39005, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22624, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22626, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22628, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22630, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22632, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22634, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22636, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22638, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22640, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22642, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39028, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39031, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22650, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39036, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39039, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39042, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22661, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39047, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39050, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55437, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22674, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39060, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39063, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39066, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39069, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55456, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55462, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22701, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22703, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22705, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22707, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22709, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22711, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22713, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22715, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22717, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22719, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22721, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22723, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22725, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22727, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22729, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22731, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22733, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22735, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55505, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22742, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22744, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22746, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55516, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39137, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22756, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22758, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22760, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22762, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22764, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22766, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22768, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22770, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22772, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22774, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39160, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22779, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22781, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39167, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39170, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22789, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 55559, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39180, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22799, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22801, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22803, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22805, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, 39191, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, 39194, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22813, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22815, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22817, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22819, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22821, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22823, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22825, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22827, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 22829, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39215, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39218, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39221, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39224, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39227, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39230, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39233, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39236, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39239, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39242, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39245, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39248, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39251, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39254, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39257, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39260, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39263, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39266, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39269, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39272, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39275, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 39278, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, 39281, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6516, UINT16_MAX, 6516, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6517, UINT16_MAX, 6517, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6518, UINT16_MAX, 6518, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6519, UINT16_MAX, 6519, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6520, UINT16_MAX, 6520, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6521, UINT16_MAX, 6521, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6522, UINT16_MAX, 6522, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6523, UINT16_MAX, 6523, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6524, UINT16_MAX, 6524, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6525, UINT16_MAX, 6525, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2202, UINT16_MAX, 2202, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 2203, UINT16_MAX, 2203, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6526, UINT16_MAX, 6526, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6527, UINT16_MAX, 6527, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6528, UINT16_MAX, 6528, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6529, UINT16_MAX, 6529, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6530, UINT16_MAX, 6530, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6531, UINT16_MAX, 6531, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6532, UINT16_MAX, 6532, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6533, UINT16_MAX, 6533, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6534, UINT16_MAX, 6534, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6535, UINT16_MAX, 6535, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6536, UINT16_MAX, 6536, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6537, UINT16_MAX, 6537, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6538, UINT16_MAX, 6538, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6539, UINT16_MAX, 6539, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6540, UINT16_MAX, 6540, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6541, UINT16_MAX, 6541, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6542, UINT16_MAX, 6542, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6543, UINT16_MAX, 6543, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6544, UINT16_MAX, 6544, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6545, UINT16_MAX, 6545, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6546, UINT16_MAX, 6546, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6547, UINT16_MAX, 6547, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6548, UINT16_MAX, 6548, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6549, UINT16_MAX, 6549, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6550, UINT16_MAX, 6550, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6551, UINT16_MAX, 6551, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6552, UINT16_MAX, 6552, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6553, UINT16_MAX, 6553, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6554, UINT16_MAX, 6554, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6555, UINT16_MAX, 6555, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6556, UINT16_MAX, 6556, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6557, UINT16_MAX, 6557, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6558, UINT16_MAX, 6558, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6559, UINT16_MAX, 6559, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6560, UINT16_MAX, 6560, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6561, UINT16_MAX, 6561, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6562, UINT16_MAX, 6562, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6563, UINT16_MAX, 6563, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6564, UINT16_MAX, 6564, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6565, UINT16_MAX, 6565, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6566, UINT16_MAX, 6566, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6567, UINT16_MAX, 6567, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6568, UINT16_MAX, 6568, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6569, UINT16_MAX, 6569, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6570, UINT16_MAX, 6570, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6571, UINT16_MAX, 6571, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6572, UINT16_MAX, 6572, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6573, UINT16_MAX, 6573, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6574, UINT16_MAX, 6574, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6575, UINT16_MAX, 6575, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6576, UINT16_MAX, 6576, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6577, UINT16_MAX, 6577, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6578, UINT16_MAX, 6578, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6579, UINT16_MAX, 6579, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6580, UINT16_MAX, 6580, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6581, UINT16_MAX, 6581, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6582, UINT16_MAX, 6582, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6583, UINT16_MAX, 6583, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6584, UINT16_MAX, 6584, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6585, UINT16_MAX, 6585, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6586, UINT16_MAX, 6586, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6587, UINT16_MAX, 6587, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1371, UINT16_MAX, 6588, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1373, UINT16_MAX, 6589, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6590, UINT16_MAX, 6590, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6591, UINT16_MAX, 6591, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6592, UINT16_MAX, 6592, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6593, UINT16_MAX, 6593, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6594, UINT16_MAX, 6594, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6595, UINT16_MAX, 6595, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6596, UINT16_MAX, 6596, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6597, UINT16_MAX, 6597, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6598, UINT16_MAX, 6598, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6599, UINT16_MAX, 6599, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6600, UINT16_MAX, 6600, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6601, UINT16_MAX, 6601, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6602, UINT16_MAX, 6602, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6603, UINT16_MAX, 6603, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6604, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6605, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6606, UINT16_MAX, 6606, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6607, UINT16_MAX, 6607, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6608, UINT16_MAX, 6608, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6609, UINT16_MAX, 6609, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6610, UINT16_MAX, 6610, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6611, UINT16_MAX, 6611, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6612, UINT16_MAX, 6612, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6613, UINT16_MAX, 6613, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6614, UINT16_MAX, 6614, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6615, UINT16_MAX, 6615, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6616, UINT16_MAX, 6616, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6617, UINT16_MAX, 6617, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6618, UINT16_MAX, 6618, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6619, UINT16_MAX, 6619, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6620, UINT16_MAX, 6620, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6621, UINT16_MAX, 6621, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6622, UINT16_MAX, 6622, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6623, UINT16_MAX, 6623, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6624, UINT16_MAX, 6624, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6625, UINT16_MAX, 6625, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6626, UINT16_MAX, 6626, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6627, UINT16_MAX, 6627, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6628, UINT16_MAX, 6628, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6629, UINT16_MAX, 6629, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6630, UINT16_MAX, 6630, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6631, UINT16_MAX, 6631, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6632, UINT16_MAX, 6632, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6633, UINT16_MAX, 6633, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6634, UINT16_MAX, 6634, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6635, UINT16_MAX, 6635, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6636, UINT16_MAX, 6636, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6637, UINT16_MAX, 6637, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6638, UINT16_MAX, 6638, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6639, UINT16_MAX, 6639, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6640, UINT16_MAX, 6640, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6641, UINT16_MAX, 6641, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6642, UINT16_MAX, 6642, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6643, UINT16_MAX, 6643, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6644, UINT16_MAX, 6644, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6645, UINT16_MAX, 6645, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6646, UINT16_MAX, 6646, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6647, UINT16_MAX, 6647, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6648, UINT16_MAX, 6648, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6649, UINT16_MAX, 6649, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6650, UINT16_MAX, 6650, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6651, UINT16_MAX, 6651, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6652, UINT16_MAX, 6652, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6653, UINT16_MAX, 6653, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6654, UINT16_MAX, 6654, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6655, UINT16_MAX, 6655, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6656, UINT16_MAX, 6656, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6657, UINT16_MAX, 6657, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6658, UINT16_MAX, 6658, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6659, UINT16_MAX, 6659, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6660, UINT16_MAX, 6660, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6661, UINT16_MAX, 6661, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6662, UINT16_MAX, 6662, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6663, UINT16_MAX, 6663, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6664, UINT16_MAX, 6664, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6665, UINT16_MAX, 6665, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6666, UINT16_MAX, 6666, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6667, UINT16_MAX, 6667, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 6666, UINT16_MAX, 6668, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6669, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6670, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6671, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6672, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6673, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6674, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6675, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6676, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6677, UINT16_MAX, 6677, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6678, UINT16_MAX, 6678, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6679, UINT16_MAX, 6679, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6680, UINT16_MAX, 6680, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6681, UINT16_MAX, 6681, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6682, UINT16_MAX, 6682, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6683, UINT16_MAX, 6683, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6684, UINT16_MAX, 6684, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6685, UINT16_MAX, 6685, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6686, UINT16_MAX, 6686, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6687, UINT16_MAX, 6687, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6688, UINT16_MAX, 6688, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6689, UINT16_MAX, 6689, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6690, UINT16_MAX, 6690, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6691, UINT16_MAX, 6691, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6692, UINT16_MAX, 6692, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6693, UINT16_MAX, 6693, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2374, UINT16_MAX, 2374, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6694, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6695, UINT16_MAX, 6695, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6696, UINT16_MAX, 6696, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6697, UINT16_MAX, 6697, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6698, UINT16_MAX, 6698, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6699, UINT16_MAX, 6699, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6700, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6701, UINT16_MAX, 6701, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6702, UINT16_MAX, 6702, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6703, UINT16_MAX, 6703, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6704, UINT16_MAX, 6704, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6705, UINT16_MAX, 6705, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6706, UINT16_MAX, 6706, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6707, UINT16_MAX, 6707, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6708, UINT16_MAX, 6708, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6709, UINT16_MAX, 6709, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6710, UINT16_MAX, 6710, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6711, UINT16_MAX, 6711, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6712, UINT16_MAX, 6712, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6713, UINT16_MAX, 6713, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6714, UINT16_MAX, 6714, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6715, UINT16_MAX, 6715, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6716, UINT16_MAX, 6716, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6717, UINT16_MAX, 6717, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6718, UINT16_MAX, 6718, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6719, UINT16_MAX, 6719, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6720, UINT16_MAX, 6720, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 1105, UINT16_MAX, 1105, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2284, UINT16_MAX, 2284, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2372, UINT16_MAX, 2372, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6721, UINT16_MAX, 6721, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2378, UINT16_MAX, 2378, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6722, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6723, UINT16_MAX, 6723, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6724, UINT16_MAX, 6724, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2381, UINT16_MAX, 2381, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6725, UINT16_MAX, 6725, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6726, UINT16_MAX, 6726, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6727, UINT16_MAX, 6727, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6728, UINT16_MAX, 6728, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6729, UINT16_MAX, 6729, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6730, UINT16_MAX, 6730, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6731, UINT16_MAX, 6731, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6732, UINT16_MAX, 6732, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6733, UINT16_MAX, 6733, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6734, UINT16_MAX, 6734, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6735, UINT16_MAX, 6735, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6736, UINT16_MAX, 6736, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6737, UINT16_MAX, 6737, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6738, UINT16_MAX, 6738, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6739, UINT16_MAX, 6739, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6740, UINT16_MAX, 6740, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6741, UINT16_MAX, 6741, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6742, UINT16_MAX, 6742, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 2394, UINT16_MAX, 2394, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6743, UINT16_MAX, 6743, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6744, UINT16_MAX, 6744, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6745, UINT16_MAX, 6745, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6746, UINT16_MAX, 6746, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6747, UINT16_MAX, 6747, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6748, UINT16_MAX, 6748, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6749, UINT16_MAX, 6749, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6750, UINT16_MAX, 6750, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6751, UINT16_MAX, 6751, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6752, UINT16_MAX, 6752, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6753, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6754, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6755, UINT16_MAX, 6755, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6756, UINT16_MAX, 6756, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6757, UINT16_MAX, 6757, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6758, UINT16_MAX, 6758, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6759, UINT16_MAX, 6759, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6760, UINT16_MAX, 6760, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6761, UINT16_MAX, 6761, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 28, UINT16_MAX, 6762, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 31, UINT16_MAX, 6763, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 42, UINT16_MAX, 6764, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6765, UINT16_MAX, 6765, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6766, UINT16_MAX, 6766, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 358, UINT16_MAX, 6767, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 473, UINT16_MAX, 6768, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6769, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6770, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6771, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6772, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6773, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6774, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6775, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6776, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6777, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6778, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6779, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6780, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6781, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6782, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6783, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6784, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6785, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6786, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6787, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6788, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6789, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6790, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6791, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6792, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6793, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6794, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6795, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6796, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6797, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6798, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6799, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6800, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6801, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6802, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6803, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6804, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6805, UINT16_MAX, 6805, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6806, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6807, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6808, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6809, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6810, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6811, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6812, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 6594, UINT16_MAX, 6813, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 6777, UINT16_MAX, 6814, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 4664, UINT16_MAX, 6815, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 6804, UINT16_MAX, 6816, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6817, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6818, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6819, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6820, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6821, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6822, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6823, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6824, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 6825, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1070, UINT16_MAX, 6826, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6827, 6827, UINT16_MAX, 6827, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6828, 6828, UINT16_MAX, 6828, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6829, 6829, UINT16_MAX, 6829, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6830, 6830, UINT16_MAX, 6830, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6831, 6831, UINT16_MAX, 6831, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6832, 6832, UINT16_MAX, 6832, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6833, 6833, UINT16_MAX, 6833, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6834, 6834, UINT16_MAX, 6834, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6835, 6835, UINT16_MAX, 6835, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6836, 6836, UINT16_MAX, 6836, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6837, 6837, UINT16_MAX, 6837, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6838, 6838, UINT16_MAX, 6838, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6839, 6839, UINT16_MAX, 6839, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6840, 6840, UINT16_MAX, 6840, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6841, 6841, UINT16_MAX, 6841, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6842, 6842, UINT16_MAX, 6842, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6843, 6843, UINT16_MAX, 6843, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6844, 6844, UINT16_MAX, 6844, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6845, 6845, UINT16_MAX, 6845, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6846, 6846, UINT16_MAX, 6846, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6847, 6847, UINT16_MAX, 6847, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6848, 6848, UINT16_MAX, 6848, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6849, 6849, UINT16_MAX, 6849, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6850, 6850, UINT16_MAX, 6850, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6851, 6851, UINT16_MAX, 6851, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6852, 6852, UINT16_MAX, 6852, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6853, 6853, UINT16_MAX, 6853, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6854, 6854, UINT16_MAX, 6854, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6855, 6855, UINT16_MAX, 6855, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6856, 6856, UINT16_MAX, 6856, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6857, 6857, UINT16_MAX, 6857, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6858, 6858, UINT16_MAX, 6858, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6859, 6859, UINT16_MAX, 6859, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6860, 6860, UINT16_MAX, 6860, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6861, 6861, UINT16_MAX, 6861, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6862, 6862, UINT16_MAX, 6862, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6863, 6863, UINT16_MAX, 6863, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6864, 6864, UINT16_MAX, 6864, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6865, 6865, UINT16_MAX, 6865, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6866, 6866, UINT16_MAX, 6866, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6867, 6867, UINT16_MAX, 6867, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6868, 6868, UINT16_MAX, 6868, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6869, 6869, UINT16_MAX, 6869, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6870, 6870, UINT16_MAX, 6870, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6871, 6871, UINT16_MAX, 6871, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6872, 6872, UINT16_MAX, 6872, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6873, 6873, UINT16_MAX, 6873, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6874, 6874, UINT16_MAX, 6874, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6875, 6875, UINT16_MAX, 6875, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6876, 6876, UINT16_MAX, 6876, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6877, 6877, UINT16_MAX, 6877, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6878, 6878, UINT16_MAX, 6878, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6879, 6879, UINT16_MAX, 6879, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6880, 6880, UINT16_MAX, 6880, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6881, 6881, UINT16_MAX, 6881, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6882, 6882, UINT16_MAX, 6882, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6883, 6883, UINT16_MAX, 6883, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6884, 6884, UINT16_MAX, 6884, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6885, 6885, UINT16_MAX, 6885, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6886, 6886, UINT16_MAX, 6886, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6887, 6887, UINT16_MAX, 6887, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6888, 6888, UINT16_MAX, 6888, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6889, 6889, UINT16_MAX, 6889, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6890, 6890, UINT16_MAX, 6890, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6891, 6891, UINT16_MAX, 6891, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6892, 6892, UINT16_MAX, 6892, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6893, 6893, UINT16_MAX, 6893, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6894, 6894, UINT16_MAX, 6894, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6895, 6895, UINT16_MAX, 6895, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6896, 6896, UINT16_MAX, 6896, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6897, 6897, UINT16_MAX, 6897, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6898, 6898, UINT16_MAX, 6898, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6899, 6899, UINT16_MAX, 6899, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6900, 6900, UINT16_MAX, 6900, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6901, 6901, UINT16_MAX, 6901, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6902, 6902, UINT16_MAX, 6902, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6903, 6903, UINT16_MAX, 6903, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6904, 6904, UINT16_MAX, 6904, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6905, 6905, UINT16_MAX, 6905, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 6906, 6906, UINT16_MAX, 6906, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_LV, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_LVT, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CS, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6907, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6908, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4998, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6909, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6910, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6911, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6912, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 5052, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6913, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 5006, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6914, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6915, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6916, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6917, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6918, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6919, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6920, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6921, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6922, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6923, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6924, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6925, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6926, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6927, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6928, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6929, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6930, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6931, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6932, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6933, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6934, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6935, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6936, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6937, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6938, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6939, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6940, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6941, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6942, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6943, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6944, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6945, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6946, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6947, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6948, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6949, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6950, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6951, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6952, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6953, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6954, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4964, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6955, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6956, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6957, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6958, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6959, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6960, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6961, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6962, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6963, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6964, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6965, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 5037, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6966, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6967, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6968, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6969, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6970, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6971, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6972, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6973, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6974, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6975, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6976, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6977, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6978, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6979, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6980, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6981, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6982, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6983, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6984, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6985, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6986, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6987, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6988, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6989, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6990, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6991, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6992, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6993, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6994, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6995, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6996, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6997, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6998, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 6999, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7000, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7001, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7002, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7003, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7004, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7005, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7006, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7007, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7008, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7009, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7010, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7011, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7012, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 5000, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7013, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7014, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7015, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7016, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7017, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7018, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7019, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7020, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7021, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7022, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7023, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7024, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7025, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7026, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7027, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4877, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7028, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7029, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7030, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7031, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7032, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7033, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7034, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7035, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4858, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7036, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7037, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7038, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7039, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7040, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7041, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7042, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7043, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7044, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7045, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7046, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7047, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7048, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7049, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7050, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7051, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7052, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7053, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7054, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7055, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7056, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7057, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7058, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7059, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7060, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7061, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7062, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7063, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7064, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7065, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7066, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7067, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7068, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7069, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7070, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7071, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7072, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7073, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7074, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7075, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7076, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7077, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7078, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7079, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7080, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7081, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7082, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7083, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7084, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7085, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7086, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7087, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7088, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7089, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 5051, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7090, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7091, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7092, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7093, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7094, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7095, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7096, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7097, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7098, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7099, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7100, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7101, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 5603, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7102, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7103, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7104, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7105, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7106, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7107, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7108, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7109, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7110, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7111, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7112, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7113, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7114, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7115, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7116, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7117, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7118, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7119, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7120, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7121, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7122, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7123, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 5005, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7124, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7125, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7126, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7127, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7128, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7129, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7130, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7131, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7132, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7133, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7134, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7135, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7136, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4956, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7137, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7138, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7139, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7140, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7141, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7142, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7143, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7144, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7145, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7146, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7147, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7148, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7149, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7150, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7151, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7152, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4983, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7153, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4986, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7154, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7155, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7156, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7157, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7158, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7159, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7160, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7161, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7162, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7163, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7164, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7165, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7166, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7167, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4963, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7168, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7169, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7170, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7171, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7172, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7173, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7174, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7175, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7176, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7177, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7178, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7179, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7180, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7181, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7182, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7183, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7184, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7185, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7186, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7187, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7188, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7189, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4884, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7190, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7191, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7192, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7193, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7194, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7195, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7196, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7197, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7198, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7199, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7200, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7201, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7202, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7203, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7204, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 5608, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7205, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7206, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7207, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7208, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 5612, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7209, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7210, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7211, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7212, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7213, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7214, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7215, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7216, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7217, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7218, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7219, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7220, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7221, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7222, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7223, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7224, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7225, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7226, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7227, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7228, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7229, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7230, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7231, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7232, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7234, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7235, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7236, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7237, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7238, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7239, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7240, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7241, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7242, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7243, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7244, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7245, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7246, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7247, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7248, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7249, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7250, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7251, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7252, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7253, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7254, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7255, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7256, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7257, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7258, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7259, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7260, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7261, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7262, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7263, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7264, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7265, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4917, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7266, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7267, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7268, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7269, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7270, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7271, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7272, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7273, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7274, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7275, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7276, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7277, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7278, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7279, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7280, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7281, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7282, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7283, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7284, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7285, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7286, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7287, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7288, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7289, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7290, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7291, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7292, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7293, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7294, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7295, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7296, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7297, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7298, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7299, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7300, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7301, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7302, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7303, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7305, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7307, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7309, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7310, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7311, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7312, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7314, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7316, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7318, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 7319, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 23704, 23704, 7322, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 23707, 23707, 7325, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 23710, 23710, 7328, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 40097, 40097, 7332, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 40101, 40101, 7336, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 23721, 23723, 7341, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 23723, 23723, 7342, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 23727, 23727, 7345, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 23730, 23730, 7348, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 23733, 23733, 7351, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 23736, 23736, 7354, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 23739, 23739, 7357, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23742, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 26, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23744, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 7362, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 4013, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 4016, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 7363, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 7364, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 7365, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 7366, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 7367, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 7368, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_FONT, 3939, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23753, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23755, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23757, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23759, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23761, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23763, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23765, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23767, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23769, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23771, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23773, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23775, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23777, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23779, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23781, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23783, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23785, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23787, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23789, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23791, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23793, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23795, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23797, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23799, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23801, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23803, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23805, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23807, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23809, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23811, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23813, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 23815, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_COMPAT, 23817, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7435, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7435, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7436, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7436, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7436, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7436, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7437, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7437, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7437, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7437, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7438, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7438, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7438, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7438, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7439, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7439, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7439, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7439, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7440, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7440, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7440, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7440, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7441, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7441, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7441, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7441, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7442, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7442, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7442, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7442, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7443, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7443, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7443, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7443, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7444, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7444, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7444, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7444, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7445, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7445, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7445, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7445, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7446, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7446, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7446, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7446, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7447, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7447, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7447, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7447, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7448, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7448, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7449, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7449, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7450, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7450, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7451, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7451, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7452, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7452, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7453, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7453, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7454, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7454, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7454, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7454, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7455, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7455, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7455, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7455, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7456, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7456, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7456, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7456, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7457, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7457, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7457, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7457, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7458, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7458, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7459, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7459, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7459, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7459, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7460, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7460, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7461, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7461, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7461, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7461, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7462, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7462, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7462, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7462, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7463, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7463, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7464, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7464, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7465, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7465, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7465, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7465, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7466, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7466, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7467, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7467, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7468, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7468, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7469, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7470, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7470, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7471, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7471, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7472, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7472, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7473, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7473, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7473, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7473, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7474, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7474, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23859, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23859, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23861, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23861, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23863, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23863, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23865, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23865, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23867, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23867, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23869, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23869, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23871, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23871, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23871, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23873, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23873, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23873, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7491, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7491, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 7491, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 7491, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23876, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23878, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23880, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23882, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23884, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23886, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23888, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23890, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23892, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23894, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23896, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23898, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23900, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23902, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23904, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23906, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23908, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23910, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23912, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23914, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23916, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23918, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23920, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23922, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23924, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23926, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23928, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23930, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23932, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23934, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23936, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23938, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23940, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23942, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23944, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23946, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23948, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23950, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23952, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23954, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23956, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23958, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23960, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23962, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23964, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23966, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23968, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23970, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23972, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23974, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23976, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23978, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23980, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23982, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23984, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23986, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23988, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23990, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23992, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23994, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23996, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 23998, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24000, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24002, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24004, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24006, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24008, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24010, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24012, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24014, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24016, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24018, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24020, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24022, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24024, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24026, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24028, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24030, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24032, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24034, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24036, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24038, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24040, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24042, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24044, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24046, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24048, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24050, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24052, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24054, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24056, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24058, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24060, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 40446, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 40449, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 40452, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 40455, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 40458, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 40461, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24080, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24082, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23880, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24084, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23882, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24086, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24088, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23890, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24090, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23892, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23894, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24092, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24094, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23902, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24096, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23904, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23906, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24098, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24100, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23910, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24102, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23912, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23914, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23972, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23974, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23980, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23982, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23984, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23992, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23994, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23996, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 23998, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24006, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24008, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24010, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24104, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24018, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24106, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24108, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24030, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24110, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24032, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24034, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24060, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24112, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24114, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24050, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24116, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24052, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24054, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23876, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23878, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24118, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23880, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24120, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23884, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23886, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23888, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23890, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24122, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23896, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23898, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23900, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23902, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24124, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23910, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23916, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23918, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23920, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23922, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23924, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23928, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23930, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23932, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23934, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23936, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23938, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24126, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23940, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23942, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23944, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23946, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23948, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23950, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23954, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23956, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23958, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23960, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23962, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23964, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23966, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23968, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23970, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23976, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23978, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23986, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23988, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23990, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23992, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23994, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24000, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24002, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24004, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24006, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24128, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24012, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24014, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24016, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24018, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24024, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24026, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24028, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24030, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24130, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24036, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24038, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24132, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24044, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24046, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24048, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24050, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24134, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 23880, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24120, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 23890, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24122, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 23902, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24124, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 23910, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24136, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 23936, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24138, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24140, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24142, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 23992, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 23994, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24006, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24030, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24130, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24050, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24134, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 40528, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 40531, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 40534, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24153, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24155, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24157, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24159, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24161, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24163, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24165, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24167, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24169, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24171, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24173, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24175, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24177, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24179, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24181, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24183, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24185, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24187, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24189, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24191, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24193, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24195, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24197, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24140, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24199, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24201, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24203, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24205, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24153, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24155, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24157, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24159, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24161, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24163, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24165, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24167, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24169, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24171, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24173, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24175, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24177, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24179, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24181, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24183, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24185, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24187, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24189, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24191, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24193, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24195, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24197, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24140, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24199, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24201, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24203, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24205, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24193, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24195, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24197, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24140, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24138, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 24142, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 23952, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 23930, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 23932, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 23934, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24193, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24195, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24197, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 23952, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 23954, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24207, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24207, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40593, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40596, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40596, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40599, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40602, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40605, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40608, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40611, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40614, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40614, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40617, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40620, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40623, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40626, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40629, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40632, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40632, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40635, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40638, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40638, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40641, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40641, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40644, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40647, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40647, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40650, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40653, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40653, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40656, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40656, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40659, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40662, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40662, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40665, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40665, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40668, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40671, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40674, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40677, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40677, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40680, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40683, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40686, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40689, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40692, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40692, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40695, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40698, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40701, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40704, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40707, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40710, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40710, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40713, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40713, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40716, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40716, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40719, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40722, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40725, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40728, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40731, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40734, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40737, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40740, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40743, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40746, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40749, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40752, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40755, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40755, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40758, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40761, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40764, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40767, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40767, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40770, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40773, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40776, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40779, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40782, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40785, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40788, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40791, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40794, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40797, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40800, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40803, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40806, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40809, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40812, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40815, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40818, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40821, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40824, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40827, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40830, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40833, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40695, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40701, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40836, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40839, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40842, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40845, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40848, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40851, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40848, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40842, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40854, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40857, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40860, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40863, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40866, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40851, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40674, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 40644, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40869, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 40872, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 40875, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 40878, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 57265, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 57270, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 57275, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 57280, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 57285, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 57290, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 57295, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 40916, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 57303, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 57322, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 57331, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8184, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8185, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8186, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8187, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 1153, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8188, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8189, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8190, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8191, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8192, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8193, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8194, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8195, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8196, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 3942, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 3943, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8197, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8198, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8199, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8200, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8201, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8202, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8203, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8204, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 4264, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 4265, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8205, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8206, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8207, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8208, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8209, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8210, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 8211, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 8196, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_SMALL, 8184, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8185, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_SMALL, 3900, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 1153, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_SMALL, 8187, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8189, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8188, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8194, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 3942, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 3943, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8197, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8198, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8199, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8200, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_SMALL, 8212, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8213, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8214, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SMALL, 3939, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SMALL, 8215, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8216, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8217, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 3941, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8218, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_SMALL, 8219, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_SMALL, 8220, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8221, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24606, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24608, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24610, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24612, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24614, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24616, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24618, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24620, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24622, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24624, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24626, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24628, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24630, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 24632, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8250, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8251, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8251, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8252, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8252, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8253, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8253, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8254, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8254, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8255, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8255, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8255, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8255, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8256, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8256, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8257, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8257, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8257, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8257, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8258, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8258, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8259, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8259, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8259, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8259, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8260, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8260, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8260, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8260, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8261, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8261, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8261, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8261, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8262, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8262, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8262, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8262, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8263, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8263, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8263, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8263, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8264, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8264, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8265, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8265, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8266, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8266, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8267, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8267, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8268, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8268, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8268, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8268, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8269, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8269, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8269, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8269, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8270, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8270, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8270, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8270, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8271, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8271, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8271, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8271, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8272, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8272, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8272, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8272, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8273, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8273, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8273, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8273, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8274, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8274, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8274, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8274, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8275, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8275, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8275, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8275, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8276, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8276, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8276, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8276, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8277, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8277, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8277, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8277, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8278, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8278, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8278, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8278, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8279, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8279, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8279, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8279, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8280, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8280, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8280, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8280, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8281, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8281, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8281, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8281, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8282, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8282, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8282, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8282, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8283, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8283, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 7474, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 7474, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 8284, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 8284, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 8284, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 8284, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24669, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24669, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24671, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24671, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24673, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24673, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 24675, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 24675, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8188, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8293, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 8212, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 8219, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 8220, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8213, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8294, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 3942, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 3943, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8214, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_WIDE, 3939, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, 8184, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_WIDE, 8215, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, 3900, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, 8295, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 3931, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 66, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 58, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 59, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 3933, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 3934, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 3935, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 3936, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 3937, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 3938, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, 8187, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 1153, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8216, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 3941, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8217, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8189, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8221, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 26, 8296, UINT16_MAX, 8296, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 27, 8297, UINT16_MAX, 8297, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 28, 8298, UINT16_MAX, 8298, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 29, 8299, UINT16_MAX, 8299, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 30, 8300, UINT16_MAX, 8300, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 31, 8301, UINT16_MAX, 8301, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 32, 8302, UINT16_MAX, 8302, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 33, 8303, UINT16_MAX, 8303, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 34, 8304, UINT16_MAX, 8304, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 35, 8305, UINT16_MAX, 8305, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 36, 8306, UINT16_MAX, 8306, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 37, 8307, UINT16_MAX, 8307, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 38, 8308, UINT16_MAX, 8308, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 39, 8309, UINT16_MAX, 8309, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 40, 8310, UINT16_MAX, 8310, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 41, 8311, UINT16_MAX, 8311, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 42, 8312, UINT16_MAX, 8312, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 43, 8313, UINT16_MAX, 8313, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 44, 8314, UINT16_MAX, 8314, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 45, 8315, UINT16_MAX, 8315, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 46, 8316, UINT16_MAX, 8316, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 47, 8317, UINT16_MAX, 8317, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 48, 8318, UINT16_MAX, 8318, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 49, 8319, UINT16_MAX, 8319, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 50, 8320, UINT16_MAX, 8320, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 51, 8321, UINT16_MAX, 8321, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8209, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8218, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8210, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8322, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8196, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 3856, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 0, UINT16_MAX, 8323, UINT16_MAX, 8323, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 1, UINT16_MAX, 8324, UINT16_MAX, 8324, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 2, UINT16_MAX, 8325, UINT16_MAX, 8325, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 3, UINT16_MAX, 8326, UINT16_MAX, 8326, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 4, UINT16_MAX, 8327, UINT16_MAX, 8327, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 5, UINT16_MAX, 8328, UINT16_MAX, 8328, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 6, UINT16_MAX, 8329, UINT16_MAX, 8329, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 7, UINT16_MAX, 8330, UINT16_MAX, 8330, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 8, UINT16_MAX, 8331, UINT16_MAX, 8331, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 9, UINT16_MAX, 8332, UINT16_MAX, 8332, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 10, UINT16_MAX, 8333, UINT16_MAX, 8333, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 11, UINT16_MAX, 8334, UINT16_MAX, 8334, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 12, UINT16_MAX, 8335, UINT16_MAX, 8335, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 13, UINT16_MAX, 8336, UINT16_MAX, 8336, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 14, UINT16_MAX, 8337, UINT16_MAX, 8337, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 15, UINT16_MAX, 8338, UINT16_MAX, 8338, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 16, UINT16_MAX, 8339, UINT16_MAX, 8339, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 17, UINT16_MAX, 8340, UINT16_MAX, 8340, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 18, UINT16_MAX, 8341, UINT16_MAX, 8341, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 19, UINT16_MAX, 8342, UINT16_MAX, 8342, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 20, UINT16_MAX, 8343, UINT16_MAX, 8343, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 21, UINT16_MAX, 8344, UINT16_MAX, 8344, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 22, UINT16_MAX, 8345, UINT16_MAX, 8345, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 23, UINT16_MAX, 8346, UINT16_MAX, 8346, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 24, UINT16_MAX, 8347, UINT16_MAX, 8347, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 25, UINT16_MAX, 8348, UINT16_MAX, 8348, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8197, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8349, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8198, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8350, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8351, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8352, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8186, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8205, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8206, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8185, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8353, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5747, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8354, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8355, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8356, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8357, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8358, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8359, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8360, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8361, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8362, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8363, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5701, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5702, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5703, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5704, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5705, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5706, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5707, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5708, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5709, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5710, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5711, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5712, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5713, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5714, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5715, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5716, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5717, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5718, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5719, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5720, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5721, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5722, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5723, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5724, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5725, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5726, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5727, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5728, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5729, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5730, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5731, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5732, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5733, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5734, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5735, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5736, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5737, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5738, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5739, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5740, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5741, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5742, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5743, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 5744, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8364, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8365, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8366, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8367, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8368, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8369, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8370, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8371, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8372, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8373, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8374, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8375, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8376, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8377, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8378, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8379, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8380, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8381, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8382, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8383, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8384, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8385, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8386, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8387, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8388, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8389, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8390, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8391, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8392, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8393, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8394, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8395, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8396, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8397, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8398, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8399, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8400, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8401, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8402, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8403, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8404, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8405, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8406, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8407, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8408, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8409, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8410, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8411, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8412, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8413, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8414, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8415, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8416, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8417, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 8418, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 8419, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 8420, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8421, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8422, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 8423, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 8424, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 8425, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8426, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8427, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8428, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8429, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8430, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8431, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8432, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8433, UINT16_MAX, 8433, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8435, UINT16_MAX, 8435, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8437, UINT16_MAX, 8437, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8439, UINT16_MAX, 8439, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8441, UINT16_MAX, 8441, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8443, UINT16_MAX, 8443, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8445, UINT16_MAX, 8445, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8447, UINT16_MAX, 8447, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8449, UINT16_MAX, 8449, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8451, UINT16_MAX, 8451, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8453, UINT16_MAX, 8453, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8455, UINT16_MAX, 8455, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8457, UINT16_MAX, 8457, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8459, UINT16_MAX, 8459, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8461, UINT16_MAX, 8461, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8463, UINT16_MAX, 8463, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8465, UINT16_MAX, 8465, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8467, UINT16_MAX, 8467, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8469, UINT16_MAX, 8469, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8471, UINT16_MAX, 8471, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8473, UINT16_MAX, 8473, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8475, UINT16_MAX, 8475, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8477, UINT16_MAX, 8477, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8479, UINT16_MAX, 8479, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8481, UINT16_MAX, 8481, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8483, UINT16_MAX, 8483, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8485, UINT16_MAX, 8485, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8487, UINT16_MAX, 8487, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8489, UINT16_MAX, 8489, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8491, UINT16_MAX, 8491, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8493, UINT16_MAX, 8493, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8495, UINT16_MAX, 8495, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8497, UINT16_MAX, 8497, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8499, UINT16_MAX, 8499, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8501, UINT16_MAX, 8501, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8503, UINT16_MAX, 8503, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8505, UINT16_MAX, 8505, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8507, UINT16_MAX, 8507, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8509, UINT16_MAX, 8509, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8511, UINT16_MAX, 8511, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8513, UINT16_MAX, 8513, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8515, UINT16_MAX, 8515, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8517, UINT16_MAX, 8517, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8519, UINT16_MAX, 8519, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8521, UINT16_MAX, 8521, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8523, UINT16_MAX, 8523, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8525, UINT16_MAX, 8525, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8527, UINT16_MAX, 8527, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8529, UINT16_MAX, 8529, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8531, UINT16_MAX, 8531, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8533, UINT16_MAX, 8533, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8535, UINT16_MAX, 8535, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8537, UINT16_MAX, 8537, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8539, UINT16_MAX, 8539, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8541, UINT16_MAX, 8541, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8543, UINT16_MAX, 8543, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8545, UINT16_MAX, 8545, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8547, UINT16_MAX, 8547, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8549, UINT16_MAX, 8549, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8551, UINT16_MAX, 8551, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8553, UINT16_MAX, 8553, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8555, UINT16_MAX, 8555, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8557, UINT16_MAX, 8557, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8559, UINT16_MAX, 8559, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8561, UINT16_MAX, 8561, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8563, UINT16_MAX, 8563, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8565, UINT16_MAX, 8565, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8567, UINT16_MAX, 8567, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8569, UINT16_MAX, 8569, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8571, UINT16_MAX, 8571, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8573, UINT16_MAX, 8573, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8575, UINT16_MAX, 8575, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8577, UINT16_MAX, 8577, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8579, UINT16_MAX, 8579, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8581, UINT16_MAX, 8581, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8583, UINT16_MAX, 8583, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8585, UINT16_MAX, 8585, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8587, UINT16_MAX, 8587, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8589, UINT16_MAX, 8589, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8591, UINT16_MAX, 8591, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8593, UINT16_MAX, 8593, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8595, UINT16_MAX, 8595, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8597, UINT16_MAX, 8597, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8599, UINT16_MAX, 8599, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8601, UINT16_MAX, 8601, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8603, UINT16_MAX, 8603, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8605, UINT16_MAX, 8605, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8607, UINT16_MAX, 8607, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8609, UINT16_MAX, 8609, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8611, UINT16_MAX, 8611, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8613, UINT16_MAX, 8613, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8615, UINT16_MAX, 8615, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8617, UINT16_MAX, 8617, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8619, UINT16_MAX, 8619, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8621, UINT16_MAX, 8621, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8623, UINT16_MAX, 8623, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8625, UINT16_MAX, 8625, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8627, UINT16_MAX, 8627, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8629, UINT16_MAX, 8629, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8631, UINT16_MAX, 8631, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8633, UINT16_MAX, 8633, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8635, UINT16_MAX, 8635, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8637, UINT16_MAX, 8637, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8639, UINT16_MAX, 8639, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8641, UINT16_MAX, 8641, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8643, UINT16_MAX, 8643, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8645, UINT16_MAX, 8645, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8647, UINT16_MAX, 8647, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8649, UINT16_MAX, 8649, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8651, UINT16_MAX, 8651, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8653, UINT16_MAX, 8653, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8655, UINT16_MAX, 8655, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8657, UINT16_MAX, 8657, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8659, UINT16_MAX, 8659, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8661, UINT16_MAX, 8661, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8663, UINT16_MAX, 8663, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8665, UINT16_MAX, 8665, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8667, UINT16_MAX, 8667, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8669, UINT16_MAX, 8669, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8671, UINT16_MAX, 8671, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8673, UINT16_MAX, 8673, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8675, UINT16_MAX, 8675, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8677, UINT16_MAX, 8677, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8679, UINT16_MAX, 8679, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8681, UINT16_MAX, 8681, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8683, UINT16_MAX, 8683, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8685, UINT16_MAX, 8685, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8687, UINT16_MAX, 8687, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8689, UINT16_MAX, 8689, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8691, UINT16_MAX, 8691, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8693, UINT16_MAX, 8693, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8695, UINT16_MAX, 8695, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8697, UINT16_MAX, 8697, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8699, UINT16_MAX, 8699, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8701, UINT16_MAX, 8701, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8703, UINT16_MAX, 8703, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8705, UINT16_MAX, 8705, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8707, UINT16_MAX, 8707, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8709, UINT16_MAX, 8709, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8711, UINT16_MAX, 8711, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8713, UINT16_MAX, 8713, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8715, UINT16_MAX, 8715, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8717, UINT16_MAX, 8717, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8719, UINT16_MAX, 8719, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8721, UINT16_MAX, 8721, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8723, UINT16_MAX, 8723, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8725, UINT16_MAX, 8725, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8727, UINT16_MAX, 8727, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8729, UINT16_MAX, 8729, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8731, UINT16_MAX, 8731, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8733, UINT16_MAX, 8733, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8735, UINT16_MAX, 8735, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8737, UINT16_MAX, 8737, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8739, UINT16_MAX, 8739, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8741, UINT16_MAX, 8741, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8743, UINT16_MAX, 8743, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8745, UINT16_MAX, 8745, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8747, UINT16_MAX, 8747, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8749, UINT16_MAX, 8749, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8751, UINT16_MAX, 8751, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8753, UINT16_MAX, 8753, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8755, UINT16_MAX, 8755, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8757, UINT16_MAX, 8757, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8759, UINT16_MAX, 8759, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8761, UINT16_MAX, 8761, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8763, UINT16_MAX, 8763, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8765, UINT16_MAX, 8765, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8767, UINT16_MAX, 8767, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8769, UINT16_MAX, 8769, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8771, UINT16_MAX, 8771, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8773, UINT16_MAX, 8773, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8775, UINT16_MAX, 8775, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8777, UINT16_MAX, 8777, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8779, UINT16_MAX, 8779, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8781, UINT16_MAX, 8781, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8783, UINT16_MAX, 8783, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8785, UINT16_MAX, 8785, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8787, UINT16_MAX, 8787, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8789, UINT16_MAX, 8789, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8791, UINT16_MAX, 8791, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8793, UINT16_MAX, 8793, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8795, UINT16_MAX, 8795, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8797, UINT16_MAX, 8797, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8799, UINT16_MAX, 8799, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8801, UINT16_MAX, 8801, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8803, UINT16_MAX, 8803, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 8805, UINT16_MAX, 8805, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8807, UINT16_MAX, 8807, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8809, UINT16_MAX, 8809, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8811, UINT16_MAX, 8811, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8813, UINT16_MAX, 8813, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8815, UINT16_MAX, 8815, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8817, UINT16_MAX, 8817, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8819, UINT16_MAX, 8819, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8821, UINT16_MAX, 8821, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8823, UINT16_MAX, 8823, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8825, UINT16_MAX, 8825, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8827, UINT16_MAX, 8827, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8829, UINT16_MAX, 8829, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8831, UINT16_MAX, 8831, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8833, UINT16_MAX, 8833, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8835, UINT16_MAX, 8835, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8837, UINT16_MAX, 8837, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8839, UINT16_MAX, 8839, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8841, UINT16_MAX, 8841, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8843, UINT16_MAX, 8843, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8845, UINT16_MAX, 8845, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8847, UINT16_MAX, 8847, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8849, UINT16_MAX, 8849, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8851, UINT16_MAX, 8851, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8853, UINT16_MAX, 8853, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8855, UINT16_MAX, 8855, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8857, UINT16_MAX, 8857, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8859, UINT16_MAX, 8859, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8861, UINT16_MAX, 8861, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8863, UINT16_MAX, 8863, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8865, UINT16_MAX, 8865, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8867, UINT16_MAX, 8867, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8869, UINT16_MAX, 8869, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8871, UINT16_MAX, 8871, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8873, UINT16_MAX, 8873, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8875, UINT16_MAX, 8875, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25261, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 928, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 929, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25264, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8883, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 8885, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 8886, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 95, UINT16_MAX, 8887, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1081, UINT16_MAX, 8889, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 601, UINT16_MAX, 8891, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1091, UINT16_MAX, 8893, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 6823, UINT16_MAX, 8895, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1093, UINT16_MAX, 8897, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1092, UINT16_MAX, 8899, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 609, UINT16_MAX, 8901, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 610, UINT16_MAX, 8903, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 2354, UINT16_MAX, 8905, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1017, UINT16_MAX, 8907, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1023, UINT16_MAX, 8909, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1097, UINT16_MAX, 8911, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 6748, UINT16_MAX, 8913, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1027, UINT16_MAX, 8915, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 619, UINT16_MAX, 8917, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1083, UINT16_MAX, 8919, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 357, UINT16_MAX, 8921, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1084, UINT16_MAX, 8923, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1032, UINT16_MAX, 8925, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1061, UINT16_MAX, 8927, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1098, UINT16_MAX, 8929, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1099, UINT16_MAX, 8931, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 6721, UINT16_MAX, 8933, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 8935, UINT16_MAX, 8937, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 6694, UINT16_MAX, 8939, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1039, UINT16_MAX, 8941, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 8943, UINT16_MAX, 8945, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1071, UINT16_MAX, 8947, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 8949, UINT16_MAX, 8951, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 142, UINT16_MAX, 8953, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1047, UINT16_MAX, 8955, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1048, UINT16_MAX, 8957, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 16, UINT16_MAX, 8959, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1051, UINT16_MAX, 8961, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 8963, UINT16_MAX, 8965, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 4666, UINT16_MAX, 8967, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1055, UINT16_MAX, 8969, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 642, UINT16_MAX, 8971, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1096, UINT16_MAX, 8973, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1094, UINT16_MAX, 8975, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 6824, UINT16_MAX, 8977, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1095, UINT16_MAX, 8979, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 650, UINT16_MAX, 8981, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 4675, UINT16_MAX, 8983, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1072, UINT16_MAX, 8985, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1089, UINT16_MAX, 8987, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1090, UINT16_MAX, 8989, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1080, UINT16_MAX, 8991, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 8993, UINT16_MAX, 8994, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 8996, UINT16_MAX, 8997, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 8999, UINT16_MAX, 9000, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 9002, UINT16_MAX, 9004, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 9006, UINT16_MAX, 9008, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9010, UINT16_MAX, 9010, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9012, UINT16_MAX, 9012, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9014, UINT16_MAX, 9014, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9016, UINT16_MAX, 9016, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9018, UINT16_MAX, 9018, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9020, UINT16_MAX, 9020, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9022, UINT16_MAX, 9022, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9024, UINT16_MAX, 9024, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9026, UINT16_MAX, 9026, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9028, UINT16_MAX, 9028, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9030, UINT16_MAX, 9030, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9032, UINT16_MAX, 9032, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9034, UINT16_MAX, 9034, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9036, UINT16_MAX, 9036, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9038, UINT16_MAX, 9038, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9040, UINT16_MAX, 9040, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9042, UINT16_MAX, 9042, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9044, UINT16_MAX, 9044, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9046, UINT16_MAX, 9046, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9048, UINT16_MAX, 9048, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9050, UINT16_MAX, 9050, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9052, UINT16_MAX, 9052, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9054, UINT16_MAX, 9054, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9056, UINT16_MAX, 9056, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9058, UINT16_MAX, 9058, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9060, UINT16_MAX, 9060, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9062, UINT16_MAX, 9062, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9064, UINT16_MAX, 9064, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9066, UINT16_MAX, 9066, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9068, UINT16_MAX, 9068, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9070, UINT16_MAX, 9070, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9072, UINT16_MAX, 9072, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9074, UINT16_MAX, 9074, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9076, UINT16_MAX, 9076, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9078, UINT16_MAX, 9078, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9080, UINT16_MAX, 9080, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9082, UINT16_MAX, 9082, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9084, UINT16_MAX, 9084, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9086, UINT16_MAX, 9086, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9088, UINT16_MAX, 9088, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9090, UINT16_MAX, 9090, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9092, UINT16_MAX, 9092, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9094, UINT16_MAX, 9094, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9096, UINT16_MAX, 9096, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9098, UINT16_MAX, 9098, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9100, UINT16_MAX, 9100, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9102, UINT16_MAX, 9102, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9104, UINT16_MAX, 9104, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9106, UINT16_MAX, 9106, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9108, UINT16_MAX, 9108, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9110, UINT16_MAX, 9110, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9112, UINT16_MAX, 9112, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9114, UINT16_MAX, 9114, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9116, UINT16_MAX, 9116, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9118, UINT16_MAX, 9118, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9120, UINT16_MAX, 9120, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9122, UINT16_MAX, 9122, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9124, UINT16_MAX, 9124, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9126, UINT16_MAX, 9126, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9128, UINT16_MAX, 9128, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9130, UINT16_MAX, 9130, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9132, UINT16_MAX, 9132, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9134, UINT16_MAX, 9134, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9136, UINT16_MAX, 9136, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9138, UINT16_MAX, 9138, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9140, UINT16_MAX, 9140, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9142, UINT16_MAX, 9142, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9144, UINT16_MAX, 9144, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9146, UINT16_MAX, 9146, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9148, UINT16_MAX, 9148, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9150, UINT16_MAX, 9150, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9152, UINT16_MAX, 9152, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9154, UINT16_MAX, 9154, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9156, UINT16_MAX, 9156, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9158, UINT16_MAX, 9158, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9160, UINT16_MAX, 9160, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9162, UINT16_MAX, 9162, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9164, UINT16_MAX, 9164, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9166, UINT16_MAX, 9166, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9168, UINT16_MAX, 9168, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9170, UINT16_MAX, 9170, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9172, UINT16_MAX, 9172, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9174, UINT16_MAX, 9174, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9176, UINT16_MAX, 9176, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9178, UINT16_MAX, 9178, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9180, UINT16_MAX, 9180, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9182, UINT16_MAX, 9182, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9184, UINT16_MAX, 9184, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9186, UINT16_MAX, 9186, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9188, UINT16_MAX, 9188, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9190, UINT16_MAX, 9190, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9192, UINT16_MAX, 9192, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9194, UINT16_MAX, 9194, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9196, UINT16_MAX, 9196, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9198, UINT16_MAX, 9198, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9200, UINT16_MAX, 9200, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9202, UINT16_MAX, 9202, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9204, UINT16_MAX, 9204, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9206, UINT16_MAX, 9206, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9208, UINT16_MAX, 9208, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9210, UINT16_MAX, 9210, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9212, UINT16_MAX, 9212, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9214, UINT16_MAX, 9214, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9216, UINT16_MAX, 9216, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9218, UINT16_MAX, 9218, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9220, UINT16_MAX, 9220, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9222, UINT16_MAX, 9222, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9224, UINT16_MAX, 9224, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9226, UINT16_MAX, 9226, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9228, UINT16_MAX, 9228, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9230, UINT16_MAX, 9230, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9232, UINT16_MAX, 9232, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9234, UINT16_MAX, 9234, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9236, UINT16_MAX, 9236, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9238, UINT16_MAX, 9238, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9240, UINT16_MAX, 9240, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9242, UINT16_MAX, 9242, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9244, UINT16_MAX, 9244, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9246, UINT16_MAX, 9246, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9248, UINT16_MAX, 9248, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9250, UINT16_MAX, 9250, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9252, UINT16_MAX, 9252, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9254, UINT16_MAX, 9254, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 9256, UINT16_MAX, 9256, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9258, UINT16_MAX, 9258, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9260, UINT16_MAX, 9260, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9262, UINT16_MAX, 9262, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9264, UINT16_MAX, 9264, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9266, UINT16_MAX, 9266, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9268, UINT16_MAX, 9268, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9270, UINT16_MAX, 9270, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9272, UINT16_MAX, 9272, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9274, UINT16_MAX, 9274, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9276, UINT16_MAX, 9276, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9278, UINT16_MAX, 9278, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9280, UINT16_MAX, 9280, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9282, UINT16_MAX, 9282, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9284, UINT16_MAX, 9284, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9286, UINT16_MAX, 9286, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9288, UINT16_MAX, 9288, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9290, UINT16_MAX, 9290, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9292, UINT16_MAX, 9292, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9294, UINT16_MAX, 9294, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9296, UINT16_MAX, 9296, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9298, UINT16_MAX, 9298, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 9300, UINT16_MAX, 9300, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_AN, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_AL, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 930, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25686, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 931, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25690, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 932, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25694, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, true, 0, false, 0, UTF8PROC_BOUNDCLASS_PREPEND, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 25698, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 25702, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 933, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 934, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 935, 2, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 25706, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 25710, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 937, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25714, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 938, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25718, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 939, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25722, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 940, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25726, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 941, 3, true, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 25730, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 25734, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 25738, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 944, 3, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 25742, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 25746, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 25750, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 947, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 948, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 25754, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 25758, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9378, UINT16_MAX, 9378, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9380, UINT16_MAX, 9380, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9382, UINT16_MAX, 9382, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9384, UINT16_MAX, 9384, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9386, UINT16_MAX, 9386, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9388, UINT16_MAX, 9388, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9390, UINT16_MAX, 9390, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9392, UINT16_MAX, 9392, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9394, UINT16_MAX, 9394, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9396, UINT16_MAX, 9396, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9398, UINT16_MAX, 9398, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9400, UINT16_MAX, 9400, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9402, UINT16_MAX, 9402, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9404, UINT16_MAX, 9404, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9406, UINT16_MAX, 9406, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9408, UINT16_MAX, 9408, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9410, UINT16_MAX, 9410, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9412, UINT16_MAX, 9412, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9414, UINT16_MAX, 9414, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9416, UINT16_MAX, 9416, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9418, UINT16_MAX, 9418, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9420, UINT16_MAX, 9420, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9422, UINT16_MAX, 9422, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9424, UINT16_MAX, 9424, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9426, UINT16_MAX, 9426, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9428, UINT16_MAX, 9428, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9430, UINT16_MAX, 9430, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9432, UINT16_MAX, 9432, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9434, UINT16_MAX, 9434, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9436, UINT16_MAX, 9436, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9438, UINT16_MAX, 9438, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9440, UINT16_MAX, 9440, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9442, UINT16_MAX, 9442, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9444, UINT16_MAX, 9444, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9446, UINT16_MAX, 9446, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9448, UINT16_MAX, 9448, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9450, UINT16_MAX, 9450, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9452, UINT16_MAX, 9452, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9454, UINT16_MAX, 9454, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9456, UINT16_MAX, 9456, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9458, UINT16_MAX, 9458, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9460, UINT16_MAX, 9460, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9462, UINT16_MAX, 9462, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9464, UINT16_MAX, 9464, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9466, UINT16_MAX, 9466, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9468, UINT16_MAX, 9468, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9470, UINT16_MAX, 9470, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9472, UINT16_MAX, 9472, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9474, UINT16_MAX, 9474, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9476, UINT16_MAX, 9476, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9478, UINT16_MAX, 9478, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9480, UINT16_MAX, 9480, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9482, UINT16_MAX, 9482, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9484, UINT16_MAX, 9484, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9486, UINT16_MAX, 9486, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9488, UINT16_MAX, 9488, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9490, UINT16_MAX, 9490, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9492, UINT16_MAX, 9492, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9494, UINT16_MAX, 9494, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9496, UINT16_MAX, 9496, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9498, UINT16_MAX, 9498, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9500, UINT16_MAX, 9500, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9502, UINT16_MAX, 9502, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9504, UINT16_MAX, 9504, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 949, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 25890, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_SPACINGMARK, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, true, 0, false, 0, UTF8PROC_BOUNDCLASS_CONTROL, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 950, 4, true, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 25894, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 954, 2, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 25898, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 956, 1, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 25902, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 25906, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 25910, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 25914, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 25918, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 25922, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 957, 1, true, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 958, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_V, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 959, 1, true, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_V, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25926, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_V, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25930, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 960, 1, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_V, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25934, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_V, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9554, UINT16_MAX, 9554, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9556, UINT16_MAX, 9556, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9558, UINT16_MAX, 9558, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9560, UINT16_MAX, 9560, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9562, UINT16_MAX, 9562, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9564, UINT16_MAX, 9564, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9566, UINT16_MAX, 9566, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9568, UINT16_MAX, 9568, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9570, UINT16_MAX, 9570, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9572, UINT16_MAX, 9572, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9574, UINT16_MAX, 9574, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9576, UINT16_MAX, 9576, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9578, UINT16_MAX, 9578, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9580, UINT16_MAX, 9580, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9582, UINT16_MAX, 9582, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9584, UINT16_MAX, 9584, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9586, UINT16_MAX, 9586, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9588, UINT16_MAX, 9588, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9590, UINT16_MAX, 9590, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9592, UINT16_MAX, 9592, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9594, UINT16_MAX, 9594, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9596, UINT16_MAX, 9596, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9598, UINT16_MAX, 9598, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9600, UINT16_MAX, 9600, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9602, UINT16_MAX, 9602, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9604, UINT16_MAX, 9604, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9606, UINT16_MAX, 9606, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9608, UINT16_MAX, 9608, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9610, UINT16_MAX, 9610, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9612, UINT16_MAX, 9612, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9614, UINT16_MAX, 9614, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, 9616, UINT16_MAX, 9616, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9618, UINT16_MAX, 9618, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9620, UINT16_MAX, 9620, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9622, UINT16_MAX, 9622, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9624, UINT16_MAX, 9624, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9626, UINT16_MAX, 9626, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9628, UINT16_MAX, 9628, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9630, UINT16_MAX, 9630, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9632, UINT16_MAX, 9632, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9634, UINT16_MAX, 9634, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9636, UINT16_MAX, 9636, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9638, UINT16_MAX, 9638, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9640, UINT16_MAX, 9640, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9642, UINT16_MAX, 9642, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9644, UINT16_MAX, 9644, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9646, UINT16_MAX, 9646, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9648, UINT16_MAX, 9648, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9650, UINT16_MAX, 9650, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9652, UINT16_MAX, 9652, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9654, UINT16_MAX, 9654, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9656, UINT16_MAX, 9656, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9658, UINT16_MAX, 9658, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9660, UINT16_MAX, 9660, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9662, UINT16_MAX, 9662, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9664, UINT16_MAX, 9664, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9666, UINT16_MAX, 9666, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9668, UINT16_MAX, 9668, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9670, UINT16_MAX, 9670, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9672, UINT16_MAX, 9672, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9674, UINT16_MAX, 9674, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9676, UINT16_MAX, 9676, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9678, UINT16_MAX, 9678, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9680, UINT16_MAX, 9680, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 6, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 3931, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 66, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 58, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 59, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 3933, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 3934, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 3935, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 3936, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 3937, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 3938, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26066, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26070, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26074, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26078, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26082, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26086, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26090, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_MC, 226, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26094, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26098, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26102, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26106, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26110, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26114, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, true, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, 9734, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, 9736, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, 9738, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 9740, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, 9742, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, 9744, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, 9746, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, 9748, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, 9750, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, 9752, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, 9754, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, 9756, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, 9758, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, 9760, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, 9762, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, 9764, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, 9766, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, 9768, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, 9770, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, 9772, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, 9774, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, 9776, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, 9778, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, 9780, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, 9782, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, 9784, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 0, UINT16_MAX, 9786, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1, UINT16_MAX, 9788, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 2, UINT16_MAX, 9790, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 9792, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 9794, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 5, UINT16_MAX, 9796, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 6, UINT16_MAX, 9798, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 7, UINT16_MAX, 9800, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 9802, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 9804, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 10, UINT16_MAX, 9806, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 9808, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 12, UINT16_MAX, 9810, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 13, UINT16_MAX, 9812, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 14, UINT16_MAX, 9814, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 15, UINT16_MAX, 9816, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 16, UINT16_MAX, 9818, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 17, UINT16_MAX, 9820, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 18, UINT16_MAX, 9822, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 19, UINT16_MAX, 9824, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 20, UINT16_MAX, 9826, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 21, UINT16_MAX, 9828, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 22, UINT16_MAX, 9830, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 23, UINT16_MAX, 9832, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 24, UINT16_MAX, 9834, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 25, UINT16_MAX, 9836, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, 9838, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, 9840, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, 9842, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 9844, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, 9846, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, 9848, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, 9850, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, 9852, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, 9854, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, 9856, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, 9858, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, 9860, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, 9862, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, 9864, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, 9866, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, 9868, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, 9870, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, 9872, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, 9874, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, 9876, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, 9878, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, 9880, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, 9882, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, 9884, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, 9886, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, 9888, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 0, UINT16_MAX, 9890, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1, UINT16_MAX, 9892, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 2, UINT16_MAX, 9894, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 9896, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 9898, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 5, UINT16_MAX, 9900, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 6, UINT16_MAX, 9902, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 9904, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 9906, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 10, UINT16_MAX, 9908, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 9910, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 12, UINT16_MAX, 9912, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 13, UINT16_MAX, 9914, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 14, UINT16_MAX, 9916, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 15, UINT16_MAX, 9918, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 16, UINT16_MAX, 9920, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 17, UINT16_MAX, 9922, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 18, UINT16_MAX, 9924, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 19, UINT16_MAX, 9926, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 20, UINT16_MAX, 9928, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 21, UINT16_MAX, 9930, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 22, UINT16_MAX, 9932, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 23, UINT16_MAX, 9934, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 24, UINT16_MAX, 9936, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 25, UINT16_MAX, 9938, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, 9940, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, 9942, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, 9944, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 9946, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, 9948, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, 9950, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, 9952, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, 9954, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, 9956, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, 9958, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, 9960, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, 9962, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, 9964, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, 9966, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, 9968, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, 9970, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, 9972, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, 9974, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, 9976, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, 9978, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, 9980, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, 9982, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, 9984, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, 9986, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, 9988, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, 9990, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 0, UINT16_MAX, 9992, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1, UINT16_MAX, 9994, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 2, UINT16_MAX, 9996, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 9998, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 10000, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 5, UINT16_MAX, 10002, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 6, UINT16_MAX, 10004, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 7, UINT16_MAX, 10006, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 10008, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 10010, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 10, UINT16_MAX, 10012, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 10014, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 12, UINT16_MAX, 10016, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 13, UINT16_MAX, 10018, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 14, UINT16_MAX, 10020, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 15, UINT16_MAX, 10022, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 16, UINT16_MAX, 10024, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 17, UINT16_MAX, 10026, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 18, UINT16_MAX, 10028, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 19, UINT16_MAX, 10030, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 20, UINT16_MAX, 10032, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 21, UINT16_MAX, 10034, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 22, UINT16_MAX, 10036, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 23, UINT16_MAX, 10038, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 24, UINT16_MAX, 10040, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 25, UINT16_MAX, 10042, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, 10044, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, 10046, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 10048, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, 10050, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, 10052, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, 10054, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, 10056, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, 10058, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, 10060, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, 10062, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, 10064, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, 10066, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, 10068, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, 10070, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, 10072, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, 10074, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, 10076, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, 10078, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 0, UINT16_MAX, 10080, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1, UINT16_MAX, 10082, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 2, UINT16_MAX, 10084, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 10086, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 5, UINT16_MAX, 10088, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 7, UINT16_MAX, 10090, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 10092, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 10094, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 10, UINT16_MAX, 10096, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 10098, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 12, UINT16_MAX, 10100, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 13, UINT16_MAX, 10102, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 15, UINT16_MAX, 10104, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 16, UINT16_MAX, 10106, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 17, UINT16_MAX, 10108, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 18, UINT16_MAX, 10110, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 19, UINT16_MAX, 10112, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 20, UINT16_MAX, 10114, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 21, UINT16_MAX, 10116, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 22, UINT16_MAX, 10118, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 23, UINT16_MAX, 10120, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 24, UINT16_MAX, 10122, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 25, UINT16_MAX, 10124, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, 10126, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, 10128, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, 10130, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 10132, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, 10134, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, 10136, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, 10138, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, 10140, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, 10142, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, 10144, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, 10146, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, 10148, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, 10150, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, 10152, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, 10154, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, 10156, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, 10158, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, 10160, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, 10162, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, 10164, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, 10166, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, 10168, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, 10170, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, 10172, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, 10174, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, 10176, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 0, UINT16_MAX, 10178, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1, UINT16_MAX, 10180, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 2, UINT16_MAX, 10182, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 10184, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 10186, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 5, UINT16_MAX, 10188, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 6, UINT16_MAX, 10190, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 7, UINT16_MAX, 10192, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 10194, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 10196, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 10, UINT16_MAX, 10198, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 10200, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 12, UINT16_MAX, 10202, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 13, UINT16_MAX, 10204, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 14, UINT16_MAX, 10206, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 15, UINT16_MAX, 10208, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 16, UINT16_MAX, 10210, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 17, UINT16_MAX, 10212, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 18, UINT16_MAX, 10214, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 19, UINT16_MAX, 10216, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 20, UINT16_MAX, 10218, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 21, UINT16_MAX, 10220, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 22, UINT16_MAX, 10222, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 23, UINT16_MAX, 10224, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 24, UINT16_MAX, 10226, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 25, UINT16_MAX, 10228, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, 10230, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, 10232, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 10234, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, 10236, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, 10238, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, 10240, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, 10242, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, 10244, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, 10246, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, 10248, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, 10250, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, 10252, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, 10254, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, 10256, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, 10258, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, 10260, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, 10262, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, 10264, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, 10266, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, 10268, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, 10270, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 0, UINT16_MAX, 10272, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1, UINT16_MAX, 10274, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 2, UINT16_MAX, 10276, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 10278, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 10280, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 5, UINT16_MAX, 10282, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 6, UINT16_MAX, 10284, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 7, UINT16_MAX, 10286, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 10288, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 10290, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 10, UINT16_MAX, 10292, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 10294, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 12, UINT16_MAX, 10296, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 13, UINT16_MAX, 10298, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 14, UINT16_MAX, 10300, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 15, UINT16_MAX, 10302, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 16, UINT16_MAX, 10304, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 17, UINT16_MAX, 10306, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 18, UINT16_MAX, 10308, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 19, UINT16_MAX, 10310, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 20, UINT16_MAX, 10312, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 21, UINT16_MAX, 10314, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 22, UINT16_MAX, 10316, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 23, UINT16_MAX, 10318, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 24, UINT16_MAX, 10320, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 25, UINT16_MAX, 10322, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, 10324, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, 10326, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 10328, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, 10330, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, 10332, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, 10334, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, 10336, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, 10338, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, 10340, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, 10342, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, 10344, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, 10346, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, 10348, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, 10350, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, 10352, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, 10354, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, 10356, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, 10358, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, 10360, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 0, UINT16_MAX, 10362, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1, UINT16_MAX, 10364, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 2, UINT16_MAX, 10366, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 10368, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 10370, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 5, UINT16_MAX, 10372, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 6, UINT16_MAX, 10374, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 7, UINT16_MAX, 10376, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 10378, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 10380, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 10, UINT16_MAX, 10382, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 10384, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 12, UINT16_MAX, 10386, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 13, UINT16_MAX, 10388, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 14, UINT16_MAX, 10390, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 15, UINT16_MAX, 10392, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 16, UINT16_MAX, 10394, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 17, UINT16_MAX, 10396, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 18, UINT16_MAX, 10398, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 19, UINT16_MAX, 10400, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 20, UINT16_MAX, 10402, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 21, UINT16_MAX, 10404, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 22, UINT16_MAX, 10406, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 23, UINT16_MAX, 10408, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 24, UINT16_MAX, 10410, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 25, UINT16_MAX, 10412, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, 10414, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, 10416, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, 10418, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 10420, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, 10422, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, 10424, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, 10426, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, 10428, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, 10430, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, 10432, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, 10434, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, 10436, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, 10438, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, 10440, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, 10442, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, 10444, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, 10446, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, 10448, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, 10450, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, 10452, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, 10454, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, 10456, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, 10458, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, 10460, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, 10462, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, 10464, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 0, UINT16_MAX, 10466, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1, UINT16_MAX, 10468, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 2, UINT16_MAX, 10470, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 10472, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 10474, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 5, UINT16_MAX, 10476, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 6, UINT16_MAX, 10478, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 7, UINT16_MAX, 10480, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 10482, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 10484, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 10, UINT16_MAX, 10486, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 10488, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 12, UINT16_MAX, 10490, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 13, UINT16_MAX, 10492, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 14, UINT16_MAX, 10494, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 15, UINT16_MAX, 10496, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 16, UINT16_MAX, 10498, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 17, UINT16_MAX, 10500, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 18, UINT16_MAX, 10502, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 19, UINT16_MAX, 10504, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 20, UINT16_MAX, 10506, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 21, UINT16_MAX, 10508, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 22, UINT16_MAX, 10510, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 23, UINT16_MAX, 10512, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 24, UINT16_MAX, 10514, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 25, UINT16_MAX, 10516, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, 10518, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, 10520, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, 10522, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 10524, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, 10526, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, 10528, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, 10530, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, 10532, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, 10534, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, 10536, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, 10538, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, 10540, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, 10542, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, 10544, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, 10546, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, 10548, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, 10550, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, 10552, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, 10554, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, 10556, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, 10558, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, 10560, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, 10562, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, 10564, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, 10566, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, 10568, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 0, UINT16_MAX, 10570, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1, UINT16_MAX, 10572, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 2, UINT16_MAX, 10574, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 10576, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 10578, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 5, UINT16_MAX, 10580, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 6, UINT16_MAX, 10582, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 7, UINT16_MAX, 10584, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 10586, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 10588, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 10, UINT16_MAX, 10590, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 10592, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 12, UINT16_MAX, 10594, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 13, UINT16_MAX, 10596, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 14, UINT16_MAX, 10598, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 15, UINT16_MAX, 10600, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 16, UINT16_MAX, 10602, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 17, UINT16_MAX, 10604, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 18, UINT16_MAX, 10606, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 19, UINT16_MAX, 10608, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 20, UINT16_MAX, 10610, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 21, UINT16_MAX, 10612, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 22, UINT16_MAX, 10614, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 23, UINT16_MAX, 10616, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 24, UINT16_MAX, 10618, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 25, UINT16_MAX, 10620, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, 10622, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, 10624, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, 10626, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 10628, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, 10630, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, 10632, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, 10634, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, 10636, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, 10638, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, 10640, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, 10642, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, 10644, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, 10646, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, 10648, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, 10650, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, 10652, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, 10654, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, 10656, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, 10658, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, 10660, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, 10662, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, 10664, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, 10666, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, 10668, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, 10670, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, 10672, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 0, UINT16_MAX, 10674, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1, UINT16_MAX, 10676, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 2, UINT16_MAX, 10678, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 10680, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 10682, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 5, UINT16_MAX, 10684, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 6, UINT16_MAX, 10686, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 7, UINT16_MAX, 10688, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 10690, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 10692, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 10, UINT16_MAX, 10694, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 10696, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 12, UINT16_MAX, 10698, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 13, UINT16_MAX, 10700, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 14, UINT16_MAX, 10702, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 15, UINT16_MAX, 10704, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 16, UINT16_MAX, 10706, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 17, UINT16_MAX, 10708, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 18, UINT16_MAX, 10710, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 19, UINT16_MAX, 10712, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 20, UINT16_MAX, 10714, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 21, UINT16_MAX, 10716, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 22, UINT16_MAX, 10718, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 23, UINT16_MAX, 10720, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 24, UINT16_MAX, 10722, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 25, UINT16_MAX, 10724, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, 10726, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, 10728, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, 10730, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 10732, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, 10734, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, 10736, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, 10738, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, 10740, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, 10742, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, 10744, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, 10746, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, 10748, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, 10750, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, 10752, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, 10754, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, 10756, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, 10758, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, 10760, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, 10762, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, 10764, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, 10766, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, 10768, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, 10770, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, 10772, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, 10774, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, 10776, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 0, UINT16_MAX, 10778, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1, UINT16_MAX, 10780, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 2, UINT16_MAX, 10782, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 10784, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 10786, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 5, UINT16_MAX, 10788, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 6, UINT16_MAX, 10790, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 7, UINT16_MAX, 10792, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 10794, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 10796, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 10, UINT16_MAX, 10798, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 10800, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 12, UINT16_MAX, 10802, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 13, UINT16_MAX, 10804, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 14, UINT16_MAX, 10806, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 15, UINT16_MAX, 10808, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 16, UINT16_MAX, 10810, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 17, UINT16_MAX, 10812, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 18, UINT16_MAX, 10814, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 19, UINT16_MAX, 10816, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 20, UINT16_MAX, 10818, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 21, UINT16_MAX, 10820, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 22, UINT16_MAX, 10822, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 23, UINT16_MAX, 10824, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 24, UINT16_MAX, 10826, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 25, UINT16_MAX, 10828, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, 10830, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, 10832, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, 10834, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 10836, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, 10838, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, 10840, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, 10842, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, 10844, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, 10846, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, 10848, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, 10850, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, 10852, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, 10854, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, 10856, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, 10858, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, 10860, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, 10862, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, 10864, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, 10866, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, 10868, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, 10870, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, 10872, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, 10874, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, 10876, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, 10878, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, 10880, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 0, UINT16_MAX, 10882, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1, UINT16_MAX, 10884, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 2, UINT16_MAX, 10886, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 10888, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 10890, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 5, UINT16_MAX, 10892, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 6, UINT16_MAX, 10894, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 7, UINT16_MAX, 10896, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 10898, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 10900, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 10, UINT16_MAX, 10902, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 10904, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 12, UINT16_MAX, 10906, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 13, UINT16_MAX, 10908, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 14, UINT16_MAX, 10910, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 15, UINT16_MAX, 10912, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 16, UINT16_MAX, 10914, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 17, UINT16_MAX, 10916, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 18, UINT16_MAX, 10918, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 19, UINT16_MAX, 10920, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 20, UINT16_MAX, 10922, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 21, UINT16_MAX, 10924, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 22, UINT16_MAX, 10926, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 23, UINT16_MAX, 10928, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 24, UINT16_MAX, 10930, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 25, UINT16_MAX, 10932, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 26, UINT16_MAX, UINT16_MAX, 10934, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 27, UINT16_MAX, UINT16_MAX, 10936, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 28, UINT16_MAX, UINT16_MAX, 10938, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 29, UINT16_MAX, UINT16_MAX, 10940, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 30, UINT16_MAX, UINT16_MAX, 10942, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 31, UINT16_MAX, UINT16_MAX, 10944, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 32, UINT16_MAX, UINT16_MAX, 10946, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 33, UINT16_MAX, UINT16_MAX, 10948, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 34, UINT16_MAX, UINT16_MAX, 10950, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 35, UINT16_MAX, UINT16_MAX, 10952, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 36, UINT16_MAX, UINT16_MAX, 10954, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 37, UINT16_MAX, UINT16_MAX, 10956, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 38, UINT16_MAX, UINT16_MAX, 10958, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 39, UINT16_MAX, UINT16_MAX, 10960, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 40, UINT16_MAX, UINT16_MAX, 10962, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 41, UINT16_MAX, UINT16_MAX, 10964, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 42, UINT16_MAX, UINT16_MAX, 10966, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 43, UINT16_MAX, UINT16_MAX, 10968, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 44, UINT16_MAX, UINT16_MAX, 10970, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 45, UINT16_MAX, UINT16_MAX, 10972, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 46, UINT16_MAX, UINT16_MAX, 10974, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 47, UINT16_MAX, UINT16_MAX, 10976, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 48, UINT16_MAX, UINT16_MAX, 10978, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 49, UINT16_MAX, UINT16_MAX, 10980, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 50, UINT16_MAX, UINT16_MAX, 10982, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 51, UINT16_MAX, UINT16_MAX, 10984, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 0, UINT16_MAX, 10986, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1, UINT16_MAX, 10988, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 2, UINT16_MAX, 10990, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 3, UINT16_MAX, 10992, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 4, UINT16_MAX, 10994, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 5, UINT16_MAX, 10996, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 6, UINT16_MAX, 10998, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 7, UINT16_MAX, 11000, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8, UINT16_MAX, 11002, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 9, UINT16_MAX, 11004, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 10, UINT16_MAX, 11006, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11, UINT16_MAX, 11008, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 12, UINT16_MAX, 11010, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 13, UINT16_MAX, 11012, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 14, UINT16_MAX, 11014, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 15, UINT16_MAX, 11016, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 16, UINT16_MAX, 11018, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 17, UINT16_MAX, 11020, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 18, UINT16_MAX, 11022, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 19, UINT16_MAX, 11024, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 20, UINT16_MAX, 11026, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 21, UINT16_MAX, 11028, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 22, UINT16_MAX, 11030, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 23, UINT16_MAX, 11032, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 24, UINT16_MAX, 11034, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 25, UINT16_MAX, 11036, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11038, UINT16_MAX, 11039, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 984, UINT16_MAX, 11041, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1231, UINT16_MAX, UINT16_MAX, 11043, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1232, UINT16_MAX, UINT16_MAX, 11045, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1233, UINT16_MAX, UINT16_MAX, 11047, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1234, UINT16_MAX, UINT16_MAX, 11049, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1235, UINT16_MAX, UINT16_MAX, 11051, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1236, UINT16_MAX, UINT16_MAX, 11053, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1237, UINT16_MAX, UINT16_MAX, 11055, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1238, UINT16_MAX, UINT16_MAX, 11057, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1139, UINT16_MAX, UINT16_MAX, 11059, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1239, UINT16_MAX, UINT16_MAX, 11061, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1240, UINT16_MAX, UINT16_MAX, 11063, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 63, UINT16_MAX, UINT16_MAX, 11065, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1241, UINT16_MAX, UINT16_MAX, 11067, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1242, UINT16_MAX, UINT16_MAX, 11069, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1243, UINT16_MAX, UINT16_MAX, 11071, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1244, UINT16_MAX, UINT16_MAX, 11073, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1245, UINT16_MAX, UINT16_MAX, 11075, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11077, UINT16_MAX, UINT16_MAX, 11078, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1246, UINT16_MAX, UINT16_MAX, 11080, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1247, UINT16_MAX, UINT16_MAX, 11082, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1248, UINT16_MAX, UINT16_MAX, 11084, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1249, UINT16_MAX, UINT16_MAX, 11086, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1250, UINT16_MAX, UINT16_MAX, 11088, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1251, UINT16_MAX, UINT16_MAX, 11090, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1252, UINT16_MAX, UINT16_MAX, 11092, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FONT, 11094, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1185, UINT16_MAX, 11095, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1186, UINT16_MAX, 11097, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1187, UINT16_MAX, 11099, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1188, UINT16_MAX, 11101, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1189, UINT16_MAX, 11103, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1190, UINT16_MAX, 11105, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1191, UINT16_MAX, 11107, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1192, UINT16_MAX, 11109, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1138, UINT16_MAX, 11111, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1193, UINT16_MAX, 11113, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1194, UINT16_MAX, 11115, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 62, UINT16_MAX, 11117, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1195, UINT16_MAX, 11119, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1196, UINT16_MAX, 11121, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1197, UINT16_MAX, 11123, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1198, UINT16_MAX, 11125, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1199, UINT16_MAX, 11127, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1301, UINT16_MAX, 11129, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1200, UINT16_MAX, 11131, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1201, UINT16_MAX, 11133, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1202, UINT16_MAX, 11135, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1203, UINT16_MAX, 11137, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1204, UINT16_MAX, 11139, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1205, UINT16_MAX, 11141, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1206, UINT16_MAX, 11143, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FONT, 11145, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, true, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11146, UINT16_MAX, 11147, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11149, UINT16_MAX, 11150, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11152, UINT16_MAX, 11153, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11155, UINT16_MAX, 11156, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11158, UINT16_MAX, 11159, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11161, UINT16_MAX, 11162, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1231, UINT16_MAX, UINT16_MAX, 11164, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1232, UINT16_MAX, UINT16_MAX, 11166, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1233, UINT16_MAX, UINT16_MAX, 11168, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1234, UINT16_MAX, UINT16_MAX, 11170, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1235, UINT16_MAX, UINT16_MAX, 11172, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1236, UINT16_MAX, UINT16_MAX, 11174, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1237, UINT16_MAX, UINT16_MAX, 11176, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1238, UINT16_MAX, UINT16_MAX, 11178, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1139, UINT16_MAX, UINT16_MAX, 11180, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1239, UINT16_MAX, UINT16_MAX, 11182, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1240, UINT16_MAX, UINT16_MAX, 11184, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 63, UINT16_MAX, UINT16_MAX, 11186, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1241, UINT16_MAX, UINT16_MAX, 11188, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1242, UINT16_MAX, UINT16_MAX, 11190, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1243, UINT16_MAX, UINT16_MAX, 11192, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1244, UINT16_MAX, UINT16_MAX, 11194, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1245, UINT16_MAX, UINT16_MAX, 11196, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11077, UINT16_MAX, UINT16_MAX, 11198, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1246, UINT16_MAX, UINT16_MAX, 11200, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1247, UINT16_MAX, UINT16_MAX, 11202, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1248, UINT16_MAX, UINT16_MAX, 11204, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1249, UINT16_MAX, UINT16_MAX, 11206, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1250, UINT16_MAX, UINT16_MAX, 11208, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1251, UINT16_MAX, UINT16_MAX, 11210, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1252, UINT16_MAX, UINT16_MAX, 11212, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1185, UINT16_MAX, 11214, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1186, UINT16_MAX, 11216, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1187, UINT16_MAX, 11218, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1188, UINT16_MAX, 11220, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1189, UINT16_MAX, 11222, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1190, UINT16_MAX, 11224, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1191, UINT16_MAX, 11226, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1192, UINT16_MAX, 11228, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1138, UINT16_MAX, 11230, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1193, UINT16_MAX, 11232, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1194, UINT16_MAX, 11234, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 62, UINT16_MAX, 11236, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1195, UINT16_MAX, 11238, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1196, UINT16_MAX, 11240, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1197, UINT16_MAX, 11242, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1198, UINT16_MAX, 11244, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1199, UINT16_MAX, 11246, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1301, UINT16_MAX, 11248, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1200, UINT16_MAX, 11250, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1201, UINT16_MAX, 11252, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1202, UINT16_MAX, 11254, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1203, UINT16_MAX, 11256, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1204, UINT16_MAX, 11258, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1205, UINT16_MAX, 11260, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1206, UINT16_MAX, 11262, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11146, UINT16_MAX, 11264, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11149, UINT16_MAX, 11266, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11152, UINT16_MAX, 11268, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11155, UINT16_MAX, 11270, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11158, UINT16_MAX, 11272, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11161, UINT16_MAX, 11274, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1231, UINT16_MAX, UINT16_MAX, 11276, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1232, UINT16_MAX, UINT16_MAX, 11278, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1233, UINT16_MAX, UINT16_MAX, 11280, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1234, UINT16_MAX, UINT16_MAX, 11282, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1235, UINT16_MAX, UINT16_MAX, 11284, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1236, UINT16_MAX, UINT16_MAX, 11286, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1237, UINT16_MAX, UINT16_MAX, 11288, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1238, UINT16_MAX, UINT16_MAX, 11290, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1139, UINT16_MAX, UINT16_MAX, 11292, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1239, UINT16_MAX, UINT16_MAX, 11294, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1240, UINT16_MAX, UINT16_MAX, 11296, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 63, UINT16_MAX, UINT16_MAX, 11298, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1241, UINT16_MAX, UINT16_MAX, 11300, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1242, UINT16_MAX, UINT16_MAX, 11302, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1243, UINT16_MAX, UINT16_MAX, 11304, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1244, UINT16_MAX, UINT16_MAX, 11306, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1245, UINT16_MAX, UINT16_MAX, 11308, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11077, UINT16_MAX, UINT16_MAX, 11310, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1246, UINT16_MAX, UINT16_MAX, 11312, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1247, UINT16_MAX, UINT16_MAX, 11314, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1248, UINT16_MAX, UINT16_MAX, 11316, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1249, UINT16_MAX, UINT16_MAX, 11318, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1250, UINT16_MAX, UINT16_MAX, 11320, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1251, UINT16_MAX, UINT16_MAX, 11322, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1252, UINT16_MAX, UINT16_MAX, 11324, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1185, UINT16_MAX, 11326, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1186, UINT16_MAX, 11328, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1187, UINT16_MAX, 11330, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1188, UINT16_MAX, 11332, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1189, UINT16_MAX, 11334, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1190, UINT16_MAX, 11336, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1191, UINT16_MAX, 11338, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1192, UINT16_MAX, 11340, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1138, UINT16_MAX, 11342, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1193, UINT16_MAX, 11344, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1194, UINT16_MAX, 11346, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 62, UINT16_MAX, 11348, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1195, UINT16_MAX, 11350, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1196, UINT16_MAX, 11352, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1197, UINT16_MAX, 11354, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1198, UINT16_MAX, 11356, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1199, UINT16_MAX, 11358, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1301, UINT16_MAX, 11360, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1200, UINT16_MAX, 11362, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1201, UINT16_MAX, 11364, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1202, UINT16_MAX, 11366, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1203, UINT16_MAX, 11368, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1204, UINT16_MAX, 11370, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1205, UINT16_MAX, 11372, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1206, UINT16_MAX, 11374, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11146, UINT16_MAX, 11376, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11149, UINT16_MAX, 11378, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11152, UINT16_MAX, 11380, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11155, UINT16_MAX, 11382, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11158, UINT16_MAX, 11384, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11161, UINT16_MAX, 11386, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1231, UINT16_MAX, UINT16_MAX, 11388, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1232, UINT16_MAX, UINT16_MAX, 11390, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1233, UINT16_MAX, UINT16_MAX, 11392, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1234, UINT16_MAX, UINT16_MAX, 11394, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1235, UINT16_MAX, UINT16_MAX, 11396, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1236, UINT16_MAX, UINT16_MAX, 11398, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1237, UINT16_MAX, UINT16_MAX, 11400, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1238, UINT16_MAX, UINT16_MAX, 11402, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1139, UINT16_MAX, UINT16_MAX, 11404, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1239, UINT16_MAX, UINT16_MAX, 11406, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1240, UINT16_MAX, UINT16_MAX, 11408, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 63, UINT16_MAX, UINT16_MAX, 11410, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1241, UINT16_MAX, UINT16_MAX, 11412, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1242, UINT16_MAX, UINT16_MAX, 11414, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1243, UINT16_MAX, UINT16_MAX, 11416, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1244, UINT16_MAX, UINT16_MAX, 11418, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1245, UINT16_MAX, UINT16_MAX, 11420, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11077, UINT16_MAX, UINT16_MAX, 11422, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1246, UINT16_MAX, UINT16_MAX, 11424, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1247, UINT16_MAX, UINT16_MAX, 11426, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1248, UINT16_MAX, UINT16_MAX, 11428, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1249, UINT16_MAX, UINT16_MAX, 11430, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1250, UINT16_MAX, UINT16_MAX, 11432, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1251, UINT16_MAX, UINT16_MAX, 11434, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1252, UINT16_MAX, UINT16_MAX, 11436, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1185, UINT16_MAX, 11438, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1186, UINT16_MAX, 11440, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1187, UINT16_MAX, 11442, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1188, UINT16_MAX, 11444, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1189, UINT16_MAX, 11446, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1190, UINT16_MAX, 11448, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1191, UINT16_MAX, 11450, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1192, UINT16_MAX, 11452, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1138, UINT16_MAX, 11454, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1193, UINT16_MAX, 11456, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1194, UINT16_MAX, 11458, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 62, UINT16_MAX, 11460, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1195, UINT16_MAX, 11462, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1196, UINT16_MAX, 11464, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1197, UINT16_MAX, 11466, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1198, UINT16_MAX, 11468, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1199, UINT16_MAX, 11470, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1301, UINT16_MAX, 11472, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1200, UINT16_MAX, 11474, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1201, UINT16_MAX, 11476, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1202, UINT16_MAX, 11478, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1203, UINT16_MAX, 11480, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1204, UINT16_MAX, 11482, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1205, UINT16_MAX, 11484, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1206, UINT16_MAX, 11486, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11146, UINT16_MAX, 11488, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11149, UINT16_MAX, 11490, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11152, UINT16_MAX, 11492, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11155, UINT16_MAX, 11494, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11158, UINT16_MAX, 11496, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11161, UINT16_MAX, 11498, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1231, UINT16_MAX, UINT16_MAX, 11500, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1232, UINT16_MAX, UINT16_MAX, 11502, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1233, UINT16_MAX, UINT16_MAX, 11504, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1234, UINT16_MAX, UINT16_MAX, 11506, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1235, UINT16_MAX, UINT16_MAX, 11508, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1236, UINT16_MAX, UINT16_MAX, 11510, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1237, UINT16_MAX, UINT16_MAX, 11512, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1238, UINT16_MAX, UINT16_MAX, 11514, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1139, UINT16_MAX, UINT16_MAX, 11516, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1239, UINT16_MAX, UINT16_MAX, 11518, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1240, UINT16_MAX, UINT16_MAX, 11520, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 63, UINT16_MAX, UINT16_MAX, 11522, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1241, UINT16_MAX, UINT16_MAX, 11524, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1242, UINT16_MAX, UINT16_MAX, 11526, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1243, UINT16_MAX, UINT16_MAX, 11528, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1244, UINT16_MAX, UINT16_MAX, 11530, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1245, UINT16_MAX, UINT16_MAX, 11532, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11077, UINT16_MAX, UINT16_MAX, 11534, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1246, UINT16_MAX, UINT16_MAX, 11536, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1247, UINT16_MAX, UINT16_MAX, 11538, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1248, UINT16_MAX, UINT16_MAX, 11540, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1249, UINT16_MAX, UINT16_MAX, 11542, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1250, UINT16_MAX, UINT16_MAX, 11544, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1251, UINT16_MAX, UINT16_MAX, 11546, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1252, UINT16_MAX, UINT16_MAX, 11548, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1185, UINT16_MAX, 11550, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1186, UINT16_MAX, 11552, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1187, UINT16_MAX, 11554, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1188, UINT16_MAX, 11556, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1189, UINT16_MAX, 11558, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1190, UINT16_MAX, 11560, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1191, UINT16_MAX, 11562, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1192, UINT16_MAX, 11564, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1138, UINT16_MAX, 11566, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1193, UINT16_MAX, 11568, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1194, UINT16_MAX, 11570, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 62, UINT16_MAX, 11572, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1195, UINT16_MAX, 11574, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1196, UINT16_MAX, 11576, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1197, UINT16_MAX, 11578, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1198, UINT16_MAX, 11580, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1199, UINT16_MAX, 11582, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1301, UINT16_MAX, 11584, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1200, UINT16_MAX, 11586, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1201, UINT16_MAX, 11588, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1202, UINT16_MAX, 11590, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1203, UINT16_MAX, 11592, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1204, UINT16_MAX, 11594, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1205, UINT16_MAX, 11596, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1206, UINT16_MAX, 11598, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11146, UINT16_MAX, 11600, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11149, UINT16_MAX, 11602, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11152, UINT16_MAX, 11604, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11155, UINT16_MAX, 11606, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11158, UINT16_MAX, 11608, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 11161, UINT16_MAX, 11610, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1282, UINT16_MAX, UINT16_MAX, 11612, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1281, UINT16_MAX, 11614, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11616, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11618, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11620, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11622, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8935, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8943, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8949, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11624, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 8963, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11626, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11628, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11630, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11632, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11634, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11636, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11638, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11640, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11642, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11644, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11646, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11648, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11650, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11652, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11654, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11656, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11658, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11660, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11662, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11664, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 9006, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11666, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11668, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11670, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11672, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11674, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, 11676, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1343, UINT16_MAX, 11678, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1344, UINT16_MAX, 11680, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1345, UINT16_MAX, 11682, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1346, UINT16_MAX, 11684, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1347, UINT16_MAX, 11686, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1348, UINT16_MAX, 11688, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1349, UINT16_MAX, 11690, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1350, UINT16_MAX, 11692, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1351, UINT16_MAX, 11694, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1355, UINT16_MAX, 11696, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1356, UINT16_MAX, 11698, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1357, UINT16_MAX, 11700, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1359, UINT16_MAX, 11702, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1360, UINT16_MAX, 11704, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1361, UINT16_MAX, 11706, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1362, UINT16_MAX, 11708, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1363, UINT16_MAX, 11710, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1364, UINT16_MAX, 11712, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1365, UINT16_MAX, 11714, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1366, UINT16_MAX, 11716, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1367, UINT16_MAX, 11718, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1368, UINT16_MAX, 11720, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1369, UINT16_MAX, 11722, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1372, UINT16_MAX, 11724, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1374, UINT16_MAX, 11726, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1375, UINT16_MAX, 11728, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 6568, UINT16_MAX, 11730, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1573, UINT16_MAX, 11732, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1325, UINT16_MAX, 11734, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1329, UINT16_MAX, 11736, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1613, UINT16_MAX, 11738, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1515, UINT16_MAX, 11740, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1533, UINT16_MAX, 11742, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1343, UINT16_MAX, 11744, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1344, UINT16_MAX, 11746, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1345, UINT16_MAX, 11748, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1346, UINT16_MAX, 11750, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1347, UINT16_MAX, 11752, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1348, UINT16_MAX, 11754, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1349, UINT16_MAX, 11756, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1350, UINT16_MAX, 11758, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1351, UINT16_MAX, 11760, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1355, UINT16_MAX, 11762, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1356, UINT16_MAX, 11764, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1359, UINT16_MAX, 11766, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1360, UINT16_MAX, 11768, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1362, UINT16_MAX, 11770, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1364, UINT16_MAX, 11772, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1365, UINT16_MAX, 11774, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1366, UINT16_MAX, 11776, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1367, UINT16_MAX, 11778, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1368, UINT16_MAX, 11780, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1369, UINT16_MAX, 11782, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1371, UINT16_MAX, 11784, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1372, UINT16_MAX, 11786, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1485, UINT16_MAX, 11788, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1325, UINT16_MAX, 11790, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1324, UINT16_MAX, 11792, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 1342, UINT16_MAX, 11794, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1511, UINT16_MAX, 11796, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 6530, UINT16_MAX, 11798, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1517, UINT16_MAX, 11800, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11802, UINT16_MAX, 11802, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11804, UINT16_MAX, 11804, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11806, UINT16_MAX, 11806, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11808, UINT16_MAX, 11808, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11810, UINT16_MAX, 11810, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11812, UINT16_MAX, 11812, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11814, UINT16_MAX, 11814, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11816, UINT16_MAX, 11816, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11818, UINT16_MAX, 11818, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11820, UINT16_MAX, 11820, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11822, UINT16_MAX, 11822, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11824, UINT16_MAX, 11824, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11826, UINT16_MAX, 11826, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11828, UINT16_MAX, 11828, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11830, UINT16_MAX, 11830, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11832, UINT16_MAX, 11832, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11834, UINT16_MAX, 11834, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11836, UINT16_MAX, 11836, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11838, UINT16_MAX, 11838, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11840, UINT16_MAX, 11840, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11842, UINT16_MAX, 11842, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11844, UINT16_MAX, 11844, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11846, UINT16_MAX, 11846, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11848, UINT16_MAX, 11848, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11850, UINT16_MAX, 11850, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11852, UINT16_MAX, 11852, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11854, UINT16_MAX, 11854, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11856, UINT16_MAX, 11856, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11858, UINT16_MAX, 11858, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11860, UINT16_MAX, 11860, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11862, UINT16_MAX, 11862, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11864, UINT16_MAX, 11864, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11866, UINT16_MAX, 11866, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, 11868, UINT16_MAX, 11868, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11870, UINT16_MAX, 11870, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11872, UINT16_MAX, 11872, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11874, UINT16_MAX, 11874, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11876, UINT16_MAX, 11876, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11878, UINT16_MAX, 11878, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11880, UINT16_MAX, 11880, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11882, UINT16_MAX, 11882, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11884, UINT16_MAX, 11884, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11886, UINT16_MAX, 11886, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11888, UINT16_MAX, 11888, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11890, UINT16_MAX, 11890, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11892, UINT16_MAX, 11892, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11894, UINT16_MAX, 11894, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11896, UINT16_MAX, 11896, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11898, UINT16_MAX, 11898, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11900, UINT16_MAX, 11900, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11902, UINT16_MAX, 11902, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11904, UINT16_MAX, 11904, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11906, UINT16_MAX, 11906, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11908, UINT16_MAX, 11908, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11910, UINT16_MAX, 11910, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11912, UINT16_MAX, 11912, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11914, UINT16_MAX, 11914, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11916, UINT16_MAX, 11916, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11918, UINT16_MAX, 11918, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11920, UINT16_MAX, 11920, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11922, UINT16_MAX, 11922, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11924, UINT16_MAX, 11924, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11926, UINT16_MAX, 11926, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11928, UINT16_MAX, 11928, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11930, UINT16_MAX, 11930, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11932, UINT16_MAX, 11932, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11934, UINT16_MAX, 11934, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_R, 0, UINT16_MAX, UINT16_MAX, 11936, UINT16_MAX, 11936, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8256, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8257, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8261, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8264, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8283, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8267, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8262, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8272, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8284, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8278, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8279, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8280, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8281, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8268, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8274, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8276, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8270, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8277, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8266, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8269, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8259, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8260, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8263, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8265, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8271, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8273, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8275, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 11938, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 7458, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 11939, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 11940, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FONT, 8282, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 28325, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 28327, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 28329, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 28331, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 28333, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 28335, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 28337, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 28339, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 28341, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 28343, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, 28345, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44731, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44734, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44737, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44740, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44743, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44746, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44749, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44752, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44755, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44758, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44761, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44764, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44767, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44770, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44773, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44776, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44779, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44782, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44785, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44788, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44791, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44794, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44797, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44800, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44803, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44806, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 44809, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 28, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 43, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 28428, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 28430, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 26, UINT16_MAX, UINT16_MAX, 12048, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 27, UINT16_MAX, UINT16_MAX, 12050, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 28, UINT16_MAX, UINT16_MAX, 12052, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 29, UINT16_MAX, UINT16_MAX, 12054, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 30, UINT16_MAX, UINT16_MAX, 12056, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 31, UINT16_MAX, UINT16_MAX, 12058, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 32, UINT16_MAX, UINT16_MAX, 12060, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 33, UINT16_MAX, UINT16_MAX, 12062, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 34, UINT16_MAX, UINT16_MAX, 12064, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 35, UINT16_MAX, UINT16_MAX, 12066, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 36, UINT16_MAX, UINT16_MAX, 12068, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 37, UINT16_MAX, UINT16_MAX, 12070, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 38, UINT16_MAX, UINT16_MAX, 12072, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 39, UINT16_MAX, UINT16_MAX, 12074, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 40, UINT16_MAX, UINT16_MAX, 12076, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 41, UINT16_MAX, UINT16_MAX, 12078, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 42, UINT16_MAX, UINT16_MAX, 12080, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 43, UINT16_MAX, UINT16_MAX, 12082, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 44, UINT16_MAX, UINT16_MAX, 12084, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 45, UINT16_MAX, UINT16_MAX, 12086, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 46, UINT16_MAX, UINT16_MAX, 12088, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 47, UINT16_MAX, UINT16_MAX, 12090, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 48, UINT16_MAX, UINT16_MAX, 12092, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 49, UINT16_MAX, UINT16_MAX, 12094, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 50, UINT16_MAX, UINT16_MAX, 12096, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 51, UINT16_MAX, UINT16_MAX, 12098, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 28484, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 22719, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 28486, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 28488, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 44874, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 28493, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12111, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12113, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12115, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12117, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12119, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12121, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12123, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12125, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12127, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12129, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12131, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12133, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12135, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12137, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12139, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12141, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12143, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12145, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12147, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12149, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12151, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12153, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12155, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12157, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12159, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12161, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 28547, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 28549, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 28551, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12169, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12171, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12173, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12175, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12177, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12179, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12181, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12183, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12185, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12187, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12189, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12191, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12193, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12195, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12197, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12199, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12201, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12203, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12205, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12207, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12209, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12211, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12213, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12215, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12217, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, 12219, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 28605, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, true, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 1, false, 0, UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 28607, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 28609, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 5711, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 4903, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12227, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12228, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12229, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 4846, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12230, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12231, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 5283, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12232, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12233, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12234, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 7085, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12235, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12236, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12237, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12238, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12239, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12240, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 4939, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12241, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12242, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12243, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12244, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12245, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12246, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 4840, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 5275, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12247, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 5624, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 5278, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 5625, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12248, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 4995, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12249, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12250, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12251, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12252, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12253, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 5607, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 4913, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12254, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12255, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12256, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, 12257, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 45026, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 45029, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 45032, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 45035, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 45038, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 45041, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 45044, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 45047, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 45050, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12285, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12286, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTENDED_PICTOGRAPHIC, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12287, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12288, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12289, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12290, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12292, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12293, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12294, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12295, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12296, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12297, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12298, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12299, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12301, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12302, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12303, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12304, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12306, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12307, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12237, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12308, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12310, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12311, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12312, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12313, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12314, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4856, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12316, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12317, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12318, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12319, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12255, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12320, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12321, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12322, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12323, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12324, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12325, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12326, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12327, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12328, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12329, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12331, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12332, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12333, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12334, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12336, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12337, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12338, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12339, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12340, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12341, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12342, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12343, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12344, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12345, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12346, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12347, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12348, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12349, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12350, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12351, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12352, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12353, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12354, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12355, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12356, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12357, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12358, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12359, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12360, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12361, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12362, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12363, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12364, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12366, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12367, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12368, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12230, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12369, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12370, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12371, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12373, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12375, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12376, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12377, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12378, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12379, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12380, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12381, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12382, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12383, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12384, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12386, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12387, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12388, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12389, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12391, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12392, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12393, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4882, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12394, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12395, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12396, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12397, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12398, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12400, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12401, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12403, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12404, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12405, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12406, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12407, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12408, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12409, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12410, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12411, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12412, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12413, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12414, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12416, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12417, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12418, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12419, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12420, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4894, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12422, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12424, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12425, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12426, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12427, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12429, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12431, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12432, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12433, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12434, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12435, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12436, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12437, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12438, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12439, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12440, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12441, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12443, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12444, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12445, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12446, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12447, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12448, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12449, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12450, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12451, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12452, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12453, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12454, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12455, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12456, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12457, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12459, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12460, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12461, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12462, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12463, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12464, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12466, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12467, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12468, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12469, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12470, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12471, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12472, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12473, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12474, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12475, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12476, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12478, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12479, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12480, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12481, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12482, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12483, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12484, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12485, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12486, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12487, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12488, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12489, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12490, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12491, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12492, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12493, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12495, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12496, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12497, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12498, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12499, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12501, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12502, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12503, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12504, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12505, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12506, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12507, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12508, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12510, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12511, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12512, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12513, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12515, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12516, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12517, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12518, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12519, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12520, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12522, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12524, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12526, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12527, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12529, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12530, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12531, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12532, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12533, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12534, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12535, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12536, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12537, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12539, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12540, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12541, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12542, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12543, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12544, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12546, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12547, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12548, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12550, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12552, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12553, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12554, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12555, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12556, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12557, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12558, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12559, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12560, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12562, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12563, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12565, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12566, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12568, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12569, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12570, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12572, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12573, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12574, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12576, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12578, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12579, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12580, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12581, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12582, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12583, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12584, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12585, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12586, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12587, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12588, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12589, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12591, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12592, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12594, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12596, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12597, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12599, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12601, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12603, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12604, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12605, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12607, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12609, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12611, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12613, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12614, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12615, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12616, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12617, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12618, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12620, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12621, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12622, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12624, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12626, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12628, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12629, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12630, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12631, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12632, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12634, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12636, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12637, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12638, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12640, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12641, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12642, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12643, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12645, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12646, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12647, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12648, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12649, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12650, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12652, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12653, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12654, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12655, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12656, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12657, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12658, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12660, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12662, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12663, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12665, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12666, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12668, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12669, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12670, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12672, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12674, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12675, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12677, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12678, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12680, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12681, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12682, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12683, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12684, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12685, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12686, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12688, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12690, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12692, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12694, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12695, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12696, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12697, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12698, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12699, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12700, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12701, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12702, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12703, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12704, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12705, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12707, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12708, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12709, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12710, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12711, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12712, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12713, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12714, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12715, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12716, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12717, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12719, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12721, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12723, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12724, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12725, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12726, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12727, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12729, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12730, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12732, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12733, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12734, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12736, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12738, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12739, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12740, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12741, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12742, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12743, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12744, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12745, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12746, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12747, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12748, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12749, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12750, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12751, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12752, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12753, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4984, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12754, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12756, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12757, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12758, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12759, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12760, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12761, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12763, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12765, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12766, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12767, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 4991, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12768, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12770, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12771, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12772, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12773, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12774, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12776, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12778, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12779, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12780, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12781, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12783, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12784, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12786, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12788, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12789, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12790, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12791, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12793, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12794, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12795, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12796, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12797, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12798, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12799, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12800, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12802, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12803, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12804, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12805, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12807, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12808, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12809, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12810, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12811, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12813, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12815, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12816, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12817, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12818, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12820, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12821, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12823, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12824, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12826, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12827, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12828, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12829, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12830, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12831, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12832, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12833, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12835, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12836, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12837, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12838, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12839, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12840, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12842, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12843, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12845, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12847, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 5039, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12849, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 5043, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12850, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12851, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12852, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12853, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 5048, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 12854, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, false, false, 2, false, 0, UTF8PROC_BOUNDCLASS_OTHER, UTF8PROC_INDIC_CONJUNCT_BREAK_NONE}, + {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_BN, 0, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, 1023, 0, false, false, false, true, true, 0, false, 0, UTF8PROC_BOUNDCLASS_EXTEND, UTF8PROC_INDIC_CONJUNCT_BREAK_EXTEND}, +}; + +static const utf8proc_int32_t utf8proc_combinations_second[] = { + 824, + 824, + 824, + 768, 769, 770, 771, 772, 774, 775, 776, 777, 778, 780, 783, 785, 803, 805, 808, + 775, 803, 817, + 769, 770, 775, 780, 807, + 775, 780, 803, 807, 813, 817, + 768, 769, 770, 771, 772, 774, 775, 776, 777, 780, 783, 785, 803, 807, 808, 813, 816, + 775, + 769, 770, 772, 774, 775, 780, 807, + 770, 775, 776, 780, 803, 807, 814, + 768, 769, 770, 771, 772, 774, 775, 776, 777, 780, 783, 785, 803, 808, 816, + 770, + 769, 780, 803, 807, 817, + 769, 780, 803, 807, 813, 817, + 769, 775, 803, + 768, 769, 771, 775, 780, 803, 807, 813, 817, + 768, 769, 770, 771, 772, 774, 775, 776, 777, 779, 780, 783, 785, 795, 803, 808, + 769, 775, + 769, 775, 780, 783, 785, 803, 807, 817, + 769, 770, 775, 780, 803, 806, 807, + 775, 780, 803, 806, 807, 813, 817, + 768, 769, 770, 771, 772, 774, 776, 777, 778, 779, 780, 783, 785, 795, 803, 804, 808, 813, 816, + 771, 803, + 768, 769, 770, 775, 776, 803, + 775, 776, + 768, 769, 770, 771, 772, 775, 776, 777, 803, + 769, 770, 775, 780, 803, 817, + 768, 769, 770, 771, 772, 774, 775, 776, 777, 778, 780, 783, 785, 803, 805, 808, + 775, 803, 817, + 769, 770, 775, 780, 807, + 775, 780, 803, 807, 813, 817, + 768, 769, 770, 771, 772, 774, 775, 776, 777, 780, 783, 785, 803, 807, 808, 813, 816, + 775, + 769, 770, 772, 774, 775, 780, 807, + 770, 775, 776, 780, 803, 807, 814, 817, + 768, 769, 770, 771, 772, 774, 776, 777, 780, 783, 785, 803, 808, 816, + 770, 780, + 769, 780, 803, 807, 817, + 769, 780, 803, 807, 813, 817, + 769, 775, 803, + 768, 769, 771, 775, 780, 803, 807, 813, 817, + 768, 769, 770, 771, 772, 774, 775, 776, 777, 779, 780, 783, 785, 795, 803, 808, + 769, 775, + 769, 775, 780, 783, 785, 803, 807, 817, + 769, 770, 775, 780, 803, 806, 807, + 775, 776, 780, 803, 806, 807, 813, 817, + 768, 769, 770, 771, 772, 774, 776, 777, 778, 779, 780, 783, 785, 795, 803, 804, 808, 813, 816, + 771, 803, + 768, 769, 770, 775, 776, 778, 803, + 775, 776, + 768, 769, 770, 771, 772, 775, 776, 777, 778, 803, + 769, 770, 775, 780, 803, 817, + 768, 769, 834, + 768, 769, 771, 777, + 772, + 769, + 769, 772, + 769, + 768, 769, 771, 777, + 769, + 768, 769, 771, 777, + 769, 772, 776, + 772, + 769, + 768, 769, 772, 780, + 768, 769, 771, 777, + 772, + 769, + 769, 772, + 769, + 768, 769, 771, 777, + 769, + 768, 769, 771, 777, + 769, 772, 776, + 772, + 769, + 768, 769, 772, 780, + 768, 769, 771, 777, + 768, 769, 771, 777, + 768, 769, + 768, 769, + 768, 769, + 768, 769, + 775, + 775, + 775, + 775, + 769, + 769, + 776, + 776, + 775, + 768, 769, 771, 777, 803, + 768, 769, 771, 777, 803, + 768, 769, 771, 777, 803, + 768, 769, 771, 777, 803, + 780, + 772, + 772, + 772, + 772, + 774, + 774, + 772, + 772, + 780, + 768, 769, 772, 774, 787, 788, 837, + 768, 769, 787, 788, + 768, 769, 787, 788, 837, + 768, 769, 772, 774, 776, 787, 788, + 768, 769, 787, 788, + 788, + 768, 769, 772, 774, 776, 788, + 768, 769, 787, 788, 837, + 837, + 837, + 768, 769, 772, 774, 787, 788, 834, 837, + 768, 769, 787, 788, + 768, 769, 787, 788, 834, 837, + 768, 769, 772, 774, 776, 787, 788, 834, + 768, 769, 787, 788, + 787, 788, + 768, 769, 772, 774, 776, 787, 788, 834, + 768, 769, 787, 788, 834, 837, + 768, 769, 834, + 768, 769, 834, + 837, + 769, 776, + 776, + 774, 776, + 769, + 768, 774, 776, + 774, 776, + 776, + 768, 772, 774, 776, + 769, + 776, + 772, 774, 776, 779, + 776, + 776, + 776, + 774, 776, + 769, + 768, 774, 776, + 774, 776, + 776, + 768, 772, 774, 776, + 769, + 776, + 772, 774, 776, 779, + 776, + 776, + 776, + 776, + 783, + 783, + 776, + 776, + 776, + 776, + 1619, 1620, 1621, + 1620, + 1620, + 1620, + 1620, + 1620, + 2364, + 2364, + 2364, + 2494, 2519, + 2878, 2902, 2903, + 3031, + 3006, 3031, + 3006, + 3158, + 3285, + 3266, 3285, 3286, + 3285, + 3390, 3415, + 3390, + 3530, 3535, 3551, + 3530, + 4142, + 6965, + 6965, + 6965, + 6965, + 6965, + 6965, + 6965, + 6965, + 6965, + 6965, + 6965, + 772, + 772, + 772, + 772, + 775, + 775, + 770, 774, + 770, 774, + 770, + 770, + 770, + 770, + 768, 769, 834, 837, + 768, 769, 834, 837, + 837, + 837, + 837, + 837, + 837, + 837, + 768, 769, 834, 837, + 768, 769, 834, 837, + 837, + 837, + 837, + 837, + 837, + 837, + 768, 769, + 768, 769, + 768, 769, + 768, 769, + 768, 769, 834, 837, + 768, 769, 834, 837, + 837, + 837, + 837, + 837, + 837, + 837, + 768, 769, 834, 837, + 768, 769, 834, 837, + 837, + 837, + 837, + 837, + 837, + 837, + 768, 769, 834, + 768, 769, 834, + 768, 769, 834, + 768, 769, 834, + 768, 769, + 768, 769, + 768, 769, + 768, 769, + 768, 769, 834, + 768, 769, 834, + 768, 769, 834, + 768, 769, 834, 837, + 768, 769, 834, 837, + 837, + 837, + 837, + 837, + 837, + 837, + 768, 769, 834, 837, + 768, 769, 834, 837, + 837, + 837, + 837, + 837, + 837, + 837, + 837, + 837, + 837, + 837, + 768, 769, 834, + 837, + 837, + 768, 769, 834, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 824, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, 12442, + 12441, 12442, + 12441, 12442, + 12441, 12442, + 12441, 12442, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, + 12441, 12442, + 12441, 12442, + 12441, 12442, + 12441, 12442, + 12441, 12442, + 12441, + 12441, + 12441, + 12441, + 12441, + 775, + 775, + 69818, + 69818, + 69818, + 69927, + 69927, + 70462, 70487, + 70601, + 70587, + 70594, + 70601, + 70584, 70594, 70601, + 70832, 70842, 70845, + 71087, + 71087, + 71984, + 90398, 90399, 90400, 90409, + 90399, 90400, + 90399, + 90399, + 93543, + 93543, + 93543, +}; + +static const utf8proc_int32_t utf8proc_combinations_combined[] = { + 8814, + 8800, + 8815, + 192, 193, 194, 195, 256, 258, 550, 196, 7842, 197, 461, 512, 514, 7840, 7680, 260, + 7682, 7684, 7686, + 262, 264, 266, 268, 199, + 7690, 270, 7692, 7696, 7698, 7694, + 200, 201, 202, 7868, 274, 276, 278, 203, 7866, 282, 516, 518, 7864, 552, 280, 7704, 7706, + 7710, + 500, 284, 7712, 286, 288, 486, 290, + 292, 7714, 7718, 542, 7716, 7720, 7722, + 204, 205, 206, 296, 298, 300, 304, 207, 7880, 463, 520, 522, 7882, 302, 7724, + 308, + 7728, 488, 7730, 310, 7732, + 313, 317, 7734, 315, 7740, 7738, + 7742, 7744, 7746, + 504, 323, 209, 7748, 327, 7750, 325, 7754, 7752, + 210, 211, 212, 213, 332, 334, 558, 214, 7886, 336, 465, 524, 526, 416, 7884, 490, + 7764, 7766, + 340, 7768, 344, 528, 530, 7770, 342, 7774, + 346, 348, 7776, 352, 7778, 536, 350, + 7786, 356, 7788, 538, 354, 7792, 7790, + 217, 218, 219, 360, 362, 364, 220, 7910, 366, 368, 467, 532, 534, 431, 7908, 7794, 370, 7798, 7796, + 7804, 7806, + 7808, 7810, 372, 7814, 7812, 7816, + 7818, 7820, + 7922, 221, 374, 7928, 562, 7822, 376, 7926, 7924, + 377, 7824, 379, 381, 7826, 7828, + 224, 225, 226, 227, 257, 259, 551, 228, 7843, 229, 462, 513, 515, 7841, 7681, 261, + 7683, 7685, 7687, + 263, 265, 267, 269, 231, + 7691, 271, 7693, 7697, 7699, 7695, + 232, 233, 234, 7869, 275, 277, 279, 235, 7867, 283, 517, 519, 7865, 553, 281, 7705, 7707, + 7711, + 501, 285, 7713, 287, 289, 487, 291, + 293, 7715, 7719, 543, 7717, 7721, 7723, 7830, + 236, 237, 238, 297, 299, 301, 239, 7881, 464, 521, 523, 7883, 303, 7725, + 309, 496, + 7729, 489, 7731, 311, 7733, + 314, 318, 7735, 316, 7741, 7739, + 7743, 7745, 7747, + 505, 324, 241, 7749, 328, 7751, 326, 7755, 7753, + 242, 243, 244, 245, 333, 335, 559, 246, 7887, 337, 466, 525, 527, 417, 7885, 491, + 7765, 7767, + 341, 7769, 345, 529, 531, 7771, 343, 7775, + 347, 349, 7777, 353, 7779, 537, 351, + 7787, 7831, 357, 7789, 539, 355, 7793, 7791, + 249, 250, 251, 361, 363, 365, 252, 7911, 367, 369, 468, 533, 535, 432, 7909, 7795, 371, 7799, 7797, + 7805, 7807, + 7809, 7811, 373, 7815, 7813, 7832, 7817, + 7819, 7821, + 7923, 253, 375, 7929, 563, 7823, 255, 7927, 7833, 7925, + 378, 7825, 380, 382, 7827, 7829, + 8173, 901, 8129, + 7846, 7844, 7850, 7848, + 478, + 506, + 508, 482, + 7688, + 7872, 7870, 7876, 7874, + 7726, + 7890, 7888, 7894, 7892, + 7756, 556, 7758, + 554, + 510, + 475, 471, 469, 473, + 7847, 7845, 7851, 7849, + 479, + 507, + 509, 483, + 7689, + 7873, 7871, 7877, 7875, + 7727, + 7891, 7889, 7895, 7893, + 7757, 557, 7759, + 555, + 511, + 476, 472, 470, 474, + 7856, 7854, 7860, 7858, + 7857, 7855, 7861, 7859, + 7700, 7702, + 7701, 7703, + 7760, 7762, + 7761, 7763, + 7780, + 7781, + 7782, + 7783, + 7800, + 7801, + 7802, + 7803, + 7835, + 7900, 7898, 7904, 7902, 7906, + 7901, 7899, 7905, 7903, 7907, + 7914, 7912, 7918, 7916, 7920, + 7915, 7913, 7919, 7917, 7921, + 494, + 492, + 493, + 480, + 481, + 7708, + 7709, + 560, + 561, + 495, + 8122, 902, 8121, 8120, 7944, 7945, 8124, + 8136, 904, 7960, 7961, + 8138, 905, 7976, 7977, 8140, + 8154, 906, 8153, 8152, 938, 7992, 7993, + 8184, 908, 8008, 8009, + 8172, + 8170, 910, 8169, 8168, 939, 8025, + 8186, 911, 8040, 8041, 8188, + 8116, + 8132, + 8048, 940, 8113, 8112, 7936, 7937, 8118, 8115, + 8050, 941, 7952, 7953, + 8052, 942, 7968, 7969, 8134, 8131, + 8054, 943, 8145, 8144, 970, 7984, 7985, 8150, + 8056, 972, 8000, 8001, + 8164, 8165, + 8058, 973, 8161, 8160, 971, 8016, 8017, 8166, + 8060, 974, 8032, 8033, 8182, 8179, + 8146, 912, 8151, + 8162, 944, 8167, + 8180, + 979, 980, + 1031, + 1232, 1234, + 1027, + 1024, 1238, 1025, + 1217, 1244, + 1246, + 1037, 1250, 1049, 1252, + 1036, + 1254, + 1262, 1038, 1264, 1266, + 1268, + 1272, + 1260, + 1233, 1235, + 1107, + 1104, 1239, 1105, + 1218, 1245, + 1247, + 1117, 1251, 1081, 1253, + 1116, + 1255, + 1263, 1118, 1265, 1267, + 1269, + 1273, + 1261, + 1111, + 1142, + 1143, + 1242, + 1243, + 1258, + 1259, + 1570, 1571, 1573, + 1572, + 1574, + 1730, + 1747, + 1728, + 2345, + 2353, + 2356, + 2507, 2508, + 2891, 2888, 2892, + 2964, + 3018, 3020, + 3019, + 3144, + 3264, + 3274, 3271, 3272, + 3275, + 3402, 3404, + 3403, + 3546, 3548, 3550, + 3549, + 4134, + 6918, + 6920, + 6922, + 6924, + 6926, + 6930, + 6971, + 6973, + 6976, + 6977, + 6979, + 7736, + 7737, + 7772, + 7773, + 7784, + 7785, + 7852, 7862, + 7853, 7863, + 7878, + 7879, + 7896, + 7897, + 7938, 7940, 7942, 8064, + 7939, 7941, 7943, 8065, + 8066, + 8067, + 8068, + 8069, + 8070, + 8071, + 7946, 7948, 7950, 8072, + 7947, 7949, 7951, 8073, + 8074, + 8075, + 8076, + 8077, + 8078, + 8079, + 7954, 7956, + 7955, 7957, + 7962, 7964, + 7963, 7965, + 7970, 7972, 7974, 8080, + 7971, 7973, 7975, 8081, + 8082, + 8083, + 8084, + 8085, + 8086, + 8087, + 7978, 7980, 7982, 8088, + 7979, 7981, 7983, 8089, + 8090, + 8091, + 8092, + 8093, + 8094, + 8095, + 7986, 7988, 7990, + 7987, 7989, 7991, + 7994, 7996, 7998, + 7995, 7997, 7999, + 8002, 8004, + 8003, 8005, + 8010, 8012, + 8011, 8013, + 8018, 8020, 8022, + 8019, 8021, 8023, + 8027, 8029, 8031, + 8034, 8036, 8038, 8096, + 8035, 8037, 8039, 8097, + 8098, + 8099, + 8100, + 8101, + 8102, + 8103, + 8042, 8044, 8046, 8104, + 8043, 8045, 8047, 8105, + 8106, + 8107, + 8108, + 8109, + 8110, + 8111, + 8114, + 8130, + 8178, + 8119, + 8141, 8142, 8143, + 8135, + 8183, + 8157, 8158, 8159, + 8602, + 8603, + 8622, + 8653, + 8655, + 8654, + 8708, + 8713, + 8716, + 8740, + 8742, + 8769, + 8772, + 8775, + 8777, + 8813, + 8802, + 8816, + 8817, + 8820, + 8821, + 8824, + 8825, + 8832, + 8833, + 8928, + 8929, + 8836, + 8837, + 8840, + 8841, + 8930, + 8931, + 8876, + 8877, + 8878, + 8879, + 8938, + 8939, + 8940, + 8941, + 12436, + 12364, + 12366, + 12368, + 12370, + 12372, + 12374, + 12376, + 12378, + 12380, + 12382, + 12384, + 12386, + 12389, + 12391, + 12393, + 12400, 12401, + 12403, 12404, + 12406, 12407, + 12409, 12410, + 12412, 12413, + 12446, + 12532, + 12460, + 12462, + 12464, + 12466, + 12468, + 12470, + 12472, + 12474, + 12476, + 12478, + 12480, + 12482, + 12485, + 12487, + 12489, + 12496, 12497, + 12499, 12500, + 12502, 12503, + 12505, 12506, + 12508, 12509, + 12535, + 12536, + 12537, + 12538, + 12542, + 67017, + 67044, + 69786, + 69788, + 69803, + 69934, + 69935, + 70475, 70476, + 70531, + 70533, + 70542, + 70545, + 70599, 70597, 70600, + 70844, 70843, 70846, + 71098, + 71099, + 71992, + 90401, 90403, 90405, 90402, + 90406, 90408, + 90407, + 90404, + 93545, + 93544, + 93546, +}; +