![JAR search and dependency download from the Maven repository](/logo.png)
org.apache.abdera.i18n.text.Nameprep Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aem-sdk-api Show documentation
Show all versions of aem-sdk-api Show documentation
The Adobe Experience Manager SDK
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. The ASF licenses this file to You
* under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License. For additional information regarding
* copyright in this work, please see the NOTICE file in the top level
* directory of this distribution.
*/
package org.apache.abdera.i18n.text;
/**
* Implements the Nameprep protocol
*
* @deprecated This API is deprecated as Apache Abdera is a retired project since 2017.
*/
@Deprecated(since = "2021-07-29")
public class Nameprep {
public static String prep(String s) {
NameprepCodepointIterator r = null;
try {
StringBuilder buf = new StringBuilder();
CodepointIterator ci = CodepointIterator.forCharSequence(s);
r = new NameprepCodepointIterator(ci);
while (r.hasNext()) {
Codepoint cp = r.next();
int i = cp != null ? cp.getValue() : -1;
if (i != -1) {
CharUtils.append(buf, cp);
}
}
String n = Normalizer.normalize(buf.toString(), Normalizer.Form.KC).toString();
CharUtils.verify(CodepointIterator.forCharSequence(n), new Filter() {
public boolean accept(int c) {
return isProhibited(c);
}
});
return n;
} catch (Throwable e) {
return null;
}
}
// @deprecated This API is deprecated as Apache Abdera is a retired project since 2017.
@Deprecated(since = "2021-07-29")
private static class NameprepCodepointIterator extends DelegatingCodepointIterator {
private int[] rep = null;
private int reppos = 0;
private boolean haslcat = false;
private boolean hasrandalcat = false;
private boolean firstisrandalcat = false;
@Override
public boolean hasNext() {
return rep != null || super.hasNext();
}
protected NameprepCodepointIterator(CodepointIterator internal) {
super(internal);
}
@Override
public Codepoint next() {
int r = -1;
if (this.rep == null) {
r = super.next().getValue();
if (r != -1) {
if (Nameprep.isLCat(r))
haslcat = true;
if (Nameprep.isRandAL(r)) {
hasrandalcat = true;
if (position() == 1)
firstisrandalcat = true;
}
if (haslcat && hasrandalcat)
throw new RuntimeException("Bidi Exception");
while (r != -1 && Nameprep.isB1(r)) {
Codepoint cp = super.next();
r = cp != null ? cp.getValue() : -1;
}
if (r != -1) {
int[] rep = Nameprep.B2(r);
if (rep != null) {
if (rep.length > 1) {
this.rep = rep;
reppos = 0;
}
r = rep[0];
}
}
}
} else {
r = rep[++reppos];
if (reppos + 1 >= rep.length)
rep = null;
}
if ((r == -1 || !hasNext()) && hasrandalcat && (!firstisrandalcat || !Nameprep.isRandAL((r == -1) ? peek(position()).getValue() : r))) {
throw new RuntimeException("Bidi Exception");
}
return r != -1 ? new Codepoint(r) : null;
}
@Override
public char[] nextChars() {
return super.nextChars();
}
}
private static final int[] B1 = { 0x80, 0x81, 0x86, 0x88, 0x8B, 0x8F, 0xA0, 0x00AD, 0x034F, 0x1806, 0x180B, 0x180C, 0x180D, 0x200B, 0x200C, 0x200D, 0x2060, 0xFE00, 0xFE01, 0xFE02, 0xFE03, 0xFE04, 0xFE05, 0xFE06, 0xFE07, 0xFE08, 0xFE09, 0xFE0A, 0xFE0B, 0xFE0C, 0xFE0D, 0xFE0E, 0xFE0F, 0xFEFF };
private static final int[] PROHIBITED = { 0x0080, 0x00A1, 0x0340, 0x0342, 0x06DD, 0x06DE, 0x070F, 0x0810, 0x1680, 0x1681, 0x180E, 0x180F, 0x2000, 0x2010, 0x2028, 0x202A, 0x202A, 0x2030, 0x205F, 0x2060, 0x2060, 0x2064, 0x206A, 0x2070, 0x2FF0, 0x2FFC, 0x3000, 0x3001, 0xD800, 0xF900, 0xFDD0, 0xFDF0, 0xFEFF, 0xFF00, 0xFFF9, 0xFFFE, 0x1D173, 0x1D17B, 0xE0001, 0xE0002, 0xE0020, 0xE0080, 0xF0000, 0xFFFFE, 0x100000, 0x10FFFE };
private static final int[] RandAL = { 0x05BE, 0x05BF, 0x05C0, 0x05C1, 0x05C3, 0x05C4, 0x05D0, 0x05EB, 0x05F0, 0x05F5, 0x061B, 0x061C, 0x061F, 0x0620, 0x0621, 0x063B, 0x0640, 0x064B, 0x066D, 0x0670, 0x0671, 0x06D6, 0x06DD, 0x06DE, 0x06E5, 0x06E7, 0x06FA, 0x06FF, 0x0700, 0x070E, 0x0710, 0x0711, 0x0712, 0x072D, 0x0780, 0x07A6, 0x07B1, 0x07B2, 0x200F, 0x2010, 0xFB1D, 0xFB1E, 0xFB1F, 0xFB29, 0xFB2A, 0xFB37, 0xFB38, 0xFB3D, 0xFB3E, 0xFB3F, 0xFB40, 0xFB42, 0xFB43, 0xFB45, 0xFB46, 0xFBB2, 0xFBD3, 0xFD3E, 0xFD50, 0xFD90, 0xFD92, 0xFDC8, 0xFDF0, 0xFDFD, 0xFE70, 0xFE75, 0xFE76, 0xFEFD };
private static final int[] notLCat = { 0x0, 0x41, 0x5b, 0x61, 0x7b, 0xaa, 0xab, 0xb5, 0xb6, 0xba, 0xbb, 0xc0, 0xd7, 0xd8, 0xf7, 0xf8, 0x221, 0x222, 0x234, 0x250, 0x2ae, 0x2b0, 0x2b9, 0x2bb, 0x2c2, 0x2d0, 0x2d2, 0x2e0, 0x2e5, 0x2ee, 0x2ef, 0x37a, 0x37b, 0x386, 0x387, 0x388, 0x38b, 0x38c, 0x38d, 0x38e, 0x3a2, 0x3a3, 0x3cf, 0x3d0, 0x3f6, 0x400, 0x483, 0x48a, 0x4cf, 0x4d0, 0x4f6, 0x4f8, 0x4fa, 0x500, 0x510, 0x531, 0x557, 0x559, 0x560, 0x561, 0x588, 0x589, 0x58a, 0x903, 0x904, 0x905, 0x93a, 0x93d, 0x941, 0x949, 0x94d, 0x950, 0x951, 0x958, 0x962, 0x964, 0x971, 0x982, 0x984, 0x985, 0x98d, 0x98f, 0x991, 0x993, 0x9a9, 0x9aa, 0x9b1, 0x9b2, 0x9b3, 0x9b6, 0x9ba, 0x9be, 0x9c1, 0x9c7, 0x9c9, 0x9cb, 0x9cd, 0x9d7, 0x9d8, 0x9dc, 0x9de, 0x9df, 0x9e2, 0x9e6, 0x9f2, 0x9f4, 0x9fb, 0xa05, 0xa0b, 0xa0f, 0xa11, 0xa13, 0xa29, 0xa2a, 0xa31, 0xa32, 0xa34, 0xa35, 0xa37, 0xa38, 0xa3a, 0xa3e, 0xa41, 0xa59, 0xa5d, 0xa5e, 0xa5f, 0xa66, 0xa70, 0xa72, 0xa75, 0xa83, 0xa84, 0xa85, 0xa8c, 0xa8d, 0xa8e, 0xa8f, 0xa92, 0xa93, 0xaa9, 0xaaa, 0xab1, 0xab2, 0xab4, 0xab5, 0xaba, 0xabd, 0xac1, 0xac9, 0xaca, 0xacb, 0xacd, 0xad0, 0xad1, 0xae0, 0xae1, 0xae6, 0xaf0, 0xb02, 0xb04, 0xb05, 0xb0d, 0xb0f, 0xb11, 0xb13, 0xb29, 0xb2a, 0xb31, 0xb32, 0xb34, 0xb36, 0xb3a, 0xb3d, 0xb3f, 0xb40, 0xb41, 0xb47, 0xb49, 0xb4b, 0xb4d, 0xb57, 0xb58, 0xb5c, 0xb5e, 0xb5f, 0xb62, 0xb66, 0xb71, 0xb83, 0xb84, 0xb85, 0xb8b, 0xb8e, 0xb91, 0xb92, 0xb96, 0xb99, 0xb9b, 0xb9c, 0xb9d, 0xb9e, 0xba0, 0xba3, 0xba5, 0xba8, 0xbab, 0xbae, 0xbb6, 0xbb7, 0xbba, 0xbbe, 0xbc0, 0xbc1, 0xbc3, 0xbc6, 0xbc9, 0xbca, 0xbcd, 0xbd7, 0xbd8, 0xbe7, 0xbf3, 0xc01, 0xc04, 0xc05, 0xc0d, 0xc0e, 0xc11, 0xc12, 0xc29, 0xc2a, 0xc34, 0xc35, 0xc3a, 0xc41, 0xc45, 0xc60, 0xc62, 0xc66, 0xc70, 0xc82, 0xc84, 0xc85, 0xc8d, 0xc8e, 0xc91, 0xc92, 0xca9, 0xcaa, 0xcb4, 0xcb5, 0xcba, 0xcbe, 0xcbf, 0xcc0, 0xcc5, 0xcc7, 0xcc9, 0xcca, 0xccc, 0xcd5, 0xcd7, 0xcde, 0xcdf, 0xce0, 0xce2, 0xce6, 0xcf0, 0xd02, 0xd04, 0xd05, 0xd0d, 0xd0e, 0xd11, 0xd12, 0xd29, 0xd2a, 0xd3a, 0xd3e, 0xd41, 0xd46, 0xd49, 0xd4a, 0xd4d, 0xd57, 0xd58, 0xd60, 0xd62, 0xd66, 0xd70, 0xd82, 0xd84, 0xd85, 0xd97, 0xd9a, 0xdb2, 0xdb3, 0xdbc, 0xdbd, 0xdbe, 0xdc0, 0xdc7, 0xdcf, 0xdd2, 0xdd8, 0xde0, 0xdf2, 0xdf5, 0xe01, 0xe31, 0xe32, 0xe34, 0xe40, 0xe47, 0xe4f, 0xe5c, 0xe81, 0xe83, 0xe84, 0xe85, 0xe87, 0xe89, 0xe8a, 0xe8b, 0xe8d, 0xe8e, 0xe94, 0xe98, 0xe99, 0xea0, 0xea1, 0xea4, 0xea5, 0xea6, 0xea7, 0xea8, 0xeaa, 0xeac, 0xead, 0xeb1, 0xeb2, 0xeb4, 0xebd, 0xebe, 0xec0, 0xec5, 0xec6, 0xec7, 0xed0, 0xeda, 0xedc, 0xede, 0xf00, 0xf18, 0xf1a, 0xf35, 0xf36, 0xf37, 0xf38, 0xf39, 0xf3e, 0xf48, 0xf49, 0xf6b, 0xf7f, 0xf80, 0xf85, 0xf86, 0xf88, 0xf8c, 0xfbe, 0xfc6, 0xfc7, 0xfcd, 0xfcf, 0xfd0, 0x1000, 0x1022, 0x1023, 0x1028, 0x1029, 0x102b, 0x102c, 0x102d, 0x1031, 0x1032, 0x1038, 0x1039, 0x1040, 0x1058, 0x10a0, 0x10c6, 0x10d0, 0x10f9, 0x10fb, 0x10fc, 0x1100, 0x115a, 0x115f, 0x11a3, 0x11a8, 0x11fa, 0x1200, 0x1207, 0x1208, 0x1247, 0x1248, 0x1249, 0x124a, 0x124e, 0x1250, 0x1257, 0x1258, 0x1259, 0x125a, 0x125e, 0x1260, 0x1287, 0x1288, 0x1289, 0x128a, 0x128e, 0x1290, 0x12af, 0x12b0, 0x12b1, 0x12b2, 0x12b6, 0x12b8, 0x12bf, 0x12c0, 0x12c1, 0x12c2, 0x12c6, 0x12c8, 0x12cf, 0x12d0, 0x12d7, 0x12d8, 0x12ef, 0x12f0, 0x130f, 0x1310, 0x1311, 0x1312, 0x1316, 0x1318, 0x131f, 0x1320, 0x1347, 0x1348, 0x135b, 0x1361, 0x137d, 0x13a0, 0x13f5, 0x1401, 0x1677, 0x1681, 0x169b, 0x16a0, 0x16f1, 0x1700, 0x170d, 0x170e, 0x1712, 0x1720, 0x1732, 0x1735, 0x1737, 0x1740, 0x1752, 0x1760, 0x176d, 0x176e, 0x1771, 0x1780, 0x17b7, 0x17be, 0x17c6, 0x17c7, 0x17c9, 0x17d4, 0x17db, 0x17dc, 0x17dd, 0x17e0, 0x17ea, 0x1810, 0x181a, 0x1820, 0x1878, 0x1880, 0x18a9, 0x1e00, 0x1e9c, 0x1ea0, 0x1efa, 0x1f00, 0x1f16, 0x1f18, 0x1f1e, 0x1f20, 0x1f46, 0x1f48, 0x1f4e, 0x1f50, 0x1f58, 0x1f59, 0x1f5a, 0x1f5b, 0x1f5c, 0x1f5d, 0x1f5e, 0x1f5f, 0x1f7e, 0x1f80, 0x1fb5, 0x1fb6, 0x1fbd, 0x1fbe, 0x1fbf, 0x1fc2, 0x1fc5, 0x1fc6, 0x1fcd, 0x1fd0, 0x1fd4, 0x1fd6, 0x1fdc, 0x1fe0, 0x1fed, 0x1ff2, 0x1ff5, 0x1ff6, 0x1ffd, 0x200e, 0x200f, 0x2071, 0x2072, 0x207f, 0x2080, 0x2102, 0x2103, 0x2107, 0x2108, 0x210a, 0x2114, 0x2115, 0x2116, 0x2119, 0x211e, 0x2124, 0x2125, 0x2126, 0x2127, 0x2128, 0x2129, 0x212a, 0x212e, 0x212f, 0x2132, 0x2133, 0x213a, 0x213d, 0x2140, 0x2145, 0x214a, 0x2160, 0x2184, 0x2336, 0x237b, 0x2395, 0x2396, 0x249c, 0x24ea, 0x3005, 0x3008, 0x3021, 0x302a, 0x3031, 0x3036, 0x3038, 0x303d, 0x3041, 0x3097, 0x309d, 0x30a0, 0x30a1, 0x30fb, 0x30fc, 0x3100, 0x3105, 0x312d, 0x3131, 0x318f, 0x3190, 0x31b8, 0x31f0, 0x321d, 0x3220, 0x3244, 0x3260, 0x327c, 0x327f, 0x32b1, 0x32c0, 0x32cc, 0x32d0, 0x32ff, 0x3300, 0x3377, 0x337b, 0x33de, 0x33e0, 0x33ff, 0x3400, 0x4db6, 0x4e00, 0x9fa6, 0xa000, 0xa48d, 0xac00, 0xd7a4, 0xd800, 0xfa2e, 0xfa30, 0xfa6b, 0xfb00, 0xfb07, 0xfb13, 0xfb18, 0xff21, 0xff3b, 0xff41, 0xff5b, 0xff66, 0xffbf, 0xffc2, 0xffc8, 0xffca, 0xffd0, 0xffd2, 0xffd8, 0xffda, 0xffdd, 0x10300, 0x1031f, 0x10320, 0x10324, 0x10330, 0x1034b, 0x10400, 0x10426, 0x10428, 0x1044e, 0x1d000, 0x1d0f6, 0x1d100, 0x1d127, 0x1d12a, 0x1d167, 0x1d16a, 0x1d173, 0x1d183, 0x1d185, 0x1d18c, 0x1d1aa, 0x1d1ae, 0x1d1de, 0x1d400, 0x1d455, 0x1d456, 0x1d49d, 0x1d49e, 0x1d4a0, 0x1d4a2, 0x1d4a3, 0x1d4a5, 0x1d4a7, 0x1d4a9, 0x1d4ad, 0x1d4ae, 0x1d4ba, 0x1d4bb, 0x1d4bc, 0x1d4bd, 0x1d4c1, 0x1d4c2, 0x1d4c4, 0x1d4c5, 0x1d506, 0x1d507, 0x1d50b, 0x1d50d, 0x1d515, 0x1d516, 0x1d51d, 0x1d51e, 0x1d53a, 0x1d53b, 0x1d53f, 0x1d540, 0x1d545, 0x1d546, 0x1d547, 0x1d54a, 0x1d551, 0x1d552, 0x1d6a4, 0x1d6a8, 0x1d7ca, 0x20000, 0x2a6d7, 0x2f800, 0x2fa1e, 0xf0000, 0xffffe, 0x100000, 0x10fffe };
public static final int[] b2index = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 181, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 216, 217, 218, 219, 220, 221, 222, 223, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 313, 315, 317, 319, 321, 323, 325, 327, 329, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 377, 379, 381, 383, 385, 386, 388, 390, 391, 393, 394, 395, 398, 399, 400, 401, 403, 404, 406, 407, 408, 412, 413, 415, 416, 418, 420, 422, 423, 425, 428, 430, 431, 433, 434, 435, 437, 439, 440, 444, 452, 453, 455, 456, 458, 459, 461, 463, 465, 467, 469, 471, 473, 475, 478, 480, 482, 484, 486, 488, 490, 492, 494, 496, 497, 498, 500, 502, 503, 504, 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, 546, 548, 550, 552, 554, 556, 558, 560, 562, 837, 890, 902, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 944, 962, 976, 977, 978, 979, 980, 981, 982, 984, 986, 988, 990, 992, 994, 996, 998, 1000, 1002, 1004, 1006, 1008, 1009, 1010, 1012, 1013, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1120, 1122, 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1144, 1146, 1148, 1150, 1152, 1162, 1164, 1166, 1168, 1170, 1172, 1174, 1176, 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198, 1200, 1202, 1204, 1206, 1208, 1210, 1212, 1214, 1217, 1219, 1221, 1223, 1225, 1227, 1229, 1232, 1234, 1236, 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252, 1254, 1256, 1258, 1260, 1262, 1264, 1266, 1268, 1272, 1280, 1282, 1284, 1286, 1288, 1290, 1292, 1294, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1415, 7680, 7682, 7684, 7686, 7688, 7690, 7692, 7694, 7696, 7698, 7700, 7702, 7704, 7706, 7708, 7710, 7712, 7714, 7716, 7718, 7720, 7722, 7724, 7726, 7728, 7730, 7732, 7734, 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750, 7752, 7754, 7756, 7758, 7760, 7762, 7764, 7766, 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782, 7784, 7786, 7788, 7790, 7792, 7794, 7796, 7798, 7800, 7802, 7804, 7806, 7808, 7810, 7812, 7814, 7816, 7818, 7820, 7822, 7824, 7826, 7828, 7830, 7831, 7832, 7833, 7834, 7835, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854, 7856, 7858, 7860, 7862, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, 7880, 7882, 7884, 7886, 7888, 7890, 7892, 7894, 7896, 7898, 7900, 7902, 7904, 7906, 7908, 7910, 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7926, 7928, 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951, 7960, 7961, 7962, 7963, 7964, 7965, 7976, 7977, 7978, 7979, 7980, 7981, 7982, 7983, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8008, 8009, 8010, 8011, 8012, 8013, 8016, 8018, 8020, 8022, 8025, 8027, 8029, 8031, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, 8111, 8114, 8115, 8116, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8126, 8130, 8131, 8132, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8146, 8147, 8150, 8151, 8152, 8153, 8154, 8155, 8162, 8163, 8164, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8178, 8179, 8180, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8360, 8450, 8451, 8455, 8457, 8459, 8460, 8461, 8464, 8465, 8466, 8469, 8470, 8473, 8474, 8475, 8476, 8477, 8480, 8481, 8482, 8484, 8486, 8488, 8490, 8491, 8492, 8493, 8496, 8497, 8499, 8510, 8511, 8517, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423, 13169, 13171, 13173, 13184, 13185, 13186, 13187, 13188, 13189, 13190, 13191, 13194, 13195, 13196, 13200, 13201, 13202, 13203, 13204, 13225, 13226, 13227, 13228, 13236, 13237, 13238, 13239, 13240, 13241, 13242, 13243, 13244, 13245, 13246, 13247, 13248, 13249, 13251, 13254, 13255, 13256, 13257, 13259, 13261, 13262, 13271, 13273, 13274, 13276, 13277, 64256, 64257, 64258, 64259, 64260, 64261, 64262, 64275, 64276, 64277, 64278, 64279, 65313, 65314, 65315, 65316, 65317, 65318, 65319, 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327, 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335, 65336, 65337, 65338, 66560, 66561, 66562, 66563, 66564, 66565, 66566, 66567, 66568, 66569, 66570, 66571, 66572, 66573, 66574, 66575, 66576, 66577, 66578, 66579, 66580, 66581, 66582, 66583, 66584, 66585, 66586, 66587, 66588, 66589, 66590, 66591, 66592, 66593, 66594, 66595, 66596, 66597, 119808, 119809, 119810, 119811, 119812, 119813, 119814, 119815, 119816, 119817, 119818, 119819, 119820, 119821, 119822, 119823, 119824, 119825, 119826, 119827, 119828, 119829, 119830, 119831, 119832, 119833, 119860, 119861, 119862, 119863, 119864, 119865, 119866, 119867, 119868, 119869, 119870, 119871, 119872, 119873, 119874, 119875, 119876, 119877, 119878, 119879, 119880, 119881, 119882, 119883, 119884, 119885, 119912, 119913, 119914, 119915, 119916, 119917, 119918, 119919, 119920, 119921, 119922, 119923, 119924, 119925, 119926, 119927, 119928, 119929, 119930, 119931, 119932, 119933, 119934, 119935, 119936, 119937, 119964, 119966, 119967, 119970, 119973, 119974, 119977, 119978, 119979, 119980, 119982, 119983, 119984, 119985, 119986, 119987, 119988, 119989, 120016, 120017, 120018, 120019, 120020, 120021, 120022, 120023, 120024, 120025, 120026, 120027, 120028, 120029, 120030, 120031, 120032, 120033, 120034, 120035, 120036, 120037, 120038, 120039, 120040, 120041, 120068, 120069, 120071, 120072, 120073, 120074, 120077, 120078, 120079, 120080, 120081, 120082, 120083, 120084, 120086, 120087, 120088, 120089, 120090, 120091, 120092, 120120, 120121, 120123, 120124, 120125, 120126, 120128, 120129, 120130, 120131, 120132, 120134, 120138, 120139, 120140, 120141, 120142, 120143, 120144, 120172, 120173, 120174, 120175, 120176, 120177, 120178, 120179, 120180, 120181, 120182, 120183, 120184, 120185, 120186, 120187, 120188, 120189, 120190, 120191, 120192, 120193, 120194, 120195, 120196, 120197, 120224, 120225, 120226, 120227, 120228, 120229, 120230, 120231, 120232, 120233, 120234, 120235, 120236, 120237, 120238, 120239, 120240, 120241, 120242, 120243, 120244, 120245, 120246, 120247, 120248, 120249, 120276, 120277, 120278, 120279, 120280, 120281, 120282, 120283, 120284, 120285, 120286, 120287, 120288, 120289, 120290, 120291, 120292, 120293, 120294, 120295, 120296, 120297, 120298, 120299, 120300, 120301, 120328, 120329, 120330, 120331, 120332, 120333, 120334, 120335, 120336, 120337, 120338, 120339, 120340, 120341, 120342, 120343, 120344, 120345, 120346, 120347, 120348, 120349, 120350, 120351, 120352, 120353, 120380, 120381, 120382, 120383, 120384, 120385, 120386, 120387, 120388, 120389, 120390, 120391, 120392, 120393, 120394, 120395, 120396, 120397, 120398, 120399, 120400, 120401, 120402, 120403, 120404, 120405, 120432, 120433, 120434, 120435, 120436, 120437, 120438, 120439, 120440, 120441, 120442, 120443, 120444, 120445, 120446, 120447, 120448, 120449, 120450, 120451, 120452, 120453, 120454, 120455, 120456, 120457, 120488, 120489, 120490, 120491, 120492, 120493, 120494, 120495, 120496, 120497, 120498, 120499, 120500, 120501, 120502, 120503, 120504, 120505, 120506, 120507, 120508, 120509, 120510, 120511, 120512, 120531, 120546, 120547, 120548, 120549, 120550, 120551, 120552, 120553, 120554, 120555, 120556, 120557, 120558, 120559, 120560, 120561, 120562, 120563, 120564, 120565, 120566, 120567, 120568, 120569, 120570, 120589, 120604, 120605, 120606, 120607, 120608, 120609, 120610, 120611, 120612, 120613, 120614, 120615, 120616, 120617, 120618, 120619, 120620, 120621, 120622, 120623, 120624, 120625, 120626, 120627, 120628, 120647, 120662, 120663, 120664, 120665, 120666, 120667, 120668, 120669, 120670, 120671, 120672, 120673, 120674, 120675, 120676, 120677, 120678, 120679, 120680, 120681, 120682, 120683, 120684, 120685, 120686, 120705, 120720, 120721, 120722, 120723, 120724, 120725, 120726, 120727, 120728, 120729, 120730, 120731, 120732, 120733, 120734, 120735, 120736, 120737, 120738, 120739, 120740, 120741, 120742, 120743, 120744, 120763 };
public static final int[][] b2data = { { 97 }, { 98 }, { 99 }, { 100 }, { 101 }, { 102 }, { 103 }, { 104 }, { 105 }, { 106 }, { 107 }, { 108 }, { 109 }, { 110 }, { 111 }, { 112 }, { 113 }, { 114 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 122 }, { 956 }, { 224 }, { 225 }, { 226 }, { 227 }, { 228 }, { 229 }, { 230 }, { 231 }, { 232 }, { 233 }, { 234 }, { 235 }, { 236 }, { 237 }, { 238 }, { 239 }, { 240 }, { 241 }, { 242 }, { 243 }, { 244 }, { 245 }, { 246 }, { 248 }, { 249 }, { 250 }, { 251 }, { 252 }, { 253 }, { 254 }, { 115, 115 }, { 257 }, { 259 }, { 261 }, { 263 }, { 265 }, { 267 }, { 269 }, { 271 }, { 273 }, { 275 }, { 277 }, { 279 }, { 281 }, { 283 }, { 285 }, { 287 }, { 289 }, { 291 }, { 293 }, { 295 }, { 297 }, { 299 }, { 301 }, { 303 }, { 105, 775 }, { 307 }, { 309 }, { 311 }, { 314 }, { 316 }, { 318 }, { 320 }, { 322 }, { 324 }, { 326 }, { 328 }, { 700, 110 }, { 331 }, { 333 }, { 335 }, { 337 }, { 339 }, { 341 }, { 343 }, { 345 }, { 347 }, { 349 }, { 351 }, { 353 }, { 355 }, { 357 }, { 359 }, { 361 }, { 363 }, { 365 }, { 367 }, { 369 }, { 371 }, { 373 }, { 375 }, { 255 }, { 378 }, { 380 }, { 382 }, { 115 }, { 595 }, { 387 }, { 389 }, { 596 }, { 392 }, { 598 }, { 599 }, { 396 }, { 477 }, { 601 }, { 603 }, { 402 }, { 608 }, { 611 }, { 617 }, { 616 }, { 409 }, { 623 }, { 626 }, { 629 }, { 417 }, { 419 }, { 421 }, { 640 }, { 424 }, { 643 }, { 429 }, { 648 }, { 432 }, { 650 }, { 651 }, { 436 }, { 438 }, { 658 }, { 441 }, { 445 }, { 454 }, { 454 }, { 457 }, { 457 }, { 460 }, { 460 }, { 462 }, { 464 }, { 466 }, { 468 }, { 470 }, { 472 }, { 474 }, { 476 }, { 479 }, { 481 }, { 483 }, { 485 }, { 487 }, { 489 }, { 491 }, { 493 }, { 495 }, { 106, 780 }, { 499 }, { 499 }, { 501 }, { 405 }, { 447 }, { 505 }, { 507 }, { 509 }, { 511 }, { 513 }, { 515 }, { 517 }, { 519 }, { 521 }, { 523 }, { 525 }, { 527 }, { 529 }, { 531 }, { 533 }, { 535 }, { 537 }, { 539 }, { 541 }, { 543 }, { 414 }, { 547 }, { 549 }, { 551 }, { 553 }, { 555 }, { 557 }, { 559 }, { 561 }, { 563 }, { 953 }, { 32, 953 }, { 940 }, { 941 }, { 942 }, { 943 }, { 972 }, { 973 }, { 974 }, { 953, 776, 769 }, { 945 }, { 946 }, { 947 }, { 948 }, { 949 }, { 950 }, { 951 }, { 952 }, { 953 }, { 954 }, { 955 }, { 956 }, { 957 }, { 958 }, { 959 }, { 960 }, { 961 }, { 963 }, { 964 }, { 965 }, { 966 }, { 967 }, { 968 }, { 969 }, { 970 }, { 971 }, { 965, 776, 769 }, { 963 }, { 946 }, { 952 }, { 965 }, { 973 }, { 971 }, { 966 }, { 960 }, { 985 }, { 987 }, { 989 }, { 991 }, { 993 }, { 995 }, { 997 }, { 999 }, { 1001 }, { 1003 }, { 1005 }, { 1007 }, { 954 }, { 961 }, { 963 }, { 952 }, { 949 }, { 1104 }, { 1105 }, { 1106 }, { 1107 }, { 1108 }, { 1109 }, { 1110 }, { 1111 }, { 1112 }, { 1113 }, { 1114 }, { 1115 }, { 1116 }, { 1117 }, { 1118 }, { 1119 }, { 1072 }, { 1073 }, { 1074 }, { 1075 }, { 1076 }, { 1077 }, { 1078 }, { 1079 }, { 1080 }, { 1081 }, { 1082 }, { 1083 }, { 1084 }, { 1085 }, { 1086 }, { 1087 }, { 1088 }, { 1089 }, { 1090 }, { 1091 }, { 1092 }, { 1093 }, { 1094 }, { 1095 }, { 1096 }, { 1097 }, { 1098 }, { 1099 }, { 1100 }, { 1101 }, { 1102 }, { 1103 }, { 1121 }, { 1123 }, { 1125 }, { 1127 }, { 1129 }, { 1131 }, { 1133 }, { 1135 }, { 1137 }, { 1139 }, { 1141 }, { 1143 }, { 1145 }, { 1147 }, { 1149 }, { 1151 }, { 1153 }, { 1163 }, { 1165 }, { 1167 }, { 1169 }, { 1171 }, { 1173 }, { 1175 }, { 1177 }, { 1179 }, { 1181 }, { 1183 }, { 1185 }, { 1187 }, { 1189 }, { 1191 }, { 1193 }, { 1195 }, { 1197 }, { 1199 }, { 1201 }, { 1203 }, { 1205 }, { 1207 }, { 1209 }, { 1211 }, { 1213 }, { 1215 }, { 1218 }, { 1220 }, { 1222 }, { 1224 }, { 1226 }, { 1228 }, { 1230 }, { 1233 }, { 1235 }, { 1237 }, { 1239 }, { 1241 }, { 1243 }, { 1245 }, { 1247 }, { 1249 }, { 1251 }, { 1253 }, { 1255 }, { 1257 }, { 1259 }, { 1261 }, { 1263 }, { 1265 }, { 1267 }, { 1269 }, { 1273 }, { 1281 }, { 1283 }, { 1285 }, { 1287 }, { 1289 }, { 1291 }, { 1293 }, { 1295 }, { 1377 }, { 1378 }, { 1379 }, { 1380 }, { 1381 }, { 1382 }, { 1383 }, { 1384 }, { 1385 }, { 1386 }, { 1387 }, { 1388 }, { 1389 }, { 1390 }, { 1391 }, { 1392 }, { 1393 }, { 1394 }, { 1395 }, { 1396 }, { 1397 }, { 1398 }, { 1399 }, { 1400 }, { 1401 }, { 1402 }, { 1403 }, { 1404 }, { 1405 }, { 1406 }, { 1407 }, { 1408 }, { 1409 }, { 1410 }, { 1411 }, { 1412 }, { 1413 }, { 1414 }, { 1381, 1410 }, { 7681 }, { 7683 }, { 7685 }, { 7687 }, { 7689 }, { 7691 }, { 7693 }, { 7695 }, { 7697 }, { 7699 }, { 7701 }, { 7703 }, { 7705 }, { 7707 }, { 7709 }, { 7711 }, { 7713 }, { 7715 }, { 7717 }, { 7719 }, { 7721 }, { 7723 }, { 7725 }, { 7727 }, { 7729 }, { 7731 }, { 7733 }, { 7735 }, { 7737 }, { 7739 }, { 7741 }, { 7743 }, { 7745 }, { 7747 }, { 7749 }, { 7751 }, { 7753 }, { 7755 }, { 7757 }, { 7759 }, { 7761 }, { 7763 }, { 7765 }, { 7767 }, { 7769 }, { 7771 }, { 7773 }, { 7775 }, { 7777 }, { 7779 }, { 7781 }, { 7783 }, { 7785 }, { 7787 }, { 7789 }, { 7791 }, { 7793 }, { 7795 }, { 7797 }, { 7799 }, { 7801 }, { 7803 }, { 7805 }, { 7807 }, { 7809 }, { 7811 }, { 7813 }, { 7815 }, { 7817 }, { 7819 }, { 7821 }, { 7823 }, { 7825 }, { 7827 }, { 7829 }, { 104, 817 }, { 116, 776 }, { 119, 778 }, { 121, 778 }, { 97, 702 }, { 7777 }, { 7841 }, { 7843 }, { 7845 }, { 7847 }, { 7849 }, { 7851 }, { 7853 }, { 7855 }, { 7857 }, { 7859 }, { 7861 }, { 7863 }, { 7865 }, { 7867 }, { 7869 }, { 7871 }, { 7873 }, { 7875 }, { 7877 }, { 7879 }, { 7881 }, { 7883 }, { 7885 }, { 7887 }, { 7889 }, { 7891 }, { 7893 }, { 7895 }, { 7897 }, { 7899 }, { 7901 }, { 7903 }, { 7905 }, { 7907 }, { 7909 }, { 7911 }, { 7913 }, { 7915 }, { 7917 }, { 7919 }, { 7921 }, { 7923 }, { 7925 }, { 7927 }, { 7929 }, { 7936 }, { 7937 }, { 7938 }, { 7939 }, { 7940 }, { 7941 }, { 7942 }, { 7943 }, { 7952 }, { 7953 }, { 7954 }, { 7955 }, { 7956 }, { 7957 }, { 7968 }, { 7969 }, { 7970 }, { 7971 }, { 7972 }, { 7973 }, { 7974 }, { 7975 }, { 7984 }, { 7985 }, { 7986 }, { 7987 }, { 7988 }, { 7989 }, { 7990 }, { 7991 }, { 8000 }, { 8001 }, { 8002 }, { 8003 }, { 8004 }, { 8005 }, { 965, 787 }, { 965, 787, 768 }, { 965, 787, 769 }, { 965, 787, 834 }, { 8017 }, { 8019 }, { 8021 }, { 8023 }, { 8032 }, { 8033 }, { 8034 }, { 8035 }, { 8036 }, { 8037 }, { 8038 }, { 8039 }, { 7936, 953 }, { 7937, 953 }, { 7938, 953 }, { 7939, 953 }, { 7940, 953 }, { 7941, 953 }, { 7942, 953 }, { 7943, 953 }, { 7936, 953 }, { 7937, 953 }, { 7938, 953 }, { 7939, 953 }, { 7940, 953 }, { 7941, 953 }, { 7942, 953 }, { 7943, 953 }, { 7968, 953 }, { 7969, 953 }, { 7970, 953 }, { 7971, 953 }, { 7972, 953 }, { 7973, 953 }, { 7974, 953 }, { 7975, 953 }, { 7968, 953 }, { 7969, 953 }, { 7970, 953 }, { 7971, 953 }, { 7972, 953 }, { 7973, 953 }, { 7974, 953 }, { 7975, 953 }, { 8032, 953 }, { 8033, 953 }, { 8034, 953 }, { 8035, 953 }, { 8036, 953 }, { 8037, 953 }, { 8038, 953 }, { 8039, 953 }, { 8032, 953 }, { 8033, 953 }, { 8034, 953 }, { 8035, 953 }, { 8036, 953 }, { 8037, 953 }, { 8038, 953 }, { 8039, 953 }, { 8048, 953 }, { 945, 953 }, { 940, 953 }, { 945, 834 }, { 945, 834, 953 }, { 8112 }, { 8113 }, { 8048 }, { 8049 }, { 945, 953 }, { 953 }, { 8052, 953 }, { 951, 953 }, { 942, 953 }, { 951, 834 }, { 951, 834, 953 }, { 8050 }, { 8051 }, { 8052 }, { 8053 }, { 951, 953 }, { 953, 776, 768 }, { 953, 776, 769 }, { 953, 834 }, { 953, 776, 834 }, { 8144 }, { 8145 }, { 8054 }, { 8055 }, { 965, 776, 768 }, { 965, 776, 769 }, { 961, 787 }, { 965, 834 }, { 965, 776, 834 }, { 8160 }, { 8161 }, { 8058 }, { 8059 }, { 8165 }, { 8060, 953 }, { 969, 953 }, { 974, 953 }, { 969, 834 }, { 969, 834, 953 }, { 8056 }, { 8057 }, { 8060 }, { 8061 }, { 969, 953 }, { 114, 115 }, { 99 }, { 176, 99 }, { 603 }, { 176, 102 }, { 104 }, { 104 }, { 104 }, { 105 }, { 105 }, { 108 }, { 110 }, { 110, 111 }, { 112 }, { 113 }, { 114 }, { 114 }, { 114 }, { 115, 109 }, { 116, 101, 108 }, { 116, 109 }, { 122 }, { 969 }, { 122 }, { 107 }, { 229 }, { 98 }, { 99 }, { 101 }, { 102 }, { 109 }, { 947 }, { 960 }, { 100 }, { 8560 }, { 8561 }, { 8562 }, { 8563 }, { 8564 }, { 8565 }, { 8566 }, { 8567 }, { 8568 }, { 8569 }, { 8570 }, { 8571 }, { 8572 }, { 8573 }, { 8574 }, { 8575 }, { 9424 }, { 9425 }, { 9426 }, { 9427 }, { 9428 }, { 9429 }, { 9430 }, { 9431 }, { 9432 }, { 9433 }, { 9434 }, { 9435 }, { 9436 }, { 9437 }, { 9438 }, { 9439 }, { 9440 }, { 9441 }, { 9442 }, { 9443 }, { 9444 }, { 9445 }, { 9446 }, { 9447 }, { 9448 }, { 9449 }, { 104, 112, 97 }, { 97, 117 }, { 111, 118 }, { 112, 97 }, { 110, 97 }, { 956, 97 }, { 109, 97 }, { 107, 97 }, { 107, 98 }, { 109, 98 }, { 103, 98 }, { 112, 102 }, { 110, 102 }, { 956, 102 }, { 104, 122 }, { 107, 104, 122 }, { 109, 104, 122 }, { 103, 104, 122 }, { 116, 104, 122 }, { 112, 97 }, { 107, 112, 97 }, { 109, 112, 97 }, { 103, 112, 97 }, { 112, 118 }, { 110, 118 }, { 956, 118 }, { 109, 118 }, { 107, 118 }, { 109, 118 }, { 112, 119 }, { 110, 119 }, { 956, 119 }, { 109, 119 }, { 107, 119 }, { 109, 119 }, { 107, 969 }, { 109, 969 }, { 98, 113 }, { 99, 8725, 107, 103 }, { 99, 111, 46 }, { 100, 98 }, { 103, 121 }, { 104, 112 }, { 107, 107 }, { 107, 109 }, { 112, 104 }, { 112, 112, 109 }, { 112, 114 }, { 115, 118 }, { 119, 98 }, { 102, 102 }, { 102, 105 }, { 102, 108 }, { 102, 102, 105 }, { 102, 102, 108 }, { 115, 116 }, { 115, 116 }, { 1396, 1398 }, { 1396, 1381 }, { 1396, 1387 }, { 1406, 1398 }, { 1396, 1389 }, { 65345 }, { 65346 }, { 65347 }, { 65348 }, { 65349 }, { 65350 }, { 65351 }, { 65352 }, { 65353 }, { 65354 }, { 65355 }, { 65356 }, { 65357 }, { 65358 }, { 65359 }, { 65360 }, { 65361 }, { 65362 }, { 65363 }, { 65364 }, { 65365 }, { 65366 }, { 65367 }, { 65368 }, { 65369 }, { 65370 }, { 66600 }, { 66601 }, { 66602 }, { 66603 }, { 66604 }, { 66605 }, { 66606 }, { 66607 }, { 66608 }, { 66609 }, { 66610 }, { 66611 }, { 66612 }, { 66613 }, { 66614 }, { 66615 }, { 66616 }, { 66617 }, { 66618 }, { 66619 }, { 66620 }, { 66621 }, { 66622 }, { 66623 }, { 66624 }, { 66625 }, { 66626 }, { 66627 }, { 66628 }, { 66629 }, { 66630 }, { 66631 }, { 66632 }, { 66633 }, { 66634 }, { 66635 }, { 66636 }, { 66637 }, { 97 }, { 98 }, { 99 }, { 100 }, { 101 }, { 102 }, { 103 }, { 104 }, { 105 }, { 106 }, { 107 }, { 108 }, { 109 }, { 110 }, { 111 }, { 112 }, { 113 }, { 114 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 122 }, { 97 }, { 98 }, { 99 }, { 100 }, { 101 }, { 102 }, { 103 }, { 104 }, { 105 }, { 106 }, { 107 }, { 108 }, { 109 }, { 110 }, { 111 }, { 112 }, { 113 }, { 114 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 122 }, { 97 }, { 98 }, { 99 }, { 100 }, { 101 }, { 102 }, { 103 }, { 104 }, { 105 }, { 106 }, { 107 }, { 108 }, { 109 }, { 110 }, { 111 }, { 112 }, { 113 }, { 114 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 122 }, { 97 }, { 99 }, { 100 }, { 103 }, { 106 }, { 107 }, { 110 }, { 111 }, { 112 }, { 113 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 122 }, { 97 }, { 98 }, { 99 }, { 100 }, { 101 }, { 102 }, { 103 }, { 104 }, { 105 }, { 106 }, { 107 }, { 108 }, { 109 }, { 110 }, { 111 }, { 112 }, { 113 }, { 114 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 122 }, { 97 }, { 98 }, { 100 }, { 101 }, { 102 }, { 103 }, { 106 }, { 107 }, { 108 }, { 109 }, { 110 }, { 111 }, { 112 }, { 113 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 97 }, { 98 }, { 100 }, { 101 }, { 102 }, { 103 }, { 105 }, { 106 }, { 107 }, { 108 }, { 109 }, { 111 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 97 }, { 98 }, { 99 }, { 100 }, { 101 }, { 102 }, { 103 }, { 104 }, { 105 }, { 106 }, { 107 }, { 108 }, { 109 }, { 110 }, { 111 }, { 112 }, { 113 }, { 114 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 122 }, { 97 }, { 98 }, { 99 }, { 100 }, { 101 }, { 102 }, { 103 }, { 104 }, { 105 }, { 106 }, { 107 }, { 108 }, { 109 }, { 110 }, { 111 }, { 112 }, { 113 }, { 114 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 122 }, { 97 }, { 98 }, { 99 }, { 100 }, { 101 }, { 102 }, { 103 }, { 104 }, { 105 }, { 106 }, { 107 }, { 108 }, { 109 }, { 110 }, { 111 }, { 112 }, { 113 }, { 114 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 122 }, { 97 }, { 98 }, { 99 }, { 100 }, { 101 }, { 102 }, { 103 }, { 104 }, { 105 }, { 106 }, { 107 }, { 108 }, { 109 }, { 110 }, { 111 }, { 112 }, { 113 }, { 114 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 122 }, { 97 }, { 98 }, { 99 }, { 100 }, { 101 }, { 102 }, { 103 }, { 104 }, { 105 }, { 106 }, { 107 }, { 108 }, { 109 }, { 110 }, { 111 }, { 112 }, { 113 }, { 114 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 122 }, { 97 }, { 98 }, { 99 }, { 100 }, { 101 }, { 102 }, { 103 }, { 104 }, { 105 }, { 106 }, { 107 }, { 108 }, { 109 }, { 110 }, { 111 }, { 112 }, { 113 }, { 114 }, { 115 }, { 116 }, { 117 }, { 118 }, { 119 }, { 120 }, { 121 }, { 122 }, { 945 }, { 946 }, { 947 }, { 948 }, { 949 }, { 950 }, { 951 }, { 952 }, { 953 }, { 954 }, { 955 }, { 956 }, { 957 }, { 958 }, { 959 }, { 960 }, { 961 }, { 952 }, { 963 }, { 964 }, { 965 }, { 966 }, { 967 }, { 968 }, { 969 }, { 963 }, { 945 }, { 946 }, { 947 }, { 948 }, { 949 }, { 950 }, { 951 }, { 952 }, { 953 }, { 954 }, { 955 }, { 956 }, { 957 }, { 958 }, { 959 }, { 960 }, { 961 }, { 952 }, { 963 }, { 964 }, { 965 }, { 966 }, { 967 }, { 968 }, { 969 }, { 963 }, { 945 }, { 946 }, { 947 }, { 948 }, { 949 }, { 950 }, { 951 }, { 952 }, { 953 }, { 954 }, { 955 }, { 956 }, { 957 }, { 958 }, { 959 }, { 960 }, { 961 }, { 952 }, { 963 }, { 964 }, { 965 }, { 966 }, { 967 }, { 968 }, { 969 }, { 963 }, { 945 }, { 946 }, { 947 }, { 948 }, { 949 }, { 950 }, { 951 }, { 952 }, { 953 }, { 954 }, { 955 }, { 956 }, { 957 }, { 958 }, { 959 }, { 960 }, { 961 }, { 952 }, { 963 }, { 964 }, { 965 }, { 966 }, { 967 }, { 968 }, { 969 }, { 963 }, { 945 }, { 946 }, { 947 }, { 948 }, { 949 }, { 950 }, { 951 }, { 952 }, { 953 }, { 954 }, { 955 }, { 956 }, { 957 }, { 958 }, { 959 }, { 960 }, { 961 }, { 952 }, { 963 }, { 964 }, { 965 }, { 966 }, { 967 }, { 968 }, { 969 }, { 963 } };
public static final int[] B2(int c) {
int i = java.util.Arrays.binarySearch(b2index, c);
return i > -1 ? b2data[i] : null;
}
public static boolean isB1(int c) {
return java.util.Arrays.binarySearch(B1, c) > -1;
}
public static boolean isProhibited(int c) {
if ((c & 0xFFFF) == 0xFFFF)
return true;
if ((c & 0xFFFE) == 0xFFFE)
return true;
return CharUtils.invset_contains(PROHIBITED, c);
}
public static boolean isRandAL(int c) {
return CharUtils.invset_contains(RandAL, c);
}
public static boolean isLCat(int c) {
return !CharUtils.invset_contains(notLCat, c);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy