A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/ctre-unicode_8hpp_source.html below:

NCBI C++ ToolKit: include/util/regexp/ctre/ctre-unicode.hpp Source File

221 #ifndef CTRE_V2__CTRE_UNICODE__HPP 222 #define CTRE_V2__CTRE_UNICODE__HPP 224 #ifndef CTRE_V2__CTRE__HPP 225 #define CTRE_V2__CTRE__HPP 227 #ifndef CTRE_V2__CTRE__LITERALS__HPP 228 #define CTRE_V2__CTRE__LITERALS__HPP 230 #ifndef CTRE_V2__CTLL__HPP 231 #define CTRE_V2__CTLL__HPP 233 #ifndef CTLL__PARSER__HPP 234 #define CTLL__PARSER__HPP 236 #ifndef CTLL__FIXED_STRING__GPP 237 #define CTLL__FIXED_STRING__GPP 241 #include <string_view> 252  if

((first_unit & 0b1000'0000) == 0b0000'0000)

return

{

static_cast<uint32_t>

(first_unit), 1};

253  else if

((first_unit & 0b1110'0000) == 0b1100'0000)

return

{

static_cast<uint32_t>

(first_unit & 0b0001'1111), 2};

254  else if

((first_unit & 0b1111'0000) == 0b1110'0000)

return

{

static_cast<uint32_t>

(first_unit & 0b0000'1111), 3};

255  else if

((first_unit & 0b1111'1000) == 0b1111'0000)

return

{

static_cast<uint32_t>

(first_unit & 0b0000'0111), 4};

256  else if

((first_unit & 0b1111'1100) == 0b1111'1000)

return

{

static_cast<uint32_t>

(first_unit & 0b0000'0011), 5};

257  else if

((first_unit & 0b1111'1100) == 0b1111'1100)

return

{

static_cast<uint32_t>

(first_unit & 0b0000'0001), 6};

262  if

((unit & 0b1100'0000) == 0b1000'0000)

return

unit & 0b0011'1111;

270  if

((first_unit & 0b1111110000000000) == 0b1101'1000'0000'0000)

return

{

static_cast<uint32_t>

(first_unit & 0b0000001111111111), 2};

271  else return

{first_unit, 1};

278  template

<

typename

T> constexpr

fixed_string

(

const T

(&input)[

N

+1]) noexcept {

279  if

constexpr (std::is_same_v<T, char>) {

280  #ifdef CTRE_STRING_IS_UTF8 282  for

(

size_t i

{0};

i

<

N

; ++

i

) {

283  if

((

i

== (

N

-1)) && (input[

i

] == 0))

break

;

285  switch

(

info

.length) {

311  for

(

size_t i

{0};

i

<

N

; ++

i

) {

313  if

((

i

== (

N

-1)) && (input[

i

] == 0))

break

;

318

}

else if

constexpr (std::is_same_v<T, char8_t>) {

320  for

(

size_t i

{0};

i

<

N

; ++

i

) {

321  if

((

i

== (

N

-1)) && (input[

i

] == 0))

break

;

323  switch

(

info

.length) {

349

}

else if

constexpr (std::is_same_v<T, char16_t>) {

351  for

(

size_t i

{0};

i

<

N

; ++

i

) {

353  if

(

info

.length == 2) {

355  if

((input[

i

] & 0b1111'1100'0000'0000) == 0b1101'1100'0000'0000) {

356  content

[

out

++] = ((

info

.value << 10) | (input[

i

] & 0b0000'0011'1111'1111)) + 0x10000;

363  if

((

i

== (

N

-1)) && (input[

i

] == 0))

break

;

368

}

else if

constexpr (std::is_same_v<T, wchar_t> || std::is_same_v<T, char32_t>) {

369  for

(

size_t i

{0};

i

<

N

; ++

i

) {

370  content

[

i

] =

static_cast<

char32_t

>

(input[

i

]);

371  if

((

i

== (

N

-1)) && (input[

i

] == 0))

break

;

377  for

(

size_t i

{0};

i

<

N

; ++

i

) {

399  if

(

real_size

!= rhs.size())

return false

;

401  if

(

content

[

i

] != rhs[

i

])

return false

;

405

constexpr

operator

std::basic_string_view<char32_t>()

const

noexcept {

406  return

std::basic_string_view<char32_t>{

content

,

size

()};

411  static

constexpr char32_t

empty

[1] = {0};

437

constexpr

operator

std::basic_string_view<char32_t>()

const

noexcept {

438  return

std::basic_string_view<char32_t>{

empty

, 0};

449 #ifndef CTLL__TYPE_STACK__HPP 450 #define CTLL__TYPE_STACK__HPP 452 #ifndef CTLL__UTILITIES__HPP 453 #define CTLL__UTILITIES__HPP 455 #include <type_traits> 457 #if defined __cpp_nontype_template_parameter_class 458  #define CTLL_CNTTP_COMPILER_CHECK 1 459 #elif defined __cpp_nontype_template_args 461  #if __cpp_nontype_template_args >= 201911L 462  #define CTLL_CNTTP_COMPILER_CHECK 1 463  #elif __cpp_nontype_template_args >= 201411L 465  #if defined __apple_build_version__ 466  #if defined __clang_major__ && __clang_major__ >= 13 468  #if __cplusplus > 201703L 469  #define CTLL_CNTTP_COMPILER_CHECK 1 474  #if defined __clang_major__ && __clang_major__ >= 12 476  #if __cplusplus > 201703L 477  #define CTLL_CNTTP_COMPILER_CHECK 1 484 #ifndef CTLL_CNTTP_COMPILER_CHECK 485  #define CTLL_CNTTP_COMPILER_CHECK 0 489 #define CTLL_FORCE_INLINE __forceinline 491 #define CTLL_FORCE_INLINE __attribute__((always_inline)) 499  template

<

typename

A,

typename

>

using type

=

A

;

503  template

<

typename

,

typename

B>

using type

=

B

;

514 template

<

typename

... Ts>

struct list

{ };

521 template

<

typename

... Ts> constexpr

auto size

(

list<Ts...>

) noexcept {

return sizeof

...(Ts); }

525 template

<

typename

... Ts> constexpr

bool empty

(

list<Ts...>

) noexcept {

return false

; }

550 template

<

typename

T = _nothing> constexpr

auto front

(

empty_list

,

T

=

T

()) noexcept ->

T

{

return

{}; }

570  static

constexpr

auto check

(

T

) {

return

std::true_type{}; }

571  static

constexpr

auto check

(...) {

return

std::false_type{}; }

584  return list

<Ts...,

T

>{};

590  return

decltype((

list<>

{} + ... + matcher.

select

(Ts{}))){};

597 #ifndef CTLL__GRAMMARS__HPP 598 #define CTLL__GRAMMARS__HPP 603 template

<auto v>

struct term

{

617 template

<

typename

... Ts>

using push

=

list

<Ts...>;

620 struct accept

{ constexpr

explicit operator bool

() noexcept {

return true

; } };

621 struct reject

{ constexpr

explicit operator bool

() noexcept {

return false

; } };

653 template

<auto A, decltype(A) B>

struct range

{

654

constexpr

inline range

() noexcept { }

656  template

<auto V,

typename

= std::enable_if_t<(A <= V) && (V <= B)>> constexpr inline range(term<V>) noexcept;

660 template

<auto V, auto... Set>

struct

contains {

661  static

constexpr

bool value

= ((Set == V) || ... ||

false

);

666 template

<

auto

... Def>

struct set

{

667

constexpr

inline set

() noexcept { }

669  template

<

auto

V,

typename

= std::enable_if_t<contains<V, Def...>

::value

>> constexpr

inline set

(

term<V>

) noexcept;

671  template

<

auto

V,

typename

= std::enable_if_t<((Def == V) || ... ||

false

)>> constexpr

inline set

(

term<V>

) noexcept;

680  template

<

auto

V,

typename

= std::enable_if_t<!contains<V, Def...>

::value

>> constexpr

inline neg_set

(

term<V>

) noexcept;

682  template

<

auto

V,

typename

= std::enable_if_t<!((Def == V) || ... ||

false

)>> constexpr

inline neg_set

(

term<V>

) noexcept;

689  using typename

Grammar::_start;

698  template

<

typename

Expected, auto V>

static

constexpr

auto rule

(Expected,

term<V>

) -> std::enable_if_t<std::is_constructible_v<Expected, term<V>>,

ctll::pop_input

>;

714 #ifndef CTLL__ACTIONS__HPP 715 #define CTLL__ACTIONS__HPP 722  template

<

typename

Action,

typename

InputSymbol,

typename

Subject>

static

constexpr

auto apply

(Action, InputSymbol, Subject

subject

) {

727  template

<

typename

Actions>

struct identity

:

public

Actions {

728  using

Actions::apply;

735  using

Actions::apply;

737  template

<

typename

Action, auto V,

typename

Subject> constexpr

static auto apply

(Action,

term<V>

, Subject) -> Subject {

return

{}; }

738  template

<

typename

Action,

typename

Subject> constexpr

static auto apply

(Action,

epsilon

, Subject) -> Subject {

return

{}; }

758 #if CTLL_CNTTP_COMPILER_CHECK 759 template

<

typename

Grammar, ctll::fixed_

string

input,

typename

ActionSelector = empty_actions,

bool

IgnoreUnknownActions = false>

struct parser

{

761 template

<

typename

Grammar, const auto & input,

typename

ActionSelector = empty_actions,

bool

IgnoreUnknownActions = false>

struct parser

{

765  #if CTLL_CNTTP_COMPILER_CHECK 766  static

constexpr

auto _input

= input;

768  static

constexpr

auto

&

_input

= input;

777  template

<

size_t

Pos,

typename

Stack,

typename

Subject, decision Decision>

struct results

{

786  #if CTLL_CNTTP_COMPILER_CHECK 787  static

constexpr

auto _input

= input;

789  static

constexpr

auto

&

_input

= input;

796  static

constexpr

size_t

position =

Pos

;

810  if

constexpr (

Pos

< input.size()) {

811

constexpr

auto value

= input[

Pos

];

824  if

constexpr (

Pos

== 0) {

827

}

else if

constexpr ((

Pos

-1) < input.size()) {

828

constexpr

auto value

= input[

Pos

-1];

839  template

<

size_t

Pos,

typename

Terminal,

typename

Stack,

typename

Subject>

844  template

<

size_t

Pos,

typename

Terminal,

typename

Stack,

typename

Subject>

849  template

<

size_t

Pos,

typename

Terminal,

typename

Stack,

typename

Subject>

854  template

<

size_t Pos

,

typename

... Content,

typename

Terminal,

typename

Stack,

typename

Subject>

859  template

<

size_t

Pos,

typename

Terminal,

typename

Stack,

typename

Subject>

861  return

decide<Pos>(stack,

subject

);

865  template

<

size_t Pos

,

auto

V,

typename

... Content,

typename

Stack,

typename

Subject>

867

constexpr

auto

local_input = input;

872  template

<

size_t Pos

,

auto

V,

typename

... Content,

auto T

,

typename

Stack,

typename

Subject>

874

constexpr

auto

local_input = input;

878  template

<

size_t

Pos,

typename

Stack,

typename

Subject>

static

constexpr

auto decide

(Stack previous_stack, Subject previous_subject) noexcept {

882

[[maybe_unused]]

auto

stack = decltype(

ctll::pop_front

(previous_stack))();

885  if

constexpr (std::is_base_of_v<

ctll::action

, decltype(top_symbol)>) {

886  auto subject

= Actions::apply(top_symbol, get_previous_term<Pos>(), previous_subject);

892  return

decide<Pos>(stack,

subject

);

896  auto

current_term = get_current_term<Pos>();

897  auto

rule = decltype(

grammar::rule

(top_symbol,current_term))();

898  return

move<Pos>(rule, current_term, stack, previous_subject);

903  template

<

typename

Subject,

size_t

...

Pos

>

static

constexpr

auto trampoline_decide

(Subject, std::index_sequence<Pos...>) noexcept {

915  template

<

typename

Subject = empty_subject>

using output

= decltype(trampoline_decide<Subject>());

916  template

<

typename

Subject = empty_subject>

static inline

constexpr

bool correct_with

= trampoline_decide<Subject>();

926 #ifndef CTRE__PCRE_ACTIONS__HPP 927 #define CTRE__PCRE_ACTIONS__HPP 929 #ifndef CTRE__PCRE__HPP 930 #define CTRE__PCRE__HPP 942  struct

backslash_range {};

944  struct

block_name2 {};

946  struct

class_named_name {};

949  struct

content_in_capture {};

955  struct

hexdec_repeat {};

962  struct

mode_switch2 {};

968  struct

property_name2 {};

969  struct

property_name {};

970  struct

property_value2 {};

971  struct

property_value {};

974  struct

s {};

using

_start = s;

1032  struct

push_assert_subject_end_with_lineend:

ctll::action

{};

1040  struct

push_character_return_carriage:

ctll::action

{};

1067  using

_others =

ctll::neg_set

<

'!'

,

'$'

,

'\x28'

,

'\x29'

,

'*'

,

'+'

,

','

,

'-'

,

'.'

,

'/'

,

':'

,

'<'

,

'='

,

'>'

,

'?'

,

'A'

,

'B'

,

'C'

,

'D'

,

'E'

,

'F'

,

'G'

,

'H'

,

'I'

,

'J'

,

'K'

,

'L'

,

'M'

,

'N'

,

'O'

,

'P'

,

'Q'

,

'R'

,

'S'

,

'T'

,

'U'

,

'V'

,

'W'

,

'X'

,

'Y'

,

'Z'

,

'['

,

'\\'

,

'0'

,

'\"'

,

']'

,

'^'

,

'_'

,

'a'

,

'b'

,

'c'

,

'd'

,

'e'

,

'f'

,

'g'

,

'h'

,

'i'

,

'j'

,

'k'

,

'l'

,

'm'

,

'n'

,

'o'

,

'p'

,

'q'

,

'r'

,

's'

,

't'

,

'u'

,

'v'

,

'w'

,

'x'

,

'y'

,

'z'

,

'\x7B'

,

'|'

,

'\x7D'

,

'1'

,

'2'

,

'3'

,

'4'

,

'5'

,

'6'

,

'7'

,

'8'

,

'9'

>;

1073  static

constexpr

auto

rule(s,

ctll::set

<

'!'

,

','

,

'/'

,

':'

,

'<'

,

'0'

,

'-'

,

'='

,

'>'

,

'A'

,

'B'

,

'C'

,

'D'

,

'E'

,

'F'

,

'G'

,

'H'

,

'I'

,

'J'

,

'K'

,

'L'

,

'M'

,

'N'

,

'O'

,

'P'

,

'Q'

,

'R'

,

'S'

,

'T'

,

'U'

,

'V'

,

'W'

,

'X'

,

'Y'

,

'Z'

,

'\"'

,

']'

,

'_'

,

'a'

,

'b'

,

'c'

,

'd'

,

'e'

,

'f'

,

'g'

,

'h'

,

'i'

,

'j'

,

'k'

,

'l'

,

'm'

,

'n'

,

'o'

,

'p'

,

'q'

,

'r'

,

's'

,

't'

,

'u'

,

'v'

,

'w'

,

'x'

,

'y'

,

'z'

,

'1'

,

'2'

,

'3'

,

'4'

,

'5'

,

'6'

,

'7'

,

'8'

,

'9'

>) ->

ctll::push<ctll::anything, push_character, repeat, string2, content2>

;

1085  static

constexpr

auto

rule(

a

,

ctll::set

<

'!'

,

','

,

'/'

,

':'

,

'<'

,

'0'

,

'-'

,

'='

,

'>'

,

'A'

,

'B'

,

'C'

,

'D'

,

'E'

,

'F'

,

'G'

,

'H'

,

'I'

,

'J'

,

'K'

,

'L'

,

'M'

,

'N'

,

'O'

,

'P'

,

'Q'

,

'R'

,

'S'

,

'T'

,

'U'

,

'V'

,

'W'

,

'X'

,

'Y'

,

'Z'

,

'\"'

,

']'

,

'_'

,

'a'

,

'b'

,

'c'

,

'd'

,

'e'

,

'f'

,

'g'

,

'h'

,

'i'

,

'j'

,

'k'

,

'l'

,

'm'

,

'n'

,

'o'

,

'p'

,

'q'

,

'r'

,

's'

,

't'

,

'u'

,

'v'

,

'w'

,

'x'

,

'y'

,

'z'

,

'1'

,

'2'

,

'3'

,

'4'

,

'5'

,

'6'

,

'7'

,

'8'

,

'9'

>) ->

ctll::push<ctll::anything, push_character, repeat, string2, content2, make_alternate>

;

1106  static

constexpr

auto

rule(backslash,

ctll::set<'1','2','3','4','5','6','7','8','9'>

) ->

ctll::push<ctll::anything, create_number, make_back_reference>

;

1115  static

constexpr

auto

rule(backslash,

ctll::set

<

'$'

,

'\x28'

,

'\x29'

,

'*'

,

'+'

,

'-'

,

'.'

,

'/'

,

'<'

,

'>'

,

'?'

,

'['

,

'\\'

,

'\"'

,

']'

,

'^'

,

'\x7B'

,

'|'

,

'\x7D'

>) ->

ctll::push<ctll::anything, push_character>

;

1128  static

constexpr

auto

rule(backslash_range,

ctll::set

<

'$'

,

'\x28'

,

'\x29'

,

'*'

,

'+'

,

'-'

,

'.'

,

'/'

,

'<'

,

'>'

,

'?'

,

'['

,

'\\'

,

'\"'

,

']'

,

'^'

,

'\x7B'

,

'|'

,

'\x7D'

>) ->

ctll::push<ctll::anything, push_character>

;

1143  static

constexpr

auto

rule(block,

ctll::set

<

'!'

,

','

,

'/'

,

':'

,

'<'

,

'0'

,

'-'

,

'='

,

'>'

,

'A'

,

'B'

,

'C'

,

'D'

,

'E'

,

'F'

,

'G'

,

'H'

,

'I'

,

'J'

,

'K'

,

'L'

,

'M'

,

'N'

,

'O'

,

'P'

,

'Q'

,

'R'

,

'S'

,

'T'

,

'U'

,

'V'

,

'W'

,

'X'

,

'Y'

,

'Z'

,

'\"'

,

']'

,

'_'

,

'a'

,

'b'

,

'c'

,

'd'

,

'e'

,

'f'

,

'g'

,

'h'

,

'i'

,

'j'

,

'k'

,

'l'

,

'm'

,

'n'

,

'o'

,

'p'

,

'q'

,

'r'

,

's'

,

't'

,

'u'

,

'v'

,

'w'

,

'x'

,

'y'

,

'z'

,

'1'

,

'2'

,

'3'

,

'4'

,

'5'

,

'6'

,

'7'

,

'8'

,

'9'

>) ->

ctll::push<ctll::anything, push_character, repeat, string2, content2, make_capture, ctll::term<'\x29'>

>;

1150  static

constexpr

auto

rule(block_name2,

ctll::set<'>','

\x7D

'>) -> ctll::epsilon; 1151  static constexpr auto rule(block_name2, ctll::set<'

0

','A','B','C','D','E','F','G','H','

I

','J','

K

','

L

','M','N','

O

','P','

Q

','R','S','T','U','

V

','W','

X

','

Y

','Z','_','a','b','

c

','

d

','

e

','f','g','

h

','i','

j

','

k

','l','

m

','n','

o

','

p

','

q

','r','

s

','t','

u

','

v

','

w

','

x

','

y

','

z

','

1',

'2'

,

'3'

,

'4'

,

'5'

,

'6'

,

'7'

,

'8'

,

'9'

>) ->

ctll::push<ctll::anything, push_name, block_name2>

;

1155  static

constexpr

auto

rule(c,

ctll::set

<

'!'

,

'0'

,

'$'

,

'\x28'

,

'\x29'

,

'*'

,

'+'

,

','

,

'.'

,

'/'

,

':'

,

'<'

,

'='

,

'>'

,

'?'

,

'A'

,

'B'

,

'C'

,

'D'

,

'E'

,

'F'

,

'G'

,

'H'

,

'I'

,

'J'

,

'K'

,

'L'

,

'M'

,

'N'

,

'O'

,

'P'

,

'Q'

,

'R'

,

'S'

,

'T'

,

'U'

,

'V'

,

'W'

,

'X'

,

'Y'

,

'Z'

,

'\"'

,

'_'

,

'a'

,

'b'

,

'c'

,

'd'

,

'e'

,

'f'

,

'g'

,

'h'

,

'i'

,

'j'

,

'k'

,

'l'

,

'm'

,

'n'

,

'o'

,

'p'

,

'q'

,

'r'

,

's'

,

't'

,

'u'

,

'v'

,

'w'

,

'x'

,

'y'

,

'z'

,

'\x7B'

,

'|'

,

'\x7D'

,

'1'

,

'2'

,

'3'

,

'4'

,

'5'

,

'6'

,

'7'

,

'8'

,

'9'

>) ->

ctll::push<ctll::anything, push_character, range, set_start, set2b, set_make, ctll::term<']'>

>;

1181  static

constexpr

auto

rule(content,

ctll::set

<

'!'

,

','

,

'/'

,

':'

,

'<'

,

'0'

,

'-'

,

'='

,

'>'

,

'A'

,

'B'

,

'C'

,

'D'

,

'E'

,

'F'

,

'G'

,

'H'

,

'I'

,

'J'

,

'K'

,

'L'

,

'M'

,

'N'

,

'O'

,

'P'

,

'Q'

,

'R'

,

'S'

,

'T'

,

'U'

,

'V'

,

'W'

,

'X'

,

'Y'

,

'Z'

,

'\"'

,

']'

,

'_'

,

'a'

,

'b'

,

'c'

,

'd'

,

'e'

,

'f'

,

'g'

,

'h'

,

'i'

,

'j'

,

'k'

,

'l'

,

'm'

,

'n'

,

'o'

,

'p'

,

'q'

,

'r'

,

's'

,

't'

,

'u'

,

'v'

,

'w'

,

'x'

,

'y'

,

'z'

,

'1'

,

'2'

,

'3'

,

'4'

,

'5'

,

'6'

,

'7'

,

'8'

,

'9'

>) ->

ctll::push<ctll::anything, push_character, repeat, string2, content2>

;

1191  static

constexpr

auto

rule(content_in_capture,

ctll::set

<

'!'

,

','

,

'/'

,

':'

,

'<'

,

'0'

,

'-'

,

'='

,

'>'

,

'A'

,

'B'

,

'C'

,

'D'

,

'E'

,

'F'

,

'G'

,

'H'

,

'I'

,

'J'

,

'K'

,

'L'

,

'M'

,

'N'

,

'O'

,

'P'

,

'Q'

,

'R'

,

'S'

,

'T'

,

'U'

,

'V'

,

'W'

,

'X'

,

'Y'

,

'Z'

,

'\"'

,

']'

,

'_'

,

'a'

,

'b'

,

'c'

,

'd'

,

'e'

,

'f'

,

'g'

,

'h'

,

'i'

,

'j'

,

'k'

,

'l'

,

'm'

,

'n'

,

'o'

,

'p'

,

'q'

,

'r'

,

's'

,

't'

,

'u'

,

'v'

,

'w'

,

'x'

,

'y'

,

'z'

,

'1'

,

'2'

,

'3'

,

'4'

,

'5'

,

'6'

,

'7'

,

'8'

,

'9'

>) ->

ctll::push<ctll::anything, push_character, repeat, string2, content2>

;

1204  static

constexpr

auto

rule(d,

ctll::term<'>'>) -> ctll::push<ctll::anything, reset_capture, start_atomic, content_in_capture, make_atomic, ctll::term<'

\x29

'>>; 1205  static constexpr auto rule(d, ctll::term<'

!

'>) -> ctll::push<ctll::anything, reset_capture, start_lookahead_negative, content_in_capture, look_finish, ctll::term<'

\x29

'>>; 1206  static constexpr auto rule(d, ctll::term<'

=

'>) -> ctll::push<ctll::anything, reset_capture, start_lookahead_positive, content_in_capture, look_finish, ctll::term<'

\x29

'>>; 1208  static constexpr auto rule(e, ctll::term<'

d

'>) -> ctll::push<ctll::anything, class_digit>; 1209  static constexpr auto rule(e, ctll::term<'

h

'>) -> ctll::push<ctll::anything, class_horizontal_space>; 1210  static constexpr auto rule(e, ctll::term<'H'>) -> ctll::push<ctll::anything, class_non_horizontal_space>; 1211  static constexpr auto rule(e, ctll::term<'

V

'>) -> ctll::push<ctll::anything, class_non_vertical_space>; 1212  static constexpr auto rule(e, ctll::term<'D'>) -> ctll::push<ctll::anything, class_nondigit>; 1213  static constexpr auto rule(e, ctll::term<'N'>) -> ctll::push<ctll::anything, class_nonnewline>; 1214  static constexpr auto rule(e, ctll::term<'S'>) -> ctll::push<ctll::anything, class_nonspace>; 1215  static constexpr auto rule(e, ctll::term<'W'>) -> ctll::push<ctll::anything, class_nonword>; 1216  static constexpr auto rule(e, ctll::term<'

s

'>) -> ctll::push<ctll::anything, class_space>; 1217  static constexpr auto rule(e, ctll::term<'

v

'>) -> ctll::push<ctll::anything, class_vertical_space>; 1218  static constexpr auto rule(e, ctll::term<'

w

'>) -> ctll::push<ctll::anything, class_word>; 1219  static constexpr auto rule(e, ctll::term<'

p

'>) -> ctll::push<ctll::anything, ctll::term<'

\x7B

'>, property_name, ctll::term<'

\x7D

'>, make_property>; 1220  static constexpr auto rule(e, ctll::term<'P'>) -> ctll::push<ctll::anything, ctll::term<'

\x7B

'>, property_name, ctll::term<'

\x7D

'>, make_property_negative>; 1221  static constexpr auto rule(e, ctll::term<'

u

'>) -> ctll::push<ctll::anything, k, range>; 1222  static constexpr auto rule(e, ctll::term<'

x

'>) -> ctll::push<ctll::anything, l, range>; 1223  static constexpr auto rule(e, ctll::set<'

$

','

\x28

','

\x29

','

*

','

+

','

-

','

.

','

/

','

<

','

>

','

?

','

[

','

\\

','

\

"',']','^','\x7B','|','\x7D'>) -> ctll::push<ctll::anything, push_character, range>; 1224  static constexpr auto rule(e, ctll::term<'a'>) -> ctll::push<ctll::anything, push_character_alarm, range>; 1225  static constexpr auto rule(e, ctll::term<'e'>) -> ctll::push<ctll::anything, push_character_escape, range>; 1226  static constexpr auto rule(e, ctll::term<'f'>) -> ctll::push<ctll::anything, push_character_formfeed, range>; 1227  static constexpr auto rule(e, ctll::term<'n'>) -> ctll::push<ctll::anything, push_character_newline, range>; 1228  static constexpr auto rule(e, ctll::term<'0'>) -> ctll::push<ctll::anything, push_character_null, range>; 1229  static constexpr auto rule(e, ctll::term<'r'>) -> ctll::push<ctll::anything, push_character_return_carriage, range>; 1230  static constexpr auto rule(e, ctll::term<'t'>) -> ctll::push<ctll::anything, push_character_tab, range>; 1232  static constexpr auto rule(f, ctll::term<'d'>) -> ctll::push<ctll::anything, class_digit>; 1233  static constexpr auto rule(f, ctll::term<'h'>) -> ctll::push<ctll::anything, class_horizontal_space>; 1234  static constexpr auto rule(f, ctll::term<'H'>) -> ctll::push<ctll::anything, class_non_horizontal_space>; 1235  static constexpr auto rule(f, ctll::term<'V'>) -> ctll::push<ctll::anything, class_non_vertical_space>; 1236  static constexpr auto rule(f, ctll::term<'D'>) -> ctll::push<ctll::anything, class_nondigit>; 1237  static constexpr auto rule(f, ctll::term<'N'>) -> ctll::push<ctll::anything, class_nonnewline>; 1238  static constexpr auto rule(f, ctll::term<'S'>) -> ctll::push<ctll::anything, class_nonspace>; 1239  static constexpr auto rule(f, ctll::term<'W'>) -> ctll::push<ctll::anything, class_nonword>; 1240  static constexpr auto rule(f, ctll::term<'s'>) -> ctll::push<ctll::anything, class_space>; 1241  static constexpr auto rule(f, ctll::term<'v'>) -> ctll::push<ctll::anything, class_vertical_space>; 1242  static constexpr auto rule(f, ctll::term<'w'>) -> ctll::push<ctll::anything, class_word>; 1243  static constexpr auto rule(f, ctll::term<'p'>) -> ctll::push<ctll::anything, ctll::term<'\x7B'>, property_name, ctll::term<'\x7D'>, make_property>; 1244  static constexpr auto rule(f, ctll::term<'P'>) -> ctll::push<ctll::anything, ctll::term<'\x7B'>, property_name, ctll::term<'\x7D'>, make_property_negative>; 1245  static constexpr auto rule(f, ctll::term<'u'>) -> ctll::push<ctll::anything, k, range>; 1246  static constexpr auto rule(f, ctll::term<'x'>) -> ctll::push<ctll::anything, l, range>; 1247  static constexpr auto rule(f, ctll::set<'$','\x28','\x29','*','+','-','.','/','<','>','?','[','\\','\"',']','^','\x7B','|','\x7D'>) -> ctll::push<ctll::anything, push_character, range>; 1248  static constexpr auto rule(f, ctll::term<'a'>) -> ctll::push<ctll::anything, push_character_alarm, range>; 1249  static constexpr auto rule(f, ctll::term<'e'>) -> ctll::push<ctll::anything, push_character_escape, range>; 1250  static constexpr auto rule(f, ctll::term<'f'>) -> ctll::push<ctll::anything, push_character_formfeed, range>; 1251  static constexpr auto rule(f, ctll::term<'n'>) -> ctll::push<ctll::anything, push_character_newline, range>; 1252  static constexpr auto rule(f, ctll::term<'0'>) -> ctll::push<ctll::anything, push_character_null, range>; 1253  static constexpr auto rule(f, ctll::term<'r'>) -> ctll::push<ctll::anything, push_character_return_carriage, range>; 1254  static constexpr auto rule(f, ctll::term<'t'>) -> ctll::push<ctll::anything, push_character_tab, range>; 1256  static constexpr auto rule(g, ctll::term<'s'>) -> ctll::push<ctll::anything, ctll::term<'c'>, ctll::term<'i'>, ctll::term<'i'>, class_named_ascii>; 1257  static constexpr auto rule(g, ctll::term<'l'>) -> ctll::push<ctll::anything, p>; 1259  static constexpr auto rule(h, ctll::term<'r'>) -> ctll::push<ctll::anything, ctll::term<'i'>, ctll::term<'n'>, ctll::term<'t'>, class_named_print>; 1260  static constexpr auto rule(h, ctll::term<'u'>) -> ctll::push<ctll::anything, ctll::term<'n'>, ctll::term<'c'>, ctll::term<'t'>, class_named_punct>; 1262  static constexpr auto rule(hexdec_repeat, ctll::term<'\x7D'>) -> ctll::epsilon; 1263  static constexpr auto rule(hexdec_repeat, ctll::set<'0','A','B','C','D','E','F','a','b','c','d','e','f','1','2','3','4','5','6','7','8','9'>) -> ctll::push<ctll::anything, push_hexdec, hexdec_repeat>; 1265  static constexpr auto rule(i, ctll::term<'^'>) -> ctll::push<ctll::anything, class_named_name, negate_class_named, ctll::term<':'>, ctll::term<']'>>; 1266  static constexpr auto rule(i, ctll::term<'x'>) -> ctll::push<ctll::anything, ctll::term<'d'>, ctll::term<'i'>, ctll::term<'g'>, ctll::term<'i'>, ctll::term<'t'>, class_named_xdigit, ctll::term<':'>, ctll::term<']'>>; 1267  static constexpr auto rule(i, ctll::term<'d'>) -> ctll::push<ctll::anything, ctll::term<'i'>, ctll::term<'g'>, ctll::term<'i'>, ctll::term<'t'>, class_named_digit, ctll::term<':'>, ctll::term<']'>>; 1268  static constexpr auto rule(i, ctll::term<'b'>) -> ctll::push<ctll::anything, ctll::term<'l'>, ctll::term<'a'>, ctll::term<'n'>, ctll::term<'k'>, class_named_blank, ctll::term<':'>, ctll::term<']'>>; 1269  static constexpr auto rule(i, ctll::term<'c'>) -> ctll::push<ctll::anything, ctll::term<'n'>, ctll::term<'t'>, ctll::term<'r'>, ctll::term<'l'>, class_named_cntrl, ctll::term<':'>, ctll::term<']'>>; 1270  static constexpr auto rule(i, ctll::term<'w'>) -> ctll::push<ctll::anything, ctll::term<'o'>, ctll::term<'r'>, ctll::term<'d'>, class_named_word, ctll::term<':'>, ctll::term<']'>>; 1271  static constexpr auto rule(i, ctll::term<'l'>) -> ctll::push<ctll::anything, ctll::term<'o'>, ctll::term<'w'>, ctll::term<'e'>, ctll::term<'r'>, class_named_lower, ctll::term<':'>, ctll::term<']'>>; 1272  static constexpr auto rule(i, ctll::term<'s'>) -> ctll::push<ctll::anything, ctll::term<'p'>, ctll::term<'a'>, ctll::term<'c'>, ctll::term<'e'>, class_named_space, ctll::term<':'>, ctll::term<']'>>; 1273  static constexpr auto rule(i, ctll::term<'u'>) -> ctll::push<ctll::anything, ctll::term<'p'>, ctll::term<'p'>, ctll::term<'e'>, ctll::term<'r'>, class_named_upper, ctll::term<':'>, ctll::term<']'>>; 1274  static constexpr auto rule(i, ctll::term<'g'>) -> ctll::push<ctll::anything, ctll::term<'r'>, ctll::term<'a'>, ctll::term<'p'>, ctll::term<'h'>, class_named_graph, ctll::term<':'>, ctll::term<']'>>; 1275  static constexpr auto rule(i, ctll::term<'a'>) -> ctll::push<ctll::anything, g, ctll::term<':'>, ctll::term<']'>>; 1276  static constexpr auto rule(i, ctll::term<'p'>) -> ctll::push<ctll::anything, h, ctll::term<':'>, ctll::term<']'>>; 1278  static constexpr auto rule(j, ctll::term<'\\'>) -> ctll::push<ctll::anything, backslash_range, make_range>; 1279  static constexpr auto rule(j, ctll::set<'!','$','\x28','\x29','*','+',',','.','/',':','<','=','>','?','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','\"','^','0','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','\x7B','|','\x7D','1','2','3','4','5','6','7','8','9'>) -> ctll::push<ctll::anything, push_character, make_range>; 1280  static constexpr auto rule(j, _others) -> ctll::push<ctll::anything, push_character, make_range>; 1281  static constexpr auto rule(j, ctll::set<'-','[',']'>) -> ctll::reject; 1283  static constexpr auto rule(k, ctll::term<'\x7B'>) -> ctll::push<create_hexdec, ctll::anything, ctll::set<'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','a','b','c','d','e','f'>, push_hexdec, hexdec_repeat, ctll::term<'\x7D'>, finish_hexdec>; 1284  static constexpr auto rule(k, ctll::set<'0','A','B','C','D','E','F','a','b','c','d','e','f','1','2','3','4','5','6','7','8','9'>) -> ctll::push<create_hexdec, ctll::anything, push_hexdec, ctll::set<'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','a','b','c','d','e','f'>, push_hexdec, ctll::set<'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','a','b','c','d','e','f'>, push_hexdec, ctll::set<'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','a','b','c','d','e','f'>, push_hexdec, finish_hexdec>; 1286  static constexpr auto rule(l, ctll::term<'\x7B'>) -> ctll::push<create_hexdec, ctll::anything, ctll::set<'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','a','b','c','d','e','f'>, push_hexdec, hexdec_repeat, ctll::term<'\x7D'>, finish_hexdec>; 1287  static constexpr auto rule(l, ctll::set<'0','A','B','C','D','E','F','a','b','c','d','e','f','1','2','3','4','5','6','7','8','9'>) -> ctll::push<create_hexdec, ctll::anything, push_hexdec, ctll::set<'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','a','b','c','d','e','f'>, push_hexdec, finish_hexdec>; 1289  static constexpr auto rule(m, ctll::set<'0','1','2','3','4','5','6','7','8','9'>) -> ctll::push<ctll::anything, create_number, number2, ctll::term<'\x7D'>, make_back_reference>; 1290  static constexpr auto rule(m, ctll::term<'-'>) -> ctll::push<ctll::anything, number, ctll::term<'\x7D'>, make_relative_back_reference>; 1291  static constexpr auto rule(m, ctll::set<'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'>) -> ctll::push<ctll::anything, push_name, block_name2, ctll::term<'\x7D'>, make_back_reference>; 1293  static constexpr auto rule(mod, ctll::set<'!','$','\x28','\x29',',','-','.','/','0',':','<','=','>','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','[','\\','\"',']','^','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','|','1','2','3','4','5','6','7','8','9'>) -> ctll::epsilon; 1294  static constexpr auto rule(mod, ctll::epsilon) -> ctll::epsilon; 1295  static constexpr auto rule(mod, _others) -> ctll::epsilon; 1296  static constexpr auto rule(mod, ctll::term<'?'>) -> ctll::push<ctll::anything, make_lazy>; 1297  static constexpr auto rule(mod, ctll::term<'+'>) -> ctll::push<ctll::anything, make_possessive>; 1298  static constexpr auto rule(mod, ctll::set<'*','\x7B','\x7D'>) -> ctll::reject; 1300  static constexpr auto rule(mode_switch2, ctll::term<'i'>) -> ctll::push<ctll::anything, mode_case_insensitive, mode_switch2>; 1301  static constexpr auto rule(mode_switch2, ctll::term<'c'>) -> ctll::push<ctll::anything, mode_case_sensitive, mode_switch2>; 1302  static constexpr auto rule(mode_switch2, ctll::term<'m'>) -> ctll::push<ctll::anything, mode_multiline, mode_switch2>; 1303  static constexpr auto rule(mode_switch2, ctll::term<'s'>) -> ctll::push<ctll::anything, mode_singleline, mode_switch2>; 1304  static constexpr auto rule(mode_switch2, ctll::term<'\x29'>) -> ctll::push<ctll::anything>; 1306  static constexpr auto rule(n, ctll::set<'0','1','2','3','4','5','6','7','8','9'>) -> ctll::push<ctll::anything, create_number, number2, repeat_ab, ctll::term<'\x7D'>, mod>; 1307  static constexpr auto rule(n, ctll::term<'\x7D'>) -> ctll::push<repeat_at_least, ctll::anything, mod>; 1309  static constexpr auto rule(number2, ctll::set<',','\x7D'>) -> ctll::epsilon; 1310  static constexpr auto rule(number2, ctll::set<'0','1','2','3','4','5','6','7','8','9'>) -> ctll::push<ctll::anything, push_number, number2>; 1312  static constexpr auto rule(number, ctll::set<'0','1','2','3','4','5','6','7','8','9'>) -> ctll::push<ctll::anything, create_number, number2>; 1314  static constexpr auto rule(o, ctll::set<'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'>) -> ctll::push<ctll::anything, push_name, block_name2, ctll::term<'>'>, content_in_capture, make_capture_with_name, ctll::term<'\x29'>>; 1315  static constexpr auto rule(o, ctll::term<'!'>) -> ctll::push<ctll::anything, reset_capture, start_lookbehind_negative, content_in_capture, look_finish, ctll::term<'\x29'>>; 1316  static constexpr auto rule(o, ctll::term<'='>) -> ctll::push<ctll::anything, reset_capture, start_lookbehind_positive, content_in_capture, look_finish, ctll::term<'\x29'>>; 1318  static constexpr auto rule(p, ctll::term<'p'>) -> ctll::push<ctll::anything, ctll::term<'h'>, ctll::term<'a'>, class_named_alpha>; 1319  static constexpr auto rule(p, ctll::term<'n'>) -> ctll::push<ctll::anything, ctll::term<'u'>, ctll::term<'m'>, class_named_alnum>; 1321  static constexpr auto rule(property_name2, ctll::term<'\x7D'>) -> ctll::epsilon; 1322  static constexpr auto rule(property_name2, ctll::term<'='>) -> ctll::push<ctll::anything, property_value>; 1323  static constexpr auto rule(property_name2, ctll::set<'0','.','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9'>) -> ctll::push<ctll::anything, push_property_name, property_name2>; 1325  static constexpr auto rule(property_name, ctll::set<'0','.','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9'>) -> ctll::push<ctll::anything, push_property_name, property_name2>; 1327  static constexpr auto rule(property_value2, ctll::term<'\x7D'>) -> ctll::epsilon; 1328  static constexpr auto rule(property_value2, ctll::set<'0','.','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9'>) -> ctll::push<ctll::anything, push_property_value, property_value2>; 1330  static constexpr auto rule(property_value, ctll::set<'0','.','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9'>) -> ctll::push<ctll::anything, push_property_value, property_value2>; 1332  static constexpr auto rule(range, ctll::set<'!','$','\x28','\x29','*','+',',','.','/','0',':','<','=','>','?','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','[','\\','\"',']','^','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','\x7B','|','\x7D','1','2','3','4','5','6','7','8','9'>) -> ctll::epsilon; 1333  static constexpr auto rule(range, ctll::epsilon) -> ctll::epsilon; 1334  static constexpr auto rule(range, _others) -> ctll::epsilon; 1335  static constexpr auto rule(range, ctll::term<'-'>) -> ctll::push<ctll::anything, j>; 1337  static constexpr auto rule(repeat, ctll::set<'!','$','\x28','\x29',',','-','.','/','0',':','<','=','>','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','[','\\','\"',']','^','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','|','1','2','3','4','5','6','7','8','9'>) -> ctll::epsilon; 1338  static constexpr auto rule(repeat, ctll::epsilon) -> ctll::epsilon; 1339  static constexpr auto rule(repeat, _others) -> ctll::epsilon; 1340  static constexpr auto rule(repeat, ctll::term<'?'>) -> ctll::push<ctll::anything, make_optional, mod>; 1341  static constexpr auto rule(repeat, ctll::term<'\x7B'>) -> ctll::push<ctll::anything, number, b>; 1342  static constexpr auto rule(repeat, ctll::term<'+'>) -> ctll::push<ctll::anything, repeat_plus, mod>; 1343  static constexpr auto rule(repeat, ctll::term<'*'>) -> ctll::push<ctll::anything, repeat_star, mod>; 1344  static constexpr auto rule(repeat, ctll::term<'\x7D'>) -> ctll::reject; 1346  static constexpr auto rule(set2a, ctll::term<']'>) -> ctll::epsilon; 1347  static constexpr auto rule(set2a, ctll::term<'['>) -> ctll::push<ctll::anything, ctll::term<':'>, i, range, set_start, set2b>; 1348  static constexpr auto rule(set2a, ctll::term<'\\'>) -> ctll::push<ctll::anything, f, set_start, set2b>; 1349  static constexpr auto rule(set2a, ctll::set<'!','$','\x28','\x29','*','+',',','.','/',':','<','=','>','?','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','\"','^','0','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','\x7B','|','\x7D','1','2','3','4','5','6','7','8','9'>) -> ctll::push<ctll::anything, push_character, range, set_start, set2b>; 1350  static constexpr auto rule(set2a, _others) -> ctll::push<ctll::anything, push_character, range, set_start, set2b>; 1351  static constexpr auto rule(set2a, ctll::term<'-'>) -> ctll::reject; 1353  static constexpr auto rule(set2b, ctll::term<']'>) -> ctll::epsilon; 1354  static constexpr auto rule(set2b, ctll::term<'['>) -> ctll::push<ctll::anything, ctll::term<':'>, i, range, set_combine, set2b>; 1355  static constexpr auto rule(set2b, ctll::term<'\\'>) -> ctll::push<ctll::anything, f, set_combine, set2b>; 1356  static constexpr auto rule(set2b, ctll::set<'!','$','\x28','\x29','*','+',',','.','/',':','<','=','>','?','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','\"','^','0','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','\x7B','|','\x7D','1','2','3','4','5','6','7','8','9'>) -> ctll::push<ctll::anything, push_character, range, set_combine, set2b>; 1357  static constexpr auto rule(set2b, _others) -> ctll::push<ctll::anything, push_character, range, set_combine, set2b>; 1358  static constexpr auto rule(set2b, ctll::term<'-'>) -> ctll::reject; 1360  static constexpr auto rule(string2, ctll::set<'\x29','|'>) -> ctll::epsilon; 1361  static constexpr auto rule(string2, ctll::epsilon) -> ctll::epsilon; 1362  static constexpr auto rule(string2, ctll::term<'\\'>) -> ctll::push<ctll::anything, backslash, repeat, string2, make_sequence>; 1363  static constexpr auto rule(string2, ctll::term<'['>) -> ctll::push<ctll::anything, c, repeat, string2, make_sequence>; 1364  static constexpr auto rule(string2, ctll::term<'\x28'>) -> ctll::push<ctll::anything, prepare_capture, block, repeat, string2, make_sequence>; 1365  static constexpr auto rule(string2, ctll::term<'^'>) -> ctll::push<ctll::anything, push_assert_begin, repeat, string2, make_sequence>; 1366  static constexpr auto rule(string2, ctll::term<'$'>) -> ctll::push<ctll::anything, push_assert_end, repeat, string2, make_sequence>; 1367  static constexpr auto rule(string2, ctll::set<'!',',','/',':','<','0','-','=','>','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','\"',']','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9'>) -> ctll::push<ctll::anything, push_character, repeat, string2, make_sequence>; 1368  static constexpr auto rule(string2, _others) -> ctll::push<ctll::anything, push_character, repeat, string2, make_sequence>; 1369  static constexpr auto rule(string2, ctll::term<'.'>) -> ctll::push<ctll::anything, push_character_anything, repeat, string2, make_sequence>; 1370  static constexpr auto rule(string2, ctll::set<'*','+','?','\x7B','\x7D'>) -> ctll::reject; 1376 #endif //CTRE__PCRE__HPP 1378 #ifndef CTRE__ROTATE__HPP 1379 #define CTRE__ROTATE__HPP 1381 #ifndef CTRE__ATOMS__HPP 1382 #define CTRE__ATOMS__HPP 1384 #ifndef CTRE__ATOMS_CHARACTERS__HPP 1385 #define CTRE__ATOMS_CHARACTERS__HPP 1387 #ifndef CTRE__UTILITY__HPP 1388 #define CTRE__UTILITY__HPP 1390 #define CTRE_CNTTP_COMPILER_CHECK CTLL_CNTTP_COMPILER_CHECK 1393 #if __has_cpp_attribute(likely) 1394 #define CTRE_LIKELY [[likely]] 1399 #if __has_cpp_attribute(unlikely) 1400 #define CTRE_UNLIKELY [[unlikely]] 1402 #define CTRE_UNLIKELY 1406 #define CTRE_UNLIKELY 1410 #define CTRE_FORCE_INLINE __forceinline 1411 #if _MSC_VER >= 1930 1412 #define CTRE_FLATTEN [[msvc::flatten]] 1414 #define CTRE_FLATTEN 1417 #define CTRE_FORCE_INLINE inline __attribute__((always_inline)) 1418 #define CTRE_FLATTEN __attribute__((flatten)) 1423 #ifndef CTRE_V2__CTRE__FLAGS_AND_MODES__HPP 1424 #define CTRE_V2__CTRE__FLAGS_AND_MODES__HPP 1428 struct singleline { }; 1429 struct multiline { }; 1431 struct case_sensitive { }; 1432 struct case_insensitive { }; 1434 using ci = case_insensitive; 1435 using cs = case_sensitive; 1437 template <typename... Flags> struct flag_list { }; 1440  bool block_empty_match = false; 1441  bool multiline = false; 1442  bool case_insensitive = false; 1444  constexpr flags() = default; 1445  constexpr flags(const flags &) = default; 1446  constexpr flags(flags &&) = default; 1448  constexpr CTRE_FORCE_INLINE flags(ctre::singleline v) noexcept { set_flag(v); } 1449  constexpr CTRE_FORCE_INLINE flags(ctre::multiline v) noexcept { set_flag(v); } 1450  constexpr CTRE_FORCE_INLINE flags(ctre::case_sensitive v) noexcept { set_flag(v); } 1451  constexpr CTRE_FORCE_INLINE flags(ctre::case_insensitive v) noexcept { set_flag(v); } 1454  template <typename... Args> constexpr CTRE_FORCE_INLINE flags(ctll::list<Args...>) noexcept { 1455  (this->set_flag(Args{}), ...); 1458  constexpr friend CTRE_FORCE_INLINE auto operator+(flags f, pcre::mode_case_insensitive) noexcept { 1459  f.case_insensitive = true; 1463  constexpr friend CTRE_FORCE_INLINE auto operator+(flags f, pcre::mode_case_sensitive) noexcept { 1464  f.case_insensitive = false; 1468  constexpr friend CTRE_FORCE_INLINE auto operator+(flags f, pcre::mode_singleline) noexcept { 1469  f.multiline = false; 1473  constexpr friend CTRE_FORCE_INLINE auto operator+(flags f, pcre::mode_multiline) noexcept { 1478  constexpr CTRE_FORCE_INLINE void set_flag(ctre::singleline) noexcept { 1482  constexpr CTRE_FORCE_INLINE void set_flag(ctre::multiline) noexcept { 1486  constexpr CTRE_FORCE_INLINE void set_flag(ctre::case_insensitive) noexcept { 1487  case_insensitive = true; 1490  constexpr CTRE_FORCE_INLINE void set_flag(ctre::case_sensitive) noexcept { 1491  case_insensitive = false; 1495 constexpr CTRE_FORCE_INLINE auto not_empty_match(flags f) { 1496  f.block_empty_match = true; 1500 constexpr CTRE_FORCE_INLINE auto consumed_something(flags f, bool condition = true) { 1501  if (condition) f.block_empty_match = false; 1505 constexpr CTRE_FORCE_INLINE bool cannot_be_empty_match(flags f) { 1506  return f.block_empty_match; 1509 constexpr CTRE_FORCE_INLINE bool multiline_mode(flags f) { 1513 constexpr CTRE_FORCE_INLINE bool is_case_insensitive(flags f) { 1514  return f.case_insensitive; 1524 // sfinae check for types here 1526 template <typename T> class MatchesCharacter { 1527  template <typename Y, typename CharT> static auto test(CharT c) -> decltype(Y::match_char(c, std::declval<const flags &>()), std::true_type()); 1528  template <typename> static auto test(...) -> std::false_type; 1530  template <typename CharT> static inline constexpr bool value = decltype(test<T>(std::declval<CharT>()))(); 1533 template <typename T> constexpr CTRE_FORCE_INLINE bool is_ascii_alpha(T v) { 1534  return ((v >= static_cast<T>('a') && v <= static_cast<T>('z')) || (v >= static_cast<T>('A') && v <= static_cast<T>('Z'))); 1537 template <typename T> constexpr CTRE_FORCE_INLINE bool is_ascii_alpha_lowercase(T v) { 1538  return (v >= static_cast<T>('a')) && (v <= static_cast<T>('z')); 1541 template <typename T> constexpr CTRE_FORCE_INLINE bool is_ascii_alpha_uppercase(T v) { 1542  return (v >= static_cast<T>('A')) && v <= (static_cast<T>('Z')); 1545 template <auto V> struct character { 1546  template <typename CharT> CTRE_FORCE_INLINE static constexpr bool match_char(CharT value, const flags & f) noexcept { 1547  if constexpr (is_ascii_alpha(V)) { 1548  if (is_case_insensitive(f)) { 1549  if (value == (V ^ static_cast<decltype(V)>(0x20))) { 1558 template <typename... Content> struct negative_set { 1559  template <typename CharT> CTRE_FORCE_INLINE static constexpr bool match_char(CharT value, const flags & f) noexcept { 1560  return !(Content::match_char(value, f) || ... || false); 1564 template <typename... Content> struct set { 1565  template <typename CharT> CTRE_FORCE_INLINE static constexpr bool match_char(CharT value, const flags & f) noexcept { 1566  return (Content::match_char(value, f) || ... || false); 1570 template <auto... Cs> struct enumeration : set<character<Cs>...> { }; 1572 template <typename... Content> struct negate { 1573  template <typename CharT> CTRE_FORCE_INLINE static constexpr bool match_char(CharT value, const flags & f) noexcept { 1574  return !(Content::match_char(value, f) || ... || false); 1578 template <auto A, auto B> struct char_range { 1579  template <typename CharT> CTRE_FORCE_INLINE static constexpr bool match_char(CharT value, const flags & f) noexcept { 1580  if constexpr (is_ascii_alpha_lowercase(A) && is_ascii_alpha_lowercase(B)) { 1581  if (is_case_insensitive(f)) { 1582  if (value >= (A ^ static_cast<decltype(A)>(0x20)) && value <= (B ^ static_cast<decltype(B)>(0x20))) { 1586  } else if constexpr (is_ascii_alpha_uppercase(A) && is_ascii_alpha_uppercase(B)) { 1587  if (is_case_insensitive(f)) { 1588  if (value >= (A ^ static_cast<decltype(A)>(0x20)) && value <= (B ^ static_cast<decltype(B)>(0x20))) { 1593  return (value >= A) && (value <= B); 1596 using word_chars = set<char_range<'A','Z'>, char_range<'a','z'>, char_range<'0','9'>, character<'_'> >; 1598 using space_chars = enumeration<' ', '\t', '\n', '\v', '\f', '\r'>; 1600 using vertical_space_chars = enumeration< 1601  char{0x000A}, // Linefeed (LF) 1602  char{0x000B}, // Vertical tab (VT) 1603  char{0x000C}, // Form feed (FF) 1604  char{0x000D}, // Carriage return (CR) 1605  char32_t{0x0085}, // Next line (NEL) 1606  char32_t{0x2028}, // Line separator 1607  char32_t{0x2029} // Paragraph separator 1610 using horizontal_space_chars = enumeration< 1611  char{0x0009}, // Horizontal tab (HT) 1612  char{0x0020}, // Space 1613  char32_t{0x00A0}, // Non-break space 1614  char32_t{0x1680}, // Ogham space mark 1615  char32_t{0x180E}, // Mongolian vowel separator 1616  char32_t{0x2000}, // En quad 1617  char32_t{0x2001}, // Em quad 1618  char32_t{0x2002}, // En space 1619  char32_t{0x2003}, // Em space 1620  char32_t{0x2004}, // Three-per-em space 1621  char32_t{0x2005}, // Four-per-em space 1622  char32_t{0x2006}, // Six-per-em space 1623  char32_t{0x2007}, // Figure space 1624  char32_t{0x2008}, // Punctuation space 1625  char32_t{0x2009}, // Thin space 1626  char32_t{0x200A}, // Hair space 1627  char32_t{0x202F}, // Narrow no-break space 1628  char32_t{0x205F}, // Medium mathematical space 1629  char32_t{0x3000} // Ideographic space 1632 using alphanum_chars = set<char_range<'A','Z'>, char_range<'a','z'>, char_range<'0','9'> >; 1634 using alpha_chars = set<char_range<'A','Z'>, char_range<'a','z'> >; 1636 using xdigit_chars = set<char_range<'A','F'>, char_range<'a','f'>, char_range<'0','9'> >; 1639  = enumeration<'!', '"', '

#

', '

$

', '

%

', '

&

', '

\

''

,

'('

,

')'

,

'*'

,

'+'

,

','

,

'-'

,

1640  '.'

,

'/'

,

':'

,

';'

,

'<'

,

'='

,

'>'

,

'?'

,

'@'

,

'['

,

'\\'

,

']'

,

1641  '^'

,

'_'

,

'`'

,

'{'

,

'|'

,

'}'

,

'~'

>;

1643 using

digit_chars = char_range<'0','9'>;

1645 using

ascii_chars = char_range<'\x00','\x7F'>;

1658 struct

start_mark { };

1659 struct

end_mark { };

1660 struct

end_cycle_mark { };

1661 struct

end_lookahead_mark { };

1662 struct

end_lookbehind_mark { };

1663 template

<

size_t

Id>

struct

numeric_mark { };

1668 template

<

auto

... Str>

struct string

{ };

1669 template

<

typename

... Opts>

struct

select { };

1670 template

<

typename

... Content>

struct

sequence { };

1673 template

<

size_t a

,

size_t b

,

typename

... Content>

struct

repeat { };

1674 template

<

typename

... Content>

using plus

= repeat<1,0,Content...>;

1675 template

<

typename

... Content>

using

star = repeat<0,0,Content...>;

1677 template

<

size_t a

,

size_t b

,

typename

... Content>

struct

lazy_repeat { };

1678 template

<

typename

... Content>

using

lazy_plus = lazy_repeat<1,0,Content...>;

1679 template

<

typename

... Content>

using

lazy_star = lazy_repeat<0,0,Content...>;

1681 template

<

size_t a

,

size_t b

,

typename

... Content>

struct

possessive_repeat { };

1682 template

<

typename

... Content>

using

possessive_plus = possessive_repeat<1,0,Content...>;

1683 template

<

typename

... Content>

using

possessive_star = possessive_repeat<0,0,Content...>;

1685 template

<

typename

... Content>

using

optional = repeat<0,1,Content...>;

1686 template

<

typename

... Content>

using

lazy_optional = lazy_repeat<0,1,Content...>;

1687 template

<

typename

... Content>

using

possessive_optional = possessive_repeat<0,1,Content...>;

1689 template

<

size_t

Index,

typename

... Content>

struct

capture { };

1691 template

<

size_t

Index,

typename

Name,

typename

... Content>

struct

capture_with_name { };

1693 template

<

size_t

Index>

struct

back_reference { };

1694 template

<

typename

Name>

struct

back_reference_with_name { };

1696 template

<

typename

Type>

struct

look_start { };

1698 template

<

typename

... Content>

struct

lookahead_positive { };

1699 template

<

typename

... Content>

struct

lookahead_negative { };

1701 template

<

typename

... Content>

struct

lookbehind_positive { };

1702 template

<

typename

... Content>

struct

lookbehind_negative { };

1704 struct

atomic_start { };

1706 template

<

typename

... Content>

struct

atomic_group { };

1708 template

<

typename

... Content>

struct

boundary { };

1709 template

<

typename

... Content>

struct

not_boundary { };

1711 using

word_boundary = boundary<word_chars>;

1712 using

not_word_boundary = not_boundary<word_chars>;

1714 struct

assert_subject_begin { };

1715 struct

assert_subject_end { };

1716 struct

assert_subject_end_line{ };

1717 struct

assert_line_begin { };

1718 struct

assert_line_end { };

1720 template

<

typename

>

struct

mode_switch { };

1726 #ifndef CTRE__ATOMS_UNICODE__HPP 1727 #define CTRE__ATOMS_UNICODE__HPP 1730 #ifndef H_COR3NTIN_UNICODE_SYNOPSYS 1731 #define H_COR3NTIN_UNICODE_SYNOPSYS 1733 #include <string_view> 1737  enum class

category;

1738  enum class

property;

1739  enum class version

: unsigned char;

1743

struct script_extensions_view {

1744

constexpr script_extensions_view(char32_t);

1749

constexpr iterator(char32_t c);

1752

constexpr iterator& operator++(

int

);

1754

constexpr iterator operator++();

1765

constexpr iterator begin()

const

;

1766

constexpr sentinel end()

const

;

1772  struct

numeric_value {

1774

constexpr

double value

()

const

;

1775

constexpr

long long

numerator()

const

;

1776

constexpr

int

denominator()

const

;

1780

constexpr numeric_value() =

default

;

1781

constexpr numeric_value(

long long n

,

int16_t

d);

1785  friend

constexpr numeric_value cp_numeric_value(char32_t cp);

1788

constexpr category cp_category(char32_t cp);

1789

constexpr script cp_script(char32_t cp);

1790

constexpr script_extensions_view cp_script_extensions(char32_t cp);

1791

constexpr

version

cp_age(char32_t cp);

1792

constexpr block cp_block(char32_t cp);

1793

constexpr

bool

cp_is_valid(char32_t cp);

1794

constexpr

bool

cp_is_assigned(char32_t cp);

1795

constexpr

bool

cp_is_ascii(char32_t cp);

1796

constexpr numeric_value cp_numeric_value(char32_t cp);

1799

constexpr

bool

cp_script_is(char32_t);

1801

constexpr

bool

cp_property_is(char32_t);

1803

constexpr

bool

cp_category_is(char32_t);

1807  enum class

binary_prop;

1808

constexpr

int

propnamecomp(std::string_view sa, std::string_view sb);

1809

constexpr binary_prop binary_prop_from_string(std::string_view s);

1811  template

<binary_prop p>

1812

constexpr

bool

get_binary_prop(char32_t) =

delete

;

1814

constexpr script script_from_string(std::string_view s);

1815

constexpr block block_from_string(std::string_view s);

1816

constexpr

version

age_from_string(std::string_view

a

);

1817

constexpr category category_from_string(std::string_view

a

);

1819

constexpr

bool

is_unassigned(category cat);

1820

constexpr

bool

is_unknown(script s);

1821

constexpr

bool

is_unknown(block

b

);

1822

constexpr

bool

is_unassigned(

version

v);

1823

constexpr

bool

is_unknown(binary_prop s);

1833 template

<

auto

... Str>

struct

property_name { };

1834 template

<

auto

... Str>

struct

property_value { };

1836 template

<

size_t

Sz> constexpr std::string_view get_string_view(

const char

(&

arr

)[Sz]) noexcept {

1837  return

std::string_view(

arr

, Sz);

1842 template

<

typename

T, T Type>

struct

binary_property;

1843 template

<

typename

T, T Type, auto Value>

struct

property;

1845 template

<auto Type>

using

make_binary_property = binary_property<std::remove_const_t<decltype(

Type

)>,

Type

>;

1846 template

<auto Type, auto Value>

using

make_property =

property

<std::remove_const_t<decltype(

Type

)>,

Type

,

Value

>;

1849 template

<uni::detail::binary_prop Property>

struct

binary_property<uni::detail::binary_prop, Property> {

1850  template

<

typename

CharT>

inline static

constexpr

bool

match_char(CharT c,

const flags

&) noexcept {

1851  return

uni::detail::get_binary_prop<Property>(

static_cast<

char32_t

>

(c));

1857 enum class

property_type {

1858

script, script_extension, age, block, unknown

1863 template

<uni::script Script>

struct

binary_property<uni::script, Script> {

1864  template

<

typename

CharT>

inline static

constexpr

bool

match_char(CharT c,

const flags

&) noexcept {

1865  return

uni::cp_script(c) == Script;

1869 template

<uni::script Script>

struct

property<property_type, property_type::script_extension, Script> {

1870  template

<

typename

CharT>

inline static

constexpr

bool

match_char(CharT c,

const flags

&) noexcept {

1871  for

(uni::script sc: uni::cp_script_extensions(c)) {

1872  if

(sc == Script)

return true

;

1878 template

<uni::version Age>

struct

binary_property<uni::

version

, Age> {

1879  template

<

typename

CharT>

inline static

constexpr

bool

match_char(CharT c,

const flags

&) noexcept {

1880  return

uni::cp_age(c) <= Age;

1884 template

<uni::block Block>

struct

binary_property<uni::block,

Block

> {

1885  template

<

typename

CharT>

inline static

constexpr

bool

match_char(CharT c,

const flags

&) noexcept {

1886  return

uni::cp_block(c) ==

Block

;

1892 template

<

typename

=

void

>

1893

constexpr property_type property_type_from_name(std::string_view

str

) noexcept {

1894  using namespace

std::string_view_literals;

1895  if

(uni::detail::propnamecomp(

str

,

"script"

sv) == 0 || uni::detail::propnamecomp(

str

,

"sc"

sv) == 0) {

1896  return

property_type::script;

1897

}

else if

(uni::detail::propnamecomp(

str

,

"script_extension"

sv) == 0 || uni::detail::propnamecomp(

str

,

"scx"

sv) == 0) {

1898  return

property_type::script_extension;

1899

}

else if

(uni::detail::propnamecomp(

str

,

"age"

sv) == 0) {

1900  return

property_type::age;

1901

}

else if

(uni::detail::propnamecomp(

str

,

"block"

sv) == 0) {

1902  return

property_type::block;

1904  return

property_type::unknown;

1908 template

<property_type Property>

struct

property_type_builder {

1909  template

<

auto

...

Value

>

static

constexpr

auto

get() {

1914 template

<

auto

... Name>

struct

property_builder {

1915  static

constexpr

char

name[

sizeof

...(Name)]{

static_cast<char>

(Name)...};

1916  static

constexpr property_type

type

= property_type_from_name(get_string_view(name));

1918  using

helper = property_type_builder<type>;

1920  template

<

auto

...

Value

>

static

constexpr

auto

get() {

1921  return

helper::template get<

Value

...>();

1927 template

<>

struct

property_type_builder<property_type::script> {

1928  template

<

auto

...

Value

>

static

constexpr

auto

get() {

1929

constexpr

char value

[

sizeof

...(Value)]{

static_cast<char>

(

Value

)...};

1930

constexpr

auto

sc = uni::detail::script_from_string(get_string_view(

value

));

1931  if

constexpr (uni::detail::is_unknown(sc)) {

1934  return

make_binary_property<sc>();

1939 template

<>

struct

property_type_builder<property_type::script_extension> {

1940  template

<

auto

...

Value

>

static

constexpr

auto

get() {

1941

constexpr

char value

[

sizeof

...(Value)]{

static_cast<char>

(

Value

)...};

1942

constexpr

auto

sc = uni::detail::script_from_string(get_string_view(

value

));

1943  if

constexpr (uni::detail::is_unknown(sc)) {

1946  return

make_property<property_type::script_extension, sc>();

1951 template

<>

struct

property_type_builder<property_type::age> {

1952  template

<

auto

...

Value

>

static

constexpr

auto

get() {

1953

constexpr

char value

[

sizeof

...(Value)]{

static_cast<char>

(

Value

)...};

1954

constexpr

auto

age = uni::detail::age_from_string(get_string_view(

value

));

1955  if

constexpr (uni::detail::is_unassigned(age)) {

1958  return

make_binary_property<age>();

1963 template

<>

struct

property_type_builder<property_type::block> {

1964  template

<

auto

...

Value

>

static

constexpr

auto

get() {

1965

constexpr

char value

[

sizeof

...(Value)]{

static_cast<char>

(

Value

)...};

1966

constexpr

auto

block = uni::detail::block_from_string(get_string_view(

value

));

1967  if

constexpr (uni::detail::is_unknown(block)) {

1970  return

make_binary_property<block>();

1982 template

<

size_t

Index,

typename

... Content>

auto

convert_to_capture(

ctll::list<Content...>

) -> capture<Index, Content...>;

1983 template

<

size_t

Index,

typename

Name,

typename

... Content>

auto

convert_to_named_capture(

ctll::list<Content...>

) -> capture_with_name<Index, Name, Content...>;

1984 template

<

template

<size_t, size_t,

typename

...>

typename

CycleType,

size_t A

,

size_t B

,

typename

... Content>

auto

convert_to_repeat(

ctll::list<Content...>

) -> CycleType<

A

,

B

, Content...>;

1985 template

<

template

<

typename

...>

typename

ListType,

typename

... Content>

auto

convert_to_basic_list(

ctll::list<Content...>

) -> ListType<Content...>;

1987 template

<auto V>

struct

rotate_value {

1988  template

<

auto

... Vs>

friend

constexpr

auto operator+

(string<Vs...>, rotate_value<V>) noexcept ->

string

<V, Vs...> {

return

{}; }

1991 struct

rotate_for_lookbehind {

1994 template

<auto V>

static auto rotate

(character<V>) -> character<V>;

1995 template

<

typename

... Content>

static auto rotate

(negative_set<Content...>) -> negative_set<Content...>;

1997 template

<

auto

... Cs>

static auto rotate

(enumeration<Cs...>) -> enumeration<Cs...>;

1998 template

<

typename

... Content>

static auto rotate

(negate<Content...>) -> negate<Content...>;

1999 template

<auto A, auto B>

static auto rotate

(char_range<A,B>) -> char_range<A,B>;

2002 template

<

auto

... Str>

static auto rotate

(property_name<Str...>) -> property_name<Str...>;

2003 template

<

auto

... Str>

static auto rotate

(property_value<Str...>) -> property_value<Str...>;

2004 template

<

typename

T, T Type>

static auto rotate

(binary_property<T, Type>) -> binary_property<T, Type>;

2005 template

<

typename

T, T Type, auto Value>

static auto rotate

(property<T, Type, Value>) -> property<T, Type, Value>;

2008 static auto rotate

(accept) -> accept;

2009 static auto rotate

(reject) -> reject;

2010 static auto rotate

(start_mark) -> start_mark;

2011 static auto rotate

(end_mark) -> end_mark;

2012 static auto rotate

(end_cycle_mark) -> end_cycle_mark;

2013 static auto rotate

(end_lookahead_mark) -> end_lookahead_mark;

2014 static auto rotate

(end_lookbehind_mark) -> end_lookbehind_mark;

2015 template

<

size_t

Id>

static auto rotate

(numeric_mark<Id>) -> numeric_mark<Id>;

2016 static auto rotate

(any) -> any;

2018 template

<

typename

... Content>

static auto rotate

(select<Content...>) -> select<Content...>;

2021 template

<

size_t a

,

size_t b

,

typename

... Content>

static auto rotate

(repeat<a,b,Content...>) -> decltype(ctre::convert_to_repeat<repeat, a, b>(

ctll::rotate

(

ctll::list

<decltype(

rotate

(Content{}))...>{})));

2022 template

<

size_t a

,

size_t b

,

typename

... Content>

static auto rotate

(lazy_repeat<a,b,Content...>) -> decltype(ctre::convert_to_repeat<lazy_repeat, a, b>(

ctll::rotate

(

ctll::list

<decltype(

rotate

(Content{}))...>{})));

2023 template

<

size_t a

,

size_t b

,

typename

... Content>

static auto rotate

(possessive_repeat<a,b,Content...>) -> decltype(ctre::convert_to_repeat<possessive_repeat, a, b>(

ctll::rotate

(

ctll::list

<decltype(

rotate

(Content{}))...>{})));

2025 template

<

size_t

Index,

typename

... Content>

static auto rotate

(capture<Index, Content...>) {

2029 template

<

size_t

Index,

typename

Name,

typename

... Content>

static auto rotate

(capture_with_name<Index, Name, Content...>) {

2033 template

<

size_t

Index>

static auto rotate

(back_reference<Index>) -> back_reference<Index>;

2034 template

<

typename

Name>

static auto rotate

(back_reference_with_name<Name>) -> back_reference_with_name<Name>;

2036 template

<

typename

... Content>

static auto rotate

(look_start<Content...>) -> look_start<Content...>;

2038 template

<

auto

... Str>

static auto rotate

(string<Str...>) -> decltype((string<>{} + ... + rotate_value<Str>{}));

2040 template

<

typename

... Content>

static auto rotate

(sequence<Content...>) {

2045 template

<

typename

... Content>

static auto rotate

(lookahead_positive<Content...>) -> lookahead_positive<Content...>;

2046 template

<

typename

... Content>

static auto rotate

(lookahead_negative<Content...>) -> lookahead_negative<Content...>;

2047 template

<

typename

... Content>

static auto rotate

(lookbehind_positive<Content...>) -> lookbehind_positive<Content...>;

2048 template

<

typename

... Content>

static auto rotate

(lookbehind_negative<Content...>) -> lookbehind_negative<Content...>;

2050 static auto rotate

(atomic_start) -> atomic_start;

2052 template

<

typename

... Content>

static auto rotate

(atomic_group<Content...>) {

2056 template

<

typename

... Content>

static auto rotate

(boundary<Content...>) -> boundary<Content...>;

2057 template

<

typename

... Content>

static auto rotate

(not_boundary<Content...>) -> not_boundary<Content...>;

2059 static auto rotate

(assert_subject_begin) -> assert_subject_begin;

2060 static auto rotate

(assert_subject_end) -> assert_subject_end;

2061 static auto rotate

(assert_subject_end_line) -> assert_subject_end_line;

2062 static auto rotate

(assert_line_begin) -> assert_line_begin;

2063 static auto rotate

(assert_line_end) -> assert_line_end;

2071 #ifndef CTRE__ID__HPP 2072 #define CTRE__ID__HPP 2074 #include <type_traits> 2078 template

<

auto

... Name>

struct

id {

2081  friend

constexpr

auto operator==

(id<Name...>, id<Name...>) noexcept -> std::true_type {

return

{}; }

2083  template

<

auto

... Other>

friend

constexpr

auto operator==

(id<Name...>, id<Other...>) noexcept -> std::false_type {

return

{}; }

2085  template

<

typename

T>

friend

constexpr

auto operator==

(id<Name...>,

T

) noexcept -> std::false_type {

return

{}; }

2087  template

<

typename

T>

friend

constexpr

auto operator==

(

T

, id<Name...>) noexcept -> std::false_type {

return

{}; }

2099 template

<

size_t

Counter>

struct

pcre_parameters {

2100  static

constexpr

size_t

current_counter = Counter;

2103 template

<

typename

Stack = ctll::list<>,

typename

Parameters = pcre_parameters<0>,

typename

Mode = ctll::list<>>

struct

pcre_context {

2104  using

stack_type = Stack;

2105  using

parameters_type = Parameters;

2106  using

mode_list = Mode;

2107  static

constexpr

inline auto

stack = stack_type();

2108  static

constexpr

inline auto

parameters = parameters_type();

2109  static

constexpr

inline auto mode

= mode_list();

2110

constexpr pcre_context() noexcept { }

2111

constexpr pcre_context(Stack, Parameters) noexcept { }

2112

constexpr pcre_context(Stack, Parameters, Mode) noexcept { }

2115 template

<

typename

... Content,

typename

Parameters> pcre_context(

ctll::list<Content...>

, Parameters) -> pcre_context<

ctll::list

<Content...>, Parameters>;

2117 template

<

size_t

Value>

struct number

{ };

2119 template

<

size_t

Id>

struct

capture_id { };

2121 struct

pcre_actions {

2123 #ifndef CTRE__ACTIONS__ASSERTS__HPP 2124 #define CTRE__ACTIONS__ASSERTS__HPP 2127 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_assert_begin,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2132 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_assert_end,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2137 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_assert_subject_begin,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2142 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_assert_subject_end,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2147 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_assert_subject_end_with_lineend,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2153 #ifndef CTRE__ACTIONS__ATOMIC_GROUP__HPP 2154 #define CTRE__ACTIONS__ATOMIC_GROUP__HPP 2157 template

<

auto

V,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::start_atomic,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, pcre_parameters<Counter>>) {

2158  return

pcre_context{

ctll::list

<atomic_start, Ts...>(), pcre_parameters<Counter>()};

2167 template

<

auto

V,

typename

... Atomic,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::make_atomic,

ctll::term<V>

, pcre_context<

ctll::list

<sequence<Atomic...>, atomic_start, Ts...>, pcre_parameters<Counter>>) {

2168  return

pcre_context{

ctll::list

<atomic_group<Atomic...>, Ts...>(), pcre_parameters<Counter>()};

2173 #ifndef CTRE__ACTIONS__BACKREFERENCE__HPP 2174 #define CTRE__ACTIONS__BACKREFERENCE__HPP 2177 template

<

auto

... Str,

auto

V,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::make_back_reference,

ctll::term<V>

, pcre_context<

ctll::list

<id<Str...>, Ts...>, pcre_parameters<Counter>>) {

2182 template

<

auto

V,

size_t

Id,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::make_back_reference,

ctll::term<V>

, pcre_context<

ctll::list

<number<Id>, Ts...>, pcre_parameters<Counter>>) {

2184  if

constexpr (Counter < Id) {

2192 template

<

auto

V,

size_t

Id,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::make_relative_back_reference,

ctll::term<V>

, [[maybe_unused]] pcre_context<

ctll::list

<number<Id>, Ts...>, pcre_parameters<Counter>>) {

2194  if

constexpr (Counter < Id) {

2197

constexpr

size_t

absolute_id = (Counter + 1) - Id;

2204 #ifndef CTRE__ACTIONS__BOUNDARIES__HPP 2205 #define CTRE__ACTIONS__BOUNDARIES__HPP 2208 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_word_boundary,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2213 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_not_word_boundary,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2219 #ifndef CTRE__ACTIONS__CAPTURE__HPP 2220 #define CTRE__ACTIONS__CAPTURE__HPP 2223 template

<

auto

V,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::prepare_capture,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, pcre_parameters<Counter>>) {

2228 template

<

auto

V,

typename

... Ts,

size_t

Id,

size_t

Counter>

static

constexpr

auto

apply(pcre::reset_capture,

ctll::term<V>

, pcre_context<

ctll::list

<capture_id<Id>, Ts...>, pcre_parameters<Counter>>) {

2229  return

pcre_context{

ctll::list

<Ts...>(), pcre_parameters<Counter-1>()};

2233 template

<

auto

V,

typename A

,

size_t

Id,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::make_capture,

ctll::term<V>

, pcre_context<

ctll::list

<

A

, capture_id<Id>, Ts...>, pcre_parameters<Counter>>) {

2237 template

<

auto

V,

typename

... Content,

size_t

Id,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::make_capture,

ctll::term<V>

, pcre_context<

ctll::list

<sequence<Content...>, capture_id<Id>, Ts...>, pcre_parameters<Counter>>) {

2245 template

<

auto

... Str,

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_name,

ctll::term<V>

, pcre_context<

ctll::list

<id<Str...>, Ts...>, Parameters>

subject

) {

2249 template

<

auto

... Str,

auto

V,

typename A

,

size_t

Id,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::make_capture_with_name,

ctll::term<V>

, pcre_context<

ctll::list

<

A

, id<Str...>, capture_id<Id>, Ts...>, pcre_parameters<Counter>>) {

2253 template

<

auto

... Str,

auto

V,

typename

... Content,

size_t

Id,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::make_capture_with_name,

ctll::term<V>

, pcre_context<

ctll::list

<sequence<Content...>, id<Str...>, capture_id<Id>, Ts...>, pcre_parameters<Counter>>) {

2259 #ifndef CTRE__ACTIONS__CHARACTERS__HPP 2260 #define CTRE__ACTIONS__CHARACTERS__HPP 2263 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_character,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2267 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_character_anything,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2271 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_character_alarm,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2275 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_character_escape,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2279 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_character_formfeed,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2283 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_character_newline,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2287 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_character_null,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2291 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_character_return_carriage,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2295 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_character_tab,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2301 #ifndef CTRE__ACTIONS__CLASS__HPP 2302 #define CTRE__ACTIONS__CLASS__HPP 2309 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_nondigit,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2317 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_nonspace,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2322 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_horizontal_space,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2326 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_non_horizontal_space,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2330 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_vertical_space,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2334 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_non_vertical_space,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2347 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_nonnewline,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2353 #ifndef CTRE__ACTIONS__FUSION__HPP 2354 #define CTRE__ACTIONS__FUSION__HPP 2356 static

constexpr

size_t

combine_max_repeat_length(

size_t A

,

size_t B

) {

2357  if

(

A

&&

B

)

return A

+

B

;

2361 template

<

size_t

MinA,

size_t

MaxA,

size_t

MinB,

size_t

MaxB,

typename

... Content>

static

constexpr

auto

combine_repeat(repeat<MinA, MaxA, Content...>, repeat<MinB, MaxB, Content...>) {

2362  return

repeat<MinA + MinB, combine_max_repeat_length(MaxA, MaxB), Content...>();

2365 template

<

size_t

MinA,

size_t

MaxA,

size_t

MinB,

size_t

MaxB,

typename

... Content>

static

constexpr

auto

combine_repeat(lazy_repeat<MinA, MaxA, Content...>, lazy_repeat<MinB, MaxB, Content...>) {

2366  return

lazy_repeat<MinA + MinB, combine_max_repeat_length(MaxA, MaxB), Content...>();

2369 template

<

size_t

MinA,

size_t

MaxA,

size_t

MinB,

size_t

MaxB,

typename

... Content>

static

constexpr

auto

combine_repeat(possessive_repeat<MinA, MaxA, Content...>, possessive_repeat<MinB, MaxB, Content...>) {

2370

[[maybe_unused]] constexpr

bool

first_is_unbounded = (MaxA == 0);

2371

[[maybe_unused]] constexpr

bool

second_is_nonempty = (MinB > 0);

2372

[[maybe_unused]] constexpr

bool

second_can_be_empty = (MinB == 0);

2374  if

constexpr (first_is_unbounded && second_is_nonempty) {

2376  return

sequence<reject, Content...>();

2377

}

else if

constexpr (first_is_unbounded) {

2378  return

possessive_repeat<MinA, MaxA, Content...>();

2379

}

else if

constexpr (second_can_be_empty) {

2380  return

possessive_repeat<MinA, combine_max_repeat_length(MaxA, MaxB), Content...>();

2382  return

possessive_repeat<MaxA + MinB, combine_max_repeat_length(MaxA, MaxB), Content...>();

2387 template

<

auto

V,

size_t

MinA,

size_t

MaxA,

size_t

MinB,

size_t

MaxB,

typename

... Content,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_sequence,

ctll::term<V>

, pcre_context<

ctll::list

<repeat<MinB, MaxB, Content...>, repeat<MinA, MaxA, Content...>, Ts...>, Parameters>

subject

) {

2392 template

<

auto

V,

size_t

MinA,

size_t

MaxA,

size_t

MinB,

size_t

MaxB,

typename

... Content,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_sequence,

ctll::term<V>

, pcre_context<

ctll::list

<lazy_repeat<MinB, MaxB, Content...>, lazy_repeat<MinA, MaxA, Content...>, Ts...>, Parameters>

subject

) {

2397 template

<

auto

V,

size_t

MinA,

size_t

MaxA,

size_t

MinB,

size_t

MaxB,

typename

... Content,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_sequence,

ctll::term<V>

, pcre_context<

ctll::list

<possessive_repeat<MinB, MaxB, Content...>, possessive_repeat<MinA, MaxA, Content...>, Ts...>, Parameters>

subject

) {

2402 template

<

auto

V,

size_t

MinA,

size_t

MaxA,

size_t

MinB,

size_t

MaxB,

typename

... Content,

typename

... As,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_sequence,

ctll::term<V>

, pcre_context<

ctll::list

<sequence<repeat<MinB, MaxB, Content...>, As...>,repeat<MinA, MaxA, Content...>,Ts...>, Parameters>

subject

) {

2403  using result

= decltype(combine_repeat(repeat<MinB, MaxB, Content...>(), repeat<MinA, MaxA, Content...>()));

2409 template

<

auto

V,

size_t

MinA,

size_t

MaxA,

size_t

MinB,

size_t

MaxB,

typename

... Content,

typename

... As,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_sequence,

ctll::term<V>

, pcre_context<

ctll::list

<sequence<lazy_repeat<MinB, MaxB, Content...>, As...>,lazy_repeat<MinA, MaxA, Content...>,Ts...>, Parameters>

subject

) {

2410  using result

= decltype(combine_repeat(lazy_repeat<MinB, MaxB, Content...>(), lazy_repeat<MinA, MaxA, Content...>()));

2416 template

<

auto

V,

size_t

MinA,

size_t

MaxA,

size_t

MinB,

size_t

MaxB,

typename

... Content,

typename

... As,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_sequence,

ctll::term<V>

, pcre_context<

ctll::list

<sequence<possessive_repeat<MinB, MaxB, Content...>, As...>,possessive_repeat<MinA, MaxA, Content...>,Ts...>, Parameters>

subject

) {

2417  using result

= decltype(combine_repeat(possessive_repeat<MinB, MaxB, Content...>(), possessive_repeat<MinA, MaxA, Content...>()));

2424 #ifndef CTRE__ACTIONS__HEXDEC__HPP 2425 #define CTRE__ACTIONS__HEXDEC__HPP 2432 template

<

auto

V,

size_t N

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_hexdec,

ctll::term<V>

, pcre_context<

ctll::list

<number<N>, Ts...>, Parameters>

subject

) {

2433

constexpr

auto

previous =

N

<< 4ull;

2434  if

constexpr (V >=

'a'

&& V <=

'f'

) {

2436

}

else if

constexpr (V >=

'A'

&& V <=

'F'

) {

2443 template

<

auto

V,

size_t N

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::finish_hexdec,

ctll::term<V>

, pcre_context<

ctll::list

<number<N>, Ts...>, Parameters>

subject

) {

2445  if

constexpr (

N

<= max_char) {

2454 #ifndef CTRE__ACTIONS__LOOKAHEAD__HPP 2455 #define CTRE__ACTIONS__LOOKAHEAD__HPP 2458 template

<

auto

V,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::start_lookahead_positive,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, pcre_parameters<Counter>>) {

2463 template

<

auto

V,

typename

Look,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::look_finish,

ctll::term<V>

, pcre_context<

ctll::list

<Look, look_start<lookahead_positive<>>, Ts...>, pcre_parameters<Counter>>) {

2468 template

<

auto

V,

typename

... Look,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::look_finish,

ctll::term<V>

, pcre_context<

ctll::list

<ctre::sequence<Look...>, look_start<lookahead_positive<>>, Ts...>, pcre_parameters<Counter>>) {

2469  return

pcre_context{

ctll::list

<lookahead_positive<Look...>, Ts...>(), pcre_parameters<Counter>()};

2473 template

<

auto

V,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::start_lookahead_negative,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, pcre_parameters<Counter>>) {

2478 template

<

auto

V,

typename

Look,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::look_finish,

ctll::term<V>

, pcre_context<

ctll::list

<Look, look_start<lookahead_negative<>>, Ts...>, pcre_parameters<Counter>>) {

2483 template

<

auto

V,

typename

... Look,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::look_finish,

ctll::term<V>

, pcre_context<

ctll::list

<ctre::sequence<Look...>, look_start<lookahead_negative<>>, Ts...>, pcre_parameters<Counter>>) {

2484  return

pcre_context{

ctll::list

<lookahead_negative<Look...>, Ts...>(), pcre_parameters<Counter>()};

2490 template

<

auto

V,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::start_lookbehind_positive,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, pcre_parameters<Counter>>) {

2495 template

<

auto

V,

typename

Look,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::look_finish,

ctll::term<V>

, pcre_context<

ctll::list

<Look, look_start<lookbehind_positive<>>, Ts...>, pcre_parameters<Counter>>) {

2500 template

<

auto

V,

typename

... Look,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::look_finish,

ctll::term<V>

, pcre_context<

ctll::list

<ctre::sequence<Look...>, look_start<lookbehind_positive<>>, Ts...>, pcre_parameters<Counter>>) {

2502  return

pcre_context{

ctll::list

<my_lookbehind, Ts...>(), pcre_parameters<Counter>()};

2506 template

<

auto

V,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::start_lookbehind_negative,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, pcre_parameters<Counter>>) {

2511 template

<

auto

V,

typename

Look,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::look_finish,

ctll::term<V>

, pcre_context<

ctll::list

<Look, look_start<lookbehind_negative<>>, Ts...>, pcre_parameters<Counter>>) {

2516 template

<

auto

V,

typename

... Look,

typename

... Ts,

size_t

Counter>

static

constexpr

auto

apply(pcre::look_finish,

ctll::term<V>

, pcre_context<

ctll::list

<ctre::sequence<Look...>, look_start<lookbehind_negative<>>, Ts...>, pcre_parameters<Counter>>) {

2518  return

pcre_context{

ctll::list

<my_lookbehind, Ts...>(), pcre_parameters<Counter>()};

2523 #ifndef CTRE__ACTIONS__NAMED_CLASS__HPP 2524 #define CTRE__ACTIONS__NAMED_CLASS__HPP 2527 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_alnum,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2531 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_alpha,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2535 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_digit,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2539 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_ascii,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2543 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_blank,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2547 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_cntrl,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2548  return

pcre_context{

ctll::push_front

(ctre::set<ctre::char_range<'\x00','\x1F'>, ctre::character<'\x7F'>>(),

subject

.stack),

subject

.parameters};

2551 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_graph,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2555 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_lower,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2559 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_upper,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2563 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_print,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2567 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_space,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2571 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_word,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2575 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_punct,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2579 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::class_named_xdigit,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2585 #ifndef CTRE__ACTIONS__OPTIONS__HPP 2586 #define CTRE__ACTIONS__OPTIONS__HPP 2603 template

<

auto

V,

typename A

,

typename

... Bs,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_alternate,

ctll::term<V>

, pcre_context<

ctll::list

<ctre::select<Bs...>,

A

, Ts...>, Parameters>

subject

) {

2612 template

<

auto

V,

typename

... Content,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_optional,

ctll::term<V>

, pcre_context<

ctll::list

<sequence<Content...>, Ts...>, Parameters>

subject

) {

2617 template

<

auto

V,

typename A

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_optional,

ctll::term<V>

, pcre_context<

ctll::list

<optional<A>, Ts...>, Parameters>

subject

) {

2622 template

<

auto

V,

typename A

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_optional,

ctll::term<V>

, pcre_context<

ctll::list

<lazy_optional<A>, Ts...>, Parameters>

subject

) {

2627 template

<

auto

V,

typename

... Subject,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_lazy,

ctll::term<V>

, pcre_context<

ctll::list

<optional<Subject...>, Ts...>, Parameters>

subject

) {

2632 template

<

auto

V,

typename

... Subject,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_lazy,

ctll::term<V>

, pcre_context<

ctll::list

<lazy_optional<Subject...>, Ts...>, Parameters>

subject

) {

2638 #ifndef CTRE__ACTIONS__PROPERTIES__HPP 2639 #define CTRE__ACTIONS__PROPERTIES__HPP 2642 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_property_name,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2646 template

<

auto

... Str,

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_property_name,

ctll::term<V>

, pcre_context<

ctll::list

<property_name<Str...>, Ts...>, Parameters>

subject

) {

2651 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_property_value,

ctll::term<V>

, pcre_context<

ctll::list<Ts...>

, Parameters>

subject

) {

2655 template

<

auto

... Str,

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_property_value,

ctll::term<V>

, pcre_context<

ctll::list

<property_value<Str...>, Ts...>, Parameters>

subject

) {

2660 template

<

auto

V,

auto

... Name,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_property,

ctll::term<V>

, [[maybe_unused]] pcre_context<

ctll::list

<property_name<Name...>, Ts...>, Parameters>

subject

) {

2662

constexpr

char

name[

sizeof

...(Name)]{

static_cast<char>

(Name)...};

2663

constexpr

auto

p = uni::detail::binary_prop_from_string(get_string_view(name));

2665  if

constexpr (uni::detail::is_unknown(p)) {

2673 template

<

auto

V,

auto

...

Value

,

auto

... Name,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_property,

ctll::term<V>

, [[maybe_unused]] pcre_context<

ctll::list

<property_value<Value...>, property_name<Name...>, Ts...>, Parameters>

subject

) {

2675

constexpr

auto

prop = property_builder<Name...>::template get<

Value

...>();

2677  if

constexpr (std::is_same_v<decltype(prop),

ctll::reject

>) {

2685 template

<

auto

V,

auto

... Name,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_property_negative,

ctll::term<V>

, [[maybe_unused]] pcre_context<

ctll::list

<property_name<Name...>, Ts...>, Parameters>

subject

) {

2687

constexpr

char

name[

sizeof

...(Name)]{

static_cast<char>

(Name)...};

2688

constexpr

auto

p = uni::detail::binary_prop_from_string(get_string_view(name));

2690  if

constexpr (uni::detail::is_unknown(p)) {

2698 template

<

auto

V,

auto

...

Value

,

auto

... Name,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_property_negative,

ctll::term<V>

, [[maybe_unused]] pcre_context<

ctll::list

<property_value<Value...>, property_name<Name...>, Ts...>, Parameters>

subject

) {

2700

constexpr

auto

prop = property_builder<Name...>::template get<

Value

...>();

2702  if

constexpr (std::is_same_v<decltype(prop),

ctll::reject

>) {

2711 #ifndef CTRE__ACTIONS__REPEAT__HPP 2712 #define CTRE__ACTIONS__REPEAT__HPP 2719 template

<

auto

V,

typename

... Content,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::repeat_plus,

ctll::term<V>

, pcre_context<

ctll::list

<sequence<Content...>, Ts...>, Parameters>

subject

) {

2728 template

<

auto

V,

typename

... Content,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::repeat_star,

ctll::term<V>

, pcre_context<

ctll::list

<sequence<Content...>, Ts...>, Parameters>

subject

) {

2737 template

<

auto

V,

size_t N

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::push_number,

ctll::term<V>

, pcre_context<

ctll::list

<number<N>, Ts...>, Parameters>

subject

) {

2738

constexpr

size_t

previous =

N

* 10ull;

2743 template

<

auto

V,

typename

Subject,

size_t A

,

size_t B

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::repeat_ab,

ctll::term<V>

, pcre_context<

ctll::list

<number<B>, number<A>, Subject, Ts...>, Parameters>

subject

) {

2747 template

<

auto

V,

typename

... Content,

size_t A

,

size_t B

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::repeat_ab,

ctll::term<V>

, pcre_context<

ctll::list

<number<B>, number<A>, sequence<Content...>, Ts...>, Parameters>

subject

) {

2752 template

<

auto

V,

typename

Subject,

size_t A

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::repeat_exactly,

ctll::term<V>

, pcre_context<

ctll::list

<number<A>, Subject, Ts...>, Parameters>

subject

) {

2756 template

<

auto

V,

typename

... Content,

size_t A

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::repeat_exactly,

ctll::term<V>

, pcre_context<

ctll::list

<number<A>, sequence<Content...>, Ts...>, Parameters>

subject

) {

2761 template

<

auto

V,

typename

Subject,

size_t A

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::repeat_at_least,

ctll::term<V>

, pcre_context<

ctll::list

<number<A>, Subject, Ts...>, Parameters>

subject

) {

2765 template

<

auto

V,

typename

... Content,

size_t A

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::repeat_at_least,

ctll::term<V>

, pcre_context<

ctll::list

<number<A>, sequence<Content...>, Ts...>, Parameters>

subject

) {

2770 template

<

auto

V,

typename

... Subject,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_lazy,

ctll::term<V>

, pcre_context<

ctll::list

<plus<Subject...>, Ts...>, Parameters>

subject

) {

2775 template

<

auto

V,

typename

... Subject,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_lazy,

ctll::term<V>

, pcre_context<

ctll::list

<star<Subject...>, Ts...>, Parameters>

subject

) {

2780 template

<

auto

V,

typename

... Subject,

size_t A

,

size_t B

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_lazy,

ctll::term<V>

, pcre_context<

ctll::list

<repeat<A,B,Subject...>, Ts...>, Parameters>

subject

) {

2785 template

<

auto

V,

typename

... Subject,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_possessive,

ctll::term<V>

, pcre_context<

ctll::list

<plus<Subject...>, Ts...>, Parameters>

subject

) {

2790 template

<

auto

V,

typename

... Subject,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_possessive,

ctll::term<V>

, pcre_context<

ctll::list

<star<Subject...>, Ts...>, Parameters>

subject

) {

2795 template

<

auto

V,

typename

... Subject,

size_t A

,

size_t B

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_possessive,

ctll::term<V>

, pcre_context<

ctll::list

<repeat<A,B,Subject...>, Ts...>, Parameters>

subject

) {

2801 #ifndef CTRE__ACTIONS__SEQUENCE__HPP 2802 #define CTRE__ACTIONS__SEQUENCE__HPP 2809 template

<

auto

V,

typename A

,

typename

... Bs,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_sequence,

ctll::term<V>

, pcre_context<

ctll::list

<sequence<Bs...>,

A

,Ts...>, Parameters>

subject

) {

2814 template

<

auto

V,

auto A

,

auto B

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_sequence,

ctll::term<V>

, pcre_context<

ctll::list

<character<B>,character<A>,Ts...>, Parameters>

subject

) {

2818 template

<

auto

V,

auto A

,

auto

... Bs,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_sequence,

ctll::term<V>

, pcre_context<

ctll::list

<string<Bs...>,character<A>,Ts...>, Parameters>

subject

) {

2823 template

<

auto

V,

auto A

,

auto B

,

typename

... Sq,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_sequence,

ctll::term<V>

, pcre_context<

ctll::list

<sequence<character<B>,Sq...>,character<A>,Ts...>, Parameters>

subject

) {

2827 template

<

auto

V,

auto A

,

auto

... Bs,

typename

... Sq,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_sequence,

ctll::term<V>

, pcre_context<

ctll::list

<sequence<string<Bs...>,Sq...>,character<A>,Ts...>, Parameters>

subject

) {

2833 #ifndef CTRE__ACTIONS__SET__HPP 2834 #define CTRE__ACTIONS__SET__HPP 2838 template

<

template

<

typename

...>

typename

SetType,

typename T

,

typename

... As,

bool

Exists = (std::is_same_v<T, As> || ... ||

false

)>

static

constexpr

auto

push_back_into_set(

T

, SetType<As...>) ->

ctll::conditional

<Exists, SetType<As...>, SetType<As...,

T

>> {

return

{}; }

2861 template

<

auto

V,

typename

... Content,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::set_make_negative,

ctll::term<V>

, pcre_context<

ctll::list

<

set<Content...>

, Ts...>, Parameters>

subject

) {

2865 template

<

auto

V,

typename A

,

typename

... Content,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::set_combine,

ctll::term<V>

, pcre_context<

ctll::list

<

A

,

set<Content...>

,Ts...>, Parameters>

subject

) {

2877 template

<

auto

V,

typename A

,

typename

... Content,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::set_combine,

ctll::term<V>

, pcre_context<

ctll::list

<

A

,negative_set<Content...>,Ts...>, Parameters>

subject

) {

2888 template

<

auto

V,

typename A

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::negate_class_named,

ctll::term<V>

, pcre_context<

ctll::list<A, Ts...>

, Parameters>

subject

) {

2893 template

<

auto

V,

auto B

,

auto A

,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::make_range,

ctll::term<V>

, pcre_context<

ctll::list

<character<B>,character<A>, Ts...>, Parameters>

subject

) {

2899 #ifndef CTRE__ACTIONS__MODE__HPP 2900 #define CTRE__ACTIONS__MODE__HPP 2903 template

<

typename

Mode,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply_mode(Mode,

ctll::list<Ts...>

, Parameters) {

2904  return

pcre_context<ctll::list<mode_switch<Mode>, Ts...>, Parameters>{};

2907 template

<

typename

Mode,

typename

... Ts,

size_t

Id,

size_t

Counter>

static

constexpr

auto

apply_mode(Mode,

ctll::list

<capture_id<Id>, Ts...>, pcre_parameters<Counter>) {

2908  return

pcre_context<ctll::list<mode_switch<Mode>, Ts...>, pcre_parameters<Counter-1>>{};

2912 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::mode_case_insensitive

mode

,

ctll::term<V>

,pcre_context<

ctll::list<Ts...>

, Parameters>) {

2916 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::mode_case_sensitive

mode

,

ctll::term<V>

,pcre_context<

ctll::list<Ts...>

, Parameters>) {

2920 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::mode_singleline

mode

,

ctll::term<V>

,pcre_context<

ctll::list<Ts...>

, Parameters>) {

2924 template

<

auto

V,

typename

... Ts,

typename

Parameters>

static

constexpr

auto

apply(pcre::mode_multiline

mode

,

ctll::term<V>

,pcre_context<

ctll::list<Ts...>

, Parameters>) {

2938 #ifndef CTRE__EVALUATION__HPP 2939 #define CTRE__EVALUATION__HPP 2941 #ifndef CTRE__STARTS_WITH_ANCHOR__HPP 2942 #define CTRE__STARTS_WITH_ANCHOR__HPP 2946 template

<

typename

... Content>

2951 template

<

typename

... Content>

2957 template

<

typename

... Content>

2963 template

<

typename

CharLike,

typename

... Content>

2964

constexpr

bool

starts_with_anchor(

const flags

&

f

,

ctll::list

<boundary<CharLike>, Content...>) noexcept {

2969 template

<

typename

... Options,

typename

... Content>

2970

constexpr

bool

starts_with_anchor(

const flags

&

f

,

ctll::list

<select<Options...>, Content...>) noexcept {

2975 template

<

typename

... Optional,

typename

... Content>

2976

constexpr

bool

starts_with_anchor(

const flags

&

f

,

ctll::list

<optional<Optional...>, Content...>) noexcept {

2981 template

<

typename

... Optional,

typename

... Content>

2982

constexpr

bool

starts_with_anchor(

const flags

&

f

,

ctll::list

<lazy_optional<Optional...>, Content...>) noexcept {

2987 template

<

typename

... Seq,

typename

... Content>

2988

constexpr

bool

starts_with_anchor(

const flags

&

f

,

ctll::list

<sequence<Seq...>, Content...>) noexcept {

2993 template

<

size_t A

,

size_t B

,

typename

... Seq,

typename

... Content>

2994

constexpr

bool

starts_with_anchor(

const flags

&

f

,

ctll::list

<repeat<A, B, Seq...>, Content...>) noexcept {

2999 template

<

size_t A

,

size_t B

,

typename

... Seq,

typename

... Content>

3000

constexpr

bool

starts_with_anchor(

const flags

&

f

,

ctll::list

<lazy_repeat<A, B, Seq...>, Content...>) noexcept {

3005 template

<

size_t A

,

size_t B

,

typename

... Seq,

typename

... Content>

3006

constexpr

bool

starts_with_anchor(

const flags

&

f

,

ctll::list

<possessive_repeat<A, B, Seq...>, Content...>) noexcept {

3011 template

<

size_t

Index,

typename

... Seq,

typename

... Content>

3012

constexpr

bool

starts_with_anchor(

const flags

&

f

,

ctll::list

<capture<Index, Seq...>, Content...>) noexcept {

3017 template

<

size_t

Index,

typename

... Seq,

typename

... Content>

3018

constexpr

bool

starts_with_anchor(

const flags

&

f

,

ctll::list

<capture_with_name<Index, Seq...>, Content...>) noexcept {

3027 #ifndef CTRE__RETURN_TYPE__HPP 3028 #define CTRE__RETURN_TYPE__HPP 3030 #ifndef CTRE__UTF8__HPP 3031 #define CTRE__UTF8__HPP 3033 #if __cpp_char8_t >= 201811 3035 #include <string_view> 3038 #if __cpp_lib_char8_t >= 201811L 3039 #define CTRE_ENABLE_UTF8_RANGE 3044 struct

utf8_iterator {

3045  using

self_type = utf8_iterator;

3047  using

reference = char8_t;

3048  using pointer

=

const

char8_t *;

3049  using

iterator_category = std::bidirectional_iterator_tag;

3050  using

difference_type =

int

;

3054  using

self_type = utf8_iterator;

3056  using

reference = char8_t &;

3057  using pointer

=

const

char8_t *;

3058  using

iterator_category = std::bidirectional_iterator_tag;

3059  using

difference_type =

int

;

3062  auto

operator++() noexcept -> self_type &;

3063  auto

operator++(

int

) noexcept -> self_type;

3065  auto operator--

(

int

) noexcept -> self_type;

3067  auto operator*

() noexcept -> reference;

3069  friend

constexpr

auto operator==

(self_type,

const

char8_t * other_ptr) noexcept {

3070  return

*other_ptr == char8_t{0};

3074  const

char8_t * ptr{

nullptr

};

3075  const

char8_t * end{

nullptr

};

3077

constexpr

friend bool operator!=

(

const

utf8_iterator & lhs, sentinel) {

3078  return

lhs.ptr < lhs.end;

3081

constexpr

friend bool operator!=

(sentinel,

const

utf8_iterator & rhs) {

3082  return

rhs.ptr < rhs.end;

3085

constexpr

friend bool operator!=

(

const

utf8_iterator & lhs,

const

utf8_iterator & rhs) {

3086  return

lhs.ptr != rhs.ptr;

3089

constexpr

friend bool operator==

(

const

utf8_iterator & lhs, sentinel) {

3090  return

lhs.ptr >= lhs.end;

3093

constexpr

friend bool operator==

(sentinel,

const

utf8_iterator & rhs) {

3094  return

rhs.ptr >= rhs.end;

3097

constexpr utf8_iterator & operator=(

const

char8_t * rhs) {

3102

constexpr

operator const

char8_t *()

const

noexcept {

3106

constexpr utf8_iterator & operator++() noexcept {

3114

ptr += ((0x3A55000000000000ull >> ((*ptr >> 2) & 0b111110u)) & 0b11u) + 1;

3118

constexpr utf8_iterator &

operator--

() noexcept {

3125  while

((*ptr & 0b11000000u) == 0b10'000000) {

3132

constexpr utf8_iterator

operator--

(

int

) noexcept {

3133  auto self

= *

this

;

3138

constexpr utf8_iterator operator++(

int

) noexcept {

3139  auto self

= *

this

;

3144

constexpr utf8_iterator

operator+

(

unsigned

step)

const

noexcept {

3145

utf8_iterator

result

= *

this

;

3153

constexpr utf8_iterator

operator-

(

unsigned

step)

const

noexcept {

3154

utf8_iterator

result

= *

this

;

3162

constexpr char32_t

operator*

()

const

noexcept {

3163

constexpr char32_t mojibake = 0xFFFDull;

3166  if

(!(*ptr & 0b1000'0000u)) CTRE_LIKELY {

3171  const unsigned

length = ((0x3A55000000000000ull >> ((*ptr >> 2) & 0b111110u)) & 0b11u);

3176  if

(!length) CTRE_UNLIKELY {

3181  if

(((ptr + length) >= end)) CTRE_UNLIKELY {

3185  if

((ptr[1] & 0b1100'0000u) != 0b1000'0000) CTRE_UNLIKELY {

3189  const

char8_t

mask

=

static_cast<

char8_t

>

(0b0011'1111u >> length);

3198

char32_t

result

=

static_cast<

char32_t

>

((ptr[0] &

mask

) << 6u) | (ptr[1] & 0b0011'1111u);

3201  if

(length == 1) CTRE_LIKELY {

3205  if

((ptr[2] & 0b1100'0000u) != 0b1000'0000) CTRE_UNLIKELY {

3211  if

(length == 2) CTRE_LIKELY {

3215  if

((ptr[3] & 0b1100'0000u) != 0b1000'0000) CTRE_UNLIKELY {

3219  return

(

result

<< 6) | (ptr[3] & 0b0011'1111u);

3223 #ifdef CTRE_ENABLE_UTF8_RANGE 3225

std::u8string_view range;

3226

constexpr utf8_range(std::u8string_view

r

) noexcept: range{

r

} { }

3228

constexpr

auto

begin()

const

noexcept {

3229  return

utf8_iterator{range.data(), range.data() + range.size()};

3231

constexpr

auto

end()

const

noexcept {

3232  return

utf8_iterator::sentinel{};

3243 #include <type_traits> 3245 #include <string_view> 3249 #if __has_include(<charconv>) 3255

constexpr

auto

is_random_accessible_f(

const

std::random_access_iterator_tag &) {

return

std::true_type{}; }

3256

constexpr

auto

is_random_accessible_f(...) {

return

std::false_type{}; }

3258 template

<

typename

T> constexpr

auto

is_reverse_iterator_f(

const

std::reverse_iterator<T> &) {

return

std::true_type{}; }

3259

constexpr

auto

is_reverse_iterator_f(...) {

return

std::false_type{}; }

3261 template

<

typename

T> constexpr

bool

is_random_accessible = decltype(is_random_accessible_f(std::declval<const T &>())){};

3262 template

<

typename

T> constexpr

bool

is_reverse_iterator = decltype(is_reverse_iterator_f(std::declval<const T &>())){};

3264 struct

not_matched_tag_t { };

3266

constexpr

inline auto

not_matched = not_matched_tag_t{};

3268 template

<

size_t

Id,

typename

Name =

void

>

struct

captured_content {

3269  template

<

typename

Iterator>

class

storage {

3273  bool

_matched{

false

};

3279

constexpr CTRE_FORCE_INLINE storage() noexcept {}

3281

constexpr CTRE_FORCE_INLINE

void

matched() noexcept {

3284

constexpr CTRE_FORCE_INLINE

void

unmatch() noexcept {

3287

constexpr CTRE_FORCE_INLINE

void

set_start(Iterator pos) noexcept {

3290

constexpr CTRE_FORCE_INLINE storage & set_end(Iterator pos) noexcept {

3294

constexpr CTRE_FORCE_INLINE Iterator get_end()

const

noexcept {

3299

constexpr

auto

begin()

const

noexcept {

3302

constexpr

auto

end()

const

noexcept {

3306

constexpr

explicit

CTRE_FORCE_INLINE

operator bool

()

const

noexcept {

3310  template

<

typename

It = Iterator> constexpr CTRE_FORCE_INLINE

const auto

* data_unsafe()

const

noexcept {

3311

static_assert(!is_reverse_iterator<It>,

"Iterator in your capture must not be reverse!"

);

3313  #if __cpp_char8_t >= 201811 3314  if

constexpr (std::is_same_v<Iterator, utf8_iterator>) {

3324  template

<

typename

It = Iterator> constexpr CTRE_FORCE_INLINE

const auto

*

data

()

const

noexcept {

3325

constexpr

bool

must_be_contiguous_nonreverse_iterator = is_random_accessible<typename std::iterator_traits<It>::iterator_category> && !is_reverse_iterator<It>;

3327

static_assert(must_be_contiguous_nonreverse_iterator,

"To access result as a pointer you need to provide a random access iterator/range to regex (which is not reverse iterator based)."

);

3329  return

data_unsafe();

3332

constexpr CTRE_FORCE_INLINE

auto size

()

const

noexcept {

3333  return static_cast<size_t>

(std::distance(begin(), end()));

3336

constexpr CTRE_FORCE_INLINE

size_t

unit_size()

const

noexcept {

3337  #if __cpp_char8_t >= 201811 3338  if

constexpr (std::is_same_v<Iterator, utf8_iterator>) {

3339  return static_cast<size_t>

(std::distance(_begin.ptr, _end.ptr));

3341  return static_cast<size_t>

(std::distance(begin(), end()));

3344  return static_cast<size_t>

(std::distance(begin(), end()));

3348 #if __has_include(<charconv>) 3349  template

<

typename

R =

int

> constexpr CTRE_FORCE_INLINE

auto

to_number(

int

base = 10)

const

noexcept ->

R

{

3351  const auto

view = to_view();

3352

std::from_chars(view.data(), view.data() + view.size(),

result

, base);

3357  template

<

typename

T>

struct

identify;

3359  template

<

typename

It = Iterator> constexpr CTRE_FORCE_INLINE

auto

to_view()

const

noexcept {

3361

constexpr

bool

must_be_nonreverse_contiguous_iterator = is_random_accessible<typename std::iterator_traits<std::remove_const_t<It>>::iterator_category> && !is_reverse_iterator<It>;

3363

static_assert(must_be_nonreverse_contiguous_iterator,

"To convert capture into a basic_string_view you need to provide a pointer or a contiguous non-reverse iterator/range to regex."

);

3365  return

std::basic_string_view<char_type>(data_unsafe(),

static_cast<size_t>

(unit_size()));

3368

constexpr CTRE_FORCE_INLINE std::basic_string<char_type> to_string()

const

noexcept {

3369  #if __cpp_char8_t >= 201811 3370  if

constexpr (std::is_same_v<Iterator, utf8_iterator>) {

3371  return

std::basic_string<char_type>(data_unsafe(),

static_cast<size_t>

(unit_size()));

3373  return

std::basic_string<char_type>(begin(), end());

3376  return

std::basic_string<char_type>(begin(), end());

3380

constexpr CTRE_FORCE_INLINE

auto

view()

const

noexcept {

3384

constexpr CTRE_FORCE_INLINE

auto str

()

const

noexcept {

3388

constexpr CTRE_FORCE_INLINE

operator

std::basic_string_view<char_type>()

const

noexcept {

3392

constexpr CTRE_FORCE_INLINE

explicit operator

std::basic_string<char_type>()

const

noexcept {

3396

constexpr CTRE_FORCE_INLINE

static size_t

get_id() noexcept {

3400  friend

CTRE_FORCE_INLINE constexpr

bool operator==

(

const

storage & lhs, std::basic_string_view<char_type> rhs) noexcept {

3401  return bool

(lhs) ? lhs.view() == rhs :

false

;

3403  friend

CTRE_FORCE_INLINE constexpr

bool operator!=

(

const

storage & lhs, std::basic_string_view<char_type> rhs) noexcept {

3404  return bool

(lhs) ? lhs.view() != rhs :

false

;

3406  friend

CTRE_FORCE_INLINE constexpr

bool operator==

(std::basic_string_view<char_type> lhs,

const

storage & rhs) noexcept {

3407  return bool

(rhs) ? lhs == rhs.view() :

false

;

3409  friend

CTRE_FORCE_INLINE constexpr

bool operator!=

(std::basic_string_view<char_type> lhs,

const

storage & rhs) noexcept {

3410  return bool

(rhs) ? lhs != rhs.view() :

false

;

3412  friend

CTRE_FORCE_INLINE std::ostream &

operator<<

(std::ostream &

str

,

const

storage & rhs) {

3413  return str

<< rhs.view();

3418 struct

capture_not_exists_tag { };

3420 static

constexpr

inline auto

capture_not_exists = capture_not_exists_tag{};

3422 template

<

typename

... Captures>

struct

captures;

3424 template

<

typename

Head,

typename

... Tail>

struct

captures<Head, Tail...>: captures<Tail...> {

3426

constexpr CTRE_FORCE_INLINE captures() noexcept { }

3427  template

<

size_t id

> CTRE_FORCE_INLINE

static

constexpr

bool

exists() noexcept {

3428  if

constexpr (

id

== Head::get_id()) {

3431  return

captures<Tail...>::template exists<id>();

3434  template

<

typename

Name> CTRE_FORCE_INLINE

static

constexpr

bool

exists() noexcept {

3435  if

constexpr (std::is_same_v<Name, typename Head::name>) {

3438  return

captures<Tail...>::template exists<Name>();

3441 #if CTRE_CNTTP_COMPILER_CHECK 3442  template

<ctll::fixed_

string

Name> CTRE_FORCE_INLINE

static

constexpr

bool

exists() noexcept {

3444  template

<const auto & Name> CTRE_FORCE_INLINE

static

constexpr

bool

exists() noexcept {

3446  if

constexpr (std::is_same_v<typename Head::name, void>) {

3447  return

captures<Tail...>::template exists<Name>();

3449  if

constexpr (Head::name::name.is_same_as(Name)) {

3452  return

captures<Tail...>::template exists<Name>();

3456  template

<

size_t id

> CTRE_FORCE_INLINE constexpr

auto

& select() noexcept {

3457  if

constexpr (

id

== Head::get_id()) {

3460  return

captures<Tail...>::template select<id>();

3463  template

<

typename

Name> CTRE_FORCE_INLINE constexpr

auto

& select() noexcept {

3464  if

constexpr (std::is_same_v<Name, typename Head::name>) {

3467  return

captures<Tail...>::template select<Name>();

3470  template

<

size_t id

> CTRE_FORCE_INLINE constexpr

auto

& select()

const

noexcept {

3471  if

constexpr (

id

== Head::get_id()) {

3474  return

captures<Tail...>::template select<id>();

3477  template

<

typename

Name> CTRE_FORCE_INLINE constexpr

auto

& select()

const

noexcept {

3478  if

constexpr (std::is_same_v<Name, typename Head::name>) {

3481  return

captures<Tail...>::template select<Name>();

3484 #if CTRE_CNTTP_COMPILER_CHECK 3485  template

<ctll::fixed_

string

Name> CTRE_FORCE_INLINE constexpr

auto

& select()

const

noexcept {

3487  template

<const auto & Name> CTRE_FORCE_INLINE constexpr

auto

& select()

const

noexcept {

3489  if

constexpr (std::is_same_v<typename Head::name, void>) {

3490  return

captures<Tail...>::template select<Name>();

3492  if

constexpr (Head::name::name.is_same_as(Name)) {

3495  return

captures<Tail...>::template select<Name>();

3501 template

<>

struct

captures<> {

3502

constexpr CTRE_FORCE_INLINE captures() noexcept { }

3503  template

<

size_t

> CTRE_FORCE_INLINE

static

constexpr

bool

exists() noexcept {

3506  template

<

typename

> CTRE_FORCE_INLINE

static

constexpr

bool

exists() noexcept {

3509 #if CTRE_CNTTP_COMPILER_CHECK 3510  template

<ctll::fixed_

string

> CTRE_FORCE_INLINE

static

constexpr

bool

exists() noexcept {

3512  template

<const auto &> CTRE_FORCE_INLINE

static

constexpr

bool

exists() noexcept {

3516  template

<

size_t

> CTRE_FORCE_INLINE constexpr

auto

& select()

const

noexcept {

3517  return

capture_not_exists;

3519  template

<

typename

> CTRE_FORCE_INLINE constexpr

auto

& select()

const

noexcept {

3520  return

capture_not_exists;

3522 #if CTRE_CNTTP_COMPILER_CHECK 3523  template

<ctll::fixed_

string

> CTRE_FORCE_INLINE constexpr

auto

& select()

const

noexcept {

3525  template

<const auto &> CTRE_FORCE_INLINE constexpr

auto

& select()

const

noexcept {

3527  return

capture_not_exists;

3531 template

<

typename

Iterator,

typename

... Captures>

class

regex_results {

3532

captures<captured_content<0>::template storage<Iterator>,

typename

Captures::template storage<Iterator>...> _captures{};

3536

constexpr CTRE_FORCE_INLINE regex_results() noexcept { }

3537

constexpr CTRE_FORCE_INLINE regex_results(not_matched_tag_t) noexcept { }

3542

template <size_t Id, typename = std::enable_if_t<decltype(_captures)::template exists<Id>()>> CTRE_FORCE_INLINE constexpr

auto

get()

const

noexcept {

3543  return

_captures.template select<Id>();

3545

template <typename Name, typename = std::enable_if_t<decltype(_captures)::template exists<Name>()>> CTRE_FORCE_INLINE constexpr

auto

get()

const

noexcept {

3546  return

_captures.template select<Name>();

3548 #if CTRE_CNTTP_COMPILER_CHECK 3549

template <ctll::fixed_string Name, typename = std::enable_if_t<decltype(_captures)::template exists<Name>()>> CTRE_FORCE_INLINE constexpr

auto

get()

const

noexcept {

3551

template <const auto & Name, typename = std::enable_if_t<decltype(_captures)::template exists<Name>()>> CTRE_FORCE_INLINE constexpr

auto

get()

const

noexcept {

3553  return

_captures.template select<Name>();

3555  static

constexpr

size_t count

() noexcept {

3556  return sizeof

...(Captures) + 1;

3558

constexpr CTRE_FORCE_INLINE regex_results & matched() noexcept {

3559

_captures.template select<0>().matched();

3562

constexpr CTRE_FORCE_INLINE regex_results & unmatch() noexcept {

3563

_captures.template select<0>().unmatch();

3566

constexpr CTRE_FORCE_INLINE

operator bool

()

const

noexcept {

3567  return bool

(_captures.template select<0>());

3570

constexpr CTRE_FORCE_INLINE

operator

std::basic_string_view<char_type>()

const

noexcept {

3574

constexpr CTRE_FORCE_INLINE

explicit operator

std::basic_string<char_type>()

const

noexcept {

3578 #if __has_include(<charconv>) 3579  template

<

typename

R =

int

> constexpr CTRE_FORCE_INLINE

auto

to_number(

int

base = 10)

const

noexcept ->

R

{

3580  return

_captures.template select<0>().template to_number<R>(base);

3584

constexpr CTRE_FORCE_INLINE

auto

to_view()

const

noexcept {

3585  return

_captures.template select<0>().to_view();

3588

constexpr CTRE_FORCE_INLINE

auto

to_string()

const

noexcept {

3589  return

_captures.template select<0>().to_string();

3592

constexpr CTRE_FORCE_INLINE

auto

view()

const

noexcept {

3593  return

_captures.template select<0>().view();

3596

constexpr CTRE_FORCE_INLINE

auto str

()

const

noexcept {

3597  return

_captures.template select<0>().to_string();

3600

constexpr CTRE_FORCE_INLINE

size_t size

()

const

noexcept {

3601  return

_captures.template select<0>().size();

3604

constexpr CTRE_FORCE_INLINE

const auto

*

data

()

const

noexcept {

3605  return

_captures.template select<0>().data();

3608

constexpr CTRE_FORCE_INLINE regex_results & set_start_mark(Iterator pos) noexcept {

3609

_captures.template select<0>().set_start(pos);

3612

constexpr CTRE_FORCE_INLINE regex_results & set_end_mark(Iterator pos) noexcept {

3613

_captures.template select<0>().set_end(pos);

3616

constexpr CTRE_FORCE_INLINE Iterator get_end_position()

const

noexcept {

3617  return

_captures.template select<0>().get_end();

3619  template

<

size_t

Id> CTRE_FORCE_INLINE constexpr regex_results & start_capture(Iterator pos) noexcept {

3620

_captures.template select<Id>().set_start(pos);

3623  template

<

size_t

Id> CTRE_FORCE_INLINE constexpr regex_results & end_capture(Iterator pos) noexcept {

3624

_captures.template select<Id>().set_end(pos).matched();

3627

constexpr

auto

begin()

const

noexcept {

3628  return

_captures.template select<0>().begin();

3630

constexpr

auto

end()

const

noexcept {

3631  return

_captures.template select<0>().end();

3633  friend

CTRE_FORCE_INLINE constexpr

bool operator==

(

const

regex_results & lhs, std::basic_string_view<char_type> rhs) noexcept {

3634  return bool

(lhs) ? lhs.view() == rhs :

false

;

3636  friend

CTRE_FORCE_INLINE constexpr

bool operator!=

(

const

regex_results & lhs, std::basic_string_view<char_type> rhs) noexcept {

3637  return bool

(lhs) ? lhs.view() != rhs :

true

;

3639  friend

CTRE_FORCE_INLINE constexpr

bool operator==

(std::basic_string_view<char_type> lhs,

const

regex_results & rhs) noexcept {

3640  return bool

(rhs) ? lhs == rhs.view() :

false

;

3642  friend

CTRE_FORCE_INLINE constexpr

bool operator!=

(std::basic_string_view<char_type> lhs,

const

regex_results & rhs) noexcept {

3643  return bool

(rhs) ? lhs != rhs.view() :

true

;

3645  friend

CTRE_FORCE_INLINE std::ostream &

operator<<

(std::ostream &

str

,

const

regex_results & rhs) {

3646  return str

<< rhs.view();

3650 template

<

size_t

Id,

typename

Iterator,

typename

... Captures> constexpr

auto

get(

const

regex_results<Iterator, Captures...> &

results

) noexcept {

3651  return results

.template get<Id>();

3654 template

<

typename

Iterator,

typename

... Captures> regex_results(Iterator,

ctll::list<Captures...>

) -> regex_results<Iterator, Captures...>;

3656 template

<

typename

ResultIterator,

typename

Pattern>

using

return_type = decltype(regex_results(std::declval<ResultIterator>(), find_captures(

Pattern

{})));

3664 #pragma clang diagnostic push 3665 #pragma clang diagnostic ignored "-Wmismatched-tags" 3669  template

<

typename

... Captures>

struct

tuple_size<ctre::regex_results<Captures...>> :

public

std::integral_constant<size_t, ctre::regex_results<Captures...>::count()> { };

3671  template

<

size_t N

,

typename

... Captures>

struct

tuple_element<

N

, ctre::regex_results<Captures...>> {

3673  using type

= decltype(

3674

std::declval<

const

ctre::regex_results<Captures...> &>().

template

get<N>()

3680 #pragma clang diagnostic pop 3686 #ifndef CTRE__FIND_CAPTURES__HPP 3687 #define CTRE__FIND_CAPTURES__HPP 3691 template

<

typename

Pattern> constexpr

auto

find_captures(

Pattern

) noexcept {

3699 template

<

auto

... String,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<string<String...>, Tail...>, Output

output

) noexcept {

3703 template

<

typename

... Options,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<select<Options...>, Tail...>, Output

output

) noexcept {

3707 template

<

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<optional<Content...>, Tail...>, Output

output

) noexcept {

3711 template

<

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<lazy_optional<Content...>, Tail...>, Output

output

) noexcept {

3715 template

<

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<sequence<Content...>, Tail...>, Output

output

) noexcept {

3736 template

<

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<plus<Content...>, Tail...>, Output

output

) noexcept {

3740 template

<

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<star<Content...>, Tail...>, Output

output

) noexcept {

3744 template

<

size_t A

,

size_t B

,

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<repeat<A,B,Content...>, Tail...>, Output

output

) noexcept {

3748 template

<

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<lazy_plus<Content...>, Tail...>, Output

output

) noexcept {

3752 template

<

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<lazy_star<Content...>, Tail...>, Output

output

) noexcept {

3756 template

<

size_t A

,

size_t B

,

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<lazy_repeat<A,B,Content...>, Tail...>, Output

output

) noexcept {

3760 template

<

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<possessive_plus<Content...>, Tail...>, Output

output

) noexcept {

3764 template

<

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<possessive_star<Content...>, Tail...>, Output

output

) noexcept {

3768 template

<

size_t A

,

size_t B

,

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<possessive_repeat<A,B,Content...>, Tail...>, Output

output

) noexcept {

3772 template

<

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<lookahead_positive<Content...>, Tail...>, Output

output

) noexcept {

3776 template

<

typename

... Content,

typename

... Tail,

typename

Output> constexpr

auto

find_captures(

ctll::list

<lookahead_negative<Content...>, Tail...>, Output

output

) noexcept {

3780 template

<

size_t

Id,

typename

... Content,

typename

... Tail,

typename

... Output> constexpr

auto

find_captures(

ctll::list

<capture<Id,Content...>, Tail...>,

ctll::list<Output...>

) noexcept {

3784 template

<

size_t

Id,

typename

Name,

typename

... Content,

typename

... Tail,

typename

... Output> constexpr

auto

find_captures(

ctll::list

<capture_with_name<Id,Name,Content...>, Tail...>,

ctll::list<Output...>

) noexcept {

3792 #ifndef CTRE__FIRST__HPP 3793 #define CTRE__FIRST__HPP 3797 struct

can_be_anything {};

3800 template

<

typename

... Content>

3805 template

<

typename

... Content,

typename

... Tail>

3810 template

<

typename

... Content,

typename

... Tail>

3815 template

<

typename

... Content,

typename

... Tail>

3820 template

<

typename

... Content,

typename

... Tail>

3825 template

<

typename

... Content,

size_t

Id,

typename

... Tail>

3831 template

<

typename

... Content,

typename

... Tail>

3837 template

<

typename

... Content,

typename

CharLike,

typename

... Tail>

3843 template

<

typename

... Content,

typename

... Tail>

3848 template

<

typename

... Content,

typename

... Tail>

3853 template

<

typename

... Content,

typename

... Tail>

3859 template

<

typename

... Content,

typename

... Tail>

3865 template

<

typename

... Content,

typename

... Tail>

3872 template

<

typename

... Content,

typename

... Seq,

typename

... Tail>

3878 template

<

typename

... Content,

typename

... Seq,

typename

... Tail>

3884 template

<

typename

... Content,

typename

... Seq,

typename

... Tail>

3890 template

<

typename

... Content,

typename

... Seq,

typename

... Tail>

3896 template

<

typename

... Content,

typename

... Seq,

typename

... Tail>

3902 template

<

typename

... Content,

typename

... Seq,

typename

... Tail>

3908 template

<

typename

... Content,

typename

... Seq,

typename

... Tail>

3914 template

<

typename

... Content,

size_t A

,

size_t B

,

typename

... Seq,

typename

... Tail>

3919 template

<

typename

... Content,

size_t B

,

typename

... Seq,

typename

... Tail>

3925 template

<

typename

... Content,

size_t A

,

size_t B

,

typename

... Seq,

typename

... Tail>

3930 template

<

typename

... Content,

size_t B

,

typename

... Seq,

typename

... Tail>

3936 template

<

typename

... Content,

size_t A

,

size_t B

,

typename

... Seq,

typename

... Tail>

3941 template

<

typename

... Content,

size_t B

,

typename

... Seq,

typename

... Tail>

3947 template

<

typename

... Content,

typename

... Seq,

typename

... Tail>

3953 template

<

typename

... Content,

typename

... Seq,

typename

... Tail>

3959 template

<

typename

... Content,

typename

... Seq,

typename

... Tail>

3965 template

<

typename

... Content,

typename

... Seq,

typename

... Tail>

3971 template

<

typename

... Content,

size_t

Id,

typename

... Seq,

typename

... Tail>

3976 template

<

typename

... Content,

size_t

Id,

typename

Name,

typename

... Seq,

typename

... Tail>

3982 template

<

typename

... Content,

size_t

Id,

typename

... Tail>

3987 template

<

typename

... Content,

typename

Name,

typename

... Tail>

3993 template

<

typename

... Content,

auto

First,

auto

... String,

typename

... Tail>

3995  return ctll::list

<Content..., character<First>>{};

3998 template

<

typename

... Content,

typename

... Tail>

4004 template

<

typename

... Content,

typename

... Opt,

typename

... Tail>

4009 template

<

typename

... Content,

typename

... Opt,

typename

... Tail>

4015 template

<

typename

... Content,

typename

SHead,

typename

... STail,

typename

... Tail>

4020 template

<

typename

... Content,

typename

... Tail>

4026 template

<

typename

... Content,

typename

PropertyType, PropertyType Property,

typename

... Tail>

4031 template

<

typename

... Content,

typename

PropertyType, PropertyType Property,

auto Value

,

typename

... Tail>

4038 template

<

typename

... Content,

auto

V,

typename

... Tail>

4040  return ctll::list

<Content..., character<V>>{};

4043 template

<

typename

... Content,

auto

... Values,

typename

... Tail>

4045  return ctll::list

<Content..., character<Values>...>{};

4048 template

<

typename

... Content,

typename

... SetContent,

typename

... Tail>

4050  return ctll::list

<Content..., SetContent...>{};

4053 template

<

typename

... Content,

auto A

,

auto B

,

typename

... Tail>

4055  return ctll::list

<Content..., char_range<A,B>>{};

4058 template

<

typename

... Content,

typename

... Tail>

4064 template

<

typename

... Content,

typename

... SetContent,

typename

... Tail>

4066  return ctll::list

<Content..., negative_set<SetContent...>>{};

4069 template

<

typename

... Content,

typename

... SetContent,

typename

... Tail>

4071  return ctll::list

<Content..., negative_set<SetContent...>>{};

4075 template

<

typename

... Content> constexpr

auto

calculate_first(Content...) noexcept {

4080 template

<

typename

... Content> constexpr

size_t

calculate_size_of_first(ctre::negative_set<Content...>) {

4081  return

1 + calculate_size_of_first(ctre::set<Content...>{});

4084 template

<

auto

... V> constexpr

size_t

calculate_size_of_first(ctre::enumeration<V...>) {

4085  return sizeof

...(V);

4088

constexpr

size_t

calculate_size_of_first(...) {

4093  return

(calculate_size_of_first(Content{}) + ... + 0);

4096 template

<

typename

... Content> constexpr

size_t

calculate_size_of_first(ctre::set<Content...>) {

4097  return

(calculate_size_of_first(Content{}) + ... + 0);

4100 template

<auto A,

typename

CB> constexpr

int64_t

negative_helper(ctre::character<A>,

CB

& cb,

int64_t

start) {

4113 template

<auto A, auto B,

typename

CB> constexpr

int64_t

negative_helper(ctre::char_range<A,B>,

CB

& cb,

int64_t

start) {

4126 template

<

auto

Head,

auto

... Tail,

typename CB

> constexpr

int64_t

negative_helper(ctre::enumeration<Head, Tail...>,

CB

& cb,

int64_t

start) {

4127  int64_t

nstart = negative_helper(ctre::character<Head>{}, cb, start);

4128  return

negative_helper(ctre::enumeration<Tail...>{}, cb, nstart);

4131 template

<

typename

CB> constexpr

int64_t

negative_helper(ctre::enumeration<>,

CB

&,

int64_t

start) {

4135 template

<

typename

CB> constexpr

int64_t

negative_helper(ctre::set<>,

CB

&,

int64_t

start) {

4139 template

<

typename

PropertyType, PropertyType Property,

typename

CB>

4140

constexpr

auto

negative_helper(ctre::binary_property<PropertyType, Property>,

CB

&&,

int64_t

start) {

4144 template

<

typename

PropertyType, PropertyType Property, auto Value,

typename

CB>

4145

constexpr

auto

negative_helper(ctre::property<PropertyType, Property, Value>,

CB

&&,

int64_t

start) {

4149 template

<

typename

Head,

typename

... Rest,

typename CB

> constexpr

int64_t

negative_helper(ctre::set<Head, Rest...>,

CB

& cb,

int64_t

start) {

4150

start = negative_helper(Head{}, cb, start);

4151  return

negative_helper(ctre::set<Rest...>{}, cb, start);

4155

start = negative_helper(Head{}, cb, start);

4156

negative_helper(ctre::negative_set<Rest...>{}, std::forward<CB>(cb), start);

4167 template

<

size_t

Capacity>

class

point_set {

4171

constexpr

bool operator<

(

const

point & rhs)

const

{

4172  return

low < rhs.low;

4174

constexpr point() { }

4177

point points[Capacity+1]{};

4179

constexpr point * begin() {

4182

constexpr point * begin()

const

{

4185

constexpr point * end() {

4186  return

points + used;

4188

constexpr point * end()

const

{

4189  return

points + used;

4191

constexpr point * lower_bound(point obj) {

4192  auto first

= begin();

4196  while

(

count

!= 0) {

4198  auto

step =

count

/ 2;

4199

std::advance(it, step);

4209

constexpr point * insert_point(

int64_t

position,

int64_t

other) {

4210

point obj{position, other};

4211  auto

it = lower_bound(obj);

4236

constexpr point_set() { }

4238

insert_point(low, high);

4242  for

(

auto r

: *

this

) {

4243  if

(

r

.low <= low && low <=

r

.high) {

4245

}

else if

(

r

.low <= high && high <=

r

.high) {

4247

}

else if

(low <=

r

.low &&

r

.low <= high) {

4249

}

else if

(low <=

r

.high &&

r

.high <= high) {

4257  template

<auto V> constexpr

bool check

(ctre::character<V>) {

4260  template

<auto A, auto B> constexpr

bool check

(ctre::char_range<A,B>) {

4263

constexpr

bool check

(can_be_anything) {

4266  template

<

typename

... Content> constexpr

bool check

(ctre::negative_set<Content...> nset) {

4267  bool

collision =

false

;

4269

collision |= this->

check

(low, high);

4273  template

<

auto

... V> constexpr

bool check

(ctre::enumeration<V...>) {

4275  return

(

check

(V,V) || ... ||

false

);

4278  return

(

check

(Content{}) || ... ||

false

);

4280  template

<

typename

... Content> constexpr

bool check

(ctre::set<Content...>) {

4281  return

(

check

(Content{}) || ... ||

false

);

4285  template

<auto V> constexpr

void

populate(ctre::character<V>) {

4288  template

<auto A, auto B> constexpr

void

populate(ctre::char_range<A,B>) {

4291

constexpr

void

populate(...) {

4296  template

<

typename

... Content> constexpr

void

populate(ctre::negative_set<Content...> nset) {

4298

this->insert(low, high);

4301  template

<

typename

... Content> constexpr

void

populate(ctre::set<Content...>) {

4302

(populate(Content{}), ...);

4305

(populate(Content{}), ...);

4310

constexpr

size_t

capacity = calculate_size_of_first(rhs);

4312

point_set<capacity>

set

;

4315  return set

.check(lhs);

4326 #ifndef CTRE_MSVC_GREEDY_WORKAROUND 4327 #define CTRE_MSVC_GREEDY_WORKAROUND 4333 template

<

size_t

Limit> constexpr CTRE_FORCE_INLINE

bool

less_than_or_infinite([[maybe_unused]]

size_t i

) noexcept {

4334  if

constexpr (Limit == 0) {

4342 template

<

size_t

Limit> constexpr CTRE_FORCE_INLINE

bool

less_than([[maybe_unused]]

size_t i

) noexcept {

4343  if

constexpr (Limit == 0) {

4351

constexpr

bool

is_bidirectional(

const

std::bidirectional_iterator_tag &) {

return true

; }

4352

constexpr

bool

is_bidirectional(...) {

return false

; }

4355 template

<

typename

R,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator>

4356

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator, Iterator,

const

EndIterator,

flags

,

R

, ...) noexcept {

4361 template

<

typename

R,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator>

4362

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator, Iterator,

const

EndIterator,

flags

,

R

captures,

ctll::list<accept>

) noexcept {

4363  return

captures.matched();

4367 template

<

typename R

,

typename

... Rest,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator>

4373 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4379 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4385 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4386

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator, Iterator current,

const

EndIterator, [[maybe_unused]]

const flags

&

f

,

R

captures,

ctll::list<end_cycle_mark>

) noexcept {

4387  if

(cannot_be_empty_match(

f

)) {

4391  return

captures.set_end_mark(current).matched();

4396 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

CharacterLike,

typename

... Tail,

typename

= std::enable_if_t<(MatchesCharacter<CharacterLike>::template value<decltype(*std::declval<Iterator>())>)>>

4398  if

(current ==

last

)

return

not_matched;

4399  if

(!CharacterLike::match_char(*current,

f

))

return

not_matched;

4404 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4405

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list<any, Tail...>

) noexcept {

4406  if

(current ==

last

)

return

not_matched;

4408  if

(multiline_mode(

f

)) {

4410  if

(*current ==

'\n'

)

return

not_matched;

4416 template

<

auto

... String,

typename

Iterator,

typename

EndIterator> constexpr CTRE_FORCE_INLINE

bool

match_string([[maybe_unused]] Iterator & current, [[maybe_unused]]

const

EndIterator

last

, [[maybe_unused]]

const flags

&

f

) {

4417  return

((current !=

last

&& character<String>::match_char(*current++,

f

)) && ... &&

true

);

4420 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

auto

... String,

typename

... Tail>

4421

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

, [[maybe_unused]]

const flags

&

f

,

R

captures,

ctll::list

<string<String...>, Tail...>) noexcept {

4422  if

(!match_string<String...>(current,

last

,

f

)) {

4426  return

evaluate(begin, current,

last

, consumed_something(

f

,

sizeof

...(String) > 0), captures,

ctll::list<Tail...>

());

4430 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

HeadOptions,

typename

... TailOptions,

typename

... Tail>

4431

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<select<HeadOptions, TailOptions...>, Tail...>) noexcept {

4435  return

evaluate(begin, current,

last

,

f

, captures,

ctll::list

<select<TailOptions...>, Tail...>());

4439 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4440

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator, Iterator,

const

EndIterator,

flags

,

R

,

ctll::list

<select<>, Tail...>) noexcept {

4446 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

HeadContent,

typename

... TailContent,

typename

... Tail>

4447

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<sequence<HeadContent, TailContent...>, Tail...>) noexcept {

4448  if

constexpr (

sizeof

...(TailContent) > 0) {

4449  return

evaluate(begin, current,

last

,

f

, captures,

ctll::list

<HeadContent, sequence<TailContent...>, Tail...>());

4456 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4462 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4464  if

(begin != current) {

4470 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4472  if

(

last

!= current) {

4478 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4480  if

(multiline_mode(

f

)) {

4481  if

(

last

== current) {

4483

}

else if

(*current ==

'\n'

&&

std::next

(current) ==

last

) {

4489  if

(

last

!= current) {

4496 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4498  if

(multiline_mode(

f

)) {

4499  if

(begin == current) {

4501

}

else if

(*

std::prev

(current) ==

'\n'

) {

4507  if

(begin != current) {

4514 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4516  if

(multiline_mode(

f

)) {

4517  if

(

last

== current) {

4519

}

else if

(*current ==

'\n'

) {

4525  if

(

last

!= current) {

4532  if

(

last

!= current) {

4539 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

CharacterLike,

typename

... Tail>

4540

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<boundary<CharacterLike>, Tail...>) noexcept {

4543  bool

before =

false

;

4544  bool

after =

false

;

4546

static_assert(is_bidirectional(

typename

std::iterator_traits<Iterator>::iterator_category{}),

"To use boundary in regex you need to provide bidirectional iterator or range."

);

4548  if

(

last

!= current) {

4549

after = CharacterLike::match_char(*current,

f

);

4551  if

(begin != current) {

4552

before = CharacterLike::match_char(*

std::prev

(current),

f

);

4555  if

(before == after)

return

not_matched;

4561 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

CharacterLike,

typename

... Tail>

4562

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<not_boundary<CharacterLike>, Tail...>) noexcept {

4565  bool

before =

false

;

4566  bool

after =

false

;

4568

static_assert(is_bidirectional(

typename

std::iterator_traits<Iterator>::iterator_category{}),

"To use boundary in regex you need to provide bidirectional iterator or range."

);

4570  if

(

last

!= current) {

4571

after = CharacterLike::match_char(*current,

f

);

4573  if

(begin != current) {

4574

before = CharacterLike::match_char(*

std::prev

(current),

f

);

4577  if

(before != after)

return

not_matched;

4583 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

size_t A

,

size_t B

,

typename

... Content,

typename

... Tail>

4584

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

, [[maybe_unused]]

const flags

&

f

,

R

captures,

ctll::list

<lazy_repeat<A,B,Content...>, Tail...>) noexcept {

4586  if

constexpr (

B

!= 0 &&

A

>

B

) {

4589  const

Iterator backup_current = current;

4593  while

(less_than<A>(

i

)) {

4596  if

(!outer_result)

return

not_matched;

4598

captures = outer_result.unmatch();

4599

current = outer_result.get_end_position();

4604  if

(

auto

outer_result = evaluate(begin, current,

last

, consumed_something(

f

, backup_current != current), captures,

ctll::list<Tail...>

())) {

4605  return

outer_result;

4608  while

(less_than_or_infinite<B>(

i

)) {

4611  if

(!inner_result)

return

not_matched;

4613  auto

outer_result = evaluate(begin, inner_result.get_end_position(),

last

, consumed_something(

f

), inner_result.unmatch(),

ctll::list<Tail...>

());

4616  return

outer_result;

4619

captures = inner_result.unmatch();

4620

current = inner_result.get_end_position();

4631 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

size_t A

,

size_t B

,

typename

... Content,

typename

... Tail>

4632

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

, [[maybe_unused]]

const flags

&

f

,

R

captures,

ctll::list

<possessive_repeat<A,B,Content...>, Tail...>) noexcept {

4634  if

constexpr ((

B

!= 0) && (

A

>

B

)) {

4637  const auto

backup_current = current;

4639  for

(

size_t i

{0}; less_than_or_infinite<B>(

i

); ++

i

) {

4643  if

(!inner_result) {

4644  if

(!less_than<A>(

i

))

break

;

4648

captures = inner_result.unmatch();

4649

current = inner_result.get_end_position();

4652  return

evaluate(begin, current,

last

, consumed_something(

f

, backup_current != current), captures,

ctll::list<Tail...>

());

4657 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

size_t A

,

size_t B

,

typename

... Content,

typename

... Tail>

4658 #ifdef CTRE_MSVC_GREEDY_WORKAROUND 4659

constexpr

inline void

evaluate_recursive(

R

&

result

,

size_t i

,

const

BeginIterator begin, Iterator current,

const

EndIterator

last

, [[maybe_unused]]

const flags

&

f

,

R

captures,

ctll::list

<repeat<A,B,Content...>, Tail...> stack) noexcept {

4661

constexpr

inline R

evaluate_recursive(

size_t i

,

const

BeginIterator begin, Iterator current,

const

EndIterator

last

, [[maybe_unused]]

const flags

&

f

,

R

captures,

ctll::list

<repeat<A,B,Content...>, Tail...> stack) noexcept {

4663  if

(less_than_or_infinite<B>(

i

)) {

4673  auto

tmp_current = current;

4674

tmp_current = inner_result.get_end_position();

4675  #ifdef CTRE_MSVC_GREEDY_WORKAROUND 4676

evaluate_recursive(

result

,

i

+1, begin, tmp_current,

last

,

f

, inner_result.unmatch(), stack);

4681  if

(

auto

rec_result = evaluate_recursive(

i

+1, begin, tmp_current,

last

,

f

, inner_result.unmatch(), stack)) {

4687  #ifdef CTRE_MSVC_GREEDY_WORKAROUND 4695 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

size_t A

,

size_t B

,

typename

... Content,

typename

... Tail>

4696

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

, [[maybe_unused]]

const flags

&

f

,

R

captures, [[maybe_unused]]

ctll::list

<repeat<A,B,Content...>, Tail...> stack) {

4698  if

constexpr ((

B

!= 0) && (

A

>

B

)) {

4702 #ifndef CTRE_DISABLE_GREEDY_OPT 4703  else if

constexpr (!collides(calculate_first(Content{}...), calculate_first(Tail{}...))) {

4704  return

evaluate(begin, current,

last

,

f

, captures,

ctll::list

<possessive_repeat<A,B,Content...>, Tail...>());

4710  while

(less_than<A>(

i

)) {

4713  if

(!inner_result)

return

not_matched;

4715

captures = inner_result.unmatch();

4716

current = inner_result.get_end_position();

4721 #ifdef CTRE_MSVC_GREEDY_WORKAROUND 4723

evaluate_recursive(

result

,

i

, begin, current,

last

,

f

, captures, stack);

4726  return

evaluate_recursive(

i

, begin, current,

last

,

f

, captures, stack);

4733 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

size_t

Id,

typename

... Content,

typename

... Tail>

4734

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<capture<Id, Content...>, Tail...>) noexcept {

4735  return

evaluate(begin, current,

last

,

f

, captures.template start_capture<Id>(current),

ctll::list

<sequence<Content...>, numeric_mark<Id>, Tail...>());

4739 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

size_t

Id,

typename

... Tail>

4740

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<numeric_mark<Id>, Tail...>) noexcept {

4745 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

size_t

Id,

typename

Name,

typename

... Content,

typename

... Tail>

4746

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<capture_with_name<Id, Name, Content...>, Tail...>) noexcept {

4747  return

evaluate(begin, current,

last

,

f

, captures.template start_capture<Id>(current),

ctll::list

<sequence<Content...>, numeric_mark<Id>, Tail...>());

4751 template

<

typename

Iterator>

struct

string_match {

4756 template

<

typename

Iterator,

typename

EndIterator> constexpr CTRE_FORCE_INLINE string_match<Iterator> match_against_range(Iterator current,

const

EndIterator

last

, Iterator range_current,

const

Iterator range_end,

flags

) noexcept {

4757  while

(

last

!= current && range_end != range_current) {

4758  if

(*current == *range_current) {

4762  return

{current,

false

};

4765  return

{current, range_current == range_end};

4769 template

<

typename R

,

typename

Id,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4770

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<back_reference_with_name<Id>, Tail...>) noexcept {

4772  if

(

const auto

ref = captures.template get<Id>()) {

4773  if

(

auto result

= match_against_range(current,

last

, ref.begin(), ref.end(),

f

);

result

.match) {

4781 template

<

typename R

,

size_t

Id,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4782

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<back_reference<Id>, Tail...>) noexcept {

4784  if

(

const auto

ref = captures.template get<Id>()) {

4785  if

(

auto result

= match_against_range(current,

last

, ref.begin(), ref.end(),

f

);

result

.match) {

4793 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4796  return

captures.matched();

4799 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Tail>

4802  return

captures.matched();

4806 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Content,

typename

... Tail>

4807

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<lookahead_positive<Content...>, Tail...>) noexcept {

4809  if

(

auto

lookahead_result = evaluate(begin, current,

last

,

f

, captures,

ctll::list

<sequence<Content...>, end_lookahead_mark>())) {

4810

captures = lookahead_result.unmatch();

4818 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Content,

typename

... Tail>

4819

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<lookahead_negative<Content...>, Tail...>) noexcept {

4821  if

(

auto

lookahead_result = evaluate(begin, current,

last

,

f

, captures,

ctll::list

<sequence<Content...>, end_lookahead_mark>())) {

4829

constexpr

bool

is_at_least_bidirectional(std::input_iterator_tag) {

4833

constexpr

bool

is_at_least_bidirectional(std::bidirectional_iterator_tag) {

4837 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Content,

typename

... Tail>

4838

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<lookbehind_positive<Content...>, Tail...>) noexcept {

4839

static_assert(is_at_least_bidirectional(

typename

std::iterator_traits<Iterator>::iterator_category{}),

"to use lookbehind you must provide bi-directional iterator"

);

4841  if

(

auto

lookbehind_result = evaluate(std::make_reverse_iterator(

last

), std::make_reverse_iterator(current), std::make_reverse_iterator(begin),

f

, captures,

ctll::list

<sequence<Content...>, end_lookbehind_mark>())) {

4842

captures = lookbehind_result.unmatch();

4850 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

... Content,

typename

... Tail>

4851

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<lookbehind_negative<Content...>, Tail...>) noexcept {

4852

static_assert(is_at_least_bidirectional(

typename

std::iterator_traits<Iterator>::iterator_category{}),

"to use negative lookbehind you must provide bi-directional iterator"

);

4854  if

(

auto

lookbehind_result = evaluate(std::make_reverse_iterator(

last

), std::make_reverse_iterator(current), std::make_reverse_iterator(begin),

f

, captures,

ctll::list

<sequence<Content...>, end_lookbehind_mark>())) {

4862 template

<

typename R

,

typename

BeginIterator,

typename

Iterator,

typename

EndIterator,

typename

Mode,

typename

... Tail>

4863

constexpr CTRE_FORCE_INLINE

R

evaluate(

const

BeginIterator begin, Iterator current,

const

EndIterator

last

,

const flags

&

f

,

R

captures,

ctll::list

<mode_switch<Mode>, Tail...>) noexcept {

4864  return

evaluate(begin, current,

last

,

f

+ Mode{}, captures,

ctll::list

<Tail...>());

4871 #ifndef CTRE__WRAPPER__HPP 4872 #define CTRE__WRAPPER__HPP 4874 #ifndef CTRE_V2__CTRE__RANGE__HPP 4875 #define CTRE_V2__CTRE__RANGE__HPP 4877 #ifndef CTRE_V2__CTRE__ITERATOR__HPP 4878 #define CTRE_V2__CTRE__ITERATOR__HPP 4886 struct

regex_end_iterator {

4887

constexpr regex_end_iterator() noexcept { }

4890 template

<

typename

BeginIterator,

typename

EndIterator,

typename

RE,

typename

ResultIterator = BeginIterator>

struct

regex_iterator {

4891  using value_type

= decltype(RE::template exec_with_result_iterator<ResultIterator>(std::declval<BeginIterator>(), std::declval<EndIterator>()));

4892  using

iterator_category = std::forward_iterator_tag;

4895  using

difference_type =

int

;

4897

BeginIterator orig_begin{};

4898

BeginIterator current{};

4902

constexpr CTRE_FORCE_INLINE regex_iterator() noexcept =

default

;

4903

constexpr CTRE_FORCE_INLINE regex_iterator(

const

regex_iterator &) noexcept =

default

;

4904

constexpr CTRE_FORCE_INLINE regex_iterator(regex_iterator &&) noexcept =

default

;

4906

constexpr CTRE_FORCE_INLINE regex_iterator(BeginIterator begin, EndIterator

last

) noexcept: orig_begin{begin}, current{begin}, end{

last

}, current_match{RE::template exec_with_result_iterator<ResultIterator>(current,

last

)} {

4907  if

(current_match) {

4908

current = current_match.template get<0>().end();

4912

constexpr CTRE_FORCE_INLINE regex_iterator & operator=(

const

regex_iterator &) noexcept =

default

;

4913

constexpr CTRE_FORCE_INLINE regex_iterator & operator=(regex_iterator &&) noexcept =

default

;

4916  return

current_match;

4918

constexpr CTRE_FORCE_INLINE regex_iterator & operator++() noexcept {

4919  if

(current == end) {

4920

current_match = decltype(current_match){};

4924

current_match = RE::template exec_with_result_iterator<ResultIterator>(orig_begin, current, end);

4926  if

(current_match) {

4927

current = current_match.template get<0>().end();

4931

constexpr CTRE_FORCE_INLINE regex_iterator operator++(

int

) noexcept {

4932  auto

previous = *

this

;

4936  friend

constexpr CTRE_FORCE_INLINE

bool operator==

(

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left,

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

4937  return

left.current == right.current;

4939  friend

constexpr CTRE_FORCE_INLINE

bool operator!=

(

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left,

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

4940  return

!(left.current == right.current);

4942  friend

constexpr CTRE_FORCE_INLINE

bool operator<

(

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left,

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

4943  return

left.current < right.current;

4945  friend

constexpr CTRE_FORCE_INLINE

bool operator>

(

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left,

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

4946  return

left.current > right.current;

4948  friend

constexpr CTRE_FORCE_INLINE

bool operator<=

(

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left,

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

4949  return

left.current <= right.current;

4951  friend

constexpr CTRE_FORCE_INLINE

bool operator>=

(

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left,

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

4952  return

left.current >= right.current;

4954  friend

constexpr CTRE_FORCE_INLINE

bool operator==

(

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left, regex_end_iterator) noexcept {

4955  return

!

bool

(left.current_match);

4957  friend

constexpr CTRE_FORCE_INLINE

bool operator==

(regex_end_iterator,

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

4958  return

!

bool

(right.current_match);

4960  friend

constexpr CTRE_FORCE_INLINE

bool operator!=

(

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left, regex_end_iterator) noexcept {

4961  return bool

(left.current_match);

4963  friend

constexpr CTRE_FORCE_INLINE

bool operator!=

(regex_end_iterator,

const

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

4964  return bool

(right.current_match);

4968 template

<

typename

BeginIterator,

typename

EndIterator,

typename

RE,

typename

ResultIterator = BeginIterator>

struct

regex_split_iterator {

4969  using value_type

= decltype(RE::template exec_with_result_iterator<ResultIterator>(std::declval<BeginIterator>(), std::declval<EndIterator>()));

4970  using

iterator_category = std::forward_iterator_tag;

4973  using

difference_type =

int

;

4975

BeginIterator orig_begin{};

4976

BeginIterator current{};

4979  bool

last_match{

false

};

4981

constexpr CTRE_FORCE_INLINE

void

modify_match() {

4982  auto tmp

= current_match.template get<0>().end();

4983

current_match.set_end_mark(current_match.template get<0>().begin());

4984

current_match.set_start_mark(current);

4988

constexpr CTRE_FORCE_INLINE

void

match_rest() {

4990

current_match.set_start_mark(current);

4991

current_match.matched();

4992

current = current_match.template get<0>().end();

4996

constexpr CTRE_FORCE_INLINE regex_split_iterator() noexcept =

default

;

4997

constexpr CTRE_FORCE_INLINE regex_split_iterator(

const

regex_split_iterator &) noexcept =

default

;

4998

constexpr CTRE_FORCE_INLINE regex_split_iterator(regex_split_iterator &&) noexcept =

default

;

5000

constexpr CTRE_FORCE_INLINE regex_split_iterator(BeginIterator begin, EndIterator

last

) noexcept: orig_begin{begin}, current{begin}, end{

last

}, current_match{RE::template exec_with_result_iterator<ResultIterator>(current,

last

)} {

5001  if

(current_match) {

5008

constexpr CTRE_FORCE_INLINE regex_split_iterator & operator=(

const

regex_split_iterator &) noexcept =

default

;

5009

constexpr CTRE_FORCE_INLINE regex_split_iterator & operator=(regex_split_iterator &&) noexcept =

default

;

5012  return

current_match;

5014

constexpr CTRE_FORCE_INLINE regex_split_iterator & operator++() noexcept {

5015  if

(current == end && last_match) {

5016

current_match = decltype(current_match){};

5020

current_match = RE::template exec_with_result_iterator<ResultIterator>(orig_begin, current, end);

5022  if

(current_match) {

5029

constexpr CTRE_FORCE_INLINE regex_split_iterator operator++(

int

) noexcept {

5030  auto

previous = *

this

;

5034  friend

constexpr CTRE_FORCE_INLINE

bool operator==

(

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left,

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

5035  return

left.current == right.current;

5037  friend

constexpr CTRE_FORCE_INLINE

bool operator!=

(

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left,

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

5038  return

!(left.current == right.current);

5040  friend

constexpr CTRE_FORCE_INLINE

bool operator<

(

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left,

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

5041  return

left.current < right.current;

5043  friend

constexpr CTRE_FORCE_INLINE

bool operator>

(

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left,

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

5044  return

left.current > right.current;

5046  friend

constexpr CTRE_FORCE_INLINE

bool operator<=

(

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left,

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

5047  return

left.current <= right.current;

5049  friend

constexpr CTRE_FORCE_INLINE

bool operator>=

(

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left,

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

5050  return

left.current >= right.current;

5052  friend

constexpr CTRE_FORCE_INLINE

bool operator==

(

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left, regex_end_iterator) noexcept {

5053  return

!

bool

(left.current_match);

5055  friend

constexpr CTRE_FORCE_INLINE

bool operator==

(regex_end_iterator,

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

5056  return

!

bool

(right.current_match);

5058  friend

constexpr CTRE_FORCE_INLINE

bool operator!=

(

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & left, regex_end_iterator) noexcept {

5059  return bool

(left.current_match);

5061  friend

constexpr CTRE_FORCE_INLINE

bool operator!=

(regex_end_iterator,

const

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator> & right) noexcept {

5062  return bool

(right.current_match);

5072 template

<

typename

> constexpr

bool

is_range =

false

;

5074 template

<

typename

BeginIterator,

typename

EndIterator,

typename

RE,

typename

ResultIterator = BeginIterator>

struct

regex_range {

5075

BeginIterator _begin;

5078

constexpr CTRE_FORCE_INLINE regex_range(BeginIterator begin, EndIterator end) noexcept: _begin{begin}, _end{end} { }

5080

constexpr CTRE_FORCE_INLINE

auto

begin()

const

noexcept {

5081  return

regex_iterator<BeginIterator, EndIterator, RE, ResultIterator>(_begin, _end);

5083

constexpr CTRE_FORCE_INLINE

auto

end()

const

noexcept {

5084  return

regex_end_iterator{};

5088 template

<

typename

... Ts> constexpr

bool

is_range<regex_range<Ts...>> =

true

;

5090 template

<

typename

BeginIterator,

typename

EndIterator,

typename

RE,

typename

ResultIterator = BeginIterator>

struct

regex_split_range {

5091

BeginIterator _begin;

5094

constexpr CTRE_FORCE_INLINE regex_split_range(BeginIterator begin, EndIterator end) noexcept: _begin{begin}, _end{end} { }

5096

constexpr CTRE_FORCE_INLINE

auto

begin()

const

noexcept {

5097  return

regex_split_iterator<BeginIterator, EndIterator, RE, ResultIterator>(_begin, _end);

5099

constexpr CTRE_FORCE_INLINE

auto

end()

const

noexcept {

5100  return

regex_end_iterator{};

5104 template

<

typename

... Ts> constexpr

bool

is_range<regex_split_range<Ts...>> =

true

;

5106 template

<

typename

Range,

typename

RE>

struct

multi_subject_range {

5107  struct

end_iterator { };

5109  using

first_type = decltype(std::declval<Range>().begin());

5110  using

last_type = decltype(std::declval<Range>().end());

5114  using

iterator_category = std::forward_iterator_tag;

5117  using

difference_type =

int

;

5119

first_type

first

{};

5123

constexpr CTRE_FORCE_INLINE iterator() noexcept =

default

;

5124

constexpr CTRE_FORCE_INLINE iterator(first_type

f

, last_type

l

) noexcept:

first

{

f

},

last

{

l

}, current_result{find_first()} { }

5126

constexpr CTRE_FORCE_INLINE

value_type

find_first() noexcept {

5128  if

(

auto

res = RE::exec(*

first

))

return

res;

5135  return

current_result;

5138

constexpr CTRE_FORCE_INLINE iterator & operator++() noexcept {

5140

current_result = find_first();

5143

constexpr CTRE_FORCE_INLINE iterator operator++(

int

) noexcept {

5144  auto

previous = *

this

;

5149  friend

constexpr CTRE_FORCE_INLINE

bool operator==

(

const

iterator & left,

const

iterator & right) noexcept {

5150  return

left.first == right.first;

5152  friend

constexpr CTRE_FORCE_INLINE

bool operator!=

(

const

iterator & left,

const

iterator & right) noexcept {

5153  return

!(left.first == right.first);

5155  friend

constexpr CTRE_FORCE_INLINE

bool operator<

(

const

iterator & left,

const

iterator & right) noexcept {

5156  return

left.first < right.first;

5158  friend

constexpr CTRE_FORCE_INLINE

bool operator>

(

const

iterator & left,

const

iterator & right) noexcept {

5159  return

left.first > right.first;

5161  friend

constexpr CTRE_FORCE_INLINE

bool operator<=

(

const

iterator & left,

const

iterator & right) noexcept {

5162  return

left.first <= right.first;

5164  friend

constexpr CTRE_FORCE_INLINE

bool operator>=

(

const

iterator & left,

const

iterator & right) noexcept {

5165  return

left.first >= right.first;

5167  friend

constexpr CTRE_FORCE_INLINE

bool operator==

(

const

iterator & left, end_iterator) noexcept {

5168  return

left.first == left.last;

5170  friend

constexpr CTRE_FORCE_INLINE

bool operator==

(end_iterator,

const

iterator & right) noexcept {

5171  return

right.first == right.last;

5173  friend

constexpr CTRE_FORCE_INLINE

bool operator!=

(

const

iterator & left, end_iterator) noexcept {

5174  return

left.first != left.last;

5176  friend

constexpr CTRE_FORCE_INLINE

bool operator!=

(end_iterator,

const

iterator & right) noexcept {

5177  return

right.first == right.last;

5183

constexpr CTRE_FORCE_INLINE multi_subject_range() noexcept =

default

;

5184

constexpr CTRE_FORCE_INLINE multi_subject_range(Range

r

) noexcept: range{

r

} { }

5186

constexpr CTRE_FORCE_INLINE

auto

begin()

const

noexcept {

5187  return

iterator{range.begin(), range.end()};

5189

constexpr CTRE_FORCE_INLINE

auto

end()

const

noexcept {

5190  return

end_iterator{};

5195 template

<

typename

... Ts> constexpr

bool

is_range<multi_subject_range<Ts...>> =

true

;

5199 #if defined __cpp_lib_ranges && __cpp_lib_ranges >= 201911 5200 namespace

std::ranges {

5202  template

<

typename

... Ts>

inline

constexpr

bool

enable_borrowed_range<::ctre::regex_range<Ts...>> =

true

;

5203  template

<

typename

... Ts>

inline

constexpr

bool

enable_borrowed_range<::ctre::regex_split_range<Ts...>> =

true

;

5204  template

<

typename

Range,

typename

RE>

inline

constexpr

bool

enable_borrowed_range<::ctre::multi_subject_range<Range, RE>> = enable_borrowed_range<Range>;

5205  template

<

typename

Range,

typename

RE>

inline

constexpr

bool

enable_view<::ctre::multi_subject_range<Range, RE>> =

true

;

5212 #include <string_view> 5216 template

<

typename

RE,

typename

Method =

void

,

typename

Modifier = singleline>

struct

regular_expression;

5218 struct

zero_terminated_string_end_iterator {

5220  using

self_type = zero_terminated_string_end_iterator;

5222  using

reference =

char

&;

5224  using

iterator_category = std::bidirectional_iterator_tag;

5225  using

difference_type =

int

;

5228  auto

operator++() noexcept -> self_type &;

5229  auto

operator++(

int

) noexcept -> self_type;

5231  auto operator--

(

int

) noexcept -> self_type;

5233  auto operator*

() noexcept -> reference;

5235

constexpr CTRE_FORCE_INLINE

friend bool operator==

(

const char

* ptr, zero_terminated_string_end_iterator) noexcept {

5236  return

*ptr ==

'\0'

;

5238

constexpr CTRE_FORCE_INLINE

friend bool operator==

(

const wchar_t

* ptr, zero_terminated_string_end_iterator) noexcept {

5241

constexpr CTRE_FORCE_INLINE

friend bool operator!=

(

const char

* ptr, zero_terminated_string_end_iterator) noexcept {

5242  return

*ptr !=

'\0'

;

5244

constexpr CTRE_FORCE_INLINE

friend bool operator!=

(

const wchar_t

* ptr, zero_terminated_string_end_iterator) noexcept {

5247

constexpr CTRE_FORCE_INLINE

friend bool operator==

(zero_terminated_string_end_iterator,

const char

* ptr) noexcept {

5248  return

*ptr ==

'\0'

;

5250

constexpr CTRE_FORCE_INLINE

friend bool operator==

(zero_terminated_string_end_iterator,

const wchar_t

* ptr) noexcept {

5253

constexpr CTRE_FORCE_INLINE

friend bool operator!=

(zero_terminated_string_end_iterator,

const char

* ptr) noexcept {

5254  return

*ptr !=

'\0'

;

5256

constexpr CTRE_FORCE_INLINE

friend bool operator!=

(zero_terminated_string_end_iterator,

const wchar_t

* ptr) noexcept {

5261 template

<

typename

T>

class

RangeLikeType {

5262  template

<

typename

Y>

static auto test

(Y *) -> decltype(std::declval<const Y &>().begin(), std::declval<const Y &>().end(), std::true_type());

5263  template

<

typename

>

static auto test

(...) -> std::false_type;

5265  static inline

constexpr

bool value

= decltype(

test

<std::remove_reference_t<std::remove_const_t<T>>>(

nullptr

))::

value

;

5268 struct

match_method {

5269  template

<

typename

Modifier = singleline,

typename

ResultIterator =

void

,

typename

RE,

typename

IteratorBegin,

typename

IteratorEnd> constexpr CTRE_FORCE_INLINE

static auto

exec(IteratorBegin orig_begin, IteratorBegin begin, IteratorEnd end, RE) noexcept {

5270  using

result_iterator = std::conditional_t<std::is_same_v<ResultIterator, void>, IteratorBegin, ResultIterator>;

5272  return

evaluate(orig_begin, begin, end, Modifier{}, return_type<result_iterator, RE>{},

ctll::list<start_mark, RE, assert_subject_end, end_mark, accept>

());

5275  template

<

typename

Modifier = singleline,

typename

ResultIterator =

void

,

typename

RE,

typename

IteratorBegin,

typename

IteratorEnd> constexpr CTRE_FORCE_INLINE

static auto

exec(IteratorBegin begin, IteratorEnd end, RE) noexcept {

5276  return

exec<Modifier, ResultIterator>(begin, begin, end, RE{});

5280 struct

search_method {

5281  template

<

typename

Modifier = singleline,

typename

ResultIterator =

void

,

typename

RE,

typename

IteratorBegin,

typename

IteratorEnd> constexpr CTRE_FORCE_INLINE

static auto

exec(IteratorBegin orig_begin, IteratorBegin begin, IteratorEnd end, RE) noexcept {

5282  using

result_iterator = std::conditional_t<std::is_same_v<ResultIterator, void>, IteratorBegin, ResultIterator>;

5284

constexpr

bool

fixed = starts_with_anchor(Modifier{},

ctll::list<RE>

{});

5288  for

(; end != it && !fixed; ++it) {

5299  if

(!

out

)

out

.set_end_mark(it);

5303  template

<

typename

Modifier = singleline,

typename

ResultIterator =

void

,

typename

RE,

typename

IteratorBegin,

typename

IteratorEnd> constexpr CTRE_FORCE_INLINE

static auto

exec(IteratorBegin begin, IteratorEnd end, RE) noexcept {

5304  return

exec<Modifier, ResultIterator>(begin, begin, end, RE{});

5308 struct

starts_with_method {

5309  template

<

typename

Modifier = singleline,

typename

ResultIterator =

void

,

typename

RE,

typename

IteratorBegin,

typename

IteratorEnd> constexpr CTRE_FORCE_INLINE

static auto

exec(IteratorBegin orig_begin, IteratorBegin begin, IteratorEnd end, RE) noexcept {

5310  using

result_iterator = std::conditional_t<std::is_same_v<ResultIterator, void>, IteratorBegin, ResultIterator>;

5314  template

<

typename

Modifier = singleline,

typename

ResultIterator =

void

,

typename

RE,

typename

IteratorBegin,

typename

IteratorEnd> constexpr CTRE_FORCE_INLINE

static auto

exec(IteratorBegin begin, IteratorEnd end, RE) noexcept {

5315  return

exec<Modifier, ResultIterator>(begin, begin, end, RE{});

5320 struct

range_method {

5321  template

<

typename

Modifier = singleline,

typename

ResultIterator =

void

,

typename

RE,

typename

IteratorBegin,

typename

IteratorEnd> constexpr CTRE_FORCE_INLINE

static auto

exec(IteratorBegin begin, IteratorEnd end, RE) noexcept {

5322  using

result_iterator = std::conditional_t<std::is_same_v<ResultIterator, void>, IteratorBegin, ResultIterator>;

5323  using

wrapped_regex = regular_expression<RE, search_method, Modifier>;

5325  return

regex_range<IteratorBegin, IteratorEnd, wrapped_regex, result_iterator>(begin, end);

5329 struct

tokenize_method {

5330  template

<

typename

Modifier = singleline,

typename

ResultIterator =

void

,

typename

RE,

typename

IteratorBegin,

typename

IteratorEnd> constexpr CTRE_FORCE_INLINE

static auto

exec(IteratorBegin begin, IteratorEnd end, RE) noexcept {

5331  using

result_iterator = std::conditional_t<std::is_same_v<ResultIterator, void>, IteratorBegin, ResultIterator>;

5332  using

wrapped_regex = regular_expression<RE, starts_with_method, Modifier>;

5334  return

regex_range<IteratorBegin, IteratorEnd, wrapped_regex, result_iterator>(begin, end);

5338 struct

split_method {

5339  template

<

typename

Modifier = singleline,

typename

ResultIterator =

void

,

typename

RE,

typename

IteratorBegin,

typename

IteratorEnd> constexpr CTRE_FORCE_INLINE

static auto

exec(IteratorBegin begin, IteratorEnd end, RE) noexcept {

5340  using

result_iterator = std::conditional_t<std::is_same_v<ResultIterator, void>, IteratorBegin, ResultIterator>;

5341  using

wrapped_regex = regular_expression<RE, search_method, Modifier>;

5343  return

regex_split_range<IteratorBegin, IteratorEnd, wrapped_regex, result_iterator>(begin, end);

5347 struct

iterator_method {

5348  template

<

typename

Modifier = singleline,

typename

ResultIterator =

void

,

typename

RE,

typename

IteratorBegin,

typename

IteratorEnd> constexpr CTRE_FORCE_INLINE

static auto

exec(IteratorBegin begin, IteratorEnd end, RE) noexcept {

5349  using

result_iterator = std::conditional_t<std::is_same_v<ResultIterator, void>, IteratorBegin, ResultIterator>;

5350  using

wrapped_regex = regular_expression<RE, search_method, Modifier>;

5352  return

regex_iterator<IteratorBegin, IteratorEnd, wrapped_regex, result_iterator>(begin, end);

5354

constexpr CTRE_FORCE_INLINE

static auto

exec() noexcept {

5355  return

regex_end_iterator{};

5359 template

<

typename

RE,

typename

Method,

typename

Modifier>

struct

regular_expression {

5360

constexpr CTRE_FORCE_INLINE regular_expression() noexcept { }

5361

constexpr CTRE_FORCE_INLINE regular_expression(RE) noexcept { }

5363  template

<

typename

ResultIterator,

typename

IteratorBegin,

typename

IteratorEnd> constexpr CTRE_FORCE_INLINE

static auto

exec_with_result_iterator(IteratorBegin orig_begin, IteratorBegin begin, IteratorEnd end) noexcept {

5364  return

Method::template exec<Modifier, ResultIterator>(orig_begin, begin, end, RE{});

5366  template

<

typename

ResultIterator,

typename

IteratorBegin,

typename

IteratorEnd> constexpr CTRE_FORCE_INLINE

static auto

exec_with_result_iterator(IteratorBegin begin, IteratorEnd end) noexcept {

5367  return

Method::template exec<Modifier, ResultIterator>(begin, end, RE{});

5369  template

<

typename

Range> constexpr CTRE_FORCE_INLINE

static auto

multi_exec(Range && range) noexcept {

5370  return

multi_subject_range<Range, regular_expression>{std::forward<Range>(range)};

5372

constexpr CTRE_FORCE_INLINE

static auto

exec() noexcept {

5373  return

Method::exec();

5375  template

<

typename

IteratorBegin,

typename

IteratorEnd> constexpr CTRE_FORCE_INLINE

static auto

exec(IteratorBegin begin, IteratorEnd end) noexcept {

5376  return

Method::template exec<Modifier>(begin, end, RE{});

5378  static

constexpr CTRE_FORCE_INLINE

auto

exec(

const char

* s) noexcept {

5379  return

Method::template exec<Modifier>(s, zero_terminated_string_end_iterator(), RE{});

5381  static

constexpr CTRE_FORCE_INLINE

auto

exec(

const wchar_t

* s) noexcept {

5382  return

Method::template exec<Modifier>(s, zero_terminated_string_end_iterator(), RE{});

5384  static

constexpr CTRE_FORCE_INLINE

auto

exec(std::string_view sv) noexcept {

5385  return

exec(sv.begin(), sv.end());

5387  static

constexpr CTRE_FORCE_INLINE

auto

exec(std::wstring_view sv) noexcept {

5388  return

exec(sv.begin(), sv.end());

5390 #ifdef CTRE_ENABLE_UTF8_RANGE 5391  static

constexpr CTRE_FORCE_INLINE

auto

exec(std::u8string_view sv) noexcept {

5392  return

exec_with_result_iterator<const char8_t *>(utf8_range(sv).begin(), utf8_range(sv).end());

5395  static

constexpr CTRE_FORCE_INLINE

auto

exec(std::u16string_view sv) noexcept {

5396  return

exec(sv.begin(), sv.end());

5398  static

constexpr CTRE_FORCE_INLINE

auto

exec(std::u32string_view sv) noexcept {

5399  return

exec(sv.begin(), sv.end());

5402  return

exec(std::begin(range), std::end(range));

5406  template

<

typename

... Args> CTRE_FORCE_INLINE constexpr

auto

operator()(Args && ... args)

const

noexcept {

5407  return

exec(std::forward<Args>(args)...);

5410  template

<

typename

... Args> CTRE_FORCE_INLINE constexpr

auto

try_extract(Args && ... args)

const

noexcept {

5411  return

exec(std::forward<Args>(args)...);

5415  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto match

(Args && ... args) noexcept {

5416  return

regular_expression<RE, match_method, singleline>::exec(std::forward<Args>(args)...);

5418  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto

search(Args && ... args) noexcept {

5419  return

regular_expression<RE, search_method, singleline>::exec(std::forward<Args>(args)...);

5421  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto

starts_with(Args && ... args) noexcept {

5422  return

regular_expression<RE, starts_with_method, singleline>::exec(std::forward<Args>(args)...);

5424  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto

range(Args && ... args) noexcept {

5425  return

regular_expression<RE, range_method, singleline>::exec(std::forward<Args>(args)...);

5427  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto split

(Args && ... args) noexcept {

5428  return

regular_expression<RE, split_method, singleline>::exec(std::forward<Args>(args)...);

5430  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto

tokenize(Args && ... args) noexcept {

5431  return

regular_expression<RE, tokenize_method, singleline>::exec(std::forward<Args>(args)...);

5433  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto

iterator(Args && ... args) noexcept {

5434  return

regular_expression<RE, iterator_method, singleline>::exec(std::forward<Args>(args)...);

5437  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto

multiline_match(Args && ... args) noexcept {

5438  return

regular_expression<RE, match_method, multiline>::exec(std::forward<Args>(args)...);

5440  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto

multiline_search(Args && ... args) noexcept {

5441  return

regular_expression<RE, search_method, multiline>::exec(std::forward<Args>(args)...);

5443  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto

multiline_starts_with(Args && ... args) noexcept {

5444  return

regular_expression<RE, starts_with_method, multiline>::exec(std::forward<Args>(args)...);

5446  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto

multiline_range(Args && ... args) noexcept {

5447  return

regular_expression<RE, range_method, multiline>::exec(std::forward<Args>(args)...);

5449  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto

multiline_split(Args && ... args) noexcept {

5450  return

regular_expression<RE, split_method, multiline>::exec(std::forward<Args>(args)...);

5452  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto

multiline_tokenize(Args && ... args) noexcept {

5453  return

regular_expression<RE, tokenize_method, multiline>::exec(std::forward<Args>(args)...);

5455  template

<

typename

... Args>

static

constexpr CTRE_FORCE_INLINE

auto

multiline_iterator(Args && ... args) noexcept {

5456  return

regular_expression<RE, iterator_method, multiline>::exec(std::forward<Args>(args)...);

5461 template

<

typename

Range,

typename

RE,

typename

Modifier> constexpr

auto operator|

(Range && range, regular_expression<RE, range_method, Modifier> re) noexcept {

5462  return

re.exec(std::forward<Range>(range));

5465 template

<

typename

Range,

typename

RE,

typename

Modifier> constexpr

auto operator|

(Range && range, regular_expression<RE, tokenize_method, Modifier> re) noexcept {

5466  return

re.exec(std::forward<Range>(range));

5469 template

<

typename

Range,

typename

RE,

typename

Modifier> constexpr

auto operator|

(Range && range, regular_expression<RE, split_method, Modifier> re) noexcept {

5470  return

re.exec(std::forward<Range>(range));

5473 template

<

typename

Range,

typename

RE,

typename

Modifier> constexpr

auto operator|

(Range && range, regular_expression<RE, iterator_method, Modifier> re) noexcept =

delete

;

5475 template

<

typename

Range,

typename

RE,

typename

Method,

typename

Modifier> constexpr

auto operator|

(Range && range, regular_expression<RE, Method, Modifier> re) noexcept {

5476  return

re.multi_exec(std::forward<Range>(range));

5480 template

<

size_t

>

struct

problem_at_position;

5482 template

<>

struct

problem_at_position<~static_cast<size_t>(0)> {

5483

constexpr

operator bool

()

const

noexcept {

5488 #if CTRE_CNTTP_COMPILER_CHECK 5489 #define CTRE_REGEX_INPUT_TYPE ctll::fixed_string 5490 #define CTRE_REGEX_TEMPLATE_COPY_TYPE auto 5492 #define CTRE_REGEX_INPUT_TYPE const auto & 5493 #define CTRE_REGEX_TEMPLATE_COPY_TYPE const auto & 5496 template

<CTRE_REGEX_TEMPLATE_COPY_TYPE input>

struct

regex_builder {

5497  static

constexpr

auto

_input = input;

5500  static

constexpr

auto n

= result::is_correct ? ~static_cast<size_t>(0) : result::position;

5502

static_assert(result::is_correct && problem_at_position<n>{},

"Regular Expression contains syntax error."

);

5523 static

constexpr

inline auto

sentinel = regex_end_iterator();

5541 static

constexpr

inline auto

multiline_sentinel = regex_end_iterator();

5554 #if !CTRE_CNTTP_COMPILER_CHECK 5555 template

<

typename

CharT, CharT... input>

static inline

constexpr

auto

_fixed_string_reference =

ctll::fixed_string

<

sizeof

...(input)>({input...});

5558 namespace

literals {

5563 #pragma clang diagnostic push 5564 #pragma clang diagnostic ignored "-Wgnu-string-literal-operator-template" 5565 #define CTRE_ENABLE_LITERALS 5570 #if _MSVC_LANG >= 202002L 5571 #define CTRE_ENABLE_LITERALS 5574 #define CTRE_ENABLE_LITERALS 5578 #ifdef __INTEL_COMPILER 5580 #elif defined __GNUC__ 5582 #define CTRE_ENABLE_LITERALS 5583 #elif __GNUC__ >= 10 5584 #if !CTRE_CNTTP_COMPILER_CHECK 5587 #define CTRE_ENABLE_LITERALS 5592 #ifdef CTRE_ENABLE_LITERALS 5597 #if !CTRE_CNTTP_COMPILER_CHECK 5598 template

<

typename

CharT, CharT... charpack> CTRE_FLATTEN constexpr CTRE_FORCE_INLINE

auto operator""

_ctre() noexcept {

5599

constexpr

auto

& _input = _fixed_string_reference<CharT, charpack...>;

5601 template

<ctll::fixed_

string

input> CTRE_FLATTEN constexpr CTRE_FORCE_INLINE

auto operator""

_ctre() noexcept {

5602

constexpr

auto

_input = input;

5605

static_assert(

tmp

(),

"Regular Expression contains syntax error."

);

5606  if

constexpr (

tmp

()) {

5607  using

re = decltype(

front

(

typename

tmp::output_type::stack_type()));

5608  return

ctre::regular_expression(re());

5610  return

ctre::regular_expression(reject());

5615 #if !CTRE_CNTTP_COMPILER_CHECK 5616 template

<

typename

CharT, CharT... charpack> CTRE_FLATTEN constexpr CTRE_FORCE_INLINE

auto operator""

_ctre_id() noexcept {

5617  return id

<charpack...>();

5625 namespace

test_literals {

5627 #ifdef CTRE_ENABLE_LITERALS 5629 #if !CTRE_CNTTP_COMPILER_CHECK 5630 template

<

typename

CharT, CharT... charpack> CTRE_FLATTEN constexpr

inline auto operator""

_ctre_test() noexcept {

5631

constexpr

auto

& _input = _fixed_string_reference<CharT, charpack...>;

5633 template

<ctll::fixed_

string

input> CTRE_FLATTEN constexpr

inline auto operator""

_ctre_test() noexcept {

5634

constexpr

auto

_input = input;

5639 #if !CTRE_CNTTP_COMPILER_CHECK 5640 template

<

typename

CharT, CharT... charpack> CTRE_FLATTEN constexpr

inline auto operator""

_ctre_gen() noexcept {

5641

constexpr

auto

& _input = _fixed_string_reference<CharT, charpack...>;

5643 template

<ctll::fixed_

string

input> CTRE_FLATTEN constexpr

inline auto operator""

_ctre_gen() noexcept {

5644

constexpr

auto

_input = input;

5647

static_assert(

tmp

(),

"Regular Expression contains syntax error."

);

5648  return typename

tmp::output_type::stack_type();

5651 #if !CTRE_CNTTP_COMPILER_CHECK 5652 template

<

typename

CharT, CharT... charpack> CTRE_FLATTEN constexpr CTRE_FORCE_INLINE

auto operator""

_ctre_syntax() noexcept {

5653

constexpr

auto

& _input = _fixed_string_reference<CharT, charpack...>;

5655 template

<ctll::fixed_

string

input> CTRE_FLATTEN constexpr CTRE_FORCE_INLINE

auto operator""

_ctre_syntax() noexcept {

5656

constexpr

auto

_input = input;

5664 #pragma clang diagnostic pop 5675 #ifndef CTRE_V2__CTRE__FUNCTIONS__HPP 5676 #define CTRE_V2__CTRE__FUNCTIONS__HPP 5680 #if !CTRE_CNTTP_COMPILER_CHECK 5685

constexpr pattern(

const

CharT (&input)[

N

]) noexcept: parent(input) { }

5688 template

<

typename

CharT,

size_t

N> pattern(

const

CharT (&)[

N

]) -> pattern<CharT, N>;

5694

constexpr

fixed_string

(

const

CharT (&input)[

N

]) noexcept: parent(input) { }

5697 template

<

typename

CharT,

size_t

N>

fixed_string

(

const

CharT (&)[

N

]) -> fixed_string<CharT, N>;

5700 #if CTRE_CNTTP_COMPILER_CHECK 5701 template

<ctll::fixed_

string

input,

typename

Modifier =

void

> CTRE_FLATTEN constexpr CTRE_FORCE_INLINE

auto

re() noexcept {

5702

constexpr

auto

_input = input;

5704 template

<auto & input,

typename

Modifier =

void

> CTRE_FLATTEN constexpr CTRE_FORCE_INLINE

auto

re() noexcept {

5705

constexpr

auto

& _input = input;

5709

static_assert(

tmp

(),

"Regular Expression contains syntax error."

);

5710  using

regex = decltype(

front

(

typename

tmp::output_type::stack_type()));

5711  return

ctre::regular_expression<regex, Modifier, singleline>();

5718 #ifndef CTRE_V2__CTRE__OPERATORS__HPP 5719 #define CTRE_V2__CTRE__OPERATORS__HPP 5721 template

<

typename

A,

typename

B> constexpr

auto operator|

(ctre::regular_expression<A>, ctre::regular_expression<B>) -> ctre::regular_expression<ctre::select<A,B>> {

5725 template

<

typename

A,

typename

B> constexpr

auto operator>>

(ctre::regular_expression<A>, ctre::regular_expression<B>) -> ctre::regular_expression<ctre::sequence<A,B>> {

5733 #ifndef CTRE_V2__UNICODE_CODE_DB__HPP 5734 #define CTRE_V2__UNICODE_CODE_DB__HPP 5736 #define CTRE_UNICODE_SYNOPSYS_WAS_INCLUDED 5738 #include <string_view> 5740 #ifndef CTRE_UNICODE_SYNOPSYS_WAS_INCLUDED 5742 enum class

category;

5743 enum class

property;

5744 enum class version

: unsigned char;

5748

struct script_extensions_view {

5749

constexpr script_extensions_view(char32_t);

5754

constexpr iterator(char32_t c);

5757

constexpr iterator& operator++(

int

);

5759

constexpr iterator operator++();

5770

constexpr iterator begin()

const

;

5771

constexpr sentinel end()

const

;

5777 struct

numeric_value {

5779

constexpr

double value

()

const

;

5780

constexpr

long long

numerator()

const

;

5781

constexpr

int

denominator()

const

;

5785

constexpr numeric_value() =

default

;

5786

constexpr numeric_value(

long long n

,

int16_t

d);

5790  friend

constexpr numeric_value cp_numeric_value(char32_t cp);

5793

constexpr category cp_category(char32_t cp);

5794

constexpr script cp_script(char32_t cp);

5795

constexpr script_extensions_view cp_script_extensions(char32_t cp);

5796

constexpr

version

cp_age(char32_t cp);

5797

constexpr block cp_block(char32_t cp);

5798

constexpr

bool

cp_is_valid(char32_t cp);

5799

constexpr

bool

cp_is_assigned(char32_t cp);

5800

constexpr

bool

cp_is_ascii(char32_t cp);

5801

constexpr numeric_value cp_numeric_value(char32_t cp);

5804

constexpr

bool

cp_script_is(char32_t);

5806

constexpr

bool

cp_property_is(char32_t);

5808

constexpr

bool

cp_category_is(char32_t);

5811  enum class

binary_prop;

5812

constexpr

int

propnamecomp(std::string_view sa, std::string_view sb);

5813

constexpr binary_prop binary_prop_from_string(std::string_view s);

5815  template

<binary_prop p>

5816

constexpr

bool

get_binary_prop(char32_t) =

delete

;

5818

constexpr script script_from_string(std::string_view s);

5819

constexpr block block_from_string(std::string_view s);

5820

constexpr

version

age_from_string(std::string_view

a

);

5821

constexpr category category_from_string(std::string_view

a

);

5823

constexpr

bool

is_unassigned(category cat);

5824

constexpr

bool

is_unknown(script s);

5825

constexpr

bool

is_unknown(block

b

);

5826

constexpr

bool

is_unassigned(

version

v);

5827

constexpr

bool

is_unknown(binary_prop s);

5833 #include <algorithm> 5834 #include <string_view> 5836 namespace

uni::detail {

5838 template

<

class

ForwardIt,

class

T,

class

Compare>

5840

ForwardIt it =

first

;

5841  typename

std::iterator_traits<ForwardIt>::difference_type

count

= std::distance(

first

,

last

);

5842  typename

std::iterator_traits<ForwardIt>::difference_type step =

count

/ 2;

5844  while

(

count

> 0) {

5847

std::advance(it, step);

5848  if

(!comp(

value

, *it)) {

5857 template

<

class

ForwardIt,

class

T,

class

Compare>

5859

ForwardIt it =

first

;

5860  typename

std::iterator_traits<ForwardIt>::difference_type

count

= std::distance(

first

,

last

);

5861  typename

std::iterator_traits<ForwardIt>::difference_type step =

count

/ 2;

5863  while

(

count

> 0) {

5866

std::advance(it, step);

5867  if

(comp(*it,

value

)) {

5876 template

<

class

ForwardIt,

class

T>

5877

constexpr ForwardIt lower_bound(ForwardIt

first

, ForwardIt

last

,

const T

&

value

) {

5878

ForwardIt it =

first

;

5879  typename

std::iterator_traits<ForwardIt>::difference_type

count

= std::distance(

first

,

last

);

5880  typename

std::iterator_traits<ForwardIt>::difference_type step =

count

/ 2;

5882  while

(

count

> 0) {

5885

std::advance(it, step);

5895 template

<

class

ForwardIt,

class

T>

5896

constexpr

bool

binary_search(ForwardIt

first

, ForwardIt

last

,

const T

&

value

) {

5900 template

<

typename

T, auto N>

5901 struct

compact_range {

5903

constexpr

T value

(char32_t cp,

T

default_value)

const

{

5904  const auto

end = std::end(_data);

5906

detail::upper_bound(std::begin(_data), end, cp, [](char32_t local_cp,

uint32_t

v) {

5907

char32_t c = (v >> 8);

5908  return

local_cp < c;

5911  return

default_value;

5916 template

<

class T

,

class

...

U

>

5917

compact_range(

T

,

U

...) -> compact_range<

T

,

sizeof

...(U) + 1>;

5919 template

<

typename

T, auto N>

5920 struct

compact_list {

5922

constexpr

T value

(char32_t cp,

T

default_value)

const

{

5923  const auto

end = std::end(_data);

5925

detail::lower_bound(std::begin(_data), end, cp, [](

uint32_t

v, char32_t local_cp) {

5926

char32_t c = (v >> 8);

5927  return

c < local_cp;

5929  if

(it == end || ((*it) >> 8) != cp)

5930  return

default_value;

5934 template

<

class T

,

class

...

U

>

5935

compact_list(

T

,

U

...) -> compact_list<

T

,

sizeof

...(U) + 1>;

5937 template

<

typename

T, std::

size_t

N>

5942 template

<

typename

T>

5947 template

<

typename

T, std::

size_t

N>

5950 template

<std::size_t r1_s, std::size_t r2_s,

int16_t

r2_t_f,

int16_t

r2_t_b, std::size_t r3_s,

5952  int16_t

r5_t_b, std::size_t r6_s>

5961

array_t<std::uint64_t, r3_s>

r3

;

5964

array_t<std::uint8_t, r4_s>

r4

;

5965

array_t<std::uint8_t, r5_s>

r5

;

5966

array_t<std::uint64_t, r6_s>

r6

;

5968

constexpr

bool lookup

(char32_t u)

const

{

5971  if

constexpr(r1_s == 0) {

5974  return

trie_range_leaf(c,

r1

[std::size_t(c >> 6)]);

5976

}

else if

(c < 0x10000) {

5977  if

constexpr(r3_s == 0) {

5980

std::size_t

i

= (std::size_t(c >> 6) - 0x20);

5982  if

(

i

>= r2_t_f &&

i

< r2_t_f + r2_s)

5983

child =

r2

[

i

- r2_t_f];

5984  return

trie_range_leaf(c,

r3

[child]);

5987  if

constexpr(r6_s == 0)

5989

std::size_t i4 = (c >> 12) - 0x10;

5991  if

constexpr(r4_s > 0) {

5992  if

(i4 >= r4_t_f && i4 < r4_t_f + r4_s)

5993

child =

r4

[i4 - r4_t_f];

5996

std::size_t i5 =

static_cast<

std::size_t

>

(std::size_t(child << 6) +

5997

(std::size_t(c >> 6) & std::size_t(0x3f)));

5999  if

constexpr(r5_s != 0) {

6000  if

(i5 >= std::size_t(r5_t_f) && i5 < std::size_t(r5_t_f) + r5_s)

6001  leaf

=

r5

[i5 - std::size_t(r5_t_f)];

6003  return

trie_range_leaf(c,

r6

[

leaf

]);

6008  return

(chunk >> (c & 0b111111)) & 0b1;

6012 template

<std::

size_t

size>

6015

constexpr

bool lookup

(char32_t u)

const

{

6016  if

constexpr(

size

< 20) {

6017  for

(

auto

it = std::begin(

data

); it != std::end(

data

); ++it) {

6020  if

(it == std::end(

data

))

6025  return

detail::binary_search(std::begin(

data

), std::end(

data

), u);

6031 struct

range_array {

6033

constexpr

bool lookup

(char32_t cp)

const

{

6034  const auto

end = std::end(_data);

6036

detail::upper_bound(std::begin(_data), end, cp, [](char32_t local_cp,

uint32_t

v) {

6037

char32_t c = (v >> 8);

6038  return

local_cp < c;

6043  return

(*it) & 0xFF;

6047 template

<

class

...

U

>

6048

range_array(

U

...) -> range_array<

sizeof

...(U)>;

6050

constexpr

char

propcharnorm(

char a

) {

6051  if

(

a

>=

'A'

&&

a

<=

'Z'

)

6052  return static_cast<char>

(

a

+ char(32));

6053  if

(

a

==

' '

||

a

==

'-'

)

6058

constexpr

int

propcharcomp(

char a

,

char b

) {

6059  a

= propcharnorm(

a

);

6060  b

= propcharnorm(

b

);

6068

constexpr

int

propnamecomp(std::string_view sa, std::string_view sb) {

6070  const char

*

a

= sa.data();

6071  const char

*

b

= sb.data();

6073  const char

* ae = sa.data() + sa.size();

6074  const char

* be = sb.data() + sb.size();

6076  for

(;

a

!= ae &&

b

!= be;

a

++,

b

++) {

6077  auto

res = propcharcomp(*

a

, *

b

);

6081  if

(sa.size() < sb.size())

6083  else if

(sb.size() < sa.size())

6088 template

<

typename

A,

typename

B>

6094 template

<

typename

A,

typename

B>

6095

pair(

A

,

B

) -> pair<A, B>;

6097 struct

string_with_idx {

6107  return static_cast<double>

(numerator()) /

static_cast<double>

(_d);

6110

constexpr

long long

numeric_value::numerator()

const

{

6114

constexpr

int

numeric_value::denominator()

const

{

6122

constexpr numeric_value::numeric_value(

long long n

,

int16_t

d) : _n(

n

), _d(d) {}

6153

latest_version = v14_0

6155 enum class

category {

6173

lowercase_letter = ll,

6175

modifier_letter = lm,

6179

titlecase_letter =

lt

,

6181

uppercase_letter = lu,

6187

enclosing_mark = me,

6189

nonspacing_mark = mn,

6193

decimal_number = nd,

6201

connector_punctuation = pc,

6203

dash_punctuation = pd,

6205

close_punctuation = pe,

6207

final_punctuation = pf,

6209

initial_punctuation =

pi

,

6211

other_punctuation = po,

6213

open_punctuation = ps,

6217

currency_symbol = sc,

6219

modifier_symbol = sk,

6227

line_separator = zl,

6229

paragraph_separator = zp,

6231

space_separator = zs,

6238

ascii = basic_latin,

6240

latin_1_sup = latin_1_supplement,

6242

latin_ext_a = latin_extended_a,

6244

latin_ext_b = latin_extended_b,

6246

ipa_ext = ipa_extensions,

6247

spacing_modifier_letters,

6248

modifier_letters = spacing_modifier_letters,

6249

combining_diacritical_marks,

6250

diacriticals = combining_diacritical_marks,

6252

greek = greek_and_coptic,

6254

cyrillic_supplement,

6255

cyrillic_sup = cyrillic_supplement,

6261

arabic_sup = arabic_supplement,

6267

syriac_sup = syriac_supplement,

6269

arabic_ext_b = arabic_extended_b,

6271

arabic_ext_a = arabic_extended_a,

6290

ethiopic_supplement,

6291

ethiopic_sup = ethiopic_supplement,

6293

unified_canadian_aboriginal_syllabics,

6294

ucas = unified_canadian_aboriginal_syllabics,

6303

unified_canadian_aboriginal_syllabics_extended,

6304

ucas_ext = unified_canadian_aboriginal_syllabics_extended,

6311

combining_diacritical_marks_extended,

6312

diacriticals_ext = combining_diacritical_marks_extended,

6318

cyrillic_extended_c,

6319

cyrillic_ext_c = cyrillic_extended_c,

6321

georgian_ext = georgian_extended,

6322

sundanese_supplement,

6323

sundanese_sup = sundanese_supplement,

6325

vedic_ext = vedic_extensions,

6326

phonetic_extensions,

6327

phonetic_ext = phonetic_extensions,

6328

phonetic_extensions_supplement,

6329

phonetic_ext_sup = phonetic_extensions_supplement,

6330

combining_diacritical_marks_supplement,

6331

diacriticals_sup = combining_diacritical_marks_supplement,

6332

latin_extended_additional,

6333

latin_ext_additional = latin_extended_additional,

6335

greek_ext = greek_extended,

6336

general_punctuation,

6337

punctuation = general_punctuation,

6338

superscripts_and_subscripts,

6339

super_and_sub = superscripts_and_subscripts,

6341

combining_diacritical_marks_for_symbols,

6342

diacriticals_for_symbols = combining_diacritical_marks_for_symbols,

6346

mathematical_operators,

6347

math_operators = mathematical_operators,

6348

miscellaneous_technical,

6349

misc_technical = miscellaneous_technical,

6351

optical_character_recognition,

6352

ocr = optical_character_recognition,

6353

enclosed_alphanumerics,

6354

enclosed_alphanum = enclosed_alphanumerics,

6358

miscellaneous_symbols,

6359

misc_symbols = miscellaneous_symbols,

6361

miscellaneous_mathematical_symbols_a,

6362

misc_math_symbols_a = miscellaneous_mathematical_symbols_a,

6363

supplemental_arrows_a,

6364

sup_arrows_a = supplemental_arrows_a,

6366

braille = braille_patterns,

6367

supplemental_arrows_b,

6368

sup_arrows_b = supplemental_arrows_b,

6369

miscellaneous_mathematical_symbols_b,

6370

misc_math_symbols_b = miscellaneous_mathematical_symbols_b,

6371

supplemental_mathematical_operators,

6372

sup_math_operators = supplemental_mathematical_operators,

6373

miscellaneous_symbols_and_arrows,

6374

misc_arrows = miscellaneous_symbols_and_arrows,

6377

latin_ext_c = latin_extended_c,

6379

georgian_supplement,

6380

georgian_sup = georgian_supplement,

6383

ethiopic_ext = ethiopic_extended,

6384

cyrillic_extended_a,

6385

cyrillic_ext_a = cyrillic_extended_a,

6386

supplemental_punctuation,

6387

sup_punctuation = supplemental_punctuation,

6388

cjk_radicals_supplement,

6389

cjk_radicals_sup = cjk_radicals_supplement,

6391

kangxi = kangxi_radicals,

6392

ideographic_description_characters,

6393

idc = ideographic_description_characters,

6394

cjk_symbols_and_punctuation,

6395

cjk_symbols = cjk_symbols_and_punctuation,

6399

hangul_compatibility_jamo,

6400

compat_jamo = hangul_compatibility_jamo,

6403

bopomofo_ext = bopomofo_extended,

6405

katakana_phonetic_extensions,

6406

katakana_ext = katakana_phonetic_extensions,

6407

enclosed_cjk_letters_and_months,

6408

enclosed_cjk = enclosed_cjk_letters_and_months,

6410

cjk_compat = cjk_compatibility,

6411

cjk_unified_ideographs_extension_a,

6412

cjk_ext_a = cjk_unified_ideographs_extension_a,

6413

yijing_hexagram_symbols,

6414

yijing = yijing_hexagram_symbols,

6415

cjk_unified_ideographs,

6416

cjk = cjk_unified_ideographs,

6421

cyrillic_extended_b,

6422

cyrillic_ext_b = cyrillic_extended_b,

6424

modifier_tone_letters,

6426

latin_ext_d = latin_extended_d,

6428

common_indic_number_forms,

6429

indic_number_forms = common_indic_number_forms,

6432

devanagari_extended,

6433

devanagari_ext = devanagari_extended,

6436

hangul_jamo_extended_a,

6437

jamo_ext_a = hangul_jamo_extended_a,

6440

myanmar_ext_b = myanmar_extended_b,

6443

myanmar_ext_a = myanmar_extended_a,

6445

meetei_mayek_extensions,

6446

meetei_mayek_ext = meetei_mayek_extensions,

6447

ethiopic_extended_a,

6448

ethiopic_ext_a = ethiopic_extended_a,

6450

latin_ext_e = latin_extended_e,

6451

cherokee_supplement,

6452

cherokee_sup = cherokee_supplement,

6455

hangul = hangul_syllables,

6456

hangul_jamo_extended_b,

6457

jamo_ext_b = hangul_jamo_extended_b,

6459

high_private_use_surrogates,

6460

high_pu_surrogates = high_private_use_surrogates,

6463

pua = private_use_area,

6464

cjk_compatibility_ideographs,

6465

cjk_compat_ideographs = cjk_compatibility_ideographs,

6466

alphabetic_presentation_forms,

6467

alphabetic_pf = alphabetic_presentation_forms,

6468

arabic_presentation_forms_a,

6469

arabic_pf_a = arabic_presentation_forms_a,

6470

variation_selectors,

6471

vs = variation_selectors,

6473

combining_half_marks,

6474

half_marks = combining_half_marks,

6475

cjk_compatibility_forms,

6476

cjk_compat_forms = cjk_compatibility_forms,

6477

small_form_variants,

6478

small_forms = small_form_variants,

6479

arabic_presentation_forms_b,

6480

arabic_pf_b = arabic_presentation_forms_b,

6481

halfwidth_and_fullwidth_forms,

6482

half_and_full_forms = halfwidth_and_fullwidth_forms,

6487

ancient_greek_numbers,

6490

phaistos = phaistos_disc,

6493

coptic_epact_numbers,

6508

latin_ext_f = latin_extended_f,

6516

meroitic_hieroglyphs,

6523

inscriptional_parthian,

6524

inscriptional_pahlavi,

6529

rumi_numeral_symbols,

6530

rumi = rumi_numeral_symbols,

6543

sinhala_archaic_numbers,

6552

mongolian_supplement,

6553

mongolian_sup = mongolian_supplement,

6562

unified_canadian_aboriginal_syllabics_extended_a,

6563

ucas_ext_a = unified_canadian_aboriginal_syllabics_extended_a,

6571

lisu_sup = lisu_supplement,

6573

tamil_sup = tamil_supplement,

6575

cuneiform_numbers_and_punctuation,

6576

cuneiform_numbers = cuneiform_numbers_and_punctuation,

6577

early_dynastic_cuneiform,

6579

egyptian_hieroglyphs,

6580

egyptian_hieroglyph_format_controls,

6581

anatolian_hieroglyphs,

6583

bamum_sup = bamum_supplement,

6590

ideographic_symbols_and_punctuation,

6591

ideographic_symbols = ideographic_symbols_and_punctuation,

6594

khitan_small_script,

6596

tangut_sup = tangut_supplement,

6598

kana_ext_b = kana_extended_b,

6600

kana_sup = kana_supplement,

6602

kana_ext_a = kana_extended_a,

6603

small_kana_extension,

6604

small_kana_ext = small_kana_extension,

6607

shorthand_format_controls,

6608

znamenny_musical_notation,

6609

znamenny_music = znamenny_musical_notation,

6610

byzantine_musical_symbols,

6611

byzantine_music = byzantine_musical_symbols,

6613

music = musical_symbols,

6614

ancient_greek_musical_notation,

6615

ancient_greek_music = ancient_greek_musical_notation,

6617

tai_xuan_jing_symbols,

6618

tai_xuan_jing = tai_xuan_jing_symbols,

6619

counting_rod_numerals,

6620

counting_rod = counting_rod_numerals,

6621

mathematical_alphanumeric_symbols,

6622

math_alphanum = mathematical_alphanumeric_symbols,

6625

latin_ext_g = latin_extended_g,

6626

glagolitic_supplement,

6627

glagolitic_sup = glagolitic_supplement,

6628

nyiakeng_puachue_hmong,

6631

ethiopic_extended_b,

6632

ethiopic_ext_b = ethiopic_extended_b,

6635

indic_siyaq_numbers,

6636

ottoman_siyaq_numbers,

6637

arabic_mathematical_alphabetic_symbols,

6638

arabic_math = arabic_mathematical_alphabetic_symbols,

6640

mahjong = mahjong_tiles,

6642

domino = domino_tiles,

6644

enclosed_alphanumeric_supplement,

6645

enclosed_alphanum_sup = enclosed_alphanumeric_supplement,

6646

enclosed_ideographic_supplement,

6647

enclosed_ideographic_sup = enclosed_ideographic_supplement,

6648

miscellaneous_symbols_and_pictographs,

6649

misc_pictographs = miscellaneous_symbols_and_pictographs,

6651

ornamental_dingbats,

6652

transport_and_map_symbols,

6653

transport_and_map = transport_and_map_symbols,

6655

alchemical = alchemical_symbols,

6656

geometric_shapes_extended,

6657

geometric_shapes_ext = geometric_shapes_extended,

6658

supplemental_arrows_c,

6659

sup_arrows_c = supplemental_arrows_c,

6660

supplemental_symbols_and_pictographs,

6661

sup_symbols_and_pictographs = supplemental_symbols_and_pictographs,

6663

symbols_and_pictographs_extended_a,

6664

symbols_and_pictographs_ext_a = symbols_and_pictographs_extended_a,

6665

symbols_for_legacy_computing,

6666

cjk_unified_ideographs_extension_b,

6667

cjk_ext_b = cjk_unified_ideographs_extension_b,

6668

cjk_unified_ideographs_extension_c,

6669

cjk_ext_c = cjk_unified_ideographs_extension_c,

6670

cjk_unified_ideographs_extension_d,

6671

cjk_ext_d = cjk_unified_ideographs_extension_d,

6672

cjk_unified_ideographs_extension_e,

6673

cjk_ext_e = cjk_unified_ideographs_extension_e,

6674

cjk_unified_ideographs_extension_f,

6675

cjk_ext_f = cjk_unified_ideographs_extension_f,

6676

cjk_compatibility_ideographs_supplement,

6677

cjk_compat_ideographs_sup = cjk_compatibility_ideographs_supplement,

6678

cjk_unified_ideographs_extension_g,

6679

cjk_ext_g = cjk_unified_ideographs_extension_g,

6681

variation_selectors_supplement,

6682

vs_sup = variation_selectors_supplement,

6683

supplementary_private_use_area_a,

6684

sup_pua_a = supplementary_private_use_area_a,

6685

supplementary_private_use_area_b,

6686

sup_pua_b = supplementary_private_use_area_b,

6693

caucasian_albanian = aghb,

6698

imperial_aramaic = armi,

6728

canadian_aboriginal = cans,

6739

cypro_minoan = cpmn,

6755

egyptian_hieroglyphs = egyp,

6767

gunjala_gondi = gong,

6769

masaram_gondi = gonm,

6793

anatolian_hieroglyphs = hluw,

6795

pahawh_hmong = hmng,

6797

nyiakeng_puachue_hmong = hmnp,

6799

katakana_or_hiragana = hrkt,

6801

old_hungarian = hung,

6817

khitan_small_script = kits,

6854

mende_kikakui = mend,

6856

meroitic_cursive = merc,

6858

meroitic_hieroglyphs = mero,

6867

meetei_mayek = mtei,

6875

old_north_arabian = narb,

6906

inscriptional_pahlavi = phli,

6908

psalter_pahlavi = phlp,

6914

inscriptional_parthian = prti,

6918

hanifi_rohingya = rohg,

6924

old_south_arabian = sarb,

6944

sora_sompeng = sora,

6950

syloti_nagri = sylo,

7002

zanabazar_square = zanb,

7011 namespace

detail::tables {

7012  static

constexpr

const char

* age_strings[] = {

7013  "unassigned"

,

"1.1"

,

"2.0"

,

"2.1"

,

"3.0"

,

"3.1"

,

"3.2"

,

"4.0"

,

"4.1"

,

7014  "5.0"

,

"5.1"

,

"5.2"

,

"6.0"

,

"6.1"

,

"6.2"

,

"6.3"

,

"7.0"

,

"8.0"

,

7015  "9.0"

,

"10.0"

,

"11.0"

,

"12.0"

,

"12.1"

,

"13.0"

,

"14.0"

};

7016  static

constexpr compact_range age_data = {

7017

0x00000001, 0x0001F604, 0x0001FA01, 0x00021804, 0x00022006, 0x00022107, 0x00022204,

7018

0x00023407, 0x00023708, 0x00024209, 0x00025001, 0x0002A904, 0x0002AE07, 0x0002B001,

7019

0x0002DF04, 0x0002E001, 0x0002EA04, 0x0002EF07, 0x00030001, 0x00034604, 0x00034F06,

7020

0x00035007, 0x00035808, 0x00035D07, 0x00036001, 0x00036204, 0x00036306, 0x0003700A,

7021

0x00037401, 0x0003760A, 0x00037800, 0x00037A01, 0x00037B09, 0x00037E01, 0x00037F10,

7022

0x00038000, 0x00038401, 0x00038B00, 0x00038C01, 0x00038D00, 0x00038E01, 0x0003A200,

7023

0x0003A301, 0x0003CF0A, 0x0003D001, 0x0003D704, 0x0003D806, 0x0003DA01, 0x0003DB04,

7024

0x0003DC01, 0x0003DD04, 0x0003DE01, 0x0003DF04, 0x0003E001, 0x0003E104, 0x0003E201,

7025

0x0003F405, 0x0003F606, 0x0003F707, 0x0003FC08, 0x00040004, 0x00040101, 0x00040D04,

7026

0x00040E01, 0x00045004, 0x00045101, 0x00045D04, 0x00045E01, 0x0004870A, 0x00048804,

7027

0x00048A06, 0x00048C04, 0x00049001, 0x0004C506, 0x0004C701, 0x0004C906, 0x0004CB01,

7028

0x0004CD06, 0x0004CF09, 0x0004D001, 0x0004EC04, 0x0004EE01, 0x0004F608, 0x0004F801,

7029

0x0004FA09, 0x00050006, 0x00051009, 0x0005140A, 0x0005240B, 0x0005260C, 0x00052810,

7030

0x00053000, 0x00053101, 0x00055700, 0x00055901, 0x00056014, 0x00056101, 0x00058814,

7031

0x00058901, 0x00058A04, 0x00058B00, 0x00058D10, 0x00058F0D, 0x00059000, 0x00059102,

7032

0x0005A208, 0x0005A302, 0x0005B001, 0x0005BA09, 0x0005BB01, 0x0005C402, 0x0005C508,

7033

0x0005C800, 0x0005D001, 0x0005EB00, 0x0005EF14, 0x0005F001, 0x0005F500, 0x00060007,

7034

0x0006040D, 0x00060510, 0x0006060A, 0x00060B08, 0x00060C01, 0x00060D07, 0x0006160A,

7035

0x00061B01, 0x00061C0F, 0x00061D18, 0x00061E08, 0x00061F01, 0x0006200C, 0x00062101,

7036

0x00063B0A, 0x00064001, 0x00065304, 0x00065607, 0x00065908, 0x00065F0C, 0x00066001,

7037

0x00066E06, 0x00067001, 0x0006B804, 0x0006BA01, 0x0006BF04, 0x0006C001, 0x0006CF04,

7038

0x0006D001, 0x0006EE07, 0x0006F001, 0x0006FA04, 0x0006FF07, 0x00070004, 0x00070E00,

7039

0x00070F04, 0x00072D07, 0x00073004, 0x00074B00, 0x00074D07, 0x00075008, 0x00076E0A,

7040

0x00078004, 0x0007B106, 0x0007B200, 0x0007C009, 0x0007FB00, 0x0007FD14, 0x0008000B,

7041

0x00082E00, 0x0008300B, 0x00083F00, 0x0008400C, 0x00085C00, 0x00085E0C, 0x00085F00,

7042

0x00086013, 0x00086B00, 0x00087018, 0x00088F00, 0x00089018, 0x00089200, 0x00089818,

7043

0x0008A00D, 0x0008A110, 0x0008A20D, 0x0008AD10, 0x0008B311, 0x0008B518, 0x0008B612,

7044

0x0008BE17, 0x0008C818, 0x0008D314, 0x0008D412, 0x0008E311, 0x0008E40D, 0x0008FF10,

7045

0x0009000B, 0x00090101, 0x00090407, 0x00090501, 0x00093A0C, 0x00093C01, 0x00094E0B,

7046

0x00094F0C, 0x00095001, 0x0009550B, 0x0009560C, 0x00095801, 0x0009710A, 0x0009730C,

7047

0x00097810, 0x0009790B, 0x00097B09, 0x00097D08, 0x00097E09, 0x00098010, 0x00098101,

7048

0x00098400, 0x00098501, 0x00098D00, 0x00098F01, 0x00099100, 0x00099301, 0x0009A900,

7049

0x0009AA01, 0x0009B100, 0x0009B201, 0x0009B300, 0x0009B601, 0x0009BA00, 0x0009BC01,

7050

0x0009BD07, 0x0009BE01, 0x0009C500, 0x0009C701, 0x0009C900, 0x0009CB01, 0x0009CE08,

7051

0x0009CF00, 0x0009D701, 0x0009D800, 0x0009DC01, 0x0009DE00, 0x0009DF01, 0x0009E400,

7052

0x0009E601, 0x0009FB0B, 0x0009FC13, 0x0009FE14, 0x0009FF00, 0x000A0107, 0x000A0201,

7053

0x000A0307, 0x000A0400, 0x000A0501, 0x000A0B00, 0x000A0F01, 0x000A1100, 0x000A1301,

7054

0x000A2900, 0x000A2A01, 0x000A3100, 0x000A3201, 0x000A3400, 0x000A3501, 0x000A3700,

7055

0x000A3801, 0x000A3A00, 0x000A3C01, 0x000A3D00, 0x000A3E01, 0x000A4300, 0x000A4701,

7056

0x000A4900, 0x000A4B01, 0x000A4E00, 0x000A510A, 0x000A5200, 0x000A5901, 0x000A5D00,

7057

0x000A5E01, 0x000A5F00, 0x000A6601, 0x000A750A, 0x000A7614, 0x000A7700, 0x000A8101,

7058

0x000A8400, 0x000A8501, 0x000A8C07, 0x000A8D01, 0x000A8E00, 0x000A8F01, 0x000A9200,

7059

0x000A9301, 0x000AA900, 0x000AAA01, 0x000AB100, 0x000AB201, 0x000AB400, 0x000AB501,

7060

0x000ABA00, 0x000ABC01, 0x000AC600, 0x000AC701, 0x000ACA00, 0x000ACB01, 0x000ACE00,

7061

0x000AD001, 0x000AD100, 0x000AE001, 0x000AE107, 0x000AE400, 0x000AE601, 0x000AF00D,

7062

0x000AF107, 0x000AF200, 0x000AF911, 0x000AFA13, 0x000B0000, 0x000B0101, 0x000B0400,

7063

0x000B0501, 0x000B0D00, 0x000B0F01, 0x000B1100, 0x000B1301, 0x000B2900, 0x000B2A01,

7064

0x000B3100, 0x000B3201, 0x000B3400, 0x000B3507, 0x000B3601, 0x000B3A00, 0x000B3C01,

7065

0x000B440A, 0x000B4500, 0x000B4701, 0x000B4900, 0x000B4B01, 0x000B4E00, 0x000B5517,

7066

0x000B5601, 0x000B5800, 0x000B5C01, 0x000B5E00, 0x000B5F01, 0x000B620A, 0x000B6400,

7067

0x000B6601, 0x000B7107, 0x000B720C, 0x000B7800, 0x000B8201, 0x000B8400, 0x000B8501,

7068

0x000B8B00, 0x000B8E01, 0x000B9100, 0x000B9201, 0x000B9600, 0x000B9901, 0x000B9B00,

7069

0x000B9C01, 0x000B9D00, 0x000B9E01, 0x000BA000, 0x000BA301, 0x000BA500, 0x000BA801,

7070

0x000BAB00, 0x000BAE01, 0x000BB608, 0x000BB701, 0x000BBA00, 0x000BBE01, 0x000BC300,

7071

0x000BC601, 0x000BC900, 0x000BCA01, 0x000BCE00, 0x000BD00A, 0x000BD100, 0x000BD701,

7072

0x000BD800, 0x000BE608, 0x000BE701, 0x000BF307, 0x000BFB00, 0x000C0010, 0x000C0101,

7073

0x000C0414, 0x000C0501, 0x000C0D00, 0x000C0E01, 0x000C1100, 0x000C1201, 0x000C2900,

7074

0x000C2A01, 0x000C3410, 0x000C3501, 0x000C3A00, 0x000C3C18, 0x000C3D0A, 0x000C3E01,

7075

0x000C4500, 0x000C4601, 0x000C4900, 0x000C4A01, 0x000C4E00, 0x000C5501, 0x000C5700,

7076

0x000C580A, 0x000C5A11, 0x000C5B00, 0x000C5D18, 0x000C5E00, 0x000C6001, 0x000C620A,

7077

0x000C6400, 0x000C6601, 0x000C7000, 0x000C7715, 0x000C780A, 0x000C8012, 0x000C8110,

7078

0x000C8201, 0x000C8414, 0x000C8501, 0x000C8D00, 0x000C8E01, 0x000C9100, 0x000C9201,

7079

0x000CA900, 0x000CAA01, 0x000CB400, 0x000CB501, 0x000CBA00, 0x000CBC07, 0x000CBE01,

7080

0x000CC500, 0x000CC601, 0x000CC900, 0x000CCA01, 0x000CCE00, 0x000CD501, 0x000CD700,

7081

0x000CDD18, 0x000CDE01, 0x000CDF00, 0x000CE001, 0x000CE209, 0x000CE400, 0x000CE601,

7082

0x000CF000, 0x000CF109, 0x000CF300, 0x000D0013, 0x000D0110, 0x000D0201, 0x000D0417,

7083

0x000D0501, 0x000D0D00, 0x000D0E01, 0x000D1100, 0x000D1201, 0x000D290C, 0x000D2A01,

7084

0x000D3A0C, 0x000D3B13, 0x000D3D0A, 0x000D3E01, 0x000D440A, 0x000D4500, 0x000D4601,

7085

0x000D4900, 0x000D4A01, 0x000D4E0C, 0x000D4F12, 0x000D5000, 0x000D5412, 0x000D5701,

7086

0x000D5812, 0x000D5F11, 0x000D6001, 0x000D620A, 0x000D6400, 0x000D6601, 0x000D700A,

7087

0x000D7612, 0x000D790A, 0x000D8000, 0x000D8117, 0x000D8204, 0x000D8400, 0x000D8504,

7088

0x000D9700, 0x000D9A04, 0x000DB200, 0x000DB304, 0x000DBC00, 0x000DBD04, 0x000DBE00,

7089

0x000DC004, 0x000DC700, 0x000DCA04, 0x000DCB00, 0x000DCF04, 0x000DD500, 0x000DD604,

7090

0x000DD700, 0x000DD804, 0x000DE000, 0x000DE610, 0x000DF000, 0x000DF204, 0x000DF500,

7091

0x000E0101, 0x000E3B00, 0x000E3F01, 0x000E5C00, 0x000E8101, 0x000E8300, 0x000E8401,

7092

0x000E8500, 0x000E8615, 0x000E8701, 0x000E8915, 0x000E8A01, 0x000E8B00, 0x000E8C15,

7093

0x000E8D01, 0x000E8E15, 0x000E9401, 0x000E9815, 0x000E9901, 0x000EA015, 0x000EA101,

7094

0x000EA400, 0x000EA501, 0x000EA600, 0x000EA701, 0x000EA815, 0x000EAA01, 0x000EAC15,

7095

0x000EAD01, 0x000EBA15, 0x000EBB01, 0x000EBE00, 0x000EC001, 0x000EC500, 0x000EC601,

7096

0x000EC700, 0x000EC801, 0x000ECE00, 0x000ED001, 0x000EDA00, 0x000EDC01, 0x000EDE0D,

7097

0x000EE000, 0x000F0002, 0x000F4800, 0x000F4902, 0x000F6A04, 0x000F6B0A, 0x000F6D00,

7098

0x000F7102, 0x000F8C0C, 0x000F9002, 0x000F9604, 0x000F9702, 0x000F9800, 0x000F9902,

7099

0x000FAE04, 0x000FB102, 0x000FB804, 0x000FB902, 0x000FBA04, 0x000FBD00, 0x000FBE04,

7100

0x000FCD00, 0x000FCE0A, 0x000FCF04, 0x000FD008, 0x000FD20A, 0x000FD50B, 0x000FD90C,

7101

0x000FDB00, 0x00100004, 0x0010220A, 0x00102304, 0x0010280A, 0x00102904, 0x00102B0A,

7102

0x00102C04, 0x0010330A, 0x00103604, 0x00103A0A, 0x00104004, 0x00105A0A, 0x00109A0B,

7103

0x00109E0A, 0x0010A001, 0x0010C600, 0x0010C70D, 0x0010C800, 0x0010CD0D, 0x0010CE00,

7104

0x0010D001, 0x0010F706, 0x0010F908, 0x0010FB01, 0x0010FC08, 0x0010FD0D, 0x00110001,

7105

0x00115A0B, 0x00115F01, 0x0011A30B, 0x0011A801, 0x0011FA0B, 0x00120004, 0x00120708,

7106

0x00120804, 0x00124708, 0x00124804, 0x00124900, 0x00124A04, 0x00124E00, 0x00125004,

7107

0x00125700, 0x00125804, 0x00125900, 0x00125A04, 0x00125E00, 0x00126004, 0x00128708,

7108

0x00128804, 0x00128900, 0x00128A04, 0x00128E00, 0x00129004, 0x0012AF08, 0x0012B004,

7109

0x0012B100, 0x0012B204, 0x0012B600, 0x0012B804, 0x0012BF00, 0x0012C004, 0x0012C100,

7110

0x0012C204, 0x0012C600, 0x0012C804, 0x0012CF08, 0x0012D004, 0x0012D700, 0x0012D804,

7111

0x0012EF08, 0x0012F004, 0x00130F08, 0x00131004, 0x00131100, 0x00131204, 0x00131600,

7112

0x00131804, 0x00131F08, 0x00132004, 0x00134708, 0x00134804, 0x00135B00, 0x00135D0C,

7113

0x00135F08, 0x00136104, 0x00137D00, 0x00138008, 0x00139A00, 0x0013A004, 0x0013F511,

7114

0x0013F600, 0x0013F811, 0x0013FE00, 0x0014000B, 0x00140104, 0x0016770B, 0x00168004,

7115

0x00169D00, 0x0016A004, 0x0016F110, 0x0016F900, 0x00170006, 0x00170D18, 0x00170E06,

7116

0x00171518, 0x00171600, 0x00171F18, 0x00172006, 0x00173700, 0x00174006, 0x00175400,

7117

0x00176006, 0x00176D00, 0x00176E06, 0x00177100, 0x00177206, 0x00177400, 0x00178004,

7118

0x0017DD07, 0x0017DE00, 0x0017E004, 0x0017EA00, 0x0017F007, 0x0017FA00, 0x00180004,

7119

0x00180F18, 0x00181004, 0x00181A00, 0x00182004, 0x00187814, 0x00187900, 0x00188004,

7120

0x0018AA0A, 0x0018AB00, 0x0018B00B, 0x0018F600, 0x00190007, 0x00191D10, 0x00191F00,

7121

0x00192007, 0x00192C00, 0x00193007, 0x00193C00, 0x00194007, 0x00194100, 0x00194407,

7122

0x00196E00, 0x00197007, 0x00197500, 0x00198008, 0x0019AA0B, 0x0019AC00, 0x0019B008,

7123

0x0019CA00, 0x0019D008, 0x0019DA0B, 0x0019DB00, 0x0019DE08, 0x0019E007, 0x001A0008,

7124

0x001A1C00, 0x001A1E08, 0x001A200B, 0x001A5F00, 0x001A600B, 0x001A7D00, 0x001A7F0B,

7125

0x001A8A00, 0x001A900B, 0x001A9A00, 0x001AA00B, 0x001AAE00, 0x001AB010, 0x001ABF17,

7126

0x001AC118, 0x001ACF00, 0x001B0009, 0x001B4C18, 0x001B4D00, 0x001B5009, 0x001B7D18,

7127

0x001B7F00, 0x001B800A, 0x001BAB0D, 0x001BAE0A, 0x001BBA0D, 0x001BC00C, 0x001BF400,

7128

0x001BFC0C, 0x001C000A, 0x001C3800, 0x001C3B0A, 0x001C4A00, 0x001C4D0A, 0x001C8012,

7129

0x001C8900, 0x001C9014, 0x001CBB00, 0x001CBD14, 0x001CC00D, 0x001CC800, 0x001CD00B,

7130

0x001CF30D, 0x001CF713, 0x001CF810, 0x001CFA15, 0x001CFB00, 0x001D0007, 0x001D6C08,

7131

0x001DC409, 0x001DCB0A, 0x001DE710, 0x001DF613, 0x001DFA18, 0x001DFB12, 0x001DFC0C,

7132

0x001DFD0B, 0x001DFE09, 0x001E0001, 0x001E9B02, 0x001E9C0A, 0x001EA001, 0x001EFA0A,

7133

0x001F0001, 0x001F1600, 0x001F1801, 0x001F1E00, 0x001F2001, 0x001F4600, 0x001F4801,

7134

0x001F4E00, 0x001F5001, 0x001F5800, 0x001F5901, 0x001F5A00, 0x001F5B01, 0x001F5C00,

7135

0x001F5D01, 0x001F5E00, 0x001F5F01, 0x001F7E00, 0x001F8001, 0x001FB500, 0x001FB601,

7136

0x001FC500, 0x001FC601, 0x001FD400, 0x001FD601, 0x001FDC00, 0x001FDD01, 0x001FF000,

7137

0x001FF201, 0x001FF500, 0x001FF601, 0x001FFF00, 0x00200001, 0x00202F04, 0x00203001,

7138

0x00204706, 0x00204804, 0x00204E06, 0x00205307, 0x00205508, 0x00205706, 0x00205808,

7139

0x00205F06, 0x0020640A, 0x00206500, 0x0020660F, 0x00206A01, 0x00207106, 0x00207200,

7140

0x00207401, 0x00208F00, 0x00209008, 0x0020950C, 0x00209D00, 0x0020A001, 0x0020AB02,

7141

0x0020AC03, 0x0020AD04, 0x0020B006, 0x0020B208, 0x0020B60B, 0x0020B90C, 0x0020BA0E,

7142

0x0020BB10, 0x0020BE11, 0x0020BF13, 0x0020C018, 0x0020C100, 0x0020D001, 0x0020E204,

7143

0x0020E406, 0x0020EB08, 0x0020EC09, 0x0020F00A, 0x0020F100, 0x00210001, 0x00213904,

7144

0x00213B07, 0x00213C08, 0x00213D06, 0x00214C08, 0x00214D09, 0x00214F0A, 0x0021500B,

7145

0x00215301, 0x00218304, 0x00218409, 0x0021850A, 0x0021890B, 0x00218A11, 0x00218C00,

7146

0x00219001, 0x0021EB04, 0x0021F406, 0x00220001, 0x0022F206, 0x00230001, 0x00230104,

7147

0x00230201, 0x00237B04, 0x00237C06, 0x00237D04, 0x00239B06, 0x0023CF07, 0x0023D108,

7148

0x0023DC09, 0x0023E80B, 0x0023E90C, 0x0023F410, 0x0023FB12, 0x0023FF13, 0x00240001,

7149

0x00242504, 0x00242700, 0x00244001, 0x00244B00, 0x00246001, 0x0024EB06, 0x0024FF07,

7150

0x00250001, 0x00259606, 0x0025A001, 0x0025F004, 0x0025F806, 0x00260001, 0x00261407,

7151

0x00261606, 0x00261808, 0x00261904, 0x00261A01, 0x00267004, 0x00267206, 0x00267E08,

7152

0x00268006, 0x00268A07, 0x00269208, 0x00269D0A, 0x00269E0B, 0x0026A007, 0x0026A208,

7153

0x0026B209, 0x0026B30A, 0x0026BD0B, 0x0026C00A, 0x0026C40B, 0x0026CE0C, 0x0026CF0B,

7154

0x0026E20C, 0x0026E30B, 0x0026E40C, 0x0026E80B, 0x00270010, 0x00270101, 0x0027050C,

7155

0x00270601, 0x00270A0C, 0x00270C01, 0x0027280C, 0x00272901, 0x00274C0C, 0x00274D01,

7156

0x00274E0C, 0x00274F01, 0x0027530C, 0x00275601, 0x0027570B, 0x00275801, 0x00275F0C,

7157

0x00276101, 0x00276806, 0x00277601, 0x0027950C, 0x00279801, 0x0027B00C, 0x0027B101,

7158

0x0027BF0C, 0x0027C008, 0x0027C709, 0x0027CB0D, 0x0027CC0A, 0x0027CD0D, 0x0027CE0C,

7159

0x0027D006, 0x0027EC0A, 0x0027F006, 0x00280004, 0x00290006, 0x002B0007, 0x002B0E08,

7160

0x002B1409, 0x002B1B0A, 0x002B2009, 0x002B240A, 0x002B4D10, 0x002B500A, 0x002B550B,

7161

0x002B5A10, 0x002B7400, 0x002B7610, 0x002B9600, 0x002B9717, 0x002B9810, 0x002BBA14,

7162

0x002BBD10, 0x002BC915, 0x002BCA10, 0x002BD213, 0x002BD314, 0x002BEC11, 0x002BF014,

7163

0x002BFF15, 0x002C0008, 0x002C2F18, 0x002C3008, 0x002C5F18, 0x002C6009, 0x002C6D0A,

7164

0x002C700B, 0x002C710A, 0x002C7409, 0x002C780A, 0x002C7E0B, 0x002C8008, 0x002CEB0B,

7165

0x002CF20D, 0x002CF400, 0x002CF908, 0x002D2600, 0x002D270D, 0x002D2800, 0x002D2D0D,

7166

0x002D2E00, 0x002D3008, 0x002D660D, 0x002D6800, 0x002D6F08, 0x002D700C, 0x002D7100,

7167

0x002D7F0C, 0x002D8008, 0x002D9700, 0x002DA008, 0x002DA700, 0x002DA808, 0x002DAF00,

7168

0x002DB008, 0x002DB700, 0x002DB808, 0x002DBF00, 0x002DC008, 0x002DC700, 0x002DC808,

7169

0x002DCF00, 0x002DD008, 0x002DD700, 0x002DD808, 0x002DDF00, 0x002DE00A, 0x002E0008,

7170

0x002E180A, 0x002E1C08, 0x002E1E0A, 0x002E310B, 0x002E320D, 0x002E3C10, 0x002E4312,

7171

0x002E4513, 0x002E4A14, 0x002E4F15, 0x002E5017, 0x002E5318, 0x002E5E00, 0x002E8004,

7172

0x002E9A00, 0x002E9B04, 0x002EF400, 0x002F0004, 0x002FD600, 0x002FF004, 0x002FFC00,

7173

0x00300001, 0x00303804, 0x00303B06, 0x00303E04, 0x00303F01, 0x00304000, 0x00304101,

7174

0x00309506, 0x00309700, 0x00309901, 0x00309F06, 0x0030A101, 0x0030FF06, 0x00310000,

7175

0x00310501, 0x00312D0A, 0x00312E13, 0x00312F14, 0x00313000, 0x00313101, 0x00318F00,

7176

0x00319001, 0x0031A004, 0x0031B80C, 0x0031BB17, 0x0031C008, 0x0031D00A, 0x0031E400,

7177

0x0031F006, 0x00320001, 0x00321D07, 0x00321F00, 0x00322001, 0x0032440B, 0x00325007,

7178

0x00325106, 0x00326001, 0x00327C07, 0x00327E08, 0x00327F01, 0x0032B106, 0x0032C001,

7179

0x0032CC07, 0x0032D001, 0x0032FF16, 0x00330001, 0x00337707, 0x00337B01, 0x0033DE07,

7180

0x0033E001, 0x0033FF07, 0x00340004, 0x004DB617, 0x004DC007, 0x004E0001, 0x009FA608,

7181

0x009FBC0A, 0x009FC40B, 0x009FCC0D, 0x009FCD11, 0x009FD613, 0x009FEB14, 0x009FF017,

7182

0x009FFD18, 0x00A00004, 0x00A48D00, 0x00A49004, 0x00A4A206, 0x00A4A404, 0x00A4B406,

7183

0x00A4B504, 0x00A4C106, 0x00A4C204, 0x00A4C506, 0x00A4C604, 0x00A4C700, 0x00A4D00B,

7184

0x00A5000A, 0x00A62C00, 0x00A6400A, 0x00A6600C, 0x00A6620A, 0x00A6740D, 0x00A67C0A,

7185

0x00A69810, 0x00A69E11, 0x00A69F0D, 0x00A6A00B, 0x00A6F800, 0x00A70008, 0x00A71709,

7186

0x00A71B0A, 0x00A72009, 0x00A7220A, 0x00A78D0C, 0x00A78F11, 0x00A7900C, 0x00A7920D,

7187

0x00A79410, 0x00A7A00C, 0x00A7AA0D, 0x00A7AB10, 0x00A7AE12, 0x00A7AF14, 0x00A7B010,

7188

0x00A7B211, 0x00A7B814, 0x00A7BA15, 0x00A7C018, 0x00A7C215, 0x00A7C717, 0x00A7CB00,

7189

0x00A7D018, 0x00A7D200, 0x00A7D318, 0x00A7D400, 0x00A7D518, 0x00A7DA00, 0x00A7F218,

7190

0x00A7F517, 0x00A7F710, 0x00A7F80D, 0x00A7FA0C, 0x00A7FB0A, 0x00A80008, 0x00A82C17,

7191

0x00A82D00, 0x00A8300B, 0x00A83A00, 0x00A84009, 0x00A87800, 0x00A8800A, 0x00A8C512,

7192

0x00A8C600, 0x00A8CE0A, 0x00A8DA00, 0x00A8E00B, 0x00A8FC11, 0x00A8FE14, 0x00A9000A,

7193

0x00A95400, 0x00A95F0A, 0x00A9600B, 0x00A97D00, 0x00A9800B, 0x00A9CE00, 0x00A9CF0B,

7194

0x00A9DA00, 0x00A9DE0B, 0x00A9E010, 0x00A9FF00, 0x00AA000A, 0x00AA3700, 0x00AA400A,

7195

0x00AA4E00, 0x00AA500A, 0x00AA5A00, 0x00AA5C0A, 0x00AA600B, 0x00AA7C10, 0x00AA800B,

7196

0x00AAC300, 0x00AADB0B, 0x00AAE00D, 0x00AAF700, 0x00AB010C, 0x00AB0700, 0x00AB090C,

7197

0x00AB0F00, 0x00AB110C, 0x00AB1700, 0x00AB200C, 0x00AB2700, 0x00AB280C, 0x00AB2F00,

7198

0x00AB3010, 0x00AB6011, 0x00AB6410, 0x00AB6615, 0x00AB6817, 0x00AB6C00, 0x00AB7011,

7199

0x00ABC00B, 0x00ABEE00, 0x00ABF00B, 0x00ABFA00, 0x00AC0002, 0x00D7A400, 0x00D7B00B,

7200

0x00D7C700, 0x00D7CB0B, 0x00D7FC00, 0x00D80002, 0x00E00001, 0x00FA2E0D, 0x00FA3006,

7201

0x00FA6B0B, 0x00FA6E00, 0x00FA7008, 0x00FADA00, 0x00FB0001, 0x00FB0700, 0x00FB1301,

7202

0x00FB1800, 0x00FB1D04, 0x00FB1E01, 0x00FB3700, 0x00FB3801, 0x00FB3D00, 0x00FB3E01,

7203

0x00FB3F00, 0x00FB4001, 0x00FB4200, 0x00FB4301, 0x00FB4500, 0x00FB4601, 0x00FBB20C,

7204

0x00FBC218, 0x00FBC300, 0x00FBD301, 0x00FD4018, 0x00FD5001, 0x00FD9000, 0x00FD9201,

7205

0x00FDC800, 0x00FDCF18, 0x00FDD000, 0x00FDF001, 0x00FDFC06, 0x00FDFD07, 0x00FDFE18,

7206

0x00FE0006, 0x00FE1008, 0x00FE1A00, 0x00FE2001, 0x00FE240A, 0x00FE2710, 0x00FE2E11,

7207

0x00FE3001, 0x00FE4506, 0x00FE4707, 0x00FE4901, 0x00FE5300, 0x00FE5401, 0x00FE6700,

7208

0x00FE6801, 0x00FE6C00, 0x00FE7001, 0x00FE7306, 0x00FE7401, 0x00FE7500, 0x00FE7601,

7209

0x00FEFD00, 0x00FEFF01, 0x00FF0000, 0x00FF0101, 0x00FF5F06, 0x00FF6101, 0x00FFBF00,

7210

0x00FFC201, 0x00FFC800, 0x00FFCA01, 0x00FFD000, 0x00FFD201, 0x00FFD800, 0x00FFDA01,

7211

0x00FFDD00, 0x00FFE001, 0x00FFE700, 0x00FFE801, 0x00FFEF00, 0x00FFF904, 0x00FFFC03,

7212

0x00FFFD01, 0x00FFFE00, 0x01000007, 0x01000C00, 0x01000D07, 0x01002700, 0x01002807,

7213

0x01003B00, 0x01003C07, 0x01003E00, 0x01003F07, 0x01004E00, 0x01005007, 0x01005E00,

7214

0x01008007, 0x0100FB00, 0x01010007, 0x01010300, 0x01010707, 0x01013400, 0x01013707,

7215

0x01014008, 0x01018B10, 0x01018D12, 0x01018F00, 0x0101900A, 0x01019C17, 0x01019D00,

7216

0x0101A010, 0x0101A100, 0x0101D00A, 0x0101FE00, 0x0102800A, 0x01029D00, 0x0102A00A,

7217

0x0102D100, 0x0102E010, 0x0102FC00, 0x01030005, 0x01031F10, 0x01032005, 0x01032400,

7218

0x01032D13, 0x01033005, 0x01034B00, 0x01035010, 0x01037B00, 0x01038007, 0x01039E00,

7219

0x01039F07, 0x0103A008, 0x0103C400, 0x0103C808, 0x0103D600, 0x01040005, 0x01042607,

7220

0x01042805, 0x01044E07, 0x01049E00, 0x0104A007, 0x0104AA00, 0x0104B012, 0x0104D400,

7221

0x0104D812, 0x0104FC00, 0x01050010, 0x01052800, 0x01053010, 0x01056400, 0x01056F10,

7222

0x01057018, 0x01057B00, 0x01057C18, 0x01058B00, 0x01058C18, 0x01059300, 0x01059418,

7223

0x01059600, 0x01059718, 0x0105A200, 0x0105A318, 0x0105B200, 0x0105B318, 0x0105BA00,

7224

0x0105BB18, 0x0105BD00, 0x01060010, 0x01073700, 0x01074010, 0x01075600, 0x01076010,

7225

0x01076800, 0x01078018, 0x01078600, 0x01078718, 0x0107B100, 0x0107B218, 0x0107BB00,

7226

0x01080007, 0x01080600, 0x01080807, 0x01080900, 0x01080A07, 0x01083600, 0x01083707,

7227

0x01083900, 0x01083C07, 0x01083D00, 0x01083F07, 0x0108400B, 0x01085600, 0x0108570B,

7228

0x01086010, 0x01089F00, 0x0108A710, 0x0108B000, 0x0108E011, 0x0108F300, 0x0108F411,

7229

0x0108F600, 0x0108FB11, 0x01090009, 0x01091A0B, 0x01091C00, 0x01091F09, 0x0109200A,

7230

0x01093A00, 0x01093F0A, 0x01094000, 0x0109800D, 0x0109B800, 0x0109BC11, 0x0109BE0D,

7231

0x0109C011, 0x0109D000, 0x0109D211, 0x010A0008, 0x010A0400, 0x010A0508, 0x010A0700,

7232

0x010A0C08, 0x010A1400, 0x010A1508, 0x010A1800, 0x010A1908, 0x010A3414, 0x010A3600,

7233

0x010A3808, 0x010A3B00, 0x010A3F08, 0x010A4814, 0x010A4900, 0x010A5008, 0x010A5900,

7234

0x010A600B, 0x010A8010, 0x010AA000, 0x010AC010, 0x010AE700, 0x010AEB10, 0x010AF700,

7235

0x010B000B, 0x010B3600, 0x010B390B, 0x010B5600, 0x010B580B, 0x010B7300, 0x010B780B,

7236

0x010B8010, 0x010B9200, 0x010B9910, 0x010B9D00, 0x010BA910, 0x010BB000, 0x010C000B,

7237

0x010C4900, 0x010C8011, 0x010CB300, 0x010CC011, 0x010CF300, 0x010CFA11, 0x010D0014,

7238

0x010D2800, 0x010D3014, 0x010D3A00, 0x010E600B, 0x010E7F00, 0x010E8017, 0x010EAA00,

7239

0x010EAB17, 0x010EAE00, 0x010EB017, 0x010EB200, 0x010F0014, 0x010F2800, 0x010F3014,

7240

0x010F5A00, 0x010F7018, 0x010F8A00, 0x010FB017, 0x010FCC00, 0x010FE015, 0x010FF700,

7241

0x0110000C, 0x01104E00, 0x0110520C, 0x01107018, 0x01107600, 0x01107F10, 0x0110800B,

7242

0x0110C218, 0x0110C300, 0x0110CD14, 0x0110CE00, 0x0110D00D, 0x0110E900, 0x0110F00D,

7243

0x0110FA00, 0x0111000D, 0x01113500, 0x0111360D, 0x01114414, 0x01114717, 0x01114800,

7244

0x01115010, 0x01117700, 0x0111800D, 0x0111C911, 0x0111CD10, 0x0111CE17, 0x0111D00D,

7245

0x0111DA10, 0x0111DB11, 0x0111E000, 0x0111E110, 0x0111F500, 0x01120010, 0x01121200,

7246

0x01121310, 0x01123E12, 0x01123F00, 0x01128011, 0x01128700, 0x01128811, 0x01128900,

7247

0x01128A11, 0x01128E00, 0x01128F11, 0x01129E00, 0x01129F11, 0x0112AA00, 0x0112B010,

7248

0x0112EB00, 0x0112F010, 0x0112FA00, 0x01130011, 0x01130110, 0x01130400, 0x01130510,

7249

0x01130D00, 0x01130F10, 0x01131100, 0x01131310, 0x01132900, 0x01132A10, 0x01133100,

7250

0x01133210, 0x01133400, 0x01133510, 0x01133A00, 0x01133B14, 0x01133C10, 0x01134500,

7251

0x01134710, 0x01134900, 0x01134B10, 0x01134E00, 0x01135011, 0x01135100, 0x01135710,

7252

0x01135800, 0x01135D10, 0x01136400, 0x01136610, 0x01136D00, 0x01137010, 0x01137500,

7253

0x01140012, 0x01145A17, 0x01145B12, 0x01145C00, 0x01145D12, 0x01145E14, 0x01145F15,

7254

0x01146017, 0x01146200, 0x01148010, 0x0114C800, 0x0114D010, 0x0114DA00, 0x01158010,

7255

0x0115B600, 0x0115B810, 0x0115CA11, 0x0115DE00, 0x01160010, 0x01164500, 0x01165010,

7256

0x01165A00, 0x01166012, 0x01166D00, 0x0116800D, 0x0116B815, 0x0116B918, 0x0116BA00,

7257

0x0116C00D, 0x0116CA00, 0x01170011, 0x01171A14, 0x01171B00, 0x01171D11, 0x01172C00,

7258

0x01173011, 0x01174018, 0x01174700, 0x01180014, 0x01183C00, 0x0118A010, 0x0118F300,

7259

0x0118FF10, 0x01190017, 0x01190700, 0x01190917, 0x01190A00, 0x01190C17, 0x01191400,

7260

0x01191517, 0x01191700, 0x01191817, 0x01193600, 0x01193717, 0x01193900, 0x01193B17,

7261

0x01194700, 0x01195017, 0x01195A00, 0x0119A015, 0x0119A800, 0x0119AA15, 0x0119D800,

7262

0x0119DA15, 0x0119E500, 0x011A0013, 0x011A4800, 0x011A5013, 0x011A8415, 0x011A8613,

7263

0x011A9D14, 0x011A9E13, 0x011AA300, 0x011AB018, 0x011AC010, 0x011AF900, 0x011C0012,

7264

0x011C0900, 0x011C0A12, 0x011C3700, 0x011C3812, 0x011C4600, 0x011C5012, 0x011C6D00,

7265

0x011C7012, 0x011C9000, 0x011C9212, 0x011CA800, 0x011CA912, 0x011CB700, 0x011D0013,

7266

0x011D0700, 0x011D0813, 0x011D0A00, 0x011D0B13, 0x011D3700, 0x011D3A13, 0x011D3B00,

7267

0x011D3C13, 0x011D3E00, 0x011D3F13, 0x011D4800, 0x011D5013, 0x011D5A00, 0x011D6014,

7268

0x011D6600, 0x011D6714, 0x011D6900, 0x011D6A14, 0x011D8F00, 0x011D9014, 0x011D9200,

7269

0x011D9314, 0x011D9900, 0x011DA014, 0x011DAA00, 0x011EE014, 0x011EF900, 0x011FB017,

7270

0x011FB100, 0x011FC015, 0x011FF200, 0x011FFF15, 0x01200009, 0x01236F10, 0x01239911,

7271

0x01239A00, 0x01240009, 0x01246310, 0x01246F00, 0x01247009, 0x01247410, 0x01247500,

7272

0x01248011, 0x01254400, 0x012F9018, 0x012FF300, 0x0130000B, 0x01342F00, 0x01343015,

7273

0x01343900, 0x01440011, 0x01464700, 0x0168000C, 0x016A3900, 0x016A4010, 0x016A5F00,

7274

0x016A6010, 0x016A6A00, 0x016A6E10, 0x016A7018, 0x016ABF00, 0x016AC018, 0x016ACA00,

7275

0x016AD010, 0x016AEE00, 0x016AF010, 0x016AF600, 0x016B0010, 0x016B4600, 0x016B5010,

7276

0x016B5A00, 0x016B5B10, 0x016B6200, 0x016B6310, 0x016B7800, 0x016B7D10, 0x016B9000,

7277

0x016E4014, 0x016E9B00, 0x016F000D, 0x016F4515, 0x016F4B00, 0x016F4F15, 0x016F500D,

7278

0x016F7F15, 0x016F8800, 0x016F8F0D, 0x016FA000, 0x016FE012, 0x016FE113, 0x016FE215,

7279

0x016FE417, 0x016FE500, 0x016FF017, 0x016FF200, 0x01700012, 0x0187ED14, 0x0187F215,

7280

0x0187F800, 0x01880012, 0x018AF317, 0x018CD600, 0x018D0017, 0x018D0900, 0x01AFF018,

7281

0x01AFF400, 0x01AFF518, 0x01AFFC00, 0x01AFFD18, 0x01AFFF00, 0x01B0000C, 0x01B00213,

7282

0x01B11F18, 0x01B12300, 0x01B15015, 0x01B15300, 0x01B16415, 0x01B16800, 0x01B17013,

7283

0x01B2FC00, 0x01BC0010, 0x01BC6B00, 0x01BC7010, 0x01BC7D00, 0x01BC8010, 0x01BC8900,

7284

0x01BC9010, 0x01BC9A00, 0x01BC9C10, 0x01BCA400, 0x01CF0018, 0x01CF2E00, 0x01CF3018,

7285

0x01CF4700, 0x01CF5018, 0x01CFC400, 0x01D00005, 0x01D0F600, 0x01D10005, 0x01D12700,

7286

0x01D1290A, 0x01D12A05, 0x01D1DE11, 0x01D1E918, 0x01D1EB00, 0x01D20008, 0x01D24600,

7287

0x01D2E014, 0x01D2F400, 0x01D30007, 0x01D35700, 0x01D36009, 0x01D37214, 0x01D37900,

7288

0x01D40005, 0x01D45500, 0x01D45605, 0x01D49D00, 0x01D49E05, 0x01D4A000, 0x01D4A205,

7289

0x01D4A300, 0x01D4A505, 0x01D4A700, 0x01D4A905, 0x01D4AD00, 0x01D4AE05, 0x01D4BA00,

7290

0x01D4BB05, 0x01D4BC00, 0x01D4BD05, 0x01D4C107, 0x01D4C205, 0x01D4C400, 0x01D4C505,

7291

0x01D50600, 0x01D50705, 0x01D50B00, 0x01D50D05, 0x01D51500, 0x01D51605, 0x01D51D00,

7292

0x01D51E05, 0x01D53A00, 0x01D53B05, 0x01D53F00, 0x01D54005, 0x01D54500, 0x01D54605,

7293

0x01D54700, 0x01D54A05, 0x01D55100, 0x01D55205, 0x01D6A408, 0x01D6A600, 0x01D6A805,

7294

0x01D7CA09, 0x01D7CC00, 0x01D7CE05, 0x01D80011, 0x01DA8C00, 0x01DA9B11, 0x01DAA000,

7295

0x01DAA111, 0x01DAB000, 0x01DF0018, 0x01DF1F00, 0x01E00012, 0x01E00700, 0x01E00812,

7296

0x01E01900, 0x01E01B12, 0x01E02200, 0x01E02312, 0x01E02500, 0x01E02612, 0x01E02B00,

7297

0x01E10015, 0x01E12D00, 0x01E13015, 0x01E13E00, 0x01E14015, 0x01E14A00, 0x01E14E15,

7298

0x01E15000, 0x01E29018, 0x01E2AF00, 0x01E2C015, 0x01E2FA00, 0x01E2FF15, 0x01E30000,

7299

0x01E7E018, 0x01E7E700, 0x01E7E818, 0x01E7EC00, 0x01E7ED18, 0x01E7EF00, 0x01E7F018,

7300

0x01E7FF00, 0x01E80010, 0x01E8C500, 0x01E8C710, 0x01E8D700, 0x01E90012, 0x01E94B15,

7301

0x01E94C00, 0x01E95012, 0x01E95A00, 0x01E95E12, 0x01E96000, 0x01EC7114, 0x01ECB500,

7302

0x01ED0115, 0x01ED3E00, 0x01EE000D, 0x01EE0400, 0x01EE050D, 0x01EE2000, 0x01EE210D,

7303

0x01EE2300, 0x01EE240D, 0x01EE2500, 0x01EE270D, 0x01EE2800, 0x01EE290D, 0x01EE3300,

7304

0x01EE340D, 0x01EE3800, 0x01EE390D, 0x01EE3A00, 0x01EE3B0D, 0x01EE3C00, 0x01EE420D,

7305

0x01EE4300, 0x01EE470D, 0x01EE4800, 0x01EE490D, 0x01EE4A00, 0x01EE4B0D, 0x01EE4C00,

7306

0x01EE4D0D, 0x01EE5000, 0x01EE510D, 0x01EE5300, 0x01EE540D, 0x01EE5500, 0x01EE570D,

7307

0x01EE5800, 0x01EE590D, 0x01EE5A00, 0x01EE5B0D, 0x01EE5C00, 0x01EE5D0D, 0x01EE5E00,

7308

0x01EE5F0D, 0x01EE6000, 0x01EE610D, 0x01EE6300, 0x01EE640D, 0x01EE6500, 0x01EE670D,

7309

0x01EE6B00, 0x01EE6C0D, 0x01EE7300, 0x01EE740D, 0x01EE7800, 0x01EE790D, 0x01EE7D00,

7310

0x01EE7E0D, 0x01EE7F00, 0x01EE800D, 0x01EE8A00, 0x01EE8B0D, 0x01EE9C00, 0x01EEA10D,

7311

0x01EEA400, 0x01EEA50D, 0x01EEAA00, 0x01EEAB0D, 0x01EEBC00, 0x01EEF00D, 0x01EEF200,

7312

0x01F0000A, 0x01F02C00, 0x01F0300A, 0x01F09400, 0x01F0A00C, 0x01F0AF00, 0x01F0B10C,

7313

0x01F0BF10, 0x01F0C000, 0x01F0C10C, 0x01F0D000, 0x01F0D10C, 0x01F0E010, 0x01F0F600,

7314

0x01F1000B, 0x01F10B10, 0x01F10D17, 0x01F1100B, 0x01F12F14, 0x01F1300C, 0x01F1310B,

7315

0x01F1320C, 0x01F13D0B, 0x01F13E0C, 0x01F13F0B, 0x01F1400C, 0x01F1420B, 0x01F1430C,

7316

0x01F1460B, 0x01F1470C, 0x01F14A0B, 0x01F14F0C, 0x01F1570B, 0x01F1580C, 0x01F15F0B,

7317

0x01F1600C, 0x01F16A0D, 0x01F16C15, 0x01F16D17, 0x01F1700C, 0x01F1790B, 0x01F17A0C,

7318

0x01F17B0B, 0x01F17D0C, 0x01F17F0B, 0x01F1800C, 0x01F18A0B, 0x01F18E0C, 0x01F1900B,

7319

0x01F1910C, 0x01F19B12, 0x01F1AD17, 0x01F1AE00, 0x01F1E60C, 0x01F2000B, 0x01F2010C,

7320

0x01F20300, 0x01F2100B, 0x01F2320C, 0x01F23B12, 0x01F23C00, 0x01F2400B, 0x01F24900,

7321

0x01F2500C, 0x01F25200, 0x01F26013, 0x01F26600, 0x01F3000C, 0x01F32110, 0x01F32D11,

7322

0x01F3300C, 0x01F33610, 0x01F3370C, 0x01F37D10, 0x01F37E11, 0x01F3800C, 0x01F39410,

7323

0x01F3A00C, 0x01F3C510, 0x01F3C60C, 0x01F3CB10, 0x01F3CF11, 0x01F3D410, 0x01F3E00C,

7324

0x01F3F110, 0x01F3F811, 0x01F4000C, 0x01F43F10, 0x01F4400C, 0x01F44110, 0x01F4420C,

7325

0x01F4F810, 0x01F4F90C, 0x01F4FD10, 0x01F4FF11, 0x01F5000C, 0x01F53E10, 0x01F5400D,

7326

0x01F54410, 0x01F54B11, 0x01F5500C, 0x01F56810, 0x01F57A12, 0x01F57B10, 0x01F5A412,

7327

0x01F5A510, 0x01F5FB0C, 0x01F6000D, 0x01F6010C, 0x01F6110D, 0x01F6120C, 0x01F6150D,

7328

0x01F6160C, 0x01F6170D, 0x01F6180C, 0x01F6190D, 0x01F61A0C, 0x01F61B0D, 0x01F61C0C,

7329

0x01F61F0D, 0x01F6200C, 0x01F6260D, 0x01F6280C, 0x01F62C0D, 0x01F62D0C, 0x01F62E0D,

7330

0x01F6300C, 0x01F6340D, 0x01F6350C, 0x01F64110, 0x01F64311, 0x01F6450C, 0x01F65010,

7331

0x01F6800C, 0x01F6C610, 0x01F6D011, 0x01F6D112, 0x01F6D313, 0x01F6D515, 0x01F6D617,

7332

0x01F6D800, 0x01F6DD18, 0x01F6E010, 0x01F6ED00, 0x01F6F010, 0x01F6F412, 0x01F6F713,

7333

0x01F6F914, 0x01F6FA15, 0x01F6FB17, 0x01F6FD00, 0x01F7000C, 0x01F77400, 0x01F78010,

7334

0x01F7D514, 0x01F7D900, 0x01F7E015, 0x01F7EC00, 0x01F7F018, 0x01F7F100, 0x01F80010,

7335

0x01F80C00, 0x01F81010, 0x01F84800, 0x01F85010, 0x01F85A00, 0x01F86010, 0x01F88800,

7336

0x01F89010, 0x01F8AE00, 0x01F8B017, 0x01F8B200, 0x01F90013, 0x01F90C17, 0x01F90D15,

7337

0x01F91011, 0x01F91912, 0x01F91F13, 0x01F92012, 0x01F92813, 0x01F93012, 0x01F93113,

7338

0x01F93312, 0x01F93F15, 0x01F94012, 0x01F94C13, 0x01F94D14, 0x01F95012, 0x01F95F13,

7339

0x01F96C14, 0x01F97115, 0x01F97217, 0x01F97314, 0x01F97717, 0x01F97918, 0x01F97A14,

7340

0x01F97B15, 0x01F97C14, 0x01F98011, 0x01F98512, 0x01F99213, 0x01F99814, 0x01F9A317,

7341

0x01F9A515, 0x01F9AB17, 0x01F9AE15, 0x01F9B014, 0x01F9BA15, 0x01F9C011, 0x01F9C114,

7342

0x01F9C315, 0x01F9CB17, 0x01F9CC18, 0x01F9CD15, 0x01F9D013, 0x01F9E714, 0x01FA0015,

7343

0x01FA5400, 0x01FA6014, 0x01FA6E00, 0x01FA7015, 0x01FA7417, 0x01FA7500, 0x01FA7815,

7344

0x01FA7B18, 0x01FA7D00, 0x01FA8015, 0x01FA8317, 0x01FA8700, 0x01FA9015, 0x01FA9617,

7345

0x01FAA918, 0x01FAAD00, 0x01FAB017, 0x01FAB718, 0x01FABB00, 0x01FAC017, 0x01FAC318,

7346

0x01FAC600, 0x01FAD017, 0x01FAD718, 0x01FADA00, 0x01FAE018, 0x01FAE800, 0x01FAF018,

7347

0x01FAF700, 0x01FB0017, 0x01FB9300, 0x01FB9417, 0x01FBCB00, 0x01FBF017, 0x01FBFA00,

7348

0x02000005, 0x02A6D717, 0x02A6DE18, 0x02A6E000, 0x02A7000B, 0x02B73518, 0x02B73900,

7349

0x02B7400C, 0x02B81E00, 0x02B82011, 0x02CEA200, 0x02CEB013, 0x02EBE100, 0x02F80005,

7350

0x02FA1E00, 0x03000017, 0x03134B00, 0x0E000105, 0x0E000200, 0x0E002005, 0x0E008000,

7351

0x0E010007, 0x0E01F000, 0x0F000002, 0x0FFFFE00, 0x10000002, 0x10FFFE00, 0xFFFFFFFF};

7352  static

constexpr string_with_idx categories_names[] = {

7353

string_with_idx{

"c"

, 0},

7354

string_with_idx{

"cased_letter"

, 7},

7355

string_with_idx{

"cc"

, 1},

7356

string_with_idx{

"cf"

, 2},

7357

string_with_idx{

"close_punctuation"

, 24},

7358

string_with_idx{

"cn"

, 3},

7359

string_with_idx{

"co"

, 4},

7360

string_with_idx{

"connector_punctuation"

, 22},

7361

string_with_idx{

"control"

, 1},

7362

string_with_idx{

"cs"

, 5},

7363

string_with_idx{

"currency_symbol"

, 30},

7364

string_with_idx{

"dash_punctuation"

, 23},

7365

string_with_idx{

"decimal_number"

, 18},

7366

string_with_idx{

"enclosing_mark"

, 15},

7367

string_with_idx{

"final_punctuation"

, 25},

7368

string_with_idx{

"format"

, 2},

7369

string_with_idx{

"initial_punctuation"

, 26},

7370

string_with_idx{

"l"

, 6},

7371

string_with_idx{

"lc"

, 7},

7372

string_with_idx{

"letter"

, 6},

7373

string_with_idx{

"letter_number"

, 19},

7374

string_with_idx{

"line_separator"

, 35},

7375

string_with_idx{

"ll"

, 8},

7376

string_with_idx{

"lm"

, 9},

7377

string_with_idx{

"lo"

, 10},

7378

string_with_idx{

"lowercase_letter"

, 8},

7379

string_with_idx{

"lt"

, 11},

7380

string_with_idx{

"lu"

, 12},

7381

string_with_idx{

"m"

, 13},

7382

string_with_idx{

"mark"

, 13},

7383

string_with_idx{

"math_symbol"

, 32},

7384

string_with_idx{

"mc"

, 14},

7385

string_with_idx{

"me"

, 15},

7386

string_with_idx{

"mn"

, 16},

7387

string_with_idx{

"modifier_letter"

, 9},

7388

string_with_idx{

"modifier_symbol"

, 31},

7389

string_with_idx{

"n"

, 17},

7390

string_with_idx{

"nd"

, 18},

7391

string_with_idx{

"nl"

, 19},

7392

string_with_idx{

"no"

, 20},

7393

string_with_idx{

"nonspacing_mark"

, 16},

7394

string_with_idx{

"number"

, 17},

7395

string_with_idx{

"open_punctuation"

, 28},

7396

string_with_idx{

"other"

, 0},

7397

string_with_idx{

"other_letter"

, 10},

7398

string_with_idx{

"other_number"

, 20},

7399

string_with_idx{

"other_punctuation"

, 27},

7400

string_with_idx{

"other_symbol"

, 33},

7401

string_with_idx{

"p"

, 21},

7402

string_with_idx{

"paragraph_separator"

, 36},

7403

string_with_idx{

"pc"

, 22},

7404

string_with_idx{

"pd"

, 23},

7405

string_with_idx{

"pe"

, 24},

7406

string_with_idx{

"pf"

, 25},

7407

string_with_idx{

"pi"

, 26},

7408

string_with_idx{

"po"

, 27},

7409

string_with_idx{

"private_use"

, 4},

7410

string_with_idx{

"ps"

, 28},

7411

string_with_idx{

"punctuation"

, 21},

7412

string_with_idx{

"s"

, 29},

7413

string_with_idx{

"sc"

, 30},

7414

string_with_idx{

"separator"

, 34},

7415

string_with_idx{

"sk"

, 31},

7416

string_with_idx{

"sm"

, 32},

7417

string_with_idx{

"so"

, 33},

7418

string_with_idx{

"space_separator"

, 37},

7419

string_with_idx{

"spacing_mark"

, 14},

7420

string_with_idx{

"surrogate"

, 5},

7421

string_with_idx{

"symbol"

, 29},

7422

string_with_idx{

"titlecase_letter"

, 11},

7423

string_with_idx{

"unassigned"

, 3},

7424

string_with_idx{

"uppercase_letter"

, 12},

7425

string_with_idx{

"z"

, 34},

7426

string_with_idx{

"zl"

, 35},

7427

string_with_idx{

"zp"

, 36},

7428

string_with_idx{

"zs"

, 37}};

7429  static

constexpr range_array cat_cc = {0x00000001, 0x00002000, 0x00007F01, 0x0000A000};

7430  static

constexpr range_array cat_zs = {0x00000000, 0x00002001, 0x00002100, 0x0000A001,

7431

0x0000A100, 0x00168001, 0x00168100, 0x00200001,

7432

0x00200B00, 0x00202F01, 0x00203000, 0x00205F01,

7433

0x00206000, 0x00300001, 0x00300100};

7434  static

constexpr bool_trie<32, 991, 1, 0, 51, 255, 1, 0, 482, 4, 26, 43> cat_po{

7435

{0x8c00d4ee00000000, 0x0000000010000001, 0x80c0008200000000, 0x0000000000000000,

7436

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7437

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7438

0x0000000000000000, 0x4000000000000000, 0x0000000000000080, 0x0000000000000000,

7439

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7440

0x0000000000000000, 0x00000000fc000000, 0x0000000000000200, 0x0018000000000049,

7441

0x00000000e8003600, 0x00003c0000000000, 0x0000000000000000, 0x0000000000100000,

7442

0x0000000000003fff, 0x0000000000000000, 0x0000000000000000, 0x0380000000000000},

7443

{1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 2, 2, 2, 2, 7, 8, 2, 2, 2, 2, 9, 2,

7444

10, 2, 2, 11, 2, 12, 13, 2, 14, 2, 15, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2,

7445

2, 2, 2, 2, 2, 2, 2, 2, 17, 2, 18, 19, 2, 2, 20, 21, 2, 2, 2, 2, 22, 2, 2, 23,

7446

2, 24, 2, 2, 25, 2, 26, 27, 28, 2, 29, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 30,

7447

31, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7448

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7449

2, 2, 32, 2, 6, 2, 2, 33, 34, 2, 2, 2, 2, 2, 2, 35, 2, 2, 15, 2, 2, 2, 2, 2,

7450

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7451

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7452

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7453

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7454

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7455

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7456

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7457

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7458

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7459

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7460

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7461

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7462

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7463

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7464

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7465

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7466

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7467

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7468

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7469

2, 2, 28, 2, 2, 2, 2, 36, 37, 2, 38, 2, 2, 2, 2, 2, 39, 2, 40, 41, 42, 2, 43, 2,

7470

44, 2, 45, 2, 2, 2, 46, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7471

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7472

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7473

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7474

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7475

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7476

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7477

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7478

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7479

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7480

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7481

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7482

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7483

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47,

7484

48, 2, 2, 49, 50, 2, 2},

7485

{0x7fff000000000000, 0x0000000040000000, 0x0000000000000000, 0x0001003000000000,

7486

0x2000000000000000, 0x0040000000000000, 0x0001000000000000, 0x0080000000000000,

7487

0x0000000000000010, 0x0010000000000000, 0x000000000c008000, 0x000000000017fff0,

7488

0x0000000000000020, 0x00000000061f0000, 0x000000000000fc00, 0x0800000000000000,

7489

0x000001ff00000000, 0x0000400000000000, 0x0000380000000000, 0x0060000000000000,

7490

0x0000000007700000, 0x00000000000007bf, 0x0000000000000030, 0x00000000c0000000,

7491

0x00003f7f00000000, 0x60000001fc000000, 0xf000000000000000, 0xf800000000000000,

7492

0xc000000000000000, 0x00000000000800ff, 0x79ff00ff00c00000, 0x000000007febff8e,

7493

0xde00000000000000, 0xf3ff7c00cb7fc9c3, 0x00000000001cfffa, 0x200000000000000e,

7494

0x000000000000e000, 0x4008000000000000, 0x00fc000000000000, 0x00f0000000000000,

7495

0x170000000000c000, 0x0000c00000000000, 0x0000000080000000, 0x00000000c0003ffe,

7496

0x00000000f0000000, 0x00030000c0000000, 0x0000080000000000, 0x00010000027f0000,

7497

0x00000d0380f71e60, 0x100000018c00d4ee, 0x0000003200000000},

7498

{1, 2, 3, 3, 3, 4, 3, 3, 3, 3, 5, 3, 6, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

7499

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

7500

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

7501

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

7502

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

7503

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

7504

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

7505

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

7506

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3},

7507

{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,

7508

0, 0, 0, 0, 0, 0, 5, 0, 0, 6, 0, 0, 0, 0, 7, 0, 8, 9, 0, 10, 0, 0, 0,

7509

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, 0, 0, 13, 14, 15, 0, 16, 0, 17, 18,

7510

0, 19, 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, 0, 0, 22, 0, 23, 24, 0, 25, 0, 0, 0,

7511

26, 0, 0, 0, 0, 27, 0, 28, 29, 30, 31, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,

7512

0, 0, 0, 0, 33, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7513

0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7514

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7515

0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7516

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7517

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7518

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7519

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 38, 39, 0,

7520

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0,

7521

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7522

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,

7523

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7524

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7525

0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7526

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7527

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42},

7528

{0x0000000000000000, 0x0000000000000007, 0x0000000080000000, 0x0000000000010000,

7529

0x0000800000000000, 0x0000000000800000, 0x8000000080000000, 0x8000000001ff0000,

7530

0x007f000000000000, 0xfe00000000000000, 0x000000001e000000, 0x0000000003e00000,

7531

0x00000000000003c0, 0x0000000000003f80, 0xd800000000000000, 0x0000000000000003,

7532

0x003000000000000f, 0x00000000e80021e0, 0x3f00000000000000, 0x0000020000000000,

7533

0x000000002c00f800, 0x0000000000000040, 0x0000000000fffffe, 0x00001fff0000000e,

7534

0x0200000000000000, 0x7000000000000000, 0x0800000000000000, 0x0000000000000070,

7535

0x0000000400000000, 0x8000000000000000, 0x000000000000007f, 0x00000007dc000000,

7536

0x000300000000003e, 0x0180000000000000, 0x001f000000000000, 0x0006000000000000,

7537

0x0000c00000000000, 0x0020000000000000, 0x0f80000000000000, 0x0000000000000010,

7538

0x0000000007800000, 0x0000000000000f80, 0x00000000c0000000}};

7539  static

constexpr range_array cat_sc = {

7540

0x00000000, 0x00002401, 0x00002500, 0x0000A201, 0x0000A600, 0x00058F01, 0x00059000,

7541

0x00060B01, 0x00060C00, 0x0007FE01, 0x00080000, 0x0009F201, 0x0009F400, 0x0009FB01,

7542

0x0009FC00, 0x000AF101, 0x000AF200, 0x000BF901, 0x000BFA00, 0x000E3F01, 0x000E4000,

7543

0x0017DB01, 0x0017DC00, 0x0020A001, 0x0020C100, 0x00A83801, 0x00A83900, 0x00FDFC01,

7544

0x00FDFD00, 0x00FE6901, 0x00FE6A00, 0x00FF0401, 0x00FF0500, 0x00FFE001, 0x00FFE200,

7545

0x00FFE501, 0x00FFE700, 0x011FDD01, 0x011FE100, 0x01E2FF01, 0x01E30000, 0x01ECB001,

7547  static

constexpr bool_trie<32, 962, 28, 2, 19, 0, 0, 0, 0, 0, 0, 0> cat_ps{

7548

{0x0000010000000000, 0x0800000008000000, 0x0000000000000000, 0x0000000000000000,

7549

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7550

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7551

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7552

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7553

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7554

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7555

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000},

7556

{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,

7557

0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7558

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,

7559

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 9, 10, 0, 0, 0, 0,

7560

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0,

7561

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7562

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7563

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7564

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7565

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7566

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7567

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7568

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7569

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7570

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7571

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7572

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7573

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7574

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7575

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7576

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7577

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7578

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7579

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7580

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7581

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7582

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7583

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7584

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7585

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7586

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7587

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7588

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7589

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7590

14, 0, 0, 0, 15, 16, 0, 0, 17, 18},

7591

{0x0000000000000000, 0x1400000000000000, 0x0000000008000000, 0x0000000044000000,

7592

0x2000000000000020, 0x0000000000002000, 0x0000020000000500, 0x0015550000000000,

7593

0x0000554000000020, 0x0000000000aaaaa8, 0x1000000005000000, 0x0000015400000000,

7594

0x000000000aa00004, 0x0000000025515500, 0x8000000000000000, 0xaaa0000000800000,

7595

0x000000002a00008a, 0x0800000000000100, 0x0000000488000000},

7599  static

constexpr bool_trie<32, 962, 28, 2, 18, 0, 0, 0, 0, 0, 0, 0> cat_pe{

7600

{0x0000020000000000, 0x2000000020000000, 0x0000000000000000, 0x0000000000000000,

7601

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7602

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7603

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7604

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7605

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7606

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7607

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000},

7608

{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,

7609

0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7610

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0,

7611

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, 0, 0,

7612

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,

7613

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7614

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7615

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7616

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7617

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7618

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7619

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7620

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7621

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7622

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7623

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7624

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7625

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7626

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7627

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7628

0, 0, 0, 0, 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

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7630

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7631

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7632

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7633

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7634

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7635

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7636

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7637

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7638

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7639

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7640

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7641

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7642

13, 0, 0, 0, 14, 15, 0, 0, 16, 17},

7643

{0x0000000000000000, 0x2800000000000000, 0x0000000010000000, 0x4000000000000040,

7644

0x0000000000004000, 0x0000040000000a00, 0x002aaa0000000000, 0x0000aa8000000040,

7645

0x0000000001555550, 0x200000000a000000, 0x000002a800000000, 0x0000000015400000,

7646

0x00000000caa2aa00, 0x4000000000000000, 0x5540000001000000, 0x0000000054000115,

7647

0x2000000000000200, 0x0000000920000000},

7651  static

constexpr bool_trie<32, 895, 97, 0, 25, 2, 13, 241, 97, 91, 4, 7> cat_sm{

7652

{0x7000080000000000, 0x5000000000000000, 0x0002100000000000, 0x0080000000800000,

7653

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7654

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7655

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0040000000000000,

7656

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7657

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7658

0x00000000000001c0, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7659

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000},

7660

{1, 2, 0, 3, 4, 5, 6, 7, 7, 7, 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, 12, 13, 0, 14, 0,

7661

0, 0, 0, 0, 15, 0, 0, 0, 0, 7, 7, 16, 17, 7, 7, 7, 7, 18, 19, 0, 0, 0, 0, 0, 0, 0,

7662

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7663

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7664

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7665

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7666

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7667

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7668

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7669

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7670

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7671

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7672

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7673

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7674

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7675

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7676

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7677

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7678

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7679

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7680

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7681

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7682

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7683

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7684

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7685

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7686

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7687

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7688

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7689

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7690

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7691

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7692

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7693

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0,

7694

0, 0, 0, 0, 21, 0, 0, 22, 23, 0, 24},

7695

{0x0000000000000000, 0x1c00000000040010, 0x0000000000001c00, 0x0000000001000000,

7696

0x000000000000081f, 0x000040490c1f0000, 0xfff000000014c000, 0xffffffffffffffff,

7697

0x0000000300000000, 0x1000000000000000, 0x000ffffff8000000, 0x00000003f0000000,

7698

0x0080000000000000, 0xff00000000000002, 0x0000800000000000, 0xffff003fffffff9f,

7699

0xfffffffffe000007, 0xcffffffff0ffffff, 0xffff000000000000, 0x0000000000001f9f,

7700

0x0000020000000000, 0x0000007400000000, 0x0000000070000800, 0x0000000050000000,

7701

0x00001e0400000000},

7703

{1, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7704

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7705

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7706

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6},

7707

{0x0000000000000000, 0x0800000008000002, 0x0020000000200000, 0x0000800000008000,

7708

0x0000020000000200, 0x0000000000000008, 0x0003000000000000}};

7709  static

constexpr flat_array<26> cat_pd{{0x1400, 0x1806, 0x058A, 0xFF0D, 0x2010, 0x2011, 0x2012,

7710

0x2013, 0x2014, 0x2015, 0x2E17, 0x2E1A, 0x301C, 0x30A0,

7711

0x002D, 0x10EAD, 0x3030, 0xFE31, 0xFE32, 0x2E3A, 0x2E3B,

7712

0x05BE, 0x2E40, 0xFE58, 0x2E5D, 0xFE63}};

7713  static

constexpr bool_trie<32, 984, 5, 3, 9, 255, 1, 0, 414, 18, 16, 8> cat_nd{

7714

{0x03ff000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7715

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7716

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7717

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7718

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7719

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7720

0x0000000000000000, 0x000003ff00000000, 0x0000000000000000, 0x03ff000000000000,

7721

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x00000000000003ff},

7722

{1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 2, 3, 0, 0, 0, 0, 4, 2,

7723

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2,

7724

0, 0, 0, 0, 5, 0, 2, 0, 0, 6, 0, 0, 2, 7, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7725

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7726

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7727

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7728

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7729

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7730

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7731

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7732

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7733

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7734

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7735

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7736

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7737

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7738

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7739

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7740

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7741

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7742

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,

7743

0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 8, 0, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7744

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7745

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7746

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7747

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7748

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7749

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7750

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7751

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7752

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7753

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7754

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2},

7755

{0x0000000000000000, 0x0000ffc000000000, 0x0000000003ff0000, 0x000003ff00000000,

7756

0x00000000000003ff, 0x000000000000ffc0, 0x0000000003ff03ff, 0x03ff000000000000,

7757

0x03ff000003ff0000},

7758

{1, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 4, 5, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7759

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,

7760

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,

7761

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,

7762

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,

7763

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,

7764

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,

7765

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,

7766

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},

7767

{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,

7768

0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, 4, 0, 0, 5, 0, 0, 0, 2, 0, 0,

7769

0, 0, 0, 5, 0, 5, 0, 0, 0, 0, 0, 5, 0, 6, 2, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0,

7770

0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7771

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7772

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7773

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7774

0, 0, 0, 0, 0, 1, 0, 6, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7775

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,

7776

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7777

0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7778

0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7779

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7780

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2},

7781

{0x0000000000000000, 0x000003ff00000000, 0x03ff000000000000, 0x0000ffc000000000,

7782

0xffc0000000000000, 0x0000000003ff0000, 0x00000000000003ff, 0xffffffffffffc000}};

7783  static

constexpr bool_trie<32, 955, 34, 3, 24, 255, 1, 0, 341, 16, 27, 26> cat_lu{

7784

{0x0000000000000000, 0x0000000007fffffe, 0x0000000000000000, 0x000000007f7fffff,

7785

0xaa55555555555555, 0x2b555555555554aa, 0x11aed2d5b1dbced6, 0x55d255554aaaa490,

7786

0x6c05555555555555, 0x000000000000557a, 0x0000000000000000, 0x0000000000000000,

7787

0x0000000000000000, 0x8045000000000000, 0x00000ffbfffed740, 0xe6905555551c8000,

7788

0x0000ffffffffffff, 0x5555555500000000, 0x5555555555555401, 0x5555555555552aab,

7789

0xfffe555555555555, 0x00000000007fffff, 0x0000000000000000, 0x0000000000000000,

7790

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7791

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000},

7792

{1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7793

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,

7794

0, 0, 5, 5, 6, 5, 7, 8, 9, 10, 0, 0, 0, 0, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7795

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7796

0, 0, 0, 0, 0, 0, 14, 15, 5, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7797

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7798

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7799

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7800

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7801

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7802

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7803

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7804

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7805

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7806

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7807

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7808

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7809

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7810

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7811

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7812

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7813

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7814

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7815

0, 17, 18, 0, 19, 20, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7816

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7817

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7818

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7819

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7820

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7821

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7822

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7823

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7824

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7825

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7826

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7827

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7828

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23},

7829

{0x0000000000000000, 0xffffffff00000000, 0x00000000000020bf, 0x003fffffffffffff,

7830

0xe7ffffffffff0000, 0x5555555555555555, 0x5555555540155555, 0xff00ff003f00ff00,

7831

0x0000ff00aa003f00, 0x0f00000000000000, 0x0f001f000f000f00, 0xc00f3d503e273884,

7832

0x0000000000000020, 0x0000000000000008, 0x0000ffffffffffff, 0xc025ea9d00000000,

7833

0x0004280555555555, 0x0000155555555555, 0x0000000005555555, 0x5554555400000000,

7834

0x6a00555555555555, 0x555f7d5555452855, 0x00200000014102f5, 0x07fffffe00000000},

7835

{1, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 4, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7836

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,

7837

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,

7838

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,

7839

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,

7840

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,

7841

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,

7842

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,

7843

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},

7844

{1, 0, 2, 3, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7845

0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7846

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7847

0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7848

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7849

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7850

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7851

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7852

0, 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

0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7854

0, 0, 0, 0, 0, 0, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0,

7855

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7856

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7857

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25},

7858

{0x0000000000000000, 0x000000ffffffffff, 0xffff000000000000, 0x00000000000fffff,

7859

0xf7ff000000000000, 0x000000000037f7ff, 0x0007ffffffffffff, 0xffffffff00000000,

7860

0x00000000ffffffff, 0xfff0000003ffffff, 0xffffff0000003fff, 0x003fde64d0000003,

7861

0x000003ffffff0000, 0x7b0000001fdfe7b0, 0xfffff0000001fc5f, 0x03ffffff0000003f,

7862

0x00003ffffff00000, 0xf0000003ffffff00, 0xffff0000003fffff, 0xffffff00000003ff,

7863

0x07fffffc00000001, 0x001ffffff0000000, 0x00007fffffc00000, 0x000001ffffff0000,

7864

0x0000000000000400, 0x00000003ffffffff}};

7865  static

constexpr bool_trie<32, 990, 2, 0, 13, 1, 15, 240, 1, 79, 48, 2> cat_sk{

7866

{0x0000000000000000, 0x0000000140000000, 0x0110810000000000, 0x0000000000000000,

7867

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7868

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0xffffafe0fffc003c,

7869

0x0000000000000000, 0x0020000000000000, 0x0000000000000030, 0x0000000000000000,

7870

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7871

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7872

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7873

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000},

7874

{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,

7875

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7876

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7877

0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7878

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7879

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7880

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7881

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7882

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7883

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7884

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7885

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7886

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7887

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7888

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7889

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7890

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7891

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7892

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7893

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7894

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7895

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0,

7896

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7897

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7898

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7899

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7900

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7901

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7902

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7903

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7904

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7905

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7906

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7907

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7909

{0x0000000000000000, 0x0000000000000100, 0xa000000000000000, 0x6000e000e000e003,

7910

0x0000000018000000, 0x00000003007fffff, 0x0000000000000600, 0x00000c0008000000,

7911

0xfffc000000000000, 0x0000000000000007, 0x4000000000000000, 0x0000000000000001,

7912

0x0000000800000000},

7915

{0x0000000000000000, 0xf800000000000000}};

7916  static

constexpr flat_array<10> cat_pc{

7917

{0x2040, 0xFE4D, 0xFE4E, 0xFE4F, 0xFE33, 0x2054, 0xFE34, 0xFF3F, 0x005F, 0x203F}};

7918  static

constexpr bool_trie<32, 955, 35, 2, 30, 255, 1, 0, 342, 16, 26, 27> cat_ll{

7919

{0x0000000000000000, 0x07fffffe00000000, 0x0020000000000000, 0xff7fffff80000000,

7920

0x55aaaaaaaaaaaaaa, 0xd4aaaaaaaaaaab55, 0xe6512d2a4e243129, 0xaa29aaaab5555240,

7921

0x93faaaaaaaaaaaaa, 0xffffffffffffaa85, 0x0000ffffffefffff, 0x0000000000000000,

7922

0x0000000000000000, 0x388a000000000000, 0xfffff00000010000, 0x192faaaaaae37fff,

7923

0xffff000000000000, 0xaaaaaaaaffffffff, 0xaaaaaaaaaaaaa802, 0xaaaaaaaaaaaad554,

7924

0x0000aaaaaaaaaaaa, 0xffffffff00000000, 0x00000000000001ff, 0x0000000000000000,

7925

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

7926

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000},

7927

{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7928

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4,

7929

5, 6, 0, 7, 7, 8, 7, 9, 10, 11, 12, 0, 0, 0, 0, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0,

7930

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7931

0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 7, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7932

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7933

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7934

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7935

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7936

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7937

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7938

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7939

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7940

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7941

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7942

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7943

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7944

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7945

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7946

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7947

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7948

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7949

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7950

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 21,

7951

0, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 26, 27, 0, 0, 0, 0, 0,

7952

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7953

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7954

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7955

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7956

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7957

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7958

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7959

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7960

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7961

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7962

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7963

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7964

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7966

{0x0000000000000000, 0xe7ffffffffff0000, 0x3f00000000000000, 0x00000000000001ff,

7967

0x00000fffffffffff, 0xfefff80000000000, 0x0000000007ffffff, 0xaaaaaaaaaaaaaaaa,

7968

0xaaaaaaaabfeaaaaa, 0x00ff00ff003f00ff, 0x3fff00ff00ff003f, 0x40df00ff00ff00ff,

7969

0x00dc00ff00cf00dc, 0x321080000008c400, 0x00000000000043c0, 0x0000000000000010,

7970

0xffff000000000000, 0x0fda1562ffffffff, 0x0008501aaaaaaaaa, 0x000020bfffffffff,

7971

0x00002aaaaaaaaaaa, 0x000000000aaaaaaa, 0xaaabaaa800000000, 0x95feaaaaaaaaaaaa,

7972

0xaaa082aaaaba50aa, 0x0440000002aa050a, 0xffff01ff07ffffff, 0xffffffffffffffff,

7973

0x0000000000f8007f, 0x0000000007fffffe},

7974

{1, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 4, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

7975

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,

7976

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,

7977

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,

7978

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,

7979

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,

7980

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,

7981

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,

7982

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},

7983

{1, 2, 0, 3, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7984

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7985

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7986

0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7987

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7988

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7989

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7990

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7991

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7992

0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7993

0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0,

7994

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7995

24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

7996

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 26},

7997

{0x0000000000000000, 0xffffff0000000000, 0x000000000000ffff, 0x0fffffffff000000,

7998

0x1bfbfffbff800000, 0x0007ffffffffffff, 0x00000000ffffffff, 0xffffffff00000000,

7999

0x000ffffffc000000, 0x000000ffffdfc000, 0xebc000000ffffffc, 0xfffffc000000ffef,

8000

0x00ffffffc000000f, 0x00000ffffffc0000, 0xfc000000ffffffc0, 0xffffc000000fffff,

8001

0x0ffffffc000000ff, 0x0000ffffffc00000, 0x0000003ffffffc00, 0xf0000003f7fffffc,

8002

0xffc000000fdfffff, 0xffff0000003f7fff, 0xfffffc000000fdff, 0x0000000000000bf7,

8003

0x000000007ffffbff, 0xfffffffc00000000, 0x000000000000000f}};

8004  static

constexpr bool_trie<32, 985, 7, 0, 54, 255, 1, 0, 556, 4, 16, 48> cat_so{

8005

{0x0000000000000000, 0x0000000000000000, 0x0001424000000000, 0x0000000000000000,

8006

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8007

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8008

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8009

0x0000000000000000, 0x0000000000000000, 0x0000000000000004, 0x0000000000000000,

8010

0x0000000000000000, 0x0000000000000000, 0x0000000000006000, 0x0000000000000000,

8011

0x000000000000c000, 0x0000000000000000, 0x0000000000000000, 0x6000020040000000,

8012

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0040000000000000},

8013

{1, 0, 0, 0, 0, 0, 2, 0, 3, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 6, 0,

8014

7, 8, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0,

8015

0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 0, 0, 0, 0,

8016

0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8017

0, 15, 16, 17, 18, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 26, 27, 27, 28, 29, 27, 30,

8018

27, 27, 27, 31, 32, 0, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 33, 34, 35, 27, 0,

8019

0, 0, 36, 0, 0, 0, 0, 0, 37, 38, 39, 27, 27, 27, 40, 41, 0, 0, 0, 0, 0, 42, 43,

8020

44, 45, 46, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8021

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8022

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8023

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8024

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,

8025

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8026

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8027

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8028

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8029

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8030

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8031

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8032

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8033

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8034

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8035

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8036

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8037

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8038

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8039

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 48,

8040

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0,

8041

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8042

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8043

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8044

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8045

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8046

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8047

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8048

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8049

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8050

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8051

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8052

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8053

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8054

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8055

0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 52, 0, 0, 0, 0, 0, 0, 0, 53},

8056

{0x0000000000000000, 0x0400000000000000, 0x0001000000000000, 0x05f8000000000000,

8057

0x8000000000000000, 0x0200000000008000, 0x01500000fce8000e, 0xc000000000000000,

8058

0x0000000001e0dfbf, 0x00000000c0000000, 0x0000000003ff0000, 0x0000200000000000,

8059

0x0000000000000001, 0xffffffffc0000000, 0x1ff007fe00000000, 0x0c0042afc0d0037b,

8060

0x000000000000b400, 0xffffbfb6f3e00c00, 0x000fffffffeb3fff, 0xfffff9fcfffff0ff,

8061

0xefffffffffffffff, 0xfff0000007ffffff, 0xfffffffc0fffffff, 0x0000007fffffffff,

8062

0x00000000000007ff, 0xfffffffff0000000, 0x000003ffffffffff, 0xffffffffffffffff,

8063

0xff7fffffffffffff, 0x00fffffffffffffd, 0xffff7fffffffffff, 0x000000ffffffffff,

8064

0xfffffffffff00000, 0x0000ffffffffffff, 0xffcfffffffffe060, 0xffffffffffbfffff,

8065

0x000007e000000000, 0x0000000000030000, 0xfffffffffbffffff, 0x000fffffffffffff,

8066

0x0fff0000003fffff, 0xc0c00001000c0010, 0x00000000ffc30000, 0x0000000fffffffff,

8067

0xfffffc007fffffff, 0xffffffff000100ff, 0x0001fffffffffc00, 0xffffffffffff0000,

8068

0x000000000000007f, 0x02c00f0000000000, 0x0380000000000000, 0x000000000000ffff,

8069

0xe000000000008000, 0x3000611000000000},

8070

{1, 2, 2, 2, 2, 3, 2, 2, 2, 2, 4, 5, 6, 7, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8071

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,

8072

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,

8073

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,

8074

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,

8075

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,

8076

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,

8077

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,

8078

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},

8079

{1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8080

0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0,

8081

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8082

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,

8083

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8084

0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8085

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8086

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8087

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8088

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8089

0, 0, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8090

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8091

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8092

0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8093

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8094

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8095

0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, 14, 13, 13, 13, 15, 16, 17, 18, 19, 13, 20, 0,

8096

0, 13, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13,

8097

13, 13, 13, 13, 13, 13, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8098

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8099

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8100

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8101

0, 0, 28, 13, 29, 30, 31, 13, 32, 33, 34, 35, 0, 0, 13, 13, 13, 36, 13, 13, 13, 13, 13,

8102

13, 13, 13, 13, 13, 13, 37, 13, 38, 13, 39, 40, 41, 42, 0, 13, 13, 13, 13, 13, 43, 44, 45,

8104

{0x0000000000000000, 0xff80000000000000, 0xfe00000000000000, 0x000000011fff73ff,

8105

0x1fffffffffff0000, 0x0180000000000000, 0x0000000000000100, 0x8000000000000000,

8106

0x0003fffe1fe00000, 0xf000000000000000, 0x0000000000000020, 0x0000000010000000,

8107

0xffffffffffff0000, 0xffffffffffffffff, 0x000000000000000f, 0x003fffffffffffff,

8108

0xfffffe7fffffffff, 0x00001c1fffffffff, 0xffffc3fffffff018, 0x000007ffffffffff,

8109

0x0000000000000023, 0x00000000007fffff, 0x0780000000000000, 0xffdfe00000000000,

8110

0x000000000000006f, 0x0000000000008000, 0x0000100000000000, 0x0000400000000000,

8111

0xffff0fffffffffff, 0xfffe7fff000fffff, 0x003ffffffffefffe, 0xffffffffffffe000,

8112

0x00003fffffffffff, 0xffffffc000000000, 0x0fffffffffff0007, 0x0000003f000301ff,

8113

0x07ffffffffffffff, 0x1fff1fffe0ffffff, 0x000fffffffffffff, 0x00010fff01ffffff,

8114

0xffffffffffff0fff, 0xffffffff03ff00ff, 0x00033fffffff00ff, 0x1f1f3fff000fffff,

8115

0x07ff1fffffff007f, 0x007f00ff03ff003f, 0xfffffffffff7ffff, 0x00000000000007ff}};

8116  static

constexpr bool_trie<32, 991, 1, 0, 114, 255, 1, 0, 1151, 1, 0, 103> cat_lo{

8117

{0x0000000000000000, 0x0000000000000000, 0x0400040000000000, 0x0000000000000000,

8118

0x0000000000000000, 0x0000000000000000, 0x0800000000000000, 0x000000000000000f,

8119

0x0000000000000000, 0x0000000000000000, 0x0000000000100000, 0x0000000000000000,

8120

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8121

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8122

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x000787ffffff0000,

8123

0xffffffff00000000, 0xfffec000000007fe, 0xffffffffffffffff, 0x9c00c000002fffff,

8124

0x0000fffffffd0000, 0xffffffffffffe000, 0x0002003fffffffff, 0x000007fffffffc00},

8125

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,

8126

20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 31, 35, 35, 35,

8127

35, 35, 36, 37, 38, 39, 40, 41, 31, 42, 35, 35, 35, 35, 35, 35, 35, 35, 43,

8128

44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 31, 31, 60,

8129

61, 62, 63, 64, 65, 31, 66, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

8130

31, 31, 31, 31, 67, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

8131

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

8132

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 68, 69, 70, 71, 31,

8133

31, 31, 31, 31, 31, 31, 31, 72, 42, 73, 74, 75, 35, 76, 68, 31, 31, 31, 31,

8134

31, 31, 31, 31, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8135

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8136

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8137

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8138

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8139

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 31, 35, 35, 35, 35, 35, 35,

8140

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8141

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8142

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8143

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8144

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8145

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8146

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8147

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8148

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8149

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8150

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8151

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8152

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8153

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8154

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8155

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8156

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 77,

8157

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 78, 79,

8158

35, 35, 35, 35, 80, 81, 50, 63, 31, 31, 82, 83, 84, 48, 85, 86, 87, 88, 89,

8159

90, 91, 92, 93, 94, 95, 31, 31, 96, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8160

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8161

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8162

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8163

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8164

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8165

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8166

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8167

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

8168

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 97, 98, 31, 31, 31, 31, 31,

8169

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

8170

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

8171

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

8172

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

8173

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

8174

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

8175

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 35, 35, 35, 35, 35, 99,

8176

35, 100, 101, 102, 103, 104, 35, 35, 35, 35, 105, 106, 107, 108, 31, 109, 35, 110, 31,

8178

{0x00000000003fffff, 0xffff07ff01ffffff, 0xffffffff00007eff, 0x00000000000001ff,

8179

0x23fffffffffffff0, 0xfffc0003ff010000, 0x23c5fdfffff99fe1, 0x10030003b0004000,

8180

0x036dfdfffff987e0, 0x001c00005e000000, 0x23edfdfffffbbfe0, 0x0200000300010000,

8181

0x23edfdfffff99fe0, 0x00020003b0000000, 0x03ffc718d63dc7e8, 0x0000000000010000,

8182

0x23fffdfffffddfe0, 0x0000000327000000, 0x23effdfffffddfe1, 0x0006000360000000,

8183

0x27fffffffffddff0, 0xfc00000380704000, 0x2ffbfffffc7fffe0, 0x000000000000007f,

8184

0x000dfffffffffffe, 0x000000000000003f, 0x200dffaffffff7d6, 0x00000000f000001f,

8185

0x0000000000000001, 0x00001ffffffffeff, 0x0000000000001f00, 0x0000000000000000,

8186

0x800007ffffffffff, 0xffe1c0623c3f0000, 0x0000000000004003, 0xffffffffffffffff,

8187

0xffffffff3d7f3dff, 0x7f3dffffffff3dff, 0xffffffffff7fff3d, 0xffffffffff3dffff,

8188

0x0000000007ffffff, 0x000000000000ffff, 0xfffffffffffffffe, 0xffff9fffffffffff,

8189

0xffffffff07fffffe, 0x01fe07ffffffffff, 0x0003ffff8003ffff, 0x0001dfff0003ffff,

8190

0x000fffffffffffff, 0x0000000010000000, 0xffffffff00000000, 0x01fffffffffffff7,

8191

0xffff05ffffffff9f, 0x003fffffffffffff, 0x000000007fffffff, 0x001f3fffffff0000,

8192

0xffff0fffffffffff, 0x00000000000003ff, 0xffffffff007fffff, 0x00000000001fffff,

8193

0x000fffffffffffe0, 0x0000000000001fe0, 0xfc00c001fffffff8, 0x0000003fffffffff,

8194

0x0000000fffffffff, 0x00fffffffc00e000, 0x046fde0000000000, 0x01e0000000000000,

8195

0xffff000000000000, 0x000000ffffffffff, 0x7f7f7f7f007fffff, 0x000000007f7f7f7f,

8196

0x1000000000000040, 0xfffffffe807fffff, 0x87ffffffffffffff, 0xfffeffffffffffe0,

8197

0xffffffff00007fff, 0xffffffffffdfffff, 0x0000000000001fff, 0x00ffffffffff0000,

8198

0x00000c00ffff0fff, 0x0000400000000000, 0x0000000000008000, 0xf880000000000000,

8199

0x00000007fffff7bb, 0x000ffffffffffffc, 0x68fc000000000000, 0xffff003ffffffc00,

8200

0x1fffffff0000007f, 0x0007fffffffffff0, 0x7c00ff9f00000000, 0x000001ffffffffff,

8201

0xc47effff00000ff7, 0x3e62ffffffffffff, 0x000407ff18000005, 0x00007f7f007e7e7e,

8202

0x00000007ffffffff, 0xffff000fffffffff, 0x0ffffffffffff87f, 0xffff3fffffffffff,

8203

0x0000000003ffffff, 0x5f7ffdffa0000000, 0xffffffffffffffdb, 0x0003ffffffffffff,

8204

0xfffffffffff80000, 0x3fffffffffffffff, 0xffffffffffff0000, 0xfffffffffffcffff,

8205

0x0fff0000000000ff, 0xffdf000000000000, 0x1fffffffffffffff, 0xfffeffc000000000,

8206

0x7fffffff3fffffff, 0x000000001cfcfcfc},

8207

{1, 2, 3, 4, 5, 6, 7, 8, 5, 5, 9, 5, 10, 11, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 12,

8208

13, 14, 7, 15, 16, 7, 17, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

8209

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

8210

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

8211

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

8212

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

8213

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

8214

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

8215

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

8216

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5},

8217

{1, 2, 3, 4, 4, 4, 4, 4, 4, 5, 6, 7, 8, 9, 10, 4, 11, 12, 4, 13, 14, 4,

8218

4, 2, 2, 2, 2, 15, 16, 4, 4, 17, 18, 19, 20, 21, 4, 22, 4, 23, 24, 25, 26, 27,

8219

28, 29, 4, 2, 30, 4, 4, 14, 4, 4, 4, 4, 4, 31, 4, 32, 33, 34, 35, 36, 37, 38,

8220

39, 40, 41, 42, 43, 44, 4, 45, 19, 46, 47, 4, 4, 48, 49, 50, 51, 4, 4, 52, 53, 50,

8221

54, 55, 4, 56, 57, 4, 4, 58, 4, 4, 59, 60, 61, 62, 63, 64, 65, 66, 67, 4, 4, 4,

8222

4, 68, 69, 70, 4, 71, 72, 73, 4, 4, 4, 4, 74, 4, 4, 75, 4, 2, 2, 2, 2, 2,

8223

2, 2, 2, 2, 2, 2, 2, 2, 2, 76, 4, 4, 4, 2, 2, 2, 77, 4, 4, 4, 4, 4,

8224

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8225

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 11, 78, 2, 2, 2, 2, 2, 2, 2,

8226

2, 2, 2, 2, 2, 2, 2, 2, 2, 52, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8227

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8228

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8229

4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 57, 4, 4, 4, 4, 4,

8230

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8231

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8232

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8233

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8234

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8235

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2,

8236

2, 2, 2, 2, 2, 67, 79, 80, 81, 50, 82, 70, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8237

4, 4, 4, 2, 83, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8238

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8239

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8240

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8241

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 84, 2, 2, 2, 2, 2, 2, 2,

8242

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 85, 30, 4, 4, 4, 4, 4, 4, 4, 4,

8243

4, 4, 4, 2, 2, 2, 2, 86, 87, 2, 2, 2, 2, 2, 88, 4, 4, 4, 4, 4, 4, 4,

8244

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8245

4, 4, 4, 4, 4, 4, 4, 2, 89, 90, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8246

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8247

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8248

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 91, 4, 4, 4, 4,

8249

4, 4, 4, 92, 93, 4, 4, 4, 4, 81, 58, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8250

4, 4, 4, 4, 4, 4, 4, 4, 94, 2, 2, 2, 95, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8251

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 96, 97, 98, 4, 4, 4, 4, 4, 2, 2, 2,

8252

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8253

2, 2, 99, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8254

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8255

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8256

2, 67, 2, 2, 2, 9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8257

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8258

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8259

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8260

2, 2, 2, 2, 2, 2, 2, 100, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8261

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8262

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 101, 4, 4, 4, 4, 4,

8263

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8264

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2,

8265

2, 2, 2, 2, 2, 2, 2, 12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8266

4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8267

102, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8268

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

8269

4, 4, 4, 4, 4, 4, 4},

8270

{0xb7ffff7fffffefff, 0x000000003fff3fff, 0xffffffffffffffff, 0x07ffffffffffffff,

8271

0x0000000000000000, 0xffffffff1fffffff, 0x000000000001ffff, 0xffffe000ffffffff,

8272

0x003fffffffff03fd, 0xffffffff3fffffff, 0x000000000000ff0f, 0xffffffffffff0000,

8273

0x000000003fffffff, 0xffff00ffffffffff, 0x0000000fffffffff, 0x007fffffffffffff,

8274

0x000000ff003fffff, 0x91bffffffffffd3f, 0x007fffff003fffff, 0x000000007fffffff,

8275

0x0037ffff00000000, 0x03ffffff003fffff, 0xc0ffffffffffffff, 0x003ffffffeef0001,

8276

0x1fffffff00000000, 0x000000001fffffff, 0x0000001ffffffeff, 0x003fffffffffffff,

8277

0x0007ffff003fffff, 0x000000000003ffff, 0x00000000000001ff, 0x000303ffffffffff,

8278

0xffff00801fffffff, 0xffff00000000003f, 0xffff000000000003, 0x007fffff0000001f,

8279

0x00fffffffffffff8, 0x0026000000000000, 0x0000fffffffffff8, 0x000001ffffff0000,

8280

0x0000007ffffffff8, 0x0047ffffffff0090, 0x0007fffffffffff8, 0x000000001400001e,

8281

0x00000ffffffbffff, 0xffff01ffbfffbd7f, 0x23edfdfffff99fe0, 0x00000003e0010000,

8282

0x001fffffffffffff, 0x0000000380000780, 0x0000ffffffffffff, 0x00000000000000b0,

8283

0x00007fffffffffff, 0x000000000f000000, 0x0000000000000010, 0x010007ffffffffff,

8284

0x0000000007ffffff, 0x000000000000007f, 0x00000fffffffffff, 0x8000000000000000,

8285

0x8000ffffff6ff27f, 0x0000000000000002, 0xfffffcff00000000, 0x0000000a0001ffff,

8286

0x0407fffffffff801, 0xfffffffff0010000, 0xffff0000200003ff, 0x01ffffffffffffff,

8287

0x00007ffffffffdff, 0xfffc000000000001, 0x000000000000ffff, 0x0001fffffffffb7f,

8288

0xfffffdbf00000040, 0x00000000010003ff, 0x0007ffff00000000, 0x0001000000000000,

8289

0x0000000003ffffff, 0x000000000000000f, 0x0001ffffffffffff, 0xffff00007fffffff,

8290

0x7fffffffffffffff, 0x00003fffffff0000, 0xe0fffff800000000, 0x00000000000107ff,

8291

0x00ffffffffffffff, 0x00000000003fffff, 0x00000007ffffffff, 0xffff00f000070000,

8292

0x0fffffffffffffff, 0x1fff07ffffffffff, 0x0000000003ff01ff, 0x0000000000000400,

8293

0x00001fffffffffff, 0x0000000000004000, 0x7fff6f7f00000000, 0x000000000000001f,

8294

0x0af7fe96ffffffef, 0x5ef7f796aa96ea84, 0x0ffffbee0ffffbff, 0x00000000ffffffff,

8295

0xffff0003ffffffff, 0x00000001ffffffff, 0x00000000000007ff}};

8296  static

constexpr flat_array<12> cat_pi{{0x2E20, 0x2E02, 0x2E04, 0x2E09, 0x00AB, 0x2E0C, 0x2018,

8297

0x2039, 0x201B, 0x201C, 0x2E1C, 0x201F}};

8298  static

constexpr range_array cat_cf = {

8299

0x00000000, 0x0000AD01, 0x0000AE00, 0x00060001, 0x00060600, 0x00061C01, 0x00061D00,

8300

0x0006DD01, 0x0006DE00, 0x00070F01, 0x00071000, 0x00089001, 0x00089200, 0x0008E201,

8301

0x0008E300, 0x00180E01, 0x00180F00, 0x00200B01, 0x00201000, 0x00202A01, 0x00202F00,

8302

0x00206001, 0x00206500, 0x00206601, 0x00207000, 0x00FEFF01, 0x00FF0000, 0x00FFF901,

8303

0x00FFFC00, 0x0110BD01, 0x0110BE00, 0x0110CD01, 0x0110CE00, 0x01343001, 0x01343900,

8304

0x01BCA001, 0x01BCA400, 0x01D17301, 0x01D17B00, 0x0E000101, 0x0E000200, 0x0E002001,

8306  static

constexpr bool_trie<32, 634, 7, 351, 25, 255, 1, 0, 385, 4, 59, 37> cat_no{

8307

{0x0000000000000000, 0x0000000000000000, 0x720c000000000000, 0x0000000000000000,

8308

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8309

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8310

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8311

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8312

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8313

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8314

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000},

8315

{1, 0, 0, 0, 0, 0, 2, 0, 3, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,

8316

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8317

0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8318

0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, 0, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 15,

8319

16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8320

0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 21,

8321

22, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8322

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8323

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8324

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8325

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8326

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8327

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8328

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

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,

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,

8331

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8332

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8333

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8334

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8335

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8336

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8337

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8338

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24},

8339

{0x0000000000000000, 0x03f0000000000000, 0x00fc000000000000, 0x0007000000000000,

8340

0x7f00000000000000, 0x01ff00007f000000, 0x000ffc0000000000, 0x1ffffe0000000000,

8341

0x03ff000000000000, 0x0000000004000000, 0x03f1000000000000, 0x00000000000003ff,

8342

0x00000000ffff0000, 0x0000000000000200, 0xffffffff00000000, 0x000000000fffffff,

8343

0xfffffc0000000000, 0xffc0000000000000, 0x00000000000fffff, 0x2000000000000000,

8344

0x00000000003c0000, 0x000003ff00000000, 0x00000000fffeff00, 0xfffe0000000003ff,

8345

0x003f000000000000},

8346

{1, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 4, 5, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8347

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,

8348

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,

8349

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,

8350

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,

8351

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,

8352

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,

8353

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,

8354

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},

8355

{1, 2, 3, 0, 0, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8356

0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 0, 10, 11, 0, 12, 13, 14, 0, 15, 16, 0, 0, 0,

8357

0, 17, 0, 0, 0, 0, 0, 18, 0, 0, 19, 20, 0, 21, 0, 22, 0, 0, 0, 0, 0, 23, 0,

8358

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,

8359

0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0,

8360

0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8361

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8362

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8363

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8364

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8365

0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0,

8366

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8367

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8368

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8369

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8370

0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 34, 0,

8371

35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36},

8372

{0x0000000000000000, 0x000fffffffffff80, 0x01e0000000000000, 0x0000000000000c00,

8373

0x0ffffffe00000000, 0x0000000f00000000, 0xfe000000ff000000, 0x0000ff8000000000,

8374

0xf800000000000000, 0x000000000fc00000, 0x3000000000000000, 0xfffffffffffcffff,

8375

0x60000000000001ff, 0x00000000e0000000, 0x0000f80000000000, 0xff000000ff000000,

8376

0x0000fe0000000000, 0xfc00000000000000, 0x7fffffff00000000, 0x0000007fe0000000,

8377

0x00000000001e0000, 0x0000000000000fe0, 0x0000003ffffc0000, 0x001ffffe00000000,

8378

0x0c00000000000000, 0x0007fc0000000000, 0x00001ffffc000000, 0x00000000001fffff,

8379

0x00000003f8000000, 0x00000000007fffff, 0x000fffff00000000, 0x01ffffff00000000,

8380

0x000000000000ff80, 0xfffe000000000000, 0x001eefffffffffff, 0x3fffbffffffffffe,

8381

0x0000000000001fff}};

8382  static

constexpr flat_array<10> cat_pf{

8383

{0x2E21, 0x2E1D, 0x2E03, 0x2E05, 0x2E0A, 0x2E0D, 0x2019, 0x203A, 0x00BB, 0x201D}};

8384  static

constexpr range_array cat_lt = {

8385

0x00000000, 0x0001C501, 0x0001C600, 0x0001C801, 0x0001C900, 0x0001CB01, 0x0001CC00,

8386

0x0001F201, 0x0001F300, 0x001F8801, 0x001F9000, 0x001F9801, 0x001FA000, 0x001FA801,

8387

0x001FB000, 0x001FBC01, 0x001FBD00, 0x001FCC01, 0x001FCD00, 0x001FFC01, 0x001FFD00};

8388  static

constexpr bool_trie<32, 991, 1, 0, 32, 255, 1, 0, 264, 30, 26, 8> cat_lm{

8389

{0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8390

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8391

0x0000000000000000, 0x0000000000000000, 0xffff000000000000, 0x0000501f0003ffc3,

8392

0x0000000000000000, 0x0410000000000000, 0x0000000000000000, 0x0000000000000000,

8393

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8394

0x0000000000000000, 0x0000000002000000, 0x0000000000000000, 0x0000000000000000,

8395

0x0000000000000000, 0x0000000000000001, 0x0000000000000000, 0x0000006000000000,

8396

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0430000000000000},

8397

{1, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,

8398

1, 4, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8399

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 8, 1,

8400

1, 1, 1, 1, 1, 9, 1, 1, 10, 11, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 14, 1, 1,

8401

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8402

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 1, 1, 1, 16, 1,

8403

1, 16, 1, 1, 1, 1, 1, 1, 1, 17, 1, 18, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8404

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8405

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8406

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8407

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8408

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8409

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8410

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8411

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8412

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8413

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8414

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8415

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8416

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8417

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8418

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8419

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8420

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8421

1, 1, 1, 1, 1, 1, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8422

1, 9, 1, 1, 1, 1, 21, 22, 23, 1, 24, 25, 26, 27, 1, 1, 1, 1, 1, 1, 1, 28, 1, 25, 1,

8423

29, 1, 30, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8424

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8425

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8426

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8427

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8428

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8429

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8430

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8431

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8432

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8433

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8434

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8435

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8436

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 31, 1},

8437

{0x0000011004000000, 0x0000000000000000, 0x0000000000000200, 0x0002000000000000,

8438

0x0000000000000040, 0x1000000000000000, 0x0000000000800000, 0x0000000000000008,

8439

0x0000008000000000, 0x3f00000000000000, 0xfffff00000000000, 0x010007ffffffffff,

8440

0xfffffffff8000000, 0x8002000000000000, 0x000000001fff0000, 0x3000000000000000,

8441

0x0000800000000000, 0x083e000000000020, 0x0000000060000000, 0x7000000000000000,

8442

0x0000000000200000, 0x0000000000001000, 0x8000000000000000, 0x0000000030000000,

8443

0x00000000ff800000, 0x0001000000000000, 0x0000000000000100, 0x031c000000000000,

8444

0x0000004000008000, 0x0018000020000000, 0x00000200f0000000, 0x00000000c0000000},

8445

{1, 1, 1, 1, 1, 2, 1, 1, 1, 3, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8446

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8447

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8448

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8449

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8450

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8451

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8452

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

8453

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},

8454

{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,

8455

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8456

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8457

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8458

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,

8459

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8460

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8461

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8462

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7},

8463

{0x0000000000000000, 0x07fdffffffffffbf, 0x000000000000000f, 0x00000000fff80000,

8464

0x0000000b00000000, 0x6fef000000000000, 0x3f80000000000000, 0x0000000000000800}};

8465  static

constexpr bool_trie<32, 991, 1, 0, 75, 255, 1, 0, 513, 7, 56, 66> cat_mn{

8466

{0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8467

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8468

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

8469

0xffffffffffffffff, 0x0000ffffffffffff, 0x0000000000000000, 0x0000000000000000,

8470

0x0000000000000000, 0x0000000000000000, 0x00000000000000f8, 0x0000000000000000,

8471

0x0000000000000000, 0x0000000000000000, 0xbffffffffffe0000, 0x00000000000000b6,

8472

0x0000000007ff0000, 0x00010000fffff800, 0x0000000000000000, 0x00003d9f9fc00000,

8473

0xffff000000020000, 0x00000000000007ff, 0x0001ffc000000000, 0x200ff80000000000},

8474

{1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 10, 11, 12, 13, 14, 15, 16, 11, 17, 18, 19, 20, 21,

8475

22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33,

8476

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 35, 36, 37, 38, 39, 33, 40, 33, 41, 33,

8477

33, 33, 42, 43, 44, 45, 46, 47, 48, 49, 50, 33, 33, 51, 33, 33, 33, 52, 33, 33, 33, 33, 33,

8478

33, 33, 33, 33, 33, 33, 53, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8479

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8480

33, 33, 33, 33, 33, 33, 33, 33, 54, 33, 55, 33, 56, 33, 33, 33, 33, 33, 33, 33, 33, 57, 33,

8481

58, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8482

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8483

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8484

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8485

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8486

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8487

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8488

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8489

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8490

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8491

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8492

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8493

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8494

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8495

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8496

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8497

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8498

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8499

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8500

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8501

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 59, 60, 61, 33, 33, 33, 33, 62, 33, 33, 63, 64,

8502

65, 66, 67, 68, 69, 70, 71, 33, 33, 33, 72, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8503

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8504

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8505

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8506

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8507

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8508

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8509

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8510

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8511

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8512

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8513

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8514

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8515

33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,

8516

33, 33, 33, 33, 33, 73, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 74, 33, 33, 33, 33, 33,

8518

{0x00003eeffbc00000, 0x000000000e000000, 0x00000000ff000000, 0xfffffffbfffffc00,

8519

0x1400000000000007, 0x0000000c00fe21fe, 0x1000000000000002, 0x4000000c0000201e,

8520

0x1000000000000006, 0x0023000000023986, 0xfc00000c000021be, 0x9000000000000002,

8521

0x0000000c0060201e, 0x0000000000000004, 0x0000000000002001, 0xd000000000000011,

8522

0x0000000c00603dc1, 0x0000000c00003040, 0x1800000000000003, 0x0000000c0000201e,

8523

0x0000000000000002, 0x00000000005c0400, 0x07f2000000000000, 0x0000000000007f80,

8524

0x1ff2000000000000, 0x0000000000003f00, 0x02a0000003000000, 0x7ffe000000000000,

8525

0x1ffffffffeffe0df, 0x0000000000000040, 0x66fde00000000000, 0x001e0001c3000000,

8526

0x0000000020002064, 0x0000000000000000, 0x00000000e0000000, 0x000c0000001c0000,

8527

0x000c0000000c0000, 0x3fb0000000000000, 0x00000000200ffe40, 0x000000000000b800,

8528

0x0000020000000060, 0x0e04018700000000, 0x0000000009800000, 0x9ff81fe57f400000,

8529

0xbfff000000000000, 0x0000000000007fff, 0x17d000000000000f, 0x000ff80000000004,

8530

0x00003b3c00000003, 0x0003a34000000000, 0x00cff00000000000, 0x031021fdfff70000,

8531

0xffffffffffffffff, 0x0001ffe21fff0000, 0x0003800000000000, 0x8000000000000000,

8532

0xffffffff00000000, 0x00003c0000000000, 0x0000000006000000, 0x3ff0800000000000,

8533

0x00000000c0000000, 0x0003000000000000, 0x0000106000000844, 0x8003ffff00000030,

8534

0x00003fc000000000, 0x000000000003ff80, 0x33c8000000000007, 0x0000002000000000,

8535

0x00667e0000000000, 0x1000000000001008, 0xc19d000000000000, 0x0040300000000002,

8536

0x0000212000000000, 0x0000000040000000, 0x0000ffff0000ffff},

8537

{1, 2, 2, 2, 2, 3, 2, 2, 2, 2, 4, 5, 6, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8538

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,

8539

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,

8540

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,

8541

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,

8542

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,

8543

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,

8544

2, 2, 2, 2, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

8545

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},

8546

{1, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8547

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6,

8548

0, 0, 0, 0, 0, 7, 0, 0, 8, 9, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 0, 19,

8549

20, 21, 0, 0, 22, 23, 24, 25, 0, 0, 26, 27, 28, 29, 30, 0, 31, 0, 0, 0, 32, 0, 0,

8550

0, 33, 34, 0, 35, 36, 37, 38, 0, 0, 0, 0, 0, 39, 0, 40, 0, 41, 42, 43, 0, 0, 0,

8551

0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8552

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8553

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8554

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8555

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 46,

8556

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 48, 49, 0, 0, 0, 0,

8557

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8558

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8559

50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8560

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8561

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8562

0, 0, 0, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 0, 55, 0, 0, 0, 0,

8563

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8564

0, 0, 0, 56, 57, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8565

0, 0, 0, 0, 59, 0, 0, 0, 46, 0, 0, 0, 0, 0, 60, 61, 0, 0, 0, 0, 0, 0, 0,

8566

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 63, 0, 0, 0, 0,

8567

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8568

0, 0, 0, 64, 64, 64, 65},

8569

{0x0000000000000000, 0x2000000000000000, 0x0000000100000000, 0x07c0000000000000,

8570

0x870000000000f06e, 0x0000006000000000, 0x000000f000000000, 0x0000180000000000,

8571

0x000000000001ffc0, 0x000000000000003c, 0xff00000000000002, 0x801900000000007f,

8572

0x0678000000000003, 0x0000000000000004, 0x001fef8000000007, 0x0008000000000000,

8573

0x7fc0000000000003, 0x0000000000009e00, 0x40d3800000000000, 0x000007f880000000,

8574

0x1800000000000003, 0x001f1fc000000001, 0xff00000000000000, 0x000000004000005c,

8575

0x85f8000000000000, 0x000000000000000d, 0xb03c000000000000, 0x0000000030000001,

8576

0xa7f8000000000000, 0x0000000000000001, 0x00bf280000000000, 0x00000fbce0000000,

8577

0x06ff800000000000, 0x5800000000000000, 0x0000000000000008, 0x000000010cf00000,

8578

0x79f80000000007fe, 0x000000000e7e0080, 0x00000000037ffc00, 0xbf7f000000000000,

8579

0x006dfcfffffc0000, 0xb47e000000000000, 0x00000000000000bf, 0x0000000000a30000,

8580

0x0018000000000000, 0x001f000000000000, 0x007f000000000000, 0x0000000000008000,

8581

0x0000000000078000, 0x0000001000000000, 0x0000000060000000, 0xffff3fffffffffff,

8582

0x000000000000007f, 0xf800038000000000, 0x00003c0000000fe7, 0x000000000000001c,

8583

0xf87fffffffffffff, 0x00201fffffffffff, 0x0000fffef8000010, 0x000007dbf9ffff7f,

8584

0x0000400000000000, 0x0000f00000000000, 0x00000000007f0000, 0x00000000000007f0,

8585

0xffffffffffffffff, 0x0000ffffffffffff}};

8586  static

constexpr range_array cat_me = {0x00000000, 0x00048801, 0x00048A00, 0x001ABE01,

8587

0x001ABF00, 0x0020DD01, 0x0020E100, 0x0020E201,

8588

0x0020E500, 0x00A67001, 0x00A67300};

8589  static

constexpr bool_trie<0, 652, 4, 336, 43, 13, 1, 242, 134, 64, 58, 33> cat_mc{

8591

{1, 2, 3, 4, 5, 6, 5, 7, 8, 4, 9, 10, 11, 12, 8, 13, 3, 14, 15, 16, 0, 0, 0,

8592

0, 9, 17, 0, 0, 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8593

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 22, 23, 0, 0, 0, 0, 24, 0, 0, 0, 25,

8594

26, 0, 0, 27, 28, 29, 30, 31, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8595

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8596

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8597

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,

8598

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8599

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8600

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8601

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8602

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8603

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8604

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8605

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8606

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8607

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8608

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8609

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8610

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8611

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8612

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8613

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8614

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8615

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8616

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8617

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8618

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 36, 0, 37, 38, 6,

8619

39, 40, 0, 41, 0, 0, 0, 42},

8620

{0x0000000000000000, 0xc800000000000008, 0x000000000000de01, 0xc00000000000000c,

8621

0x0000000000801981, 0xc000000000000008, 0x0000000000000001, 0x0000000000001a01,

8622

0x400000000000000c, 0xc000000000000000, 0x0000000000801dc6, 0x000000000000000e,

8623

0x000000000000001e, 0x0000000000600d9f, 0x0000000000801dc1, 0x000000000000000c,

8624

0x000c0000ff038000, 0x8000000000000000, 0x1902180000000000, 0x00003f9c00c00000,

8625

0x000000001c009f98, 0x0010000000200000, 0xc040000000000000, 0x00000000000001bf,

8626

0x01fb0e7800000000, 0x0000000006000000, 0x0007e01a00a00000, 0xe820000000000010,

8627

0x000000000000001b, 0x000004c200000004, 0x000c5c8000000000, 0x00300ff000000000,

8628

0x0080000200000000, 0x0000c00000000000, 0x0000009800000000, 0xfff0000000000003,

8629

0x000000000000000f, 0x00000000000c0000, 0xcc30000000000008, 0x0019800000000000,

8630

0x2800000000002000, 0x0020c80000000000, 0x000016d800000000},

8631

{1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3},

8632

{1, 0, 2, 0, 3, 4, 5, 6, 7, 0, 0, 8, 9, 10, 0, 0, 11, 12, 13, 14, 0, 0, 15,

8633

0, 16, 0, 17, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 1, 0, 21, 22, 23, 24, 0, 0, 0,

8634

0, 0, 25, 0, 26, 0, 0, 0, 27, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8635

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8636

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

8637

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 32},

8638

{0x0000000000000000, 0x0000000000000005, 0x0187000000000004, 0x0000100000000000,

8639

0x0000000000000060, 0x8038000000000004, 0x0000000000004001, 0x002c700000000000,

8640

0x0000000700000000, 0xc00000000000000c, 0x0000000c0080399e, 0x00e0000000000000,

8641

0x0000000000000023, 0x7a07000000000000, 0x0000000000000002, 0x4f03800000000000,

8642

0x5807000000000000, 0x0040d00000000000, 0x0000004300000000, 0x0100700000000000,

8643

0x21bf000000000000, 0x00000010f00e0000, 0x0200000000000000, 0x0000000001800000,

8644

0x0000000000800000, 0x4000800000000000, 0x0012020000000000, 0x0000000000587c00,

8645

0x0060000000000000, 0xfffffffffffe0000, 0x00000000000000ff, 0x0003000000000000,

8646

0x0007e06000000000}};

8647  static

constexpr range_array cat_nl = {

8648

0x00000000, 0x0016EE01, 0x0016F100, 0x00216001, 0x00218300, 0x00218501, 0x00218900,

8649

0x00300701, 0x00300800, 0x00302101, 0x00302A00, 0x00303801, 0x00303B00, 0x00A6E601,

8650

0x00A6F000, 0x01014001, 0x01017500, 0x01034101, 0x01034200, 0x01034A01, 0x01034B00,

8651

0x0103D101, 0x0103D600, 0x01240001, 0x01246F00};

8652  static

constexpr flat_array<1> cat_zl{{0x2028}};

8653  static

constexpr flat_array<1> cat_zp{{0x2029}};

8654  static

constexpr range_array cat_cs = {0x00000000, 0x00D80001, 0x00E00000};

8655  static

constexpr range_array cat_co = {0x00000000, 0x00E00001, 0x00F90000, 0x0F000001,

8656

0x0FFFFE00, 0x10000001, 0x10FFFE00};

8657

constexpr category get_category(char32_t c) {

8658  if

(cat_co.lookup(c))

8659  return

category::co;

8660  if

(cat_lo.lookup(c))

8661  return

category::lo;

8662  if

(cat_so.lookup(c))

8663  return

category::so;

8664  if

(cat_ll.lookup(c))

8665  return

category::ll;

8666  if

(cat_cs.lookup(c))

8667  return

category::cs;

8668  if

(cat_mn.lookup(c))

8669  return

category::mn;

8670  if

(cat_lu.lookup(c))

8671  return

category::lu;

8672  if

(cat_sm.lookup(c))

8673  return

category::sm;

8674  if

(cat_no.lookup(c))

8675  return

category::no;

8676  if

(cat_nd.lookup(c))

8677  return

category::nd;

8678  if

(cat_po.lookup(c))

8679  return

category::po;

8680  if

(cat_mc.lookup(c))

8681  return

category::mc;

8682  if

(cat_lm.lookup(c))

8683  return

category::lm;

8684  if

(cat_nl.lookup(c))

8685  return

category::nl;

8686  if

(cat_cf.lookup(c))

8687  return

category::cf;

8688  if

(cat_sk.lookup(c))

8689  return

category::sk;

8690  if

(cat_ps.lookup(c))

8691  return

category::ps;

8692  if

(cat_pe.lookup(c))

8693  return

category::pe;

8694  if

(cat_cc.lookup(c))

8695  return

category::cc;

8696  if

(cat_sc.lookup(c))

8697  return

category::sc;

8698  if

(cat_lt.lookup(c))

8700  if

(cat_pd.lookup(c))

8701  return

category::pd;

8702  if

(cat_zs.lookup(c))

8703  return

category::zs;

8704  if

(cat_me.lookup(c))

8705  return

category::me;

8706  if

(cat_pi.lookup(c))

8708  if

(cat_pf.lookup(c))

8709  return

category::pf;

8710  if

(cat_pc.lookup(c))

8711  return

category::pc;

8712  if

(cat_zp.lookup(c))

8713  return

category::zp;

8714  if

(cat_zl.lookup(c))

8715  return

category::zl;

8716  return

category::cn;

8720

constexpr

bool

cp_category_is<category::co>(char32_t c) {

8721  return

detail::tables::cat_co.lookup(c);

8724

constexpr

bool

cp_category_is<category::lo>(char32_t c) {

8725  return

detail::tables::cat_lo.lookup(c);

8728

constexpr

bool

cp_category_is<category::so>(char32_t c) {

8729  return

detail::tables::cat_so.lookup(c);

8732

constexpr

bool

cp_category_is<category::ll>(char32_t c) {

8733  return

detail::tables::cat_ll.lookup(c);

8736

constexpr

bool

cp_category_is<category::cs>(char32_t c) {

8737  return

detail::tables::cat_cs.lookup(c);

8740

constexpr

bool

cp_category_is<category::mn>(char32_t c) {

8741  return

detail::tables::cat_mn.lookup(c);

8744

constexpr

bool

cp_category_is<category::lu>(char32_t c) {

8745  return

detail::tables::cat_lu.lookup(c);

8748

constexpr

bool

cp_category_is<category::sm>(char32_t c) {

8749  return

detail::tables::cat_sm.lookup(c);

8752

constexpr

bool

cp_category_is<category::no>(char32_t c) {

8753  return

detail::tables::cat_no.lookup(c);

8756

constexpr

bool

cp_category_is<category::nd>(char32_t c) {

8757  return

detail::tables::cat_nd.lookup(c);

8760

constexpr

bool

cp_category_is<category::po>(char32_t c) {

8761  return

detail::tables::cat_po.lookup(c);

8764

constexpr

bool

cp_category_is<category::mc>(char32_t c) {

8765  return

detail::tables::cat_mc.lookup(c);

8768

constexpr

bool

cp_category_is<category::lm>(char32_t c) {

8769  return

detail::tables::cat_lm.lookup(c);

8772

constexpr

bool

cp_category_is<category::nl>(char32_t c) {

8773  return

detail::tables::cat_nl.lookup(c);

8776

constexpr

bool

cp_category_is<category::cf>(char32_t c) {

8777  return

detail::tables::cat_cf.lookup(c);

8780

constexpr

bool

cp_category_is<category::sk>(char32_t c) {

8781  return

detail::tables::cat_sk.lookup(c);

8784

constexpr

bool

cp_category_is<category::ps>(char32_t c) {

8785  return

detail::tables::cat_ps.lookup(c);

8788

constexpr

bool

cp_category_is<category::pe>(char32_t c) {

8789  return

detail::tables::cat_pe.lookup(c);

8792

constexpr

bool

cp_category_is<category::cc>(char32_t c) {

8793  return

detail::tables::cat_cc.lookup(c);

8796

constexpr

bool

cp_category_is<category::sc>(char32_t c) {

8797  return

detail::tables::cat_sc.lookup(c);

8800

constexpr

bool

cp_category_is<category::lt>(char32_t c) {

8801  return

detail::tables::cat_lt.lookup(c);

8804

constexpr

bool

cp_category_is<category::pd>(char32_t c) {

8805  return

detail::tables::cat_pd.lookup(c);

8808

constexpr

bool

cp_category_is<category::zs>(char32_t c) {

8809  return

detail::tables::cat_zs.lookup(c);

8812

constexpr

bool

cp_category_is<category::me>(char32_t c) {

8813  return

detail::tables::cat_me.lookup(c);

8816

constexpr

bool

cp_category_is<category::pi>(char32_t c) {

8817  return

detail::tables::cat_pi.lookup(c);

8820

constexpr

bool

cp_category_is<category::pf>(char32_t c) {

8821  return

detail::tables::cat_pf.lookup(c);

8824

constexpr

bool

cp_category_is<category::pc>(char32_t c) {

8825  return

detail::tables::cat_pc.lookup(c);

8828

constexpr

bool

cp_category_is<category::zp>(char32_t c) {

8829  return

detail::tables::cat_zp.lookup(c);

8832

constexpr

bool

cp_category_is<category::zl>(char32_t c) {

8833  return

detail::tables::cat_zl.lookup(c);

8836

constexpr

bool

cp_category_is<category::cased_letter>(char32_t c) {

8837  if

(detail::tables::cat_ll.

lookup

(c))

8839  if

(detail::tables::cat_lu.

lookup

(c))

8841  if

(detail::tables::cat_lt.

lookup

(c))

8846

constexpr

bool

cp_category_is<category::letter>(char32_t c) {

8847  if

(detail::tables::cat_lo.

lookup

(c))

8849  if

(detail::tables::cat_ll.

lookup

(c))

8851  if

(detail::tables::cat_lu.

lookup

(c))

8853  if

(detail::tables::cat_lm.

lookup

(c))

8855  if

(detail::tables::cat_lt.

lookup

(c))

8860

constexpr

bool

cp_category_is<category::mark>(char32_t c) {

8861  if

(detail::tables::cat_mn.

lookup

(c))

8863  if

(detail::tables::cat_mc.

lookup

(c))

8865  if

(detail::tables::cat_me.

lookup

(c))

8870

constexpr

bool

cp_category_is<category::number>(char32_t c) {

8871  if

(detail::tables::cat_no.

lookup

(c))

8873  if

(detail::tables::cat_nd.

lookup

(c))

8875  if

(detail::tables::cat_nl.

lookup

(c))

8880

constexpr

bool

cp_category_is<category::punctuation>(char32_t c) {

8881  if

(detail::tables::cat_po.

lookup

(c))

8883  if

(detail::tables::cat_ps.

lookup

(c))

8885  if

(detail::tables::cat_pe.

lookup

(c))

8887  if

(detail::tables::cat_pd.

lookup

(c))

8889  if

(detail::tables::cat_pi.

lookup

(c))

8891  if

(detail::tables::cat_pf.

lookup

(c))

8893  if

(detail::tables::cat_pc.

lookup

(c))

8898

constexpr

bool

cp_category_is<category::symbol>(char32_t c) {

8899  if

(detail::tables::cat_so.

lookup

(c))

8901  if

(detail::tables::cat_sm.

lookup

(c))

8903  if

(detail::tables::cat_sk.

lookup

(c))

8905  if

(detail::tables::cat_sc.

lookup

(c))

8910

constexpr

bool

cp_category_is<category::separator>(char32_t c) {

8911  if

(detail::tables::cat_zs.

lookup

(c))

8913  if

(detail::tables::cat_zp.

lookup

(c))

8915  if

(detail::tables::cat_zl.

lookup

(c))

8920

constexpr

bool

cp_category_is<category::other>(char32_t c) {

8921  if

(detail::tables::cat_co.

lookup

(c))

8923  if

(detail::tables::cat_cs.

lookup

(c))

8925  if

(detail::tables::cat_cf.

lookup

(c))

8927  if

(detail::tables::cat_cc.

lookup

(c))

8932

constexpr

bool

cp_category_is<category::unassigned>(char32_t c) {

8933  return

cp_category(c) == category::unassigned;

8935 namespace

detail::tables {

8936  static

constexpr string_with_idx blocks_names[] = {

8937

string_with_idx{

"adlam"

, 290},

8938

string_with_idx{

"aegean_numbers"

, 167},

8939

string_with_idx{

"ahom"

, 232},

8940

string_with_idx{

"alchemical"

, 303},

8941

string_with_idx{

"alchemical_symbols"

, 303},

8942

string_with_idx{

"alphabetic_pf"

, 155},

8943

string_with_idx{

"alphabetic_presentation_forms"

, 155},

8944

string_with_idx{

"anatolian_hieroglyphs"

, 254},

8945

string_with_idx{

"ancient_greek_music"

, 277},

8946

string_with_idx{

"ancient_greek_musical_notation"

, 277},

8947

string_with_idx{

"ancient_greek_numbers"

, 168},

8948

string_with_idx{

"ancient_symbols"

, 169},

8949

string_with_idx{

"arabic"

, 13},

8950

string_with_idx{

"arabic_ext_a"

, 22},

8951

string_with_idx{

"arabic_ext_b"

, 21},

8952

string_with_idx{

"arabic_extended_a"

, 22},

8953

string_with_idx{

"arabic_extended_b"

, 21},

8954

string_with_idx{

"arabic_math"

, 293},

8955

string_with_idx{

"arabic_mathematical_alphabetic_symbols"

, 293},

8956

string_with_idx{

"arabic_pf_a"

, 156},

8957

string_with_idx{

"arabic_pf_b"

, 162},

8958

string_with_idx{

"arabic_presentation_forms_a"

, 156},

8959

string_with_idx{

"arabic_presentation_forms_b"

, 162},

8960

string_with_idx{

"arabic_sup"

, 15},

8961

string_with_idx{

"arabic_supplement"

, 15},

8962

string_with_idx{

"armenian"

, 11},

8963

string_with_idx{

"arrows"

, 79},

8964

string_with_idx{

"ascii"

, 1},

8965

string_with_idx{

"avestan"

, 201},

8966

string_with_idx{

"balinese"

, 59},

8967

string_with_idx{

"bamum"

, 127},

8968

string_with_idx{

"bamum_sup"

, 255},

8969

string_with_idx{

"bamum_supplement"

, 255},

8970

string_with_idx{

"basic_latin"

, 1},

8971

string_with_idx{

"bassa_vah"

, 258},

8972

string_with_idx{

"batak"

, 61},

8973

string_with_idx{

"bengali"

, 24},

8974

string_with_idx{

"bhaiksuki"

, 241},

8975

string_with_idx{

"block_elements"

, 86},

8976

string_with_idx{

"bopomofo"

, 111},

8977

string_with_idx{

"bopomofo_ext"

, 114},

8978

string_with_idx{

"bopomofo_extended"

, 114},

8979

string_with_idx{

"box_drawing"

, 85},

8980

string_with_idx{

"brahmi"

, 215},

8981

string_with_idx{

"braille"

, 92},

8982

string_with_idx{

"braille_patterns"

, 92},

8983

string_with_idx{

"buginese"

, 56},

8984

string_with_idx{

"buhid"

, 47},

8985

string_with_idx{

"byzantine_music"

, 275},

8986

string_with_idx{

"byzantine_musical_symbols"

, 275},

8987

string_with_idx{

"carian"

, 172},

8988

string_with_idx{

"caucasian_albanian"

, 184},

8989

string_with_idx{

"chakma"

, 218},

8990

string_with_idx{

"cham"

, 140},

8991

string_with_idx{

"cherokee"

, 41},

8992

string_with_idx{

"cherokee_sup"

, 146},

8993

string_with_idx{

"cherokee_supplement"

, 146},

8994

string_with_idx{

"chess_symbols"

, 307},

8995

string_with_idx{

"chorasmian"

, 213},

8996

string_with_idx{

"cjk"

, 121},

8997

string_with_idx{

"cjk_compat"

, 118},

8998

string_with_idx{

"cjk_compat_forms"

, 160},

8999

string_with_idx{

"cjk_compat_ideographs"

, 154},

9000

string_with_idx{

"cjk_compat_ideographs_sup"

, 315},

9001

string_with_idx{

"cjk_compatibility"

, 118},

9002

string_with_idx{

"cjk_compatibility_forms"

, 160},

9003

string_with_idx{

"cjk_compatibility_ideographs"

, 154},

9004

string_with_idx{

"cjk_compatibility_ideographs_supplement"

, 315},

9005

string_with_idx{

"cjk_ext_a"

, 119},

9006

string_with_idx{

"cjk_ext_b"

, 310},

9007

string_with_idx{

"cjk_ext_c"

, 311},

9008

string_with_idx{

"cjk_ext_d"

, 312},

9009

string_with_idx{

"cjk_ext_e"

, 313},

9010

string_with_idx{

"cjk_ext_f"

, 314},

9011

string_with_idx{

"cjk_ext_g"

, 316},

9012

string_with_idx{

"cjk_radicals_sup"

, 105},

9013

string_with_idx{

"cjk_radicals_supplement"

, 105},

9014

string_with_idx{

"cjk_strokes"

, 115},

9015

string_with_idx{

"cjk_symbols"

, 108},

9016

string_with_idx{

"cjk_symbols_and_punctuation"

, 108},

9017

string_with_idx{

"cjk_unified_ideographs"

, 121},

9018

string_with_idx{

"cjk_unified_ideographs_extension_a"

, 119},

9019

string_with_idx{

"cjk_unified_ideographs_extension_b"

, 310},

9020

string_with_idx{

"cjk_unified_ideographs_extension_c"

, 311},

9021

string_with_idx{

"cjk_unified_ideographs_extension_d"

, 312},

9022

string_with_idx{

"cjk_unified_ideographs_extension_e"

, 313},

9023

string_with_idx{

"cjk_unified_ideographs_extension_f"

, 314},

9024

string_with_idx{

"cjk_unified_ideographs_extension_g"

, 316},

9025

string_with_idx{

"combining_diacritical_marks"

, 7},

9026

string_with_idx{

"combining_diacritical_marks_extended"

, 58},

9027

string_with_idx{

"combining_diacritical_marks_for_symbols"

, 76},

9028

string_with_idx{

"combining_diacritical_marks_supplement"

, 70},

9029

string_with_idx{

"combining_half_marks"

, 159},

9030

string_with_idx{

"common_indic_number_forms"

, 131},

9031

string_with_idx{

"compat_jamo"

, 112},

9032

string_with_idx{

"control_pictures"

, 82},

9033

string_with_idx{

"coptic"

, 99},

9034

string_with_idx{

"coptic_epact_numbers"

, 173},

9035

string_with_idx{

"counting_rod"

, 280},

9036

string_with_idx{

"counting_rod_numerals"

, 280},

9037

string_with_idx{

"cuneiform"

, 248},

9038

string_with_idx{

"cuneiform_numbers"

, 249},

9039

string_with_idx{

"cuneiform_numbers_and_punctuation"

, 249},

9040

string_with_idx{

"currency_symbols"

, 75},

9041

string_with_idx{

"cypriot_syllabary"

, 188},

9042

string_with_idx{

"cypro_minoan"

, 251},

9043

string_with_idx{

"cyrillic"

, 9},

9044

string_with_idx{

"cyrillic_ext_a"

, 103},

9045

string_with_idx{

"cyrillic_ext_b"

, 126},

9046

string_with_idx{

"cyrillic_ext_c"

, 64},

9047

string_with_idx{

"cyrillic_extended_a"

, 103},

9048

string_with_idx{

"cyrillic_extended_b"

, 126},

9049

string_with_idx{

"cyrillic_extended_c"

, 64},

9050

string_with_idx{

"cyrillic_sup"

, 10},

9051

string_with_idx{

"cyrillic_supplement"

, 10},

9052

string_with_idx{

"deseret"

, 179},

9053

string_with_idx{

"devanagari"

, 23},

9054

string_with_idx{

"devanagari_ext"

, 134},

9055

string_with_idx{

"devanagari_extended"

, 134},

9056

string_with_idx{

"diacriticals"

, 7},

9057

string_with_idx{

"diacriticals_ext"

, 58},

9058

string_with_idx{

"diacriticals_for_symbols"

, 76},

9059

string_with_idx{

"diacriticals_sup"

, 70},

9060

string_with_idx{

"dingbats"

, 89},

9061

string_with_idx{

"dives_akuru"

, 235},

9062

string_with_idx{

"dogra"

, 233},

9063

string_with_idx{

"domino"

, 295},

9064

string_with_idx{

"domino_tiles"

, 295},

9065

string_with_idx{

"duployan"

, 272},

9066

string_with_idx{

"early_dynastic_cuneiform"

, 250},

9067

string_with_idx{

"egyptian_hieroglyph_format_controls"

, 253},

9068

string_with_idx{

"egyptian_hieroglyphs"

, 252},

9069

string_with_idx{

"elbasan"

, 183},

9070

string_with_idx{

"elymaic"

, 214},

9071

string_with_idx{

"emoticons"

, 300},

9072

string_with_idx{

"enclosed_alphanum"

, 84},

9073

string_with_idx{

"enclosed_alphanum_sup"

, 297},

9074

string_with_idx{

"enclosed_alphanumeric_supplement"

, 297},

9075

string_with_idx{

"enclosed_alphanumerics"

, 84},

9076

string_with_idx{

"enclosed_cjk"

, 117},

9077

string_with_idx{

"enclosed_cjk_letters_and_months"

, 117},

9078

string_with_idx{

"enclosed_ideographic_sup"

, 298},

9079

string_with_idx{

"enclosed_ideographic_supplement"

, 298},

9080

string_with_idx{

"ethiopic"

, 39},

9081

string_with_idx{

"ethiopic_ext"

, 102},

9082

string_with_idx{

"ethiopic_ext_a"

, 144},

9083

string_with_idx{

"ethiopic_ext_b"

, 288},

9084

string_with_idx{

"ethiopic_extended"

, 102},

9085

string_with_idx{

"ethiopic_extended_a"

, 144},

9086

string_with_idx{

"ethiopic_extended_b"

, 288},

9087

string_with_idx{

"ethiopic_sup"

, 40},

9088

string_with_idx{

"ethiopic_supplement"

, 40},

9089

string_with_idx{

"general_punctuation"

, 73},

9090

string_with_idx{

"geometric_shapes"

, 87},

9091

string_with_idx{

"geometric_shapes_ext"

, 304},

9092

string_with_idx{

"geometric_shapes_extended"

, 304},

9093

string_with_idx{

"georgian"

, 37},

9094

string_with_idx{

"georgian_ext"

, 65},

9095

string_with_idx{

"georgian_extended"

, 65},

9096

string_with_idx{

"georgian_sup"

, 100},

9097

string_with_idx{

"georgian_supplement"

, 100},

9098

string_with_idx{

"glagolitic"

, 97},

9099

string_with_idx{

"glagolitic_sup"

, 284},

9100

string_with_idx{

"glagolitic_supplement"

, 284},

9101

string_with_idx{

"gothic"

, 175},

9102

string_with_idx{

"grantha"

, 225},

9103

string_with_idx{

"greek"

, 8},

9104

string_with_idx{

"greek_and_coptic"

, 8},

9105

string_with_idx{

"greek_ext"

, 72},

9106

string_with_idx{

"greek_extended"

, 72},

9107

string_with_idx{

"gujarati"

, 26},

9108

string_with_idx{

"gunjala_gondi"

, 244},

9109

string_with_idx{

"gurmukhi"

, 25},

9110

string_with_idx{

"half_and_full_forms"

, 163},

9111

string_with_idx{

"half_marks"

, 159},

9112

string_with_idx{

"halfwidth_and_fullwidth_forms"

, 163},

9113

string_with_idx{

"hangul"

, 148},

9114

string_with_idx{

"hangul_compatibility_jamo"

, 112},

9115

string_with_idx{

"hangul_jamo"

, 38},

9116

string_with_idx{

"hangul_jamo_extended_a"

, 137},

9117

string_with_idx{

"hangul_jamo_extended_b"

, 149},

9118

string_with_idx{

"hangul_syllables"

, 148},

9119

string_with_idx{

"hanifi_rohingya"

, 207},

9120

string_with_idx{

"hanunoo"

, 46},

9121

string_with_idx{

"hatran"

, 192},

9122

string_with_idx{

"hebrew"

, 12},

9123

string_with_idx{

"high_private_use_surrogates"

, 151},

9124

string_with_idx{

"high_pu_surrogates"

, 151},

9125

string_with_idx{

"high_surrogates"

, 150},

9126

string_with_idx{

"hiragana"

, 109},

9127

string_with_idx{

"idc"

, 107},

9128

string_with_idx{

"ideographic_description_characters"

, 107},

9129

string_with_idx{

"ideographic_symbols"

, 262},

9130

string_with_idx{

"ideographic_symbols_and_punctuation"

, 262},

9131

string_with_idx{

"imperial_aramaic"

, 189},

9132

string_with_idx{

"indic_number_forms"

, 131},

9133

string_with_idx{

"indic_siyaq_numbers"

, 291},

9134

string_with_idx{

"inscriptional_pahlavi"

, 203},

9135

string_with_idx{

"inscriptional_parthian"

, 202},

9136

string_with_idx{

"ipa_ext"

, 5},

9137

string_with_idx{

"ipa_extensions"

, 5},

9138

string_with_idx{

"jamo"

, 38},

9139

string_with_idx{

"jamo_ext_a"

, 137},

9140

string_with_idx{

"jamo_ext_b"

, 149},

9141

string_with_idx{

"javanese"

, 138},

9142

string_with_idx{

"kaithi"

, 216},

9143

string_with_idx{

"kana_ext_a"

, 269},

9144

string_with_idx{

"kana_ext_b"

, 267},

9145

string_with_idx{

"kana_extended_a"

, 269},

9146

string_with_idx{

"kana_extended_b"

, 267},

9147

string_with_idx{

"kana_sup"

, 268},

9148

string_with_idx{

"kana_supplement"

, 268},

9149

string_with_idx{

"kanbun"

, 113},

9150

string_with_idx{

"kangxi"

, 106},

9151

string_with_idx{

"kangxi_radicals"

, 106},

9152

string_with_idx{

"kannada"

, 30},

9153

string_with_idx{

"katakana"

, 110},

9154

string_with_idx{

"katakana_ext"

, 116},

9155

string_with_idx{

"katakana_phonetic_extensions"

, 116},

9156

string_with_idx{

"kayah_li"

, 135},

9157

string_with_idx{

"kharoshthi"

, 197},

9158

string_with_idx{

"khitan_small_script"

, 265},

9159

string_with_idx{

"khmer"

, 49},

9160

string_with_idx{

"khmer_symbols"

, 55},

9161

string_with_idx{

"khojki"

, 222},

9162

string_with_idx{

"khudawadi"

, 224},

9163

string_with_idx{

"lao"

, 34},

9164

string_with_idx{

"latin_1_sup"

, 2},

9165

string_with_idx{

"latin_1_supplement"

, 2},

9166

string_with_idx{

"latin_ext_a"

, 3},

9167

string_with_idx{

"latin_ext_additional"

, 71},

9168

string_with_idx{

"latin_ext_b"

, 4},

9169

string_with_idx{

"latin_ext_c"

, 98},

9170

string_with_idx{

"latin_ext_d"

, 129},

9171

string_with_idx{

"latin_ext_e"

, 145},

9172

string_with_idx{

"latin_ext_f"

, 187},

9173

string_with_idx{

"latin_ext_g"

, 283},

9174

string_with_idx{

"latin_extended_a"

, 3},

9175

string_with_idx{

"latin_extended_additional"

, 71},

9176

string_with_idx{

"latin_extended_b"

, 4},

9177

string_with_idx{

"latin_extended_c"

, 98},

9178

string_with_idx{

"latin_extended_d"

, 129},

9179

string_with_idx{

"latin_extended_e"

, 145},

9180

string_with_idx{

"latin_extended_f"

, 187},

9181

string_with_idx{

"latin_extended_g"

, 283},

9182

string_with_idx{

"lepcha"

, 62},

9183

string_with_idx{

"letterlike_symbols"

, 77},

9184

string_with_idx{

"limbu"

, 52},

9185

string_with_idx{

"linear_a"

, 186},

9186

string_with_idx{

"linear_b_ideograms"

, 166},

9187

string_with_idx{

"linear_b_syllabary"

, 165},

9188

string_with_idx{

"lisu"

, 124},

9189

string_with_idx{

"lisu_sup"

, 246},

9190

string_with_idx{

"lisu_supplement"

, 246},

9191

string_with_idx{

"low_surrogates"

, 152},

9192

string_with_idx{

"lycian"

, 171},

9193

string_with_idx{

"lydian"

, 194},

9194

string_with_idx{

"mahajani"

, 219},

9195

string_with_idx{

"mahjong"

, 294},

9196

string_with_idx{

"mahjong_tiles"

, 294},

9197

string_with_idx{

"makasar"

, 245},

9198

string_with_idx{

"malayalam"

, 31},

9199

string_with_idx{

"mandaic"

, 19},

9200

string_with_idx{

"manichaean"

, 200},

9201

string_with_idx{

"marchen"

, 242},

9202

string_with_idx{

"masaram_gondi"

, 243},

9203

string_with_idx{

"math_alphanum"

, 281},

9204

string_with_idx{

"math_operators"

, 80},

9205

string_with_idx{

"mathematical_alphanumeric_symbols"

, 281},

9206

string_with_idx{

"mathematical_operators"

, 80},

9207

string_with_idx{

"mayan_numerals"

, 278},

9208

string_with_idx{

"medefaidrin"

, 260},

9209

string_with_idx{

"meetei_mayek"

, 147},

9210

string_with_idx{

"meetei_mayek_ext"

, 143},

9211

string_with_idx{

"meetei_mayek_extensions"

, 143},

9212

string_with_idx{

"mende_kikakui"

, 289},

9213

string_with_idx{

"meroitic_cursive"

, 196},

9214

string_with_idx{

"meroitic_hieroglyphs"

, 195},

9215

string_with_idx{

"miao"

, 261},

9216

string_with_idx{

"misc_arrows"

, 96},

9217

string_with_idx{

"misc_math_symbols_a"

, 90},

9218

string_with_idx{

"misc_math_symbols_b"

, 94},

9219

string_with_idx{

"misc_pictographs"

, 299},

9220

string_with_idx{

"misc_symbols"

, 88},

9221

string_with_idx{

"misc_technical"

, 81},

9222

string_with_idx{

"miscellaneous_mathematical_symbols_a"

, 90},

9223

string_with_idx{

"miscellaneous_mathematical_symbols_b"

, 94},

9224

string_with_idx{

"miscellaneous_symbols"

, 88},

9225

string_with_idx{

"miscellaneous_symbols_and_arrows"

, 96},

9226

string_with_idx{

"miscellaneous_symbols_and_pictographs"

, 299},

9227

string_with_idx{

"miscellaneous_technical"

, 81},

9228

string_with_idx{

"modi"

, 229},

9229

string_with_idx{

"modifier_letters"

, 6},

9230

string_with_idx{

"modifier_tone_letters"

, 128},

9231

string_with_idx{

"mongolian"

, 50},

9232

string_with_idx{

"mongolian_sup"

, 230},

9233

string_with_idx{

"mongolian_supplement"

, 230},

9234

string_with_idx{

"mro"

, 256},

9235

string_with_idx{

"multani"

, 223},

9236

string_with_idx{

"music"

, 276},

9237

string_with_idx{

"musical_symbols"

, 276},

9238

string_with_idx{

"myanmar"

, 36},

9239

string_with_idx{

"myanmar_ext_a"

, 141},

9240

string_with_idx{

"myanmar_ext_b"

, 139},

9241

string_with_idx{

"myanmar_extended_a"

, 141},

9242

string_with_idx{

"myanmar_extended_b"

, 139},

9243

string_with_idx{

"nabataean"

, 191},

9244

string_with_idx{

"nandinagari"

, 236},

9245

string_with_idx{

"nb"

, 0},

9246

string_with_idx{

"new_tai_lue"

, 54},

9247

string_with_idx{

"newa"

, 226},

9248

string_with_idx{

"nko"

, 17},

9249

string_with_idx{

"no_block"

, 0},

9250

string_with_idx{

"number_forms"

, 78},

9251

string_with_idx{

"nushu"

, 271},

9252

string_with_idx{

"nyiakeng_puachue_hmong"

, 285},

9253

string_with_idx{

"ocr"

, 83},

9254

string_with_idx{

"ogham"

, 43},

9255

string_with_idx{

"ol_chiki"

, 63},

9256

string_with_idx{

"old_hungarian"

, 206},

9257

string_with_idx{

"old_italic"

, 174},

9258

string_with_idx{

"old_north_arabian"

, 199},

9259

string_with_idx{

"old_permic"

, 176},

9260

string_with_idx{

"old_persian"

, 178},

9261

string_with_idx{

"old_sogdian"

, 210},

9262

string_with_idx{

"old_south_arabian"

, 198},

9263

string_with_idx{

"old_turkic"

, 205},

9264

string_with_idx{

"old_uyghur"

, 212},

9265

string_with_idx{

"optical_character_recognition"

, 83},

9266

string_with_idx{

"oriya"

, 27},

9267

string_with_idx{

"ornamental_dingbats"

, 301},

9268

string_with_idx{

"osage"

, 182},

9269

string_with_idx{

"osmanya"

, 181},

9270

string_with_idx{

"ottoman_siyaq_numbers"

, 292},

9271

string_with_idx{

"pahawh_hmong"

, 259},

9272

string_with_idx{

"palmyrene"

, 190},

9273

string_with_idx{

"pau_cin_hau"

, 240},

9274

string_with_idx{

"phags_pa"

, 132},

9275

string_with_idx{

"phaistos"

, 170},

9276

string_with_idx{

"phaistos_disc"

, 170},

9277

string_with_idx{

"phoenician"

, 193},

9278

string_with_idx{

"phonetic_ext"

, 68},

9279

string_with_idx{

"phonetic_ext_sup"

, 69},

9280

string_with_idx{

"phonetic_extensions"

, 68},

9281

string_with_idx{

"phonetic_extensions_supplement"

, 69},

9282

string_with_idx{

"playing_cards"

, 296},

9283

string_with_idx{

"private_use_area"

, 153},

9284

string_with_idx{

"psalter_pahlavi"

, 204},

9285

string_with_idx{

"pua"

, 153},

9286

string_with_idx{

"punctuation"

, 73},

9287

string_with_idx{

"rejang"

, 136},

9288

string_with_idx{

"rumi"

, 208},

9289

string_with_idx{

"rumi_numeral_symbols"

, 208},

9290

string_with_idx{

"runic"

, 44},

9291

string_with_idx{

"samaritan"

, 18},

9292

string_with_idx{

"saurashtra"

, 133},

9293

string_with_idx{

"sharada"

, 220},

9294

string_with_idx{

"shavian"

, 180},

9295

string_with_idx{

"shorthand_format_controls"

, 273},

9296

string_with_idx{

"siddham"

, 228},

9297

string_with_idx{

"sinhala"

, 32},

9298

string_with_idx{

"sinhala_archaic_numbers"

, 221},

9299

string_with_idx{

"small_form_variants"

, 161},

9300

string_with_idx{

"small_forms"

, 161},

9301

string_with_idx{

"small_kana_ext"

, 270},

9302

string_with_idx{

"small_kana_extension"

, 270},

9303

string_with_idx{

"sogdian"

, 211},

9304

string_with_idx{

"sora_sompeng"

, 217},

9305

string_with_idx{

"soyombo"

, 238},

9306

string_with_idx{

"spacing_modifier_letters"

, 6},

9307

string_with_idx{

"specials"

, 164},

9308

string_with_idx{

"sundanese"

, 60},

9309

string_with_idx{

"sundanese_sup"

, 66},

9310

string_with_idx{

"sundanese_supplement"

, 66},

9311

string_with_idx{

"sup_arrows_a"

, 91},

9312

string_with_idx{

"sup_arrows_b"

, 93},

9313

string_with_idx{

"sup_arrows_c"

, 305},

9314

string_with_idx{

"sup_math_operators"

, 95},

9315

string_with_idx{

"sup_pua_a"

, 319},

9316

string_with_idx{

"sup_pua_b"

, 320},

9317

string_with_idx{

"sup_punctuation"

, 104},

9318

string_with_idx{

"sup_symbols_and_pictographs"

, 306},

9319

string_with_idx{

"super_and_sub"

, 74},

9320

string_with_idx{

"superscripts_and_subscripts"

, 74},

9321

string_with_idx{

"supplemental_arrows_a"

, 91},

9322

string_with_idx{

"supplemental_arrows_b"

, 93},

9323

string_with_idx{

"supplemental_arrows_c"

, 305},

9324

string_with_idx{

"supplemental_mathematical_operators"

, 95},

9325

string_with_idx{

"supplemental_punctuation"

, 104},

9326

string_with_idx{

"supplemental_symbols_and_pictographs"

, 306},

9327

string_with_idx{

"supplementary_private_use_area_a"

, 319},

9328

string_with_idx{

"supplementary_private_use_area_b"

, 320},

9329

string_with_idx{

"sutton_signwriting"

, 282},

9330

string_with_idx{

"syloti_nagri"

, 130},

9331

string_with_idx{

"symbols_and_pictographs_ext_a"

, 308},

9332

string_with_idx{

"symbols_and_pictographs_extended_a"

, 308},

9333

string_with_idx{

"symbols_for_legacy_computing"

, 309},

9334

string_with_idx{

"syriac"

, 14},

9335

string_with_idx{

"syriac_sup"

, 20},

9336

string_with_idx{

"syriac_supplement"

, 20},

9337

string_with_idx{

"tagalog"

, 45},

9338

string_with_idx{

"tagbanwa"

, 48},

9339

string_with_idx{

"tags"

, 317},

9340

string_with_idx{

"tai_le"

, 53},

9341

string_with_idx{

"tai_tham"

, 57},

9342

string_with_idx{

"tai_viet"

, 142},

9343

string_with_idx{

"tai_xuan_jing"

, 279},

9344

string_with_idx{

"tai_xuan_jing_symbols"

, 279},

9345

string_with_idx{

"takri"

, 231},

9346

string_with_idx{

"tamil"

, 28},

9347

string_with_idx{

"tamil_sup"

, 247},

9348

string_with_idx{

"tamil_supplement"

, 247},

9349

string_with_idx{

"tangsa"

, 257},

9350

string_with_idx{

"tangut"

, 263},

9351

string_with_idx{

"tangut_components"

, 264},

9352

string_with_idx{

"tangut_sup"

, 266},

9353

string_with_idx{

"tangut_supplement"

, 266},

9354

string_with_idx{

"telugu"

, 29},

9355

string_with_idx{

"thaana"

, 16},

9356

string_with_idx{

"thai"

, 33},

9357

string_with_idx{

"tibetan"

, 35},

9358

string_with_idx{

"tifinagh"

, 101},

9359

string_with_idx{

"tirhuta"

, 227},

9360

string_with_idx{

"toto"

, 286},

9361

string_with_idx{

"transport_and_map"

, 302},

9362

string_with_idx{

"transport_and_map_symbols"

, 302},

9363

string_with_idx{

"ucas"

, 42},

9364

string_with_idx{

"ucas_ext"

, 51},

9365

string_with_idx{

"ucas_ext_a"

, 239},

9366

string_with_idx{

"ugaritic"

, 177},

9367

string_with_idx{

"unified_canadian_aboriginal_syllabics"

, 42},

9368

string_with_idx{

"unified_canadian_aboriginal_syllabics_extended"

, 51},

9369

string_with_idx{

"unified_canadian_aboriginal_syllabics_extended_a"

, 239},

9370

string_with_idx{

"vai"

, 125},

9371

string_with_idx{

"variation_selectors"

, 157},

9372

string_with_idx{

"variation_selectors_supplement"

, 318},

9373

string_with_idx{

"vedic_ext"

, 67},

9374

string_with_idx{

"vedic_extensions"

, 67},

9375

string_with_idx{

"vertical_forms"

, 158},

9376

string_with_idx{

"vithkuqi"

, 185},

9377

string_with_idx{

"vs"

, 157},

9378

string_with_idx{

"vs_sup"

, 318},

9379

string_with_idx{

"wancho"

, 287},

9380

string_with_idx{

"warang_citi"

, 234},

9381

string_with_idx{

"yezidi"

, 209},

9382

string_with_idx{

"yi_radicals"

, 123},

9383

string_with_idx{

"yi_syllables"

, 122},

9384

string_with_idx{

"yijing"

, 120},

9385

string_with_idx{

"yijing_hexagram_symbols"

, 120},

9386

string_with_idx{

"zanabazar_square"

, 237},

9387

string_with_idx{

"znamenny_music"

, 274},

9388

string_with_idx{

"znamenny_musical_notation"

, 274}};

9389  static

constexpr

const

compact_range block_data = {

9390

0x00000001, 0x00008001, 0x00010001, 0x00018001, 0x00025001, 0x0002B001, 0x00030001,

9391

0x00037001, 0x00040001, 0x00050001, 0x00053001, 0x00059001, 0x00060001, 0x00070001,

9392

0x00075001, 0x00078001, 0x0007C001, 0x00080001, 0x00084001, 0x00086001, 0x00087001,

9393

0x0008A001, 0x00090001, 0x00098001, 0x000A0001, 0x000A8001, 0x000B0001, 0x000B8001,

9394

0x000C0001, 0x000C8001, 0x000D0001, 0x000D8001, 0x000E0001, 0x000E8001, 0x000F0001,

9395

0x00100001, 0x0010A001, 0x00110001, 0x00120001, 0x00138001, 0x0013A001, 0x00140001,

9396

0x00168001, 0x0016A001, 0x00170001, 0x00172001, 0x00174001, 0x00176001, 0x00178001,

9397

0x00180001, 0x0018B001, 0x00190001, 0x00195001, 0x00198001, 0x0019E001, 0x001A0001,

9398

0x001A2001, 0x001AB001, 0x001B0001, 0x001B8001, 0x001BC001, 0x001C0001, 0x001C5001,

9399

0x001C8001, 0x001C9001, 0x001CC001, 0x001CD001, 0x001D0001, 0x001D8001, 0x001DC001,

9400

0x001E0001, 0x001F0001, 0x00200001, 0x00207001, 0x0020A001, 0x0020D001, 0x00210001,

9401

0x00215001, 0x00219001, 0x00220001, 0x00230001, 0x00240001, 0x00244001, 0x00246001,

9402

0x00250001, 0x00258001, 0x0025A001, 0x00260001, 0x00270001, 0x0027C001, 0x0027F001,

9403

0x00280001, 0x00290001, 0x00298001, 0x002A0001, 0x002B0001, 0x002C0001, 0x002C6001,

9404

0x002C8001, 0x002D0001, 0x002D3001, 0x002D8001, 0x002DE001, 0x002E0001, 0x002E8001,

9405

0x002F0001, 0x002FE000, 0x002FF002, 0x00300002, 0x00304002, 0x0030A002, 0x00310002,

9406

0x00313002, 0x00319002, 0x0031A002, 0x0031C002, 0x0031F002, 0x00320002, 0x00330002,

9407

0x00340002, 0x004DC002, 0x004E0002, 0x00A00002, 0x00A49002, 0x00A4D002, 0x00A50002,

9408

0x00A64002, 0x00A6A002, 0x00A70002, 0x00A72002, 0x00A80002, 0x00A83002, 0x00A84002,

9409

0x00A88002, 0x00A8E002, 0x00A90002, 0x00A93002, 0x00A96002, 0x00A98002, 0x00A9E002,

9410

0x00AA0002, 0x00AA6002, 0x00AA8002, 0x00AAE002, 0x00AB0002, 0x00AB3002, 0x00AB7002,

9411

0x00ABC002, 0x00AC0002, 0x00D7B002, 0x00D80002, 0x00DB8002, 0x00DC0002, 0x00E00002,

9412

0x00F90002, 0x00FB0002, 0x00FB5002, 0x00FE0002, 0x00FE1002, 0x00FE2002, 0x00FE3002,

9413

0x00FE5002, 0x00FE7002, 0x00FF0002, 0x00FFF002, 0x01000002, 0x01008002, 0x01010002,

9414

0x01014002, 0x01019002, 0x0101D002, 0x01020000, 0x01028003, 0x0102A003, 0x0102E003,

9415

0x01030003, 0x01033003, 0x01035003, 0x01038003, 0x0103A003, 0x0103E000, 0x01040004,

9416

0x01045004, 0x01048004, 0x0104B004, 0x01050004, 0x01053004, 0x01057004, 0x0105C000,

9417

0x01060005, 0x01078005, 0x0107C000, 0x01080006, 0x01084006, 0x01086006, 0x01088006,

9418

0x0108B000, 0x0108E007, 0x01090007, 0x01092007, 0x01094000, 0x01098008, 0x0109A008,

9419

0x010A0008, 0x010A6008, 0x010A8008, 0x010AA000, 0x010AC009, 0x010B0009, 0x010B4009,

9420

0x010B6009, 0x010B8009, 0x010BB000, 0x010C000A, 0x010C5000, 0x010C800B, 0x010D000B,

9421

0x010D4000, 0x010E600C, 0x010E800C, 0x010EC000, 0x010F000D, 0x010F300D, 0x010F700D,

9422

0x010FB00D, 0x010FE00D, 0x0110000D, 0x0110800D, 0x0110D00D, 0x0111000D, 0x0111500D,

9423

0x0111800D, 0x0111E00D, 0x0112000D, 0x01125000, 0x0112800E, 0x0112B00E, 0x0113000E,

9424

0x01138000, 0x0114000F, 0x0114800F, 0x0114E000, 0x01158010, 0x01160010, 0x01166010,

9425

0x01168010, 0x0116D000, 0x01170011, 0x01175000, 0x01180012, 0x01185000, 0x0118A013,

9426

0x01190013, 0x01196000, 0x0119A014, 0x011A0014, 0x011A5014, 0x011AB014, 0x011AC014,

9427

0x011B0000, 0x011C0015, 0x011C7015, 0x011CC000, 0x011D0016, 0x011D6016, 0x011DB000,

9428

0x011EE017, 0x011F0000, 0x011FB018, 0x011FC018, 0x01200018, 0x01240018, 0x01248018,

9429

0x01255000, 0x012F9019, 0x01300019, 0x01343019, 0x01344000, 0x0144001A, 0x01468000,

9430

0x0168001B, 0x016A401B, 0x016A701B, 0x016AD01B, 0x016B001B, 0x016B9000, 0x016E401C,

9431

0x016EA000, 0x016F001D, 0x016FA000, 0x016FE01E, 0x0170001E, 0x0188001E, 0x018B001E,

9432

0x018D001E, 0x018D8000, 0x01AFF01F, 0x01B0001F, 0x01B1001F, 0x01B1301F, 0x01B1701F,

9433

0x01B30000, 0x01BC0020, 0x01BCA020, 0x01BCB000, 0x01CF0021, 0x01CFD000, 0x01D00022,

9434

0x01D10022, 0x01D20022, 0x01D25000, 0x01D2E023, 0x01D30023, 0x01D36023, 0x01D38000,

9435

0x01D40024, 0x01D80024, 0x01DAB000, 0x01DF0025, 0x01E00025, 0x01E03000, 0x01E10026,

9436

0x01E15000, 0x01E29027, 0x01E2C027, 0x01E30000, 0x01E7E028, 0x01E80028, 0x01E8E000,

9437

0x01E90029, 0x01E96000, 0x01EC702A, 0x01ECC000, 0x01ED002B, 0x01ED5000, 0x01EE002C,

9438

0x01EF0000, 0x01F0002D, 0x01F0302D, 0x01F0A02D, 0x01F1002D, 0x01F2002D, 0x01F3002D,

9439

0x01F6002D, 0x01F6502D, 0x01F6802D, 0x01F7002D, 0x01F7802D, 0x01F8002D, 0x01F9002D,

9440

0x01FA002D, 0x01FA702D, 0x01FB002D, 0x01FC0000, 0x0200002E, 0x02A6E000, 0x02A7002F,

9441

0x02B7402F, 0x02B8202F, 0x02CEB02F, 0x02EBF000, 0x02F80030, 0x02FA2000, 0x03000031,

9442

0x03135000, 0x0E000032, 0x0E008000, 0x0E010033, 0x0E01F000, 0x0F000034, 0x10000034,

9444  static

constexpr string_with_idx scripts_names[] = {

9445

string_with_idx{

"adlam"

, 0},

9446

string_with_idx{

"adlm"

, 0},

9447

string_with_idx{

"aghb"

, 1},

9448

string_with_idx{

"ahom"

, 2},

9449

string_with_idx{

"anatolian_hieroglyphs"

, 52},

9450

string_with_idx{

"arab"

, 3},

9451

string_with_idx{

"arabic"

, 3},

9452

string_with_idx{

"armenian"

, 5},

9453

string_with_idx{

"armi"

, 4},

9454

string_with_idx{

"armn"

, 5},

9455

string_with_idx{

"avestan"

, 6},

9456

string_with_idx{

"avst"

, 6},

9457

string_with_idx{

"bali"

, 7},

9458

string_with_idx{

"balinese"

, 7},

9459

string_with_idx{

"bamu"

, 8},

9460

string_with_idx{

"bamum"

, 8},

9461

string_with_idx{

"bass"

, 9},

9462

string_with_idx{

"bassa_vah"

, 9},

9463

string_with_idx{

"batak"

, 10},

9464

string_with_idx{

"batk"

, 10},

9465

string_with_idx{

"beng"

, 11},

9466

string_with_idx{

"bengali"

, 11},

9467

string_with_idx{

"bhaiksuki"

, 12},

9468

string_with_idx{

"bhks"

, 12},

9469

string_with_idx{

"bopo"

, 13},

9470

string_with_idx{

"bopomofo"

, 13},

9471

string_with_idx{

"brah"

, 14},

9472

string_with_idx{

"brahmi"

, 14},

9473

string_with_idx{

"brai"

, 15},

9474

string_with_idx{

"braille"

, 15},

9475

string_with_idx{

"bugi"

, 16},

9476

string_with_idx{

"buginese"

, 16},

9477

string_with_idx{

"buhd"

, 17},

9478

string_with_idx{

"buhid"

, 17},

9479

string_with_idx{

"cakm"

, 18},

9480

string_with_idx{

"canadian_aboriginal"

, 19},

9481

string_with_idx{

"cans"

, 19},

9482

string_with_idx{

"cari"

, 20},

9483

string_with_idx{

"carian"

, 20},

9484

string_with_idx{

"caucasian_albanian"

, 1},

9485

string_with_idx{

"chakma"

, 18},

9486

string_with_idx{

"cham"

, 21},

9487

string_with_idx{

"cher"

, 22},

9488

string_with_idx{

"cherokee"

, 22},

9489

string_with_idx{

"chorasmian"

, 23},

9490

string_with_idx{

"chrs"

, 23},

9491

string_with_idx{

"common"

, 161},

9492

string_with_idx{

"copt"

, 24},

9493

string_with_idx{

"coptic"

, 24},

9494

string_with_idx{

"cpmn"

, 25},

9495

string_with_idx{

"cprt"

, 26},

9496

string_with_idx{

"cuneiform"

, 156},

9497

string_with_idx{

"cypriot"

, 26},

9498

string_with_idx{

"cypro_minoan"

, 25},

9499

string_with_idx{

"cyrillic"

, 27},

9500

string_with_idx{

"cyrl"

, 27},

9501

string_with_idx{

"deseret"

, 31},

9502

string_with_idx{

"deva"

, 28},

9503

string_with_idx{

"devanagari"

, 28},

9504

string_with_idx{

"diak"

, 29},

9505

string_with_idx{

"dives_akuru"

, 29},

9506

string_with_idx{

"dogr"

, 30},

9507

string_with_idx{

"dogra"

, 30},

9508

string_with_idx{

"dsrt"

, 31},

9509

string_with_idx{

"dupl"

, 32},

9510

string_with_idx{

"duployan"

, 32},

9511

string_with_idx{

"egyp"

, 33},

9512

string_with_idx{

"egyptian_hieroglyphs"

, 33},

9513

string_with_idx{

"elba"

, 34},

9514

string_with_idx{

"elbasan"

, 34},

9515

string_with_idx{

"elym"

, 35},

9516

string_with_idx{

"elymaic"

, 35},

9517

string_with_idx{

"ethi"

, 36},

9518

string_with_idx{

"ethiopic"

, 36},

9519

string_with_idx{

"geor"

, 37},

9520

string_with_idx{

"georgian"

, 37},

9521

string_with_idx{

"glag"

, 38},

9522

string_with_idx{

"glagolitic"

, 38},

9523

string_with_idx{

"gong"

, 39},

9524

string_with_idx{

"gonm"

, 40},

9525

string_with_idx{

"goth"

, 41},

9526

string_with_idx{

"gothic"

, 41},

9527

string_with_idx{

"gran"

, 42},

9528

string_with_idx{

"grantha"

, 42},

9529

string_with_idx{

"greek"

, 43},

9530

string_with_idx{

"grek"

, 43},

9531

string_with_idx{

"gujarati"

, 44},

9532

string_with_idx{

"gujr"

, 44},

9533

string_with_idx{

"gunjala_gondi"

, 39},

9534

string_with_idx{

"gurmukhi"

, 45},

9535

string_with_idx{

"guru"

, 45},

9536

string_with_idx{

"han"

, 47},

9537

string_with_idx{

"hang"

, 46},

9538

string_with_idx{

"hangul"

, 46},

9539

string_with_idx{

"hani"

, 47},

9540

string_with_idx{

"hanifi_rohingya"

, 116},

9541

string_with_idx{

"hano"

, 48},

9542

string_with_idx{

"hanunoo"

, 48},

9543

string_with_idx{

"hatr"

, 49},

9544

string_with_idx{

"hatran"

, 49},

9545

string_with_idx{

"hebr"

, 50},

9546

string_with_idx{

"hebrew"

, 50},

9547

string_with_idx{

"hira"

, 51},

9548

string_with_idx{

"hiragana"

, 51},

9549

string_with_idx{

"hluw"

, 52},

9550

string_with_idx{

"hmng"

, 53},

9551

string_with_idx{

"hmnp"

, 54},

9552

string_with_idx{

"hrkt"

, 55},

9553

string_with_idx{

"hung"

, 56},

9554

string_with_idx{

"imperial_aramaic"

, 4},

9555

string_with_idx{

"inherited"

, 160},

9556

string_with_idx{

"inscriptional_pahlavi"

, 110},

9557

string_with_idx{

"inscriptional_parthian"

, 114},

9558

string_with_idx{

"ital"

, 57},

9559

string_with_idx{

"java"

, 58},

9560

string_with_idx{

"javanese"

, 58},

9561

string_with_idx{

"kaithi"

, 66},

9562

string_with_idx{

"kali"

, 59},

9563

string_with_idx{

"kana"

, 60},

9564

string_with_idx{

"kannada"

, 65},

9565

string_with_idx{

"katakana"

, 60},

9566

string_with_idx{

"katakana_or_hiragana"

, 55},

9567

string_with_idx{

"kayah_li"

, 59},

9568

string_with_idx{

"khar"

, 61},

9569

string_with_idx{

"kharoshthi"

, 61},

9570

string_with_idx{

"khitan_small_script"

, 64},

9571

string_with_idx{

"khmer"

, 62},

9572

string_with_idx{

"khmr"

, 62},

9573

string_with_idx{

"khoj"

, 63},

9574

string_with_idx{

"khojki"

, 63},

9575

string_with_idx{

"khudawadi"

, 125},

9576

string_with_idx{

"kits"

, 64},

9577

string_with_idx{

"knda"

, 65},

9578

string_with_idx{

"kthi"

, 66},

9579

string_with_idx{

"lana"

, 67},

9580

string_with_idx{

"lao"

, 68},

9581

string_with_idx{

"laoo"

, 68},

9582

string_with_idx{

"latin"

, 69},

9583

string_with_idx{

"latn"

, 69},

9584

string_with_idx{

"lepc"

, 70},

9585

string_with_idx{

"lepcha"

, 70},

9586

string_with_idx{

"limb"

, 71},

9587

string_with_idx{

"limbu"

, 71},

9588

string_with_idx{

"lina"

, 72},

9589

string_with_idx{

"linb"

, 73},

9590

string_with_idx{

"linear_a"

, 72},

9591

string_with_idx{

"linear_b"

, 73},

9592

string_with_idx{

"lisu"

, 74},

9593

string_with_idx{

"lyci"

, 75},

9594

string_with_idx{

"lycian"

, 75},

9595

string_with_idx{

"lydi"

, 76},

9596

string_with_idx{

"lydian"

, 76},

9597

string_with_idx{

"mahajani"

, 77},

9598

string_with_idx{

"mahj"

, 77},

9599

string_with_idx{

"maka"

, 78},

9600

string_with_idx{

"makasar"

, 78},

9601

string_with_idx{

"malayalam"

, 86},

9602

string_with_idx{

"mand"

, 79},

9603

string_with_idx{

"mandaic"

, 79},

9604

string_with_idx{

"mani"

, 80},

9605

string_with_idx{

"manichaean"

, 80},

9606

string_with_idx{

"marc"

, 81},

9607

string_with_idx{

"marchen"

, 81},

9608

string_with_idx{

"masaram_gondi"

, 40},

9609

string_with_idx{

"medefaidrin"

, 82},

9610

string_with_idx{

"medf"

, 82},

9611

string_with_idx{

"meetei_mayek"

, 90},

9612

string_with_idx{

"mend"

, 83},

9613

string_with_idx{

"mende_kikakui"

, 83},

9614

string_with_idx{

"merc"

, 84},

9615

string_with_idx{

"mero"

, 85},

9616

string_with_idx{

"meroitic_cursive"

, 84},

9617

string_with_idx{

"meroitic_hieroglyphs"

, 85},

9618

string_with_idx{

"miao"

, 113},

9619

string_with_idx{

"mlym"

, 86},

9620

string_with_idx{

"modi"

, 87},

9621

string_with_idx{

"mong"

, 88},

9622

string_with_idx{

"mongolian"

, 88},

9623

string_with_idx{

"mro"

, 89},

9624

string_with_idx{

"mroo"

, 89},

9625

string_with_idx{

"mtei"

, 90},

9626

string_with_idx{

"mult"

, 91},

9627

string_with_idx{

"multani"

, 91},

9628

string_with_idx{

"myanmar"

, 92},

9629

string_with_idx{

"mymr"

, 92},

9630

string_with_idx{

"nabataean"

, 95},

9631

string_with_idx{

"nand"

, 93},

9632

string_with_idx{

"nandinagari"

, 93},

9633

string_with_idx{

"narb"

, 94},

9634

string_with_idx{

"nbat"

, 95},

9635

string_with_idx{

"new_tai_lue"

, 137},

9636

string_with_idx{

"newa"

, 96},

9637

string_with_idx{

"nko"

, 97},

9638

string_with_idx{

"nkoo"

, 97},

9639

string_with_idx{

"nshu"

, 98},

9640

string_with_idx{

"nushu"

, 98},

9641

string_with_idx{

"nyiakeng_puachue_hmong"

, 54},

9642

string_with_idx{

"ogam"

, 99},

9643

string_with_idx{

"ogham"

, 99},

9644

string_with_idx{

"ol_chiki"

, 100},

9645

string_with_idx{

"olck"

, 100},

9646

string_with_idx{

"old_hungarian"

, 56},

9647

string_with_idx{

"old_italic"

, 57},

9648

string_with_idx{

"old_north_arabian"

, 94},

9649

string_with_idx{

"old_permic"

, 108},

9650

string_with_idx{

"old_persian"

, 155},

9651

string_with_idx{

"old_sogdian"

, 128},

9652

string_with_idx{

"old_south_arabian"

, 119},

9653

string_with_idx{

"old_turkic"

, 101},

9654

string_with_idx{

"old_uyghur"

, 105},

9655

string_with_idx{

"oriya"

, 102},

9656

string_with_idx{

"orkh"

, 101},

9657

string_with_idx{

"orya"

, 102},

9658

string_with_idx{

"osage"

, 103},

9659

string_with_idx{

"osge"

, 103},

9660

string_with_idx{

"osma"

, 104},

9661

string_with_idx{

"osmanya"

, 104},

9662

string_with_idx{

"ougr"

, 105},

9663

string_with_idx{

"pahawh_hmong"

, 53},

9664

string_with_idx{

"palm"

, 106},

9665

string_with_idx{

"palmyrene"

, 106},

9666

string_with_idx{

"pau_cin_hau"

, 107},

9667

string_with_idx{

"pauc"

, 107},

9668

string_with_idx{

"perm"

, 108},

9669

string_with_idx{

"phag"

, 109},

9670

string_with_idx{

"phags_pa"

, 109},

9671

string_with_idx{

"phli"

, 110},

9672

string_with_idx{

"phlp"

, 111},

9673

string_with_idx{

"phnx"

, 112},

9674

string_with_idx{

"phoenician"

, 112},

9675

string_with_idx{

"plrd"

, 113},

9676

string_with_idx{

"prti"

, 114},

9677

string_with_idx{

"psalter_pahlavi"

, 111},

9678

string_with_idx{

"rejang"

, 115},

9679

string_with_idx{

"rjng"

, 115},

9680

string_with_idx{

"rohg"

, 116},

9681

string_with_idx{

"runic"

, 117},

9682

string_with_idx{

"runr"

, 117},

9683

string_with_idx{

"samaritan"

, 118},

9684

string_with_idx{

"samr"

, 118},

9685

string_with_idx{

"sarb"

, 119},

9686

string_with_idx{

"saur"

, 120},

9687

string_with_idx{

"saurashtra"

, 120},

9688

string_with_idx{

"sgnw"

, 121},

9689

string_with_idx{

"sharada"

, 123},

9690

string_with_idx{

"shavian"

, 122},

9691

string_with_idx{

"shaw"

, 122},

9692

string_with_idx{

"shrd"

, 123},

9693

string_with_idx{

"sidd"

, 124},

9694

string_with_idx{

"siddham"

, 124},

9695

string_with_idx{

"signwriting"

, 121},

9696

string_with_idx{

"sind"

, 125},

9697

string_with_idx{

"sinh"

, 126},

9698

string_with_idx{

"sinhala"

, 126},

9699

string_with_idx{

"sogd"

, 127},

9700

string_with_idx{

"sogdian"

, 127},

9701

string_with_idx{

"sogo"

, 128},

9702

string_with_idx{

"sora"

, 129},

9703

string_with_idx{

"sora_sompeng"

, 129},

9704

string_with_idx{

"soyo"

, 130},

9705

string_with_idx{

"soyombo"

, 130},

9706

string_with_idx{

"sund"

, 131},

9707

string_with_idx{

"sundanese"

, 131},

9708

string_with_idx{

"sylo"

, 132},

9709

string_with_idx{

"syloti_nagri"

, 132},

9710

string_with_idx{

"syrc"

, 133},

9711

string_with_idx{

"syriac"

, 133},

9712

string_with_idx{

"tagalog"

, 143},

9713

string_with_idx{

"tagb"

, 134},

9714

string_with_idx{

"tagbanwa"

, 134},

9715

string_with_idx{

"tai_le"

, 136},

9716

string_with_idx{

"tai_tham"

, 67},

9717

string_with_idx{

"tai_viet"

, 140},

9718

string_with_idx{

"takr"

, 135},

9719

string_with_idx{

"takri"

, 135},

9720

string_with_idx{

"tale"

, 136},

9721

string_with_idx{

"talu"

, 137},

9722

string_with_idx{

"tamil"

, 138},

9723

string_with_idx{

"taml"

, 138},

9724

string_with_idx{

"tang"

, 139},

9725

string_with_idx{

"tangsa"

, 148},

9726

string_with_idx{

"tangut"

, 139},

9727

string_with_idx{

"tavt"

, 140},

9728

string_with_idx{

"telu"

, 141},

9729

string_with_idx{

"telugu"

, 141},

9730

string_with_idx{

"tfng"

, 142},

9731

string_with_idx{

"tglg"

, 143},

9732

string_with_idx{

"thaa"

, 144},

9733

string_with_idx{

"thaana"

, 144},

9734

string_with_idx{

"thai"

, 145},

9735

string_with_idx{

"tibetan"

, 146},

9736

string_with_idx{

"tibt"

, 146},

9737

string_with_idx{

"tifinagh"

, 142},

9738

string_with_idx{

"tirh"

, 147},

9739

string_with_idx{

"tirhuta"

, 147},

9740

string_with_idx{

"tnsa"

, 148},

9741

string_with_idx{

"toto"

, 149},

9742

string_with_idx{

"ugar"

, 150},

9743

string_with_idx{

"ugaritic"

, 150},

9744

string_with_idx{

"unknown"

, 162},

9745

string_with_idx{

"vai"

, 151},

9746

string_with_idx{

"vaii"

, 151},

9747

string_with_idx{

"vith"

, 152},

9748

string_with_idx{

"vithkuqi"

, 152},

9749

string_with_idx{

"wancho"

, 154},

9750

string_with_idx{

"wara"

, 153},

9751

string_with_idx{

"warang_citi"

, 153},

9752

string_with_idx{

"wcho"

, 154},

9753

string_with_idx{

"xpeo"

, 155},

9754

string_with_idx{

"xsux"

, 156},

9755

string_with_idx{

"yezi"

, 157},

9756

string_with_idx{

"yezidi"

, 157},

9757

string_with_idx{

"yi"

, 158},

9758

string_with_idx{

"yiii"

, 158},

9759

string_with_idx{

"zanabazar_square"

, 159},

9760

string_with_idx{

"zanb"

, 159},

9761

string_with_idx{

"zinh"

, 160},

9762

string_with_idx{

"zyyy"

, 161},

9763

string_with_idx{

"zzzz"

, 162}};

9767  struct

script_data<0> {

9768  static

constexpr

const

compact_range scripts_data = {

9769

0x000000A1, 0x00004145, 0x00005BA1, 0x00006145, 0x00007BA1, 0x0000AA45, 0x0000ABA1,

9770

0x0000BA45, 0x0000BBA1, 0x0000C045, 0x0000D7A1, 0x0000D845, 0x0000F7A1, 0x0000F845,

9771

0x0002B9A1, 0x0002E045, 0x0002E5A1, 0x0002EA0D, 0x0002ECA1, 0x000300A0, 0x0003702B,

9772

0x000374A1, 0x0003752B, 0x000378A2, 0x00037A2B, 0x00037EA1, 0x00037F2B, 0x000380A2,

9773

0x0003842B, 0x000385A1, 0x0003862B, 0x000387A1, 0x0003882B, 0x00038BA2, 0x00038C2B,

9774

0x00038DA2, 0x00038E2B, 0x0003A2A2, 0x0003A32B, 0x0003E218, 0x0003F02B, 0x0004001B,

9775

0x000485A0, 0x0004871B, 0x000530A2, 0x00053105, 0x000557A2, 0x00055905, 0x00058BA2,

9776

0x00058D05, 0x000590A2, 0x00059132, 0x0005C8A2, 0x0005D032, 0x0005EBA2, 0x0005EF32,

9777

0x0005F5A2, 0x00060003, 0x000605A1, 0x00060603, 0x00060CA1, 0x00060D03, 0x00061BA1,

9778

0x00061C03, 0x00061FA1, 0x00062003, 0x000640A1, 0x00064103, 0x00064BA0, 0x00065603,

9779

0x000670A0, 0x00067103, 0x0006DDA1, 0x0006DE03, 0x00070085, 0x00070EA2, 0x00070F85,

9780

0x00074BA2, 0x00074D85, 0x00075003, 0x00078090, 0x0007B2A2, 0x0007C061, 0x0007FBA2,

9781

0x0007FD61, 0x00080076, 0x00082EA2, 0x00083076, 0x00083FA2, 0x0008404F, 0x00085CA2,

9782

0x00085E4F, 0x00085FA2, 0x00086085, 0x00086BA2, 0x00087003, 0x00088FA2, 0x00089003,

9783

0x000892A2, 0x00089803, 0x0008E2A1, 0x0008E303, 0x0009001C, 0x000951A0, 0x0009551C,

9784

0x000964A1, 0x0009661C, 0x0009800B, 0x000984A2, 0x0009850B, 0x00098DA2, 0x00098F0B,

9785

0x000991A2, 0x0009930B, 0x0009A9A2, 0x0009AA0B, 0x0009B1A2, 0x0009B20B, 0x0009B3A2,

9786

0x0009B60B, 0x0009BAA2, 0x0009BC0B, 0x0009C5A2, 0x0009C70B, 0x0009C9A2, 0x0009CB0B,

9787

0x0009CFA2, 0x0009D70B, 0x0009D8A2, 0x0009DC0B, 0x0009DEA2, 0x0009DF0B, 0x0009E4A2,

9788

0x0009E60B, 0x0009FFA2, 0x000A012D, 0x000A04A2, 0x000A052D, 0x000A0BA2, 0x000A0F2D,

9789

0x000A11A2, 0x000A132D, 0x000A29A2, 0x000A2A2D, 0x000A31A2, 0x000A322D, 0x000A34A2,

9790

0x000A352D, 0x000A37A2, 0x000A382D, 0x000A3AA2, 0x000A3C2D, 0x000A3DA2, 0x000A3E2D,

9791

0x000A43A2, 0x000A472D, 0x000A49A2, 0x000A4B2D, 0x000A4EA2, 0x000A512D, 0x000A52A2,

9792

0x000A592D, 0x000A5DA2, 0x000A5E2D, 0x000A5FA2, 0x000A662D, 0x000A77A2, 0x000A812C,

9793

0x000A84A2, 0x000A852C, 0x000A8EA2, 0x000A8F2C, 0x000A92A2, 0x000A932C, 0x000AA9A2,

9794

0x000AAA2C, 0x000AB1A2, 0x000AB22C, 0x000AB4A2, 0x000AB52C, 0x000ABAA2, 0x000ABC2C,

9795

0x000AC6A2, 0x000AC72C, 0x000ACAA2, 0x000ACB2C, 0x000ACEA2, 0x000AD02C, 0x000AD1A2,

9796

0x000AE02C, 0x000AE4A2, 0x000AE62C, 0x000AF2A2, 0x000AF92C, 0x000B00A2, 0x000B0166,

9797

0x000B04A2, 0x000B0566, 0x000B0DA2, 0x000B0F66, 0x000B11A2, 0x000B1366, 0x000B29A2,

9798

0x000B2A66, 0x000B31A2, 0x000B3266, 0x000B34A2, 0x000B3566, 0x000B3AA2, 0x000B3C66,

9799

0x000B45A2, 0x000B4766, 0x000B49A2, 0x000B4B66, 0x000B4EA2, 0x000B5566, 0x000B58A2,

9800

0x000B5C66, 0x000B5EA2, 0x000B5F66, 0x000B64A2, 0x000B6666, 0x000B78A2, 0x000B828A,

9801

0x000B84A2, 0x000B858A, 0x000B8BA2, 0x000B8E8A, 0x000B91A2, 0x000B928A, 0x000B96A2,

9802

0x000B998A, 0x000B9BA2, 0x000B9C8A, 0x000B9DA2, 0x000B9E8A, 0x000BA0A2, 0x000BA38A,

9803

0x000BA5A2, 0x000BA88A, 0x000BABA2, 0x000BAE8A, 0x000BBAA2, 0x000BBE8A, 0x000BC3A2,

9804

0x000BC68A, 0x000BC9A2, 0x000BCA8A, 0x000BCEA2, 0x000BD08A, 0x000BD1A2, 0x000BD78A,

9805

0x000BD8A2, 0x000BE68A, 0x000BFBA2, 0x000C008D, 0x000C0DA2, 0x000C0E8D, 0x000C11A2,

9806

0x000C128D, 0x000C29A2, 0x000C2A8D, 0x000C3AA2, 0x000C3C8D, 0x000C45A2, 0x000C468D,

9807

0x000C49A2, 0x000C4A8D, 0x000C4EA2, 0x000C558D, 0x000C57A2, 0x000C588D, 0x000C5BA2,

9808

0x000C5D8D, 0x000C5EA2, 0x000C608D, 0x000C64A2, 0x000C668D, 0x000C70A2, 0x000C778D,

9809

0x000C8041, 0x000C8DA2, 0x000C8E41, 0x000C91A2, 0x000C9241, 0x000CA9A2, 0x000CAA41,

9810

0x000CB4A2, 0x000CB541, 0x000CBAA2, 0x000CBC41, 0x000CC5A2, 0x000CC641, 0x000CC9A2,

9811

0x000CCA41, 0x000CCEA2, 0x000CD541, 0x000CD7A2, 0x000CDD41, 0x000CDFA2, 0x000CE041,

9812

0x000CE4A2, 0x000CE641, 0x000CF0A2, 0x000CF141, 0x000CF3A2, 0x000D0056, 0x000D0DA2,

9813

0x000D0E56, 0x000D11A2, 0x000D1256, 0x000D45A2, 0x000D4656, 0x000D49A2, 0x000D4A56,

9814

0x000D50A2, 0x000D5456, 0x000D64A2, 0x000D6656, 0x000D80A2, 0x000D817E, 0x000D84A2,

9815

0x000D857E, 0x000D97A2, 0x000D9A7E, 0x000DB2A2, 0x000DB37E, 0x000DBCA2, 0x000DBD7E,

9816

0x000DBEA2, 0x000DC07E, 0x000DC7A2, 0x000DCA7E, 0x000DCBA2, 0x000DCF7E, 0x000DD5A2,

9817

0x000DD67E, 0x000DD7A2, 0x000DD87E, 0x000DE0A2, 0x000DE67E, 0x000DF0A2, 0x000DF27E,

9818

0x000DF5A2, 0x000E0191, 0x000E3BA2, 0x000E3FA1, 0x000E4091, 0x000E5CA2, 0x000E8144,

9819

0x000E83A2, 0x000E8444, 0x000E85A2, 0x000E8644, 0x000E8BA2, 0x000E8C44, 0x000EA4A2,

9820

0x000EA544, 0x000EA6A2, 0x000EA744, 0x000EBEA2, 0x000EC044, 0x000EC5A2, 0x000EC644,

9821

0x000EC7A2, 0x000EC844, 0x000ECEA2, 0x000ED044, 0x000EDAA2, 0x000EDC44, 0x000EE0A2,

9822

0x000F0092, 0x000F48A2, 0x000F4992, 0x000F6DA2, 0x000F7192, 0x000F98A2, 0x000F9992,

9823

0x000FBDA2, 0x000FBE92, 0x000FCDA2, 0x000FCE92, 0x000FD5A1, 0x000FD992, 0x000FDBA2,

9824

0x0010005C, 0x0010A025, 0x0010C6A2, 0x0010C725, 0x0010C8A2, 0x0010CD25, 0x0010CEA2,

9825

0x0010D025, 0x0010FBA1, 0x0010FC25, 0x0011002E, 0x00120024, 0x001249A2, 0x00124A24,

9826

0x00124EA2, 0x00125024, 0x001257A2, 0x00125824, 0x001259A2, 0x00125A24, 0x00125EA2,

9827

0x00126024, 0x001289A2, 0x00128A24, 0x00128EA2, 0x00129024, 0x0012B1A2, 0x0012B224,

9828

0x0012B6A2, 0x0012B824, 0x0012BFA2, 0x0012C024, 0x0012C1A2, 0x0012C224, 0x0012C6A2,

9829

0x0012C824, 0x0012D7A2, 0x0012D824, 0x001311A2, 0x00131224, 0x001316A2, 0x00131824,

9830

0x00135BA2, 0x00135D24, 0x00137DA2, 0x00138024, 0x00139AA2, 0x0013A016, 0x0013F6A2,

9831

0x0013F816, 0x0013FEA2, 0x00140013, 0x00168063, 0x00169DA2, 0x0016A075, 0x0016EBA1,

9832

0x0016EE75, 0x0016F9A2, 0x0017008F, 0x001716A2, 0x00171F8F, 0x00172030, 0x001735A1,

9833

0x001737A2, 0x00174011, 0x001754A2, 0x00176086, 0x00176DA2, 0x00176E86, 0x001771A2,

9834

0x00177286, 0x001774A2, 0x0017803E, 0x0017DEA2, 0x0017E03E, 0x0017EAA2, 0x0017F03E,

9835

0x0017FAA2, 0x00180058, 0x001802A1, 0x00180458, 0x001805A1, 0x00180658, 0x00181AA2,

9836

0x00182058, 0x001879A2, 0x00188058, 0x0018ABA2, 0x0018B013, 0x0018F6A2, 0x00190047,

9837

0x00191FA2, 0x00192047, 0x00192CA2, 0x00193047, 0x00193CA2, 0x00194047, 0x001941A2,

9838

0x00194447, 0x00195088, 0x00196EA2, 0x00197088, 0x001975A2, 0x00198089, 0x0019ACA2,

9839

0x0019B089, 0x0019CAA2, 0x0019D089, 0x0019DBA2, 0x0019DE89, 0x0019E03E, 0x001A0010,

9840

0x001A1CA2, 0x001A1E10, 0x001A2043, 0x001A5FA2, 0x001A6043, 0x001A7DA2, 0x001A7F43,

9841

0x001A8AA2, 0x001A9043, 0x001A9AA2, 0x001AA043, 0x001AAEA2, 0x001AB0A0, 0x001ACFA2,

9842

0x001B0007, 0x001B4DA2, 0x001B5007, 0x001B7FA2, 0x001B8083, 0x001BC00A, 0x001BF4A2,

9843

0x001BFC0A, 0x001C0046, 0x001C38A2, 0x001C3B46, 0x001C4AA2, 0x001C4D46, 0x001C5064,

9844

0x001C801B, 0x001C89A2, 0x001C9025, 0x001CBBA2, 0x001CBD25, 0x001CC083, 0x001CC8A2,

9845

0x001CD0A0, 0x001CD3A1, 0x001CD4A0, 0x001CE1A1, 0x001CE2A0, 0x001CE9A1, 0x001CEDA0,

9846

0x001CEEA1, 0x001CF4A0, 0x001CF5A1, 0x001CF8A0, 0x001CFAA1, 0x001CFBA2, 0x001D0045,

9847

0x001D262B, 0x001D2B1B, 0x001D2C45, 0x001D5D2B, 0x001D6245, 0x001D662B, 0x001D6B45,

9848

0x001D781B, 0x001D7945, 0x001DBF2B, 0x001DC0A0, 0x001E0045, 0x001F002B, 0x001F16A2,

9849

0x001F182B, 0x001F1EA2, 0x001F202B, 0x001F46A2, 0x001F482B, 0x001F4EA2, 0x001F502B,

9850

0x001F58A2, 0x001F592B, 0x001F5AA2, 0x001F5B2B, 0x001F5CA2, 0x001F5D2B, 0x001F5EA2,

9851

0x001F5F2B, 0x001F7EA2, 0x001F802B, 0x001FB5A2, 0x001FB62B, 0x001FC5A2, 0x001FC62B,

9852

0x001FD4A2, 0x001FD62B, 0x001FDCA2, 0x001FDD2B, 0x001FF0A2, 0x001FF22B, 0x001FF5A2,

9853

0x001FF62B, 0x001FFFA2, 0x002000A1, 0x00200CA0, 0x00200EA1, 0x002065A2, 0x002066A1,

9854

0x00207145, 0x002072A2, 0x002074A1, 0x00207F45, 0x002080A1, 0x00208FA2, 0x00209045,

9855

0x00209DA2, 0x0020A0A1, 0x0020C1A2, 0x0020D0A0, 0x0020F1A2, 0x002100A1, 0x0021262B,

9856

0x002127A1, 0x00212A45, 0x00212CA1, 0x00213245, 0x002133A1, 0x00214E45, 0x00214FA1,

9857

0x00216045, 0x002189A1, 0x00218CA2, 0x002190A1, 0x002427A2, 0x002440A1, 0x00244BA2,

9858

0x002460A1, 0x0028000F, 0x002900A1, 0x002B74A2, 0x002B76A1, 0x002B96A2, 0x002B97A1,

9859

0x002C0026, 0x002C6045, 0x002C8018, 0x002CF4A2, 0x002CF918, 0x002D0025, 0x002D26A2,

9860

0x002D2725, 0x002D28A2, 0x002D2D25, 0x002D2EA2, 0x002D308E, 0x002D68A2, 0x002D6F8E,

9861

0x002D71A2, 0x002D7F8E, 0x002D8024, 0x002D97A2, 0x002DA024, 0x002DA7A2, 0x002DA824,

9862

0x002DAFA2, 0x002DB024, 0x002DB7A2, 0x002DB824, 0x002DBFA2, 0x002DC024, 0x002DC7A2,

9863

0x002DC824, 0x002DCFA2, 0x002DD024, 0x002DD7A2, 0x002DD824, 0x002DDFA2, 0x002DE01B,

9864

0x002E00A1, 0x002E5EA2, 0x002E802F, 0x002E9AA2, 0x002E9B2F, 0x002EF4A2, 0x002F002F,

9865

0x002FD6A2, 0x002FF0A1, 0x002FFCA2, 0x003000A1, 0x0030052F, 0x003006A1, 0x0030072F,

9866

0x003008A1, 0x0030212F, 0x00302AA0, 0x00302E2E, 0x003030A1, 0x0030382F, 0x00303CA1,

9867

0x003040A2, 0x00304133, 0x003097A2, 0x003099A0, 0x00309BA1, 0x00309D33, 0x0030A0A1,

9868

0x0030A13C, 0x0030FBA1, 0x0030FD3C, 0x003100A2, 0x0031050D, 0x003130A2, 0x0031312E,

9869

0x00318FA2, 0x003190A1, 0x0031A00D, 0x0031C0A1, 0x0031E4A2, 0x0031F03C, 0x0032002E,

9870

0x00321FA2, 0x003220A1, 0x0032602E, 0x00327FA1, 0x0032D03C, 0x0032FFA1, 0x0033003C,

9871

0x003358A1, 0x0034002F, 0x004DC0A1, 0x004E002F, 0x00A0009E, 0x00A48DA2, 0x00A4909E,

9872

0x00A4C7A2, 0x00A4D04A, 0x00A50097, 0x00A62CA2, 0x00A6401B, 0x00A6A008, 0x00A6F8A2,

9873

0x00A700A1, 0x00A72245, 0x00A788A1, 0x00A78B45, 0x00A7CBA2, 0x00A7D045, 0x00A7D2A2,

9874

0x00A7D345, 0x00A7D4A2, 0x00A7D545, 0x00A7DAA2, 0x00A7F245, 0x00A80084, 0x00A82DA2,

9875

0x00A830A1, 0x00A83AA2, 0x00A8406D, 0x00A878A2, 0x00A88078, 0x00A8C6A2, 0x00A8CE78,

9876

0x00A8DAA2, 0x00A8E01C, 0x00A9003B, 0x00A92EA1, 0x00A92F3B, 0x00A93073, 0x00A954A2,

9877

0x00A95F73, 0x00A9602E, 0x00A97DA2, 0x00A9803A, 0x00A9CEA2, 0x00A9CFA1, 0x00A9D03A,

9878

0x00A9DAA2, 0x00A9DE3A, 0x00A9E05C, 0x00A9FFA2, 0x00AA0015, 0x00AA37A2, 0x00AA4015,

9879

0x00AA4EA2, 0x00AA5015, 0x00AA5AA2, 0x00AA5C15, 0x00AA605C, 0x00AA808C, 0x00AAC3A2,

9880

0x00AADB8C, 0x00AAE05A, 0x00AAF7A2, 0x00AB0124, 0x00AB07A2, 0x00AB0924, 0x00AB0FA2,

9881

0x00AB1124, 0x00AB17A2, 0x00AB2024, 0x00AB27A2, 0x00AB2824, 0x00AB2FA2, 0x00AB3045,

9882

0x00AB5BA1, 0x00AB5C45, 0x00AB652B, 0x00AB6645, 0x00AB6AA1, 0x00AB6CA2, 0x00AB7016,

9883

0x00ABC05A, 0x00ABEEA2, 0x00ABF05A, 0x00ABFAA2, 0x00AC002E, 0x00D7A4A2, 0x00D7B02E,

9884

0x00D7C7A2, 0x00D7CB2E, 0x00D7FCA2, 0x00F9002F, 0x00FA6EA2, 0x00FA702F, 0x00FADAA2,

9885

0x00FB0045, 0x00FB07A2, 0x00FB1305, 0x00FB18A2, 0x00FB1D32, 0x00FB37A2, 0x00FB3832,

9886

0x00FB3DA2, 0x00FB3E32, 0x00FB3FA2, 0x00FB4032, 0x00FB42A2, 0x00FB4332, 0x00FB45A2,

9887

0x00FB4632, 0x00FB5003, 0x00FBC3A2, 0x00FBD303, 0x00FD3EA1, 0x00FD4003, 0x00FD90A2,

9888

0x00FD9203, 0x00FDC8A2, 0x00FDCF03, 0x00FDD0A2, 0x00FDF003, 0x00FE00A0, 0x00FE10A1,

9889

0x00FE1AA2, 0x00FE20A0, 0x00FE2E1B, 0x00FE30A1, 0x00FE53A2, 0x00FE54A1, 0x00FE67A2,

9890

0x00FE68A1, 0x00FE6CA2, 0x00FE7003, 0x00FE75A2, 0x00FE7603, 0x00FEFDA2, 0x00FEFFA1,

9891

0x00FF00A2, 0x00FF01A1, 0x00FF2145, 0x00FF3BA1, 0x00FF4145, 0x00FF5BA1, 0x00FF663C,

9892

0x00FF70A1, 0x00FF713C, 0x00FF9EA1, 0x00FFA02E, 0x00FFBFA2, 0x00FFC22E, 0x00FFC8A2,

9893

0x00FFCA2E, 0x00FFD0A2, 0x00FFD22E, 0x00FFD8A2, 0x00FFDA2E, 0x00FFDDA2, 0x00FFE0A1,

9894

0x00FFE7A2, 0x00FFE8A1, 0x00FFEFA2, 0x00FFF9A1, 0x00FFFEA2, 0x01000049, 0x01000CA2,

9895

0x01000D49, 0x010027A2, 0x01002849, 0x01003BA2, 0x01003C49, 0x01003EA2, 0x01003F49,

9896

0x01004EA2, 0x01005049, 0x01005EA2, 0x01008049, 0x0100FBA2, 0x010100A1, 0x010103A2,

9897

0x010107A1, 0x010134A2, 0x010137A1, 0x0101402B, 0x01018FA2, 0x010190A1, 0x01019DA2,

9898

0x0101A02B, 0x0101A1A2, 0x0101D0A1, 0x0101FDA0, 0x0101FEA2, 0x0102804B, 0x01029DA2,

9899

0x0102A014, 0x0102D1A2, 0x0102E0A0, 0x0102E1A1, 0x0102FCA2, 0x01030039, 0x010324A2,

9900

0x01032D39, 0x01033029, 0x01034BA2, 0x0103506C, 0x01037BA2, 0x01038096, 0x01039EA2,

9901

0x01039F96, 0x0103A09B, 0x0103C4A2, 0x0103C89B, 0x0103D6A2, 0x0104001F, 0x0104507A,

9902

0x01048068, 0x01049EA2, 0x0104A068, 0x0104AAA2, 0x0104B067, 0x0104D4A2, 0x0104D867,

9903

0x0104FCA2, 0x01050022, 0x010528A2, 0x01053001, 0x010564A2, 0x01056F01, 0x01057098,

9904

0x01057BA2, 0x01057C98, 0x01058BA2, 0x01058C98, 0x010593A2, 0x01059498, 0x010596A2,

9905

0x01059798, 0x0105A2A2, 0x0105A398, 0x0105B2A2, 0x0105B398, 0x0105BAA2, 0x0105BB98,

9906

0x0105BDA2, 0x01060048, 0x010737A2, 0x01074048, 0x010756A2, 0x01076048, 0x010768A2,

9907

0x01078045, 0x010786A2, 0x01078745, 0x0107B1A2, 0x0107B245, 0x0107BBA2, 0x0108001A,

9908

0x010806A2, 0x0108081A, 0x010809A2, 0x01080A1A, 0x010836A2, 0x0108371A, 0x010839A2,

9909

0x01083C1A, 0x01083DA2, 0x01083F1A, 0x01084004, 0x010856A2, 0x01085704, 0x0108606A,

9910

0x0108805F, 0x01089FA2, 0x0108A75F, 0x0108B0A2, 0x0108E031, 0x0108F3A2, 0x0108F431,

9911

0x0108F6A2, 0x0108FB31, 0x01090070, 0x01091CA2, 0x01091F70, 0x0109204C, 0x01093AA2,

9912

0x01093F4C, 0x010940A2, 0x01098055, 0x0109A054, 0x0109B8A2, 0x0109BC54, 0x0109D0A2,

9913

0x0109D254, 0x010A003D, 0x010A04A2, 0x010A053D, 0x010A07A2, 0x010A0C3D, 0x010A14A2,

9914

0x010A153D, 0x010A18A2, 0x010A193D, 0x010A36A2, 0x010A383D, 0x010A3BA2, 0x010A3F3D,

9915

0x010A49A2, 0x010A503D, 0x010A59A2, 0x010A6077, 0x010A805E, 0x010AA0A2, 0x010AC050,

9916

0x010AE7A2, 0x010AEB50, 0x010AF7A2, 0x010B0006, 0x010B36A2, 0x010B3906, 0x010B4072,

9917

0x010B56A2, 0x010B5872, 0x010B606E, 0x010B73A2, 0x010B786E, 0x010B806F, 0x010B92A2,

9918

0x010B996F, 0x010B9DA2, 0x010BA96F, 0x010BB0A2, 0x010C0065, 0x010C49A2, 0x010C8038,

9919

0x010CB3A2, 0x010CC038, 0x010CF3A2, 0x010CFA38, 0x010D0074, 0x010D28A2, 0x010D3074,

9920

0x010D3AA2, 0x010E6003, 0x010E7FA2, 0x010E809D, 0x010EAAA2, 0x010EAB9D, 0x010EAEA2,

9921

0x010EB09D, 0x010EB2A2, 0x010F0080, 0x010F28A2, 0x010F307F, 0x010F5AA2, 0x010F7069,

9922

0x010F8AA2, 0x010FB017, 0x010FCCA2, 0x010FE023, 0x010FF7A2, 0x0110000E, 0x01104EA2,

9923

0x0110520E, 0x011076A2, 0x01107F0E, 0x01108042, 0x0110C3A2, 0x0110CD42, 0x0110CEA2,

9924

0x0110D081, 0x0110E9A2, 0x0110F081, 0x0110FAA2, 0x01110012, 0x011135A2, 0x01113612,

9925

0x011148A2, 0x0111504D, 0x011177A2, 0x0111807B, 0x0111E0A2, 0x0111E17E, 0x0111F5A2,

9926

0x0112003F, 0x011212A2, 0x0112133F, 0x01123FA2, 0x0112805B, 0x011287A2, 0x0112885B,

9927

0x011289A2, 0x01128A5B, 0x01128EA2, 0x01128F5B, 0x01129EA2, 0x01129F5B, 0x0112AAA2,

9928

0x0112B07D, 0x0112EBA2, 0x0112F07D, 0x0112FAA2, 0x0113002A, 0x011304A2, 0x0113052A,

9929

0x01130DA2, 0x01130F2A, 0x011311A2, 0x0113132A, 0x011329A2, 0x01132A2A, 0x011331A2,

9930

0x0113322A, 0x011334A2, 0x0113352A, 0x01133AA2, 0x01133BA0, 0x01133C2A, 0x011345A2,

9931

0x0113472A, 0x011349A2, 0x01134B2A, 0x01134EA2, 0x0113502A, 0x011351A2, 0x0113572A,

9932

0x011358A2, 0x01135D2A, 0x011364A2, 0x0113662A, 0x01136DA2, 0x0113702A, 0x011375A2,

9933

0x01140060, 0x01145CA2, 0x01145D60, 0x011462A2, 0x01148093, 0x0114C8A2, 0x0114D093,

9934

0x0114DAA2, 0x0115807C, 0x0115B6A2, 0x0115B87C, 0x0115DEA2, 0x01160057, 0x011645A2,

9935

0x01165057, 0x01165AA2, 0x01166058, 0x01166DA2, 0x01168087, 0x0116BAA2, 0x0116C087,

9936

0x0116CAA2, 0x01170002, 0x01171BA2, 0x01171D02, 0x01172CA2, 0x01173002, 0x011747A2,

9937

0x0118001E, 0x01183CA2, 0x0118A099, 0x0118F3A2, 0x0118FF99, 0x0119001D, 0x011907A2,

9938

0x0119091D, 0x01190AA2, 0x01190C1D, 0x011914A2, 0x0119151D, 0x011917A2, 0x0119181D,

9939

0x011936A2, 0x0119371D, 0x011939A2, 0x01193B1D, 0x011947A2, 0x0119501D, 0x01195AA2,

9940

0x0119A05D, 0x0119A8A2, 0x0119AA5D, 0x0119D8A2, 0x0119DA5D, 0x0119E5A2, 0x011A009F,

9941

0x011A48A2, 0x011A5082, 0x011AA3A2, 0x011AB013, 0x011AC06B, 0x011AF9A2, 0x011C000C,

9942

0x011C09A2, 0x011C0A0C, 0x011C37A2, 0x011C380C, 0x011C46A2, 0x011C500C, 0x011C6DA2,

9943

0x011C7051, 0x011C90A2, 0x011C9251, 0x011CA8A2, 0x011CA951, 0x011CB7A2, 0x011D0028,

9944

0x011D07A2, 0x011D0828, 0x011D0AA2, 0x011D0B28, 0x011D37A2, 0x011D3A28, 0x011D3BA2,

9945

0x011D3C28, 0x011D3EA2, 0x011D3F28, 0x011D48A2, 0x011D5028, 0x011D5AA2, 0x011D6027,

9946

0x011D66A2, 0x011D6727, 0x011D69A2, 0x011D6A27, 0x011D8FA2, 0x011D9027, 0x011D92A2,

9947

0x011D9327, 0x011D99A2, 0x011DA027, 0x011DAAA2, 0x011EE04E, 0x011EF9A2, 0x011FB04A,

9948

0x011FB1A2, 0x011FC08A, 0x011FF2A2, 0x011FFF8A, 0x0120009C, 0x01239AA2, 0x0124009C,

9949

0x01246FA2, 0x0124709C, 0x012475A2, 0x0124809C, 0x012544A2, 0x012F9019, 0x012FF3A2,

9950

0x01300021, 0x01342FA2, 0x01343021, 0x013439A2, 0x01440034, 0x014647A2, 0x01680008,

9951

0x016A39A2, 0x016A4059, 0x016A5FA2, 0x016A6059, 0x016A6AA2, 0x016A6E59, 0x016A7094,

9952

0x016ABFA2, 0x016AC094, 0x016ACAA2, 0x016AD009, 0x016AEEA2, 0x016AF009, 0x016AF6A2,

9953

0x016B0035, 0x016B46A2, 0x016B5035, 0x016B5AA2, 0x016B5B35, 0x016B62A2, 0x016B6335,

9954

0x016B78A2, 0x016B7D35, 0x016B90A2, 0x016E4052, 0x016E9BA2, 0x016F0071, 0x016F4BA2,

9955

0x016F4F71, 0x016F88A2, 0x016F8F71, 0x016FA0A2, 0x016FE08B, 0x016FE162, 0x016FE22F,

9956

0x016FE440, 0x016FE5A2, 0x016FF02F, 0x016FF2A2, 0x0170008B, 0x0187F8A2, 0x0188008B,

9957

0x018B0040, 0x018CD6A2, 0x018D008B, 0x018D09A2, 0x01AFF03C, 0x01AFF4A2, 0x01AFF53C,

9958

0x01AFFCA2, 0x01AFFD3C, 0x01AFFFA2, 0x01B0003C, 0x01B00133, 0x01B1203C, 0x01B123A2,

9959

0x01B15033, 0x01B153A2, 0x01B1643C, 0x01B168A2, 0x01B17062, 0x01B2FCA2, 0x01BC0020,

9960

0x01BC6BA2, 0x01BC7020, 0x01BC7DA2, 0x01BC8020, 0x01BC89A2, 0x01BC9020, 0x01BC9AA2,

9961

0x01BC9C20, 0x01BCA0A1, 0x01BCA4A2, 0x01CF00A0, 0x01CF2EA2, 0x01CF30A0, 0x01CF47A2,

9962

0x01CF50A1, 0x01CFC4A2, 0x01D000A1, 0x01D0F6A2, 0x01D100A1, 0x01D127A2, 0x01D129A1,

9963

0x01D167A0, 0x01D16AA1, 0x01D17BA0, 0x01D183A1, 0x01D185A0, 0x01D18CA1, 0x01D1AAA0,

9964

0x01D1AEA1, 0x01D1EBA2, 0x01D2002B, 0x01D246A2, 0x01D2E0A1, 0x01D2F4A2, 0x01D300A1,

9965

0x01D357A2, 0x01D360A1, 0x01D379A2, 0x01D400A1, 0x01D455A2, 0x01D456A1, 0x01D49DA2,

9966

0x01D49EA1, 0x01D4A0A2, 0x01D4A2A1, 0x01D4A3A2, 0x01D4A5A1, 0x01D4A7A2, 0x01D4A9A1,

9967

0x01D4ADA2, 0x01D4AEA1, 0x01D4BAA2, 0x01D4BBA1, 0x01D4BCA2, 0x01D4BDA1, 0x01D4C4A2,

9968

0x01D4C5A1, 0x01D506A2, 0x01D507A1, 0x01D50BA2, 0x01D50DA1, 0x01D515A2, 0x01D516A1,

9969

0x01D51DA2, 0x01D51EA1, 0x01D53AA2, 0x01D53BA1, 0x01D53FA2, 0x01D540A1, 0x01D545A2,

9970

0x01D546A1, 0x01D547A2, 0x01D54AA1, 0x01D551A2, 0x01D552A1, 0x01D6A6A2, 0x01D6A8A1,

9971

0x01D7CCA2, 0x01D7CEA1, 0x01D80079, 0x01DA8CA2, 0x01DA9B79, 0x01DAA0A2, 0x01DAA179,

9972

0x01DAB0A2, 0x01DF0045, 0x01DF1FA2, 0x01E00026, 0x01E007A2, 0x01E00826, 0x01E019A2,

9973

0x01E01B26, 0x01E022A2, 0x01E02326, 0x01E025A2, 0x01E02626, 0x01E02BA2, 0x01E10036,

9974

0x01E12DA2, 0x01E13036, 0x01E13EA2, 0x01E14036, 0x01E14AA2, 0x01E14E36, 0x01E150A2,

9975

0x01E29095, 0x01E2AFA2, 0x01E2C09A, 0x01E2FAA2, 0x01E2FF9A, 0x01E300A2, 0x01E7E024,

9976

0x01E7E7A2, 0x01E7E824, 0x01E7ECA2, 0x01E7ED24, 0x01E7EFA2, 0x01E7F024, 0x01E7FFA2,

9977

0x01E80053, 0x01E8C5A2, 0x01E8C753, 0x01E8D7A2, 0x01E90000, 0x01E94CA2, 0x01E95000,

9978

0x01E95AA2, 0x01E95E00, 0x01E960A2, 0x01EC71A1, 0x01ECB5A2, 0x01ED01A1, 0x01ED3EA2,

9979

0x01EE0003, 0x01EE04A2, 0x01EE0503, 0x01EE20A2, 0x01EE2103, 0x01EE23A2, 0x01EE2403,

9980

0x01EE25A2, 0x01EE2703, 0x01EE28A2, 0x01EE2903, 0x01EE33A2, 0x01EE3403, 0x01EE38A2,

9981

0x01EE3903, 0x01EE3AA2, 0x01EE3B03, 0x01EE3CA2, 0x01EE4203, 0x01EE43A2, 0x01EE4703,

9982

0x01EE48A2, 0x01EE4903, 0x01EE4AA2, 0x01EE4B03, 0x01EE4CA2, 0x01EE4D03, 0x01EE50A2,

9983

0x01EE5103, 0x01EE53A2, 0x01EE5403, 0x01EE55A2, 0x01EE5703, 0x01EE58A2, 0x01EE5903,

9984

0x01EE5AA2, 0x01EE5B03, 0x01EE5CA2, 0x01EE5D03, 0x01EE5EA2, 0x01EE5F03, 0x01EE60A2,

9985

0x01EE6103, 0x01EE63A2, 0x01EE6403, 0x01EE65A2, 0x01EE6703, 0x01EE6BA2, 0x01EE6C03,

9986

0x01EE73A2, 0x01EE7403, 0x01EE78A2, 0x01EE7903, 0x01EE7DA2, 0x01EE7E03, 0x01EE7FA2,

9987

0x01EE8003, 0x01EE8AA2, 0x01EE8B03, 0x01EE9CA2, 0x01EEA103, 0x01EEA4A2, 0x01EEA503,

9988

0x01EEAAA2, 0x01EEAB03, 0x01EEBCA2, 0x01EEF003, 0x01EEF2A2, 0x01F000A1, 0x01F02CA2,

9989

0x01F030A1, 0x01F094A2, 0x01F0A0A1, 0x01F0AFA2, 0x01F0B1A1, 0x01F0C0A2, 0x01F0C1A1,

9990

0x01F0D0A2, 0x01F0D1A1, 0x01F0F6A2, 0x01F100A1, 0x01F1AEA2, 0x01F1E6A1, 0x01F20033,

9991

0x01F201A1, 0x01F203A2, 0x01F210A1, 0x01F23CA2, 0x01F240A1, 0x01F249A2, 0x01F250A1,

9992

0x01F252A2, 0x01F260A1, 0x01F266A2, 0x01F300A1, 0x01F6D8A2, 0x01F6DDA1, 0x01F6EDA2,

9993

0x01F6F0A1, 0x01F6FDA2, 0x01F700A1, 0x01F774A2, 0x01F780A1, 0x01F7D9A2, 0x01F7E0A1,

9994

0x01F7ECA2, 0x01F7F0A1, 0x01F7F1A2, 0x01F800A1, 0x01F80CA2, 0x01F810A1, 0x01F848A2,

9995

0x01F850A1, 0x01F85AA2, 0x01F860A1, 0x01F888A2, 0x01F890A1, 0x01F8AEA2, 0x01F8B0A1,

9996

0x01F8B2A2, 0x01F900A1, 0x01FA54A2, 0x01FA60A1, 0x01FA6EA2, 0x01FA70A1, 0x01FA75A2,

9997

0x01FA78A1, 0x01FA7DA2, 0x01FA80A1, 0x01FA87A2, 0x01FA90A1, 0x01FAADA2, 0x01FAB0A1,

9998

0x01FABBA2, 0x01FAC0A1, 0x01FAC6A2, 0x01FAD0A1, 0x01FADAA2, 0x01FAE0A1, 0x01FAE8A2,

9999

0x01FAF0A1, 0x01FAF7A2, 0x01FB00A1, 0x01FB93A2, 0x01FB94A1, 0x01FBCBA2, 0x01FBF0A1,

10000

0x01FBFAA2, 0x0200002F, 0x02A6E0A2, 0x02A7002F, 0x02B739A2, 0x02B7402F, 0x02B81EA2,

10001

0x02B8202F, 0x02CEA2A2, 0x02CEB02F, 0x02EBE1A2, 0x02F8002F, 0x02FA1EA2, 0x0300002F,

10002

0x03134BA2, 0x0E0001A1, 0x0E0002A2, 0x0E0020A1, 0x0E0080A2, 0x0E0100A0, 0x0E01F0A2,

10006  struct

script_data<1> {

10007  static

constexpr

const

compact_range scripts_data = {

10008

0x000000A2, 0x0003422B, 0x000343A2, 0x0003452B, 0x000346A2, 0x00036345, 0x000370A2,

10009

0x0004831B, 0x000488A2, 0x00060C03, 0x00060DA2, 0x00061B03, 0x00061DA2, 0x00061F00,

10010

0x000620A2, 0x00064000, 0x000641A2, 0x00064B03, 0x000656A2, 0x00066003, 0x00066AA2,

10011

0x00067003, 0x000671A2, 0x0006D403, 0x0006D5A2, 0x0009510B, 0x000953A2, 0x0009640B,

10012

0x0009661C, 0x000970A2, 0x0009E60B, 0x0009F0A2, 0x000A662D, 0x000A70A2, 0x000AE62C,

10013

0x000AF0A2, 0x000BE62A, 0x000BF4A2, 0x000CE641, 0x000CF0A2, 0x00104012, 0x00104AA2,

10014

0x0010FB25, 0x0010FCA2, 0x00173511, 0x001737A2, 0x00180258, 0x001804A2, 0x00180558,

10015

0x001806A2, 0x001CD00B, 0x001CD11C, 0x001CD20B, 0x001CD31C, 0x001CD50B, 0x001CD71C,

10016

0x001CD80B, 0x001CD91C, 0x001CE10B, 0x001CE21C, 0x001CEA0B, 0x001CEB1C, 0x001CED0B,

10017

0x001CEE1C, 0x001CF20B, 0x001CF31C, 0x001CF50B, 0x001CF81C, 0x001CFA5D, 0x001CFBA2,

10018

0x001DC02B, 0x001DC2A2, 0x001DF81B, 0x001DF9A2, 0x001DFA85, 0x001DFBA2, 0x00202F45,

10019

0x002030A2, 0x0020F01C, 0x0020F1A2, 0x002E431B, 0x002E44A2, 0x0030010D, 0x003004A2,

10020

0x0030062F, 0x003007A2, 0x0030080D, 0x003012A2, 0x0030130D, 0x003020A2, 0x00302A0D,

10021

0x00302EA2, 0x0030300D, 0x00303133, 0x003036A2, 0x0030370D, 0x003038A2, 0x00303C2F,

10022

0x003040A2, 0x00309933, 0x00309DA2, 0x0030A033, 0x0030A1A2, 0x0030FB0D, 0x0030FC33,

10023

0x0030FDA2, 0x0031902F, 0x0031A0A2, 0x0031C02F, 0x0031E4A2, 0x0032202F, 0x003248A2,

10024

0x0032802F, 0x0032B1A2, 0x0032C02F, 0x0032CCA2, 0x0032FF2F, 0x003300A2, 0x0033582F,

10025

0x003371A2, 0x00337B2F, 0x003380A2, 0x0033E02F, 0x0033FFA2, 0x00A66F1B, 0x00A670A2,

10026

0x00A7002F, 0x00A708A2, 0x00A8301C, 0x00A83AA2, 0x00A8F10B, 0x00A8F2A2, 0x00A8F31C,

10027

0x00A8F4A2, 0x00A92E3B, 0x00A92FA2, 0x00A9CF10, 0x00A9D0A2, 0x00FD3E03, 0x00FD40A2,

10028

0x00FDF203, 0x00FDF3A2, 0x00FDFD03, 0x00FDFEA2, 0x00FE450D, 0x00FE47A2, 0x00FF610D,

10029

0x00FF66A2, 0x00FF7033, 0x00FF71A2, 0x00FF9E33, 0x00FFA0A2, 0x01010019, 0x0101021A,

10030

0x010103A2, 0x0101071A, 0x010134A2, 0x0101371A, 0x010140A2, 0x0102E003, 0x0102FCA2,

10031

0x010AF250, 0x010AF3A2, 0x0113012A, 0x011302A2, 0x0113032A, 0x011304A2, 0x01133B2A,

10032

0x01133DA2, 0x011FD02A, 0x011FD2A2, 0x011FD32A, 0x011FD4A2, 0x01BCA020, 0x01BCA4A2,

10033

0x01D3602F, 0x01D372A2, 0x01F2502F, 0x01F252A2, 0xFFFFFFFF};

10036  struct

script_data<2> {

10037  static

constexpr

const

compact_range scripts_data = {

10038

0x000000A2, 0x0004836C, 0x00048426, 0x00048545, 0x00048726, 0x000488A2, 0x00060C61,

10039

0x00060DA2, 0x00061B61, 0x00061C85, 0x00061DA2, 0x00061F03, 0x000620A2, 0x00064003,

10040

0x000641A2, 0x00064B85, 0x000656A2, 0x00066090, 0x00066AA2, 0x00067085, 0x000671A2,

10041

0x0006D474, 0x0006D5A2, 0x0009511C, 0x000953A2, 0x0009641C, 0x0009661E, 0x000970A2,

10042

0x0009E612, 0x0009F0A2, 0x000A665B, 0x000A70A2, 0x000AE63F, 0x000AF0A2, 0x000BE68A,

10043

0x000BF4A2, 0x000CE65D, 0x000CF0A2, 0x0010405C, 0x00104AA2, 0x0010FB45, 0x0010FCA2,

10044

0x00173530, 0x001737A2, 0x0018026D, 0x001804A2, 0x0018056D, 0x001806A2, 0x001CD01C,

10045

0x001CD1A2, 0x001CD21C, 0x001CD32A, 0x001CD4A2, 0x001CD51C, 0x001CD77B, 0x001CD81C,

10046

0x001CD97B, 0x001CDA41, 0x001CDBA2, 0x001CDC7B, 0x001CDEA2, 0x001CE07B, 0x001CE11C,

10047

0x001CE2A2, 0x001CE95D, 0x001CEA1C, 0x001CEBA2, 0x001CED1C, 0x001CEEA2, 0x001CF21C,

10048

0x001CF32A, 0x001CF51C, 0x001CF7A2, 0x001CF82A, 0x001CFAA2, 0x001DF885, 0x001DF9A2,

10049

0x00202F58, 0x002030A2, 0x0020F02A, 0x0020F1A2, 0x002E4326, 0x002E44A2, 0x0030012E,

10050

0x003004A2, 0x0030082E, 0x003012A2, 0x0030132E, 0x003020A2, 0x00302A2F, 0x00302EA2,

10051

0x0030302E, 0x0030313C, 0x003036A2, 0x0030372E, 0x003038A2, 0x00303C33, 0x00303EA2,

10052

0x0030993C, 0x00309DA2, 0x0030A03C, 0x0030A1A2, 0x0030FB2E, 0x0030FC3C, 0x0030FDA2,

10053

0x00A66F26, 0x00A670A2, 0x00A70045, 0x00A708A2, 0x00A8301E, 0x00A83AA2, 0x00A8F11C,

10054

0x00A8F2A2, 0x00A8F38A, 0x00A8F4A2, 0x00A92E45, 0x00A92FA2, 0x00A9CF3A, 0x00A9D0A2,

10055

0x00FD3E61, 0x00FD40A2, 0x00FDF290, 0x00FDF3A2, 0x00FDFD90, 0x00FDFEA2, 0x00FE452E,

10056

0x00FE47A2, 0x00FF612E, 0x00FF66A2, 0x00FF703C, 0x00FF71A2, 0x00FF9E3C, 0x00FFA0A2,

10057

0x0101001A, 0x01010249, 0x010103A2, 0x01010748, 0x010134A2, 0x01013749, 0x010140A2,

10058

0x0102E018, 0x0102FCA2, 0x010AF269, 0x010AF3A2, 0x0113018A, 0x011302A2, 0x0113038A,

10059

0x011304A2, 0x01133B8A, 0x01133DA2, 0x011FD08A, 0x011FD2A2, 0x011FD38A, 0x011FD4A2,

10063  struct

script_data<3> {

10064  static

constexpr

const

compact_range scripts_data = {

10065

0x000000A2, 0x00060C74, 0x00060DA2, 0x00061B74, 0x00061C90, 0x00061DA2, 0x00061F61,

10066

0x000620A2, 0x0006404F, 0x000641A2, 0x0006609D, 0x00066AA2, 0x0009512A, 0x000953A2,

10067

0x0009641E, 0x00096642, 0x000970A2, 0x0009E684, 0x0009F0A2, 0x00104088, 0x00104AA2,

10068

0x00173586, 0x001737A2, 0x001CD02A, 0x001CD1A2, 0x001CD22A, 0x001CD3A2, 0x001CDA56,

10069

0x001CDBA2, 0x001CF22A, 0x001CF3A2, 0x001CF441, 0x001CF5A2, 0x0020F045, 0x0020F1A2,

10070

0x0030012F, 0x003004A2, 0x0030082F, 0x003012A2, 0x0030132F, 0x003020A2, 0x0030302F,

10071

0x003031A2, 0x0030372F, 0x003038A2, 0x00303C3C, 0x00303EA2, 0x0030FB2F, 0x0030FCA2,

10072

0x00A8302C, 0x00A83AA2, 0x00A92E5C, 0x00A92FA2, 0x00FE452F, 0x00FE47A2, 0x00FF612F,

10073

0x00FF66A2, 0x01010049, 0x010102A2, 0x01010749, 0x010134A2, 0xFFFFFFFF};

10076  struct

script_data<4> {

10077  static

constexpr

const

compact_range scripts_data = {

10078

0x000000A2, 0x00060C85, 0x00060DA2, 0x00061B85, 0x00061CA2, 0x00061F74, 0x000620A2,

10079

0x00064050, 0x000641A2, 0x0009512C, 0x000953A2, 0x00096427, 0x0009664D, 0x000970A2,

10080

0x0017358F, 0x001737A2, 0x001CD041, 0x001CD1A2, 0x001CD241, 0x001CD3A2, 0x001CDA66,

10081

0x001CDBA2, 0x001CF241, 0x001CF3A2, 0x00300133, 0x003004A2, 0x00300833, 0x003012A2,

10082

0x00301333, 0x003020A2, 0x00303033, 0x003031A2, 0x00303733, 0x003038A2, 0x0030FB33,

10083

0x0030FCA2, 0x00A8302D, 0x00A83AA2, 0x00FE4533, 0x00FE47A2, 0x00FF6133, 0x00FF66A2,

10087  struct

script_data<5> {

10088  static

constexpr

const

compact_range scripts_data = {

10089

0x000000A2, 0x00060C90, 0x00060DA2, 0x00061B90, 0x00061CA2, 0x00061F85,

10090

0x000620A2, 0x00064069, 0x000641A2, 0x0009512D, 0x000953A2, 0x00096428,

10091

0x000966A2, 0x001CDA8A, 0x001CDBA2, 0x001CF25D, 0x001CF3A2, 0x0030013C,

10092

0x003004A2, 0x0030083C, 0x003012A2, 0x0030133C, 0x003020A2, 0x0030303C,

10093

0x003031A2, 0x0030373C, 0x003038A2, 0x0030FB3C, 0x0030FCA2, 0x00A8303F,

10094

0x00A83AA2, 0x00FE453C, 0x00FE47A2, 0x00FF613C, 0x00FF66A2, 0xFFFFFFFF};

10097  struct

script_data<6> {

10098  static

constexpr

const

compact_range scripts_data = {

10099

0x000000A2, 0x00060C9D, 0x00060DA2, 0x00061B9D, 0x00061CA2, 0x00061F90, 0x000620A2,

10100

0x0006406F, 0x000641A2, 0x00095141, 0x000953A2, 0x0009642A, 0x000966A2, 0x001CDA8D,

10101

0x001CDBA2, 0x001CF266, 0x001CF3A2, 0x0030019E, 0x003003A2, 0x0030089E, 0x003012A2,

10102

0x0030149E, 0x00301CA2, 0x0030FB9E, 0x0030FCA2, 0x00A83041, 0x00A83642, 0x00A83AA2,

10103

0x00FF619E, 0x00FF66A2, 0xFFFFFFFF};

10106  struct

script_data<7> {

10107  static

constexpr

const

compact_range scripts_data = {

10108

0x000000A2, 0x00061F9D, 0x000620A2, 0x00064074, 0x000641A2,

10109

0x00095145, 0x000953A2, 0x0009642C, 0x000966A2, 0x001CF28D,

10110

0x001CF3A2, 0x00A83042, 0x00A8364D, 0x00A83AA2, 0xFFFFFFFF};

10113  struct

script_data<8> {

10114  static

constexpr

const

compact_range scripts_data = {

10115

0x000000A2, 0x0006407F, 0x000641A2, 0x00095156, 0x000953A2, 0x0009642D, 0x000966A2,

10116

0x001CF293, 0x001CF3A2, 0x00A8304D, 0x00A83657, 0x00A83AA2, 0xFFFFFFFF};

10119  struct

script_data<9> {

10120  static

constexpr

const

compact_range scripts_data = {

10121

0x000000A2, 0x00064085, 0x000641A2, 0x00095166, 0x000953A2, 0x00096441,

10122

0x000966A2, 0x00A83056, 0x00A83357, 0x00A8367D, 0x00A83AA2, 0xFFFFFFFF};

10125  struct

script_data<10> {

10126  static

constexpr

const

compact_range scripts_data = {

10127

0x000000A2, 0x0009517B, 0x0009528A, 0x000953A2, 0x0009644D, 0x00096547,

10128

0x000966A2, 0x00A83057, 0x00A8335D, 0x00A83687, 0x00A83AA2, 0xFFFFFFFF};

10131  struct

script_data<11> {

10132  static

constexpr

const

compact_range scripts_data = {

10133

0x000000A2, 0x0009518A, 0x0009528D, 0x000953A2, 0x00096456, 0x0009654D,

10134

0x000966A2, 0x00A8305D, 0x00A8337D, 0x00A83693, 0x00A83AA2, 0xFFFFFFFF};

10137  struct

script_data<12> {

10138  static

constexpr

const

compact_range scripts_data = {

10139

0x000000A2, 0x0009518D, 0x00095293, 0x000953A2, 0x0009645D, 0x00096556,

10140

0x000966A2, 0x00A8307D, 0x00A83387, 0x00A836A2, 0xFFFFFFFF};

10143  struct

script_data<13> {

10144  static

constexpr

const

compact_range scripts_data = {

10145

0x000000A2, 0x00095193, 0x000952A2, 0x00096466, 0x0009655D,

10146

0x000966A2, 0x00A83087, 0x00A83393, 0x00A836A2, 0xFFFFFFFF};

10149  struct

script_data<14> {

10150  static

constexpr

const

compact_range scripts_data = {

10151

0x000000A2, 0x0009647D, 0x00096566, 0x000966A2, 0x00A83093, 0x00A833A2, 0xFFFFFFFF};

10154  struct

script_data<15> {

10155  static

constexpr

const

compact_range scripts_data = {0x000000A2, 0x0009647E, 0x0009657D,

10156

0x000966A2, 0xFFFFFFFF};

10159  struct

script_data<16> {

10160  static

constexpr

const

compact_range scripts_data = {0x000000A2, 0x00096484, 0x0009657E,

10161

0x000966A2, 0xFFFFFFFF};

10164  struct

script_data<17> {

10165  static

constexpr

const

compact_range scripts_data = {0x000000A2, 0x00096487, 0x00096584,

10166

0x000966A2, 0xFFFFFFFF};

10169  struct

script_data<18> {

10170  static

constexpr

const

compact_range scripts_data = {0x000000A2, 0x0009648A, 0x00096587,

10171

0x000966A2, 0xFFFFFFFF};

10174  struct

script_data<19> {

10175  static

constexpr

const

compact_range scripts_data = {0x000000A2, 0x0009648D, 0x0009658A,

10176

0x000966A2, 0xFFFFFFFF};

10179  struct

script_data<20> {

10180  static

constexpr

const

compact_range scripts_data = {0x000000A2, 0x00096493, 0x0009658D,

10181

0x000966A2, 0xFFFFFFFF};

10184  struct

script_data<21> {

10185  static

constexpr

const

compact_range scripts_data = {0x000000A2, 0x00096593, 0x000966A2,

10189

constexpr script cp_script(char32_t cp) {

10191  return

script::unknown;

10193

uni::script sc =

static_cast<

uni::script

>

(

10194

script_data<N>::scripts_data.value(cp,

uint8_t

(script::unknown)));

10197

constexpr script get_cp_script(char32_t cp,

int

idx) {

10199  case

0:

return

cp_script<0>(cp);

10200  case

1:

return

cp_script<1>(cp);

10201  case

2:

return

cp_script<2>(cp);

10202  case

3:

return

cp_script<3>(cp);

10203  case

4:

return

cp_script<4>(cp);

10204  case

5:

return

cp_script<5>(cp);

10205  case

6:

return

cp_script<6>(cp);

10206  case

7:

return

cp_script<7>(cp);

10207  case

8:

return

cp_script<8>(cp);

10208  case

9:

return

cp_script<9>(cp);

10209  case

10:

return

cp_script<10>(cp);

10210  case

11:

return

cp_script<11>(cp);

10211  case

12:

return

cp_script<12>(cp);

10212  case

13:

return

cp_script<13>(cp);

10213  case

14:

return

cp_script<14>(cp);

10214  case

15:

return

cp_script<15>(cp);

10215  case

16:

return

cp_script<16>(cp);

10216  case

17:

return

cp_script<17>(cp);

10217  case

18:

return

cp_script<18>(cp);

10218  case

19:

return

cp_script<19>(cp);

10219  case

20:

return

cp_script<20>(cp);

10220  case

21:

return

cp_script<21>(cp);

10222  return

script::zzzz;

10224  static

constexpr compact_list numeric_data8 = {

10225

0x00003000, 0x00003101, 0x00003202, 0x00003303, 0x00003404, 0x00003505, 0x00003606,

10226

0x00003707, 0x00003808, 0x00003909, 0x0000B202, 0x0000B303, 0x0000B901, 0x0000BC01,

10227

0x0000BD01, 0x0000BE03, 0x00066000, 0x00066101, 0x00066202, 0x00066303, 0x00066404,

10228

0x00066505, 0x00066606, 0x00066707, 0x00066808, 0x00066909, 0x0006F000, 0x0006F101,

10229

0x0006F202, 0x0006F303, 0x0006F404, 0x0006F505, 0x0006F606, 0x0006F707, 0x0006F808,

10230

0x0006F909, 0x0007C000, 0x0007C101, 0x0007C202, 0x0007C303, 0x0007C404, 0x0007C505,

10231

0x0007C606, 0x0007C707, 0x0007C808, 0x0007C909, 0x00096600, 0x00096701, 0x00096802,

10232

0x00096903, 0x00096A04, 0x00096B05, 0x00096C06, 0x00096D07, 0x00096E08, 0x00096F09,

10233

0x0009E600, 0x0009E701, 0x0009E802, 0x0009E903, 0x0009EA04, 0x0009EB05, 0x0009EC06,

10234

0x0009ED07, 0x0009EE08, 0x0009EF09, 0x0009F401, 0x0009F501, 0x0009F603, 0x0009F701,

10235

0x0009F803, 0x0009F910, 0x000A6600, 0x000A6701, 0x000A6802, 0x000A6903, 0x000A6A04,

10236

0x000A6B05, 0x000A6C06, 0x000A6D07, 0x000A6E08, 0x000A6F09, 0x000AE600, 0x000AE701,

10237

0x000AE802, 0x000AE903, 0x000AEA04, 0x000AEB05, 0x000AEC06, 0x000AED07, 0x000AEE08,

10238

0x000AEF09, 0x000B6600, 0x000B6701, 0x000B6802, 0x000B6903, 0x000B6A04, 0x000B6B05,

10239

0x000B6C06, 0x000B6D07, 0x000B6E08, 0x000B6F09, 0x000B7201, 0x000B7301, 0x000B7403,

10240

0x000B7501, 0x000B7601, 0x000B7703, 0x000BE600, 0x000BE701, 0x000BE802, 0x000BE903,

10241

0x000BEA04, 0x000BEB05, 0x000BEC06, 0x000BED07, 0x000BEE08, 0x000BEF09, 0x000BF00A,

10242

0x000BF164, 0x000C6600, 0x000C6701, 0x000C6802, 0x000C6903, 0x000C6A04, 0x000C6B05,

10243

0x000C6C06, 0x000C6D07, 0x000C6E08, 0x000C6F09, 0x000C7800, 0x000C7901, 0x000C7A02,

10244

0x000C7B03, 0x000C7C01, 0x000C7D02, 0x000C7E03, 0x000CE600, 0x000CE701, 0x000CE802,

10245

0x000CE903, 0x000CEA04, 0x000CEB05, 0x000CEC06, 0x000CED07, 0x000CEE08, 0x000CEF09,

10246

0x000D5801, 0x000D5901, 0x000D5A03, 0x000D5B01, 0x000D5C01, 0x000D5D03, 0x000D5E01,

10247

0x000D6600, 0x000D6701, 0x000D6802, 0x000D6903, 0x000D6A04, 0x000D6B05, 0x000D6C06,

10248

0x000D6D07, 0x000D6E08, 0x000D6F09, 0x000D700A, 0x000D7164, 0x000D7301, 0x000D7401,

10249

0x000D7503, 0x000D7601, 0x000D7701, 0x000D7803, 0x000DE600, 0x000DE701, 0x000DE802,

10250

0x000DE903, 0x000DEA04, 0x000DEB05, 0x000DEC06, 0x000DED07, 0x000DEE08, 0x000DEF09,

10251

0x000E5000, 0x000E5101, 0x000E5202, 0x000E5303, 0x000E5404, 0x000E5505, 0x000E5606,

10252

0x000E5707, 0x000E5808, 0x000E5909, 0x000ED000, 0x000ED101, 0x000ED202, 0x000ED303,

10253

0x000ED404, 0x000ED505, 0x000ED606, 0x000ED707, 0x000ED808, 0x000ED909, 0x000F2000,

10254

0x000F2101, 0x000F2202, 0x000F2303, 0x000F2404, 0x000F2505, 0x000F2606, 0x000F2707,

10255

0x000F2808, 0x000F2909, 0x000F2A01, 0x000F2B03, 0x000F2C05, 0x000F2D07, 0x000F2E09,

10256

0x000F2F0B, 0x000F300D, 0x000F310F, 0x000F3211, 0x00104000, 0x00104101, 0x00104202,

10257

0x00104303, 0x00104404, 0x00104505, 0x00104606, 0x00104707, 0x00104808, 0x00104909,

10258

0x00109000, 0x00109101, 0x00109202, 0x00109303, 0x00109404, 0x00109505, 0x00109606,

10259

0x00109707, 0x00109808, 0x00109909, 0x00136901, 0x00136A02, 0x00136B03, 0x00136C04,

10260

0x00136D05, 0x00136E06, 0x00136F07, 0x00137008, 0x00137109, 0x0013720A, 0x00137314,

10261

0x0013741E, 0x00137528, 0x00137632, 0x0013773C, 0x00137846, 0x00137950, 0x00137A5A,

10262

0x00137B64, 0x0016EE11, 0x0016EF12, 0x0016F013, 0x0017E000, 0x0017E101, 0x0017E202,

10263

0x0017E303, 0x0017E404, 0x0017E505, 0x0017E606, 0x0017E707, 0x0017E808, 0x0017E909,

10264

0x0017F000, 0x0017F101, 0x0017F202, 0x0017F303, 0x0017F404, 0x0017F505, 0x0017F606,

10265

0x0017F707, 0x0017F808, 0x0017F909, 0x00181000, 0x00181101, 0x00181202, 0x00181303,

10266

0x00181404, 0x00181505, 0x00181606, 0x00181707, 0x00181808, 0x00181909, 0x00194600,

10267

0x00194701, 0x00194802, 0x00194903, 0x00194A04, 0x00194B05, 0x00194C06, 0x00194D07,

10268

0x00194E08, 0x00194F09, 0x0019D000, 0x0019D101, 0x0019D202, 0x0019D303, 0x0019D404,

10269

0x0019D505, 0x0019D606, 0x0019D707, 0x0019D808, 0x0019D909, 0x0019DA01, 0x001A8000,

10270

0x001A8101, 0x001A8202, 0x001A8303, 0x001A8404, 0x001A8505, 0x001A8606, 0x001A8707,

10271

0x001A8808, 0x001A8909, 0x001A9000, 0x001A9101, 0x001A9202, 0x001A9303, 0x001A9404,

10272

0x001A9505, 0x001A9606, 0x001A9707, 0x001A9808, 0x001A9909, 0x001B5000, 0x001B5101,

10273

0x001B5202, 0x001B5303, 0x001B5404, 0x001B5505, 0x001B5606, 0x001B5707, 0x001B5808,

10274

0x001B5909, 0x001BB000, 0x001BB101, 0x001BB202, 0x001BB303, 0x001BB404, 0x001BB505,

10275

0x001BB606, 0x001BB707, 0x001BB808, 0x001BB909, 0x001C4000, 0x001C4101, 0x001C4202,

10276

0x001C4303, 0x001C4404, 0x001C4505, 0x001C4606, 0x001C4707, 0x001C4808, 0x001C4909,

10277

0x001C5000, 0x001C5101, 0x001C5202, 0x001C5303, 0x001C5404, 0x001C5505, 0x001C5606,

10278

0x001C5707, 0x001C5808, 0x001C5909, 0x00207000, 0x00207404, 0x00207505, 0x00207606,

10279

0x00207707, 0x00207808, 0x00207909, 0x00208000, 0x00208101, 0x00208202, 0x00208303,

10280

0x00208404, 0x00208505, 0x00208606, 0x00208707, 0x00208808, 0x00208909, 0x00215001,

10281

0x00215101, 0x00215201, 0x00215301, 0x00215402, 0x00215501, 0x00215602, 0x00215703,

10282

0x00215804, 0x00215901, 0x00215A05, 0x00215B01, 0x00215C03, 0x00215D05, 0x00215E07,

10283

0x00215F01, 0x00216001, 0x00216102, 0x00216203, 0x00216304, 0x00216405, 0x00216506,

10284

0x00216607, 0x00216708, 0x00216809, 0x0021690A, 0x00216A0B, 0x00216B0C, 0x00216C32,

10285

0x00216D64, 0x00217001, 0x00217102, 0x00217203, 0x00217304, 0x00217405, 0x00217506,

10286

0x00217607, 0x00217708, 0x00217809, 0x0021790A, 0x00217A0B, 0x00217B0C, 0x00217C32,

10287

0x00217D64, 0x00218506, 0x00218632, 0x00218900, 0x00246001, 0x00246102, 0x00246203,

10288

0x00246304, 0x00246405, 0x00246506, 0x00246607, 0x00246708, 0x00246809, 0x0024690A,

10289

0x00246A0B, 0x00246B0C, 0x00246C0D, 0x00246D0E, 0x00246E0F, 0x00246F10, 0x00247011,

10290

0x00247112, 0x00247213, 0x00247314, 0x00247401, 0x00247502, 0x00247603, 0x00247704,

10291

0x00247805, 0x00247906, 0x00247A07, 0x00247B08, 0x00247C09, 0x00247D0A, 0x00247E0B,

10292

0x00247F0C, 0x0024800D, 0x0024810E, 0x0024820F, 0x00248310, 0x00248411, 0x00248512,

10293

0x00248613, 0x00248714, 0x00248801, 0x00248902, 0x00248A03, 0x00248B04, 0x00248C05,

10294

0x00248D06, 0x00248E07, 0x00248F08, 0x00249009, 0x0024910A, 0x0024920B, 0x0024930C,

10295

0x0024940D, 0x0024950E, 0x0024960F, 0x00249710, 0x00249811, 0x00249912, 0x00249A13,

10296

0x00249B14, 0x0024EA00, 0x0024EB0B, 0x0024EC0C, 0x0024ED0D, 0x0024EE0E, 0x0024EF0F,

10297

0x0024F010, 0x0024F111, 0x0024F212, 0x0024F313, 0x0024F414, 0x0024F501, 0x0024F602,

10298

0x0024F703, 0x0024F804, 0x0024F905, 0x0024FA06, 0x0024FB07, 0x0024FC08, 0x0024FD09,

10299

0x0024FE0A, 0x0024FF00, 0x00277601, 0x00277702, 0x00277803, 0x00277904, 0x00277A05,

10300

0x00277B06, 0x00277C07, 0x00277D08, 0x00277E09, 0x00277F0A, 0x00278001, 0x00278102,

10301

0x00278203, 0x00278304, 0x00278405, 0x00278506, 0x00278607, 0x00278708, 0x00278809,

10302

0x0027890A, 0x00278A01, 0x00278B02, 0x00278C03, 0x00278D04, 0x00278E05, 0x00278F06,

10303

0x00279007, 0x00279108, 0x00279209, 0x0027930A, 0x002CFD01, 0x00300700, 0x00302101,

10304

0x00302202, 0x00302303, 0x00302404, 0x00302505, 0x00302606, 0x00302707, 0x00302808,

10305

0x00302909, 0x0030380A, 0x00303914, 0x00303A1E, 0x00319201, 0x00319302, 0x00319403,

10306

0x00319504, 0x00322001, 0x00322102, 0x00322203, 0x00322304, 0x00322405, 0x00322506,

10307

0x00322607, 0x00322708, 0x00322809, 0x0032290A, 0x0032480A, 0x00324914, 0x00324A1E,

10308

0x00324B28, 0x00324C32, 0x00324D3C, 0x00324E46, 0x00324F50, 0x00325115, 0x00325216,

10309

0x00325317, 0x00325418, 0x00325519, 0x0032561A, 0x0032571B, 0x0032581C, 0x0032591D,

10310

0x00325A1E, 0x00325B1F, 0x00325C20, 0x00325D21, 0x00325E22, 0x00325F23, 0x00328001,

10311

0x00328102, 0x00328203, 0x00328304, 0x00328405, 0x00328506, 0x00328607, 0x00328708,

10312

0x00328809, 0x0032890A, 0x0032B124, 0x0032B225, 0x0032B326, 0x0032B427, 0x0032B528,

10313

0x0032B629, 0x0032B72A, 0x0032B82B, 0x0032B92C, 0x0032BA2D, 0x0032BB2E, 0x0032BC2F,

10314

0x0032BD30, 0x0032BE31, 0x0032BF32, 0x00340505, 0x00348302, 0x00382A05, 0x003B4D07,

10315

0x004E0001, 0x004E0307, 0x004E0903, 0x004E5D09, 0x004E8C02, 0x004E9405, 0x004E9604,

10316

0x004EC00A, 0x004EE803, 0x004F0D05, 0x004F7064, 0x00516902, 0x00516B08, 0x00516D06,

10317

0x0053410A, 0x00534414, 0x0053451E, 0x00534C28, 0x0053C103, 0x0053C203, 0x0053C303,

10318

0x0053C403, 0x0056DB04, 0x0058F101, 0x0058F901, 0x005E7A01, 0x005EFE09, 0x005EFF14,

10319

0x005F0C01, 0x005F0D02, 0x005F0E03, 0x005F1002, 0x0062FE0A, 0x00634C08, 0x0067D207,

10320

0x006F0607, 0x00739609, 0x00767E64, 0x00808604, 0x008CAE02, 0x008CB302, 0x008D3002,

10321

0x00964606, 0x00964C64, 0x00967806, 0x0096F600, 0x00A62000, 0x00A62101, 0x00A62202,

10322

0x00A62303, 0x00A62404, 0x00A62505, 0x00A62606, 0x00A62707, 0x00A62808, 0x00A62909,

10323

0x00A6E601, 0x00A6E702, 0x00A6E803, 0x00A6E904, 0x00A6EA05, 0x00A6EB06, 0x00A6EC07,

10324

0x00A6ED08, 0x00A6EE09, 0x00A6EF00, 0x00A83001, 0x00A83101, 0x00A83203, 0x00A83301,

10325

0x00A83401, 0x00A83503, 0x00A8D000, 0x00A8D101, 0x00A8D202, 0x00A8D303, 0x00A8D404,

10326

0x00A8D505, 0x00A8D606, 0x00A8D707, 0x00A8D808, 0x00A8D909, 0x00A90000, 0x00A90101,

10327

0x00A90202, 0x00A90303, 0x00A90404, 0x00A90505, 0x00A90606, 0x00A90707, 0x00A90808,

10328

0x00A90909, 0x00A9D000, 0x00A9D101, 0x00A9D202, 0x00A9D303, 0x00A9D404, 0x00A9D505,

10329

0x00A9D606, 0x00A9D707, 0x00A9D808, 0x00A9D909, 0x00A9F000, 0x00A9F101, 0x00A9F202,

10330

0x00A9F303, 0x00A9F404, 0x00A9F505, 0x00A9F606, 0x00A9F707, 0x00A9F808, 0x00A9F909,

10331

0x00AA5000, 0x00AA5101, 0x00AA5202, 0x00AA5303, 0x00AA5404, 0x00AA5505, 0x00AA5606,

10332

0x00AA5707, 0x00AA5808, 0x00AA5909, 0x00ABF000, 0x00ABF101, 0x00ABF202, 0x00ABF303,

10333

0x00ABF404, 0x00ABF505, 0x00ABF606, 0x00ABF707, 0x00ABF808, 0x00ABF909, 0x00F96B03,

10334

0x00F9730A, 0x00F97802, 0x00F9B200, 0x00F9D106, 0x00F9D306, 0x00F9FD0A, 0x00FF1000,

10335

0x00FF1101, 0x00FF1202, 0x00FF1303, 0x00FF1404, 0x00FF1505, 0x00FF1606, 0x00FF1707,

10336

0x00FF1808, 0x00FF1909, 0x01010701, 0x01010802, 0x01010903, 0x01010A04, 0x01010B05,

10337

0x01010C06, 0x01010D07, 0x01010E08, 0x01010F09, 0x0101100A, 0x01011114, 0x0101121E,

10338

0x01011328, 0x01011432, 0x0101153C, 0x01011646, 0x01011750, 0x0101185A, 0x01011964,

10339

0x01014001, 0x01014101, 0x01014201, 0x01014305, 0x01014432, 0x01014805, 0x0101490A,

10340

0x01014A32, 0x01014B64, 0x01014F05, 0x0101500A, 0x01015132, 0x01015264, 0x0101570A,

10341

0x01015801, 0x01015901, 0x01015A01, 0x01015B02, 0x01015C02, 0x01015D02, 0x01015E02,

10342

0x01015F05, 0x0101600A, 0x0101610A, 0x0101620A, 0x0101630A, 0x0101640A, 0x0101651E,

10343

0x01016632, 0x01016732, 0x01016832, 0x01016932, 0x01016A64, 0x01017305, 0x01017432,

10344

0x01017501, 0x01017601, 0x01017702, 0x01017803, 0x01018A00, 0x01018B01, 0x0102E101,

10345

0x0102E202, 0x0102E303, 0x0102E404, 0x0102E505, 0x0102E606, 0x0102E707, 0x0102E808,

10346

0x0102E909, 0x0102EA0A, 0x0102EB14, 0x0102EC1E, 0x0102ED28, 0x0102EE32, 0x0102EF3C,

10347

0x0102F046, 0x0102F150, 0x0102F25A, 0x0102F364, 0x01032001, 0x01032105, 0x0103220A,

10348

0x01032332, 0x0103415A, 0x0103D101, 0x0103D202, 0x0103D30A, 0x0103D414, 0x0103D564,

10349

0x0104A000, 0x0104A101, 0x0104A202, 0x0104A303, 0x0104A404, 0x0104A505, 0x0104A606,

10350

0x0104A707, 0x0104A808, 0x0104A909, 0x01085801, 0x01085902, 0x01085A03, 0x01085B0A,

10351

0x01085C14, 0x01085D64, 0x01087901, 0x01087A02, 0x01087B03, 0x01087C04, 0x01087D05,

10352

0x01087E0A, 0x01087F14, 0x0108A701, 0x0108A802, 0x0108A903, 0x0108AA04, 0x0108AB04,

10353

0x0108AC05, 0x0108AD0A, 0x0108AE14, 0x0108AF64, 0x0108FB01, 0x0108FC05, 0x0108FD0A,

10354

0x0108FE14, 0x0108FF64, 0x01091601, 0x0109170A, 0x01091814, 0x01091964, 0x01091A02,

10355

0x01091B03, 0x0109BC0B, 0x0109BD01, 0x0109C001, 0x0109C102, 0x0109C203, 0x0109C304,

10356

0x0109C405, 0x0109C506, 0x0109C607, 0x0109C708, 0x0109C809, 0x0109C90A, 0x0109CA14,

10357

0x0109CB1E, 0x0109CC28, 0x0109CD32, 0x0109CE3C, 0x0109CF46, 0x0109D264, 0x0109F601,

10358

0x0109F702, 0x0109F803, 0x0109F904, 0x0109FA05, 0x0109FB06, 0x0109FC07, 0x0109FD08,

10359

0x0109FE09, 0x0109FF0A, 0x010A4001, 0x010A4102, 0x010A4203, 0x010A4304, 0x010A440A,

10360

0x010A4514, 0x010A4664, 0x010A4801, 0x010A7D01, 0x010A7E32, 0x010A9D01, 0x010A9E0A,

10361

0x010A9F14, 0x010AEB01, 0x010AEC05, 0x010AED0A, 0x010AEE14, 0x010AEF64, 0x010B5801,

10362

0x010B5902, 0x010B5A03, 0x010B5B04, 0x010B5C0A, 0x010B5D14, 0x010B5E64, 0x010B7801,

10363

0x010B7902, 0x010B7A03, 0x010B7B04, 0x010B7C0A, 0x010B7D14, 0x010B7E64, 0x010BA901,

10364

0x010BAA02, 0x010BAB03, 0x010BAC04, 0x010BAD0A, 0x010BAE14, 0x010BAF64, 0x010CFA01,

10365

0x010CFB05, 0x010CFC0A, 0x010CFD32, 0x010CFE64, 0x010D3000, 0x010D3101, 0x010D3202,

10366

0x010D3303, 0x010D3404, 0x010D3505, 0x010D3606, 0x010D3707, 0x010D3808, 0x010D3909,

10367

0x010E6001, 0x010E6102, 0x010E6203, 0x010E6304, 0x010E6405, 0x010E6506, 0x010E6607,

10368

0x010E6708, 0x010E6809, 0x010E690A, 0x010E6A14, 0x010E6B1E, 0x010E6C28, 0x010E6D32,

10369

0x010E6E3C, 0x010E6F46, 0x010E7050, 0x010E715A, 0x010E7264, 0x010E7B01, 0x010E7C01,

10370

0x010E7D01, 0x010E7E02, 0x010F1D01, 0x010F1E02, 0x010F1F03, 0x010F2004, 0x010F2105,

10371

0x010F220A, 0x010F2314, 0x010F241E, 0x010F2564, 0x010F2601, 0x010F5101, 0x010F520A,

10372

0x010F5314, 0x010F5464, 0x010FC501, 0x010FC602, 0x010FC703, 0x010FC804, 0x010FC90A,

10373

0x010FCA14, 0x010FCB64, 0x01105201, 0x01105302, 0x01105403, 0x01105504, 0x01105605,

10374

0x01105706, 0x01105807, 0x01105908, 0x01105A09, 0x01105B0A, 0x01105C14, 0x01105D1E,

10375

0x01105E28, 0x01105F32, 0x0110603C, 0x01106146, 0x01106250, 0x0110635A, 0x01106464,

10376

0x01106600, 0x01106701, 0x01106802, 0x01106903, 0x01106A04, 0x01106B05, 0x01106C06,

10377

0x01106D07, 0x01106E08, 0x01106F09, 0x0110F000, 0x0110F101, 0x0110F202, 0x0110F303,

10378

0x0110F404, 0x0110F505, 0x0110F606, 0x0110F707, 0x0110F808, 0x0110F909, 0x01113600,

10379

0x01113701, 0x01113802, 0x01113903, 0x01113A04, 0x01113B05, 0x01113C06, 0x01113D07,

10380

0x01113E08, 0x01113F09, 0x0111D000, 0x0111D101, 0x0111D202, 0x0111D303, 0x0111D404,

10381

0x0111D505, 0x0111D606, 0x0111D707, 0x0111D808, 0x0111D909, 0x0111E101, 0x0111E202,

10382

0x0111E303, 0x0111E404, 0x0111E505, 0x0111E606, 0x0111E707, 0x0111E808, 0x0111E909,

10383

0x0111EA0A, 0x0111EB14, 0x0111EC1E, 0x0111ED28, 0x0111EE32, 0x0111EF3C, 0x0111F046,

10384

0x0111F150, 0x0111F25A, 0x0111F364, 0x0112F000, 0x0112F101, 0x0112F202, 0x0112F303,

10385

0x0112F404, 0x0112F505, 0x0112F606, 0x0112F707, 0x0112F808, 0x0112F909, 0x01145000,

10386

0x01145101, 0x01145202, 0x01145303, 0x01145404, 0x01145505, 0x01145606, 0x01145707,

10387

0x01145808, 0x01145909, 0x0114D000, 0x0114D101, 0x0114D202, 0x0114D303, 0x0114D404,

10388

0x0114D505, 0x0114D606, 0x0114D707, 0x0114D808, 0x0114D909, 0x01165000, 0x01165101,

10389

0x01165202, 0x01165303, 0x01165404, 0x01165505, 0x01165606, 0x01165707, 0x01165808,

10390

0x01165909, 0x0116C000, 0x0116C101, 0x0116C202, 0x0116C303, 0x0116C404, 0x0116C505,

10391

0x0116C606, 0x0116C707, 0x0116C808, 0x0116C909, 0x01173000, 0x01173101, 0x01173202,

10392

0x01173303, 0x01173404, 0x01173505, 0x01173606, 0x01173707, 0x01173808, 0x01173909,

10393

0x01173A0A, 0x01173B14, 0x0118E000, 0x0118E101, 0x0118E202, 0x0118E303, 0x0118E404,

10394

0x0118E505, 0x0118E606, 0x0118E707, 0x0118E808, 0x0118E909, 0x0118EA0A, 0x0118EB14,

10395

0x0118EC1E, 0x0118ED28, 0x0118EE32, 0x0118EF3C, 0x0118F046, 0x0118F150, 0x0118F25A,

10396

0x01195000, 0x01195101, 0x01195202, 0x01195303, 0x01195404, 0x01195505, 0x01195606,

10397

0x01195707, 0x01195808, 0x01195909, 0x011C5000, 0x011C5101, 0x011C5202, 0x011C5303,

10398

0x011C5404, 0x011C5505, 0x011C5606, 0x011C5707, 0x011C5808, 0x011C5909, 0x011C5A01,

10399

0x011C5B02, 0x011C5C03, 0x011C5D04, 0x011C5E05, 0x011C5F06, 0x011C6007, 0x011C6108,

10400

0x011C6209, 0x011C630A, 0x011C6414, 0x011C651E, 0x011C6628, 0x011C6732, 0x011C683C,

10401

0x011C6946, 0x011C6A50, 0x011C6B5A, 0x011C6C64, 0x011D5000, 0x011D5101, 0x011D5202,

10402

0x011D5303, 0x011D5404, 0x011D5505, 0x011D5606, 0x011D5707, 0x011D5808, 0x011D5909,

10403

0x011DA000, 0x011DA101, 0x011DA202, 0x011DA303, 0x011DA404, 0x011DA505, 0x011DA606,

10404

0x011DA707, 0x011DA808, 0x011DA909, 0x011FC001, 0x011FC101, 0x011FC201, 0x011FC301,

10405

0x011FC401, 0x011FC501, 0x011FC603, 0x011FC703, 0x011FC801, 0x011FC901, 0x011FCA01,

10406

0x011FCB01, 0x011FCC01, 0x011FCD03, 0x011FCE03, 0x011FCF01, 0x011FD001, 0x011FD101,

10407

0x011FD201, 0x011FD303, 0x011FD401, 0x01240002, 0x01240103, 0x01240204, 0x01240305,

10408

0x01240406, 0x01240507, 0x01240608, 0x01240709, 0x01240803, 0x01240904, 0x01240A05,

10409

0x01240B06, 0x01240C07, 0x01240D08, 0x01240E09, 0x01240F04, 0x01241005, 0x01241106,

10410

0x01241207, 0x01241308, 0x01241409, 0x01241501, 0x01241602, 0x01241703, 0x01241804,

10411

0x01241905, 0x01241A06, 0x01241B07, 0x01241C08, 0x01241D09, 0x01241E01, 0x01241F02,

10412

0x01242003, 0x01242104, 0x01242205, 0x01242302, 0x01242403, 0x01242503, 0x01242604,

10413

0x01242705, 0x01242806, 0x01242907, 0x01242A08, 0x01242B09, 0x01242C01, 0x01242D02,

10414

0x01242E03, 0x01242F03, 0x01243004, 0x01243105, 0x01243401, 0x01243502, 0x01243603,

10415

0x01243703, 0x01243804, 0x01243905, 0x01243A03, 0x01243B03, 0x01243C04, 0x01243D04,

10416

0x01243E04, 0x01243F04, 0x01244006, 0x01244107, 0x01244207, 0x01244307, 0x01244408,

10417

0x01244508, 0x01244609, 0x01244709, 0x01244809, 0x01244909, 0x01244A02, 0x01244B03,

10418

0x01244C04, 0x01244D05, 0x01244E06, 0x01244F01, 0x01245002, 0x01245103, 0x01245204,

10419

0x01245304, 0x01245405, 0x01245505, 0x01245602, 0x01245703, 0x01245801, 0x01245902,

10420

0x01245A01, 0x01245B02, 0x01245C05, 0x01245D01, 0x01245E02, 0x01245F01, 0x01246001,

10421

0x01246101, 0x01246201, 0x01246301, 0x01246401, 0x01246501, 0x01246602, 0x01246728,

10422

0x01246832, 0x01246904, 0x01246A05, 0x01246B06, 0x01246C07, 0x01246D08, 0x01246E09,

10423

0x016A6000, 0x016A6101, 0x016A6202, 0x016A6303, 0x016A6404, 0x016A6505, 0x016A6606,

10424

0x016A6707, 0x016A6808, 0x016A6909, 0x016AC000, 0x016AC101, 0x016AC202, 0x016AC303,

10425

0x016AC404, 0x016AC505, 0x016AC606, 0x016AC707, 0x016AC808, 0x016AC909, 0x016B5000,

10426

0x016B5101, 0x016B5202, 0x016B5303, 0x016B5404, 0x016B5505, 0x016B5606, 0x016B5707,

10427

0x016B5808, 0x016B5909, 0x016B5B0A, 0x016B5C64, 0x016E8000, 0x016E8101, 0x016E8202,

10428

0x016E8303, 0x016E8404, 0x016E8505, 0x016E8606, 0x016E8707, 0x016E8808, 0x016E8909,

10429

0x016E8A0A, 0x016E8B0B, 0x016E8C0C, 0x016E8D0D, 0x016E8E0E, 0x016E8F0F, 0x016E9010,

10430

0x016E9111, 0x016E9212, 0x016E9313, 0x016E9401, 0x016E9502, 0x016E9603, 0x01D2E000,

10431

0x01D2E101, 0x01D2E202, 0x01D2E303, 0x01D2E404, 0x01D2E505, 0x01D2E606, 0x01D2E707,

10432

0x01D2E808, 0x01D2E909, 0x01D2EA0A, 0x01D2EB0B, 0x01D2EC0C, 0x01D2ED0D, 0x01D2EE0E,

10433

0x01D2EF0F, 0x01D2F010, 0x01D2F111, 0x01D2F212, 0x01D2F313, 0x01D36001, 0x01D36102,

10434

0x01D36203, 0x01D36304, 0x01D36405, 0x01D36506, 0x01D36607, 0x01D36708, 0x01D36809,

10435

0x01D3690A, 0x01D36A14, 0x01D36B1E, 0x01D36C28, 0x01D36D32, 0x01D36E3C, 0x01D36F46,

10436

0x01D37050, 0x01D3715A, 0x01D37201, 0x01D37302, 0x01D37403, 0x01D37504, 0x01D37605,

10437

0x01D37701, 0x01D37805, 0x01D7CE00, 0x01D7CF01, 0x01D7D002, 0x01D7D103, 0x01D7D204,

10438

0x01D7D305, 0x01D7D406, 0x01D7D507, 0x01D7D608, 0x01D7D709, 0x01D7D800, 0x01D7D901,

10439

0x01D7DA02, 0x01D7DB03, 0x01D7DC04, 0x01D7DD05, 0x01D7DE06, 0x01D7DF07, 0x01D7E008,

10440

0x01D7E109, 0x01D7E200, 0x01D7E301, 0x01D7E402, 0x01D7E503, 0x01D7E604, 0x01D7E705,

10441

0x01D7E806, 0x01D7E907, 0x01D7EA08, 0x01D7EB09, 0x01D7EC00, 0x01D7ED01, 0x01D7EE02,

10442

0x01D7EF03, 0x01D7F004, 0x01D7F105, 0x01D7F206, 0x01D7F307, 0x01D7F408, 0x01D7F509,

10443

0x01D7F600, 0x01D7F701, 0x01D7F802, 0x01D7F903, 0x01D7FA04, 0x01D7FB05, 0x01D7FC06,

10444

0x01D7FD07, 0x01D7FE08, 0x01D7FF09, 0x01E14000, 0x01E14101, 0x01E14202, 0x01E14303,

10445

0x01E14404, 0x01E14505, 0x01E14606, 0x01E14707, 0x01E14808, 0x01E14909, 0x01E2F000,

10446

0x01E2F101, 0x01E2F202, 0x01E2F303, 0x01E2F404, 0x01E2F505, 0x01E2F606, 0x01E2F707,

10447

0x01E2F808, 0x01E2F909, 0x01E8C701, 0x01E8C802, 0x01E8C903, 0x01E8CA04, 0x01E8CB05,

10448

0x01E8CC06, 0x01E8CD07, 0x01E8CE08, 0x01E8CF09, 0x01E95000, 0x01E95101, 0x01E95202,

10449

0x01E95303, 0x01E95404, 0x01E95505, 0x01E95606, 0x01E95707, 0x01E95808, 0x01E95909,

10450

0x01EC7101, 0x01EC7202, 0x01EC7303, 0x01EC7404, 0x01EC7505, 0x01EC7606, 0x01EC7707,

10451

0x01EC7808, 0x01EC7909, 0x01EC7A0A, 0x01EC7B14, 0x01EC7C1E, 0x01EC7D28, 0x01EC7E32,

10452

0x01EC7F3C, 0x01EC8046, 0x01EC8150, 0x01EC825A, 0x01EC8364, 0x01ECA301, 0x01ECA402,

10453

0x01ECA503, 0x01ECA604, 0x01ECA705, 0x01ECA806, 0x01ECA907, 0x01ECAA08, 0x01ECAB09,

10454

0x01ECAD01, 0x01ECAE01, 0x01ECAF03, 0x01ECB101, 0x01ECB202, 0x01ED0101, 0x01ED0202,

10455

0x01ED0303, 0x01ED0404, 0x01ED0505, 0x01ED0606, 0x01ED0707, 0x01ED0808, 0x01ED0909,

10456

0x01ED0A0A, 0x01ED0B14, 0x01ED0C1E, 0x01ED0D28, 0x01ED0E32, 0x01ED0F3C, 0x01ED1046,

10457

0x01ED1150, 0x01ED125A, 0x01ED1364, 0x01ED2F02, 0x01ED3003, 0x01ED3104, 0x01ED3205,

10458

0x01ED3306, 0x01ED3407, 0x01ED3508, 0x01ED3609, 0x01ED370A, 0x01ED3C01, 0x01ED3D01,

10459

0x01F10000, 0x01F10100, 0x01F10201, 0x01F10302, 0x01F10403, 0x01F10504, 0x01F10605,

10460

0x01F10706, 0x01F10807, 0x01F10908, 0x01F10A09, 0x01F10B00, 0x01F10C00, 0x01FBF000,

10461

0x01FBF101, 0x01FBF202, 0x01FBF303, 0x01FBF404, 0x01FBF505, 0x01FBF606, 0x01FBF707,

10462

0x01FBF808, 0x01FBF909, 0x02000107, 0x02006404, 0x0200E204, 0x02012105, 0x02092A01,

10463

0x0209831E, 0x02098C28, 0x02099C28, 0x020AEA06, 0x020AFD03, 0x020B1903, 0x02239002,

10464

0x02299803, 0x023B1B03, 0x02626D04, 0x02F89009};

10465  static

constexpr uni::detail::pair<char32_t, int16_t> numeric_data16[] = {

10466

uni::detail::pair<char32_t, int16_t>{0x0BF2, 1000},

10467

uni::detail::pair<char32_t, int16_t>{0x0D72, 1000},

10468

uni::detail::pair<char32_t, int16_t>{0x0F33, -1},

10469

uni::detail::pair<char32_t, int16_t>{0x137C, 10000},

10470

uni::detail::pair<char32_t, int16_t>{0x216E, 500},

10471

uni::detail::pair<char32_t, int16_t>{0x216F, 1000},

10472

uni::detail::pair<char32_t, int16_t>{0x217E, 500},

10473

uni::detail::pair<char32_t, int16_t>{0x217F, 1000},

10474

uni::detail::pair<char32_t, int16_t>{0x2180, 1000},

10475

uni::detail::pair<char32_t, int16_t>{0x2181, 5000},

10476

uni::detail::pair<char32_t, int16_t>{0x2182, 10000},

10477

uni::detail::pair<char32_t, int16_t>{0x4E07, 10000},

10478

uni::detail::pair<char32_t, int16_t>{0x4EDF, 1000},

10479

uni::detail::pair<char32_t, int16_t>{0x5343, 1000},

10480

uni::detail::pair<char32_t, int16_t>{0x842C, 10000},

10481

uni::detail::pair<char32_t, int16_t>{0x9621, 1000},

10482

uni::detail::pair<char32_t, int16_t>{0x1011A, 200},

10483

uni::detail::pair<char32_t, int16_t>{0x1011B, 300},

10484

uni::detail::pair<char32_t, int16_t>{0x1011C, 400},

10485

uni::detail::pair<char32_t, int16_t>{0x1011D, 500},

10486

uni::detail::pair<char32_t, int16_t>{0x1011E, 600},

10487

uni::detail::pair<char32_t, int16_t>{0x1011F, 700},

10488

uni::detail::pair<char32_t, int16_t>{0x10120, 800},

10489

uni::detail::pair<char32_t, int16_t>{0x10121, 900},

10490

uni::detail::pair<char32_t, int16_t>{0x10122, 1000},

10491

uni::detail::pair<char32_t, int16_t>{0x10123, 2000},

10492

uni::detail::pair<char32_t, int16_t>{0x10124, 3000},

10493

uni::detail::pair<char32_t, int16_t>{0x10125, 4000},

10494

uni::detail::pair<char32_t, int16_t>{0x10126, 5000},

10495

uni::detail::pair<char32_t, int16_t>{0x10127, 6000},

10496

uni::detail::pair<char32_t, int16_t>{0x10128, 7000},

10497

uni::detail::pair<char32_t, int16_t>{0x10129, 8000},

10498

uni::detail::pair<char32_t, int16_t>{0x1012A, 9000},

10499

uni::detail::pair<char32_t, int16_t>{0x1012B, 10000},

10500

uni::detail::pair<char32_t, int16_t>{0x1012C, 20000},

10501

uni::detail::pair<char32_t, int16_t>{0x1012D, 30000},

10502

uni::detail::pair<char32_t, int16_t>{0x10145, 500},

10503

uni::detail::pair<char32_t, int16_t>{0x10146, 5000},

10504

uni::detail::pair<char32_t, int16_t>{0x1014C, 500},

10505

uni::detail::pair<char32_t, int16_t>{0x1014D, 1000},

10506

uni::detail::pair<char32_t, int16_t>{0x1014E, 5000},

10507

uni::detail::pair<char32_t, int16_t>{0x10153, 500},

10508

uni::detail::pair<char32_t, int16_t>{0x10154, 1000},

10509

uni::detail::pair<char32_t, int16_t>{0x10155, 10000},

10510

uni::detail::pair<char32_t, int16_t>{0x1016B, 300},

10511

uni::detail::pair<char32_t, int16_t>{0x1016C, 500},

10512

uni::detail::pair<char32_t, int16_t>{0x1016D, 500},

10513

uni::detail::pair<char32_t, int16_t>{0x1016E, 500},

10514

uni::detail::pair<char32_t, int16_t>{0x1016F, 500},

10515

uni::detail::pair<char32_t, int16_t>{0x10170, 500},

10516

uni::detail::pair<char32_t, int16_t>{0x10171, 1000},

10517

uni::detail::pair<char32_t, int16_t>{0x10172, 5000},

10518

uni::detail::pair<char32_t, int16_t>{0x102F4, 200},

10519

uni::detail::pair<char32_t, int16_t>{0x102F5, 300},

10520

uni::detail::pair<char32_t, int16_t>{0x102F6, 400},

10521

uni::detail::pair<char32_t, int16_t>{0x102F7, 500},

10522

uni::detail::pair<char32_t, int16_t>{0x102F8, 600},

10523

uni::detail::pair<char32_t, int16_t>{0x102F9, 700},

10524

uni::detail::pair<char32_t, int16_t>{0x102FA, 800},

10525

uni::detail::pair<char32_t, int16_t>{0x102FB, 900},

10526

uni::detail::pair<char32_t, int16_t>{0x1034A, 900},

10527

uni::detail::pair<char32_t, int16_t>{0x1085E, 1000},

10528

uni::detail::pair<char32_t, int16_t>{0x1085F, 10000},

10529

uni::detail::pair<char32_t, int16_t>{0x109D3, 200},

10530

uni::detail::pair<char32_t, int16_t>{0x109D4, 300},

10531

uni::detail::pair<char32_t, int16_t>{0x109D5, 400},

10532

uni::detail::pair<char32_t, int16_t>{0x109D6, 500},

10533

uni::detail::pair<char32_t, int16_t>{0x109D7, 600},

10534

uni::detail::pair<char32_t, int16_t>{0x109D8, 700},

10535

uni::detail::pair<char32_t, int16_t>{0x109D9, 800},

10536

uni::detail::pair<char32_t, int16_t>{0x109DA, 900},

10537

uni::detail::pair<char32_t, int16_t>{0x109DB, 1000},

10538

uni::detail::pair<char32_t, int16_t>{0x109DC, 2000},

10539

uni::detail::pair<char32_t, int16_t>{0x109DD, 3000},

10540

uni::detail::pair<char32_t, int16_t>{0x109DE, 4000},

10541

uni::detail::pair<char32_t, int16_t>{0x109DF, 5000},

10542

uni::detail::pair<char32_t, int16_t>{0x109E0, 6000},

10543

uni::detail::pair<char32_t, int16_t>{0x109E1, 7000},

10544

uni::detail::pair<char32_t, int16_t>{0x109E2, 8000},

10545

uni::detail::pair<char32_t, int16_t>{0x109E3, 9000},

10546

uni::detail::pair<char32_t, int16_t>{0x109E4, 10000},

10547

uni::detail::pair<char32_t, int16_t>{0x109E5, 20000},

10548

uni::detail::pair<char32_t, int16_t>{0x109E6, 30000},

10549

uni::detail::pair<char32_t, int16_t>{0x10A47, 1000},

10550

uni::detail::pair<char32_t, int16_t>{0x10B5F, 1000},

10551

uni::detail::pair<char32_t, int16_t>{0x10B7F, 1000},

10552

uni::detail::pair<char32_t, int16_t>{0x10CFF, 1000},

10553

uni::detail::pair<char32_t, int16_t>{0x10E73, 200},

10554

uni::detail::pair<char32_t, int16_t>{0x10E74, 300},

10555

uni::detail::pair<char32_t, int16_t>{0x10E75, 400},

10556

uni::detail::pair<char32_t, int16_t>{0x10E76, 500},

10557

uni::detail::pair<char32_t, int16_t>{0x10E77, 600},

10558

uni::detail::pair<char32_t, int16_t>{0x10E78, 700},

10559

uni::detail::pair<char32_t, int16_t>{0x10E79, 800},

10560

uni::detail::pair<char32_t, int16_t>{0x10E7A, 900},

10561

uni::detail::pair<char32_t, int16_t>{0x11065, 1000},

10562

uni::detail::pair<char32_t, int16_t>{0x111F4, 1000},

10563

uni::detail::pair<char32_t, int16_t>{0x16B5D, 10000},

10564

uni::detail::pair<char32_t, int16_t>{0x1EC84, 200},

10565

uni::detail::pair<char32_t, int16_t>{0x1EC85, 300},

10566

uni::detail::pair<char32_t, int16_t>{0x1EC86, 400},

10567

uni::detail::pair<char32_t, int16_t>{0x1EC87, 500},

10568

uni::detail::pair<char32_t, int16_t>{0x1EC88, 600},

10569

uni::detail::pair<char32_t, int16_t>{0x1EC89, 700},

10570

uni::detail::pair<char32_t, int16_t>{0x1EC8A, 800},

10571

uni::detail::pair<char32_t, int16_t>{0x1EC8B, 900},

10572

uni::detail::pair<char32_t, int16_t>{0x1EC8C, 1000},

10573

uni::detail::pair<char32_t, int16_t>{0x1EC8D, 2000},

10574

uni::detail::pair<char32_t, int16_t>{0x1EC8E, 3000},

10575

uni::detail::pair<char32_t, int16_t>{0x1EC8F, 4000},

10576

uni::detail::pair<char32_t, int16_t>{0x1EC90, 5000},

10577

uni::detail::pair<char32_t, int16_t>{0x1EC91, 6000},

10578

uni::detail::pair<char32_t, int16_t>{0x1EC92, 7000},

10579

uni::detail::pair<char32_t, int16_t>{0x1EC93, 8000},

10580

uni::detail::pair<char32_t, int16_t>{0x1EC94, 9000},

10581

uni::detail::pair<char32_t, int16_t>{0x1EC95, 10000},

10582

uni::detail::pair<char32_t, int16_t>{0x1EC96, 20000},

10583

uni::detail::pair<char32_t, int16_t>{0x1EC97, 30000},

10584

uni::detail::pair<char32_t, int16_t>{0x1ECB3, 10000},

10585

uni::detail::pair<char32_t, int16_t>{0x1ED14, 200},

10586

uni::detail::pair<char32_t, int16_t>{0x1ED15, 300},

10587

uni::detail::pair<char32_t, int16_t>{0x1ED16, 400},

10588

uni::detail::pair<char32_t, int16_t>{0x1ED17, 500},

10589

uni::detail::pair<char32_t, int16_t>{0x1ED18, 600},

10590

uni::detail::pair<char32_t, int16_t>{0x1ED19, 700},

10591

uni::detail::pair<char32_t, int16_t>{0x1ED1A, 800},

10592

uni::detail::pair<char32_t, int16_t>{0x1ED1B, 900},

10593

uni::detail::pair<char32_t, int16_t>{0x1ED1C, 1000},

10594

uni::detail::pair<char32_t, int16_t>{0x1ED1D, 2000},

10595

uni::detail::pair<char32_t, int16_t>{0x1ED1E, 3000},

10596

uni::detail::pair<char32_t, int16_t>{0x1ED1F, 4000},

10597

uni::detail::pair<char32_t, int16_t>{0x1ED20, 5000},

10598

uni::detail::pair<char32_t, int16_t>{0x1ED21, 6000},

10599

uni::detail::pair<char32_t, int16_t>{0x1ED22, 7000},

10600

uni::detail::pair<char32_t, int16_t>{0x1ED23, 8000},

10601

uni::detail::pair<char32_t, int16_t>{0x1ED24, 9000},

10602

uni::detail::pair<char32_t, int16_t>{0x1ED25, 10000},

10603

uni::detail::pair<char32_t, int16_t>{0x1ED26, 20000},

10604

uni::detail::pair<char32_t, int16_t>{0x1ED27, 30000},

10605

uni::detail::pair<char32_t, int16_t>{0x1ED38, 400},

10606

uni::detail::pair<char32_t, int16_t>{0x1ED39, 600},

10607

uni::detail::pair<char32_t, int16_t>{0x1ED3A, 2000},

10608

uni::detail::pair<char32_t, int16_t>{0x1ED3B, 10000},

10610  static

constexpr uni::detail::pair<char32_t, int32_t> numeric_data32[] = {

10611

uni::detail::pair<char32_t, int32_t>{0x2187, 50000},

10612

uni::detail::pair<char32_t, int32_t>{0x2188, 100000},

10613

uni::detail::pair<char32_t, int32_t>{0x4EBF, 100000000},

10614

uni::detail::pair<char32_t, int32_t>{0x5104, 100000000},

10615

uni::detail::pair<char32_t, int32_t>{0x1012E, 40000},

10616

uni::detail::pair<char32_t, int32_t>{0x1012F, 50000},

10617

uni::detail::pair<char32_t, int32_t>{0x10130, 60000},

10618

uni::detail::pair<char32_t, int32_t>{0x10131, 70000},

10619

uni::detail::pair<char32_t, int32_t>{0x10132, 80000},

10620

uni::detail::pair<char32_t, int32_t>{0x10133, 90000},

10621

uni::detail::pair<char32_t, int32_t>{0x10147, 50000},

10622

uni::detail::pair<char32_t, int32_t>{0x10156, 50000},

10623

uni::detail::pair<char32_t, int32_t>{0x109E7, 40000},

10624

uni::detail::pair<char32_t, int32_t>{0x109E8, 50000},

10625

uni::detail::pair<char32_t, int32_t>{0x109E9, 60000},

10626

uni::detail::pair<char32_t, int32_t>{0x109EA, 70000},

10627

uni::detail::pair<char32_t, int32_t>{0x109EB, 80000},

10628

uni::detail::pair<char32_t, int32_t>{0x109EC, 90000},

10629

uni::detail::pair<char32_t, int32_t>{0x109ED, 100000},

10630

uni::detail::pair<char32_t, int32_t>{0x109EE, 200000},

10631

uni::detail::pair<char32_t, int32_t>{0x109EF, 300000},

10632

uni::detail::pair<char32_t, int32_t>{0x109F0, 400000},

10633

uni::detail::pair<char32_t, int32_t>{0x109F1, 500000},

10634

uni::detail::pair<char32_t, int32_t>{0x109F2, 600000},

10635

uni::detail::pair<char32_t, int32_t>{0x109F3, 700000},

10636

uni::detail::pair<char32_t, int32_t>{0x109F4, 800000},

10637

uni::detail::pair<char32_t, int32_t>{0x109F5, 900000},

10638

uni::detail::pair<char32_t, int32_t>{0x12432, 216000},

10639

uni::detail::pair<char32_t, int32_t>{0x12433, 432000},

10640

uni::detail::pair<char32_t, int32_t>{0x16B5E, 1000000},

10641

uni::detail::pair<char32_t, int32_t>{0x16B5F, 100000000},

10642

uni::detail::pair<char32_t, int32_t>{0x1EC98, 40000},

10643

uni::detail::pair<char32_t, int32_t>{0x1EC99, 50000},

10644

uni::detail::pair<char32_t, int32_t>{0x1EC9A, 60000},

10645

uni::detail::pair<char32_t, int32_t>{0x1EC9B, 70000},

10646

uni::detail::pair<char32_t, int32_t>{0x1EC9C, 80000},

10647

uni::detail::pair<char32_t, int32_t>{0x1EC9D, 90000},

10648

uni::detail::pair<char32_t, int32_t>{0x1EC9E, 100000},

10649

uni::detail::pair<char32_t, int32_t>{0x1EC9F, 200000},

10650

uni::detail::pair<char32_t, int32_t>{0x1ECA0, 100000},

10651

uni::detail::pair<char32_t, int32_t>{0x1ECA1, 10000000},

10652

uni::detail::pair<char32_t, int32_t>{0x1ECA2, 20000000},

10653

uni::detail::pair<char32_t, int32_t>{0x1ECB4, 100000},

10654

uni::detail::pair<char32_t, int32_t>{0x1ED28, 40000},

10655

uni::detail::pair<char32_t, int32_t>{0x1ED29, 50000},

10656

uni::detail::pair<char32_t, int32_t>{0x1ED2A, 60000},

10657

uni::detail::pair<char32_t, int32_t>{0x1ED2B, 70000},

10658

uni::detail::pair<char32_t, int32_t>{0x1ED2C, 80000},

10659

uni::detail::pair<char32_t, int32_t>{0x1ED2D, 90000},

10661  static

constexpr uni::detail::pair<char32_t, int64_t> numeric_data64[] = {

10662

uni::detail::pair<char32_t, int64_t>{0x5146, 1000000000000},

10663

uni::detail::pair<char32_t, int64_t>{0x16B60, 10000000000},

10664

uni::detail::pair<char32_t, int64_t>{0x16B61, 1000000000000},

10666  static

constexpr uni::detail::pair<char32_t, int16_t> numeric_data_d[] = {

10667

uni::detail::pair<char32_t, int16_t>{0x00BC, 4},

10668

uni::detail::pair<char32_t, int16_t>{0x00BD, 2},

10669

uni::detail::pair<char32_t, int16_t>{0x00BE, 4},

10670

uni::detail::pair<char32_t, int16_t>{0x09F4, 16},

10671

uni::detail::pair<char32_t, int16_t>{0x09F5, 8},

10672

uni::detail::pair<char32_t, int16_t>{0x09F6, 16},

10673

uni::detail::pair<char32_t, int16_t>{0x09F7, 4},

10674

uni::detail::pair<char32_t, int16_t>{0x09F8, 4},

10675

uni::detail::pair<char32_t, int16_t>{0x0B72, 4},

10676

uni::detail::pair<char32_t, int16_t>{0x0B73, 2},

10677

uni::detail::pair<char32_t, int16_t>{0x0B74, 4},

10678

uni::detail::pair<char32_t, int16_t>{0x0B75, 16},

10679

uni::detail::pair<char32_t, int16_t>{0x0B76, 8},

10680

uni::detail::pair<char32_t, int16_t>{0x0B77, 16},

10681

uni::detail::pair<char32_t, int16_t>{0x0D58, 160},

10682

uni::detail::pair<char32_t, int16_t>{0x0D59, 40},

10683

uni::detail::pair<char32_t, int16_t>{0x0D5A, 80},

10684

uni::detail::pair<char32_t, int16_t>{0x0D5B, 20},

10685

uni::detail::pair<char32_t, int16_t>{0x0D5C, 10},

10686

uni::detail::pair<char32_t, int16_t>{0x0D5D, 20},

10687

uni::detail::pair<char32_t, int16_t>{0x0D5E, 5},

10688

uni::detail::pair<char32_t, int16_t>{0x0D73, 4},

10689

uni::detail::pair<char32_t, int16_t>{0x0D74, 2},

10690

uni::detail::pair<char32_t, int16_t>{0x0D75, 4},

10691

uni::detail::pair<char32_t, int16_t>{0x0D76, 16},

10692

uni::detail::pair<char32_t, int16_t>{0x0D77, 8},

10693

uni::detail::pair<char32_t, int16_t>{0x0D78, 16},

10694

uni::detail::pair<char32_t, int16_t>{0x0F2A, 2},

10695

uni::detail::pair<char32_t, int16_t>{0x0F2B, 2},

10696

uni::detail::pair<char32_t, int16_t>{0x0F2C, 2},

10697

uni::detail::pair<char32_t, int16_t>{0x0F2D, 2},

10698

uni::detail::pair<char32_t, int16_t>{0x0F2E, 2},

10699

uni::detail::pair<char32_t, int16_t>{0x0F2F, 2},

10700

uni::detail::pair<char32_t, int16_t>{0x0F30, 2},

10701

uni::detail::pair<char32_t, int16_t>{0x0F31, 2},

10702

uni::detail::pair<char32_t, int16_t>{0x0F32, 2},

10703

uni::detail::pair<char32_t, int16_t>{0x0F33, 2},

10704

uni::detail::pair<char32_t, int16_t>{0x2150, 7},

10705

uni::detail::pair<char32_t, int16_t>{0x2151, 9},

10706

uni::detail::pair<char32_t, int16_t>{0x2152, 10},

10707

uni::detail::pair<char32_t, int16_t>{0x2153, 3},

10708

uni::detail::pair<char32_t, int16_t>{0x2154, 3},

10709

uni::detail::pair<char32_t, int16_t>{0x2155, 5},

10710

uni::detail::pair<char32_t, int16_t>{0x2156, 5},

10711

uni::detail::pair<char32_t, int16_t>{0x2157, 5},

10712

uni::detail::pair<char32_t, int16_t>{0x2158, 5},

10713

uni::detail::pair<char32_t, int16_t>{0x2159, 6},

10714

uni::detail::pair<char32_t, int16_t>{0x215A, 6},

10715

uni::detail::pair<char32_t, int16_t>{0x215B, 8},

10716

uni::detail::pair<char32_t, int16_t>{0x215C, 8},

10717

uni::detail::pair<char32_t, int16_t>{0x215D, 8},

10718

uni::detail::pair<char32_t, int16_t>{0x215E, 8},

10719

uni::detail::pair<char32_t, int16_t>{0x2CFD, 2},

10720

uni::detail::pair<char32_t, int16_t>{0xA830, 4},

10721

uni::detail::pair<char32_t, int16_t>{0xA831, 2},

10722

uni::detail::pair<char32_t, int16_t>{0xA832, 4},

10723

uni::detail::pair<char32_t, int16_t>{0xA833, 16},

10724

uni::detail::pair<char32_t, int16_t>{0xA834, 8},

10725

uni::detail::pair<char32_t, int16_t>{0xA835, 16},

10726

uni::detail::pair<char32_t, int16_t>{0x10140, 4},

10727

uni::detail::pair<char32_t, int16_t>{0x10141, 2},

10728

uni::detail::pair<char32_t, int16_t>{0x10175, 2},

10729

uni::detail::pair<char32_t, int16_t>{0x10176, 2},

10730

uni::detail::pair<char32_t, int16_t>{0x10177, 3},

10731

uni::detail::pair<char32_t, int16_t>{0x10178, 4},

10732

uni::detail::pair<char32_t, int16_t>{0x1018B, 4},

10733

uni::detail::pair<char32_t, int16_t>{0x109BC, 12},

10734

uni::detail::pair<char32_t, int16_t>{0x109BD, 2},

10735

uni::detail::pair<char32_t, int16_t>{0x109F6, 12},

10736

uni::detail::pair<char32_t, int16_t>{0x109F7, 12},

10737

uni::detail::pair<char32_t, int16_t>{0x109F8, 12},

10738

uni::detail::pair<char32_t, int16_t>{0x109F9, 12},

10739

uni::detail::pair<char32_t, int16_t>{0x109FA, 12},

10740

uni::detail::pair<char32_t, int16_t>{0x109FB, 12},

10741

uni::detail::pair<char32_t, int16_t>{0x109FC, 12},

10742

uni::detail::pair<char32_t, int16_t>{0x109FD, 12},

10743

uni::detail::pair<char32_t, int16_t>{0x109FE, 12},

10744

uni::detail::pair<char32_t, int16_t>{0x109FF, 12},

10745

uni::detail::pair<char32_t, int16_t>{0x10A48, 2},

10746

uni::detail::pair<char32_t, int16_t>{0x10E7B, 2},

10747

uni::detail::pair<char32_t, int16_t>{0x10E7C, 4},

10748

uni::detail::pair<char32_t, int16_t>{0x10E7D, 3},

10749

uni::detail::pair<char32_t, int16_t>{0x10E7E, 3},

10750

uni::detail::pair<char32_t, int16_t>{0x10F26, 2},

10751

uni::detail::pair<char32_t, int16_t>{0x11FC0, 320},

10752

uni::detail::pair<char32_t, int16_t>{0x11FC1, 160},

10753

uni::detail::pair<char32_t, int16_t>{0x11FC2, 80},

10754

uni::detail::pair<char32_t, int16_t>{0x11FC3, 64},

10755

uni::detail::pair<char32_t, int16_t>{0x11FC4, 40},

10756

uni::detail::pair<char32_t, int16_t>{0x11FC5, 32},

10757

uni::detail::pair<char32_t, int16_t>{0x11FC6, 80},

10758

uni::detail::pair<char32_t, int16_t>{0x11FC7, 64},

10759

uni::detail::pair<char32_t, int16_t>{0x11FC8, 20},

10760

uni::detail::pair<char32_t, int16_t>{0x11FC9, 16},

10761

uni::detail::pair<char32_t, int16_t>{0x11FCA, 16},

10762

uni::detail::pair<char32_t, int16_t>{0x11FCB, 10},

10763

uni::detail::pair<char32_t, int16_t>{0x11FCC, 8},

10764

uni::detail::pair<char32_t, int16_t>{0x11FCD, 20},

10765

uni::detail::pair<char32_t, int16_t>{0x11FCE, 16},

10766

uni::detail::pair<char32_t, int16_t>{0x11FCF, 5},

10767

uni::detail::pair<char32_t, int16_t>{0x11FD0, 4},

10768

uni::detail::pair<char32_t, int16_t>{0x11FD1, 2},

10769

uni::detail::pair<char32_t, int16_t>{0x11FD2, 2},

10770

uni::detail::pair<char32_t, int16_t>{0x11FD3, 4},

10771

uni::detail::pair<char32_t, int16_t>{0x11FD4, 320},

10772

uni::detail::pair<char32_t, int16_t>{0x1245A, 3},

10773

uni::detail::pair<char32_t, int16_t>{0x1245B, 3},

10774

uni::detail::pair<char32_t, int16_t>{0x1245C, 6},

10775

uni::detail::pair<char32_t, int16_t>{0x1245D, 3},

10776

uni::detail::pair<char32_t, int16_t>{0x1245E, 3},

10777

uni::detail::pair<char32_t, int16_t>{0x1245F, 8},

10778

uni::detail::pair<char32_t, int16_t>{0x12460, 4},

10779

uni::detail::pair<char32_t, int16_t>{0x12461, 6},

10780

uni::detail::pair<char32_t, int16_t>{0x12462, 4},

10781

uni::detail::pair<char32_t, int16_t>{0x12463, 4},

10782

uni::detail::pair<char32_t, int16_t>{0x12464, 2},

10783

uni::detail::pair<char32_t, int16_t>{0x12465, 3},

10784

uni::detail::pair<char32_t, int16_t>{0x12466, 3},

10785

uni::detail::pair<char32_t, int16_t>{0x1ECAD, 4},

10786

uni::detail::pair<char32_t, int16_t>{0x1ECAE, 2},

10787

uni::detail::pair<char32_t, int16_t>{0x1ECAF, 4},

10788

uni::detail::pair<char32_t, int16_t>{0x1ED3C, 2},

10789

uni::detail::pair<char32_t, int16_t>{0x1ED3D, 6},

10790

uni::detail::pair<char32_t, int16_t>{0x110000, 0}};

10791  static

constexpr bool_trie<32, 991, 1, 0, 112, 255, 1, 0, 1407, 1, 0, 160> prop_assigned{

10792

{0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff,

10793

0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff,

10794

0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff,

10795

0xffffffffffffffff, 0xfcffffffffffffff, 0xfffffffbffffd7f0, 0xffffffffffffffff,

10796

0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff,

10797

0xfffeffffffffffff, 0xfffffffffe7fffff, 0xfffffffffffee7ff, 0x001f87ffffff00ff,

10798

0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff,

10799

0xffffffffffffbfff, 0xffffffffffffe7ff, 0x0003ffffffffffff, 0xe7ffffffffffffff},

10800

{1, 2, 3, 3, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,

10801

17, 18, 19, 20, 21, 22, 23, 24, 25, 3, 26, 27, 28, 3, 3, 3, 29, 3,

10802

3, 3, 3, 3, 30, 31, 32, 33, 34, 35, 36, 3, 3, 3, 3, 3, 3, 3,

10803

3, 3, 3, 37, 38, 39, 40, 3, 41, 35, 38, 42, 43, 44, 45, 46, 47, 48,

10804

49, 50, 51, 3, 52, 3, 53, 54, 55, 56, 57, 3, 3, 3, 3, 3, 3, 3,

10805

3, 58, 59, 60, 61, 3, 62, 63, 64, 3, 3, 65, 3, 3, 3, 3, 3, 3,

10806

3, 3, 3, 66, 67, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10807

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 68, 69, 3, 3,

10808

3, 3, 70, 71, 72, 73, 74, 3, 75, 76, 77, 3, 3, 3, 78, 3, 79, 80,

10809

3, 81, 3, 82, 83, 84, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10810

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10811

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10812

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10813

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10814

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10815

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10816

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10817

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10818

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10819

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10820

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10821

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10822

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10823

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10824

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10825

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10826

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10827

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10828

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10829

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10830

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10831

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10832

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10833

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10834

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 85, 86, 3, 3, 3,

10835

3, 87, 3, 3, 88, 3, 3, 3, 89, 90, 88, 3, 91, 3, 92, 3, 93, 94,

10836

95, 3, 96, 97, 46, 3, 98, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10837

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10838

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10839

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10840

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10841

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10842

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10843

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10844

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10845

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

10846

3, 83, 99, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,

10847

100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,

10848

100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,

10849

100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,

10850

100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,

10851

100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,

10852

100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,

10853

100, 100, 100, 100, 100, 100, 100, 100, 100, 3, 3, 3, 3, 3, 101, 3, 102, 103,

10854

104, 3, 105, 3, 3, 3, 3, 3, 3, 106, 107, 35, 108, 3, 109, 79, 3, 110,

10856

{0x7fff3fffffffffff, 0xffff07ff4fffffff, 0xffffffffff037fff, 0xffffffffffffffff,

10857

0xf3c5fdfffff99fef, 0x7fffffcfb080799f, 0xd36dfdfffff987ee, 0x007fffc05e023987,

10858

0xf3edfdfffffbbfee, 0xfe03ffcf00013bbf, 0xf3edfdfffff99fee, 0x00ffffcfb0e0399f,

10859

0xc3ffc718d63dc7ec, 0x07ffffc000813dc7, 0xf3fffdfffffddfff, 0xff80ffcf27603ddf,

10860

0xf3effdfffffddfff, 0x0006ffcf60603ddf, 0xfffffffffffddfff, 0xffffffcffff0fddf,

10861

0x2ffbfffffc7fffee, 0x001cffc0ff5f847f, 0x87fffffffffffffe, 0x000000000fffffff,

10862

0x3fffffaffffff7d6, 0x00000000f3ff3f5f, 0xfffe1ffffffffeff, 0xdffffffffeffffff,

10863

0x0000000007ffdfff, 0xffffffffffff20bf, 0xffffffff3d7f3dff, 0x7f3dffffffff3dff,

10864

0xffffffffff7fff3d, 0xffffffffff3dffff, 0x1fffffffe7ffffff, 0xffffffff03ffffff,

10865

0x3f3fffffffffffff, 0xffffffff1fffffff, 0x01ffffffffffffff, 0x007fffff803fffff,

10866

0x000ddfff000fffff, 0x03ff03ff3fffffff, 0xffff07ffffffffff, 0x003fffffffffffff,

10867

0x0fff0fff7fffffff, 0x001f3ffffffffff1, 0xffff0fffffffffff, 0xffffffffc7ff03ff,

10868

0xffffffffcfffffff, 0x9fffffff7fffffff, 0xffff3fff03ff03ff, 0x0000000000007fff,

10869

0x7fffffffffff1fff, 0xf00fffffffffffff, 0xf8ffffffffffffff, 0xffffffffffffe3ff,

10870

0xe7ffffffffff01ff, 0x07ffffffffff00ff, 0xffffffff3f3fffff, 0x3fffffffaaff3f3f,

10871

0xffdfffffffffffff, 0x7fdcffffefcfffdf, 0xfff3ffdfffffffff, 0xffffffff1fff7fff,

10872

0x0001ffffffff0001, 0xffffffffffff0fff, 0x0000007fffffffff, 0xffffffff000007ff,

10873

0xffcfffffffffffff, 0xffffffffffbfffff, 0xfe0fffffffffffff, 0xffff20bfffffffff,

10874

0x800180ffffffffff, 0x7f7f7f7f007fffff, 0xffffffff7f7f7f7f, 0x000000003fffffff,

10875

0xfffffffffbffffff, 0x000fffffffffffff, 0x0fff0000003fffff, 0xfffffffffffffffe,

10876

0xfffffffffe7fffff, 0xfffeffffffffffe0, 0xffffffffffff7fff, 0xffff000fffffffff,

10877

0xffffffff7fffffff, 0xffffffffffff1fff, 0xffffffffffff007f, 0x00000fffffffffff,

10878

0x00ffffffffffffff, 0xfffc000003eb07ff, 0x03ff1fffffffffff, 0xffffffff03ffc03f,

10879

0x1fffffff800fffff, 0x7fffffffc3ffbfff, 0x007fffffffffffff, 0xfffffffff3ff3fff,

10880

0x007ffffff8000007, 0xffff7f7f007e7e7e, 0x03ff3fffffffffff, 0x0ffffffffffff87f,

10881

0x0000000000000000, 0xffff3fffffffffff, 0x0000000003ffffff, 0x5f7fffffe0f8007f,

10882

0xffffffffffffffdb, 0xfffffffffff80007, 0xfffffffffffcffff, 0xffff0000000080ff,

10883

0xffdf0f7ffff7ffff, 0x9fffffffffffffff, 0x7fffffffffffffff, 0x3e007f7f1cfcfcfc},

10884

{1, 2, 3, 4, 5, 6, 7, 8, 5, 9, 10, 11, 12, 13, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 15,

10885

16, 17, 7, 18, 19, 7, 20, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

10886

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

10887

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

10888

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

10889

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

10890

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

10891

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 21,

10892

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

10893

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5},

10894

{1, 2, 3, 4, 2, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 2, 2, 14,

10895

15, 16, 17, 18, 7, 2, 2, 2, 2, 19, 20, 21, 7, 22, 23, 24, 25, 26,

10896

7, 27, 28, 29, 30, 31, 32, 33, 34, 35, 7, 2, 36, 37, 38, 39, 7, 7,

10897

7, 7, 40, 41, 7, 16, 42, 43, 44, 2, 45, 2, 46, 47, 48, 2, 49, 50,

10898

7, 51, 52, 53, 54, 7, 7, 2, 55, 2, 56, 7, 7, 57, 58, 2, 59, 60,

10899

61, 62, 63, 7, 7, 64, 7, 65, 66, 67, 68, 69, 70, 2, 71, 72, 73, 7,

10900

7, 7, 7, 74, 75, 76, 7, 77, 78, 79, 7, 7, 7, 7, 80, 7, 7, 81,

10901

82, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 83, 7, 2,

10902

84, 2, 2, 2, 85, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10903

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10904

7, 7, 7, 7, 7, 7, 7, 7, 7, 86, 37, 2, 2, 2, 2, 2, 2, 2,

10905

2, 2, 2, 2, 2, 2, 2, 2, 2, 87, 7, 7, 7, 7, 7, 7, 7, 7,

10906

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10907

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10908

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10909

7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 63, 7, 7, 7, 7, 7, 7, 7,

10910

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10911

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10912

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10913

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10914

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10915

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10916

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10917

7, 2, 2, 2, 2, 2, 2, 2, 2, 73, 88, 89, 90, 2, 91, 92, 7, 7,

10918

7, 7, 7, 7, 7, 7, 7, 7, 2, 93, 7, 2, 94, 95, 96, 2, 2, 2,

10919

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10920

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10921

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10922

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10923

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10924

2, 2, 97, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10925

2, 2, 2, 2, 98, 36, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10926

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10927

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10928

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10929

7, 7, 7, 7, 7, 7, 7, 7, 99, 2, 2, 2, 2, 100, 101, 2, 2, 2,

10930

2, 2, 64, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10931

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10932

7, 7, 7, 2, 102, 103, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10933

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10934

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10935

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10936

7, 7, 7, 7, 7, 7, 7, 104, 105, 2, 85, 2, 2, 2, 106, 107, 2, 2,

10937

108, 2, 109, 7, 110, 2, 111, 7, 7, 2, 112, 113, 114, 115, 116, 2, 2, 2,

10938

2, 117, 2, 2, 2, 2, 118, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 119,

10939

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 120,

10940

7, 7, 7, 121, 7, 7, 7, 122, 123, 7, 7, 7, 7, 124, 125, 7, 7, 7,

10941

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 126, 2,

10942

2, 2, 127, 2, 128, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 129, 130,

10943

7, 131, 7, 7, 7, 132, 133, 134, 135, 7, 7, 7, 7, 136, 2, 137, 138, 2,

10944

2, 139, 140, 141, 142, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10945

2, 2, 2, 2, 143, 2, 144, 2, 145, 146, 147, 148, 7, 2, 2, 2, 2, 2,

10946

149, 150, 151, 2, 2, 152, 153, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10947

7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10948

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 31, 2, 2, 2,

10949

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10950

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10951

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10952

2, 2, 2, 2, 2, 2, 2, 73, 2, 2, 2, 154, 2, 2, 2, 2, 2, 2,

10953

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10954

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10955

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10956

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10957

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 155, 2, 2, 2, 2, 2, 2,

10958

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10959

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

10960

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 156, 7, 7, 7, 7, 7, 7, 7,

10961

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10962

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10963

7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 58, 7, 7, 7, 7,

10964

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10965

7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 157, 7, 7, 7,

10966

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10967

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10968

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 158, 2, 7, 7, 2, 2, 2,

10969

159, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10970

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10971

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

10973

{0xb7ffff7fffffefff, 0x000000003fff3fff, 0xffffffffffffffff, 0x07ffffffffffffff,

10974

0xff8fffffffffff87, 0x000000011fff7fff, 0x3fffffffffff0000, 0x0000000000000000,

10975

0xffffffff1fffffff, 0x0fffffff0001ffff, 0xffffe00fffffffff, 0x07ffffffffff07ff,

10976

0xffffffffbfffffff, 0x00000000003fff0f, 0xffff03ff3fffffff, 0x0fffffffff0fffff,

10977

0xffff00ffffffffff, 0xf7ff800fffffffff, 0x1bfbfffbffb7f7ff, 0x007fffffffffffff,

10978

0x000000ff003fffff, 0x07fdffffffffffbf, 0x91bffffffffffd3f, 0xffffffffffbfffff,

10979

0x0000ff807fffffff, 0xf837ffff00000000, 0x83ffffff8fffffff, 0xf0ffffffffffffff,

10980

0xfffffffffffcffff, 0x873ffffffeeff06f, 0xffffffff01ff01ff, 0x00000000ffffffff,

10981

0x007ff87fffffffff, 0xfe3fffffffffffff, 0xff07ffffff3fffff, 0x0000fe001e03ffff,

10982

0x00000000000001ff, 0x0007ffffffffffff, 0xfc07ffffffffffff, 0x03ff00ffffffffff,

10983

0x7fffffff00000000, 0x00033bffffffffff, 0xffff000003ffffff, 0xffff0000000003ff,

10984

0x007fffff00000fff, 0x803ffffffffc3fff, 0x03ff01ffffff2007, 0xffdfffffffffffff,

10985

0x007fffffffff00ff, 0x001ffffeffffffff, 0x7ffffffffffbffff, 0xffff03ffbfffbd7f,

10986

0x03ff07ffffffffff, 0xfbedfdfffff99fef, 0x001f1fcfe081399f, 0x00000003efffffff,

10987

0x0000000003ff00ff, 0xff3fffffffffffff, 0x000000003fffffff, 0x00001fff03ff001f,

10988

0x03ffffffffffffff, 0x00000000000003ff, 0xffff0fffe7ffffff, 0x000000000000007f,

10989

0x0fffffffffffffff, 0xffffffff00000000, 0x8007ffffffffffff, 0xf9bfffffff6ff27f,

10990

0x0000000003ff007f, 0xfffffcff00000000, 0x0000001ffcffffff, 0xffffffffffff00ff,

10991

0xffff0007ffffffff, 0x01ffffffffffffff, 0xff7ffffffffffdff, 0xffff1fffffff003f,

10992

0x007ffefffffcffff, 0xb47ffffffffffb7f, 0xfffffdbf03ff00ff, 0x000003ff01fb7fff,

10993

0x01ffffff00000000, 0x0001000000000000, 0x8003ffffffffffff, 0x0000000003ffffff,

10994

0x001f7fffffffffff, 0x000000000000000f, 0xffffffffffff0000, 0x01ff7fffffffffff,

10995

0xffffc3ff7fffffff, 0x7fffffffffffffff, 0x003f3fffffff03ff, 0xe0fffffbfbff003f,

10996

0x000000000000ffff, 0x0000000007ffffff, 0xffffffffffff87ff, 0x00000000ffff80ff,

10997

0x0003001f00000000, 0x00ffffffffffffff, 0x00000000003fffff, 0x6fef000000000000,

10998

0x00000007ffffffff, 0xffff00f000070000, 0x1fff07ffffffffff, 0x0000000ff3ff01ff,

10999

0xffff3fffffffffff, 0xffffffffffff007f, 0x003fffffffffffff, 0xfffffe7fffffffff,

11000

0x000007ffffffffff, 0x000000000000003f, 0x000fffff00000000, 0x01ffffff007fffff,

11001

0xffffffffffdfffff, 0xebffde64dfffffff, 0xffffffffffffffef, 0x7bffffffdfdfe7bf,

11002

0xfffffffffffdfc5f, 0xffffff3fffffffff, 0xffffffffffffcfff, 0x0000fffef8000fff,

11003

0x000000007fffffff, 0x000007dbf9ffff7f, 0x3fff1fffffffffff, 0x000000000000c3ff,

11004

0x00007fffffff0000, 0x83ffffffffffffff, 0x7fff6f7f00000000, 0x00000000007fff9f,

11005

0x00000000c3ff0fff, 0xfffe000000000000, 0x001fffffffffffff, 0x3ffffffffffffffe,

11006

0x0af7fe96ffffffef, 0x5ef7f796aa96ea84, 0x0ffffbee0ffffbff, 0x0003000000000000,

11007

0xffff0fffffffffff, 0xfffe7fff000fffff, 0x003ffffffffefffe, 0x00003fffffffffff,

11008

0xffffffc000000000, 0x0fffffffffff0007, 0x0000003f000301ff, 0x1fff1fffe0ffffff,

11009

0x000fffffffffffff, 0x00010fff01ffffff, 0xffffffffffff0fff, 0xffffffff03ff00ff,

11010

0x00033fffffff00ff, 0x1f1f3fff000fffff, 0x07ff1fffffff007f, 0x007f00ff03ff003f,

11011

0xfffffffffff7ffff, 0x03ff0000000007ff, 0xffffffff3fffffff, 0xffff0003ffffffff,

11012

0x00000001ffffffff, 0x00000000000007ff, 0xffffffff00000002, 0x0000ffffffffffff}};

11014 enum class

property {

11016

ascii_hex_digit = ahex,

11018

alphabetic = alpha,

11020

bidi_control = bidi_c,

11022

bidi_mirrored = bidi_m,

11025

case_ignorable = ci,

11030

default_ignorable_code_point = di,

11036

emoji_modifier_base,

11037

emoji_presentation,

11040

extended_pictographic,

11042

grapheme_base = gr_base,

11044

grapheme_extend = gr_ext,

11050

ideographic = ideo,

11054

ids_binary_operator = idsb,

11056

ids_trinary_operator = idst,

11058

join_control = join_c,

11060

logical_order_exception = loe,

11065

noncharacter_code_point = nchar,

11067

pattern_syntax = pat_syn,

11069

pattern_white_space = pat_ws,

11071

prepended_concatenation_mark = pcm,

11073

quotation_mark = qmark,

11076

regional_indicator = ri,

11080

sentence_terminal = sterm,

11082

terminal_punctuation = term,

11084

unified_ideograph = uideo,

11088

variation_selector = vs,

11090

white_space = wspace,

11093

xid_continue = xidc,

11098 namespace

detail::tables {

11099  static

constexpr range_array prop_ahex_data = {0x00000000, 0x00003001, 0x00003A00, 0x00004101,

11100

0x00004700, 0x00006101, 0x00006700};

11101  static

constexpr bool_trie<32, 991, 1, 0, 133, 255, 1, 0, 1279, 1, 0, 127> prop_alpha_data{

11102

{0x0000000000000000, 0x07fffffe07fffffe, 0x0420040000000000, 0xff7fffffff7fffff,

11103

0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff,

11104

0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x0000501f0003ffc3,

11105

0x0000000000000000, 0xbcdf000000000020, 0xfffffffbffffd740, 0xffbfffffffffffff,

11106

0xffffffffffffffff, 0xffffffffffffffff, 0xfffffffffffffc03, 0xffffffffffffffff,

11107

0xfffeffffffffffff, 0xffffffff027fffff, 0xbfff0000000001ff, 0x000787ffffff00b6,

11108

0xffffffff07ff0000, 0xffffc000feffffff, 0xffffffffffffffff, 0x9c00e1fe1fefffff,

11109

0xffffffffffff0000, 0xffffffffffffe000, 0x0003ffffffffffff, 0x043007fffffffc00},

11110

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,

11111

19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,

11112

36, 36, 36, 36, 37, 38, 39, 40, 41, 42, 43, 44, 36, 36, 36, 36, 36, 36,

11113

36, 36, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,

11114

61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 36, 36, 36, 72, 36, 36, 36,

11115

36, 73, 74, 75, 76, 31, 77, 78, 31, 79, 80, 81, 31, 31, 31, 31, 31, 31,

11116

31, 31, 31, 31, 31, 82, 83, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

11117

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 36,

11118

36, 36, 84, 85, 86, 87, 88, 89, 31, 31, 31, 31, 31, 31, 31, 90, 44, 91,

11119

92, 93, 36, 94, 95, 31, 31, 31, 31, 31, 31, 31, 31, 36, 36, 36, 36, 36,

11120

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11121

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11122

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11123

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11124

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11125

36, 36, 36, 36, 36, 36, 36, 36, 31, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11126

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11127

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11128

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11129

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11130

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11131

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11132

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11133

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11134

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11135

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11136

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11137

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11138

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11139

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11140

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11141

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11142

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11143

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11144

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 96, 97, 36, 36, 36,

11145

36, 98, 99, 36, 100, 101, 36, 102, 103, 104, 105, 36, 106, 107, 108, 109, 110, 68,

11146

111, 112, 113, 114, 115, 36, 116, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11147

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11148

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11149

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11150

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11151

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11152

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11153

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11154

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11155

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11156

36, 117, 118, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

11157

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

11158

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

11159

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

11160

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

11161

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

11162

31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,

11163

31, 31, 31, 31, 31, 31, 31, 31, 31, 36, 36, 36, 36, 36, 119, 36, 120, 121,

11164

122, 123, 124, 36, 36, 36, 36, 125, 33, 126, 127, 31, 128, 36, 129, 130, 131, 112,

11166

{0x00001ffffcffffff, 0xffff07ff01ffffff, 0xffffffff00007eff, 0xffff03f8fff003ff,

11167

0xefffffffffffffff, 0xfffe000fffe1dfff, 0xe3c5fdfffff99fef, 0x1003000fb080599f,

11168

0xc36dfdfffff987ee, 0x003f00005e021987, 0xe3edfdfffffbbfee, 0x1e00000f00011bbf,

11169

0xe3edfdfffff99fee, 0x0002000fb0c0199f, 0xc3ffc718d63dc7ec, 0x0000000000811dc7,

11170

0xe3fffdfffffddfef, 0x0000000f27601ddf, 0xe3effdfffffddfef, 0x0006000f60601ddf,

11171

0xe7fffffffffddfff, 0xfc00000f80f05ddf, 0x2ffbfffffc7fffee, 0x000c0000ff5f807f,

11172

0x07fffffffffffffe, 0x000000000000207f, 0x3bffffaffffff7d6, 0x00000000f000205f,

11173

0x0000000000000001, 0xfffe1ffffffffeff, 0x1ffffffffeffff03, 0x0000000000000000,

11174

0xf97fffffffffffff, 0xffffffffffff0000, 0xffffffff3c00ffff, 0xf7ffffffffff20bf,

11175

0xffffffffffffffff, 0xffffffff3d7f3dff, 0x7f3dffffffff3dff, 0xffffffffff7fff3d,

11176

0xffffffffff3dffff, 0x0000000007ffffff, 0xffffffff0000ffff, 0x3f3fffffffffffff,

11177

0xfffffffffffffffe, 0xffff9fffffffffff, 0xffffffff07fffffe, 0x01ffc7ffffffffff,

11178

0x000fffff800fffff, 0x000ddfff000fffff, 0xffcfffffffffffff, 0x00000000108001ff,

11179

0xffffffff00000000, 0x01ffffffffffffff, 0xffff07ffffffffff, 0x003fffffffffffff,

11180

0x01ff0fff7fffffff, 0x001f3fffffff0000, 0xffff0fffffffffff, 0x00000000000003ff,

11181

0xffffffff0fffffff, 0x001ffffe7fffffff, 0x8000008000000000, 0x0000000000007001,

11182

0xffefffffffffffff, 0x0000000000001fef, 0xfc00f3ffffffffff, 0x0003ffbfffffffff,

11183

0x007fffffffffffff, 0x3ffffffffc00e000, 0xe7ffffffffff01ff, 0x046fde0000000000,

11184

0x001fff8000000000, 0xffffffff3f3fffff, 0x3fffffffaaff3f3f, 0x5fdfffffffffffff,

11185

0x1fdc1fff0fcf1fdc, 0x8002000000000000, 0x000000001fff0000, 0xf3ffbd503e2ffc84,

11186

0xffffffff000043e0, 0x00000000000001ff, 0xffc0000000000000, 0x000003ffffffffff,

11187

0x000c781fffffffff, 0xffff20bfffffffff, 0x000080ffffffffff, 0x7f7f7f7f007fffff,

11188

0xffffffff7f7f7f7f, 0x0000800000000000, 0x1f3e03fe000000e0, 0xfffffffee07fffff,

11189

0xf7ffffffffffffff, 0xfffeffffffffffe0, 0xffffffff00007fff, 0xffff000000000000,

11190

0x0000000000001fff, 0x3fffffffffff0000, 0x00000c00ffff1fff, 0x8ff07fffffffffff,

11191

0x0000ffffffffffff, 0xfffffffcff800000, 0xfffffffffffff9ff, 0xfffc000003eb07ff,

11192

0x000000ffffffffbf, 0x000fffffffffffff, 0xe8fc00000000002f, 0xffff07fffffffc00,

11193

0x1fffffff0007ffff, 0xfff7ffffffffffff, 0x7c00ffff00008000, 0xfc7fffff00003fff,

11194

0x7fffffffffffffff, 0x003cffff38000005, 0xffff7f7f007e7e7e, 0xffff03fff7ffffff,

11195

0x000007ffffffffff, 0xffff000fffffffff, 0x0ffffffffffff87f, 0xffff3fffffffffff,

11196

0x0000000003ffffff, 0x5f7ffdffe0f8007f, 0xffffffffffffffdb, 0x0003ffffffffffff,

11197

0xfffffffffff80000, 0x3fffffffffffffff, 0xfffffffffffcffff, 0x0fff0000000000ff,

11198

0xffdf000000000000, 0x1fffffffffffffff, 0x07fffffe00000000, 0xffffffc007fffffe,

11199

0x000000001cfcfcfc},

11200

{1, 2, 3, 4, 5, 6, 7, 8, 5, 9, 10, 5, 11, 12, 13, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14,

11201

15, 16, 7, 17, 18, 7, 19, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11202

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11203

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11204

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11205

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11206

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11207

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11208

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11209

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5},

11210

{1, 2, 3, 4, 5, 4, 4, 4, 4, 6, 7, 8, 9, 10, 11, 2, 2, 12, 13,

11211

14, 15, 16, 4, 2, 2, 2, 2, 17, 18, 19, 4, 20, 21, 22, 23, 24, 4, 25,

11212

4, 26, 27, 28, 29, 30, 31, 32, 4, 2, 33, 34, 34, 35, 4, 4, 4, 4, 4,

11213

36, 4, 37, 38, 39, 40, 2, 41, 42, 43, 34, 44, 2, 45, 46, 4, 47, 48, 49,

11214

50, 4, 4, 2, 51, 2, 52, 4, 4, 53, 54, 55, 56, 57, 4, 58, 59, 4, 4,

11215

60, 4, 61, 62, 63, 64, 65, 66, 67, 68, 69, 60, 4, 4, 4, 4, 70, 71, 72,

11216

4, 73, 74, 75, 4, 4, 4, 4, 76, 4, 4, 77, 4, 2, 2, 2, 2, 2, 2,

11217

2, 2, 2, 2, 2, 2, 2, 2, 78, 4, 2, 79, 2, 2, 2, 80, 4, 4, 4,

11218

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11219

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 68,

11220

81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 79, 4,

11221

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11222

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11223

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11224

4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 59, 4, 4, 4, 4,

11225

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11226

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11227

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11228

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11229

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11230

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11231

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2,

11232

2, 2, 2, 2, 2, 60, 82, 55, 83, 84, 85, 86, 4, 4, 4, 4, 4, 4, 4,

11233

4, 4, 4, 2, 4, 4, 2, 87, 88, 89, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11234

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11235

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11236

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11237

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11238

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 90, 2, 2, 2, 2, 2, 2, 2, 2,

11239

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 91, 33, 4, 4, 4, 4, 4, 4,

11240

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11241

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11242

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11243

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 92, 2, 2, 2, 2, 93, 94, 2,

11244

2, 2, 2, 2, 95, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11245

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11246

4, 4, 4, 2, 96, 97, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11247

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 98, 99,

11248

100, 101, 102, 2, 2, 2, 2, 103, 104, 105, 106, 107, 108, 4, 4, 4, 4, 4, 4,

11249

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11250

4, 4, 4, 22, 4, 4, 4, 109, 4, 4, 4, 110, 111, 4, 4, 4, 4, 83, 112,

11251

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11252

113, 2, 2, 2, 114, 2, 115, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11253

4, 4, 4, 4, 4, 4, 116, 117, 118, 4, 4, 4, 4, 4, 4, 4, 4, 4, 119,

11254

120, 121, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11255

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11256

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11257

4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11258

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 122, 2, 2, 2, 2, 2, 2, 2, 2,

11259

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11260

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11261

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 60,

11262

2, 2, 2, 10, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11263

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11264

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11265

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11266

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 123, 2,

11267

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11268

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11269

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 124, 4, 4, 4, 4, 4,

11270

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11271

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11272

4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 125, 4, 4, 4, 4, 4,

11273

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2,

11274

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 126, 4, 4, 4, 4, 4, 4,

11275

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11276

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

11278

{0xb7ffff7fffffefff, 0x000000003fff3fff, 0xffffffffffffffff, 0x07ffffffffffffff,

11279

0x0000000000000000, 0x001fffffffffffff, 0xffffffff1fffffff, 0x000000000001ffff,

11280

0xffffe000ffffffff, 0x07ffffffffff07ff, 0xffffffff3fffffff, 0x00000000003eff0f,

11281

0xffff00003fffffff, 0x0fffffffff0fffff, 0xffff00ffffffffff, 0xf7ff000fffffffff,

11282

0x1bfbfffbffb7f7ff, 0x007fffffffffffff, 0x000000ff003fffff, 0x07fdffffffffffbf,

11283

0x91bffffffffffd3f, 0x007fffff003fffff, 0x000000007fffffff, 0x0037ffff00000000,

11284

0x03ffffff003fffff, 0xc0ffffffffffffff, 0x003ffffffeeff06f, 0x1fffffff00000000,

11285

0x000000001fffffff, 0x0000001ffffffeff, 0x003fffffffffffff, 0x0007ffff003fffff,

11286

0x000000000003ffff, 0x00000000000001ff, 0x0007ffffffffffff, 0x000000ffffffffff,

11287

0x00031bffffffffff, 0xffff00801fffffff, 0xffff00000000003f, 0xffff000000000003,

11288

0x007fffff0000001f, 0x003e00000000003f, 0x01fffffffffffffc, 0x000001ffffff0004,

11289

0x0047ffffffff00f0, 0x000000001400c01e, 0x409ffffffffbffff, 0xffff01ffbfffbd7f,

11290

0x000001ffffffffff, 0xe3edfdfffff99fef, 0x0000000fe081199f, 0x00000003800007bb,

11291

0x00000000000000b3, 0x7f3fffffffffffff, 0x000000003f000000, 0x7fffffffffffffff,

11292

0x0000000000000011, 0x013fffffffffffff, 0x000007ffe7ffffff, 0x000000000000007f,

11293

0x01ffffffffffffff, 0xffffffff00000000, 0x80000000ffffffff, 0x99bfffffff6ff27f,

11294

0x0000000000000007, 0xfffffcff00000000, 0x0000001afcffffff, 0x7fe7ffffffffffff,

11295

0xffffffffffff0000, 0xffff000020ffffff, 0x7f7ffffffffffdff, 0xfffc000000000001,

11296

0x007ffefffffcffff, 0xb47ffffffffffb7f, 0xfffffdbf000000cb, 0x00000000017b7fff,

11297

0x007fffff00000000, 0x0001000000000000, 0x0000000003ffffff, 0x00007fffffffffff,

11298

0x000000000000000f, 0x0001ffffffffffff, 0xffff00007fffffff, 0x00003fffffff0000,

11299

0x0000ffffffffffff, 0xe0fffff80000000f, 0x000000000000ffff, 0xffffffffffff87ff,

11300

0x00000000ffff80ff, 0x0003000b00000000, 0x00ffffffffffffff, 0x00000000003fffff,

11301

0x6fef000000000000, 0x00000007ffffffff, 0xffff00f000070000, 0x0fffffffffffffff,

11302

0x1fff07ffffffffff, 0x0000000043ff01ff, 0xffffffffffdfffff, 0xebffde64dfffffff,

11303

0xffffffffffffffef, 0x7bffffffdfdfe7bf, 0xfffffffffffdfc5f, 0xffffff3fffffffff,

11304

0xf7fffffff7fffffd, 0xffdfffffffdfffff, 0xffff7fffffff7fff, 0xfffffdfffffffdff,

11305

0x0000000000000ff7, 0x000007dbf9ffff7f, 0x3f801fffffffffff, 0x0000000000004000,

11306

0x00000fffffffffff, 0x7fff6f7f00000000, 0x000000000000001f, 0x000000000000088f,

11307

0x0af7fe96ffffffef, 0x5ef7f796aa96ea84, 0x0ffffbee0ffffbff, 0xffff000000000000,

11308

0xffff03ffffff03ff, 0x00000000000003ff, 0x00000000ffffffff, 0xffff0003ffffffff,

11309

0x00000001ffffffff, 0x000000003fffffff, 0x00000000000007ff}};

11310  static

constexpr range_array prop_bidi_c_data = {0x00000000, 0x00061C01, 0x00061D00,

11311

0x00200E01, 0x00201000, 0x00202A01,

11312

0x00202F00, 0x00206601, 0x00206A00};

11313  static

constexpr bool_trie<32, 962, 28, 2, 27, 1, 13, 242, 5, 91, 32, 6> prop_bidi_m_data{

11314

{0x5000030000000000, 0x2800000028000000, 0x0800080000000000, 0x0000000000000000,

11315

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11316

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11317

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11318

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11319

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11320

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11321

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000},

11322

{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,

11323

0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11324

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 6, 0, 0, 7, 8,

11325

9, 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 0, 0, 0, 0,

11326

0, 0, 14, 15, 16, 17, 18, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 21, 22, 0, 0, 0, 0,

11327

0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11328

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11329

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11330

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11331

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11332

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11333

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11334

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11335

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11336

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11337

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11338

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11339

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11340

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11341

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11342

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11343

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11344

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11345

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11346

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11347

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11348

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11349

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11350

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11351

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11352

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11353

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11354

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11355

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11356

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11357

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11358

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 25, 26},

11359

{0x0000000000000000, 0x3c00000000000000, 0x0000000018000000, 0x0600000000000000,

11360

0x6000000000000060, 0x0000000000006000, 0x0000000000000001, 0xfa0ff857bc623f1e,

11361

0xffffcff5803c1fff, 0xc1ffffcc01079fff, 0xffff3fffffc33e00, 0x0000060300000f00,

11362

0x003fff0000000000, 0x0000fffc70783b79, 0x0100fffdf9fffff8, 0x33f0033a1f37c23f,

11363

0x70307a53dffffc00, 0xfe19bc3001800000, 0xffffbfcfffffffff, 0x2f88707c507fffff,

11364

0x4000000000000000, 0x000003ff3000363c, 0x000000001fe00000, 0x000000000ff3ff00,

11365

0x000000307e000000, 0x2800000050000300, 0x0000000da8000000},

11368

{0x0000000000000000, 0x0000000008000000, 0x0000000000200000, 0x0000000000008000,

11369

0x0000000000000200, 0x0000000000000008}};

11370  static

constexpr bool_trie<0, 969, 5, 18, 11, 1, 13, 242, 3, 69, 56, 4> prop_ce_data{

11372

{1, 0, 2, 3, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0,

11373

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11374

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11375

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11376

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11377

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11378

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11379

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11380

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11381

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11382

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11383

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11384

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11385

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11386

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11387

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11388

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11389

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11390

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11391

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11392

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11393

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11394

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11395

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11396

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11397

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11398

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11399

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11400

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11401

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11402

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11403

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11404

0, 0, 0, 0, 0, 0, 0, 9, 10},

11405

{0x0000000000000000, 0x00000000ff000000, 0x00000000b0000000, 0x0048000000000000,

11406

0x000000004e000000, 0x0000000030000000, 0x0140020010842008, 0x0200108420080000,

11407

0x0000000010000000, 0x5f7ffc00a0000000, 0x0000000000007fdb},

11410

{0x0000000000000000, 0x0000001fc0000000, 0xf800000000000000, 0x0000000000000001}};

11411  static

constexpr bool_trie<32, 969, 5, 18, 21, 19, 13, 224, 100, 69, 23, 6> prop_comp_ex_data{

11412

{0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11413

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11414

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11415

0x0000000000000000, 0x401000000000001b, 0x0000000000000080, 0x0000000000000000,

11416

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11417

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11418

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11419

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000},

11420

{1, 0, 2, 3, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7,

11421

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11422

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11423

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 13,

11424

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11425

0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11426

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11427

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11428

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11429

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11430

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11431

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11432

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11433

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11434

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11435

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11436

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11437

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11438

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11439

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11440

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11441

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11442

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11443

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11444

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11445

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11446

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11447

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11448

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11449

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11450

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11451

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11452

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11453

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11454

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11455

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11456

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15,

11457

15, 16, 17, 15, 18, 19, 20},

11458

{0x0000000000000000, 0x00000000ff000000, 0x00000000b0000000, 0x0048000000000000,

11459

0x000000004e000000, 0x0000000030000000, 0x0168020010842008, 0x0200108420080002,

11460

0x2aaa000000000000, 0x4800000000000000, 0x2a00c80808080a00, 0x0000000000000003,

11461

0x00000c4000000000, 0x0000060000000000, 0x0000000010000000, 0xffffffffffffffff,

11462

0xfffffc657fe53fff, 0xffff3fffffffffff, 0x0000000003ffffff, 0x5f7ffc00a0000000,

11463

0x0000000000007fdb},

11464

{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2},

11465

{1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11466

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11467

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11468

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 5},

11469

{0x0000000000000000, 0x0000001fc0000000, 0xf800000000000000, 0x0000000000000001,

11470

0xffffffffffffffff, 0x000000003fffffff}};

11471  static

constexpr flat_array<30> prop_dash_data{

11472

{0x1400, 0x1806, 0x058A, 0x208B, 0xFF0D, 0x2010, 0x2011, 0x2012, 0x2013, 0x2014,

11473

0x2015, 0x2212, 0x2E17, 0x2E1A, 0x301C, 0x30A0, 0x002D, 0x10EAD, 0x3030, 0xFE31,

11474

0xFE32, 0x2E3A, 0x2E3B, 0x05BE, 0x2E40, 0x2053, 0xFE58, 0x2E5D, 0xFE63, 0x207B}};

11475  static

constexpr flat_array<15> prop_dep_data{{0xE0001, 0x17A3, 0x17A4, 0x0149, 0x206A, 0x206B,

11476

0x206C, 0x206D, 0x206E, 0x206F, 0x2329, 0x232A,

11477

0x0673, 0x0F77, 0x0F79}};

11478  static

constexpr bool_trie<32, 991, 1, 0, 64, 255, 1, 0, 475, 11, 26, 42> prop_dia_data{

11479

{0x0000000000000000, 0x0000000140000000, 0x0190810000000000, 0x0000000000000000,

11480

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11481

0x0000000000000000, 0x0000000000000000, 0xffff000000000000, 0xffffffffffffffff,

11482

0xffffffffffffffff, 0x04300007e0ff7fff, 0x0000000000000030, 0x0000000000000000,

11483

0x0000000000000000, 0x0000000000000000, 0x00000000000000f8, 0x0000000000000000,

11484

0x0000000000000000, 0x0000000002000000, 0xbffffffbfffe0000, 0x0000000000000016,

11485

0x0000000000000000, 0x000000000187f800, 0x0000000000000000, 0x00001c6180000000,

11486

0xffff000000000000, 0x00000000000007ff, 0x0001ffc000000000, 0x003ff80000000000},

11487

{1, 2, 3, 4, 5, 4, 6, 4, 6, 4, 7, 4, 8, 1, 6, 4, 6, 4, 6, 9, 6, 1, 10,

11488

1, 11, 12, 13, 14, 1, 15, 16, 17, 18, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 1,

11489

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 21, 1, 1, 22, 1, 1, 1, 1, 23, 1,

11490

1, 1, 1, 24, 25, 26, 27, 28, 29, 1, 30, 31, 1, 32, 33, 34, 1, 35, 1, 1, 1, 1, 1,

11491

1, 36, 37, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11492

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11493

1, 1, 1, 1, 1, 1, 1, 1, 38, 1, 1, 1, 1, 39, 1, 1, 1, 1, 1, 1, 1, 40, 1,

11494

41, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11495

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11496

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11497

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11498

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11499

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11500

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11501

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11502

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11503

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11504

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11505

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11506

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11507

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11508

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11509

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11510

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11511

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11512

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11513

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11514

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 42, 43, 44, 45, 1, 46, 47, 1, 1, 1, 48, 49,

11515

50, 51, 52, 1, 53, 54, 55, 1, 56, 1, 57, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11516

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11517

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11518

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11519

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11520

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11521

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11522

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11523

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11524

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11525

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11526

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11527

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11528

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11529

1, 1, 1, 1, 1, 58, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 59, 1, 1, 1, 60, 61,

11531

{0x0000000003000000, 0x0000000000000000, 0x00000000ff000000, 0x7ffffff80007fe00,

11532

0x1000000000000000, 0x00020000001e2000, 0x0000000000002000, 0xe000000000002000,

11533

0x0000000000202000, 0x1800000000000000, 0x0000000000000400, 0x0000000000005f80,

11534

0x0400000000000000, 0x0000000000001f00, 0xc2a0000003000000, 0x00000000000000dc,

11535

0x0000000000000040, 0x0680000000000000, 0x00003e1800000000, 0x000000000c00bf80,

11536

0x00000000e0000000, 0x0000000000300000, 0x00000000200ffe00, 0x0e00000000000000,

11537

0x9fe0000000000000, 0x7fff000000000000, 0x0000000000000ffe, 0x0010000000000000,

11538

0x000ff80000000010, 0x00000c0000000000, 0x00c0000000000000, 0x3f00000000000000,

11539

0x039021ffffff0000, 0xfffff00000000000, 0x000007ffffffffff, 0xffe000000000fff0,

11540

0xa000000000000000, 0x6000e000e000e003, 0x0003800000000000, 0x0000800000000000,

11541

0x0000fc0000000000, 0x000000001e000000, 0xb000800000000000, 0x0000000030000000,

11542

0x0003000000000000, 0x00000003ffffffff, 0x0000000000000700, 0x0300000000000000,

11543

0x0003ffff00000010, 0x0000780000000000, 0x0000000000080000, 0x0008000000000000,

11544

0x0000002000000001, 0x3800000000000000, 0x8000000000000000, 0x0040000000000007,

11545

0x00000e00f8000000, 0x0000300000000000, 0x0000000040000000, 0x0000ffff00000000,

11546

0x4000000000000000, 0x0001000000000001, 0x00000000c0000000, 0x0000000800000000},

11547

{1, 2, 2, 2, 2, 3, 2, 2, 2, 4, 2, 5, 6, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11548

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,

11549

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,

11550

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,

11551

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,

11552

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,

11553

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,

11554

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,

11555

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},

11556

{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,

11557

0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,

11558

0, 0, 5, 6, 0, 0, 7, 8, 0, 9, 10, 0, 11, 12, 0, 0, 13, 14, 15, 0, 0, 0, 16, 0,

11559

17, 0, 0, 18, 19, 18, 0, 20, 0, 21, 0, 0, 0, 8, 0, 0, 0, 22, 23, 0, 1, 24, 25, 26,

11560

0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11561

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11562

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11563

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11564

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11565

0, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11566

0, 0, 0, 31, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11567

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11568

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0,

11569

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11570

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11571

0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 0, 0, 0, 0, 0, 0, 36, 37, 0, 0, 0, 0,

11572

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11573

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

11574

0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 38, 39, 0, 0, 0, 0, 0, 0, 0,

11575

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 41},

11576

{0x0000000000000000, 0x0000000100000000, 0x07fdffffffffffbf, 0x0000006000000000,

11577

0x000000fc00000000, 0x000000000001ffc0, 0x000000000000003c, 0x0001000000000040,

11578

0x0600000000000000, 0x0018000000000000, 0x0008000000000000, 0x0000000000001c01,

11579

0x0060000000000000, 0x0000060000000000, 0x1000000000000000, 0x001f1fc000002000,

11580

0x0000000000000044, 0x000000000000000c, 0x8000000000000000, 0x0000000000000001,

11581

0x00c0000000000000, 0x0000080000000000, 0x6000000000000000, 0x0000000000000008,

11582

0x0010000000000000, 0x0000000000000080, 0x0000000002000000, 0x0000000000000034,

11583

0x0000000000800000, 0x001f000000000000, 0x007f000000000000, 0x00000000ffff8000,

11584

0x0003000000000000, 0x6fef000000000000, 0xffff3fffffffffff, 0x000000000000007f,

11585

0xf807e38000000000, 0x00003c0000000fe7, 0x0000400000000000, 0x0000f00000000000,

11586

0x00000000007f0000, 0x0000000000000770}};

11587  static

constexpr bool_trie<32, 75, 96, 821, 22, 1, 15, 240, 44, 64, 20, 25> prop_emoji_data{

11588

{0x03ff040800000000, 0x0000000000000000, 0x0000420000000000, 0x0000000000000000,

11589

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11590

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11591

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11592

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11593

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11594

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11595

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000},

11596

{1, 2, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 5, 0, 0, 6, 0, 0, 0, 7, 0, 0, 8, 9, 10,

11597

11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 18, 19, 0, 0, 0, 0,

11598

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21},

11599

{0x0000000000000000, 0x1000000000000000, 0x0000000000000200, 0x0200000400000000,

11600

0x0000060003f00000, 0x000001000c000000, 0x070ffe0000008000, 0x0000000000000004,

11601

0x00400c0000000000, 0x7800000000000001, 0x0700c44d2132401f, 0xc8000169800fff05,

11602

0x60030c831afc0000, 0x27bf0600001ac130, 0x001801022054bf24, 0x0000001800b85090,

11603

0x8001000200e00000, 0x0030000000000000, 0x00000000180000e0, 0x0000000000210000,

11604

0x2001000000000000, 0x0000000002800000},

11606

{1, 0, 0, 2, 0, 3, 4, 5, 6, 7, 0, 0, 8, 9, 10, 11, 9, 9, 9, 12, 13, 14,

11607

15, 16, 9, 17, 9, 18, 0, 0, 0, 19, 0, 0, 0, 0, 20, 21, 9, 9, 0, 22, 23, 24},

11608

{0x0000000000000000, 0x0000000000000010, 0x0000000000008000, 0xc003000000000000,

11609

0x0000000007fe4000, 0xffffffc000000000, 0x07fc800004000006, 0x0000000000030000,

11610

0xfffffff3ffffffff, 0xffffffffffffffff, 0xffffffffcecfffff, 0xffb9ffffffffffff,

11611

0xbfffffffffffffff, 0x3fffffffffffffff, 0x07f980ffffff7e00, 0x1006013000613c80,

11612

0xfc08810a700e001c, 0x000000000000ffff, 0x1ff91a3fe0e7f83f, 0x00010fff00000000,

11613

0xf7fffffffffff000, 0xffffffffffffffbf, 0x1f1f000000000000, 0x07ff1fffffff007f,

11614

0x007f00ff03ff003f}};

11615  static

constexpr range_array prop_emoji_component_data = {

11616

0x00000000, 0x00002301, 0x00002400, 0x00002A01, 0x00002B00, 0x00003001, 0x00003A00,

11617

0x00200D01, 0x00200E00, 0x0020E301, 0x0020E400, 0x00FE0F01, 0x00FE1000, 0x01F1E601,

11618

0x01F20000, 0x01F3FB01, 0x01F40000, 0x01F9B001, 0x01F9B400, 0x0E002001, 0x0E008000};

11619  static

constexpr range_array prop_emoji_modifier_data = {0x00000000, 0x01F3FB01, 0x01F40000};

11620  static

constexpr bool_trie<0, 5, 120, 867, 4, 1, 15, 240, 30, 78, 20, 15>

11621

prop_emoji_modifier_base_data{

11624

{0x0000000000000000, 0x0000000020000000, 0x0200000000000000, 0x0000000000003c00},

11626

{1, 2, 0, 3, 4, 0, 0, 5, 6, 0, 0, 7, 8, 9, 0,

11627

0, 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, 0, 0, 0, 14},

11628

{0x0000000000000000, 0x0000000000000020, 0x0000000000001c9c, 0x11ffffc00001ffcc,

11629

0x00000400000280ee, 0x0430000000000000, 0x0000000000610000, 0x000000000000f8e0,

11630

0x0070000800000000, 0x0000000000001001, 0x73ff0040ff009000, 0x0080000000000000,

11631

0x0b60000000000000, 0x000000003ffee000, 0x007f000000000038}};

11632  static

constexpr bool_trie<0, 34, 108, 850, 13, 1, 15, 240, 44, 64, 20, 27>

11633

prop_emoji_presentation_data{

11635

{1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, 8,

11636

9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 12},

11637

{0x0000000000000000, 0x000000000c000000, 0x00091e0000000000, 0x6000000000000000,

11638

0x0000000000300000, 0x80000000000fff00, 0x60000c0200080000, 0x242c040000104030,

11639

0x0000010000000c20, 0x0000000000b85000, 0x8001000000e00000, 0x0000000018000000,

11640

0x0000000000210000},

11642

{1, 0, 0, 2, 0, 0, 3, 4, 5, 6, 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,

11643

17, 18, 13, 19, 13, 20, 0, 0, 0, 21, 0, 0, 0, 0, 22, 23, 13, 13, 0, 24, 25, 26},

11644

{0x0000000000000000, 0x0000000000000010, 0x0000000000008000, 0x0000000007fe4000,

11645

0xffffffc000000000, 0x077c800004000002, 0x0000000000030000, 0xffbfe001ffffffff,

11646

0xdfffffffffffffff, 0xffffffff000fffff, 0xff11ffff000f87ff, 0x7fffffffffffffff,

11647

0xfffffffffffffffd, 0xffffffffffffffff, 0x9fffffffffffffff, 0x3fffffffffffffff,

11648

0x040000ffffff7800, 0x0000001000600000, 0xf800000000000000, 0x000000000000ffff,

11649

0x1ff01800e0e7103f, 0x00010fff00000000, 0xf7fffffffffff000, 0xffffffffffffffbf,

11650

0x1f1f000000000000, 0x07ff1fffffff007f, 0x007f00ff03ff003f}};

11651  static

constexpr flat_array<50> prop_ext_data{

11652

{0x10781, 0x10782, 0x3005, 0x180A, 0xA60C, 0xA015, 0x11A98, 0x309D, 0x309E, 0x1AA7,

11653

0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x1C36, 0x00B7, 0x1E13C, 0x1E13D, 0x0640,

11654

0x16B42, 0x1843, 0x16B43, 0x1E944, 0x0E46, 0x0EC6, 0x115C6, 0x115C7, 0x115C8, 0x1E945,

11655

0x1E946, 0xA9CF, 0x02D0, 0x02D1, 0x0B55, 0xAADD, 0x1135D, 0x16FE0, 0x16FE1, 0x16FE3,

11656

0xA9E6, 0xAA70, 0xFF70, 0xAAF3, 0xAAF4, 0x07FA, 0x1C7B, 0x30FC, 0x30FD, 0x30FE}};

11657  static

constexpr bool_trie<32, 75, 96, 821, 22, 1, 15, 240, 44, 64, 20, 22>

11658

prop_extended_pictographic_data{

11659

{0x0000000000000000, 0x0000000000000000, 0x0000420000000000, 0x0000000000000000,

11660

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11661

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11662

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11663

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11664

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11665

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11666

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000},

11667

{1, 2, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 5, 0, 6, 7, 0, 0, 0, 8, 0, 0, 9, 10, 11,

11668

12, 13, 12, 14, 15, 16, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 18, 19, 0, 0, 0, 0,

11669

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21},

11670

{0x0000000000000000, 0x1000000000000000, 0x0000000000000200, 0x0200000400000000,

11671

0x0000060003f00000, 0x000001000c000000, 0x0000000000000100, 0x070ffe0000008000,

11672

0x0000000000000004, 0x00400c0000000000, 0x7800000000000001, 0xfffffffffff7ffbf,

11673

0xffffffffffffffff, 0xffffffffffff003f, 0x001801022057ff3f, 0x000000f800b85090,

11674

0x8001000200e00000, 0x0030000000000000, 0x00000000180000e0, 0x0000000000210000,

11675

0x2001000000000000, 0x0000000002800000},

11677

{1, 2, 3, 4, 5, 6, 7, 0, 8, 9, 0, 0, 2, 2, 2, 10, 2, 2, 2, 2, 11, 12,

11678

2, 2, 2, 13, 2, 14, 0, 0, 0, 15, 0, 0, 16, 0, 17, 18, 2, 2, 2, 19, 20, 21},

11679

{0x0000000000000000, 0xffff0fffffffffff, 0xffffffffffffffff, 0xfffe7fff000fffff,

11680

0x003ffffffffefffe, 0x000080000000e000, 0xc003f00000000000, 0x0000200007fe4000,

11681

0x07fc800004000006, 0x0000003f00030000, 0x07ffffffffffffff, 0x3fffffffffffffff,

11682

0xffffffffffffffc0, 0x000000000000ffff, 0x1fff1fffe0ffffff, 0x00010fff01e00000,

11683

0x0003000000000000, 0xf7fffffffffff000, 0xffffffffffffffbf, 0x1f1f3fff000fffff,

11684

0x07ff1fffffff007f, 0x007f00ff03ff003f}};

11685  static

constexpr bool_trie<32, 991, 1, 0, 131, 255, 1, 0, 1343, 1, 0, 168> prop_gr_base_data{

11686

{0xffffffff00000000, 0x7fffffffffffffff, 0xffffdfff00000000, 0xffffffffffffffff,

11687

0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff,

11688

0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff,

11689

0x0000000000000000, 0xfcff000000000000, 0xfffffffbffffd7f0, 0xffffffffffffffff,

11690

0xffffffffffffffff, 0xffffffffffffffff, 0xfffffffffffffc07, 0xffffffffffffffff,

11691

0xfffeffffffffffff, 0xfffffffffe7fffff, 0x400000000000e7ff, 0x001f87ffffff0049,

11692

0xffffffffe800ffc0, 0xfffeffff000007ff, 0xffffffffffffffff, 0xffffc260403fffff,

11693

0x0000fffffffd3fff, 0xffffffffffffe000, 0x0002003fffffffff, 0xc7f007ffffffffff},

11694

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,

11695

19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,

11696

36, 36, 36, 36, 37, 38, 39, 40, 41, 42, 43, 36, 36, 36, 36, 36, 36, 36,

11697

36, 36, 36, 44, 45, 46, 47, 48, 49, 50, 45, 51, 52, 53, 54, 55, 56, 57,

11698

58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 36, 36, 36, 60, 36, 36, 36,

11699

36, 69, 70, 71, 72, 73, 74, 75, 76, 36, 36, 77, 36, 36, 36, 36, 36, 36,

11700

36, 36, 36, 78, 79, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11701

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 80, 81, 36, 36,

11702

36, 36, 82, 83, 84, 85, 86, 36, 87, 88, 89, 36, 36, 36, 90, 91, 92, 93,

11703

36, 94, 36, 95, 96, 97, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11704

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11705

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11706

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11707

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11708

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11709

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11710

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11711

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11712

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11713

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11714

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11715

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11716

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11717

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11718

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11719

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11720

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11721

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11722

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11723

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11724

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11725

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11726

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11727

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11728

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 98, 99, 36, 36, 36,

11729

36, 100, 101, 102, 103, 36, 36, 36, 104, 105, 106, 36, 107, 108, 109, 110, 111, 112,

11730

113, 114, 115, 116, 55, 36, 117, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11731

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11732

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11733

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11734

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11735

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11736

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11737

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11738

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11739

36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,

11740

36, 96, 118, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,

11741

60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,

11742

60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,

11743

60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,

11744

60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,

11745

60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,

11746

60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,

11747

60, 60, 60, 60, 60, 60, 60, 60, 60, 36, 36, 36, 36, 36, 119, 36, 120, 121,

11748

122, 36, 123, 36, 36, 36, 36, 36, 36, 124, 125, 126, 127, 36, 128, 92, 36, 129,

11750

{0x7fff0110043fffff, 0xffff07ff41ffffff, 0xffffffff00007fff, 0x00000000000003ff,

11751

0xebfffffffffffff8, 0xfffffff3ff01de01, 0xa3c5fdfffff99fed, 0x3fffffc3b0005981,

11752

0xc36dfdfffff987e8, 0x005cffc05e000001, 0xe3edfdfffffbbfe8, 0x0203ffc300011a01,

11753

0x23edfdfffff99fec, 0x00ffffc3b0001981, 0x83ffc718d63dc7e8, 0x07ffffc000011dc6,

11754

0x23fffdfffffddfee, 0xff80ffc32700001e, 0x63effdfffffddffd, 0x0006ffc360000d9b,

11755

0xa7fffffffffddffc, 0xffffffc3ff70ddc1, 0x2ffbfffffc7fffec, 0x001cffc07f03007f,

11756

0x800dfffffffffffe, 0x000000000fff807f, 0x200dffaffffff7d6, 0x00000000f3ff005f,

11757

0xfd5ffffffcffffff, 0x80001ffffffffeff, 0xc000000000001f20, 0x0000000007ffdfbf,

11758

0x99021fffffffffff, 0xffe1fffe3cffffff, 0xffffffffdfffdf9b, 0xffffffffffff20bf,

11759

0xffffffffffffffff, 0xffffffff3d7f3dff, 0x7f3dffffffff3dff, 0xffffffffff7fff3d,

11760

0xffffffffff3dffff, 0x1fffffff07ffffff, 0xffffffff03ffffff, 0x3f3fffffffffffff,

11761

0xffffffff1fffffff, 0x01ffffffffffffff, 0x0073ffff8023ffff, 0x0001dfff0003ffff,

11762

0xc04fffffffffffff, 0x03ff03ff1ff001bf, 0xffffffff03ff07ff, 0xffff05ffffffff9f,

11763

0x003fffffffffffff, 0x01fb0e787fffffff, 0x001f3ffffffffff1, 0xffff0fffffffffff,

11764

0xffffffffc7ff03ff, 0xffffffffc67fffff, 0x0007e01a00bfffff, 0x00003fff03ff03ff,

11765

0x0000000000000000, 0xe80ffffffffffff0, 0x7ff007ffffff1ffb, 0xffffc4c3fffffffc,

11766

0xf00c5cbfffffffff, 0xf8300fffffffffff, 0xffffffffffffe3ff, 0xe7ffffffffff01ff,

11767

0x04efde02000800ff, 0xffffffff3f3fffff, 0x3fffffffaaff3f3f, 0xffdfffffffffffff,

11768

0x7fdcffffefcfffdf, 0xffff80ffffff07ff, 0xfff30000ffffffff, 0xffffffff1fff7fff,

11769

0x0000000000000001, 0xffffffffffff0fff, 0x0000007fffffffff, 0xffffffff000007ff,

11770

0xffcfffffffffffff, 0xffffffffffbfffff, 0xfe0c7fffffffffff, 0xffff20bfffffffff,

11771

0x000180ffffffffff, 0x7f7f7f7f007fffff, 0x000000007f7f7f7f, 0x000000003fffffff,

11772

0xfffffffffbffffff, 0x000fffffffffffff, 0x0fff0000003fffff, 0xffff03ffffffffff,

11773

0xfffffffffffffffe, 0xfffffffff87fffff, 0xfffeffffffffffe0, 0xffffffffffff7fff,

11774

0xffff000fffffffff, 0xffffffff7fffffff, 0xffffffffffff1fff, 0xffffffffffff007f,

11775

0x00000fffffffffff, 0xc0087fffffffffff, 0xffffffff3fffffff, 0x00fcffffffffffff,

11776

0xfffc000003eb07ff, 0x03ff0f9ffffff7bb, 0x00ffffffffffffff, 0x7ffc000003ffc00f,

11777

0xffffc03fffffffff, 0x1fffffff800c007f, 0xcc37fffffffffff8, 0x7fffffdfc3ffbfff,

11778

0x001981ffffffffff, 0xeffffffff3ff2ff7, 0x3e62ffffffffffff, 0x003fcffff8000005,

11779

0xffff7f7f007e7e7e, 0x03ff1edfffffffff, 0x0ffffffffffff87f, 0xffff3fffffffffff,

11780

0x0000000003ffffff, 0x5f7fffffa0f8007f, 0xffffffffffffffdb, 0xfffffffffff80007,

11781

0xfffffffffffcffff, 0xffff0000000080ff, 0xffff000003ff0000, 0xffdf0f7ffff7ffff,

11782

0x1fffffffffffffff, 0x7fffffff3fffffff, 0x30007f7f1cfcfcfc},

11783

{1, 2, 3, 4, 5, 6, 7, 8, 5, 9, 10, 11, 12, 13, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 15,

11784

16, 17, 7, 18, 19, 7, 20, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11785

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11786

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11787

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11788

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11789

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11790

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11791

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

11792

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5},

11793

{1, 2, 3, 4, 2, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 2, 2, 14,

11794

15, 16, 17, 18, 7, 2, 2, 2, 2, 19, 20, 21, 7, 22, 23, 24, 25, 26,

11795

7, 27, 28, 29, 30, 31, 32, 33, 34, 35, 7, 2, 36, 37, 38, 39, 7, 7,

11796

7, 7, 40, 41, 7, 16, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,

11797

7, 54, 55, 56, 57, 7, 7, 58, 59, 60, 61, 7, 7, 62, 63, 64, 65, 66,

11798

67, 68, 69, 7, 7, 70, 7, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 7,

11799

7, 7, 7, 81, 82, 83, 7, 84, 85, 86, 7, 7, 7, 7, 87, 7, 7, 88,

11800

89, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 90, 7, 2,

11801

91, 2, 2, 2, 92, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11802

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11803

7, 7, 7, 7, 7, 7, 7, 7, 7, 93, 37, 2, 2, 2, 2, 2, 2, 2,

11804

2, 2, 2, 2, 2, 2, 2, 2, 2, 94, 7, 7, 7, 7, 7, 7, 7, 7,

11805

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11806

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11807

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11808

7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 69, 7, 7, 7, 7, 7, 7, 7,

11809

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11810

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11811

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11812

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11813

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11814

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11815

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11816

7, 2, 2, 2, 2, 2, 2, 2, 2, 80, 95, 96, 97, 98, 99, 100, 7, 7,

11817

7, 7, 7, 7, 7, 7, 7, 7, 2, 101, 7, 2, 102, 103, 104, 2, 2, 2,

11818

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11819

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11820

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11821

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11822

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11823

2, 2, 58, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11824

2, 2, 2, 2, 105, 36, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11825

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11826

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11827

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11828

7, 7, 7, 7, 7, 7, 7, 7, 106, 2, 2, 2, 2, 107, 108, 2, 2, 2,

11829

2, 2, 109, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11830

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11831

7, 7, 7, 2, 110, 111, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11832

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11833

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11834

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11835

7, 7, 7, 7, 7, 7, 7, 7, 93, 2, 92, 2, 2, 2, 112, 113, 114, 115,

11836

116, 2, 117, 7, 118, 2, 119, 7, 7, 2, 120, 121, 122, 123, 124, 2, 2, 2,

11837

2, 125, 2, 2, 2, 2, 126, 2, 2, 2, 2, 2, 2, 2, 2, 127, 128, 129,

11838

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 130,

11839

7, 7, 7, 7, 7, 7, 7, 131, 132, 7, 7, 7, 7, 133, 134, 7, 7, 7,

11840

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 135, 2,

11841

2, 2, 136, 2, 137, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 138, 139,

11842

7, 140, 7, 7, 7, 141, 142, 143, 144, 7, 7, 7, 7, 145, 2, 146, 147, 2,

11843

2, 148, 149, 150, 151, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11844

2, 2, 2, 2, 152, 2, 153, 2, 154, 155, 156, 157, 7, 2, 2, 2, 2, 2,

11845

158, 159, 160, 2, 2, 161, 162, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11846

7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11847

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 31, 2, 2, 2,

11848

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11849

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11850

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11851

2, 2, 2, 2, 2, 2, 2, 80, 2, 2, 2, 163, 2, 2, 2, 2, 2, 2,

11852

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11853

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11854

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11855

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11856

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 164, 2, 2, 2, 2, 2, 2,

11857

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11858

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11859

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 165, 7, 7, 7, 7, 7, 7, 7,

11860

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11861

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11862

7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 166, 7, 7, 7, 7,

11863

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11864

7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 167, 7, 7, 7,

11865

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11866

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,

11867

7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7},

11868

{0xb7ffff7fffffefff, 0x000000003fff3fff, 0xffffffffffffffff, 0x07ffffffffffffff,

11869

0xff8fffffffffff87, 0x000000011fff7fff, 0x1fffffffffff0000, 0x0000000000000000,

11870

0xffffffff1fffffff, 0x0ffffffe0001ffff, 0xffffe00fffffffff, 0x003fffffffff07ff,

11871

0xffffffffbfffffff, 0x00000000003fff0f, 0xffff03ff3fffffff, 0x0fffffffff0fffff,

11872

0xffff00ffffffffff, 0xf7ff800fffffffff, 0x1bfbfffbffb7f7ff, 0x007fffffffffffff,

11873

0x000000ff003fffff, 0x07fdffffffffffbf, 0x91bffffffffffd3f, 0xffffffffffbfffff,

11874

0x0000ff807fffffff, 0xf837ffff00000000, 0x83ffffff8fffffff, 0xf0ffffffffffffff,

11875

0xfffffffffffcffff, 0x003ffffffeef0001, 0xffffffff01ff01ff, 0x00000000ffffffff,

11876

0x007ff81fffffffff, 0xfe3fffffffffffff, 0xff07ffffff3fffff, 0x0000fe001e03ffff,

11877

0x00000000000001ff, 0x0007ffffffffffff, 0xfc07ffffffffffff, 0x03ff000fffffffff,

11878

0x7fffffff00000000, 0x000323ffffffffff, 0xffff000003fe003f, 0xffff0000000003c3,

11879

0x007fffff00000fff, 0x00fffffffffffffd, 0x0026fffffffc3f80, 0xd987fffffffffffc,

11880

0x03ff01ffffff0003, 0xffc0107ffffffff8, 0x0077ffffffff00ff, 0x803ffffffffffffc,

11881

0x001ffffeffff61ff, 0x3f2c7ffffffbffff, 0xffff03ffbfffbd7f, 0x03ff00077fffffff,

11882

0xa3edfdfffff99fec, 0x0000000fe001399e, 0x00ffffffffffffff, 0x00000003afffffa3,

11883

0x5a06ffffffffffff, 0x0000000003ff00f2, 0x4f037fffffffffff, 0x000000000ffffffe,

11884

0x5807ffffffffffff, 0x00001fff03ff001e, 0x0340d7ffffffffff, 0x00000000000003ff,

11885

0xffff004307ffffff, 0x000000000000007f, 0x09007fffffffffff, 0xffffffff00000000,

11886

0x8007ffffffffffff, 0xa1beffffff6ff27f, 0x0000000003ff0077, 0xfffffcff00000000,

11887

0x0000001ef00fffff, 0x8607fffffffff801, 0xfffffffff181007f, 0xffff0007fc8003ff,

11888

0x01ffffffffffffff, 0x4000fffffffffdff, 0xffff1fffffff003f, 0x001202000000ffff,

11889

0x0001fffffffffb7f, 0xfffffdbf03ff0040, 0x000003ff01587fff, 0x01e7ffff00000000,

11890

0x0001000000000000, 0x8003ffffffffffff, 0x0000000003ffffff, 0x001f7fffffffffff,

11891

0x000000000000000f, 0xffffffffffff0000, 0x00007fffffffffff, 0xffffc3ff7fffffff,

11892

0x7fffffffffffffff, 0x00203fffffff03ff, 0xff80ffffffffffff, 0xe0fffffbfbff003f,

11893

0x000000000000ffff, 0x0000000007ffffff, 0xffffffffffff07ff, 0x00000000fff800ff,

11894

0x0003000f00000000, 0x00000000003fffff, 0x6fef000000000000, 0x00000007ffffffff,

11895

0xffff00f000070000, 0x0fffffffffffffff, 0x1fff07ffffffffff, 0x0000000093ff01ff,

11896

0x003fffffffffffff, 0xfffffe7fffffffff, 0x00003c5fffffffff, 0xffffc3fffffff018,

11897

0x000007ffffffffff, 0x0000000000000023, 0x000fffff00000000, 0x01ffffff007fffff,

11898

0xffffffffffdfffff, 0xebffde64dfffffff, 0xffffffffffffffef, 0x7bffffffdfdfe7bf,

11899

0xfffffffffffdfc5f, 0xffffff3fffffffff, 0xffffffffffffcfff, 0x0780000000000000,

11900

0xffdfe00000000000, 0x0000000000000fef, 0x000000007fffffff, 0x3f801fffffffffff,

11901

0x000000000000c3ff, 0x00003fffffff0000, 0x83ff0fffffffffff, 0x7fff6f7f00000000,

11902

0x000000000000ff9f, 0x00000000c3ff080f, 0xfffe000000000000, 0x001fffffffffffff,

11903

0x3ffffffffffffffe, 0x0af7fe96ffffffef, 0x5ef7f796aa96ea84, 0x0ffffbee0ffffbff,

11904

0x0003000000000000, 0xffff0fffffffffff, 0xfffe7fff000fffff, 0x003ffffffffefffe,

11905

0x00003fffffffffff, 0xffffffc000000000, 0x0fffffffffff0007, 0x0000003f000301ff,

11906

0x1fff1fffe0ffffff, 0x000fffffffffffff, 0x00010fff01ffffff, 0xffffffffffff0fff,

11907

0xffffffff03ff00ff, 0x00033fffffff00ff, 0x1f1f3fff000fffff, 0x07ff1fffffff007f,

11908

0x007f00ff03ff003f, 0xfffffffffff7ffff, 0x03ff0000000007ff, 0xffffffff3fffffff,

11909

0xffff0003ffffffff, 0x00000001ffffffff, 0x000000003fffffff, 0x00000000000007ff}};

11910  static

constexpr range_array prop_hex_data = {

11911

0x00000000, 0x00003001, 0x00003A00, 0x00004101, 0x00004700, 0x00006101, 0x00006700,

11912

0x00FF1001, 0x00FF1A00, 0x00FF2101, 0x00FF2700, 0x00FF4101, 0x00FF4700};

11913  static

constexpr range_array prop_ideo_data = {

11914

0x00000000, 0x00300601, 0x00300800, 0x00302101, 0x00302A00, 0x00303801, 0x00303B00,

11915

0x00340001, 0x004DC000, 0x004E0001, 0x00A00000, 0x00F90001, 0x00FA6E00, 0x00FA7001,

11916

0x00FADA00, 0x016FE401, 0x016FE500, 0x01700001, 0x0187F800, 0x01880001, 0x018CD600,

11917

0x018D0001, 0x018D0900, 0x01B17001, 0x01B2FC00, 0x02000001, 0x02A6E000, 0x02A70001,

11918

0x02B73900, 0x02B74001, 0x02B81E00, 0x02B82001, 0x02CEA200, 0x02CEB001, 0x02EBE100,

11919

0x02F80001, 0x02FA1E00, 0x03000001, 0x03134B00};

11920  static

constexpr range_array prop_idsb_data = {0x00000000, 0x002FF001, 0x002FF200, 0x002FF401,

11922  static

constexpr flat_array<2> prop_idst_data{{0x2FF2, 0x2FF3}};

11923  static

constexpr flat_array<2> prop_join_c_data{{0x200C, 0x200D}};

11924  static

constexpr range_array prop_loe_data = {0x00000000, 0x000E4001, 0x000E4500, 0x000EC001,

11925

0x000EC500, 0x0019B501, 0x0019B800, 0x0019BA01,

11926

0x0019BB00, 0x00AAB501, 0x00AAB700, 0x00AAB901,

11927

0x00AABA00, 0x00AABB01, 0x00AABD00};

11928  static

constexpr bool_trie<32, 991, 1, 0, 57, 255, 1, 0, 378, 13, 57, 48> prop_oalpha_data{

11929

{0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11930

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11931

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11932

0x0000000000000000, 0x0000000000000020, 0x0000000000000000, 0x0000000000000000,

11933

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

11934

0x0000000000000000, 0x0000000000000000, 0xbfff000000000000, 0x00000000000000b6,

11935

0x0000000007ff0000, 0x00010000fefff800, 0x0000000000000000, 0x0000219e1fc00000,

11936

0xffff000000020000, 0x0000000000000000, 0x0001ffc000000000, 0x0000000000000000},

11937

{1, 1, 2, 3, 4, 5, 6, 5, 7, 5, 8, 5, 9, 10, 11, 12, 13, 5, 13, 12, 14, 15, 16,

11938

17, 18, 19, 18, 1, 20, 21, 1, 22, 23, 24, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11939

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 25, 26, 27, 1, 1, 28, 1, 29, 1,

11940

1, 1, 30, 31, 32, 33, 34, 35, 36, 37, 38, 1, 1, 1, 1, 1, 1, 39, 1, 1, 1, 1, 1,

11941

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 26, 40,

11942

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11943

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 41, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11944

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11945

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11946

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11947

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11948

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11949

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11950

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11951

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11952

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11953

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11954

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11955

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11956

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11957

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11958

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11959

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11960

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11961

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11962

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11963

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11964

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 42, 43, 1, 1, 1, 1, 1, 44, 1, 45, 46, 47,

11965

48, 49, 50, 51, 52, 53, 54, 1, 1, 1, 55, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11966

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11967

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11968

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11969

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11970

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11971

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11972

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11973

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11974

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11975

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11976

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11977

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11978

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11979

1, 1, 1, 1, 1, 56, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

11981

{0x00001eeff8c00000, 0x0000000000000000, 0xffff03f8fff00000, 0xcc0000000000000f,

11982

0x0000000c00e0dfff, 0xc00000000000000e, 0x0000000c0080199f, 0x0023000000021987,

11983

0x1c00000c00001bbf, 0x0000000c00c0199f, 0xc000000000000004, 0x0000000000801dc7,

11984

0xc00000000000000f, 0x0000000c00601ddf, 0x0000000c00801ddf, 0x000000000000000e,

11985

0x000c0000ff5f8000, 0x07f2000000000000, 0x0000000000002000, 0x1bf2000000000000,

11986

0xfffe000000000000, 0x1ffffffffeffe003, 0x797ff80000000000, 0x001e3f9dc3c00000,

11987

0x000000003c00bffc, 0x000c0000000c0000, 0xffc0000000000000, 0x00000000000001ff,

11988

0x0000020000000060, 0x01ff0fff00000000, 0x000000000f800000, 0x001ffffe7fe00000,

11989

0x8000000000000000, 0x0000000000007001, 0xffe000000000001f, 0x000000000000000f,

11990

0x000033fe00000007, 0x0003ff8000000000, 0x007ffff000000000, 0x001fff8000000000,

11991

0x000003ffffffffff, 0xffffffff00000000, 0x0ff0000000000000, 0x00000000c0000000,

11992

0x000000f800000804, 0xfff0000000000003, 0x800000000000002f, 0x000007c000000000,

11993

0x000000000007ff80, 0xfff000000000000f, 0x0000002000000000, 0x007ffe0000000000,

11994

0x3800000000003008, 0x419d000000000000, 0x0020f80000000000, 0x000007f800000000,

11995

0x0000000040000000},

11996

{1, 2, 2, 2, 2, 3, 2, 2, 2, 2, 4, 2, 2, 5, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

11997

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,

11998

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,

11999

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,

12000

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,

12001

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,

12002

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,

12003

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,

12004

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},

12005

{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12006

0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 4, 0, 0,

12007

0, 0, 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 14, 15, 16, 0, 0, 17, 18, 19, 20, 0,

12008

0, 21, 22, 23, 24, 25, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 29, 0, 30, 31, 32, 33, 0, 0,

12009

0, 0, 0, 34, 0, 35, 0, 36, 37, 38, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12010

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12011

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12012

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12013

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12014

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12015

40, 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12016

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12017

0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0,

12018

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12019

0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12020

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 46, 47},

12021

{0x0000000000000000, 0x07c0000000000000, 0x000000000000f06e, 0x000000f000000000,

12022

0x0000180000000000, 0xff00000000000007, 0x001800000000003f, 0x01ff000000000004,

12023

0x0000000000000004, 0x0007ff8000000007, 0x0000000000000060, 0xfff8000000000007,

12024

0x000000000000c000, 0x409ff00000000000, 0x000001ff80000000, 0xc00000000000000f,

12025

0x0000000c0080199f, 0xffe0000000000000, 0x000000000000003b, 0xffff000000000000,

12026

0x0000000000000003, 0x7f3f800000000000, 0x0000000030000000, 0x7fff000000000000,

12027

0x0000000000000001, 0x003ff80000000000, 0x000007ffe0000000, 0x01fff00000000000,

12028

0x19bf000000000000, 0x0000000000000005, 0x00000010fcfe0000, 0x7be00000000007fe,

12029

0x000000000ffe0000, 0x0000000000fffc00, 0x7f7f800000000000, 0x007ffefffffc0000,

12030

0xb47e000000000000, 0x000000000000008b, 0x00000000007b7c00, 0x0078000000000000,

12031

0xfffffffffffe8000, 0x00000000000780ff, 0x0003000000000000, 0x0000000040000000,

12032

0x000007dbf9ffff7f, 0x0000000000000080, 0xffff03ffffff03ff, 0x00000000000003ff}};

12033  static

constexpr flat_array<7> prop_odi_data{

12034

{0x1160, 0xFFA0, 0x3164, 0x034F, 0x17B4, 0x17B5, 0x115F}};

12035  static

constexpr bool_trie<0, 985, 6, 1, 9, 208, 1, 47, 118, 76, 62, 9> prop_ogr_ext_data{

12037

{1, 2, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 0, 3, 1, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12038

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12039

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12040

6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12041

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12042

0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12043

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12044

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12045

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12046

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12047

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12048

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12049

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12050

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12051

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12052

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12053

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12054

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12055

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12056

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12057

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12058

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12059

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12060

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12061

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12062

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12063

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12064

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12065

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12066

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12067

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12068

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12069

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8},

12070

{0x0000000000000000, 0x4000000000000000, 0x0000000000800000, 0x0000000000600004,

12071

0x0000000080008000, 0x0020000000000000, 0x0000000000001000, 0x0000c00000000000,

12072

0x00000000c0000000},

12073

{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12074

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12075

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12076

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12077

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12078

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12079

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3},

12080

{1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0,

12081

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0,

12082

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12083

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8},

12084

{0x0000000000000000, 0x4000000000000000, 0x0000000000800000, 0x2001000000000000,

12085

0x0000800000000000, 0x0001000000000000, 0x0007c02000000000, 0xffffffff00000000,

12086

0xffffffffffffffff}};

12087  static

constexpr range_array prop_oidc_data = {0x00000000, 0x0000B701, 0x0000B800,

12088

0x00038701, 0x00038800, 0x00136901,

12089

0x00137200, 0x0019DA01, 0x0019DB00};

12090  static

constexpr flat_array<6> prop_oids_data{{0x1885, 0x1886, 0x212E, 0x2118, 0x309B, 0x309C}};

12091  static

constexpr range_array prop_olower_data = {

12092

0x00000000, 0x0000AA01, 0x0000AB00, 0x0000BA01, 0x0000BB00, 0x0002B001, 0x0002B900,

12093

0x0002C001, 0x0002C200, 0x0002E001, 0x0002E500, 0x00034501, 0x00034600, 0x00037A01,

12094

0x00037B00, 0x001D2C01, 0x001D6B00, 0x001D7801, 0x001D7900, 0x001D9B01, 0x001DC000,

12095

0x00207101, 0x00207200, 0x00207F01, 0x00208000, 0x00209001, 0x00209D00, 0x00217001,

12096

0x00218000, 0x0024D001, 0x0024EA00, 0x002C7C01, 0x002C7E00, 0x00A69C01, 0x00A69E00,

12097

0x00A77001, 0x00A77100, 0x00A7F801, 0x00A7FA00, 0x00AB5C01, 0x00AB6000, 0x01078001,

12098

0x01078100, 0x01078301, 0x01078600, 0x01078701, 0x0107B100, 0x0107B201, 0x0107BB00};

12099  static

constexpr bool_trie<32, 893, 96, 3, 21, 2, 13, 241, 107, 80, 5, 16> prop_omath_data{

12100

{0x0000000000000000, 0x0000000040000000, 0x0000000000000000, 0x0000000000000000,

12101

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12102

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12103

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0033000000270000,

12104

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12105

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12106

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12107

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000},

12108

{1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 9, 0, 10, 11, 0, 0, 0, 0, 0, 0, 12, 13, 14, 15, 0,

12109

0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12110

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12111

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12112

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12113

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12114

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12115

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12116

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12117

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12118

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12119

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12120

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12121

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12122

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12123

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12124

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12125

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12126

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12127

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12128

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12129

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12130

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12131

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12132

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12133

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12134

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12135

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12136

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12137

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12138

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12139

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12140

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,

12142

{0x0000000000000000, 0x001c000000400000, 0x6000001e00000001, 0x0000000000006000,

12143

0x0000f8621fff0000, 0xf1fbb3103e2ffc84, 0x00000000000003e0, 0xf0c33eb6f3e00000,

12144

0x000000302feb3fff, 0x0000000000000f00, 0x00b0000000000000, 0x0000000400010000,

12145

0xf07fc00300000000, 0x00001f94000f8cc1, 0x0000000000000060, 0x0000600f00000005,

12146

0x0000ffc000000060, 0x0000000001fffff8, 0x300000000f000000, 0x0000010a00000000,

12147

0x5000000000000000},

12149

{1, 2, 3, 4, 5, 6, 1, 1, 1, 1, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12150

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12151

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12152

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15},

12153

{0x0000000000000000, 0xffffffffffffffff, 0xffffffffffdfffff, 0xebffde64dfffffff,

12154

0xffffffffffffffef, 0x7bffffffdfdfe7bf, 0xfffffffffffdfc5f, 0xffffff3fffffffff,

12155

0xf7fffffff7fffffd, 0xffdfffffffdfffff, 0xffff7fffffff7fff, 0xfffffdfffffffdff,

12156

0xffffffffffffcff7, 0x0af7fe96ffffffef, 0x5ef7f796aa96ea84, 0x0ffffbee0ffffbff}};

12157  static

constexpr range_array prop_oupper_data = {0x00000000, 0x00216001, 0x00217000, 0x0024B601,

12158

0x0024D000, 0x01F13001, 0x01F14A00, 0x01F15001,

12159

0x01F16A00, 0x01F17001, 0x01F18A00};

12160  static

constexpr bool_trie<32, 890, 96, 6, 15, 0, 0, 0, 0, 0, 0, 0> prop_pat_syn_data{

12161

{0xfc00fffe00000000, 0x7800000178000001, 0x88435afe00000000, 0x0080000000800000,

12162

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12163

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12164

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12165

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12166

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12167

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12168

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000},

12169

{1, 2, 0, 0, 0, 0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 6, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12170

7, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 11,

12171

0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12172

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12173

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12174

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12175

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12176

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12177

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12178

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12179

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12180

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12181

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12182

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12183

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12184

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12185

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12186

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12187

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12188

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12189

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12190

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12191

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12192

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12193

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12194

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12195

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12196

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12197

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12198

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12199

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 14},

12200

{0x0000000000000000, 0x7fff00ffffff0000, 0x000000007feffffe, 0xffffffffffff0000,

12201

0xffffffffffffffff, 0x0000007fffffffff, 0x00000000000007ff, 0x003fffffffffffff,

12202

0xfffffffffff00000, 0xffcfffffffffffff, 0xffffffffffbfffff, 0x000000003fffffff,

12203

0x00010001ffffff0e, 0xc000000000000000, 0x0000000000000060},

12207  static

constexpr flat_array<11> prop_pat_ws_data{

12208

{0x0020, 0x0085, 0x2028, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x200E, 0x200F, 0x2029}};

12209  static

constexpr flat_array<13> prop_pcm_data{{0x0600, 0x0601, 0x0602, 0x0603, 0x0604, 0x0605,

12210

0x08E2, 0x110CD, 0x070F, 0x0890, 0x0891, 0x110BD,

12212  static

constexpr range_array prop_qmark_data = {

12213

0x00000000, 0x00002201, 0x00002300, 0x00002701, 0x00002800, 0x0000AB01, 0x0000AC00,

12214

0x0000BB01, 0x0000BC00, 0x00201801, 0x00202000, 0x00203901, 0x00203B00, 0x002E4201,

12215

0x002E4300, 0x00300C01, 0x00301000, 0x00301D01, 0x00302000, 0x00FE4101, 0x00FE4500,

12216

0x00FF0201, 0x00FF0300, 0x00FF0701, 0x00FF0800, 0x00FF6201, 0x00FF6400};

12217  static

constexpr range_array prop_radical_data = {

12218

0x00000000, 0x002E8001, 0x002E9A00, 0x002E9B01, 0x002EF400, 0x002F0001, 0x002FD600};

12219  static

constexpr range_array prop_ri_data = {0x00000000, 0x01F1E601, 0x01F20000};

12220  static

constexpr flat_array<47> prop_sd_data{

12221

{0x1D48A, 0x1D48B, 0x1D58E, 0x1D58F, 0x1D692, 0x1D693, 0x1D96, 0x1DF1A, 0x029D, 0x1D422,

12222

0x1D423, 0x1DA4, 0x1D526, 0x1D527, 0x1DA8, 0x1D62A, 0x1D62B, 0x1E2D, 0x012F, 0x02B2,

12223

0x1D4BE, 0x1D4BF, 0x1D5C2, 0x1D5C3, 0x2148, 0x2149, 0x0249, 0x1ECB, 0x0456, 0x1D456,

12224

0x0458, 0x1D457, 0x1D55A, 0x1D55B, 0x1D65E, 0x1D65F, 0x1D62, 0x0268, 0x0069, 0x006A,

12225

0x2071, 0x1D4F2, 0x03F3, 0x1D4F3, 0x1D5F6, 0x1D5F7, 0x2C7C}};

12226  static

constexpr bool_trie<32, 991, 1, 0, 30, 255, 1, 0, 322, 41, 21, 25> prop_sterm_data{

12227

{0x8000400200000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12228

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12229

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12230

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12231

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12232

0x0000000000000000, 0x0000000000000000, 0x0000000000000200, 0x0000000000000000,

12233

0x00000000e0000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000100000,

12234

0x0000000000000007, 0x0000000000000000, 0x0000000000000000, 0x0200000000000000},

12235

{1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12236

1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1,

12237

1, 1, 1, 1, 1, 1, 5, 1, 1, 6, 1, 1, 1, 7, 1, 1, 1, 1, 8, 1, 1, 1, 1, 9, 1,

12238

1, 10, 1, 1, 11, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 14, 1, 1, 1,

12239

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12240

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12241

1, 15, 16, 1, 1, 1, 1, 1, 1, 17, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12242

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12243

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12244

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12245

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12246

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12247

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12248

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12249

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12250

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12251

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12252

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12253

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12254

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12255

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12256

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12257

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12258

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12259

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12260

1, 18, 1, 1, 1, 1, 19, 1, 1, 20, 1, 1, 1, 1, 1, 21, 1, 19, 22, 1, 1, 23, 1, 24, 1,

12261

25, 1, 1, 1, 26, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12262

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12263

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12264

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12265

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12266

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12267

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12268

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12269

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12270

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12271

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12272

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12273

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

12274

1, 1, 1, 1, 1, 1, 1, 1, 1, 27, 1, 1, 28, 29, 1, 1},

12275

{0x6280000000000000, 0x0000000000000000, 0x0000003000000000, 0x0000000000000c00,

12276

0x0000018400000000, 0x0000400000000000, 0x0060000000000000, 0x0000000000000208,

12277

0x0000000000000030, 0x00000f0000000000, 0x60000000cc000000, 0x1800000000000000,

12278

0xc000000000000000, 0x3000000000000000, 0x0000000000000380, 0x1000400000000000,

12279

0x0000000000180000, 0x0000000000000004, 0x8000000000000000, 0x000000000000c000,

12280

0x0088000000000000, 0x00c0000000000000, 0x0000800000000000, 0x0000000000000300,

12281

0x00000000e0000000, 0x0003000000000000, 0x0000080000000000, 0x0000000000c40000,

12282

0x0000000080004002, 0x0000000200000000},

12283

{1, 2, 2, 2, 2, 3, 2, 2, 2, 2, 4, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12284

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,

12285

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,

12286

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,

12287

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,

12288

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,

12289

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,

12290

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,

12291

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},

12292

{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 4,

12293

5, 6, 0, 7, 0, 8, 9, 0, 10, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 12, 0, 13, 0,

12294

0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 13, 0, 0,

12295

0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12296

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12297

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12298

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12299

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 20, 18, 21, 0, 0, 0,

12300

0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12301

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12302

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12303

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12304

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24},

12305

{0x0000000000000000, 0x0000000000c00000, 0x0000000003e00000, 0x00000000000003c0,

12306

0x0000000000000180, 0xc000000000000000, 0x0000000000000003, 0x000000000000000e,

12307

0x00000000c0002060, 0x1b00000000000000, 0x0000020000000000, 0x0000000000001800,

12308

0x0000000000fffe0c, 0x0000000000000006, 0x7000000000000000, 0x0000000000000050,

12309

0x000000000000000c, 0x0000000018000000, 0x0180000000000000, 0x0000c00000000000,

12310

0x0020000000000000, 0x0000000000000010, 0x0000000001000000, 0x0000000080000000,

12311

0x0000000000000100}};

12312  static

constexpr bool_trie<32, 991, 1, 0, 34, 255, 1, 0, 413, 14, 21, 33> prop_term_data{

12313

{0x8c00500200000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12314

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12315

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12316

0x0000000000000000, 0x4000000000000000, 0x0000000000000080, 0x0000000000000000,

12317

0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,

12318

0x0000000000000000, 0x0000000000000000, 0x0000000000000200, 0x0000000000000008,

12319

0x00000000e8001000, 0x0000000000000000, 0x0000000000000000, 0x0000000000100000,

12320

0x00000000000017ff, 0x0000000000000000, 0x0000000000000000, 0x0300000000000000},

12321

{1, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4,

12322

2, 2, 5, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 2, 2, 2, 2, 2,

12323

2, 2, 2, 2, 2, 2, 8, 2, 9, 10, 2, 2, 11, 12, 2, 2, 2, 2, 13, 2, 2, 2, 2, 14, 2,

12324

2, 15, 2, 2, 16, 17, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 18, 19, 2, 2, 2,

12325

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,

12326

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,

12327

2, 20, 21, 2, 2, 2, 2, 2, 2, 22, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12328

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,

12329

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,

12330

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,

12331

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,

12332

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,

12333

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,

12334

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,

12335

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,

12336

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,

12337

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,

12338

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,

12339

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,

12340

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,

12341

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,

12342

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,

12343

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,

12344

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,

12345

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,

12346

2, 17, 2, 2, 2, 2, 23, 2, 2, 24, 2, 2, 2, 2, 2, 25, 2, 26, 27, 2, 2, 19, 2, 28, 2,

12347

29, 2, 2, 2, 30, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12348

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,

12349

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,

12350

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,

12351

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,

12352

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,

12353

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,

12354

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,

12355

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,

12356

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,

12357

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,

12358

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,

12359

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,

12360

2, 2, 2, 2, 2, 2, 2, 2, 2, 31, 2, 2, 32, 33, 2, 2},

12361

{0x7fff000000000000, 0x0000000040000000, 0x0000000000000000, 0x0000003000000000,

12362

0x000000000c000000, 0x000000000007e100, 0x0000000000000c00, 0x000001fe00000000,

12363

0x0000400000000000, 0x0000380000000000, 0x0060000000000000, 0x0000000004700000,

12364

0x000000000000033c, 0x0000000000000030, 0x00000f0000000000, 0x60000000ec000000,

12365

0xf800000000000000, 0xc000000000000000, 0x3000000000000000, 0x0000000000000380,

12366

0x1000400000000000, 0x000000000018d002, 0x0000000000000006, 0x000000000000e000,

12367

0x00f8000000000000, 0x00c0000000000000, 0x000000000000c000, 0x0000800000000000,

12368

0x00000000e0000000, 0x0003000080000000, 0x0000080000000000, 0x0000000000f70000,

12369

0x000000008c005002, 0x0000001200000000},

12370

{1, 2, 3, 3, 3, 4, 3, 3, 3, 3, 5, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

12371

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

12372

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

12373

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

12374

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

12375

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

12376

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

12377

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,

12378

3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3},

12379

{1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0,

12380

0, 4, 0, 5, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, 10,

12381

11, 12, 0, 13, 0, 14, 15, 0, 16, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 18, 0, 19, 0, 0,

12382

20, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 22, 23, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0,

12383

0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12384

0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12385

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12386

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12387

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12388

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12389

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 28,

12390

29, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12391

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12392

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,

12393

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

12394

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32},

12395

{0x0000000000000000, 0x0000000080000000, 0x0000000000010000, 0x0000000000800000,

12396

0x0000000000c00000, 0x003f000000000000, 0xfc00000000000000, 0x000000001e000000,

12397

0x0000000003e00000, 0x00000000000003c0, 0x0000000000003f80, 0xc000000000000000,

12398

0x0000000000000003, 0x000000000000000e, 0x00000000c0002060, 0x1f00000000000000,

12399

0x0000020000000000, 0x000000000c003800, 0x0000000000fffe3c, 0x0000000000000006,

12400

0x7000000000000000, 0x0000000000000050, 0x000000000000000c, 0x0000000618000000,

12401

0x000200000000000e, 0x0180000000000000, 0x001f000000000000, 0x0000c00000000000,

12402

0x0020000000000000, 0x0380000000000000, 0x0000000000000010, 0x0000000001800000,

12403

0x0000000000000780}};

12404  static

constexpr range_array prop_uideo_data = {

12405

0x00000000, 0x00340001, 0x004DC000, 0x004E0001, 0x00A00000, 0x00FA0E01, 0x00FA1000,

12406

0x00FA1101, 0x00FA1200, 0x00FA1301, 0x00FA1500, 0x00FA1F01, 0x00FA2000, 0x00FA2101,

12407

0x00FA2200, 0x00FA2301, 0x00FA2500, 0x00FA2701, 0x00FA2A00, 0x02000001, 0x02A6E000,

12408

0x02A70001, 0x02B73900, 0x02B74001, 0x02B81E00, 0x02B82001, 0x02CEA200, 0x02CEB001,

12409

0x02EBE100, 0x03000001, 0x03134B00};

12410  static

constexpr range_array prop_vs_data = {0x00000000, 0x00180B01, 0x00180E00,

12411

0x00180F01, 0x00181000, 0x00FE0001,

12412

0x00FE1000, 0x0E010001, 0x0E01F000};

12413  static

constexpr range_array prop_wspace_data = {

12414

0x00000000, 0x00000901, 0x00000E00, 0x00002001, 0x00002100, 0x00008501, 0x00008600,

12415

0x0000A001, 0x0000A100, 0x00168001, 0x00168100, 0x00200001, 0x00200B00, 0x00202801,

12416

0x00202A00, 0x00202F01, 0x00203000, 0x00205F01, 0x00206000, 0x00300001, 0x00300100};

12417  static

constexpr bool_trie<32, 991, 1, 0, 127, 255, 1, 0, 1407, 1, 0, 134> prop_xidc_data{

12418

{0x03ff000000000000, 0x07fffffe87fffffe, 0x04a0040000000000, 0xff7fffffff7fffff,

12419

0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff,

12420

0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x0000501f0003ffc3,

12421

0xffffffffffffffff, 0xb8dfffffffffffff, 0xfffffffbffffd7c0, 0xffbfffffffffffff,

12422

0xffffffffffffffff, 0xffffffffffffffff, 0xfffffffffffffcfb, 0xffffffffffffffff,

12423

0xfffeffffffffffff, 0xffffffff027fffff, 0xbffffffffffe01ff, 0x000787ffffff00b6,

12424

0xffffffff07ff0000, 0xffffc3ffffffffff, 0xffffffffffffffff, 0x9ffffdff9fefffff,

12425

0xffffffffffff0000, 0xffffffffffffe7ff, 0x0003ffffffffffff, 0x243fffffffffffff},

12426

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,

12427

19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 4, 32, 33, 34, 4,

12428

4, 4, 4, 4, 35, 36, 37, 38, 39, 40, 41, 42, 4, 4, 4, 4, 4, 4,

12429

4, 4, 43, 44, 45, 46, 47, 4, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,

12430

58, 59, 60, 4, 61, 4, 62, 63, 64, 65, 66, 4, 4, 4, 4, 4, 4, 4,

12431

4, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 78, 78, 78, 78, 78,

12432

78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,

12433

78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 4,

12434

4, 4, 79, 80, 81, 82, 83, 78, 78, 78, 78, 78, 78, 78, 78, 84, 42, 85,

12435

86, 87, 4, 88, 89, 78, 78, 78, 78, 78, 78, 78, 78, 4, 4, 4, 4, 4,

12436

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12437

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12438

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12439

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12440

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12441

4, 4, 4, 4, 4, 4, 4, 4, 78, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12442

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12443

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12444

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12445

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12446

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12447

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12448

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12449

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12450

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12451

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12452

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12453

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12454

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12455

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12456

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12457

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12458

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12459

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12460

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 90, 91, 4, 4, 4,

12461

4, 92, 93, 4, 94, 95, 4, 96, 97, 98, 62, 4, 99, 100, 101, 4, 102, 103,

12462

104, 4, 105, 106, 107, 4, 108, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12463

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12464

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12465

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12466

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12467

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12468

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12469

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12470

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12471

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12472

4, 109, 110, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,

12473

78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,

12474

78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,

12475

78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,

12476

78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,

12477

78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,

12478

78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,

12479

78, 78, 78, 78, 78, 78, 78, 78, 78, 4, 4, 4, 4, 4, 100, 4, 111, 112,

12480

113, 94, 114, 4, 115, 4, 4, 116, 117, 118, 119, 120, 121, 4, 122, 123, 124, 125,

12482

{0x00003fffffffffff, 0xffff07ff0fffffff, 0xffffffffff007eff, 0xfffffffbffffffff,

12483

0xffffffffffffffff, 0xfffeffcfffffffff, 0xf3c5fdfffff99fef, 0x5003ffcfb080799f,

12484

0xd36dfdfffff987ee, 0x003fffc05e023987, 0xf3edfdfffffbbfee, 0xfe00ffcf00013bbf,

12485

0xf3edfdfffff99fee, 0x0002ffcfb0e0399f, 0xc3ffc718d63dc7ec, 0x0000ffc000813dc7,

12486

0xf3fffdfffffddfff, 0x0000ffcf27603ddf, 0xf3effdfffffddfef, 0x0006ffcf60603ddf,

12487

0xfffffffffffddfff, 0xfc00ffcf80f07ddf, 0x2ffbfffffc7fffee, 0x000cffc0ff5f847f,

12488

0x07fffffffffffffe, 0x0000000003ff7fff, 0x3fffffaffffff7d6, 0x00000000f3ff3f5f,

12489

0xc2a003ff03000001, 0xfffe1ffffffffeff, 0x1ffffffffeffffdf, 0x0000000000000040,

12490

0xffffffffffff03ff, 0xffffffff3fffffff, 0xf7ffffffffff20bf, 0xffffffff3d7f3dff,

12491

0x7f3dffffffff3dff, 0xffffffffff7fff3d, 0xffffffffff3dffff, 0x0003fe00e7ffffff,

12492

0xffffffff0000ffff, 0x3f3fffffffffffff, 0xfffffffffffffffe, 0xffff9fffffffffff,

12493

0xffffffff07fffffe, 0x01ffc7ffffffffff, 0x001fffff803fffff, 0x000ddfff000fffff,

12494

0x000003ff308fffff, 0xffffffff03ffb800, 0x01ffffffffffffff, 0xffff07ffffffffff,

12495

0x003fffffffffffff, 0x0fff0fff7fffffff, 0x001f3fffffffffc0, 0xffff0fffffffffff,

12496

0x0000000007ff03ff, 0xffffffff0fffffff, 0x9fffffff7fffffff, 0xbfff008003ff03ff,

12497

0x0000000000007fff, 0x000ff80003ff1fff, 0x000fffffffffffff, 0x00ffffffffffffff,

12498

0x3fffffffffffe3ff, 0xe7ffffffffff01ff, 0x07fffffffff70000, 0xffffffff3f3fffff,

12499

0x3fffffffaaff3f3f, 0x5fdfffffffffffff, 0x1fdc1fff0fcf1fdc, 0x8000000000000000,

12500

0x8002000000100001, 0x000000001fff0000, 0x0001ffe21fff0000, 0xf3fffd503f2ffc84,

12501

0xffffffff000043e0, 0x00000000000001ff, 0x0000000000000000, 0x000ff81fffffffff,

12502

0xffff20bfffffffff, 0x800080ffffffffff, 0x7f7f7f7f007fffff, 0xffffffff7f7f7f7f,

12503

0x1f3efffe000000e0, 0xfffffffee67fffff, 0xf7ffffffffffffff, 0xfffeffffffffffe0,

12504

0xffffffff00007fff, 0xffff000000000000, 0x0000000000001fff, 0x3fffffffffff0000,

12505

0x00000fffffff1fff, 0xbff0ffffffffffff, 0x0003ffffffffffff, 0xfffffffcff800000,

12506

0xfffffffffffff9ff, 0xfffc000003eb07ff, 0x000010ffffffffff, 0xe8ffffff03ff003f,

12507

0xffff3fffffffffff, 0x1fffffff000fffff, 0x7fffffff03ff8001, 0x007fffffffffffff,

12508

0xfc7fffff03ff3fff, 0x007cffff38000007, 0xffff7f7f007e7e7e, 0xffff03fff7ffffff,

12509

0x03ff37ffffffffff, 0xffff000fffffffff, 0x0ffffffffffff87f, 0x0000000003ffffff,

12510

0x5f7ffdffe0f8007f, 0xffffffffffffffdb, 0xfffffffffff80000, 0xfffffff03fffffff,

12511

0x3fffffffffffffff, 0xffffffffffff0000, 0xfffffffffffcffff, 0x03ff0000000000ff,

12512

0x0018ffff0000ffff, 0xaa8a00000000e000, 0x1fffffffffffffff, 0x87fffffe03ff0000,

12513

0xffffffc007fffffe, 0x7fffffffffffffff, 0x000000001cfcfcfc},

12514

{1, 2, 3, 4, 5, 6, 7, 8, 5, 9, 10, 11, 12, 13, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 15,

12515

16, 17, 7, 18, 19, 7, 20, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12516

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12517

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12518

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12519

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12520

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12521

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 21,

12522

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12523

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5},

12524

{1, 2, 3, 4, 5, 4, 6, 4, 4, 7, 8, 9, 10, 11, 12, 2, 2, 13, 14,

12525

15, 16, 17, 4, 2, 2, 2, 2, 18, 19, 20, 4, 21, 22, 23, 24, 25, 4, 26,

12526

4, 27, 28, 29, 30, 31, 32, 33, 4, 2, 34, 35, 35, 36, 4, 4, 4, 4, 4,

12527

37, 4, 38, 39, 40, 41, 2, 42, 3, 43, 44, 45, 2, 46, 47, 4, 48, 49, 50,

12528

51, 4, 4, 2, 52, 2, 53, 4, 4, 54, 55, 2, 56, 57, 58, 59, 60, 4, 4,

12529

3, 4, 61, 62, 63, 64, 65, 66, 67, 68, 69, 57, 4, 4, 4, 4, 70, 71, 72,

12530

4, 73, 74, 75, 4, 4, 4, 4, 76, 4, 4, 77, 4, 2, 2, 2, 2, 2, 2,

12531

2, 2, 2, 2, 2, 2, 2, 2, 78, 4, 2, 79, 2, 2, 2, 80, 4, 4, 4,

12532

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12533

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 81,

12534

82, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 79, 4,

12535

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12536

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12537

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12538

4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 60, 4, 4, 4, 4,

12539

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12540

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12541

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12542

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12543

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12544

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12545

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2,

12546

2, 2, 2, 2, 2, 57, 83, 67, 84, 18, 85, 86, 4, 4, 4, 4, 4, 4, 4,

12547

4, 4, 4, 2, 4, 4, 2, 87, 88, 89, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12548

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12549

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12550

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12551

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12552

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 90, 2, 2, 2, 2, 2, 2, 2, 2,

12553

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 91, 34, 4, 4, 4, 4, 4, 4,

12554

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12555

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12556

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12557

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 92, 2, 2, 2, 2, 93, 94, 2,

12558

2, 2, 2, 2, 95, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12559

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12560

4, 4, 4, 2, 96, 97, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12561

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12562

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12563

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12564

4, 4, 4, 98, 60, 4, 4, 4, 4, 4, 4, 4, 99, 100, 4, 4, 101, 4, 4,

12565

4, 4, 4, 4, 2, 102, 103, 104, 105, 106, 2, 2, 2, 2, 107, 108, 109, 110, 111,

12566

112, 4, 4, 4, 4, 4, 4, 4, 4, 113, 114, 115, 4, 4, 4, 4, 4, 4, 4,

12567

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 23, 4, 4, 4, 116, 4, 4, 4, 117,

12568

118, 4, 4, 4, 4, 119, 120, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12569

4, 4, 4, 4, 4, 4, 4, 121, 2, 2, 2, 122, 2, 123, 4, 4, 4, 4, 4,

12570

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 124, 125, 126, 4, 4, 4,

12571

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12572

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12573

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 127, 4, 4, 4, 4, 4, 4, 4,

12574

4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12575

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 128, 2,

12576

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12577

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12578

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12579

2, 2, 2, 2, 2, 2, 57, 2, 2, 2, 11, 2, 2, 2, 2, 2, 2, 2, 2,

12580

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12581

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12582

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12583

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12584

2, 2, 2, 2, 2, 129, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12585

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12586

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12587

2, 130, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12588

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12589

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2,

12590

2, 131, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12591

4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12592

132, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12593

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12594

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2,

12595

2, 133, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12596

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12597

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12599

{0xb7ffff7fffffefff, 0x000000003fff3fff, 0xffffffffffffffff, 0x07ffffffffffffff,

12600

0x0000000000000000, 0x001fffffffffffff, 0x2000000000000000, 0xffffffff1fffffff,

12601

0x000000010001ffff, 0xffffe000ffffffff, 0x07ffffffffff07ff, 0xffffffff3fffffff,

12602

0x00000000003eff0f, 0xffff03ff3fffffff, 0x0fffffffff0fffff, 0xffff00ffffffffff,

12603

0xf7ff000fffffffff, 0x1bfbfffbffb7f7ff, 0x007fffffffffffff, 0x000000ff003fffff,

12604

0x07fdffffffffffbf, 0x91bffffffffffd3f, 0x007fffff003fffff, 0x000000007fffffff,

12605

0x0037ffff00000000, 0x03ffffff003fffff, 0xc0ffffffffffffff, 0x873ffffffeeff06f,

12606

0x1fffffff00000000, 0x000000001fffffff, 0x0000007ffffffeff, 0x003fffffffffffff,

12607

0x0007ffff003fffff, 0x000000000003ffff, 0x00000000000001ff, 0x0007ffffffffffff,

12608

0x03ff00ffffffffff, 0x00031bffffffffff, 0xffff00801fffffff, 0xffff00000001ffff,

12609

0xffff00000000003f, 0x007fffff0000001f, 0x803fffc00000007f, 0x03ff01ffffff0004,

12610

0xffdfffffffffffff, 0x004fffffffff00f0, 0x0000000017ffde1f, 0x40fffffffffbffff,

12611

0xffff01ffbfffbd7f, 0x03ff07ffffffffff, 0xfbedfdfffff99fef, 0x001f1fcfe081399f,

12612

0x00000003c3ff07ff, 0x0000000003ff00bf, 0xff3fffffffffffff, 0x000000003f000001,

12613

0x0000000003ff0011, 0x01ffffffffffffff, 0x00000000000003ff, 0x03ff0fffe7ffffff,

12614

0x000000000000007f, 0xffffffff00000000, 0x800003ffffffffff, 0xf9bfffffff6ff27f,

12615

0x0000000003ff000f, 0xfffffcff00000000, 0x0000001bfcffffff, 0x7fffffffffffffff,

12616

0xffffffffffff0080, 0xffff000023ffffff, 0xff7ffffffffffdff, 0xfffc000003ff0001,

12617

0x007ffefffffcffff, 0xb47ffffffffffb7f, 0xfffffdbf03ff00ff, 0x000003ff01fb7fff,

12618

0x007fffff00000000, 0x0001000000000000, 0x0000000003ffffff, 0x00007fffffffffff,

12619

0x000000000000000f, 0xffffffffffff0000, 0x0001ffffffffffff, 0xffff03ff7fffffff,

12620

0x001f3fffffff03ff, 0xe0fffff803ff000f, 0x000000000000ffff, 0xffffffffffff87ff,

12621

0x00000000ffff80ff, 0x0003001b00000000, 0x00ffffffffffffff, 0x00000000003fffff,

12622

0x6fef000000000000, 0x00000007ffffffff, 0xffff00f000070000, 0x0fffffffffffffff,

12623

0x1fff07ffffffffff, 0x0000000063ff01ff, 0xffff3fffffffffff, 0xf807e3e000000000,

12624

0x00003c0000000fe7, 0x000000000000001c, 0xffffffffffdfffff, 0xebffde64dfffffff,

12625

0xffffffffffffffef, 0x7bffffffdfdfe7bf, 0xfffffffffffdfc5f, 0xffffff3fffffffff,

12626

0xf7fffffff7fffffd, 0xffdfffffffdfffff, 0xffff7fffffff7fff, 0xfffffdfffffffdff,

12627

0xffffffffffffcff7, 0xf87fffffffffffff, 0x00201fffffffffff, 0x0000fffef8000010,

12628

0x000007dbf9ffff7f, 0x3fff1fffffffffff, 0x00000000000043ff, 0x00007fffffff0000,

12629

0x03ffffffffffffff, 0x7fff6f7f00000000, 0x00000000007f001f, 0x0000000003ff0fff,

12630

0x0af7fe96ffffffef, 0x5ef7f796aa96ea84, 0x0ffffbee0ffffbff, 0x03ff000000000000,

12631

0x00000000ffffffff, 0xffff0003ffffffff, 0x00000001ffffffff, 0x000000003fffffff,

12632

0x00000000000007ff, 0x0000ffffffffffff}};

12633  static

constexpr bool_trie<32, 991, 1, 0, 131, 255, 1, 0, 1215, 1, 0, 124> prop_xids_data{

12634

{0x0000000000000000, 0x07fffffe07fffffe, 0x0420040000000000, 0xff7fffffff7fffff,

12635

0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff,

12636

0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x0000501f0003ffc3,

12637

0x0000000000000000, 0xb8df000000000000, 0xfffffffbffffd740, 0xffbfffffffffffff,

12638

0xffffffffffffffff, 0xffffffffffffffff, 0xfffffffffffffc03, 0xffffffffffffffff,

12639

0xfffeffffffffffff, 0xffffffff027fffff, 0x00000000000001ff, 0x000787ffffff0000,

12640

0xffffffff00000000, 0xfffec000000007ff, 0xffffffffffffffff, 0x9c00c060002fffff,

12641

0x0000fffffffd0000, 0xffffffffffffe000, 0x0002003fffffffff, 0x043007fffffffc00},

12642

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,

12643

19, 20, 21, 22, 23, 24, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,

12644

35, 35, 35, 35, 36, 37, 38, 39, 40, 41, 42, 43, 35, 35, 35, 35, 35, 35,

12645

35, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 3, 58,

12646

59, 60, 30, 61, 62, 63, 64, 65, 66, 67, 68, 35, 35, 35, 30, 35, 35, 35,

12647

35, 69, 70, 71, 72, 30, 73, 74, 30, 75, 76, 77, 30, 30, 30, 30, 30, 30,

12648

30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,

12649

30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 35,

12650

35, 35, 78, 79, 80, 81, 82, 30, 30, 30, 30, 30, 30, 30, 30, 83, 43, 84,

12651

85, 86, 35, 87, 88, 30, 30, 30, 30, 30, 30, 30, 30, 35, 35, 35, 35, 35,

12652

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12653

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12654

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12655

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12656

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12657

35, 35, 35, 35, 35, 35, 35, 35, 30, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12658

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12659

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12660

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12661

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12662

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12663

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12664

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12665

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12666

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12667

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12668

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12669

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12670

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12671

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12672

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12673

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12674

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12675

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12676

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 89, 90, 35, 35, 35,

12677

35, 91, 92, 93, 94, 95, 35, 96, 97, 98, 49, 99, 100, 101, 102, 103, 104, 105,

12678

106, 107, 108, 109, 110, 35, 111, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12679

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12680

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12681

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12682

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12683

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12684

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12685

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12686

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12687

35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,

12688

35, 112, 113, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,

12689

30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,

12690

30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,

12691

30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,

12692

30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,

12693

30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,

12694

30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,

12695

30, 30, 30, 30, 30, 30, 30, 30, 30, 35, 35, 35, 35, 35, 114, 35, 115, 116,

12696

117, 118, 119, 35, 120, 35, 35, 121, 122, 123, 124, 30, 125, 35, 126, 127, 128, 129,

12698

{0x00000110043fffff, 0xffff07ff01ffffff, 0xffffffff00007eff, 0x00000000000003ff,

12699

0x23fffffffffffff0, 0xfffe0003ff010000, 0x23c5fdfffff99fe1, 0x10030003b0004000,

12700

0x036dfdfffff987e0, 0x001c00005e000000, 0x23edfdfffffbbfe0, 0x0200000300010000,

12701

0x23edfdfffff99fe0, 0x00020003b0000000, 0x03ffc718d63dc7e8, 0x0000000000010000,

12702

0x23fffdfffffddfe0, 0x0000000327000000, 0x23effdfffffddfe1, 0x0006000360000000,

12703

0x27fffffffffddff0, 0xfc00000380704000, 0x2ffbfffffc7fffe0, 0x000000000000007f,

12704

0x0005fffffffffffe, 0x2005ffaffffff7d6, 0x00000000f000005f, 0x0000000000000001,

12705

0x00001ffffffffeff, 0x0000000000001f00, 0x0000000000000000, 0x800007ffffffffff,

12706

0xffe1c0623c3f0000, 0xffffffff00004003, 0xf7ffffffffff20bf, 0xffffffffffffffff,

12707

0xffffffff3d7f3dff, 0x7f3dffffffff3dff, 0xffffffffff7fff3d, 0xffffffffff3dffff,

12708

0x0000000007ffffff, 0xffffffff0000ffff, 0x3f3fffffffffffff, 0xfffffffffffffffe,

12709

0xffff9fffffffffff, 0xffffffff07fffffe, 0x01ffc7ffffffffff, 0x0003ffff8003ffff,

12710

0x0001dfff0003ffff, 0x000fffffffffffff, 0x0000000010800000, 0xffffffff00000000,

12711

0x01ffffffffffffff, 0xffff05ffffffffff, 0x003fffffffffffff, 0x000000007fffffff,

12712

0x001f3fffffff0000, 0xffff0fffffffffff, 0xffffffff007fffff, 0x00000000001fffff,

12713

0x0000008000000000, 0x000fffffffffffe0, 0x0000000000001fe0, 0xfc00c001fffffff8,

12714

0x0000003fffffffff, 0x0000000fffffffff, 0x3ffffffffc00e000, 0xe7ffffffffff01ff,

12715

0x046fde0000000000, 0xffffffff3f3fffff, 0x3fffffffaaff3f3f, 0x5fdfffffffffffff,

12716

0x1fdc1fff0fcf1fdc, 0x8002000000000000, 0x000000001fff0000, 0xf3fffd503f2ffc84,

12717

0xffffffff000043e0, 0x00000000000001ff, 0x000c781fffffffff, 0xffff20bfffffffff,

12718

0x000080ffffffffff, 0x7f7f7f7f007fffff, 0x000000007f7f7f7f, 0x1f3e03fe000000e0,

12719

0xfffffffee07fffff, 0xf7ffffffffffffff, 0xfffeffffffffffe0, 0xffffffff00007fff,

12720

0xffff000000000000, 0x0000000000001fff, 0x3fffffffffff0000, 0x00000c00ffff1fff,

12721

0x80007fffffffffff, 0xffffffff3fffffff, 0x0000ffffffffffff, 0xfffffffcff800000,

12722

0xfffffffffffff9ff, 0xfffc000003eb07ff, 0x00000007fffff7bb, 0x000ffffffffffffc,

12723

0x68fc000000000000, 0xffff003ffffffc00, 0x1fffffff0000007f, 0x0007fffffffffff0,

12724

0x7c00ffdf00008000, 0x000001ffffffffff, 0xc47fffff00000ff7, 0x3e62ffffffffffff,

12725

0x001c07ff38000005, 0xffff7f7f007e7e7e, 0xffff03fff7ffffff, 0x00000007ffffffff,

12726

0xffff000fffffffff, 0x0ffffffffffff87f, 0xffff3fffffffffff, 0x0000000003ffffff,

12727

0x5f7ffdffa0f8007f, 0xffffffffffffffdb, 0x0003ffffffffffff, 0xfffffffffff80000,

12728

0xfffffff03fffffff, 0x3fffffffffffffff, 0xffffffffffff0000, 0xfffffffffffcffff,

12729

0x03ff0000000000ff, 0xaa8a000000000000, 0x1fffffffffffffff, 0x07fffffe00000000,

12730

0xffffffc007fffffe, 0x7fffffff3fffffff, 0x000000001cfcfcfc},

12731

{1, 2, 3, 4, 5, 6, 7, 8, 5, 9, 10, 5, 11, 12, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13,

12732

14, 15, 7, 16, 17, 7, 18, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12733

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12734

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12735

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12736

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12737

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12738

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12739

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,

12740

5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5},

12741

{1, 2, 3, 4, 5, 4, 4, 4, 4, 6, 7, 8, 9, 10, 11, 2, 2, 12, 13,

12742

14, 15, 16, 4, 2, 2, 2, 2, 17, 18, 19, 4, 20, 21, 22, 23, 24, 4, 25,

12743

4, 26, 27, 28, 29, 30, 31, 32, 4, 2, 33, 34, 34, 35, 4, 4, 4, 4, 4,

12744

36, 4, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 4, 50, 22, 51,

12745

52, 4, 4, 5, 53, 54, 55, 4, 4, 56, 57, 54, 58, 59, 4, 60, 61, 4, 4,

12746

62, 4, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 4, 4, 4, 4, 73, 74, 75,

12747

4, 76, 77, 78, 4, 4, 4, 4, 79, 4, 4, 80, 4, 2, 2, 2, 2, 2, 2,

12748

2, 2, 2, 2, 2, 2, 2, 2, 81, 4, 2, 56, 2, 2, 2, 82, 4, 4, 4,

12749

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12750

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 83,

12751

84, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56, 4,

12752

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12753

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12754

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12755

4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 61, 4, 4, 4, 4,

12756

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12757

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12758

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12759

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12760

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12761

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12762

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2,

12763

2, 2, 2, 2, 2, 72, 85, 86, 87, 54, 88, 75, 4, 4, 4, 4, 4, 4, 4,

12764

4, 4, 4, 2, 4, 4, 2, 89, 90, 91, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12765

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12766

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12767

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12768

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12769

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 92, 2, 2, 2, 2, 2, 2, 2, 2,

12770

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 93, 33, 4, 4, 4, 4, 4, 4,

12771

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12772

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12773

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12774

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 94, 2, 2, 2, 2, 95, 96, 2,

12775

2, 2, 2, 2, 97, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12776

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12777

4, 4, 4, 2, 98, 99, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12778

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 100, 101,

12779

102, 103, 104, 2, 2, 2, 2, 105, 106, 107, 108, 109, 110, 4, 4, 4, 4, 4, 4,

12780

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12781

4, 4, 4, 22, 4, 4, 4, 4, 4, 4, 4, 111, 112, 4, 4, 4, 4, 87, 62,

12782

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12783

113, 2, 2, 2, 114, 2, 115, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12784

4, 4, 4, 4, 4, 4, 116, 117, 118, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2,

12785

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12786

2, 2, 2, 119, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12787

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12788

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12789

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 72, 2, 2, 2, 10, 2, 2, 2,

12790

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12791

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12792

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12793

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12794

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 120, 2, 2, 2, 2, 2, 2, 2, 2,

12795

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12796

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

12797

2, 2, 2, 2, 2, 2, 121, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12798

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12799

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2,

12800

2, 2, 2, 2, 2, 2, 122, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12801

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2,

12802

2, 2, 2, 2, 2, 123, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12803

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,

12804

4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4},

12805

{0xb7ffff7fffffefff, 0x000000003fff3fff, 0xffffffffffffffff, 0x07ffffffffffffff,

12806

0x0000000000000000, 0x001fffffffffffff, 0xffffffff1fffffff, 0x000000000001ffff,

12807

0xffffe000ffffffff, 0x003fffffffff07ff, 0xffffffff3fffffff, 0x00000000003eff0f,

12808

0xffff00003fffffff, 0x0fffffffff0fffff, 0xffff00ffffffffff, 0xf7ff000fffffffff,

12809

0x1bfbfffbffb7f7ff, 0x007fffffffffffff, 0x000000ff003fffff, 0x07fdffffffffffbf,

12810

0x91bffffffffffd3f, 0x007fffff003fffff, 0x000000007fffffff, 0x0037ffff00000000,

12811

0x03ffffff003fffff, 0xc0ffffffffffffff, 0x003ffffffeef0001, 0x1fffffff00000000,

12812

0x000000001fffffff, 0x0000001ffffffeff, 0x003fffffffffffff, 0x0007ffff003fffff,

12813

0x000000000003ffff, 0x00000000000001ff, 0x0007ffffffffffff, 0x0000000fffffffff,

12814

0x000303ffffffffff, 0xffff00801fffffff, 0xffff00000000003f, 0xffff000000000003,

12815

0x007fffff0000001f, 0x00fffffffffffff8, 0x0026000000000000, 0x0000fffffffffff8,

12816

0x000001ffffff0000, 0x0000007ffffffff8, 0x0047ffffffff0090, 0x0007fffffffffff8,

12817

0x000000001400001e, 0x00000ffffffbffff, 0xffff01ffbfffbd7f, 0x23edfdfffff99fe0,

12818

0x00000003e0010000, 0x0000000380000780, 0x0000ffffffffffff, 0x00000000000000b0,

12819

0x00007fffffffffff, 0x000000000f000000, 0x0000000000000010, 0x010007ffffffffff,

12820

0x0000000007ffffff, 0x000000000000007f, 0x00000fffffffffff, 0xffffffff00000000,

12821

0x80000000ffffffff, 0x8000ffffff6ff27f, 0x0000000000000002, 0xfffffcff00000000,

12822

0x0000000a0001ffff, 0x0407fffffffff801, 0xfffffffff0010000, 0xffff0000200003ff,

12823

0x01ffffffffffffff, 0x00007ffffffffdff, 0xfffc000000000001, 0x000000000000ffff,

12824

0x0001fffffffffb7f, 0xfffffdbf00000040, 0x00000000010003ff, 0x0007ffff00000000,

12825

0x0001000000000000, 0x0000000003ffffff, 0x000000000000000f, 0xffffffffffff0000,

12826

0x0001ffffffffffff, 0xffff00007fffffff, 0x7fffffffffffffff, 0x00003fffffff0000,

12827

0xe0fffff80000000f, 0x00000000000107ff, 0x00000000fff80000, 0x0000000b00000000,

12828

0x00ffffffffffffff, 0x00000000003fffff, 0x6fef000000000000, 0x00000007ffffffff,

12829

0xffff00f000070000, 0x0fffffffffffffff, 0x1fff07ffffffffff, 0x0000000003ff01ff,

12830

0xffffffffffdfffff, 0xebffde64dfffffff, 0xffffffffffffffef, 0x7bffffffdfdfe7bf,

12831

0xfffffffffffdfc5f, 0xffffff3fffffffff, 0xf7fffffff7fffffd, 0xffdfffffffdfffff,

12832

0xffff7fffffff7fff, 0xfffffdfffffffdff, 0x0000000000000ff7, 0x3f801fffffffffff,

12833

0x0000000000004000, 0x7fff6f7f00000000, 0x000000000000001f, 0x000000000000080f,

12834

0x0af7fe96ffffffef, 0x5ef7f796aa96ea84, 0x0ffffbee0ffffbff, 0x00000000ffffffff,

12835

0xffff0003ffffffff, 0x00000001ffffffff, 0x000000003fffffff, 0x00000000000007ff}};

12838

constexpr

bool

cp_property_is<property::ahex>(char32_t c) {

12839  return

detail::tables::prop_ahex_data.lookup(c);

12842

constexpr

bool

cp_property_is<property::alpha>(char32_t c) {

12843  return

detail::tables::prop_alpha_data.lookup(c);

12846

constexpr

bool

cp_property_is<property::bidi_c>(char32_t c) {

12847  return

detail::tables::prop_bidi_c_data.lookup(c);

12850

constexpr

bool

cp_property_is<property::bidi_m>(char32_t c) {

12851  return

detail::tables::prop_bidi_m_data.lookup(c);

12854

constexpr

bool

cp_property_is<property::dash>(char32_t c) {

12855  return

detail::tables::prop_dash_data.lookup(c);

12858

constexpr

bool

cp_property_is<property::dep>(char32_t c) {

12859  return

detail::tables::prop_dep_data.lookup(c);

12862

constexpr

bool

cp_property_is<property::dia>(char32_t c) {

12863  return

detail::tables::prop_dia_data.lookup(c);

12866

constexpr

bool

cp_property_is<property::emoji>(char32_t c) {

12867  return

detail::tables::prop_emoji_data.lookup(c);

12870

constexpr

bool

cp_property_is<property::emoji_component>(char32_t c) {

12871  return

detail::tables::prop_emoji_component_data.lookup(c);

12874

constexpr

bool

cp_property_is<property::emoji_modifier>(char32_t c) {

12875  return

detail::tables::prop_emoji_modifier_data.lookup(c);

12878

constexpr

bool

cp_property_is<property::emoji_modifier_base>(char32_t c) {

12879  return

detail::tables::prop_emoji_modifier_base_data.lookup(c);

12882

constexpr

bool

cp_property_is<property::emoji_presentation>(char32_t c) {

12883  return

detail::tables::prop_emoji_presentation_data.lookup(c);

12886

constexpr

bool

cp_property_is<property::ext>(char32_t c) {

12887  return

detail::tables::prop_ext_data.lookup(c);

12890

constexpr

bool

cp_property_is<property::extended_pictographic>(char32_t c) {

12891  return

detail::tables::prop_extended_pictographic_data.lookup(c);

12894

constexpr

bool

cp_property_is<property::gr_base>(char32_t c) {

12895  return

detail::tables::prop_gr_base_data.lookup(c);

12898

constexpr

bool

cp_property_is<property::hex>(char32_t c) {

12899  return

detail::tables::prop_hex_data.lookup(c);

12902

constexpr

bool

cp_property_is<property::ideo>(char32_t c) {

12903  return

detail::tables::prop_ideo_data.lookup(c);

12906

constexpr

bool

cp_property_is<property::idsb>(char32_t c) {

12907  return

detail::tables::prop_idsb_data.lookup(c);

12910

constexpr

bool

cp_property_is<property::idst>(char32_t c) {

12911  return

detail::tables::prop_idst_data.lookup(c);

12914

constexpr

bool

cp_property_is<property::join_c>(char32_t c) {

12915  return

detail::tables::prop_join_c_data.lookup(c);

12918

constexpr

bool

cp_property_is<property::loe>(char32_t c) {

12919  return

detail::tables::prop_loe_data.lookup(c);

12922

constexpr

bool

cp_property_is<property::pat_syn>(char32_t c) {

12923  return

detail::tables::prop_pat_syn_data.lookup(c);

12926

constexpr

bool

cp_property_is<property::pat_ws>(char32_t c) {

12927  return

detail::tables::prop_pat_ws_data.lookup(c);

12930

constexpr

bool

cp_property_is<property::pcm>(char32_t c) {

12931  return

detail::tables::prop_pcm_data.lookup(c);

12934

constexpr

bool

cp_property_is<property::qmark>(char32_t c) {

12935  return

detail::tables::prop_qmark_data.lookup(c);

12938

constexpr

bool

cp_property_is<property::radical>(char32_t c) {

12939  return

detail::tables::prop_radical_data.lookup(c);

12942

constexpr

bool

cp_property_is<property::ri>(char32_t c) {

12943  return

detail::tables::prop_ri_data.lookup(c);

12946

constexpr

bool

cp_property_is<property::sd>(char32_t c) {

12947  return

detail::tables::prop_sd_data.lookup(c);

12950

constexpr

bool

cp_property_is<property::sterm>(char32_t c) {

12951  return

detail::tables::prop_sterm_data.lookup(c);

12954

constexpr

bool

cp_property_is<property::term>(char32_t c) {

12955  return

detail::tables::prop_term_data.lookup(c);

12958

constexpr

bool

cp_property_is<property::uideo>(char32_t c) {

12959  return

detail::tables::prop_uideo_data.lookup(c);

12962

constexpr

bool

cp_property_is<property::vs>(char32_t c) {

12963  return

detail::tables::prop_vs_data.lookup(c);

12966

constexpr

bool

cp_property_is<property::wspace>(char32_t c) {

12967  return

detail::tables::prop_wspace_data.lookup(c);

12970

constexpr

bool

cp_property_is<property::xidc>(char32_t c) {

12971  return

detail::tables::prop_xidc_data.lookup(c);

12974

constexpr

bool

cp_property_is<property::xids>(char32_t c) {

12975  return

detail::tables::prop_xids_data.lookup(c);

12979 #include <iterator> 12983

constexpr category cp_category(char32_t cp) {

12985  return

category::unassigned;

12986  return

detail::tables::get_category(cp);

12989

constexpr

uni::version

detail::age_from_string(std::string_view

a

) {

12990  for

(std::size_t

i

= 0;

i

<

std::size

(detail::tables::age_strings); ++

i

) {

12991  const auto

res = detail::propnamecomp(

a

, detail::tables::age_strings[

i

]);

12995  return

uni::version::unassigned;

12998

constexpr category detail::category_from_string(std::string_view s) {

12999  for

(

const auto

& c : detail::tables::categories_names) {

13000  const auto

res = detail::propnamecomp(s, c.name);

13002  return

category(c.value);

13004  return

category::unassigned;

13007

constexpr block detail::block_from_string(std::string_view s) {

13008  for

(

const auto

& c : detail::tables::blocks_names) {

13009  const auto

res = detail::propnamecomp(s, c.name);

13011  return

block(c.value);

13013  return

block::no_block;

13016

constexpr script detail::script_from_string(std::string_view s) {

13017  for

(

const auto

& c : detail::tables::scripts_names) {

13018  const auto

res = detail::propnamecomp(s, c.name);

13020  return

script(c.value);

13022  return

script::unknown;

13025

constexpr

bool

detail::is_unassigned(category cat) {

13026  return

cat == category::unassigned;

13029

constexpr

bool

detail::is_unknown(script s) {

13030  return

s == script::unknown;

13033

constexpr

bool

detail::is_unknown(block

b

) {

13034  return b

== block::no_block;

13037

constexpr

bool

detail::is_unassigned(

version

v) {

13038  return

v == version::unassigned;

13041

constexpr script cp_script(char32_t cp) {

13042  return

detail::tables::cp_script<0>(cp);

13045

constexpr script_extensions_view::script_extensions_view(char32_t c_) : c(c_) {}

13047

constexpr script_extensions_view::iterator::iterator(char32_t c_) :

13048

m_c(c_), m_script(detail::tables::get_cp_script(m_c, 1)) {

13049  if

(m_script == script::unknown)

13050

m_script = detail::tables::cp_script<0>(m_c);

13057

constexpr

auto

script_extensions_view::iterator::operator++(

int

) -> iterator& {

13059

m_script = detail::tables::get_cp_script(m_c, idx);

13063

constexpr

auto

script_extensions_view::iterator::operator++() -> iterator {

13066

m_script = detail::tables::get_cp_script(m_c, idx);

13071  return

m_script == script::unknown;

13075  return

m_script != script::unknown;

13085

constexpr script_extensions_view::iterator script_extensions_view::begin()

const

{

13086  return

iterator{c};

13088

constexpr script_extensions_view::sentinel script_extensions_view::end()

const

{

13092

constexpr script_extensions_view cp_script_extensions(char32_t cp) {

13093  return

script_extensions_view(cp);

13096

constexpr

version

cp_age(char32_t cp) {

13097  return static_cast<version>

(detail::tables::age_data.value(cp,

uint8_t

(version::unassigned)));

13100

constexpr block cp_block(char32_t cp) {

13101  const auto

end = std::end(detail::tables::block_data._data);

13102  auto

it = detail::upper_bound(std::begin(detail::tables::block_data._data), end, cp,

13104

char32_t c = (v >> 8);

13108  return

block::no_block;

13110  auto offset

= (*it) & 0xFF;

13112  return

block::no_block;

13115  const auto

d = std::distance(std::begin(detail::tables::block_data._data), it);

13116  return

uni::block((d -

offset

) + 1);

13120

constexpr

bool

cp_property_is<property::noncharacter_code_point>(char32_t cp) {

13121  return

(char32_t(cp) & 0xfffe) == 0xfffe || (char32_t(cp) >= 0xfdd0 && char32_t(cp) <= 0xfdef);

13126

constexpr

bool

cp_property_is<property::lowercase>(char32_t cp) {

13127  return

detail::tables::cat_ll.lookup(char32_t(cp)) ||

13128

detail::tables::prop_olower_data.lookup(char32_t(cp));

13133

constexpr

bool

cp_property_is<property::uppercase>(char32_t cp) {

13134  return

detail::tables::cat_lu.lookup(char32_t(cp)) ||

13135

detail::tables::prop_oupper_data.lookup(char32_t(cp));

13140

constexpr

bool

cp_property_is<property::cased>(char32_t cp) {

13141  return

cp_property_is<property::lower>(cp) || cp_property_is<property::upper>(cp) ||

13142

detail::tables::cat_lt.lookup(char32_t(cp));

13147

constexpr

bool

cp_property_is<property::math>(char32_t cp) {

13148  return

detail::tables::cat_sm.lookup(char32_t(cp)) ||

13149

detail::tables::prop_omath_data.lookup(cp);

13154

constexpr

bool

cp_property_is<property::case_ignorable>(char32_t) {

13160

constexpr

bool

cp_property_is<property::grapheme_extend>(char32_t cp) {

13161  return

detail::tables::cat_me.lookup(char32_t(cp)) ||

13162

detail::tables::cat_mn.lookup(char32_t(cp)) ||

13163

detail::tables::prop_ogr_ext_data.lookup(cp);

13166

constexpr

bool

cp_is_valid(char32_t cp) {

13167  return

char32_t(cp) <= 0x10FFFF;

13169

constexpr

bool

cp_is_assigned(char32_t cp) {

13170  return

detail::tables::prop_assigned.lookup(char32_t(cp));

13173

constexpr

bool

cp_is_ascii(char32_t cp) {

13174  return

char32_t(cp) <= 0x7F;

13178

constexpr

bool

cp_property_is<property::default_ignorable_code_point>(char32_t cp) {

13179  const auto

c = char32_t(cp);

13180  const bool

maybe = detail::tables::prop_odi_data.lookup(cp) ||

13181

detail::tables::cat_cf.lookup(cp) || detail::tables::prop_vs_data.lookup(cp);

13185  if

(c >= 0xFFF9 && c <= 0xFFFB) {

13189  else if

(c >= 0x13430 && c <= 0x13438) {

13191

}

else if

(detail::tables::prop_wspace_data.

lookup

(cp))

13193  else if

(detail::tables::prop_pcm_data.

lookup

(cp))

13200

constexpr

bool

cp_property_is<property::id_start>(char32_t cp) {

13201  const bool

maybe = cp_category_is<category::letter>(cp) || detail::tables::cat_nl.lookup(cp) ||

13202

detail::tables::prop_oids_data.lookup(cp);

13205  return

!detail::tables::prop_pat_syn_data.lookup(cp) &&

13206

!detail::tables::prop_pat_ws_data.lookup(cp);

13210

constexpr

bool

cp_property_is<property::id_continue>(char32_t cp) {

13211  const bool

maybe = cp_category_is<category::letter>(cp) || detail::tables::cat_nl.lookup(cp) ||

13212

detail::tables::prop_oids_data.lookup(cp) ||

13213

detail::tables::cat_mn.lookup(cp) || detail::tables::cat_mc.lookup(cp) ||

13214

detail::tables::cat_nd.lookup(cp) || detail::tables::cat_pc.lookup(cp) ||

13215

detail::tables::prop_oidc_data.lookup(cp);

13218  return

!detail::tables::prop_pat_syn_data.lookup(cp) &&

13219

!detail::tables::prop_pat_ws_data.lookup(cp);

13224  template

<

typename

Array,

typename

Res =

long long

>

13225

constexpr

bool

get_numeric_value(char32_t cp,

const

Array&

array

, Res& res) {

13226  auto

it = detail::lower_bound(std::begin(

array

), std::end(

array

), cp,

13227

[](

const auto

& d, char32_t cp_) {

return

d.first < cp_; });

13228  if

(it == std::end(

array

) || it->first != cp)

13236

constexpr numeric_value cp_numeric_value(char32_t cp) {

13238  if

(!(detail::get_numeric_value(cp, detail::tables::numeric_data64, res) ||

13239

detail::get_numeric_value(cp, detail::tables::numeric_data32, res) ||

13240

detail::get_numeric_value(cp, detail::tables::numeric_data16, res) ||

13241

[&res, cp]() ->

bool

{

13242

res = detail::tables::numeric_data8.value(cp, 255);

13248

detail::get_numeric_value(cp, detail::tables::numeric_data_d, d);

13249  return

numeric_value(res, d);

13256 struct

iterator_traits<uni::script_extensions_view::iterator> {

13257  using

difference_type = std::ptrdiff_t;

13259  using pointer

= uni::script*;

13260  using

reference = uni::script;

13261  using

iterator_category = std::forward_iterator_tag;

13265 namespace

uni::detail {

13266 enum class

binary_prop {

13280

emoji_modifier_base,

13281

emoji_presentation,

13283

extended_pictographic,

13520

constexpr

bool

get_binary_prop<binary_prop::ahex>(char32_t c) {

13521  return

cp_property_is<property::ahex>(c);

13525

constexpr

bool

get_binary_prop<binary_prop::alpha>(char32_t c) {

13526  return

cp_property_is<property::alpha>(c);

13530

constexpr

bool

get_binary_prop<binary_prop::bidi_c>(char32_t c) {

13531  return

cp_property_is<property::bidi_c>(c);

13535

constexpr

bool

get_binary_prop<binary_prop::bidi_m>(char32_t c) {

13536  return

cp_property_is<property::bidi_m>(c);

13540

constexpr

bool

get_binary_prop<binary_prop::cased>(char32_t c) {

13541  return

cp_property_is<property::cased>(c);

13545

constexpr

bool

get_binary_prop<binary_prop::ci>(char32_t c) {

13546  return

cp_property_is<property::ci>(c);

13550

constexpr

bool

get_binary_prop<binary_prop::dash>(char32_t c) {

13551  return

cp_property_is<property::dash>(c);

13555

constexpr

bool

get_binary_prop<binary_prop::dep>(char32_t c) {

13556  return

cp_property_is<property::dep>(c);

13560

constexpr

bool

get_binary_prop<binary_prop::di>(char32_t c) {

13561  return

cp_property_is<property::di>(c);

13565

constexpr

bool

get_binary_prop<binary_prop::dia>(char32_t c) {

13566  return

cp_property_is<property::dia>(c);

13570

constexpr

bool

get_binary_prop<binary_prop::emoji>(char32_t c) {

13571  return

cp_property_is<property::emoji>(c);

13575

constexpr

bool

get_binary_prop<binary_prop::emoji_component>(char32_t c) {

13576  return

cp_property_is<property::emoji_component>(c);

13580

constexpr

bool

get_binary_prop<binary_prop::emoji_modifier>(char32_t c) {

13581  return

cp_property_is<property::emoji_modifier>(c);

13585

constexpr

bool

get_binary_prop<binary_prop::emoji_modifier_base>(char32_t c) {

13586  return

cp_property_is<property::emoji_modifier_base>(c);

13590

constexpr

bool

get_binary_prop<binary_prop::emoji_presentation>(char32_t c) {

13591  return

cp_property_is<property::emoji_presentation>(c);

13595

constexpr

bool

get_binary_prop<binary_prop::ext>(char32_t c) {

13596  return

cp_property_is<property::ext>(c);

13600

constexpr

bool

get_binary_prop<binary_prop::extended_pictographic>(char32_t c) {

13601  return

cp_property_is<property::extended_pictographic>(c);

13605

constexpr

bool

get_binary_prop<binary_prop::gr_base>(char32_t c) {

13606  return

cp_property_is<property::gr_base>(c);

13610

constexpr

bool

get_binary_prop<binary_prop::gr_ext>(char32_t c) {

13611  return

cp_property_is<property::gr_ext>(c);

13615

constexpr

bool

get_binary_prop<binary_prop::hex>(char32_t c) {

13616  return

cp_property_is<property::hex>(c);

13620

constexpr

bool

get_binary_prop<binary_prop::idc>(char32_t c) {

13621  return

cp_property_is<property::idc>(c);

13625

constexpr

bool

get_binary_prop<binary_prop::ideo>(char32_t c) {

13626  return

cp_property_is<property::ideo>(c);

13630

constexpr

bool

get_binary_prop<binary_prop::ids>(char32_t c) {

13631  return

cp_property_is<property::ids>(c);

13635

constexpr

bool

get_binary_prop<binary_prop::idsb>(char32_t c) {

13636  return

cp_property_is<property::idsb>(c);

13640

constexpr

bool

get_binary_prop<binary_prop::idst>(char32_t c) {

13641  return

cp_property_is<property::idst>(c);

13645

constexpr

bool

get_binary_prop<binary_prop::join_c>(char32_t c) {

13646  return

cp_property_is<property::join_c>(c);

13650

constexpr

bool

get_binary_prop<binary_prop::loe>(char32_t c) {

13651  return

cp_property_is<property::loe>(c);

13655

constexpr

bool

get_binary_prop<binary_prop::lower>(char32_t c) {

13656  return

cp_property_is<property::lower>(c);

13660

constexpr

bool

get_binary_prop<binary_prop::math>(char32_t c) {

13661  return

cp_property_is<property::math>(c);

13665

constexpr

bool

get_binary_prop<binary_prop::nchar>(char32_t c) {

13666  return

cp_property_is<property::nchar>(c);

13670

constexpr

bool

get_binary_prop<binary_prop::pat_syn>(char32_t c) {

13671  return

cp_property_is<property::pat_syn>(c);

13675

constexpr

bool

get_binary_prop<binary_prop::pat_ws>(char32_t c) {

13676  return

cp_property_is<property::pat_ws>(c);

13680

constexpr

bool

get_binary_prop<binary_prop::pcm>(char32_t c) {

13681  return

cp_property_is<property::pcm>(c);

13685

constexpr

bool

get_binary_prop<binary_prop::qmark>(char32_t c) {

13686  return

cp_property_is<property::qmark>(c);

13690

constexpr

bool

get_binary_prop<binary_prop::radical>(char32_t c) {

13691  return

cp_property_is<property::radical>(c);

13695

constexpr

bool

get_binary_prop<binary_prop::ri>(char32_t c) {

13696  return

cp_property_is<property::ri>(c);

13700

constexpr

bool

get_binary_prop<binary_prop::sd>(char32_t c) {

13701  return

cp_property_is<property::sd>(c);

13705

constexpr

bool

get_binary_prop<binary_prop::sterm>(char32_t c) {

13706  return

cp_property_is<property::sterm>(c);

13710

constexpr

bool

get_binary_prop<binary_prop::term>(char32_t c) {

13711  return

cp_property_is<property::term>(c);

13715

constexpr

bool

get_binary_prop<binary_prop::uideo>(char32_t c) {

13716  return

cp_property_is<property::uideo>(c);

13720

constexpr

bool

get_binary_prop<binary_prop::upper>(char32_t c) {

13721  return

cp_property_is<property::upper>(c);

13725

constexpr

bool

get_binary_prop<binary_prop::vs>(char32_t c) {

13726  return

cp_property_is<property::vs>(c);

13730

constexpr

bool

get_binary_prop<binary_prop::wspace>(char32_t c) {

13731  return

cp_property_is<property::wspace>(c);

13735

constexpr

bool

get_binary_prop<binary_prop::xidc>(char32_t c) {

13736  return

cp_property_is<property::xidc>(c);

13740

constexpr

bool

get_binary_prop<binary_prop::xids>(char32_t c) {

13741  return

cp_property_is<property::xids>(c);

13745

constexpr

bool

get_binary_prop<binary_prop::c>(char32_t c) {

13746  return

cp_category_is<category::c>(c);

13750

constexpr

bool

get_binary_prop<binary_prop::cc>(char32_t c) {

13751  return

cp_category_is<category::cc>(c);

13755

constexpr

bool

get_binary_prop<binary_prop::cf>(char32_t c) {

13756  return

cp_category_is<category::cf>(c);

13760

constexpr

bool

get_binary_prop<binary_prop::cn>(char32_t c) {

13761  return

cp_category_is<category::cn>(c);

13765

constexpr

bool

get_binary_prop<binary_prop::co>(char32_t c) {

13766  return

cp_category_is<category::co>(c);

13770

constexpr

bool

get_binary_prop<binary_prop::cs>(char32_t c) {

13771  return

cp_category_is<category::cs>(c);

13775

constexpr

bool

get_binary_prop<binary_prop::l>(char32_t c) {

13776  return

cp_category_is<category::l>(c);

13780

constexpr

bool

get_binary_prop<binary_prop::lc>(char32_t c) {

13781  return

cp_category_is<category::lc>(c);

13785

constexpr

bool

get_binary_prop<binary_prop::ll>(char32_t c) {

13786  return

cp_category_is<category::ll>(c);

13790

constexpr

bool

get_binary_prop<binary_prop::lm>(char32_t c) {

13791  return

cp_category_is<category::lm>(c);

13795

constexpr

bool

get_binary_prop<binary_prop::lo>(char32_t c) {

13796  return

cp_category_is<category::lo>(c);

13800

constexpr

bool

get_binary_prop<binary_prop::lt>(char32_t c) {

13801  return

cp_category_is<category::lt>(c);

13805

constexpr

bool

get_binary_prop<binary_prop::lu>(char32_t c) {

13806  return

cp_category_is<category::lu>(c);

13810

constexpr

bool

get_binary_prop<binary_prop::m>(char32_t c) {

13811  return

cp_category_is<category::m>(c);

13815

constexpr

bool

get_binary_prop<binary_prop::mc>(char32_t c) {

13816  return

cp_category_is<category::mc>(c);

13820

constexpr

bool

get_binary_prop<binary_prop::me>(char32_t c) {

13821  return

cp_category_is<category::me>(c);

13825

constexpr

bool

get_binary_prop<binary_prop::mn>(char32_t c) {

13826  return

cp_category_is<category::mn>(c);

13830

constexpr

bool

get_binary_prop<binary_prop::n>(char32_t c) {

13831  return

cp_category_is<category::n>(c);

13835

constexpr

bool

get_binary_prop<binary_prop::nd>(char32_t c) {

13836  return

cp_category_is<category::nd>(c);

13840

constexpr

bool

get_binary_prop<binary_prop::nl>(char32_t c) {

13841  return

cp_category_is<category::nl>(c);

13845

constexpr

bool

get_binary_prop<binary_prop::no>(char32_t c) {

13846  return

cp_category_is<category::no>(c);

13850

constexpr

bool

get_binary_prop<binary_prop::p>(char32_t c) {

13851  return

cp_category_is<category::p>(c);

13855

constexpr

bool

get_binary_prop<binary_prop::pc>(char32_t c) {

13856  return

cp_category_is<category::pc>(c);

13860

constexpr

bool

get_binary_prop<binary_prop::pd>(char32_t c) {

13861  return

cp_category_is<category::pd>(c);

13865

constexpr

bool

get_binary_prop<binary_prop::pe>(char32_t c) {

13866  return

cp_category_is<category::pe>(c);

13870

constexpr

bool

get_binary_prop<binary_prop::pf>(char32_t c) {

13871  return

cp_category_is<category::pf>(c);

13875

constexpr

bool

get_binary_prop<binary_prop::pi>(char32_t c) {

13876  return

cp_category_is<category::pi>(c);

13880

constexpr

bool

get_binary_prop<binary_prop::po>(char32_t c) {

13881  return

cp_category_is<category::po>(c);

13885

constexpr

bool

get_binary_prop<binary_prop::ps>(char32_t c) {

13886  return

cp_category_is<category::ps>(c);

13890

constexpr

bool

get_binary_prop<binary_prop::s>(char32_t c) {

13891  return

cp_category_is<category::s>(c);

13895

constexpr

bool

get_binary_prop<binary_prop::sc>(char32_t c) {

13896  return

cp_category_is<category::sc>(c);

13900

constexpr

bool

get_binary_prop<binary_prop::sk>(char32_t c) {

13901  return

cp_category_is<category::sk>(c);

13905

constexpr

bool

get_binary_prop<binary_prop::sm>(char32_t c) {

13906  return

cp_category_is<category::sm>(c);

13910

constexpr

bool

get_binary_prop<binary_prop::so>(char32_t c) {

13911  return

cp_category_is<category::so>(c);

13915

constexpr

bool

get_binary_prop<binary_prop::z>(char32_t c) {

13916  return

cp_category_is<category::z>(c);

13920

constexpr

bool

get_binary_prop<binary_prop::zl>(char32_t c) {

13921  return

cp_category_is<category::zl>(c);

13925

constexpr

bool

get_binary_prop<binary_prop::zp>(char32_t c) {

13926  return

cp_category_is<category::zp>(c);

13930

constexpr

bool

get_binary_prop<binary_prop::zs>(char32_t c) {

13931  return

cp_category_is<category::zs>(c);

13935

constexpr

bool

get_binary_prop<binary_prop::adlm>(char32_t c) {

13936  return

cp_script(c) == script::adlm;

13940

constexpr

bool

get_binary_prop<binary_prop::aghb>(char32_t c) {

13941  return

cp_script(c) == script::aghb;

13945

constexpr

bool

get_binary_prop<binary_prop::ahom>(char32_t c) {

13946  return

cp_script(c) == script::ahom;

13950

constexpr

bool

get_binary_prop<binary_prop::arab>(char32_t c) {

13951  return

cp_script(c) == script::arab;

13955

constexpr

bool

get_binary_prop<binary_prop::armi>(char32_t c) {

13956  return

cp_script(c) == script::armi;

13960

constexpr

bool

get_binary_prop<binary_prop::armn>(char32_t c) {

13961  return

cp_script(c) == script::armn;

13965

constexpr

bool

get_binary_prop<binary_prop::avst>(char32_t c) {

13966  return

cp_script(c) == script::avst;

13970

constexpr

bool

get_binary_prop<binary_prop::bali>(char32_t c) {

13971  return

cp_script(c) == script::bali;

13975

constexpr

bool

get_binary_prop<binary_prop::bamu>(char32_t c) {

13976  return

cp_script(c) == script::bamu;

13980

constexpr

bool

get_binary_prop<binary_prop::bass>(char32_t c) {

13981  return

cp_script(c) == script::bass;

13985

constexpr

bool

get_binary_prop<binary_prop::batk>(char32_t c) {

13986  return

cp_script(c) == script::batk;

13990

constexpr

bool

get_binary_prop<binary_prop::beng>(char32_t c) {

13991  return

cp_script(c) == script::beng;

13995

constexpr

bool

get_binary_prop<binary_prop::bhks>(char32_t c) {

13996  return

cp_script(c) == script::bhks;

14000

constexpr

bool

get_binary_prop<binary_prop::bopo>(char32_t c) {

14001  return

cp_script(c) == script::bopo;

14005

constexpr

bool

get_binary_prop<binary_prop::brah>(char32_t c) {

14006  return

cp_script(c) == script::brah;

14010

constexpr

bool

get_binary_prop<binary_prop::brai>(char32_t c) {

14011  return

cp_script(c) == script::brai;

14015

constexpr

bool

get_binary_prop<binary_prop::bugi>(char32_t c) {

14016  return

cp_script(c) == script::bugi;

14020

constexpr

bool

get_binary_prop<binary_prop::buhd>(char32_t c) {

14021  return

cp_script(c) == script::buhd;

14025

constexpr

bool

get_binary_prop<binary_prop::cakm>(char32_t c) {

14026  return

cp_script(c) == script::cakm;

14030

constexpr

bool

get_binary_prop<binary_prop::cans>(char32_t c) {

14031  return

cp_script(c) == script::cans;

14035

constexpr

bool

get_binary_prop<binary_prop::cari>(char32_t c) {

14036  return

cp_script(c) == script::cari;

14040

constexpr

bool

get_binary_prop<binary_prop::cham>(char32_t c) {

14041  return

cp_script(c) == script::cham;

14045

constexpr

bool

get_binary_prop<binary_prop::cher>(char32_t c) {

14046  return

cp_script(c) == script::cher;

14050

constexpr

bool

get_binary_prop<binary_prop::chrs>(char32_t c) {

14051  return

cp_script(c) == script::chrs;

14055

constexpr

bool

get_binary_prop<binary_prop::copt>(char32_t c) {

14056  return

cp_script(c) == script::copt;

14060

constexpr

bool

get_binary_prop<binary_prop::cpmn>(char32_t c) {

14061  return

cp_script(c) == script::cpmn;

14065

constexpr

bool

get_binary_prop<binary_prop::cprt>(char32_t c) {

14066  return

cp_script(c) == script::cprt;

14070

constexpr

bool

get_binary_prop<binary_prop::cyrl>(char32_t c) {

14071  return

cp_script(c) == script::cyrl;

14075

constexpr

bool

get_binary_prop<binary_prop::deva>(char32_t c) {

14076  return

cp_script(c) == script::deva;

14080

constexpr

bool

get_binary_prop<binary_prop::diak>(char32_t c) {

14081  return

cp_script(c) == script::diak;

14085

constexpr

bool

get_binary_prop<binary_prop::dogr>(char32_t c) {

14086  return

cp_script(c) == script::dogr;

14090

constexpr

bool

get_binary_prop<binary_prop::dsrt>(char32_t c) {

14091  return

cp_script(c) == script::dsrt;

14095

constexpr

bool

get_binary_prop<binary_prop::dupl>(char32_t c) {

14096  return

cp_script(c) == script::dupl;

14100

constexpr

bool

get_binary_prop<binary_prop::egyp>(char32_t c) {

14101  return

cp_script(c) == script::egyp;

14105

constexpr

bool

get_binary_prop<binary_prop::elba>(char32_t c) {

14106  return

cp_script(c) == script::elba;

14110

constexpr

bool

get_binary_prop<binary_prop::elym>(char32_t c) {

14111  return

cp_script(c) == script::elym;

14115

constexpr

bool

get_binary_prop<binary_prop::ethi>(char32_t c) {

14116  return

cp_script(c) == script::ethi;

14120

constexpr

bool

get_binary_prop<binary_prop::geor>(char32_t c) {

14121  return

cp_script(c) == script::geor;

14125

constexpr

bool

get_binary_prop<binary_prop::glag>(char32_t c) {

14126  return

cp_script(c) == script::glag;

14130

constexpr

bool

get_binary_prop<binary_prop::gong>(char32_t c) {

14131  return

cp_script(c) == script::gong;

14135

constexpr

bool

get_binary_prop<binary_prop::gonm>(char32_t c) {

14136  return

cp_script(c) == script::gonm;

14140

constexpr

bool

get_binary_prop<binary_prop::goth>(char32_t c) {

14141  return

cp_script(c) == script::goth;

14145

constexpr

bool

get_binary_prop<binary_prop::gran>(char32_t c) {

14146  return

cp_script(c) == script::gran;

14150

constexpr

bool

get_binary_prop<binary_prop::grek>(char32_t c) {

14151  return

cp_script(c) == script::grek;

14155

constexpr

bool

get_binary_prop<binary_prop::gujr>(char32_t c) {

14156  return

cp_script(c) == script::gujr;

14160

constexpr

bool

get_binary_prop<binary_prop::guru>(char32_t c) {

14161  return

cp_script(c) == script::guru;

14165

constexpr

bool

get_binary_prop<binary_prop::hang>(char32_t c) {

14166  return

cp_script(c) == script::hang;

14170

constexpr

bool

get_binary_prop<binary_prop::hani>(char32_t c) {

14171  return

cp_script(c) == script::hani;

14175

constexpr

bool

get_binary_prop<binary_prop::hano>(char32_t c) {

14176  return

cp_script(c) == script::hano;

14180

constexpr

bool

get_binary_prop<binary_prop::hatr>(char32_t c) {

14181  return

cp_script(c) == script::hatr;

14185

constexpr

bool

get_binary_prop<binary_prop::hebr>(char32_t c) {

14186  return

cp_script(c) == script::hebr;

14190

constexpr

bool

get_binary_prop<binary_prop::hira>(char32_t c) {

14191  return

cp_script(c) == script::hira;

14195

constexpr

bool

get_binary_prop<binary_prop::hluw>(char32_t c) {

14196  return

cp_script(c) == script::hluw;

14200

constexpr

bool

get_binary_prop<binary_prop::hmng>(char32_t c) {

14201  return

cp_script(c) == script::hmng;

14205

constexpr

bool

get_binary_prop<binary_prop::hmnp>(char32_t c) {

14206  return

cp_script(c) == script::hmnp;

14210

constexpr

bool

get_binary_prop<binary_prop::hrkt>(char32_t c) {

14211  return

cp_script(c) == script::hrkt;

14215

constexpr

bool

get_binary_prop<binary_prop::hung>(char32_t c) {

14216  return

cp_script(c) == script::hung;

14220

constexpr

bool

get_binary_prop<binary_prop::ital>(char32_t c) {

14221  return

cp_script(c) == script::ital;

14225

constexpr

bool

get_binary_prop<binary_prop::java>(char32_t c) {

14226  return

cp_script(c) == script::java;

14230

constexpr

bool

get_binary_prop<binary_prop::kali>(char32_t c) {

14231  return

cp_script(c) == script::kali;

14235

constexpr

bool

get_binary_prop<binary_prop::kana>(char32_t c) {

14236  return

cp_script(c) == script::kana;

14240

constexpr

bool

get_binary_prop<binary_prop::khar>(char32_t c) {

14241  return

cp_script(c) == script::khar;

14245

constexpr

bool

get_binary_prop<binary_prop::khmr>(char32_t c) {

14246  return

cp_script(c) == script::khmr;

14250

constexpr

bool

get_binary_prop<binary_prop::khoj>(char32_t c) {

14251  return

cp_script(c) == script::khoj;

14255

constexpr

bool

get_binary_prop<binary_prop::kits>(char32_t c) {

14256  return

cp_script(c) == script::kits;

14260

constexpr

bool

get_binary_prop<binary_prop::knda>(char32_t c) {

14261  return

cp_script(c) == script::knda;

14265

constexpr

bool

get_binary_prop<binary_prop::kthi>(char32_t c) {

14266  return

cp_script(c) == script::kthi;

14270

constexpr

bool

get_binary_prop<binary_prop::lana>(char32_t c) {

14271  return

cp_script(c) == script::lana;

14275

constexpr

bool

get_binary_prop<binary_prop::laoo>(char32_t c) {

14276  return

cp_script(c) == script::laoo;

14280

constexpr

bool

get_binary_prop<binary_prop::latn>(char32_t c) {

14281  return

cp_script(c) == script::latn;

14285

constexpr

bool

get_binary_prop<binary_prop::lepc>(char32_t c) {

14286  return

cp_script(c) == script::lepc;

14290

constexpr

bool

get_binary_prop<binary_prop::limb>(char32_t c) {

14291  return

cp_script(c) == script::limb;

14295

constexpr

bool

get_binary_prop<binary_prop::lina>(char32_t c) {

14296  return

cp_script(c) == script::lina;

14300

constexpr

bool

get_binary_prop<binary_prop::linb>(char32_t c) {

14301  return

cp_script(c) == script::linb;

14305

constexpr

bool

get_binary_prop<binary_prop::lisu>(char32_t c) {

14306  return

cp_script(c) == script::lisu;

14310

constexpr

bool

get_binary_prop<binary_prop::lyci>(char32_t c) {

14311  return

cp_script(c) == script::lyci;

14315

constexpr

bool

get_binary_prop<binary_prop::lydi>(char32_t c) {

14316  return

cp_script(c) == script::lydi;

14320

constexpr

bool

get_binary_prop<binary_prop::mahj>(char32_t c) {

14321  return

cp_script(c) == script::mahj;

14325

constexpr

bool

get_binary_prop<binary_prop::maka>(char32_t c) {

14326  return

cp_script(c) == script::maka;

14330

constexpr

bool

get_binary_prop<binary_prop::mand>(char32_t c) {

14331  return

cp_script(c) == script::mand;

14335

constexpr

bool

get_binary_prop<binary_prop::mani>(char32_t c) {

14336  return

cp_script(c) == script::mani;

14340

constexpr

bool

get_binary_prop<binary_prop::marc>(char32_t c) {

14341  return

cp_script(c) == script::marc;

14345

constexpr

bool

get_binary_prop<binary_prop::medf>(char32_t c) {

14346  return

cp_script(c) == script::medf;

14350

constexpr

bool

get_binary_prop<binary_prop::mend>(char32_t c) {

14351  return

cp_script(c) == script::mend;

14355

constexpr

bool

get_binary_prop<binary_prop::merc>(char32_t c) {

14356  return

cp_script(c) == script::merc;

14360

constexpr

bool

get_binary_prop<binary_prop::mero>(char32_t c) {

14361  return

cp_script(c) == script::mero;

14365

constexpr

bool

get_binary_prop<binary_prop::mlym>(char32_t c) {

14366  return

cp_script(c) == script::mlym;

14370

constexpr

bool

get_binary_prop<binary_prop::modi>(char32_t c) {

14371  return

cp_script(c) == script::modi;

14375

constexpr

bool

get_binary_prop<binary_prop::mong>(char32_t c) {

14376  return

cp_script(c) == script::mong;

14380

constexpr

bool

get_binary_prop<binary_prop::mroo>(char32_t c) {

14381  return

cp_script(c) == script::mroo;

14385

constexpr

bool

get_binary_prop<binary_prop::mtei>(char32_t c) {

14386  return

cp_script(c) == script::mtei;

14390

constexpr

bool

get_binary_prop<binary_prop::mult>(char32_t c) {

14391  return

cp_script(c) == script::mult;

14395

constexpr

bool

get_binary_prop<binary_prop::mymr>(char32_t c) {

14396  return

cp_script(c) == script::mymr;

14400

constexpr

bool

get_binary_prop<binary_prop::nand>(char32_t c) {

14401  return

cp_script(c) == script::nand;

14405

constexpr

bool

get_binary_prop<binary_prop::narb>(char32_t c) {

14406  return

cp_script(c) == script::narb;

14410

constexpr

bool

get_binary_prop<binary_prop::nbat>(char32_t c) {

14411  return

cp_script(c) == script::nbat;

14415

constexpr

bool

get_binary_prop<binary_prop::newa>(char32_t c) {

14416  return

cp_script(c) == script::newa;

14420

constexpr

bool

get_binary_prop<binary_prop::nkoo>(char32_t c) {

14421  return

cp_script(c) == script::nkoo;

14425

constexpr

bool

get_binary_prop<binary_prop::nshu>(char32_t c) {

14426  return

cp_script(c) == script::nshu;

14430

constexpr

bool

get_binary_prop<binary_prop::ogam>(char32_t c) {

14431  return

cp_script(c) == script::ogam;

14435

constexpr

bool

get_binary_prop<binary_prop::olck>(char32_t c) {

14436  return

cp_script(c) == script::olck;

14440

constexpr

bool

get_binary_prop<binary_prop::orkh>(char32_t c) {

14441  return

cp_script(c) == script::orkh;

14445

constexpr

bool

get_binary_prop<binary_prop::orya>(char32_t c) {

14446  return

cp_script(c) == script::orya;

14450

constexpr

bool

get_binary_prop<binary_prop::osge>(char32_t c) {

14451  return

cp_script(c) == script::osge;

14455

constexpr

bool

get_binary_prop<binary_prop::osma>(char32_t c) {

14456  return

cp_script(c) == script::osma;

14460

constexpr

bool

get_binary_prop<binary_prop::ougr>(char32_t c) {

14461  return

cp_script(c) == script::ougr;

14465

constexpr

bool

get_binary_prop<binary_prop::palm>(char32_t c) {

14466  return

cp_script(c) == script::palm;

14470

constexpr

bool

get_binary_prop<binary_prop::pauc>(char32_t c) {

14471  return

cp_script(c) == script::pauc;

14475

constexpr

bool

get_binary_prop<binary_prop::perm>(char32_t c) {

14476  return

cp_script(c) == script::perm;

14480

constexpr

bool

get_binary_prop<binary_prop::phag>(char32_t c) {

14481  return

cp_script(c) == script::phag;

14485

constexpr

bool

get_binary_prop<binary_prop::phli>(char32_t c) {

14486  return

cp_script(c) == script::phli;

14490

constexpr

bool

get_binary_prop<binary_prop::phlp>(char32_t c) {

14491  return

cp_script(c) == script::phlp;

14495

constexpr

bool

get_binary_prop<binary_prop::phnx>(char32_t c) {

14496  return

cp_script(c) == script::phnx;

14500

constexpr

bool

get_binary_prop<binary_prop::plrd>(char32_t c) {

14501  return

cp_script(c) == script::plrd;

14505

constexpr

bool

get_binary_prop<binary_prop::prti>(char32_t c) {

14506  return

cp_script(c) == script::prti;

14510

constexpr

bool

get_binary_prop<binary_prop::rjng>(char32_t c) {

14511  return

cp_script(c) == script::rjng;

14515

constexpr

bool

get_binary_prop<binary_prop::rohg>(char32_t c) {

14516  return

cp_script(c) == script::rohg;

14520

constexpr

bool

get_binary_prop<binary_prop::runr>(char32_t c) {

14521  return

cp_script(c) == script::runr;

14525

constexpr

bool

get_binary_prop<binary_prop::samr>(char32_t c) {

14526  return

cp_script(c) == script::samr;

14530

constexpr

bool

get_binary_prop<binary_prop::sarb>(char32_t c) {

14531  return

cp_script(c) == script::sarb;

14535

constexpr

bool

get_binary_prop<binary_prop::saur>(char32_t c) {

14536  return

cp_script(c) == script::saur;

14540

constexpr

bool

get_binary_prop<binary_prop::sgnw>(char32_t c) {

14541  return

cp_script(c) == script::sgnw;

14545

constexpr

bool

get_binary_prop<binary_prop::shaw>(char32_t c) {

14546  return

cp_script(c) == script::shaw;

14550

constexpr

bool

get_binary_prop<binary_prop::shrd>(char32_t c) {

14551  return

cp_script(c) == script::shrd;

14555

constexpr

bool

get_binary_prop<binary_prop::sidd>(char32_t c) {

14556  return

cp_script(c) == script::sidd;

14560

constexpr

bool

get_binary_prop<binary_prop::sind>(char32_t c) {

14561  return

cp_script(c) == script::sind;

14565

constexpr

bool

get_binary_prop<binary_prop::sinh>(char32_t c) {

14566  return

cp_script(c) == script::sinh;

14570

constexpr

bool

get_binary_prop<binary_prop::sogd>(char32_t c) {

14571  return

cp_script(c) == script::sogd;

14575

constexpr

bool

get_binary_prop<binary_prop::sogo>(char32_t c) {

14576  return

cp_script(c) == script::sogo;

14580

constexpr

bool

get_binary_prop<binary_prop::sora>(char32_t c) {

14581  return

cp_script(c) == script::sora;

14585

constexpr

bool

get_binary_prop<binary_prop::soyo>(char32_t c) {

14586  return

cp_script(c) == script::soyo;

14590

constexpr

bool

get_binary_prop<binary_prop::sund>(char32_t c) {

14591  return

cp_script(c) == script::sund;

14595

constexpr

bool

get_binary_prop<binary_prop::sylo>(char32_t c) {

14596  return

cp_script(c) == script::sylo;

14600

constexpr

bool

get_binary_prop<binary_prop::syrc>(char32_t c) {

14601  return

cp_script(c) == script::syrc;

14605

constexpr

bool

get_binary_prop<binary_prop::tagb>(char32_t c) {

14606  return

cp_script(c) == script::tagb;

14610

constexpr

bool

get_binary_prop<binary_prop::takr>(char32_t c) {

14611  return

cp_script(c) == script::takr;

14615

constexpr

bool

get_binary_prop<binary_prop::tale>(char32_t c) {

14616  return

cp_script(c) == script::tale;

14620

constexpr

bool

get_binary_prop<binary_prop::talu>(char32_t c) {

14621  return

cp_script(c) == script::talu;

14625

constexpr

bool

get_binary_prop<binary_prop::taml>(char32_t c) {

14626  return

cp_script(c) == script::taml;

14630

constexpr

bool

get_binary_prop<binary_prop::tang>(char32_t c) {

14631  return

cp_script(c) == script::tang;

14635

constexpr

bool

get_binary_prop<binary_prop::tavt>(char32_t c) {

14636  return

cp_script(c) == script::tavt;

14640

constexpr

bool

get_binary_prop<binary_prop::telu>(char32_t c) {

14641  return

cp_script(c) == script::telu;

14645

constexpr

bool

get_binary_prop<binary_prop::tfng>(char32_t c) {

14646  return

cp_script(c) == script::tfng;

14650

constexpr

bool

get_binary_prop<binary_prop::tglg>(char32_t c) {

14651  return

cp_script(c) == script::tglg;

14655

constexpr

bool

get_binary_prop<binary_prop::thaa>(char32_t c) {

14656  return

cp_script(c) == script::thaa;

14660

constexpr

bool

get_binary_prop<binary_prop::thai>(char32_t c) {

14661  return

cp_script(c) == script::thai;

14665

constexpr

bool

get_binary_prop<binary_prop::tibt>(char32_t c) {

14666  return

cp_script(c) == script::tibt;

14670

constexpr

bool

get_binary_prop<binary_prop::tirh>(char32_t c) {

14671  return

cp_script(c) == script::tirh;

14675

constexpr

bool

get_binary_prop<binary_prop::tnsa>(char32_t c) {

14676  return

cp_script(c) == script::tnsa;

14680

constexpr

bool

get_binary_prop<binary_prop::toto>(char32_t c) {

14681  return

cp_script(c) == script::toto;

14685

constexpr

bool

get_binary_prop<binary_prop::ugar>(char32_t c) {

14686  return

cp_script(c) == script::ugar;

14690

constexpr

bool

get_binary_prop<binary_prop::vaii>(char32_t c) {

14691  return

cp_script(c) == script::vaii;

14695

constexpr

bool

get_binary_prop<binary_prop::vith>(char32_t c) {

14696  return

cp_script(c) == script::vith;

14700

constexpr

bool

get_binary_prop<binary_prop::wara>(char32_t c) {

14701  return

cp_script(c) == script::wara;

14705

constexpr

bool

get_binary_prop<binary_prop::wcho>(char32_t c) {

14706  return

cp_script(c) == script::wcho;

14710

constexpr

bool

get_binary_prop<binary_prop::xpeo>(char32_t c) {

14711  return

cp_script(c) == script::xpeo;

14715

constexpr

bool

get_binary_prop<binary_prop::xsux>(char32_t c) {

14716  return

cp_script(c) == script::xsux;

14720

constexpr

bool

get_binary_prop<binary_prop::yezi>(char32_t c) {

14721  return

cp_script(c) == script::yezi;

14725

constexpr

bool

get_binary_prop<binary_prop::yiii>(char32_t c) {

14726  return

cp_script(c) == script::yiii;

14730

constexpr

bool

get_binary_prop<binary_prop::zanb>(char32_t c) {

14731  return

cp_script(c) == script::zanb;

14735

constexpr

bool

get_binary_prop<binary_prop::zinh>(char32_t c) {

14736  return

cp_script(c) == script::zinh;

14740

constexpr

bool

get_binary_prop<binary_prop::zyyy>(char32_t c) {

14741  return

cp_script(c) == script::zyyy;

14745

constexpr

bool

get_binary_prop<binary_prop::zzzz>(char32_t c) {

14746  return

cp_script(c) == script::zzzz;

14749  static

constexpr string_with_idx binary_prop_names[] = {

14750

string_with_idx{

"adlam"

, 86},

14751

string_with_idx{

"adlm"

, 86},

14752

string_with_idx{

"aghb"

, 87},

14753

string_with_idx{

"ahex"

, 0},

14754

string_with_idx{

"ahom"

, 88},

14755

string_with_idx{

"alpha"

, 1},

14756

string_with_idx{

"alphabetic"

, 1},

14757

string_with_idx{

"anatolian_hieroglyphs"

, 138},

14758

string_with_idx{

"any"

, 45},

14759

string_with_idx{

"arab"

, 89},

14760

string_with_idx{

"arabic"

, 89},

14761

string_with_idx{

"armenian"

, 91},

14762

string_with_idx{

"armi"

, 90},

14763

string_with_idx{

"armn"

, 91},

14764

string_with_idx{

"ascii"

, 46},

14765

string_with_idx{

"ascii_hex_digit"

, 0},

14766

string_with_idx{

"assigned"

, 47},

14767

string_with_idx{

"avestan"

, 92},

14768

string_with_idx{

"avst"

, 92},

14769

string_with_idx{

"bali"

, 93},

14770

string_with_idx{

"balinese"

, 93},

14771

string_with_idx{

"bamu"

, 94},

14772

string_with_idx{

"bamum"

, 94},

14773

string_with_idx{

"bass"

, 95},

14774

string_with_idx{

"bassa_vah"

, 95},

14775

string_with_idx{

"batak"

, 96},

14776

string_with_idx{

"batk"

, 96},

14777

string_with_idx{

"beng"

, 97},

14778

string_with_idx{

"bengali"

, 97},

14779

string_with_idx{

"bhaiksuki"

, 98},

14780

string_with_idx{

"bhks"

, 98},

14781

string_with_idx{

"bidi_c"

, 2},

14782

string_with_idx{

"bidi_control"

, 2},

14783

string_with_idx{

"bidi_m"

, 3},

14784

string_with_idx{

"bidi_mirrored"

, 3},

14785

string_with_idx{

"bopo"

, 99},

14786

string_with_idx{

"bopomofo"

, 99},

14787

string_with_idx{

"brah"

, 100},

14788

string_with_idx{

"brahmi"

, 100},

14789

string_with_idx{

"brai"

, 101},

14790

string_with_idx{

"braille"

, 101},

14791

string_with_idx{

"bugi"

, 102},

14792

string_with_idx{

"buginese"

, 102},

14793

string_with_idx{

"buhd"

, 103},

14794

string_with_idx{

"buhid"

, 103},

14795

string_with_idx{

"c"

, 48},

14796

string_with_idx{

"cakm"

, 104},

14797

string_with_idx{

"canadian_aboriginal"

, 105},

14798

string_with_idx{

"cans"

, 105},

14799

string_with_idx{

"cari"

, 106},

14800

string_with_idx{

"carian"

, 106},

14801

string_with_idx{

"case_ignorable"

, 5},

14802

string_with_idx{

"cased"

, 4},

14803

string_with_idx{

"cased_letter"

, 55},

14804

string_with_idx{

"caucasian_albanian"

, 87},

14805

string_with_idx{

"cc"

, 49},

14806

string_with_idx{

"cf"

, 50},

14807

string_with_idx{

"chakma"

, 104},

14808

string_with_idx{

"cham"

, 107},

14809

string_with_idx{

"cher"

, 108},

14810

string_with_idx{

"cherokee"

, 108},

14811

string_with_idx{

"chorasmian"

, 109},

14812

string_with_idx{

"chrs"

, 109},

14813

string_with_idx{

"ci"

, 5},

14814

string_with_idx{

"close_punctuation"

, 72},

14815

string_with_idx{

"cn"

, 51},

14816

string_with_idx{

"co"

, 52},

14817

string_with_idx{

"common"

, 247},

14818

string_with_idx{

"connector_punctuation"

, 70},

14819

string_with_idx{

"control"

, 49},

14820

string_with_idx{

"copt"

, 110},

14821

string_with_idx{

"coptic"

, 110},

14822

string_with_idx{

"cpmn"

, 111},

14823

string_with_idx{

"cprt"

, 112},

14824

string_with_idx{

"cs"

, 53},

14825

string_with_idx{

"cuneiform"

, 242},

14826

string_with_idx{

"currency_symbol"

, 78},

14827

string_with_idx{

"cypriot"

, 112},

14828

string_with_idx{

"cypro_minoan"

, 111},

14829

string_with_idx{

"cyrillic"

, 113},

14830

string_with_idx{

"cyrl"

, 113},

14831

string_with_idx{

"dash"

, 6},

14832

string_with_idx{

"dash_punctuation"

, 71},

14833

string_with_idx{

"decimal_number"

, 66},

14834

string_with_idx{

"default_ignorable_code_point"

, 8},

14835

string_with_idx{

"dep"

, 7},

14836

string_with_idx{

"deprecated"

, 7},

14837

string_with_idx{

"deseret"

, 117},

14838

string_with_idx{

"deva"

, 114},

14839

string_with_idx{

"devanagari"

, 114},

14840

string_with_idx{

"di"

, 8},

14841

string_with_idx{

"dia"

, 9},

14842

string_with_idx{

"diacritic"

, 9},

14843

string_with_idx{

"diak"

, 115},

14844

string_with_idx{

"dives_akuru"

, 115},

14845

string_with_idx{

"dogr"

, 116},

14846

string_with_idx{

"dogra"

, 116},

14847

string_with_idx{

"dsrt"

, 117},

14848

string_with_idx{

"dupl"

, 118},

14849

string_with_idx{

"duployan"

, 118},

14850

string_with_idx{

"egyp"

, 119},

14851

string_with_idx{

"egyptian_hieroglyphs"

, 119},

14852

string_with_idx{

"elba"

, 120},

14853

string_with_idx{

"elbasan"

, 120},

14854

string_with_idx{

"elym"

, 121},

14855

string_with_idx{

"elymaic"

, 121},

14856

string_with_idx{

"emoji"

, 10},

14857

string_with_idx{

"emoji_component"

, 11},

14858

string_with_idx{

"emoji_modifier"

, 12},

14859

string_with_idx{

"emoji_modifier_base"

, 13},

14860

string_with_idx{

"emoji_presentation"

, 14},

14861

string_with_idx{

"enclosing_mark"

, 63},

14862

string_with_idx{

"ethi"

, 122},

14863

string_with_idx{

"ethiopic"

, 122},

14864

string_with_idx{

"ext"

, 15},

14865

string_with_idx{

"extended_pictographic"

, 16},

14866

string_with_idx{

"extender"

, 15},

14867

string_with_idx{

"final_punctuation"

, 73},

14868

string_with_idx{

"format"

, 50},

14869

string_with_idx{

"geor"

, 123},

14870

string_with_idx{

"georgian"

, 123},

14871

string_with_idx{

"glag"

, 124},

14872

string_with_idx{

"glagolitic"

, 124},

14873

string_with_idx{

"gong"

, 125},

14874

string_with_idx{

"gonm"

, 126},

14875

string_with_idx{

"goth"

, 127},

14876

string_with_idx{

"gothic"

, 127},

14877

string_with_idx{

"gr_base"

, 17},

14878

string_with_idx{

"gr_ext"

, 18},

14879

string_with_idx{

"gran"

, 128},

14880

string_with_idx{

"grantha"

, 128},

14881

string_with_idx{

"grapheme_base"

, 17},

14882

string_with_idx{

"grapheme_extend"

, 18},

14883

string_with_idx{

"greek"

, 129},

14884

string_with_idx{

"grek"

, 129},

14885

string_with_idx{

"gujarati"

, 130},

14886

string_with_idx{

"gujr"

, 130},

14887

string_with_idx{

"gunjala_gondi"

, 125},

14888

string_with_idx{

"gurmukhi"

, 131},

14889

string_with_idx{

"guru"

, 131},

14890

string_with_idx{

"han"

, 133},

14891

string_with_idx{

"hang"

, 132},

14892

string_with_idx{

"hangul"

, 132},

14893

string_with_idx{

"hani"

, 133},

14894

string_with_idx{

"hanifi_rohingya"

, 202},

14895

string_with_idx{

"hano"

, 134},

14896

string_with_idx{

"hanunoo"

, 134},

14897

string_with_idx{

"hatr"

, 135},

14898

string_with_idx{

"hatran"

, 135},

14899

string_with_idx{

"hebr"

, 136},

14900

string_with_idx{

"hebrew"

, 136},

14901

string_with_idx{

"hex"

, 19},

14902

string_with_idx{

"hex_digit"

, 19},

14903

string_with_idx{

"hira"

, 137},

14904

string_with_idx{

"hiragana"

, 137},

14905

string_with_idx{

"hluw"

, 138},

14906

string_with_idx{

"hmng"

, 139},

14907

string_with_idx{

"hmnp"

, 140},

14908

string_with_idx{

"hrkt"

, 141},

14909

string_with_idx{

"hung"

, 142},

14910

string_with_idx{

"id_continue"

, 20},

14911

string_with_idx{

"id_start"

, 22},

14912

string_with_idx{

"idc"

, 20},

14913

string_with_idx{

"ideo"

, 21},

14914

string_with_idx{

"ideographic"

, 21},

14915

string_with_idx{

"ids"

, 22},

14916

string_with_idx{

"ids_binary_operator"

, 23},

14917

string_with_idx{

"ids_trinary_operator"

, 24},

14918

string_with_idx{

"idsb"

, 23},

14919

string_with_idx{

"idst"

, 24},

14920

string_with_idx{

"imperial_aramaic"

, 90},

14921

string_with_idx{

"inherited"

, 246},

14922

string_with_idx{

"initial_punctuation"

, 74},

14923

string_with_idx{

"inscriptional_pahlavi"

, 196},

14924

string_with_idx{

"inscriptional_parthian"

, 200},

14925

string_with_idx{

"ital"

, 143},

14926

string_with_idx{

"java"

, 144},

14927

string_with_idx{

"javanese"

, 144},

14928

string_with_idx{

"join_c"

, 25},

14929

string_with_idx{

"join_control"

, 25},

14930

string_with_idx{

"kaithi"

, 152},

14931

string_with_idx{

"kali"

, 145},

14932

string_with_idx{

"kana"

, 146},

14933

string_with_idx{

"kannada"

, 151},

14934

string_with_idx{

"katakana"

, 146},

14935

string_with_idx{

"katakana_or_hiragana"

, 141},

14936

string_with_idx{

"kayah_li"

, 145},

14937

string_with_idx{

"khar"

, 147},

14938

string_with_idx{

"kharoshthi"

, 147},

14939

string_with_idx{

"khitan_small_script"

, 150},

14940

string_with_idx{

"khmer"

, 148},

14941

string_with_idx{

"khmr"

, 148},

14942

string_with_idx{

"khoj"

, 149},

14943

string_with_idx{

"khojki"

, 149},

14944

string_with_idx{

"khudawadi"

, 211},

14945

string_with_idx{

"kits"

, 150},

14946

string_with_idx{

"knda"

, 151},

14947

string_with_idx{

"kthi"

, 152},

14948

string_with_idx{

"l"

, 54},

14949

string_with_idx{

"lana"

, 153},

14950

string_with_idx{

"lao"

, 154},

14951

string_with_idx{

"laoo"

, 154},

14952

string_with_idx{

"latin"

, 155},

14953

string_with_idx{

"latn"

, 155},

14954

string_with_idx{

"lc"

, 55},

14955

string_with_idx{

"lepc"

, 156},

14956

string_with_idx{

"lepcha"

, 156},

14957

string_with_idx{

"letter"

, 54},

14958

string_with_idx{

"letter_number"

, 67},

14959

string_with_idx{

"limb"

, 157},

14960

string_with_idx{

"limbu"

, 157},

14961

string_with_idx{

"lina"

, 158},

14962

string_with_idx{

"linb"

, 159},

14963

string_with_idx{

"line_separator"

, 83},

14964

string_with_idx{

"linear_a"

, 158},

14965

string_with_idx{

"linear_b"

, 159},

14966

string_with_idx{

"lisu"

, 160},

14967

string_with_idx{

"ll"

, 56},

14968

string_with_idx{

"lm"

, 57},

14969

string_with_idx{

"lo"

, 58},

14970

string_with_idx{

"loe"

, 26},

14971

string_with_idx{

"logical_order_exception"

, 26},

14972

string_with_idx{

"lower"

, 27},

14973

string_with_idx{

"lowercase"

, 27},

14974

string_with_idx{

"lowercase_letter"

, 56},

14975

string_with_idx{

"lt"

, 59},

14976

string_with_idx{

"lu"

, 60},

14977

string_with_idx{

"lyci"

, 161},

14978

string_with_idx{

"lycian"

, 161},

14979

string_with_idx{

"lydi"

, 162},

14980

string_with_idx{

"lydian"

, 162},

14981

string_with_idx{

"m"

, 61},

14982

string_with_idx{

"mahajani"

, 163},

14983

string_with_idx{

"mahj"

, 163},

14984

string_with_idx{

"maka"

, 164},

14985

string_with_idx{

"makasar"

, 164},

14986

string_with_idx{

"malayalam"

, 172},

14987

string_with_idx{

"mand"

, 165},

14988

string_with_idx{

"mandaic"

, 165},

14989

string_with_idx{

"mani"

, 166},

14990

string_with_idx{

"manichaean"

, 166},

14991

string_with_idx{

"marc"

, 167},

14992

string_with_idx{

"marchen"

, 167},

14993

string_with_idx{

"mark"

, 61},

14994

string_with_idx{

"masaram_gondi"

, 126},

14995

string_with_idx{

"math"

, 28},

14996

string_with_idx{

"math_symbol"

, 80},

14997

string_with_idx{

"mc"

, 62},

14998

string_with_idx{

"me"

, 63},

14999

string_with_idx{

"medefaidrin"

, 168},

15000

string_with_idx{

"medf"

, 168},

15001

string_with_idx{

"meetei_mayek"

, 176},

15002

string_with_idx{

"mend"

, 169},

15003

string_with_idx{

"mende_kikakui"

, 169},

15004

string_with_idx{

"merc"

, 170},

15005

string_with_idx{

"mero"

, 171},

15006

string_with_idx{

"meroitic_cursive"

, 170},

15007

string_with_idx{

"meroitic_hieroglyphs"

, 171},

15008

string_with_idx{

"miao"

, 199},

15009

string_with_idx{

"mlym"

, 172},

15010

string_with_idx{

"mn"

, 64},

15011

string_with_idx{

"modi"

, 173},

15012

string_with_idx{

"modifier_letter"

, 57},

15013

string_with_idx{

"modifier_symbol"

, 79},

15014

string_with_idx{

"mong"

, 174},

15015

string_with_idx{

"mongolian"

, 174},

15016

string_with_idx{

"mro"

, 175},

15017

string_with_idx{

"mroo"

, 175},

15018

string_with_idx{

"mtei"

, 176},

15019

string_with_idx{

"mult"

, 177},

15020

string_with_idx{

"multani"

, 177},

15021

string_with_idx{

"myanmar"

, 178},

15022

string_with_idx{

"mymr"

, 178},

15023

string_with_idx{

"n"

, 65},

15024

string_with_idx{

"nabataean"

, 181},

15025

string_with_idx{

"nand"

, 179},

15026

string_with_idx{

"nandinagari"

, 179},

15027

string_with_idx{

"narb"

, 180},

15028

string_with_idx{

"nbat"

, 181},

15029

string_with_idx{

"nchar"

, 29},

15030

string_with_idx{

"nd"

, 66},

15031

string_with_idx{

"new_tai_lue"

, 223},

15032

string_with_idx{

"newa"

, 182},

15033

string_with_idx{

"nko"

, 183},

15034

string_with_idx{

"nkoo"

, 183},

15035

string_with_idx{

"nl"

, 67},

15036

string_with_idx{

"no"

, 68},

15037

string_with_idx{

"noncharacter_code_point"

, 29},

15038

string_with_idx{

"nonspacing_mark"

, 64},

15039

string_with_idx{

"nshu"

, 184},

15040

string_with_idx{

"number"

, 65},

15041

string_with_idx{

"nushu"

, 184},

15042

string_with_idx{

"nyiakeng_puachue_hmong"

, 140},

15043

string_with_idx{

"ogam"

, 185},

15044

string_with_idx{

"ogham"

, 185},

15045

string_with_idx{

"ol_chiki"

, 186},

15046

string_with_idx{

"olck"

, 186},

15047

string_with_idx{

"old_hungarian"

, 142},

15048

string_with_idx{

"old_italic"

, 143},

15049

string_with_idx{

"old_north_arabian"

, 180},

15050

string_with_idx{

"old_permic"

, 194},

15051

string_with_idx{

"old_persian"

, 241},

15052

string_with_idx{

"old_sogdian"

, 214},

15053

string_with_idx{

"old_south_arabian"

, 205},

15054

string_with_idx{

"old_turkic"

, 187},

15055

string_with_idx{

"old_uyghur"

, 191},

15056

string_with_idx{

"open_punctuation"

, 76},

15057

string_with_idx{

"oriya"

, 188},

15058

string_with_idx{

"orkh"

, 187},

15059

string_with_idx{

"orya"

, 188},

15060

string_with_idx{

"osage"

, 189},

15061

string_with_idx{

"osge"

, 189},

15062

string_with_idx{

"osma"

, 190},

15063

string_with_idx{

"osmanya"

, 190},

15064

string_with_idx{

"other"

, 48},

15065

string_with_idx{

"other_letter"

, 58},

15066

string_with_idx{

"other_number"

, 68},

15067

string_with_idx{

"other_punctuation"

, 75},

15068

string_with_idx{

"other_symbol"

, 81},

15069

string_with_idx{

"ougr"

, 191},

15070

string_with_idx{

"p"

, 69},

15071

string_with_idx{

"pahawh_hmong"

, 139},

15072

string_with_idx{

"palm"

, 192},

15073

string_with_idx{

"palmyrene"

, 192},

15074

string_with_idx{

"paragraph_separator"

, 84},

15075

string_with_idx{

"pat_syn"

, 30},

15076

string_with_idx{

"pat_ws"

, 31},

15077

string_with_idx{

"pattern_syntax"

, 30},

15078

string_with_idx{

"pattern_white_space"

, 31},

15079

string_with_idx{

"pau_cin_hau"

, 193},

15080

string_with_idx{

"pauc"

, 193},

15081

string_with_idx{

"pc"

, 70},

15082

string_with_idx{

"pcm"

, 32},

15083

string_with_idx{

"pd"

, 71},

15084

string_with_idx{

"pe"

, 72},

15085

string_with_idx{

"perm"

, 194},

15086

string_with_idx{

"pf"

, 73},

15087

string_with_idx{

"phag"

, 195},

15088

string_with_idx{

"phags_pa"

, 195},

15089

string_with_idx{

"phli"

, 196},

15090

string_with_idx{

"phlp"

, 197},

15091

string_with_idx{

"phnx"

, 198},

15092

string_with_idx{

"phoenician"

, 198},

15093

string_with_idx{

"pi"

, 74},

15094

string_with_idx{

"plrd"

, 199},

15095

string_with_idx{

"po"

, 75},

15096

string_with_idx{

"prepended_concatenation_mark"

, 32},

15097

string_with_idx{

"private_use"

, 52},

15098

string_with_idx{

"prti"

, 200},

15099

string_with_idx{

"ps"

, 76},

15100

string_with_idx{

"psalter_pahlavi"

, 197},

15101

string_with_idx{

"punctuation"

, 69},

15102

string_with_idx{

"qmark"

, 33},

15103

string_with_idx{

"quotation_mark"

, 33},

15104

string_with_idx{

"radical"

, 34},

15105

string_with_idx{

"regional_indicator"

, 35},

15106

string_with_idx{

"rejang"

, 201},

15107

string_with_idx{

"ri"

, 35},

15108

string_with_idx{

"rjng"

, 201},

15109

string_with_idx{

"rohg"

, 202},

15110

string_with_idx{

"runic"

, 203},

15111

string_with_idx{

"runr"

, 203},

15112

string_with_idx{

"s"

, 77},

15113

string_with_idx{

"samaritan"

, 204},

15114

string_with_idx{

"samr"

, 204},

15115

string_with_idx{

"sarb"

, 205},

15116

string_with_idx{

"saur"

, 206},

15117

string_with_idx{

"saurashtra"

, 206},

15118

string_with_idx{

"sc"

, 78},

15119

string_with_idx{

"sd"

, 36},

15120

string_with_idx{

"sentence_terminal"

, 37},

15121

string_with_idx{

"separator"

, 82},

15122

string_with_idx{

"sgnw"

, 207},

15123

string_with_idx{

"sharada"

, 209},

15124

string_with_idx{

"shavian"

, 208},

15125

string_with_idx{

"shaw"

, 208},

15126

string_with_idx{

"shrd"

, 209},

15127

string_with_idx{

"sidd"

, 210},

15128

string_with_idx{

"siddham"

, 210},

15129

string_with_idx{

"signwriting"

, 207},

15130

string_with_idx{

"sind"

, 211},

15131

string_with_idx{

"sinh"

, 212},

15132

string_with_idx{

"sinhala"

, 212},

15133

string_with_idx{

"sk"

, 79},

15134

string_with_idx{

"sm"

, 80},

15135

string_with_idx{

"so"

, 81},

15136

string_with_idx{

"soft_dotted"

, 36},

15137

string_with_idx{

"sogd"

, 213},

15138

string_with_idx{

"sogdian"

, 213},

15139

string_with_idx{

"sogo"

, 214},

15140

string_with_idx{

"sora"

, 215},

15141

string_with_idx{

"sora_sompeng"

, 215},

15142

string_with_idx{

"soyo"

, 216},

15143

string_with_idx{

"soyombo"

, 216},

15144

string_with_idx{

"space"

, 42},

15145

string_with_idx{

"space_separator"

, 85},

15146

string_with_idx{

"spacing_mark"

, 62},

15147

string_with_idx{

"sterm"

, 37},

15148

string_with_idx{

"sund"

, 217},

15149

string_with_idx{

"sundanese"

, 217},

15150

string_with_idx{

"surrogate"

, 53},

15151

string_with_idx{

"sylo"

, 218},

15152

string_with_idx{

"syloti_nagri"

, 218},

15153

string_with_idx{

"symbol"

, 77},

15154

string_with_idx{

"syrc"

, 219},

15155

string_with_idx{

"syriac"

, 219},

15156

string_with_idx{

"tagalog"

, 229},

15157

string_with_idx{

"tagb"

, 220},

15158

string_with_idx{

"tagbanwa"

, 220},

15159

string_with_idx{

"tai_le"

, 222},

15160

string_with_idx{

"tai_tham"

, 153},

15161

string_with_idx{

"tai_viet"

, 226},

15162

string_with_idx{

"takr"

, 221},

15163

string_with_idx{

"takri"

, 221},

15164

string_with_idx{

"tale"

, 222},

15165

string_with_idx{

"talu"

, 223},

15166

string_with_idx{

"tamil"

, 224},

15167

string_with_idx{

"taml"

, 224},

15168

string_with_idx{

"tang"

, 225},

15169

string_with_idx{

"tangsa"

, 234},

15170

string_with_idx{

"tangut"

, 225},

15171

string_with_idx{

"tavt"

, 226},

15172

string_with_idx{

"telu"

, 227},

15173

string_with_idx{

"telugu"

, 227},

15174

string_with_idx{

"term"

, 38},

15175

string_with_idx{

"terminal_punctuation"

, 38},

15176

string_with_idx{

"tfng"

, 228},

15177

string_with_idx{

"tglg"

, 229},

15178

string_with_idx{

"thaa"

, 230},

15179

string_with_idx{

"thaana"

, 230},

15180

string_with_idx{

"thai"

, 231},

15181

string_with_idx{

"tibetan"

, 232},

15182

string_with_idx{

"tibt"

, 232},

15183

string_with_idx{

"tifinagh"

, 228},

15184

string_with_idx{

"tirh"

, 233},

15185

string_with_idx{

"tirhuta"

, 233},

15186

string_with_idx{

"titlecase_letter"

, 59},

15187

string_with_idx{

"tnsa"

, 234},

15188

string_with_idx{

"toto"

, 235},

15189

string_with_idx{

"ugar"

, 236},

15190

string_with_idx{

"ugaritic"

, 236},

15191

string_with_idx{

"uideo"

, 39},

15192

string_with_idx{

"unassigned"

, 51},

15193

string_with_idx{

"unified_ideograph"

, 39},

15194

string_with_idx{

"unknown"

, 248},

15195

string_with_idx{

"upper"

, 40},

15196

string_with_idx{

"uppercase"

, 40},

15197

string_with_idx{

"uppercase_letter"

, 60},

15198

string_with_idx{

"vai"

, 237},

15199

string_with_idx{

"vaii"

, 237},

15200

string_with_idx{

"variation_selector"

, 41},

15201

string_with_idx{

"vith"

, 238},

15202

string_with_idx{

"vithkuqi"

, 238},

15203

string_with_idx{

"vs"

, 41},

15204

string_with_idx{

"wancho"

, 240},

15205

string_with_idx{

"wara"

, 239},

15206

string_with_idx{

"warang_citi"

, 239},

15207

string_with_idx{

"wcho"

, 240},

15208

string_with_idx{

"white_space"

, 42},

15209

string_with_idx{

"wspace"

, 42},

15210

string_with_idx{

"xid_continue"

, 43},

15211

string_with_idx{

"xid_start"

, 44},

15212

string_with_idx{

"xidc"

, 43},

15213

string_with_idx{

"xids"

, 44},

15214

string_with_idx{

"xpeo"

, 241},

15215

string_with_idx{

"xsux"

, 242},

15216

string_with_idx{

"yezi"

, 243},

15217

string_with_idx{

"yezidi"

, 243},

15218

string_with_idx{

"yi"

, 244},

15219

string_with_idx{

"yiii"

, 244},

15220

string_with_idx{

"z"

, 82},

15221

string_with_idx{

"zanabazar_square"

, 245},

15222

string_with_idx{

"zanb"

, 245},

15223

string_with_idx{

"zinh"

, 246},

15224

string_with_idx{

"zl"

, 83},

15225

string_with_idx{

"zp"

, 84},

15226

string_with_idx{

"zs"

, 85},

15227

string_with_idx{

"zyyy"

, 247},

15228

string_with_idx{

"zzzz"

, 248}};

15234 namespace

uni::detail {

15236

constexpr binary_prop binary_prop_from_string(std::string_view s) {

15237  for

(

const auto

& c : tables::binary_prop_names) {

15238  const auto

res = propnamecomp(s, c.name);

15240  return

binary_prop(c.value);

15242  return

binary_prop::unknown;

15246

constexpr

bool

get_binary_prop<binary_prop::ascii>(char32_t c) {

15247  return

cp_is_ascii(c);

15251

constexpr

bool

get_binary_prop<binary_prop::assigned>(char32_t c) {

15252  return

cp_is_assigned(c);

15256

constexpr

bool

get_binary_prop<binary_prop::any>(char32_t c) {

15257  return

cp_is_valid(c);

15260

constexpr

bool

is_unknown(binary_prop s) {

15261  return

s == binary_prop::unknown;

ncbi::TMaskedQueryRegions mask

constexpr bool correct() const noexcept

constexpr size_t size() const noexcept

constexpr const char32_t * end() const noexcept

constexpr fixed_string(const T *) noexcept

constexpr fixed_string(const fixed_string &) noexcept

constexpr const char32_t * begin() const noexcept

constexpr char32_t operator[](size_t) const noexcept

constexpr fixed_string(std::initializer_list< char32_t >) noexcept

static bool is_valid(const char *num, int type, CONV_RESULT *cr)

#define CTRE_REGEX_INPUT_TYPE

#define CTLL_FORCE_INLINE

static vector< string > arr

bool operator<(const CEquivRange &A, const CEquivRange &B)

bool operator==(const CEquivRange &A, const CEquivRange &B)

CNcbiOstream & operator<<(CNcbiOstream &out, const CEquivRange &range)

std::ofstream out("events_result.xml")

main entry point for tests

#define test(a, b, c, d, e)

static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)

static DLIST_TYPE *DLIST_NAME() last(DLIST_LIST_TYPE *list)

static DLIST_TYPE *DLIST_NAME() prev(DLIST_LIST_TYPE *list, DLIST_TYPE *item)

static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)

static int lookup(const char *name, const struct lookup_int *table)

static SQLCHAR output[256]

static const char * str(char *buf, int n)

static const char arabic[]

static const char hebrew[]

CNcbiIstream & operator>>(CNcbiIstream &s, const getcontig &c)

string operator+(const CCgiEntry &e, const string &s)

CVect2< T > operator-(const CVect2< T > &v)

CVect2< NCBI_PROMOTE(int,U) > operator*(int v1, const CVect2< U > &v2)

CFields operator|(CFields, CFields)

CExpression operator>=(CREATED, time_point)

CExpression operator<=(time_point, CREATED)

sequence::ECompare Compare(const CSeq_loc &loc1, const CSeq_loc &loc2, CScope *scope)

Returns the sequence::ECompare containment relationship between CSeq_locs.

bool operator!=(const CNCBI_IPAddr &lhs, unsigned int rhs)

#define Z

printf format modifier for size_t

unsigned int

A callback function used to compare two keys in a database.

The blob sat and sat key Both must be positive integers</td > n< td > Non empty string The interpretation of the blob id depends on a processor Cassandra n processor expects the following format

static void hex(unsigned char c)

constexpr length_value_t length_and_value_of_utf16_code_point(uint16_t first_unit) noexcept

constexpr length_value_t length_and_value_of_utf8_code_point(uint8_t first_unit) noexcept

constexpr char32_t value_of_trailing_utf8_code_point(uint8_t unit, bool &correct) noexcept

constexpr bool exists_in(T, list< Ts... >) noexcept

constexpr auto size(list< Ts... >) noexcept

constexpr auto concat(list< As... >, list< Bs... >) noexcept -> list< As..., Bs... >

typename conditional_helper< V >::template type< A, B > conditional

constexpr auto remove_item(T, list< Ts... >) noexcept

constexpr auto pop_and_get_front(list< Head, As... >, T=T()) noexcept -> list_pop_pair< Head, list< As... >>

constexpr auto pop_front(list< T, As... >) noexcept -> list< As... >

constexpr auto pop_front_and_push_front(T item, list< As... > l)

constexpr auto front(list< Head, As... >, T=T()) noexcept -> Head

constexpr auto push_front(T, list< As... >) noexcept -> list< T, As... >

fixed_string(const CharT(&)[N]) -> fixed_string< N-1 >

constexpr auto rotate(list< Ts... >) -> decltype((list<>{}+...+rotate_item< Ts >{}))

constexpr auto add_item(T item, list< Ts... > l) noexcept

constexpr bool empty(list< Ts... >) noexcept

const string version

version string

string_type::value_type char_type

The character type used by the parser.

double value_type

The numeric datatype used by the parser.

const GenericPointer< typename T::ValueType > T2 value

const GenericPointer< typename T::ValueType > & pointer

GenericValue< UTF8<> > Value

GenericValue with UTF8 encoding.

#define F(x)

Make a parametrized function appear to have only one variable.

S & operator--(CNetRef< S > &r, int)

double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)

void split(std::vector< std::string > *strVec, const std::string &str_, const std::string &split_)

static int match(PCRE2_SPTR start_eptr, PCRE2_SPTR start_ecode, uint16_t top_bracket, PCRE2_SIZE frame_size, pcre2_match_data *match_data, match_block *mb)

static const sljit_gpr r1

static const sljit_gpr r5

static SLJIT_INLINE sljit_ins l(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)

static const sljit_gpr r4

static const sljit_gpr r6

static const sljit_gpr r3

static const sljit_gpr r2

constexpr anything(term< V >) noexcept

constexpr anything() noexcept

static constexpr auto rule(term< A >, term< A >) -> ctll::pop_input

static constexpr auto rule(empty_stack_symbol, epsilon) -> ctll::accept

static constexpr auto rule(Expected, term< V >) -> std::enable_if_t< std::is_constructible_v< Expected, term< V >>, ctll::pop_input >

static constexpr auto rule(...) -> ctll::reject

static constexpr auto apply(Action, InputSymbol, Subject subject)

static constexpr auto value

constexpr bool correct() const noexcept

constexpr const char32_t * end() const noexcept

constexpr const char32_t * begin() const noexcept

constexpr size_t size() const noexcept

constexpr char32_t operator[](size_t i) const noexcept

constexpr bool is_same_as(const fixed_string< M > &rhs) const noexcept

constexpr fixed_string(const T(&input)[N+1]) noexcept

constexpr fixed_string(const fixed_string &other) noexcept

constexpr static auto apply(Action, term< V >, empty_subject) -> empty_subject

constexpr static auto apply(Action, epsilon, empty_subject) -> empty_subject

constexpr static auto apply(Action, term< V >, Subject) -> Subject

constexpr static auto apply(Action, epsilon, Subject) -> Subject

constexpr friend auto operator+(list< Ts... >, not_selected) -> list< Ts... >

constexpr friend auto operator+(list< Ts... >, wrapper< Y >) -> list< Ts..., Y >

static constexpr auto check(T)

static constexpr auto select(T)

static constexpr auto check(...)

static constexpr auto select(Y)

constexpr list_pop_pair()=default

constexpr neg_set(term< V >) noexcept

constexpr neg_set() noexcept

constexpr auto operator+(placeholder) const noexcept

static constexpr auto trampoline_decide(Subject, std::index_sequence< Pos... >) noexcept

static constexpr auto move(ctll::pop_input, Terminal, Stack, Subject) noexcept

static constexpr auto trampoline_decide(Subject subject={}) noexcept

ctll::conditional< IgnoreUnknownActions, ignore_unknown< ActionSelector >, identity< ActionSelector > > Actions

static constexpr auto move(ctll::accept, Terminal, Stack, Subject) noexcept

static constexpr auto move(push< Content... > string, Terminal, Stack stack, Subject subject) noexcept

static constexpr auto decide(Stack previous_stack, Subject previous_subject) noexcept

static constexpr auto _input

static constexpr bool correct_with

static constexpr auto move(push< term< V >, Content... >, term< V >, Stack stack, Subject) noexcept

static constexpr auto move(ctll::reject, Terminal, Stack, Subject) noexcept

static constexpr auto move(push< anything, Content... >, term< T >, Stack stack, Subject) noexcept

decltype(trampoline_decide< Subject >()) output

static constexpr auto move(epsilon, Terminal, Stack stack, Subject subject) noexcept

static constexpr auto get_previous_term() noexcept

static constexpr auto get_current_term() noexcept

constexpr range() noexcept

constexpr friend auto operator+(list< Ts... >, rotate_item< T >) noexcept -> list< T, Ts... >

constexpr set(term< V >) noexcept

static constexpr auto value

int g(Seg_Gsm *spe, Seq_Mtf *psm, Thd_Gsm *tdg)

bool operator>(const typename tree< T, tree_node_allocator >::iterator_base &one, const typename tree< T, tree_node_allocator >::iterator_base &two)

static Uint4 letter(char c)


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4