gen-unicode-tables.pl: Add a new ‘either’ compose table

See the big comment in the code for details. Essentially, this adds a
new compose table specifically for the transitive closure of ‘either’
codepoints — codepoints which appear as the first codepoint in a
composition pair and as the second point in a composition pair
(potentially, but not necessarily, the same pair); or which appear in a
composition pair with an ‘either’ codepoint.

This new compose table has to be symmetrically indexed, as the
`COMPOSE_INDEX` macro doesn’t differentiate based on codepoint position
(first or second). It’s not possible to achieve that with the main
`compose_array` without making it absolutely huge (it’s currently about
150×40 in size and would have to become at least 150×150 in size). In
contrast, the new `compose_either_array` is currently 15×15.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>

Helps: #3470
This commit is contained in:
Philip Withnall 2024-10-21 17:05:04 +01:00
parent dc2491d224
commit 32d3bddae4
No known key found for this signature in database
GPG Key ID: C5C42CFB268637CA
3 changed files with 398 additions and 298 deletions

View File

@ -1166,11 +1166,12 @@ EOT
sub enumerate_ordered
{
my ($array) = @_;
my ($array, $should_filter) = @_;
$should_filter = defined $should_filter ? $should_filter : 1;
my $n = 0;
for my $code (sort { $a <=> $b } keys %$array) {
if ($array->{$code} == 1) {
if ($should_filter && $array->{$code} == 1) {
delete $array->{$code};
next;
}
@ -1238,6 +1239,20 @@ sub output_composition_table
# The resulting value is a tuple containing the other expected codepoint in
# the composition pair, and the composed codepoint.
#
# Either codepoints are also separated out into their own array within
# this domain. An either codepoint is one which appears as the first
# codepoint of a composition pair and the second codepoint of a composition
# pair (not necessarily different pairs). These have to be separated out as
# `COMPOSE_INDEX` does not distinguish between first and second codepoints,
# so either codepoints necessitate a symmetric array. If the full
# `compose_array` were symmetric, it would be huge. Since there are
# relatively few either codepoints (15 at the time of writing in 2024),
# a separate symmetric array suffices for them.
#
# This means that either codepoints have to be a transitive closure: any
# codepoint which appears in a first and second position is an either
# codepoint, plus all codepoints which appear with an either codepoint.
#
# The main composition table (`compose_array`) is indexed by the first and
# second codepoints of a composed pair. Because these are both in the same
# indexing domain, this means a given codepoint can *only* appear as the
@ -1294,9 +1309,6 @@ sub output_composition_table
}
}
# Assign integer indices, removing singletons
my $n_first = enumerate_ordered (\%first);
# Now record the second character of each (non-singleton) decomposition
for $code (keys %compositions) {
@values = map { hex ($_) } split /\s+/, $compositions{$code};
@ -1310,21 +1322,64 @@ sub output_composition_table
}
}
# Assign integer indices, removing duplicate
# See if there are any codepoints which occur as the first codepoint in one
# decomposition and the second in another. These need to be indexed
# separately, and need to be a transitive closure.
my $changed = 0;
do {
$changed = 0;
for $code (keys %compositions) {
@values = map { hex ($_) } split /\s+/, $compositions{$code};
if (exists $first{$values[1]} || exists $second{$values[0]} ||
(exists $either{$values[0]} && !exists $either{$values[1]}) ||
(!exists $either{$values[0]} && exists $either{$values[1]})) {
if (exists $either{$values[0]}) {
$either{$values[0]}++;
} else {
$either{$values[0]} = 1;
}
if (exists $either{$values[1]}) {
$either{$values[1]}++;
} else {
$either{$values[1]} = 1;
}
delete $first{$values[0]};
delete $first{$values[1]};
delete $second{$values[0]};
delete $second{$values[1]};
$changed = 1;
}
}
} while ($changed);
# Assign integer indices, removing singletons from the first and second maps,
# but not from the either map (as it needs to be a transitive closure).
my $n_first = enumerate_ordered (\%first);
my $n_second = enumerate_ordered (\%second);
my $n_either = enumerate_ordered (\%either, 0);
# Build reverse table
my @first_singletons;
my @second_singletons;
my %reverse;
my %reverse_either;
for $code (keys %compositions) {
@values = map { hex ($_) } split /\s+/, $compositions{$code};
my $first = $first{$values[0]};
my $second = $second{$values[1]};
my $either0 = $either{$values[0]};
my $either1 = $either{$values[1]};
if (defined $first && defined $second) {
if (defined $either0 && defined $either1) {
$reverse_either{"$either0|$either1"} = $code;
} elsif ((defined $either0 && !defined $either1) || (!defined $either0 && defined $either1)) {
die "either map is not a transitive closure for ", $values[0], " or ", $values[1];
} elsif (defined $first && defined $second) {
$reverse{"$first|$second"} = $code;
} elsif (!defined $first) {
push @first_singletons, [ $values[0], $values[1], $code ];
@ -1380,6 +1435,15 @@ sub output_composition_table
$vals{$code} = $i++ + $total;
$last = $code if $code > $last;
}
$total += @second_singletons;
printf OUT "#define COMPOSE_EITHER_START %d\n\n", $total;
for $code (keys %either) {
if (defined $vals{$code}) {
die "redefining $code as either";
}
$vals{$code} = $either{$code} + $total;
$last = $code if $code > $last;
}
printf OUT "#define COMPOSE_TABLE_LAST %d\n\n", $last / 256;
@ -1453,7 +1517,34 @@ EOT
EOT
$bytes_out += $n_first * $n_second * 4;
# Output array of either codepoints — the codepoints which can appear as
# either the first or second in a composition pair.
print OUT <<EOT;
static const gunichar compose_either_array[$n_either][$n_either] = {
EOT
for (my $i = 0; $i < $n_either; $i++) {
print OUT ",\n" if $i;
print OUT " { ";
for (my $j = 0; $j < $n_either; $j++) {
print OUT ", " if $j;
if (exists $reverse_either{"$i|$j"}) {
printf OUT "0x%06x", $reverse_either{"$i|$j"};
} else {
print OUT " 0";
}
}
print OUT " }";
}
print OUT "\n";
print OUT <<EOT;
};
EOT
$bytes_out += $n_either * $n_either * 4;
printf STDERR "Generated %d bytes in compose tables\n", $bytes_out;
}

View File

@ -1,7 +1,9 @@
#define COMPOSE_FIRST_START 1
#define COMPOSE_FIRST_SINGLE_START 152
#define COMPOSE_SECOND_START 392
#define COMPOSE_SECOND_SINGLE_START 425
#define COMPOSE_FIRST_SINGLE_START 149
#define COMPOSE_SECOND_START 381
#define COMPOSE_SECOND_SINGLE_START 424
#define COMPOSE_EITHER_START 441
#define COMPOSE_TABLE_LAST 365
@ -9,140 +11,140 @@ static const guint16 compose_data[][256] = {
{ /* page 0, index 0 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 0, 0, 1, 2, 3, 4, 5,
155, 6, 7, 8, 156, 9, 10, 11, 12, 13, 14, 0, 15, 16, 17, 18, 19, 20, 21,
22, 23, 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 157, 29, 30, 31, 32, 33,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 151, 0, 0, 1, 2, 3, 4, 5,
152, 6, 7, 8, 153, 9, 10, 11, 12, 13, 14, 0, 15, 16, 17, 18, 19, 20, 21,
22, 23, 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 154, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 158, 159,
50, 160, 0, 0, 51, 0, 0, 0, 0, 161, 0, 0, 0, 0, 52, 53, 162, 0, 163, 0,
0, 0, 54, 0, 0, 0, 0, 0, 55, 0, 164, 165, 56, 166, 0, 0, 57, 0, 0, 0, 0,
167, 0, 0, 0, 0, 58, 59, 168, 0, 169, 0, 0, 0, 60, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 155, 156,
50, 157, 0, 0, 51, 0, 0, 0, 0, 158, 0, 0, 0, 0, 52, 53, 159, 0, 160, 0,
0, 0, 54, 0, 0, 0, 0, 0, 55, 0, 161, 162, 56, 163, 0, 0, 57, 0, 0, 0, 0,
164, 0, 0, 0, 0, 58, 59, 165, 0, 166, 0, 0, 0, 60, 0, 0, 0
},
{ /* page 1, index 1 */
0, 0, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 64, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 171, 0,
0, 0, 0, 172, 173, 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 168, 0,
0, 0, 0, 169, 170, 0, 0, 0, 0, 0, 0, 171, 172, 173, 174, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 0, 0, 0, 0, 0, 0, 179,
68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 0, 0, 0, 0, 0, 0, 176,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 180, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 177, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0
},
{ /* page 2, index 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, 184, 185, 0, 0, 0, 0,
186, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 180, 181, 182, 0, 0, 0, 0,
183, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 3, index 3 */
392, 393, 394, 395, 396, 0, 397, 398, 399, 400, 401, 402, 403, 0, 0, 404,
0, 405, 0, 406, 407, 0, 0, 0, 0, 0, 0, 408, 0, 0, 0, 0, 0, 0, 0, 409,
410, 411, 412, 413, 414, 0, 0, 0, 0, 415, 416, 0, 417, 418, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 420, 0, 0, 0, 0, 0, 0, 0,
381, 382, 383, 384, 385, 0, 386, 387, 388, 389, 390, 391, 392, 0, 0, 393,
0, 394, 0, 395, 396, 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, 0, 0, 0, 0, 398,
399, 400, 401, 402, 403, 0, 0, 0, 0, 404, 405, 0, 406, 407, 0, 0, 0, 0,
0, 0, 408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 409, 0, 0, 410, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0,
72, 0, 73, 0, 74, 0, 0, 0, 0, 0, 75, 0, 189, 0, 0, 0, 76, 0, 0, 0, 77, 0,
0, 190, 0, 191, 0, 0, 78, 0, 0, 0, 79, 0, 80, 0, 81, 0, 0, 0, 0, 0, 82,
0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 86, 87, 0, 0, 192, 0, 0, 0, 88, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0,
0, 72, 0, 73, 0, 74, 0, 0, 0, 0, 0, 75, 0, 186, 0, 0, 0, 76, 0, 0, 0, 77,
0, 0, 187, 0, 188, 0, 0, 78, 0, 0, 0, 79, 0, 80, 0, 81, 0, 0, 0, 0, 0,
82, 0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 86, 87, 0, 0, 189, 0, 0, 0, 88, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 4, index 4 */
0, 0, 0, 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 194, 0, 90,
91, 195, 92, 0, 196, 0, 0, 0, 197, 0, 0, 0, 0, 93, 0, 0, 0, 198, 0, 0, 0,
199, 0, 200, 0, 0, 94, 0, 0, 201, 0, 95, 96, 202, 97, 0, 203, 0, 0, 0,
204, 0, 0, 0, 0, 98, 0, 0, 0, 205, 0, 0, 0, 206, 0, 207, 0, 0, 0, 0, 0,
0, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 191, 0, 90,
91, 192, 92, 0, 193, 0, 0, 0, 194, 0, 0, 0, 0, 93, 0, 0, 0, 195, 0, 0, 0,
196, 0, 197, 0, 0, 94, 0, 0, 198, 0, 95, 96, 199, 97, 0, 200, 0, 0, 0,
201, 0, 0, 0, 0, 98, 0, 0, 0, 202, 0, 0, 0, 203, 0, 204, 0, 0, 0, 0, 0,
0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 212, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 213, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 209, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 210, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 6, index 5 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
215, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 425, 426, 427, 0, 0, 0, 0, 0, 0, 0,
212, 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 424, 411, 425, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 0,
0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0,
0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 9, index 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0,
221, 0, 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0,
218, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 412, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 428,
0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
426, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 11, index 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 430, 0, 0, 0, 0, 0, 0, 0, 0,
101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 431, 432, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 0, 0, 0, 0,
101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 429, 430, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 433, 0, 0, 0, 0, 0, 0, 0, 102, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 413, 0, 0, 0, 0, 0, 0, 0, 102, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 12, index 8 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226,
0, 0, 435, 0, 0, 0, 103, 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 436,
437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223,
0, 0, 431, 0, 0, 0, 103, 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415,
432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 13, index 9 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, 0, 104,
228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 439, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 104,
225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 433, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 440, 0, 0, 0, 0, 441, 0, 0, 0, 0, 0,
0, 0, 0, 0, 105, 0, 0, 229, 0, 0, 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 434, 0, 0, 0, 0, 0,
0, 0, 0, 0, 105, 0, 0, 226, 0, 0, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 16, index 10 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -154,45 +156,45 @@ static const guint16 compose_data[][256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 27, index 11 */
0, 0, 0, 0, 0, 231, 0, 232, 0, 233, 0, 234, 0, 235, 0, 0, 0, 236, 0, 0,
0, 0, 0, 0, 0, 228, 0, 229, 0, 230, 0, 231, 0, 232, 0, 0, 0, 233, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 238, 0, 239, 240, 0, 0,
241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 418, 0, 0, 0, 0, 234, 0, 235, 0, 236, 237, 0,
0, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 30, index 12 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 242, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 245, 0, 0,
0, 0, 0, 0, 246, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 239, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 242, 0, 0,
0, 0, 0, 0, 243, 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 107, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 251, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 246, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 248, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 31, index 13 */
108, 109, 252, 253, 254, 255, 256, 257, 110, 111, 258, 259, 260, 261,
262, 263, 112, 113, 0, 0, 0, 0, 0, 0, 114, 115, 0, 0, 0, 0, 0, 0, 116,
117, 264, 265, 266, 267, 268, 269, 118, 119, 270, 271, 272, 273, 274,
275, 120, 121, 0, 0, 0, 0, 0, 0, 122, 123, 0, 0, 0, 0, 0, 0, 124, 125, 0,
108, 109, 249, 250, 251, 252, 253, 254, 110, 111, 255, 256, 257, 258,
259, 260, 112, 113, 0, 0, 0, 0, 0, 0, 114, 115, 0, 0, 0, 0, 0, 0, 116,
117, 261, 262, 263, 264, 265, 266, 118, 119, 267, 268, 269, 270, 271,
272, 120, 121, 0, 0, 0, 0, 0, 0, 122, 123, 0, 0, 0, 0, 0, 0, 124, 125, 0,
0, 0, 0, 0, 0, 126, 127, 0, 0, 0, 0, 0, 0, 128, 129, 0, 0, 0, 0, 0, 0, 0,
130, 0, 0, 0, 0, 0, 0, 131, 132, 276, 277, 278, 279, 280, 281, 133, 134,
282, 283, 284, 285, 286, 287, 288, 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 0,
290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
130, 0, 0, 0, 0, 0, 0, 131, 132, 273, 274, 275, 276, 277, 278, 133, 134,
279, 280, 281, 282, 283, 284, 285, 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, 0,
287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0,
0, 0, 0, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0,
0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 136, 0
0, 0, 0, 290, 0, 0, 0, 0, 0, 0, 0, 136, 0
},
{ /* page 33, index 14 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -201,22 +203,22 @@ static const guint16 compose_data[][256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
294, 0, 295, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
291, 0, 292, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 298, 0,
299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 295, 0,
296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 34, index 15 */
0, 0, 0, 300, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 304, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, 0, 0, 0, 0, 306,
0, 307, 0, 0, 308, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 311, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 313, 314, 0, 0, 315, 316, 0, 0, 317, 318, 319, 320, 0, 0, 0, 0,
321, 322, 0, 0, 323, 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, 326, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, 328, 329, 0, 330,
0, 0, 0, 0, 0, 0, 331, 332, 333, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 297, 0, 0, 0, 0, 298, 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 301, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, 303,
0, 304, 0, 0, 305, 0, 0, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 307, 0, 0, 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 310, 311, 0, 0, 312, 313, 0, 0, 314, 315, 316, 317, 0, 0, 0, 0,
318, 319, 0, 0, 320, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, 323, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, 0, 0, 0, 0, 0, 325, 326, 0, 327,
0, 0, 0, 0, 0, 0, 328, 329, 330, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
@ -224,16 +226,16 @@ static const guint16 compose_data[][256] = {
{ /* page 48, index 16 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, 0,
0, 0, 0, 336, 0, 337, 0, 338, 0, 339, 0, 340, 0, 341, 0, 342, 0, 343, 0,
344, 0, 345, 0, 346, 0, 347, 0, 0, 348, 0, 349, 0, 350, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, 0,
0, 0, 0, 333, 0, 334, 0, 335, 0, 336, 0, 337, 0, 338, 0, 339, 0, 340, 0,
341, 0, 342, 0, 343, 0, 344, 0, 0, 345, 0, 346, 0, 347, 0, 0, 0, 0, 0, 0,
137, 0, 0, 138, 0, 0, 139, 0, 0, 140, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 422,
0, 0, 351, 0, 0, 0, 0, 0, 0, 0, 0, 352, 0, 0, 0, 0, 353, 0, 354, 0, 355,
0, 356, 0, 357, 0, 358, 0, 359, 0, 360, 0, 361, 0, 362, 0, 363, 0, 364,
0, 0, 365, 0, 366, 0, 367, 0, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 0, 144,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 420,
0, 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, 0, 350, 0, 351, 0, 352,
0, 353, 0, 354, 0, 355, 0, 356, 0, 357, 0, 358, 0, 359, 0, 360, 0, 361,
0, 0, 362, 0, 363, 0, 364, 0, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 0, 144,
0, 0, 145, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 368, 369, 370, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 372, 0, 0
0, 0, 365, 366, 367, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 369, 0, 0
},
{ /* page 261, index 17 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -244,8 +246,8 @@ static const guint16 compose_data[][256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 0,
0, 0, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 370, 0, 0, 0, 0, 0,
0, 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 272, index 18 */
@ -255,16 +257,16 @@ static const guint16 compose_data[][256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 375, 0, 376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 377,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 372, 0, 373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 273, index 19 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 378, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 422, 0, 0, 0, 0, 0, 0, 0, 0,
0, 375, 376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -277,13 +279,13 @@ static const guint16 compose_data[][256] = {
{ /* page 275, index 20 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0,
147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 436, 0, 0, 0, 0, 0, 0, 0, 0,
147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 437, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 381, 0, 0, 0, 0, 0, 0, 382,
0, 0, 0, 0, 383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 445, 0, 0, 0,
0, 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, 0, 0, 447, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 441, 0, 377, 0, 0, 0, 0, 0, 0, 442,
0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0,
0, 0, 0, 0, 0, 0, 445, 0, 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
@ -295,7 +297,7 @@ static const guint16 compose_data[][256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 448, 0, 0, 0, 0, 0, 0, 0, 0, 149, 449, 0, 0, 450,
0, 0, 0, 0, 0, 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, 0, 0, 148, 439, 0, 0, 440,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
@ -308,15 +310,15 @@ static const guint16 compose_data[][256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 385, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 423, 0, 0, 0, 0, 0, 0, 0, 0, 378, 379, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{ /* page 281, index 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -328,7 +330,7 @@ static const guint16 compose_data[][256] = {
},
{ /* page 353, index 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,
0, 0, 0, 0, 0, 0, 451, 423, 424, 151, 387, 0, 0, 0, 0, 0, 0, 452, 0, 0,
0, 0, 0, 0, 0, 0, 447, 448, 449, 450, 451, 0, 0, 0, 0, 0, 0, 452, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -344,7 +346,7 @@ static const guint16 compose_data[][256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 389, 0, 0, 0, 390, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 453, 0, 0, 0, 454, 0, 455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -952,199 +954,194 @@ static const gunichar compose_first_single[][2] = {
{ 0x110ba, 0x110ab },
{ 0x11127, 0x1112e },
{ 0x11127, 0x1112f },
{ 0x113c9, 0x11383 },
{ 0x113bb, 0x11385 },
{ 0x113c2, 0x1138e },
{ 0x113c9, 0x11391 },
{ 0x115af, 0x115ba },
{ 0x115af, 0x115bb },
{ 0x11930, 0x11938 },
{ 0x1611f, 0x16127 },
{ 0x1611f, 0x16124 },
{ 0x16d67, 0x16d69 },
{ 0x16d67, 0x16d68 },
{ 0x16d67, 0x16d6a }
{ 0x11930, 0x11938 }
};
static const gunichar compose_second_single[][2] = {
{ 0x0627, 0x0622 },
{ 0x0627, 0x0623 },
{ 0x0627, 0x0625 },
{ 0x09c7, 0x09cb },
{ 0x09c7, 0x09cc },
{ 0x0b47, 0x0b4b },
{ 0x0b47, 0x0b48 },
{ 0x0b47, 0x0b4c },
{ 0x0bc6, 0x0bca },
{ 0x0bc6, 0x0bcc },
{ 0x0cc6, 0x0cca },
{ 0x0cc6, 0x0cc7 },
{ 0x0cc6, 0x0cc8 },
{ 0x0d46, 0x0d4a },
{ 0x0d46, 0x0d4c },
{ 0x0dd9, 0x0dda },
{ 0x0dd9, 0x0ddc },
{ 0x0dd9, 0x0dde },
{ 0x11347, 0x1134b },
{ 0x11347, 0x1134c },
{ 0x113c2, 0x113c7 },
{ 0x113c2, 0x113c5 },
{ 0x113c2, 0x113c8 },
{ 0x114b9, 0x114bc },
{ 0x114b9, 0x114bb },
{ 0x114b9, 0x114be },
{ 0x1611e, 0x16121 },
{ 0x1611e, 0x16122 }
{ 0x114b9, 0x114be }
};
static const gunichar compose_array[151][33] = {
{ 0x000000c0, 0x000000c1, 0x000000c2, 0x000000c3, 0x00000100, 0x00000102, 0x00000226, 0x000000c4, 0x00001ea2, 0x000000c5, 0, 0x000001cd, 0x00000200, 0x00000202, 0, 0, 0, 0x00001ea0, 0, 0x00001e00, 0, 0, 0x00000104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x00001e02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001e04, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001e06, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00000106, 0x00000108, 0, 0, 0, 0x0000010a, 0, 0, 0, 0, 0x0000010c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000000c7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x00001e0a, 0, 0, 0, 0, 0x0000010e, 0, 0, 0, 0, 0, 0x00001e0c, 0, 0, 0, 0x00001e10, 0, 0x00001e12, 0, 0, 0x00001e0e, 0, 0, 0, 0, 0, 0 },
{ 0x000000c8, 0x000000c9, 0x000000ca, 0x00001ebc, 0x00000112, 0x00000114, 0x00000116, 0x000000cb, 0x00001eba, 0, 0, 0x0000011a, 0x00000204, 0x00000206, 0, 0, 0, 0x00001eb8, 0, 0, 0, 0x00000228, 0x00000118, 0x00001e18, 0, 0x00001e1a, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x000001f4, 0x0000011c, 0, 0x00001e20, 0x0000011e, 0x00000120, 0, 0, 0, 0, 0x000001e6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0x00000124, 0, 0, 0, 0x00001e22, 0x00001e26, 0, 0, 0, 0x0000021e, 0, 0, 0, 0, 0, 0x00001e24, 0, 0, 0, 0x00001e28, 0, 0, 0x00001e2a, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x000000cc, 0x000000cd, 0x000000ce, 0x00000128, 0x0000012a, 0x0000012c, 0x00000130, 0x000000cf, 0x00001ec8, 0, 0, 0x000001cf, 0x00000208, 0x0000020a, 0, 0, 0, 0x00001eca, 0, 0, 0, 0, 0x0000012e, 0, 0, 0x00001e2c, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00001e30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000001e8, 0, 0, 0, 0, 0, 0x00001e32, 0, 0, 0, 0x00000136, 0, 0, 0, 0, 0x00001e34, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00000139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0000013d, 0, 0, 0, 0, 0, 0x00001e36, 0, 0, 0, 0x0000013b, 0, 0x00001e3c, 0, 0, 0x00001e3a, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00001e3e, 0, 0, 0, 0, 0x00001e40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001e42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x000001f8, 0x00000143, 0, 0x000000d1, 0, 0, 0x00001e44, 0, 0, 0, 0, 0x00000147, 0, 0, 0, 0, 0, 0x00001e46, 0, 0, 0, 0x00000145, 0, 0x00001e4a, 0, 0, 0x00001e48, 0, 0, 0, 0, 0, 0 },
{ 0x000000d2, 0x000000d3, 0x000000d4, 0x000000d5, 0x0000014c, 0x0000014e, 0x0000022e, 0x000000d6, 0x00001ece, 0, 0x00000150, 0x000001d1, 0x0000020c, 0x0000020e, 0, 0, 0x000001a0, 0x00001ecc, 0, 0, 0, 0, 0x000001ea, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00001e54, 0, 0, 0, 0, 0x00001e56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00000154, 0, 0, 0, 0, 0x00001e58, 0, 0, 0, 0, 0x00000158, 0x00000210, 0x00000212, 0, 0, 0, 0x00001e5a, 0, 0, 0, 0x00000156, 0, 0, 0, 0, 0x00001e5e, 0, 0, 0, 0, 0, 0 },
{ 0, 0x0000015a, 0x0000015c, 0, 0, 0, 0x00001e60, 0, 0, 0, 0, 0x00000160, 0, 0, 0, 0, 0, 0x00001e62, 0, 0, 0x00000218, 0x0000015e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x00001e6a, 0, 0, 0, 0, 0x00000164, 0, 0, 0, 0, 0, 0x00001e6c, 0, 0, 0x0000021a, 0x00000162, 0, 0x00001e70, 0, 0, 0x00001e6e, 0, 0, 0, 0, 0, 0 },
{ 0x000000d9, 0x000000da, 0x000000db, 0x00000168, 0x0000016a, 0x0000016c, 0, 0x000000dc, 0x00001ee6, 0x0000016e, 0x00000170, 0x000001d3, 0x00000214, 0x00000216, 0, 0, 0x000001af, 0x00001ee4, 0x00001e72, 0, 0, 0, 0x00000172, 0x00001e76, 0, 0x00001e74, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0x00001e7c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001e7e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001e80, 0x00001e82, 0x00000174, 0, 0, 0, 0x00001e86, 0x00001e84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001e88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x00001e8a, 0x00001e8c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001ef2, 0x000000dd, 0x00000176, 0x00001ef8, 0x00000232, 0, 0x00001e8e, 0x00000178, 0x00001ef6, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001ef4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00000179, 0x00001e90, 0, 0, 0, 0x0000017b, 0, 0, 0, 0, 0x0000017d, 0, 0, 0, 0, 0, 0x00001e92, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001e94, 0, 0, 0, 0, 0, 0 },
{ 0x000000e0, 0x000000e1, 0x000000e2, 0x000000e3, 0x00000101, 0x00000103, 0x00000227, 0x000000e4, 0x00001ea3, 0x000000e5, 0, 0x000001ce, 0x00000201, 0x00000203, 0, 0, 0, 0x00001ea1, 0, 0x00001e01, 0, 0, 0x00000105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x00001e03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001e05, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001e07, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00000107, 0x00000109, 0, 0, 0, 0x0000010b, 0, 0, 0, 0, 0x0000010d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000000e7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x00001e0b, 0, 0, 0, 0, 0x0000010f, 0, 0, 0, 0, 0, 0x00001e0d, 0, 0, 0, 0x00001e11, 0, 0x00001e13, 0, 0, 0x00001e0f, 0, 0, 0, 0, 0, 0 },
{ 0x000000e8, 0x000000e9, 0x000000ea, 0x00001ebd, 0x00000113, 0x00000115, 0x00000117, 0x000000eb, 0x00001ebb, 0, 0, 0x0000011b, 0x00000205, 0x00000207, 0, 0, 0, 0x00001eb9, 0, 0, 0, 0x00000229, 0x00000119, 0x00001e19, 0, 0x00001e1b, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x000001f5, 0x0000011d, 0, 0x00001e21, 0x0000011f, 0x00000121, 0, 0, 0, 0, 0x000001e7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0x00000125, 0, 0, 0, 0x00001e23, 0x00001e27, 0, 0, 0, 0x0000021f, 0, 0, 0, 0, 0, 0x00001e25, 0, 0, 0, 0x00001e29, 0, 0, 0x00001e2b, 0, 0x00001e96, 0, 0, 0, 0, 0, 0 },
{ 0x000000ec, 0x000000ed, 0x000000ee, 0x00000129, 0x0000012b, 0x0000012d, 0, 0x000000ef, 0x00001ec9, 0, 0, 0x000001d0, 0x00000209, 0x0000020b, 0, 0, 0, 0x00001ecb, 0, 0, 0, 0, 0x0000012f, 0, 0, 0x00001e2d, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0x00000135, 0, 0, 0, 0, 0, 0, 0, 0, 0x000001f0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00001e31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000001e9, 0, 0, 0, 0, 0, 0x00001e33, 0, 0, 0, 0x00000137, 0, 0, 0, 0, 0x00001e35, 0, 0, 0, 0, 0, 0 },
{ 0, 0x0000013a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0000013e, 0, 0, 0, 0, 0, 0x00001e37, 0, 0, 0, 0x0000013c, 0, 0x00001e3d, 0, 0, 0x00001e3b, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00001e3f, 0, 0, 0, 0, 0x00001e41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001e43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x000001f9, 0x00000144, 0, 0x000000f1, 0, 0, 0x00001e45, 0, 0, 0, 0, 0x00000148, 0, 0, 0, 0, 0, 0x00001e47, 0, 0, 0, 0x00000146, 0, 0x00001e4b, 0, 0, 0x00001e49, 0, 0, 0, 0, 0, 0 },
{ 0x000000f2, 0x000000f3, 0x000000f4, 0x000000f5, 0x0000014d, 0x0000014f, 0x0000022f, 0x000000f6, 0x00001ecf, 0, 0x00000151, 0x000001d2, 0x0000020d, 0x0000020f, 0, 0, 0x000001a1, 0x00001ecd, 0, 0, 0, 0, 0x000001eb, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00001e55, 0, 0, 0, 0, 0x00001e57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00000155, 0, 0, 0, 0, 0x00001e59, 0, 0, 0, 0, 0x00000159, 0x00000211, 0x00000213, 0, 0, 0, 0x00001e5b, 0, 0, 0, 0x00000157, 0, 0, 0, 0, 0x00001e5f, 0, 0, 0, 0, 0, 0 },
{ 0, 0x0000015b, 0x0000015d, 0, 0, 0, 0x00001e61, 0, 0, 0, 0, 0x00000161, 0, 0, 0, 0, 0, 0x00001e63, 0, 0, 0x00000219, 0x0000015f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x00001e6b, 0x00001e97, 0, 0, 0, 0x00000165, 0, 0, 0, 0, 0, 0x00001e6d, 0, 0, 0x0000021b, 0x00000163, 0, 0x00001e71, 0, 0, 0x00001e6f, 0, 0, 0, 0, 0, 0 },
{ 0x000000f9, 0x000000fa, 0x000000fb, 0x00000169, 0x0000016b, 0x0000016d, 0, 0x000000fc, 0x00001ee7, 0x0000016f, 0x00000171, 0x000001d4, 0x00000215, 0x00000217, 0, 0, 0x000001b0, 0x00001ee5, 0x00001e73, 0, 0, 0, 0x00000173, 0x00001e77, 0, 0x00001e75, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0x00001e7d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001e7f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001e81, 0x00001e83, 0x00000175, 0, 0, 0, 0x00001e87, 0x00001e85, 0, 0x00001e98, 0, 0, 0, 0, 0, 0, 0, 0x00001e89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x00001e8b, 0x00001e8d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001ef3, 0x000000fd, 0x00000177, 0x00001ef9, 0x00000233, 0, 0x00001e8f, 0x000000ff, 0x00001ef7, 0x00001e99, 0, 0, 0, 0, 0, 0, 0, 0x00001ef5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x0000017a, 0x00001e91, 0, 0, 0, 0x0000017c, 0, 0, 0, 0, 0x0000017e, 0, 0, 0, 0, 0, 0x00001e93, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001e95, 0, 0, 0, 0, 0, 0 },
{ 0x00001fed, 0x00000385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001fc1, 0, 0, 0, 0, 0 },
{ 0x00001ea6, 0x00001ea4, 0, 0x00001eaa, 0, 0, 0, 0, 0x00001ea8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x000001fc, 0, 0, 0x000001e2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001ec0, 0x00001ebe, 0, 0x00001ec4, 0, 0, 0, 0, 0x00001ec2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001ed2, 0x00001ed0, 0, 0x00001ed6, 0, 0, 0, 0, 0x00001ed4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00001e4c, 0, 0, 0x0000022c, 0, 0, 0x00001e4e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x000001db, 0x000001d7, 0, 0, 0x000001d5, 0, 0, 0, 0, 0, 0, 0x000001d9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001ea7, 0x00001ea5, 0, 0x00001eab, 0, 0, 0, 0, 0x00001ea9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x000001fd, 0, 0, 0x000001e3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001ec1, 0x00001ebf, 0, 0x00001ec5, 0, 0, 0, 0, 0x00001ec3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001ed3, 0x00001ed1, 0, 0x00001ed7, 0, 0, 0, 0, 0x00001ed5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00001e4d, 0, 0, 0x0000022d, 0, 0, 0x00001e4f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x000001dc, 0x000001d8, 0, 0, 0x000001d6, 0, 0, 0, 0, 0, 0, 0x000001da, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001eb0, 0x00001eae, 0, 0x00001eb4, 0, 0, 0, 0, 0x00001eb2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001eb1, 0x00001eaf, 0, 0x00001eb5, 0, 0, 0, 0, 0x00001eb3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001e14, 0x00001e16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001e15, 0x00001e17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001e50, 0x00001e52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001e51, 0x00001e53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001edc, 0x00001eda, 0, 0x00001ee0, 0, 0, 0, 0, 0x00001ede, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001ee2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001edd, 0x00001edb, 0, 0x00001ee1, 0, 0, 0, 0, 0x00001edf, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001ee3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001eea, 0x00001ee8, 0, 0x00001eee, 0, 0, 0, 0, 0x00001eec, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001ef0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001eeb, 0x00001ee9, 0, 0x00001eef, 0, 0, 0, 0, 0x00001eed, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001ef1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001fba, 0x00000386, 0, 0, 0x00001fb9, 0x00001fb8, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f08, 0x00001f09, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001fbc, 0, 0, 0, 0 },
{ 0x00001fc8, 0x00000388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f18, 0x00001f19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001fca, 0x00000389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f28, 0x00001f29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001fcc, 0, 0, 0, 0 },
{ 0x00001fda, 0x0000038a, 0, 0, 0x00001fd9, 0x00001fd8, 0, 0x000003aa, 0, 0, 0, 0, 0, 0, 0x00001f38, 0x00001f39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001ff8, 0x0000038c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f48, 0x00001f49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001fea, 0x0000038e, 0, 0, 0x00001fe9, 0x00001fe8, 0, 0x000003ab, 0, 0, 0, 0, 0, 0, 0, 0x00001f59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001ffa, 0x0000038f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f68, 0x00001f69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001ffc, 0, 0, 0, 0 },
{ 0x00001f70, 0x000003ac, 0, 0, 0x00001fb1, 0x00001fb0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f00, 0x00001f01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001fb6, 0x00001fb3, 0, 0, 0, 0 },
{ 0x00001f72, 0x000003ad, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f10, 0x00001f11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001f74, 0x000003ae, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f20, 0x00001f21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001fc6, 0x00001fc3, 0, 0, 0, 0 },
{ 0x00001f76, 0x000003af, 0, 0, 0x00001fd1, 0x00001fd0, 0, 0x000003ca, 0, 0, 0, 0, 0, 0, 0x00001f30, 0x00001f31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001fd6, 0, 0, 0, 0, 0 },
{ 0x00001f78, 0x000003cc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f40, 0x00001f41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001fe4, 0x00001fe5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001f7a, 0x000003cd, 0, 0, 0x00001fe1, 0x00001fe0, 0, 0x000003cb, 0, 0, 0, 0, 0, 0, 0x00001f50, 0x00001f51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001fe6, 0, 0, 0, 0, 0 },
{ 0x00001f7c, 0x000003ce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f60, 0x00001f61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001ff6, 0x00001ff3, 0, 0, 0, 0 },
{ 0x00001fd2, 0x00000390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001fd7, 0, 0, 0, 0, 0 },
{ 0x00001fe2, 0x000003b0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001fe7, 0, 0, 0, 0, 0 },
{ 0, 0x000003d3, 0, 0, 0, 0, 0, 0x000003d4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0x000004d0, 0, 0x000004d2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00000400, 0, 0, 0, 0, 0x000004d6, 0, 0x00000401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0x000004c1, 0, 0x000004dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0000040d, 0, 0, 0, 0x000004e2, 0x00000419, 0, 0x000004e4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0x000004ee, 0x0000040e, 0, 0x000004f0, 0, 0, 0x000004f2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0x000004d1, 0, 0x000004d3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00000450, 0, 0, 0, 0, 0x000004d7, 0, 0x00000451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0x000004c2, 0, 0x000004dd, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0000045d, 0, 0, 0, 0x000004e3, 0x00000439, 0, 0x000004e5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0x000004ef, 0x0000045e, 0, 0x000004f1, 0, 0, 0x000004f3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0x00001eac, 0, 0, 0x00001eb6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0x00001ead, 0, 0, 0x00001eb7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001f02, 0x00001f04, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f06, 0x00001f80, 0, 0, 0, 0 },
{ 0x00001f03, 0x00001f05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f07, 0x00001f81, 0, 0, 0, 0 },
{ 0x00001f0a, 0x00001f0c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f0e, 0x00001f88, 0, 0, 0, 0 },
{ 0x00001f0b, 0x00001f0d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f0f, 0x00001f89, 0, 0, 0, 0 },
{ 0x00001f12, 0x00001f14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001f13, 0x00001f15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001f1a, 0x00001f1c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001f1b, 0x00001f1d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001f22, 0x00001f24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f26, 0x00001f90, 0, 0, 0, 0 },
{ 0x00001f23, 0x00001f25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f27, 0x00001f91, 0, 0, 0, 0 },
{ 0x00001f2a, 0x00001f2c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f2e, 0x00001f98, 0, 0, 0, 0 },
{ 0x00001f2b, 0x00001f2d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f2f, 0x00001f99, 0, 0, 0, 0 },
{ 0x00001f32, 0x00001f34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f36, 0, 0, 0, 0, 0 },
{ 0x00001f33, 0x00001f35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f37, 0, 0, 0, 0, 0 },
{ 0x00001f3a, 0x00001f3c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f3e, 0, 0, 0, 0, 0 },
{ 0x00001f3b, 0x00001f3d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f3f, 0, 0, 0, 0, 0 },
{ 0x00001f42, 0x00001f44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001f43, 0x00001f45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001f4a, 0x00001f4c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001f4b, 0x00001f4d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00001f52, 0x00001f54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f56, 0, 0, 0, 0, 0 },
{ 0x00001f53, 0x00001f55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f57, 0, 0, 0, 0, 0 },
{ 0x00001f5b, 0x00001f5d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f5f, 0, 0, 0, 0, 0 },
{ 0x00001f62, 0x00001f64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f66, 0x00001fa0, 0, 0, 0, 0 },
{ 0x00001f63, 0x00001f65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f67, 0x00001fa1, 0, 0, 0, 0 },
{ 0x00001f6a, 0x00001f6c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f6e, 0x00001fa8, 0, 0, 0, 0 },
{ 0x00001f6b, 0x00001f6d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001f6f, 0x00001fa9, 0, 0, 0, 0 },
{ 0x00001fcd, 0x00001fce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001fcf, 0, 0, 0, 0, 0 },
{ 0x00001fdd, 0x00001fde, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00001fdf, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00003070, 0x00003071, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00003073, 0x00003074, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00003076, 0x00003077, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00003079, 0x0000307a, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0000307c, 0x0000307d, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000030d0, 0x000030d1, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000030d3, 0x000030d4, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000030d6, 0x000030d7, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000030d9, 0x000030da, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000030dc, 0x000030dd, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00016123, 0x00016125 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00016126, 0x00016128 }
static const gunichar compose_array[148][43] = {
{ 0x0000c0, 0x0000c1, 0x0000c2, 0x0000c3, 0x000100, 0x000102, 0x000226, 0x0000c4, 0x001ea2, 0x0000c5, 0, 0x0001cd, 0x000200, 0x000202, 0, 0, 0, 0x001ea0, 0, 0x001e00, 0, 0, 0x000104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x001e02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001e04, 0, 0, 0, 0, 0, 0, 0, 0, 0x001e06, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x000106, 0x000108, 0, 0, 0, 0x00010a, 0, 0, 0, 0, 0x00010c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0000c7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x001e0a, 0, 0, 0, 0, 0x00010e, 0, 0, 0, 0, 0, 0x001e0c, 0, 0, 0, 0x001e10, 0, 0x001e12, 0, 0, 0x001e0e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0000c8, 0x0000c9, 0x0000ca, 0x001ebc, 0x000112, 0x000114, 0x000116, 0x0000cb, 0x001eba, 0, 0, 0x00011a, 0x000204, 0x000206, 0, 0, 0, 0x001eb8, 0, 0, 0, 0x000228, 0x000118, 0x001e18, 0, 0x001e1a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x0001f4, 0x00011c, 0, 0x001e20, 0x00011e, 0x000120, 0, 0, 0, 0, 0x0001e6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0x000124, 0, 0, 0, 0x001e22, 0x001e26, 0, 0, 0, 0x00021e, 0, 0, 0, 0, 0, 0x001e24, 0, 0, 0, 0x001e28, 0, 0, 0x001e2a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0000cc, 0x0000cd, 0x0000ce, 0x000128, 0x00012a, 0x00012c, 0x000130, 0x0000cf, 0x001ec8, 0, 0, 0x0001cf, 0x000208, 0x00020a, 0, 0, 0, 0x001eca, 0, 0, 0, 0, 0x00012e, 0, 0, 0x001e2c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x001e30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0001e8, 0, 0, 0, 0, 0, 0x001e32, 0, 0, 0, 0x000136, 0, 0, 0, 0, 0x001e34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x000139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00013d, 0, 0, 0, 0, 0, 0x001e36, 0, 0, 0, 0x00013b, 0, 0x001e3c, 0, 0, 0x001e3a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x001e3e, 0, 0, 0, 0, 0x001e40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001e42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0001f8, 0x000143, 0, 0x0000d1, 0, 0, 0x001e44, 0, 0, 0, 0, 0x000147, 0, 0, 0, 0, 0, 0x001e46, 0, 0, 0, 0x000145, 0, 0x001e4a, 0, 0, 0x001e48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0000d2, 0x0000d3, 0x0000d4, 0x0000d5, 0x00014c, 0x00014e, 0x00022e, 0x0000d6, 0x001ece, 0, 0x000150, 0x0001d1, 0x00020c, 0x00020e, 0, 0, 0x0001a0, 0x001ecc, 0, 0, 0, 0, 0x0001ea, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x001e54, 0, 0, 0, 0, 0x001e56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x000154, 0, 0, 0, 0, 0x001e58, 0, 0, 0, 0, 0x000158, 0x000210, 0x000212, 0, 0, 0, 0x001e5a, 0, 0, 0, 0x000156, 0, 0, 0, 0, 0x001e5e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00015a, 0x00015c, 0, 0, 0, 0x001e60, 0, 0, 0, 0, 0x000160, 0, 0, 0, 0, 0, 0x001e62, 0, 0, 0x000218, 0x00015e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x001e6a, 0, 0, 0, 0, 0x000164, 0, 0, 0, 0, 0, 0x001e6c, 0, 0, 0x00021a, 0x000162, 0, 0x001e70, 0, 0, 0x001e6e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0000d9, 0x0000da, 0x0000db, 0x000168, 0x00016a, 0x00016c, 0, 0x0000dc, 0x001ee6, 0x00016e, 0x000170, 0x0001d3, 0x000214, 0x000216, 0, 0, 0x0001af, 0x001ee4, 0x001e72, 0, 0, 0, 0x000172, 0x001e76, 0, 0x001e74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0x001e7c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001e7e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001e80, 0x001e82, 0x000174, 0, 0, 0, 0x001e86, 0x001e84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001e88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x001e8a, 0x001e8c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001ef2, 0x0000dd, 0x000176, 0x001ef8, 0x000232, 0, 0x001e8e, 0x000178, 0x001ef6, 0, 0, 0, 0, 0, 0, 0, 0, 0x001ef4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x000179, 0x001e90, 0, 0, 0, 0x00017b, 0, 0, 0, 0, 0x00017d, 0, 0, 0, 0, 0, 0x001e92, 0, 0, 0, 0, 0, 0, 0, 0, 0x001e94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0000e0, 0x0000e1, 0x0000e2, 0x0000e3, 0x000101, 0x000103, 0x000227, 0x0000e4, 0x001ea3, 0x0000e5, 0, 0x0001ce, 0x000201, 0x000203, 0, 0, 0, 0x001ea1, 0, 0x001e01, 0, 0, 0x000105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x001e03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001e05, 0, 0, 0, 0, 0, 0, 0, 0, 0x001e07, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x000107, 0x000109, 0, 0, 0, 0x00010b, 0, 0, 0, 0, 0x00010d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0000e7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x001e0b, 0, 0, 0, 0, 0x00010f, 0, 0, 0, 0, 0, 0x001e0d, 0, 0, 0, 0x001e11, 0, 0x001e13, 0, 0, 0x001e0f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0000e8, 0x0000e9, 0x0000ea, 0x001ebd, 0x000113, 0x000115, 0x000117, 0x0000eb, 0x001ebb, 0, 0, 0x00011b, 0x000205, 0x000207, 0, 0, 0, 0x001eb9, 0, 0, 0, 0x000229, 0x000119, 0x001e19, 0, 0x001e1b, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x0001f5, 0x00011d, 0, 0x001e21, 0x00011f, 0x000121, 0, 0, 0, 0, 0x0001e7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0x000125, 0, 0, 0, 0x001e23, 0x001e27, 0, 0, 0, 0x00021f, 0, 0, 0, 0, 0, 0x001e25, 0, 0, 0, 0x001e29, 0, 0, 0x001e2b, 0, 0x001e96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0000ec, 0x0000ed, 0x0000ee, 0x000129, 0x00012b, 0x00012d, 0, 0x0000ef, 0x001ec9, 0, 0, 0x0001d0, 0x000209, 0x00020b, 0, 0, 0, 0x001ecb, 0, 0, 0, 0, 0x00012f, 0, 0, 0x001e2d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0x000135, 0, 0, 0, 0, 0, 0, 0, 0, 0x0001f0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x001e31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0001e9, 0, 0, 0, 0, 0, 0x001e33, 0, 0, 0, 0x000137, 0, 0, 0, 0, 0x001e35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00013a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00013e, 0, 0, 0, 0, 0, 0x001e37, 0, 0, 0, 0x00013c, 0, 0x001e3d, 0, 0, 0x001e3b, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x001e3f, 0, 0, 0, 0, 0x001e41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001e43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0001f9, 0x000144, 0, 0x0000f1, 0, 0, 0x001e45, 0, 0, 0, 0, 0x000148, 0, 0, 0, 0, 0, 0x001e47, 0, 0, 0, 0x000146, 0, 0x001e4b, 0, 0, 0x001e49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0000f2, 0x0000f3, 0x0000f4, 0x0000f5, 0x00014d, 0x00014f, 0x00022f, 0x0000f6, 0x001ecf, 0, 0x000151, 0x0001d2, 0x00020d, 0x00020f, 0, 0, 0x0001a1, 0x001ecd, 0, 0, 0, 0, 0x0001eb, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x001e55, 0, 0, 0, 0, 0x001e57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x000155, 0, 0, 0, 0, 0x001e59, 0, 0, 0, 0, 0x000159, 0x000211, 0x000213, 0, 0, 0, 0x001e5b, 0, 0, 0, 0x000157, 0, 0, 0, 0, 0x001e5f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00015b, 0x00015d, 0, 0, 0, 0x001e61, 0, 0, 0, 0, 0x000161, 0, 0, 0, 0, 0, 0x001e63, 0, 0, 0x000219, 0x00015f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x001e6b, 0x001e97, 0, 0, 0, 0x000165, 0, 0, 0, 0, 0, 0x001e6d, 0, 0, 0x00021b, 0x000163, 0, 0x001e71, 0, 0, 0x001e6f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0000f9, 0x0000fa, 0x0000fb, 0x000169, 0x00016b, 0x00016d, 0, 0x0000fc, 0x001ee7, 0x00016f, 0x000171, 0x0001d4, 0x000215, 0x000217, 0, 0, 0x0001b0, 0x001ee5, 0x001e73, 0, 0, 0, 0x000173, 0x001e77, 0, 0x001e75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0x001e7d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001e7f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001e81, 0x001e83, 0x000175, 0, 0, 0, 0x001e87, 0x001e85, 0, 0x001e98, 0, 0, 0, 0, 0, 0, 0, 0x001e89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x001e8b, 0x001e8d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001ef3, 0x0000fd, 0x000177, 0x001ef9, 0x000233, 0, 0x001e8f, 0x0000ff, 0x001ef7, 0x001e99, 0, 0, 0, 0, 0, 0, 0, 0x001ef5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x00017a, 0x001e91, 0, 0, 0, 0x00017c, 0, 0, 0, 0, 0x00017e, 0, 0, 0, 0, 0, 0x001e93, 0, 0, 0, 0, 0, 0, 0, 0, 0x001e95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001fed, 0x000385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001fc1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001ea6, 0x001ea4, 0, 0x001eaa, 0, 0, 0, 0, 0x001ea8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x0001fc, 0, 0, 0x0001e2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001ec0, 0x001ebe, 0, 0x001ec4, 0, 0, 0, 0, 0x001ec2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001ed2, 0x001ed0, 0, 0x001ed6, 0, 0, 0, 0, 0x001ed4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x001e4c, 0, 0, 0x00022c, 0, 0, 0x001e4e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0001db, 0x0001d7, 0, 0, 0x0001d5, 0, 0, 0, 0, 0, 0, 0x0001d9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001ea7, 0x001ea5, 0, 0x001eab, 0, 0, 0, 0, 0x001ea9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x0001fd, 0, 0, 0x0001e3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001ec1, 0x001ebf, 0, 0x001ec5, 0, 0, 0, 0, 0x001ec3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001ed3, 0x001ed1, 0, 0x001ed7, 0, 0, 0, 0, 0x001ed5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x001e4d, 0, 0, 0x00022d, 0, 0, 0x001e4f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x0001dc, 0x0001d8, 0, 0, 0x0001d6, 0, 0, 0, 0, 0, 0, 0x0001da, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001eb0, 0x001eae, 0, 0x001eb4, 0, 0, 0, 0, 0x001eb2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001eb1, 0x001eaf, 0, 0x001eb5, 0, 0, 0, 0, 0x001eb3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001e14, 0x001e16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001e15, 0x001e17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001e50, 0x001e52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001e51, 0x001e53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001edc, 0x001eda, 0, 0x001ee0, 0, 0, 0, 0, 0x001ede, 0, 0, 0, 0, 0, 0, 0, 0, 0x001ee2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001edd, 0x001edb, 0, 0x001ee1, 0, 0, 0, 0, 0x001edf, 0, 0, 0, 0, 0, 0, 0, 0, 0x001ee3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001eea, 0x001ee8, 0, 0x001eee, 0, 0, 0, 0, 0x001eec, 0, 0, 0, 0, 0, 0, 0, 0, 0x001ef0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001eeb, 0x001ee9, 0, 0x001eef, 0, 0, 0, 0, 0x001eed, 0, 0, 0, 0, 0, 0, 0, 0, 0x001ef1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001fba, 0x000386, 0, 0, 0x001fb9, 0x001fb8, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f08, 0x001f09, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001fbc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001fc8, 0x000388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f18, 0x001f19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001fca, 0x000389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f28, 0x001f29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001fcc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001fda, 0x00038a, 0, 0, 0x001fd9, 0x001fd8, 0, 0x0003aa, 0, 0, 0, 0, 0, 0, 0x001f38, 0x001f39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001ff8, 0x00038c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f48, 0x001f49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001fea, 0x00038e, 0, 0, 0x001fe9, 0x001fe8, 0, 0x0003ab, 0, 0, 0, 0, 0, 0, 0, 0x001f59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001ffa, 0x00038f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f68, 0x001f69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001ffc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f70, 0x0003ac, 0, 0, 0x001fb1, 0x001fb0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f00, 0x001f01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001fb6, 0x001fb3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f72, 0x0003ad, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f10, 0x001f11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f74, 0x0003ae, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f20, 0x001f21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001fc6, 0x001fc3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f76, 0x0003af, 0, 0, 0x001fd1, 0x001fd0, 0, 0x0003ca, 0, 0, 0, 0, 0, 0, 0x001f30, 0x001f31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001fd6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f78, 0x0003cc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f40, 0x001f41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001fe4, 0x001fe5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f7a, 0x0003cd, 0, 0, 0x001fe1, 0x001fe0, 0, 0x0003cb, 0, 0, 0, 0, 0, 0, 0x001f50, 0x001f51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001fe6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f7c, 0x0003ce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f60, 0x001f61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001ff6, 0x001ff3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001fd2, 0x000390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001fd7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001fe2, 0x0003b0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001fe7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0x0003d3, 0, 0, 0, 0, 0, 0x0003d4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0x0004d0, 0, 0x0004d2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x000400, 0, 0, 0, 0, 0x0004d6, 0, 0x000401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0x0004c1, 0, 0x0004dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00040d, 0, 0, 0, 0x0004e2, 0x000419, 0, 0x0004e4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0x0004ee, 0x00040e, 0, 0x0004f0, 0, 0, 0x0004f2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0x0004d1, 0, 0x0004d3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x000450, 0, 0, 0, 0, 0x0004d7, 0, 0x000451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0x0004c2, 0, 0x0004dd, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x00045d, 0, 0, 0, 0x0004e3, 0x000439, 0, 0x0004e5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0x0004ef, 0x00045e, 0, 0x0004f1, 0, 0, 0x0004f3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000bca, 0x000bcc, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000cc7, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000d4a, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x000dda, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0x001eac, 0, 0, 0x001eb6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0x001ead, 0, 0, 0x001eb7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f02, 0x001f04, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f06, 0x001f80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f03, 0x001f05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f07, 0x001f81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f0a, 0x001f0c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f0e, 0x001f88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f0b, 0x001f0d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f0f, 0x001f89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f12, 0x001f14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f13, 0x001f15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f1a, 0x001f1c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f1b, 0x001f1d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f22, 0x001f24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f26, 0x001f90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f23, 0x001f25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f27, 0x001f91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f2a, 0x001f2c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f2e, 0x001f98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f2b, 0x001f2d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f2f, 0x001f99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f32, 0x001f34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f33, 0x001f35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f3a, 0x001f3c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f3e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f3b, 0x001f3d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f3f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f42, 0x001f44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f43, 0x001f45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f4a, 0x001f4c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f4b, 0x001f4d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f52, 0x001f54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f53, 0x001f55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f5b, 0x001f5d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f5f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f62, 0x001f64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f66, 0x001fa0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f63, 0x001f65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f67, 0x001fa1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f6a, 0x001f6c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f6e, 0x001fa8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001f6b, 0x001f6d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001f6f, 0x001fa9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001fcd, 0x001fce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001fcf, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0x001fdd, 0x001fde, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x001fdf, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x003070, 0x003071, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x003073, 0x003074, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x003076, 0x003077, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x003079, 0x00307a, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00307c, 0x00307d, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0030d0, 0x0030d1, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0030d3, 0x0030d4, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0030d6, 0x0030d7, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0030d9, 0x0030da, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0030dc, 0x0030dd, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
};
static const gunichar compose_either_array[15][15] = {
{ 0, 0, 0, 0, 0, 0x011383, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0x01138e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0x011391, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0x0113c7, 0x0113c5, 0x0113c8, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0x016121, 0x016123, 0x016125, 0, 0, 0x016122, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0x016126, 0x016128, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0x016127, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0x016124, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x016d69, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x016d68, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x016d6a, 0 }
};

View File

@ -307,7 +307,7 @@ combine (gunichar a,
index_b = COMPOSE_INDEX(b);
if (index_b >= COMPOSE_SECOND_SINGLE_START)
if (index_b >= COMPOSE_SECOND_SINGLE_START && index_b < COMPOSE_EITHER_START)
{
if (a == compose_second_single[index_b - COMPOSE_SECOND_SINGLE_START][0])
{
@ -330,6 +330,18 @@ combine (gunichar a,
}
}
if (index_a >= COMPOSE_EITHER_START &&
index_b >= COMPOSE_EITHER_START)
{
gunichar res = compose_either_array[index_a - COMPOSE_EITHER_START][index_b - COMPOSE_EITHER_START];
if (res)
{
*result = res;
return TRUE;
}
}
return FALSE;
}