Clover icon

Coverage Report

  1. Project Clover database Mon Nov 11 2024 15:14:12 GMT
  2. Package com.stevesoft.pat

File CaseMgr.java

 

Coverage histogram

../../../img/srcFileCovDistChart0.png
60% of files have more coverage

Code metrics

60
4,238
10
1
4,409
4,355
1,433
0.34
423.8
10
143.3

Classes

Class Line # Actions
CaseMgr 20 4,238 1,433
0.00278551530.3%
 

Contributing tests

This file is covered by 98 tests. .

Source view

1    //
2    // This software is now distributed according to
3    // the Lesser Gnu Public License. Please see
4    // http://www.gnu.org/copyleft/lesser.txt for
5    // the details.
6    // -- Happy Computing!
7    //
8    package com.stevesoft.pat;
9   
10    /**
11    * Encapsulates the Unicode definitions of Upper, Lower, and Title case as
12    * defined by <a href="http://www.unicode.org"> unicode.org</a>.
13    * <p>
14    * The performance of the methods found in String and Character is better, but
15    * these methods work both in java 1.0 and 1.1. If it is desirable, either to
16    * gain a slight performance increase or to accomodate application specific
17    * modifications to the definitions of upper, lower, and title case then it
18    * should be a straightforward task to substitute your own methods for these.
19    */
 
20    final public class CaseMgr
21    {
22    final static boolean java_1_0 = false;
23   
24    /** Convert a character to upper case . */
 
25  33221 toggle public static char toUpperCase(char c)
26    {
27  33221 if (java_1_0)
28    {
29  0 int ret = (int) c;
30  0 switch (c)
31    {
32  0 case 97:
33  0 ret = 65;
34  0 break;
35  0 case 98:
36  0 ret = 66;
37  0 break;
38  0 case 99:
39  0 ret = 67;
40  0 break;
41  0 case 100:
42  0 ret = 68;
43  0 break;
44  0 case 101:
45  0 ret = 69;
46  0 break;
47  0 case 102:
48  0 ret = 70;
49  0 break;
50  0 case 103:
51  0 ret = 71;
52  0 break;
53  0 case 104:
54  0 ret = 72;
55  0 break;
56  0 case 105:
57  0 ret = 73;
58  0 break;
59  0 case 106:
60  0 ret = 74;
61  0 break;
62  0 case 107:
63  0 ret = 75;
64  0 break;
65  0 case 108:
66  0 ret = 76;
67  0 break;
68  0 case 109:
69  0 ret = 77;
70  0 break;
71  0 case 110:
72  0 ret = 78;
73  0 break;
74  0 case 111:
75  0 ret = 79;
76  0 break;
77  0 case 112:
78  0 ret = 80;
79  0 break;
80  0 case 113:
81  0 ret = 81;
82  0 break;
83  0 case 114:
84  0 ret = 82;
85  0 break;
86  0 case 115:
87  0 ret = 83;
88  0 break;
89  0 case 116:
90  0 ret = 84;
91  0 break;
92  0 case 117:
93  0 ret = 85;
94  0 break;
95  0 case 118:
96  0 ret = 86;
97  0 break;
98  0 case 119:
99  0 ret = 87;
100  0 break;
101  0 case 120:
102  0 ret = 88;
103  0 break;
104  0 case 121:
105  0 ret = 89;
106  0 break;
107  0 case 122:
108  0 ret = 90;
109  0 break;
110  0 case 224:
111  0 ret = 192;
112  0 break;
113  0 case 225:
114  0 ret = 193;
115  0 break;
116  0 case 226:
117  0 ret = 194;
118  0 break;
119  0 case 227:
120  0 ret = 195;
121  0 break;
122  0 case 228:
123  0 ret = 196;
124  0 break;
125  0 case 229:
126  0 ret = 197;
127  0 break;
128  0 case 230:
129  0 ret = 198;
130  0 break;
131  0 case 231:
132  0 ret = 199;
133  0 break;
134  0 case 232:
135  0 ret = 200;
136  0 break;
137  0 case 233:
138  0 ret = 201;
139  0 break;
140  0 case 234:
141  0 ret = 202;
142  0 break;
143  0 case 235:
144  0 ret = 203;
145  0 break;
146  0 case 236:
147  0 ret = 204;
148  0 break;
149  0 case 237:
150  0 ret = 205;
151  0 break;
152  0 case 238:
153  0 ret = 206;
154  0 break;
155  0 case 239:
156  0 ret = 207;
157  0 break;
158  0 case 240:
159  0 ret = 208;
160  0 break;
161  0 case 241:
162  0 ret = 209;
163  0 break;
164  0 case 242:
165  0 ret = 210;
166  0 break;
167  0 case 243:
168  0 ret = 211;
169  0 break;
170  0 case 244:
171  0 ret = 212;
172  0 break;
173  0 case 245:
174  0 ret = 213;
175  0 break;
176  0 case 246:
177  0 ret = 214;
178  0 break;
179  0 case 248:
180  0 ret = 216;
181  0 break;
182  0 case 249:
183  0 ret = 217;
184  0 break;
185  0 case 250:
186  0 ret = 218;
187  0 break;
188  0 case 251:
189  0 ret = 219;
190  0 break;
191  0 case 252:
192  0 ret = 220;
193  0 break;
194  0 case 253:
195  0 ret = 221;
196  0 break;
197  0 case 254:
198  0 ret = 222;
199  0 break;
200  0 case 255:
201  0 ret = 376;
202  0 break;
203  0 case 257:
204  0 ret = 256;
205  0 break;
206  0 case 259:
207  0 ret = 258;
208  0 break;
209  0 case 261:
210  0 ret = 260;
211  0 break;
212  0 case 263:
213  0 ret = 262;
214  0 break;
215  0 case 265:
216  0 ret = 264;
217  0 break;
218  0 case 267:
219  0 ret = 266;
220  0 break;
221  0 case 269:
222  0 ret = 268;
223  0 break;
224  0 case 271:
225  0 ret = 270;
226  0 break;
227  0 case 273:
228  0 ret = 272;
229  0 break;
230  0 case 275:
231  0 ret = 274;
232  0 break;
233  0 case 277:
234  0 ret = 276;
235  0 break;
236  0 case 279:
237  0 ret = 278;
238  0 break;
239  0 case 281:
240  0 ret = 280;
241  0 break;
242  0 case 283:
243  0 ret = 282;
244  0 break;
245  0 case 285:
246  0 ret = 284;
247  0 break;
248  0 case 287:
249  0 ret = 286;
250  0 break;
251  0 case 289:
252  0 ret = 288;
253  0 break;
254  0 case 291:
255  0 ret = 290;
256  0 break;
257  0 case 293:
258  0 ret = 292;
259  0 break;
260  0 case 295:
261  0 ret = 294;
262  0 break;
263  0 case 297:
264  0 ret = 296;
265  0 break;
266  0 case 299:
267  0 ret = 298;
268  0 break;
269  0 case 301:
270  0 ret = 300;
271  0 break;
272  0 case 303:
273  0 ret = 302;
274  0 break;
275  0 case 305:
276  0 ret = 73;
277  0 break;
278  0 case 307:
279  0 ret = 306;
280  0 break;
281  0 case 309:
282  0 ret = 308;
283  0 break;
284  0 case 311:
285  0 ret = 310;
286  0 break;
287  0 case 314:
288  0 ret = 313;
289  0 break;
290  0 case 316:
291  0 ret = 315;
292  0 break;
293  0 case 318:
294  0 ret = 317;
295  0 break;
296  0 case 320:
297  0 ret = 319;
298  0 break;
299  0 case 322:
300  0 ret = 321;
301  0 break;
302  0 case 324:
303  0 ret = 323;
304  0 break;
305  0 case 326:
306  0 ret = 325;
307  0 break;
308  0 case 328:
309  0 ret = 327;
310  0 break;
311  0 case 331:
312  0 ret = 330;
313  0 break;
314  0 case 333:
315  0 ret = 332;
316  0 break;
317  0 case 335:
318  0 ret = 334;
319  0 break;
320  0 case 337:
321  0 ret = 336;
322  0 break;
323  0 case 339:
324  0 ret = 338;
325  0 break;
326  0 case 341:
327  0 ret = 340;
328  0 break;
329  0 case 343:
330  0 ret = 342;
331  0 break;
332  0 case 345:
333  0 ret = 344;
334  0 break;
335  0 case 347:
336  0 ret = 346;
337  0 break;
338  0 case 349:
339  0 ret = 348;
340  0 break;
341  0 case 351:
342  0 ret = 350;
343  0 break;
344  0 case 353:
345  0 ret = 352;
346  0 break;
347  0 case 355:
348  0 ret = 354;
349  0 break;
350  0 case 357:
351  0 ret = 356;
352  0 break;
353  0 case 359:
354  0 ret = 358;
355  0 break;
356  0 case 361:
357  0 ret = 360;
358  0 break;
359  0 case 363:
360  0 ret = 362;
361  0 break;
362  0 case 365:
363  0 ret = 364;
364  0 break;
365  0 case 367:
366  0 ret = 366;
367  0 break;
368  0 case 369:
369  0 ret = 368;
370  0 break;
371  0 case 371:
372  0 ret = 370;
373  0 break;
374  0 case 373:
375  0 ret = 372;
376  0 break;
377  0 case 375:
378  0 ret = 374;
379  0 break;
380  0 case 378:
381  0 ret = 377;
382  0 break;
383  0 case 380:
384  0 ret = 379;
385  0 break;
386  0 case 382:
387  0 ret = 381;
388  0 break;
389  0 case 383:
390  0 ret = 83;
391  0 break;
392  0 case 387:
393  0 ret = 386;
394  0 break;
395  0 case 389:
396  0 ret = 388;
397  0 break;
398  0 case 392:
399  0 ret = 391;
400  0 break;
401  0 case 396:
402  0 ret = 395;
403  0 break;
404  0 case 402:
405  0 ret = 401;
406  0 break;
407  0 case 409:
408  0 ret = 408;
409  0 break;
410  0 case 417:
411  0 ret = 416;
412  0 break;
413  0 case 419:
414  0 ret = 418;
415  0 break;
416  0 case 421:
417  0 ret = 420;
418  0 break;
419  0 case 424:
420  0 ret = 423;
421  0 break;
422  0 case 429:
423  0 ret = 428;
424  0 break;
425  0 case 432:
426  0 ret = 431;
427  0 break;
428  0 case 436:
429  0 ret = 435;
430  0 break;
431  0 case 438:
432  0 ret = 437;
433  0 break;
434  0 case 441:
435  0 ret = 440;
436  0 break;
437  0 case 445:
438  0 ret = 444;
439  0 break;
440  0 case 453:
441  0 ret = 452;
442  0 break;
443  0 case 454:
444  0 ret = 452;
445  0 break;
446  0 case 456:
447  0 ret = 455;
448  0 break;
449  0 case 457:
450  0 ret = 455;
451  0 break;
452  0 case 459:
453  0 ret = 458;
454  0 break;
455  0 case 460:
456  0 ret = 458;
457  0 break;
458  0 case 462:
459  0 ret = 461;
460  0 break;
461  0 case 464:
462  0 ret = 463;
463  0 break;
464  0 case 466:
465  0 ret = 465;
466  0 break;
467  0 case 468:
468  0 ret = 467;
469  0 break;
470  0 case 470:
471  0 ret = 469;
472  0 break;
473  0 case 472:
474  0 ret = 471;
475  0 break;
476  0 case 474:
477  0 ret = 473;
478  0 break;
479  0 case 476:
480  0 ret = 475;
481  0 break;
482  0 case 479:
483  0 ret = 478;
484  0 break;
485  0 case 481:
486  0 ret = 480;
487  0 break;
488  0 case 483:
489  0 ret = 482;
490  0 break;
491  0 case 485:
492  0 ret = 484;
493  0 break;
494  0 case 487:
495  0 ret = 486;
496  0 break;
497  0 case 489:
498  0 ret = 488;
499  0 break;
500  0 case 491:
501  0 ret = 490;
502  0 break;
503  0 case 493:
504  0 ret = 492;
505  0 break;
506  0 case 495:
507  0 ret = 494;
508  0 break;
509  0 case 498:
510  0 ret = 497;
511  0 break;
512  0 case 499:
513  0 ret = 497;
514  0 break;
515  0 case 501:
516  0 ret = 500;
517  0 break;
518  0 case 507:
519  0 ret = 506;
520  0 break;
521  0 case 509:
522  0 ret = 508;
523  0 break;
524  0 case 511:
525  0 ret = 510;
526  0 break;
527  0 case 513:
528  0 ret = 512;
529  0 break;
530  0 case 515:
531  0 ret = 514;
532  0 break;
533  0 case 517:
534  0 ret = 516;
535  0 break;
536  0 case 519:
537  0 ret = 518;
538  0 break;
539  0 case 521:
540  0 ret = 520;
541  0 break;
542  0 case 523:
543  0 ret = 522;
544  0 break;
545  0 case 525:
546  0 ret = 524;
547  0 break;
548  0 case 527:
549  0 ret = 526;
550  0 break;
551  0 case 529:
552  0 ret = 528;
553  0 break;
554  0 case 531:
555  0 ret = 530;
556  0 break;
557  0 case 533:
558  0 ret = 532;
559  0 break;
560  0 case 535:
561  0 ret = 534;
562  0 break;
563  0 case 595:
564  0 ret = 385;
565  0 break;
566  0 case 596:
567  0 ret = 390;
568  0 break;
569  0 case 598:
570  0 ret = 393;
571  0 break;
572  0 case 599:
573  0 ret = 394;
574  0 break;
575  0 case 600:
576  0 ret = 398;
577  0 break;
578  0 case 601:
579  0 ret = 399;
580  0 break;
581  0 case 603:
582  0 ret = 400;
583  0 break;
584  0 case 608:
585  0 ret = 403;
586  0 break;
587  0 case 611:
588  0 ret = 404;
589  0 break;
590  0 case 616:
591  0 ret = 407;
592  0 break;
593  0 case 617:
594  0 ret = 406;
595  0 break;
596  0 case 623:
597  0 ret = 412;
598  0 break;
599  0 case 626:
600  0 ret = 413;
601  0 break;
602  0 case 643:
603  0 ret = 425;
604  0 break;
605  0 case 648:
606  0 ret = 430;
607  0 break;
608  0 case 650:
609  0 ret = 433;
610  0 break;
611  0 case 651:
612  0 ret = 434;
613  0 break;
614  0 case 658:
615  0 ret = 439;
616  0 break;
617  0 case 940:
618  0 ret = 902;
619  0 break;
620  0 case 941:
621  0 ret = 904;
622  0 break;
623  0 case 942:
624  0 ret = 905;
625  0 break;
626  0 case 943:
627  0 ret = 906;
628  0 break;
629  0 case 945:
630  0 ret = 913;
631  0 break;
632  0 case 946:
633  0 ret = 914;
634  0 break;
635  0 case 947:
636  0 ret = 915;
637  0 break;
638  0 case 948:
639  0 ret = 916;
640  0 break;
641  0 case 949:
642  0 ret = 917;
643  0 break;
644  0 case 950:
645  0 ret = 918;
646  0 break;
647  0 case 951:
648  0 ret = 919;
649  0 break;
650  0 case 952:
651  0 ret = 920;
652  0 break;
653  0 case 953:
654  0 ret = 921;
655  0 break;
656  0 case 954:
657  0 ret = 922;
658  0 break;
659  0 case 955:
660  0 ret = 923;
661  0 break;
662  0 case 956:
663  0 ret = 924;
664  0 break;
665  0 case 957:
666  0 ret = 925;
667  0 break;
668  0 case 958:
669  0 ret = 926;
670  0 break;
671  0 case 959:
672  0 ret = 927;
673  0 break;
674  0 case 960:
675  0 ret = 928;
676  0 break;
677  0 case 961:
678  0 ret = 929;
679  0 break;
680  0 case 963:
681  0 ret = 931;
682  0 break;
683  0 case 964:
684  0 ret = 932;
685  0 break;
686  0 case 965:
687  0 ret = 933;
688  0 break;
689  0 case 966:
690  0 ret = 934;
691  0 break;
692  0 case 967:
693  0 ret = 935;
694  0 break;
695  0 case 968:
696  0 ret = 936;
697  0 break;
698  0 case 969:
699  0 ret = 937;
700  0 break;
701  0 case 970:
702  0 ret = 938;
703  0 break;
704  0 case 971:
705  0 ret = 939;
706  0 break;
707  0 case 972:
708  0 ret = 908;
709  0 break;
710  0 case 973:
711  0 ret = 910;
712  0 break;
713  0 case 974:
714  0 ret = 911;
715  0 break;
716  0 case 976:
717  0 ret = 914;
718  0 break;
719  0 case 977:
720  0 ret = 920;
721  0 break;
722  0 case 981:
723  0 ret = 934;
724  0 break;
725  0 case 982:
726  0 ret = 928;
727  0 break;
728  0 case 995:
729  0 ret = 994;
730  0 break;
731  0 case 997:
732  0 ret = 996;
733  0 break;
734  0 case 999:
735  0 ret = 998;
736  0 break;
737  0 case 1001:
738  0 ret = 1000;
739  0 break;
740  0 case 1003:
741  0 ret = 1002;
742  0 break;
743  0 case 1005:
744  0 ret = 1004;
745  0 break;
746  0 case 1007:
747  0 ret = 1006;
748  0 break;
749  0 case 1008:
750  0 ret = 922;
751  0 break;
752  0 case 1009:
753  0 ret = 929;
754  0 break;
755  0 case 1072:
756  0 ret = 1040;
757  0 break;
758  0 case 1073:
759  0 ret = 1041;
760  0 break;
761  0 case 1074:
762  0 ret = 1042;
763  0 break;
764  0 case 1075:
765  0 ret = 1043;
766  0 break;
767  0 case 1076:
768  0 ret = 1044;
769  0 break;
770  0 case 1077:
771  0 ret = 1045;
772  0 break;
773  0 case 1078:
774  0 ret = 1046;
775  0 break;
776  0 case 1079:
777  0 ret = 1047;
778  0 break;
779  0 case 1080:
780  0 ret = 1048;
781  0 break;
782  0 case 1081:
783  0 ret = 1049;
784  0 break;
785  0 case 1082:
786  0 ret = 1050;
787  0 break;
788  0 case 1083:
789  0 ret = 1051;
790  0 break;
791  0 case 1084:
792  0 ret = 1052;
793  0 break;
794  0 case 1085:
795  0 ret = 1053;
796  0 break;
797  0 case 1086:
798  0 ret = 1054;
799  0 break;
800  0 case 1087:
801  0 ret = 1055;
802  0 break;
803  0 case 1088:
804  0 ret = 1056;
805  0 break;
806  0 case 1089:
807  0 ret = 1057;
808  0 break;
809  0 case 1090:
810  0 ret = 1058;
811  0 break;
812  0 case 1091:
813  0 ret = 1059;
814  0 break;
815  0 case 1092:
816  0 ret = 1060;
817  0 break;
818  0 case 1093:
819  0 ret = 1061;
820  0 break;
821  0 case 1094:
822  0 ret = 1062;
823  0 break;
824  0 case 1095:
825  0 ret = 1063;
826  0 break;
827  0 case 1096:
828  0 ret = 1064;
829  0 break;
830  0 case 1097:
831  0 ret = 1065;
832  0 break;
833  0 case 1098:
834  0 ret = 1066;
835  0 break;
836  0 case 1099:
837  0 ret = 1067;
838  0 break;
839  0 case 1100:
840  0 ret = 1068;
841  0 break;
842  0 case 1101:
843  0 ret = 1069;
844  0 break;
845  0 case 1102:
846  0 ret = 1070;
847  0 break;
848  0 case 1103:
849  0 ret = 1071;
850  0 break;
851  0 case 1105:
852  0 ret = 1025;
853  0 break;
854  0 case 1106:
855  0 ret = 1026;
856  0 break;
857  0 case 1107:
858  0 ret = 1027;
859  0 break;
860  0 case 1108:
861  0 ret = 1028;
862  0 break;
863  0 case 1109:
864  0 ret = 1029;
865  0 break;
866  0 case 1110:
867  0 ret = 1030;
868  0 break;
869  0 case 1111:
870  0 ret = 1031;
871  0 break;
872  0 case 1112:
873  0 ret = 1032;
874  0 break;
875  0 case 1113:
876  0 ret = 1033;
877  0 break;
878  0 case 1114:
879  0 ret = 1034;
880  0 break;
881  0 case 1115:
882  0 ret = 1035;
883  0 break;
884  0 case 1116:
885  0 ret = 1036;
886  0 break;
887  0 case 1118:
888  0 ret = 1038;
889  0 break;
890  0 case 1119:
891  0 ret = 1039;
892  0 break;
893  0 case 1121:
894  0 ret = 1120;
895  0 break;
896  0 case 1123:
897  0 ret = 1122;
898  0 break;
899  0 case 1125:
900  0 ret = 1124;
901  0 break;
902  0 case 1127:
903  0 ret = 1126;
904  0 break;
905  0 case 1129:
906  0 ret = 1128;
907  0 break;
908  0 case 1131:
909  0 ret = 1130;
910  0 break;
911  0 case 1133:
912  0 ret = 1132;
913  0 break;
914  0 case 1135:
915  0 ret = 1134;
916  0 break;
917  0 case 1137:
918  0 ret = 1136;
919  0 break;
920  0 case 1139:
921  0 ret = 1138;
922  0 break;
923  0 case 1141:
924  0 ret = 1140;
925  0 break;
926  0 case 1143:
927  0 ret = 1142;
928  0 break;
929  0 case 1145:
930  0 ret = 1144;
931  0 break;
932  0 case 1147:
933  0 ret = 1146;
934  0 break;
935  0 case 1149:
936  0 ret = 1148;
937  0 break;
938  0 case 1151:
939  0 ret = 1150;
940  0 break;
941  0 case 1153:
942  0 ret = 1152;
943  0 break;
944  0 case 1169:
945  0 ret = 1168;
946  0 break;
947  0 case 1171:
948  0 ret = 1170;
949  0 break;
950  0 case 1173:
951  0 ret = 1172;
952  0 break;
953  0 case 1175:
954  0 ret = 1174;
955  0 break;
956  0 case 1177:
957  0 ret = 1176;
958  0 break;
959  0 case 1179:
960  0 ret = 1178;
961  0 break;
962  0 case 1181:
963  0 ret = 1180;
964  0 break;
965  0 case 1183:
966  0 ret = 1182;
967  0 break;
968  0 case 1185:
969  0 ret = 1184;
970  0 break;
971  0 case 1187:
972  0 ret = 1186;
973  0 break;
974  0 case 1189:
975  0 ret = 1188;
976  0 break;
977  0 case 1191:
978  0 ret = 1190;
979  0 break;
980  0 case 1193:
981  0 ret = 1192;
982  0 break;
983  0 case 1195:
984  0 ret = 1194;
985  0 break;
986  0 case 1197:
987  0 ret = 1196;
988  0 break;
989  0 case 1199:
990  0 ret = 1198;
991  0 break;
992  0 case 1201:
993  0 ret = 1200;
994  0 break;
995  0 case 1203:
996  0 ret = 1202;
997  0 break;
998  0 case 1205:
999  0 ret = 1204;
1000  0 break;
1001  0 case 1207:
1002  0 ret = 1206;
1003  0 break;
1004  0 case 1209:
1005  0 ret = 1208;
1006  0 break;
1007  0 case 1211:
1008  0 ret = 1210;
1009  0 break;
1010  0 case 1213:
1011  0 ret = 1212;
1012  0 break;
1013  0 case 1215:
1014  0 ret = 1214;
1015  0 break;
1016  0 case 1218:
1017  0 ret = 1217;
1018  0 break;
1019  0 case 1220:
1020  0 ret = 1219;
1021  0 break;
1022  0 case 1224:
1023  0 ret = 1223;
1024  0 break;
1025  0 case 1228:
1026  0 ret = 1227;
1027  0 break;
1028  0 case 1233:
1029  0 ret = 1232;
1030  0 break;
1031  0 case 1235:
1032  0 ret = 1234;
1033  0 break;
1034  0 case 1237:
1035  0 ret = 1236;
1036  0 break;
1037  0 case 1239:
1038  0 ret = 1238;
1039  0 break;
1040  0 case 1241:
1041  0 ret = 1240;
1042  0 break;
1043  0 case 1243:
1044  0 ret = 1242;
1045  0 break;
1046  0 case 1245:
1047  0 ret = 1244;
1048  0 break;
1049  0 case 1247:
1050  0 ret = 1246;
1051  0 break;
1052  0 case 1249:
1053  0 ret = 1248;
1054  0 break;
1055  0 case 1251:
1056  0 ret = 1250;
1057  0 break;
1058  0 case 1253:
1059  0 ret = 1252;
1060  0 break;
1061  0 case 1255:
1062  0 ret = 1254;
1063  0 break;
1064  0 case 1257:
1065  0 ret = 1256;
1066  0 break;
1067  0 case 1259:
1068  0 ret = 1258;
1069  0 break;
1070  0 case 1263:
1071  0 ret = 1262;
1072  0 break;
1073  0 case 1265:
1074  0 ret = 1264;
1075  0 break;
1076  0 case 1267:
1077  0 ret = 1266;
1078  0 break;
1079  0 case 1269:
1080  0 ret = 1268;
1081  0 break;
1082  0 case 1273:
1083  0 ret = 1272;
1084  0 break;
1085  0 case 1377:
1086  0 ret = 1329;
1087  0 break;
1088  0 case 1378:
1089  0 ret = 1330;
1090  0 break;
1091  0 case 1379:
1092  0 ret = 1331;
1093  0 break;
1094  0 case 1380:
1095  0 ret = 1332;
1096  0 break;
1097  0 case 1381:
1098  0 ret = 1333;
1099  0 break;
1100  0 case 1382:
1101  0 ret = 1334;
1102  0 break;
1103  0 case 1383:
1104  0 ret = 1335;
1105  0 break;
1106  0 case 1384:
1107  0 ret = 1336;
1108  0 break;
1109  0 case 1385:
1110  0 ret = 1337;
1111  0 break;
1112  0 case 1386:
1113  0 ret = 1338;
1114  0 break;
1115  0 case 1387:
1116  0 ret = 1339;
1117  0 break;
1118  0 case 1388:
1119  0 ret = 1340;
1120  0 break;
1121  0 case 1389:
1122  0 ret = 1341;
1123  0 break;
1124  0 case 1390:
1125  0 ret = 1342;
1126  0 break;
1127  0 case 1391:
1128  0 ret = 1343;
1129  0 break;
1130  0 case 1392:
1131  0 ret = 1344;
1132  0 break;
1133  0 case 1393:
1134  0 ret = 1345;
1135  0 break;
1136  0 case 1394:
1137  0 ret = 1346;
1138  0 break;
1139  0 case 1395:
1140  0 ret = 1347;
1141  0 break;
1142  0 case 1396:
1143  0 ret = 1348;
1144  0 break;
1145  0 case 1397:
1146  0 ret = 1349;
1147  0 break;
1148  0 case 1398:
1149  0 ret = 1350;
1150  0 break;
1151  0 case 1399:
1152  0 ret = 1351;
1153  0 break;
1154  0 case 1400:
1155  0 ret = 1352;
1156  0 break;
1157  0 case 1401:
1158  0 ret = 1353;
1159  0 break;
1160  0 case 1402:
1161  0 ret = 1354;
1162  0 break;
1163  0 case 1403:
1164  0 ret = 1355;
1165  0 break;
1166  0 case 1404:
1167  0 ret = 1356;
1168  0 break;
1169  0 case 1405:
1170  0 ret = 1357;
1171  0 break;
1172  0 case 1406:
1173  0 ret = 1358;
1174  0 break;
1175  0 case 1407:
1176  0 ret = 1359;
1177  0 break;
1178  0 case 1408:
1179  0 ret = 1360;
1180  0 break;
1181  0 case 1409:
1182  0 ret = 1361;
1183  0 break;
1184  0 case 1410:
1185  0 ret = 1362;
1186  0 break;
1187  0 case 1411:
1188  0 ret = 1363;
1189  0 break;
1190  0 case 1412:
1191  0 ret = 1364;
1192  0 break;
1193  0 case 1413:
1194  0 ret = 1365;
1195  0 break;
1196  0 case 1414:
1197  0 ret = 1366;
1198  0 break;
1199  0 case 7681:
1200  0 ret = 7680;
1201  0 break;
1202  0 case 7683:
1203  0 ret = 7682;
1204  0 break;
1205  0 case 7685:
1206  0 ret = 7684;
1207  0 break;
1208  0 case 7687:
1209  0 ret = 7686;
1210  0 break;
1211  0 case 7689:
1212  0 ret = 7688;
1213  0 break;
1214  0 case 7691:
1215  0 ret = 7690;
1216  0 break;
1217  0 case 7693:
1218  0 ret = 7692;
1219  0 break;
1220  0 case 7695:
1221  0 ret = 7694;
1222  0 break;
1223  0 case 7697:
1224  0 ret = 7696;
1225  0 break;
1226  0 case 7699:
1227  0 ret = 7698;
1228  0 break;
1229  0 case 7701:
1230  0 ret = 7700;
1231  0 break;
1232  0 case 7703:
1233  0 ret = 7702;
1234  0 break;
1235  0 case 7705:
1236  0 ret = 7704;
1237  0 break;
1238  0 case 7707:
1239  0 ret = 7706;
1240  0 break;
1241  0 case 7709:
1242  0 ret = 7708;
1243  0 break;
1244  0 case 7711:
1245  0 ret = 7710;
1246  0 break;
1247  0 case 7713:
1248  0 ret = 7712;
1249  0 break;
1250  0 case 7715:
1251  0 ret = 7714;
1252  0 break;
1253  0 case 7717:
1254  0 ret = 7716;
1255  0 break;
1256  0 case 7719:
1257  0 ret = 7718;
1258  0 break;
1259  0 case 7721:
1260  0 ret = 7720;
1261  0 break;
1262  0 case 7723:
1263  0 ret = 7722;
1264  0 break;
1265  0 case 7725:
1266  0 ret = 7724;
1267  0 break;
1268  0 case 7727:
1269  0 ret = 7726;
1270  0 break;
1271  0 case 7729:
1272  0 ret = 7728;
1273  0 break;
1274  0 case 7731:
1275  0 ret = 7730;
1276  0 break;
1277  0 case 7733:
1278  0 ret = 7732;
1279  0 break;
1280  0 case 7735:
1281  0 ret = 7734;
1282  0 break;
1283  0 case 7737:
1284  0 ret = 7736;
1285  0 break;
1286  0 case 7739:
1287  0 ret = 7738;
1288  0 break;
1289  0 case 7741:
1290  0 ret = 7740;
1291  0 break;
1292  0 case 7743:
1293  0 ret = 7742;
1294  0 break;
1295  0 case 7745:
1296  0 ret = 7744;
1297  0 break;
1298  0 case 7747:
1299  0 ret = 7746;
1300  0 break;
1301  0 case 7749:
1302  0 ret = 7748;
1303  0 break;
1304  0 case 7751:
1305  0 ret = 7750;
1306  0 break;
1307  0 case 7753:
1308  0 ret = 7752;
1309  0 break;
1310  0 case 7755:
1311  0 ret = 7754;
1312  0 break;
1313  0 case 7757:
1314  0 ret = 7756;
1315  0 break;
1316  0 case 7759:
1317  0 ret = 7758;
1318  0 break;
1319  0 case 7761:
1320  0 ret = 7760;
1321  0 break;
1322  0 case 7763:
1323  0 ret = 7762;
1324  0 break;
1325  0 case 7765:
1326  0 ret = 7764;
1327  0 break;
1328  0 case 7767:
1329  0 ret = 7766;
1330  0 break;
1331  0 case 7769:
1332  0 ret = 7768;
1333  0 break;
1334  0 case 7771:
1335  0 ret = 7770;
1336  0 break;
1337  0 case 7773:
1338  0 ret = 7772;
1339  0 break;
1340  0 case 7775:
1341  0 ret = 7774;
1342  0 break;
1343  0 case 7777:
1344  0 ret = 7776;
1345  0 break;
1346  0 case 7779:
1347  0 ret = 7778;
1348  0 break;
1349  0 case 7781:
1350  0 ret = 7780;
1351  0 break;
1352  0 case 7783:
1353  0 ret = 7782;
1354  0 break;
1355  0 case 7785:
1356  0 ret = 7784;
1357  0 break;
1358  0 case 7787:
1359  0 ret = 7786;
1360  0 break;
1361  0 case 7789:
1362  0 ret = 7788;
1363  0 break;
1364  0 case 7791:
1365  0 ret = 7790;
1366  0 break;
1367  0 case 7793:
1368  0 ret = 7792;
1369  0 break;
1370  0 case 7795:
1371  0 ret = 7794;
1372  0 break;
1373  0 case 7797:
1374  0 ret = 7796;
1375  0 break;
1376  0 case 7799:
1377  0 ret = 7798;
1378  0 break;
1379  0 case 7801:
1380  0 ret = 7800;
1381  0 break;
1382  0 case 7803:
1383  0 ret = 7802;
1384  0 break;
1385  0 case 7805:
1386  0 ret = 7804;
1387  0 break;
1388  0 case 7807:
1389  0 ret = 7806;
1390  0 break;
1391  0 case 7809:
1392  0 ret = 7808;
1393  0 break;
1394  0 case 7811:
1395  0 ret = 7810;
1396  0 break;
1397  0 case 7813:
1398  0 ret = 7812;
1399  0 break;
1400  0 case 7815:
1401  0 ret = 7814;
1402  0 break;
1403  0 case 7817:
1404  0 ret = 7816;
1405  0 break;
1406  0 case 7819:
1407  0 ret = 7818;
1408  0 break;
1409  0 case 7821:
1410  0 ret = 7820;
1411  0 break;
1412  0 case 7823:
1413  0 ret = 7822;
1414  0 break;
1415  0 case 7825:
1416  0 ret = 7824;
1417  0 break;
1418  0 case 7827:
1419  0 ret = 7826;
1420  0 break;
1421  0 case 7829:
1422  0 ret = 7828;
1423  0 break;
1424  0 case 7841:
1425  0 ret = 7840;
1426  0 break;
1427  0 case 7843:
1428  0 ret = 7842;
1429  0 break;
1430  0 case 7845:
1431  0 ret = 7844;
1432  0 break;
1433  0 case 7847:
1434  0 ret = 7846;
1435  0 break;
1436  0 case 7849:
1437  0 ret = 7848;
1438  0 break;
1439  0 case 7851:
1440  0 ret = 7850;
1441  0 break;
1442  0 case 7853:
1443  0 ret = 7852;
1444  0 break;
1445  0 case 7855:
1446  0 ret = 7854;
1447  0 break;
1448  0 case 7857:
1449  0 ret = 7856;
1450  0 break;
1451  0 case 7859:
1452  0 ret = 7858;
1453  0 break;
1454  0 case 7861:
1455  0 ret = 7860;
1456  0 break;
1457  0 case 7863:
1458  0 ret = 7862;
1459  0 break;
1460  0 case 7865:
1461  0 ret = 7864;
1462  0 break;
1463  0 case 7867:
1464  0 ret = 7866;
1465  0 break;
1466  0 case 7869:
1467  0 ret = 7868;
1468  0 break;
1469  0 case 7871:
1470  0 ret = 7870;
1471  0 break;
1472  0 case 7873:
1473  0 ret = 7872;
1474  0 break;
1475  0 case 7875:
1476  0 ret = 7874;
1477  0 break;
1478  0 case 7877:
1479  0 ret = 7876;
1480  0 break;
1481  0 case 7879:
1482  0 ret = 7878;
1483  0 break;
1484  0 case 7881:
1485  0 ret = 7880;
1486  0 break;
1487  0 case 7883:
1488  0 ret = 7882;
1489  0 break;
1490  0 case 7885:
1491  0 ret = 7884;
1492  0 break;
1493  0 case 7887:
1494  0 ret = 7886;
1495  0 break;
1496  0 case 7889:
1497  0 ret = 7888;
1498  0 break;
1499  0 case 7891:
1500  0 ret = 7890;
1501  0 break;
1502  0 case 7893:
1503  0 ret = 7892;
1504  0 break;
1505  0 case 7895:
1506  0 ret = 7894;
1507  0 break;
1508  0 case 7897:
1509  0 ret = 7896;
1510  0 break;
1511  0 case 7899:
1512  0 ret = 7898;
1513  0 break;
1514  0 case 7901:
1515  0 ret = 7900;
1516  0 break;
1517  0 case 7903:
1518  0 ret = 7902;
1519  0 break;
1520  0 case 7905:
1521  0 ret = 7904;
1522  0 break;
1523  0 case 7907:
1524  0 ret = 7906;
1525  0 break;
1526  0 case 7909:
1527  0 ret = 7908;
1528  0 break;
1529  0 case 7911:
1530  0 ret = 7910;
1531  0 break;
1532  0 case 7913:
1533  0 ret = 7912;
1534  0 break;
1535  0 case 7915:
1536  0 ret = 7914;
1537  0 break;
1538  0 case 7917:
1539  0 ret = 7916;
1540  0 break;
1541  0 case 7919:
1542  0 ret = 7918;
1543  0 break;
1544  0 case 7921:
1545  0 ret = 7920;
1546  0 break;
1547  0 case 7923:
1548  0 ret = 7922;
1549  0 break;
1550  0 case 7925:
1551  0 ret = 7924;
1552  0 break;
1553  0 case 7927:
1554  0 ret = 7926;
1555  0 break;
1556  0 case 7929:
1557  0 ret = 7928;
1558  0 break;
1559  0 case 7936:
1560  0 ret = 7944;
1561  0 break;
1562  0 case 7937:
1563  0 ret = 7945;
1564  0 break;
1565  0 case 7938:
1566  0 ret = 7946;
1567  0 break;
1568  0 case 7939:
1569  0 ret = 7947;
1570  0 break;
1571  0 case 7940:
1572  0 ret = 7948;
1573  0 break;
1574  0 case 7941:
1575  0 ret = 7949;
1576  0 break;
1577  0 case 7942:
1578  0 ret = 7950;
1579  0 break;
1580  0 case 7943:
1581  0 ret = 7951;
1582  0 break;
1583  0 case 7952:
1584  0 ret = 7960;
1585  0 break;
1586  0 case 7953:
1587  0 ret = 7961;
1588  0 break;
1589  0 case 7954:
1590  0 ret = 7962;
1591  0 break;
1592  0 case 7955:
1593  0 ret = 7963;
1594  0 break;
1595  0 case 7956:
1596  0 ret = 7964;
1597  0 break;
1598  0 case 7957:
1599  0 ret = 7965;
1600  0 break;
1601  0 case 7968:
1602  0 ret = 7976;
1603  0 break;
1604  0 case 7969:
1605  0 ret = 7977;
1606  0 break;
1607  0 case 7970:
1608  0 ret = 7978;
1609  0 break;
1610  0 case 7971:
1611  0 ret = 7979;
1612  0 break;
1613  0 case 7972:
1614  0 ret = 7980;
1615  0 break;
1616  0 case 7973:
1617  0 ret = 7981;
1618  0 break;
1619  0 case 7974:
1620  0 ret = 7982;
1621  0 break;
1622  0 case 7975:
1623  0 ret = 7983;
1624  0 break;
1625  0 case 7984:
1626  0 ret = 7992;
1627  0 break;
1628  0 case 7985:
1629  0 ret = 7993;
1630  0 break;
1631  0 case 7986:
1632  0 ret = 7994;
1633  0 break;
1634  0 case 7987:
1635  0 ret = 7995;
1636  0 break;
1637  0 case 7988:
1638  0 ret = 7996;
1639  0 break;
1640  0 case 7989:
1641  0 ret = 7997;
1642  0 break;
1643  0 case 7990:
1644  0 ret = 7998;
1645  0 break;
1646  0 case 7991:
1647  0 ret = 7999;
1648  0 break;
1649  0 case 8000:
1650  0 ret = 8008;
1651  0 break;
1652  0 case 8001:
1653  0 ret = 8009;
1654  0 break;
1655  0 case 8002:
1656  0 ret = 8010;
1657  0 break;
1658  0 case 8003:
1659  0 ret = 8011;
1660  0 break;
1661  0 case 8004:
1662  0 ret = 8012;
1663  0 break;
1664  0 case 8005:
1665  0 ret = 8013;
1666  0 break;
1667  0 case 8017:
1668  0 ret = 8025;
1669  0 break;
1670  0 case 8019:
1671  0 ret = 8027;
1672  0 break;
1673  0 case 8021:
1674  0 ret = 8029;
1675  0 break;
1676  0 case 8023:
1677  0 ret = 8031;
1678  0 break;
1679  0 case 8032:
1680  0 ret = 8040;
1681  0 break;
1682  0 case 8033:
1683  0 ret = 8041;
1684  0 break;
1685  0 case 8034:
1686  0 ret = 8042;
1687  0 break;
1688  0 case 8035:
1689  0 ret = 8043;
1690  0 break;
1691  0 case 8036:
1692  0 ret = 8044;
1693  0 break;
1694  0 case 8037:
1695  0 ret = 8045;
1696  0 break;
1697  0 case 8038:
1698  0 ret = 8046;
1699  0 break;
1700  0 case 8039:
1701  0 ret = 8047;
1702  0 break;
1703  0 case 8048:
1704  0 ret = 8122;
1705  0 break;
1706  0 case 8049:
1707  0 ret = 8123;
1708  0 break;
1709  0 case 8050:
1710  0 ret = 8136;
1711  0 break;
1712  0 case 8051:
1713  0 ret = 8137;
1714  0 break;
1715  0 case 8052:
1716  0 ret = 8138;
1717  0 break;
1718  0 case 8053:
1719  0 ret = 8139;
1720  0 break;
1721  0 case 8054:
1722  0 ret = 8154;
1723  0 break;
1724  0 case 8055:
1725  0 ret = 8155;
1726  0 break;
1727  0 case 8056:
1728  0 ret = 8184;
1729  0 break;
1730  0 case 8057:
1731  0 ret = 8185;
1732  0 break;
1733  0 case 8058:
1734  0 ret = 8170;
1735  0 break;
1736  0 case 8059:
1737  0 ret = 8171;
1738  0 break;
1739  0 case 8060:
1740  0 ret = 8186;
1741  0 break;
1742  0 case 8061:
1743  0 ret = 8187;
1744  0 break;
1745  0 case 8064:
1746  0 ret = 8072;
1747  0 break;
1748  0 case 8065:
1749  0 ret = 8073;
1750  0 break;
1751  0 case 8066:
1752  0 ret = 8074;
1753  0 break;
1754  0 case 8067:
1755  0 ret = 8075;
1756  0 break;
1757  0 case 8068:
1758  0 ret = 8076;
1759  0 break;
1760  0 case 8069:
1761  0 ret = 8077;
1762  0 break;
1763  0 case 8070:
1764  0 ret = 8078;
1765  0 break;
1766  0 case 8071:
1767  0 ret = 8079;
1768  0 break;
1769  0 case 8080:
1770  0 ret = 8088;
1771  0 break;
1772  0 case 8081:
1773  0 ret = 8089;
1774  0 break;
1775  0 case 8082:
1776  0 ret = 8090;
1777  0 break;
1778  0 case 8083:
1779  0 ret = 8091;
1780  0 break;
1781  0 case 8084:
1782  0 ret = 8092;
1783  0 break;
1784  0 case 8085:
1785  0 ret = 8093;
1786  0 break;
1787  0 case 8086:
1788  0 ret = 8094;
1789  0 break;
1790  0 case 8087:
1791  0 ret = 8095;
1792  0 break;
1793  0 case 8096:
1794  0 ret = 8104;
1795  0 break;
1796  0 case 8097:
1797  0 ret = 8105;
1798  0 break;
1799  0 case 8098:
1800  0 ret = 8106;
1801  0 break;
1802  0 case 8099:
1803  0 ret = 8107;
1804  0 break;
1805  0 case 8100:
1806  0 ret = 8108;
1807  0 break;
1808  0 case 8101:
1809  0 ret = 8109;
1810  0 break;
1811  0 case 8102:
1812  0 ret = 8110;
1813  0 break;
1814  0 case 8103:
1815  0 ret = 8111;
1816  0 break;
1817  0 case 8112:
1818  0 ret = 8120;
1819  0 break;
1820  0 case 8113:
1821  0 ret = 8121;
1822  0 break;
1823  0 case 8115:
1824  0 ret = 8124;
1825  0 break;
1826  0 case 8131:
1827  0 ret = 8140;
1828  0 break;
1829  0 case 8144:
1830  0 ret = 8152;
1831  0 break;
1832  0 case 8145:
1833  0 ret = 8153;
1834  0 break;
1835  0 case 8160:
1836  0 ret = 8168;
1837  0 break;
1838  0 case 8161:
1839  0 ret = 8169;
1840  0 break;
1841  0 case 8165:
1842  0 ret = 8172;
1843  0 break;
1844  0 case 8179:
1845  0 ret = 8188;
1846  0 break;
1847  0 case 8560:
1848  0 ret = 8544;
1849  0 break;
1850  0 case 8561:
1851  0 ret = 8545;
1852  0 break;
1853  0 case 8562:
1854  0 ret = 8546;
1855  0 break;
1856  0 case 8563:
1857  0 ret = 8547;
1858  0 break;
1859  0 case 8564:
1860  0 ret = 8548;
1861  0 break;
1862  0 case 8565:
1863  0 ret = 8549;
1864  0 break;
1865  0 case 8566:
1866  0 ret = 8550;
1867  0 break;
1868  0 case 8567:
1869  0 ret = 8551;
1870  0 break;
1871  0 case 8568:
1872  0 ret = 8552;
1873  0 break;
1874  0 case 8569:
1875  0 ret = 8553;
1876  0 break;
1877  0 case 8570:
1878  0 ret = 8554;
1879  0 break;
1880  0 case 8571:
1881  0 ret = 8555;
1882  0 break;
1883  0 case 8572:
1884  0 ret = 8556;
1885  0 break;
1886  0 case 8573:
1887  0 ret = 8557;
1888  0 break;
1889  0 case 8574:
1890  0 ret = 8558;
1891  0 break;
1892  0 case 8575:
1893  0 ret = 8559;
1894  0 break;
1895  0 case 9424:
1896  0 ret = 9398;
1897  0 break;
1898  0 case 9425:
1899  0 ret = 9399;
1900  0 break;
1901  0 case 9426:
1902  0 ret = 9400;
1903  0 break;
1904  0 case 9427:
1905  0 ret = 9401;
1906  0 break;
1907  0 case 9428:
1908  0 ret = 9402;
1909  0 break;
1910  0 case 9429:
1911  0 ret = 9403;
1912  0 break;
1913  0 case 9430:
1914  0 ret = 9404;
1915  0 break;
1916  0 case 9431:
1917  0 ret = 9405;
1918  0 break;
1919  0 case 9432:
1920  0 ret = 9406;
1921  0 break;
1922  0 case 9433:
1923  0 ret = 9407;
1924  0 break;
1925  0 case 9434:
1926  0 ret = 9408;
1927  0 break;
1928  0 case 9435:
1929  0 ret = 9409;
1930  0 break;
1931  0 case 9436:
1932  0 ret = 9410;
1933  0 break;
1934  0 case 9437:
1935  0 ret = 9411;
1936  0 break;
1937  0 case 9438:
1938  0 ret = 9412;
1939  0 break;
1940  0 case 9439:
1941  0 ret = 9413;
1942  0 break;
1943  0 case 9440:
1944  0 ret = 9414;
1945  0 break;
1946  0 case 9441:
1947  0 ret = 9415;
1948  0 break;
1949  0 case 9442:
1950  0 ret = 9416;
1951  0 break;
1952  0 case 9443:
1953  0 ret = 9417;
1954  0 break;
1955  0 case 9444:
1956  0 ret = 9418;
1957  0 break;
1958  0 case 9445:
1959  0 ret = 9419;
1960  0 break;
1961  0 case 9446:
1962  0 ret = 9420;
1963  0 break;
1964  0 case 9447:
1965  0 ret = 9421;
1966  0 break;
1967  0 case 9448:
1968  0 ret = 9422;
1969  0 break;
1970  0 case 9449:
1971  0 ret = 9423;
1972  0 break;
1973  0 case 65345:
1974  0 ret = 65313;
1975  0 break;
1976  0 case 65346:
1977  0 ret = 65314;
1978  0 break;
1979  0 case 65347:
1980  0 ret = 65315;
1981  0 break;
1982  0 case 65348:
1983  0 ret = 65316;
1984  0 break;
1985  0 case 65349:
1986  0 ret = 65317;
1987  0 break;
1988  0 case 65350:
1989  0 ret = 65318;
1990  0 break;
1991  0 case 65351:
1992  0 ret = 65319;
1993  0 break;
1994  0 case 65352:
1995  0 ret = 65320;
1996  0 break;
1997  0 case 65353:
1998  0 ret = 65321;
1999  0 break;
2000  0 case 65354:
2001  0 ret = 65322;
2002  0 break;
2003  0 case 65355:
2004  0 ret = 65323;
2005  0 break;
2006  0 case 65356:
2007  0 ret = 65324;
2008  0 break;
2009  0 case 65357:
2010  0 ret = 65325;
2011  0 break;
2012  0 case 65358:
2013  0 ret = 65326;
2014  0 break;
2015  0 case 65359:
2016  0 ret = 65327;
2017  0 break;
2018  0 case 65360:
2019  0 ret = 65328;
2020  0 break;
2021  0 case 65361:
2022  0 ret = 65329;
2023  0 break;
2024  0 case 65362:
2025  0 ret = 65330;
2026  0 break;
2027  0 case 65363:
2028  0 ret = 65331;
2029  0 break;
2030  0 case 65364:
2031  0 ret = 65332;
2032  0 break;
2033  0 case 65365:
2034  0 ret = 65333;
2035  0 break;
2036  0 case 65366:
2037  0 ret = 65334;
2038  0 break;
2039  0 case 65367:
2040  0 ret = 65335;
2041  0 break;
2042  0 case 65368:
2043  0 ret = 65336;
2044  0 break;
2045  0 case 65369:
2046  0 ret = 65337;
2047  0 break;
2048  0 case 65370:
2049  0 ret = 65338;
2050  0 break;
2051    }
2052  0 return (char) ret;
2053    }
2054  33221 return Character.toUpperCase(c);
2055    }
2056   
2057    /** Convert a character to lower case. */
 
2058  33221 toggle public static char toLowerCase(char c)
2059    {
2060  33221 if (java_1_0)
2061    {
2062  0 int ret = (int) c;
2063  0 switch (c)
2064    {
2065  0 case 65:
2066  0 ret = 97;
2067  0 break;
2068  0 case 66:
2069  0 ret = 98;
2070  0 break;
2071  0 case 67:
2072  0 ret = 99;
2073  0 break;
2074  0 case 68:
2075  0 ret = 100;
2076  0 break;
2077  0 case 69:
2078  0 ret = 101;
2079  0 break;
2080  0 case 70:
2081  0 ret = 102;
2082  0 break;
2083  0 case 71:
2084  0 ret = 103;
2085  0 break;
2086  0 case 72:
2087  0 ret = 104;
2088  0 break;
2089  0 case 73:
2090  0 ret = 105;
2091  0 break;
2092  0 case 74:
2093  0 ret = 106;
2094  0 break;
2095  0 case 75:
2096  0 ret = 107;
2097  0 break;
2098  0 case 76:
2099  0 ret = 108;
2100  0 break;
2101  0 case 77:
2102  0 ret = 109;
2103  0 break;
2104  0 case 78:
2105  0 ret = 110;
2106  0 break;
2107  0 case 79:
2108  0 ret = 111;
2109  0 break;
2110  0 case 80:
2111  0 ret = 112;
2112  0 break;
2113  0 case 81:
2114  0 ret = 113;
2115  0 break;
2116  0 case 82:
2117  0 ret = 114;
2118  0 break;
2119  0 case 83:
2120  0 ret = 115;
2121  0 break;
2122  0 case 84:
2123  0 ret = 116;
2124  0 break;
2125  0 case 85:
2126  0 ret = 117;
2127  0 break;
2128  0 case 86:
2129  0 ret = 118;
2130  0 break;
2131  0 case 87:
2132  0 ret = 119;
2133  0 break;
2134  0 case 88:
2135  0 ret = 120;
2136  0 break;
2137  0 case 89:
2138  0 ret = 121;
2139  0 break;
2140  0 case 90:
2141  0 ret = 122;
2142  0 break;
2143  0 case 192:
2144  0 ret = 224;
2145  0 break;
2146  0 case 193:
2147  0 ret = 225;
2148  0 break;
2149  0 case 194:
2150  0 ret = 226;
2151  0 break;
2152  0 case 195:
2153  0 ret = 227;
2154  0 break;
2155  0 case 196:
2156  0 ret = 228;
2157  0 break;
2158  0 case 197:
2159  0 ret = 229;
2160  0 break;
2161  0 case 198:
2162  0 ret = 230;
2163  0 break;
2164  0 case 199:
2165  0 ret = 231;
2166  0 break;
2167  0 case 200:
2168  0 ret = 232;
2169  0 break;
2170  0 case 201:
2171  0 ret = 233;
2172  0 break;
2173  0 case 202:
2174  0 ret = 234;
2175  0 break;
2176  0 case 203:
2177  0 ret = 235;
2178  0 break;
2179  0 case 204:
2180  0 ret = 236;
2181  0 break;
2182  0 case 205:
2183  0 ret = 237;
2184  0 break;
2185  0 case 206:
2186  0 ret = 238;
2187  0 break;
2188  0 case 207:
2189  0 ret = 239;
2190  0 break;
2191  0 case 208:
2192  0 ret = 240;
2193  0 break;
2194  0 case 209:
2195  0 ret = 241;
2196  0 break;
2197  0 case 210:
2198  0 ret = 242;
2199  0 break;
2200  0 case 211:
2201  0 ret = 243;
2202  0 break;
2203  0 case 212:
2204  0 ret = 244;
2205  0 break;
2206  0 case 213:
2207  0 ret = 245;
2208  0 break;
2209  0 case 214:
2210  0 ret = 246;
2211  0 break;
2212  0 case 216:
2213  0 ret = 248;
2214  0 break;
2215  0 case 217:
2216  0 ret = 249;
2217  0 break;
2218  0 case 218:
2219  0 ret = 250;
2220  0 break;
2221  0 case 219:
2222  0 ret = 251;
2223  0 break;
2224  0 case 220:
2225  0 ret = 252;
2226  0 break;
2227  0 case 221:
2228  0 ret = 253;
2229  0 break;
2230  0 case 222:
2231  0 ret = 254;
2232  0 break;
2233  0 case 256:
2234  0 ret = 257;
2235  0 break;
2236  0 case 258:
2237  0 ret = 259;
2238  0 break;
2239  0 case 260:
2240  0 ret = 261;
2241  0 break;
2242  0 case 262:
2243  0 ret = 263;
2244  0 break;
2245  0 case 264:
2246  0 ret = 265;
2247  0 break;
2248  0 case 266:
2249  0 ret = 267;
2250  0 break;
2251  0 case 268:
2252  0 ret = 269;
2253  0 break;
2254  0 case 270:
2255  0 ret = 271;
2256  0 break;
2257  0 case 272:
2258  0 ret = 273;
2259  0 break;
2260  0 case 274:
2261  0 ret = 275;
2262  0 break;
2263  0 case 276:
2264  0 ret = 277;
2265  0 break;
2266  0 case 278:
2267  0 ret = 279;
2268  0 break;
2269  0 case 280:
2270  0 ret = 281;
2271  0 break;
2272  0 case 282:
2273  0 ret = 283;
2274  0 break;
2275  0 case 284:
2276  0 ret = 285;
2277  0 break;
2278  0 case 286:
2279  0 ret = 287;
2280  0 break;
2281  0 case 288:
2282  0 ret = 289;
2283  0 break;
2284  0 case 290:
2285  0 ret = 291;
2286  0 break;
2287  0 case 292:
2288  0 ret = 293;
2289  0 break;
2290  0 case 294:
2291  0 ret = 295;
2292  0 break;
2293  0 case 296:
2294  0 ret = 297;
2295  0 break;
2296  0 case 298:
2297  0 ret = 299;
2298  0 break;
2299  0 case 300:
2300  0 ret = 301;
2301  0 break;
2302  0 case 302:
2303  0 ret = 303;
2304  0 break;
2305  0 case 304:
2306  0 ret = 105;
2307  0 break;
2308  0 case 306:
2309  0 ret = 307;
2310  0 break;
2311  0 case 308:
2312  0 ret = 309;
2313  0 break;
2314  0 case 310:
2315  0 ret = 311;
2316  0 break;
2317  0 case 313:
2318  0 ret = 314;
2319  0 break;
2320  0 case 315:
2321  0 ret = 316;
2322  0 break;
2323  0 case 317:
2324  0 ret = 318;
2325  0 break;
2326  0 case 319:
2327  0 ret = 320;
2328  0 break;
2329  0 case 321:
2330  0 ret = 322;
2331  0 break;
2332  0 case 323:
2333  0 ret = 324;
2334  0 break;
2335  0 case 325:
2336  0 ret = 326;
2337  0 break;
2338  0 case 327:
2339  0 ret = 328;
2340  0 break;
2341  0 case 330:
2342  0 ret = 331;
2343  0 break;
2344  0 case 332:
2345  0 ret = 333;
2346  0 break;
2347  0 case 334:
2348  0 ret = 335;
2349  0 break;
2350  0 case 336:
2351  0 ret = 337;
2352  0 break;
2353  0 case 338:
2354  0 ret = 339;
2355  0 break;
2356  0 case 340:
2357  0 ret = 341;
2358  0 break;
2359  0 case 342:
2360  0 ret = 343;
2361  0 break;
2362  0 case 344:
2363  0 ret = 345;
2364  0 break;
2365  0 case 346:
2366  0 ret = 347;
2367  0 break;
2368  0 case 348:
2369  0 ret = 349;
2370  0 break;
2371  0 case 350:
2372  0 ret = 351;
2373  0 break;
2374  0 case 352:
2375  0 ret = 353;
2376  0 break;
2377  0 case 354:
2378  0 ret = 355;
2379  0 break;
2380  0 case 356:
2381  0 ret = 357;
2382  0 break;
2383  0 case 358:
2384  0 ret = 359;
2385  0 break;
2386  0 case 360:
2387  0 ret = 361;
2388  0 break;
2389  0 case 362:
2390  0 ret = 363;
2391  0 break;
2392  0 case 364:
2393  0 ret = 365;
2394  0 break;
2395  0 case 366:
2396  0 ret = 367;
2397  0 break;
2398  0 case 368:
2399  0 ret = 369;
2400  0 break;
2401  0 case 370:
2402  0 ret = 371;
2403  0 break;
2404  0 case 372:
2405  0 ret = 373;
2406  0 break;
2407  0 case 374:
2408  0 ret = 375;
2409  0 break;
2410  0 case 376:
2411  0 ret = 255;
2412  0 break;
2413  0 case 377:
2414  0 ret = 378;
2415  0 break;
2416  0 case 379:
2417  0 ret = 380;
2418  0 break;
2419  0 case 381:
2420  0 ret = 382;
2421  0 break;
2422  0 case 385:
2423  0 ret = 595;
2424  0 break;
2425  0 case 386:
2426  0 ret = 387;
2427  0 break;
2428  0 case 388:
2429  0 ret = 389;
2430  0 break;
2431  0 case 390:
2432  0 ret = 596;
2433  0 break;
2434  0 case 391:
2435  0 ret = 392;
2436  0 break;
2437  0 case 393:
2438  0 ret = 598;
2439  0 break;
2440  0 case 394:
2441  0 ret = 599;
2442  0 break;
2443  0 case 395:
2444  0 ret = 396;
2445  0 break;
2446  0 case 398:
2447  0 ret = 600;
2448  0 break;
2449  0 case 399:
2450  0 ret = 601;
2451  0 break;
2452  0 case 400:
2453  0 ret = 603;
2454  0 break;
2455  0 case 401:
2456  0 ret = 402;
2457  0 break;
2458  0 case 403:
2459  0 ret = 608;
2460  0 break;
2461  0 case 404:
2462  0 ret = 611;
2463  0 break;
2464  0 case 406:
2465  0 ret = 617;
2466  0 break;
2467  0 case 407:
2468  0 ret = 616;
2469  0 break;
2470  0 case 408:
2471  0 ret = 409;
2472  0 break;
2473  0 case 412:
2474  0 ret = 623;
2475  0 break;
2476  0 case 413:
2477  0 ret = 626;
2478  0 break;
2479  0 case 416:
2480  0 ret = 417;
2481  0 break;
2482  0 case 418:
2483  0 ret = 419;
2484  0 break;
2485  0 case 420:
2486  0 ret = 421;
2487  0 break;
2488  0 case 423:
2489  0 ret = 424;
2490  0 break;
2491  0 case 425:
2492  0 ret = 643;
2493  0 break;
2494  0 case 428:
2495  0 ret = 429;
2496  0 break;
2497  0 case 430:
2498  0 ret = 648;
2499  0 break;
2500  0 case 431:
2501  0 ret = 432;
2502  0 break;
2503  0 case 433:
2504  0 ret = 650;
2505  0 break;
2506  0 case 434:
2507  0 ret = 651;
2508  0 break;
2509  0 case 435:
2510  0 ret = 436;
2511  0 break;
2512  0 case 437:
2513  0 ret = 438;
2514  0 break;
2515  0 case 439:
2516  0 ret = 658;
2517  0 break;
2518  0 case 440:
2519  0 ret = 441;
2520  0 break;
2521  0 case 444:
2522  0 ret = 445;
2523  0 break;
2524  0 case 452:
2525  0 ret = 454;
2526  0 break;
2527  0 case 453:
2528  0 ret = 454;
2529  0 break;
2530  0 case 455:
2531  0 ret = 457;
2532  0 break;
2533  0 case 456:
2534  0 ret = 457;
2535  0 break;
2536  0 case 458:
2537  0 ret = 460;
2538  0 break;
2539  0 case 459:
2540  0 ret = 460;
2541  0 break;
2542  0 case 461:
2543  0 ret = 462;
2544  0 break;
2545  0 case 463:
2546  0 ret = 464;
2547  0 break;
2548  0 case 465:
2549  0 ret = 466;
2550  0 break;
2551  0 case 467:
2552  0 ret = 468;
2553  0 break;
2554  0 case 469:
2555  0 ret = 470;
2556  0 break;
2557  0 case 471:
2558  0 ret = 472;
2559  0 break;
2560  0 case 473:
2561  0 ret = 474;
2562  0 break;
2563  0 case 475:
2564  0 ret = 476;
2565  0 break;
2566  0 case 478:
2567  0 ret = 479;
2568  0 break;
2569  0 case 480:
2570  0 ret = 481;
2571  0 break;
2572  0 case 482:
2573  0 ret = 483;
2574  0 break;
2575  0 case 484:
2576  0 ret = 485;
2577  0 break;
2578  0 case 486:
2579  0 ret = 487;
2580  0 break;
2581  0 case 488:
2582  0 ret = 489;
2583  0 break;
2584  0 case 490:
2585  0 ret = 491;
2586  0 break;
2587  0 case 492:
2588  0 ret = 493;
2589  0 break;
2590  0 case 494:
2591  0 ret = 495;
2592  0 break;
2593  0 case 497:
2594  0 ret = 499;
2595  0 break;
2596  0 case 498:
2597  0 ret = 499;
2598  0 break;
2599  0 case 500:
2600  0 ret = 501;
2601  0 break;
2602  0 case 506:
2603  0 ret = 507;
2604  0 break;
2605  0 case 508:
2606  0 ret = 509;
2607  0 break;
2608  0 case 510:
2609  0 ret = 511;
2610  0 break;
2611  0 case 512:
2612  0 ret = 513;
2613  0 break;
2614  0 case 514:
2615  0 ret = 515;
2616  0 break;
2617  0 case 516:
2618  0 ret = 517;
2619  0 break;
2620  0 case 518:
2621  0 ret = 519;
2622  0 break;
2623  0 case 520:
2624  0 ret = 521;
2625  0 break;
2626  0 case 522:
2627  0 ret = 523;
2628  0 break;
2629  0 case 524:
2630  0 ret = 525;
2631  0 break;
2632  0 case 526:
2633  0 ret = 527;
2634  0 break;
2635  0 case 528:
2636  0 ret = 529;
2637  0 break;
2638  0 case 530:
2639  0 ret = 531;
2640  0 break;
2641  0 case 532:
2642  0 ret = 533;
2643  0 break;
2644  0 case 534:
2645  0 ret = 535;
2646  0 break;
2647  0 case 902:
2648  0 ret = 940;
2649  0 break;
2650  0 case 904:
2651  0 ret = 941;
2652  0 break;
2653  0 case 905:
2654  0 ret = 942;
2655  0 break;
2656  0 case 906:
2657  0 ret = 943;
2658  0 break;
2659  0 case 908:
2660  0 ret = 972;
2661  0 break;
2662  0 case 910:
2663  0 ret = 973;
2664  0 break;
2665  0 case 911:
2666  0 ret = 974;
2667  0 break;
2668  0 case 913:
2669  0 ret = 945;
2670  0 break;
2671  0 case 914:
2672  0 ret = 946;
2673  0 break;
2674  0 case 915:
2675  0 ret = 947;
2676  0 break;
2677  0 case 916:
2678  0 ret = 948;
2679  0 break;
2680  0 case 917:
2681  0 ret = 949;
2682  0 break;
2683  0 case 918:
2684  0 ret = 950;
2685  0 break;
2686  0 case 919:
2687  0 ret = 951;
2688  0 break;
2689  0 case 920:
2690  0 ret = 952;
2691  0 break;
2692  0 case 921:
2693  0 ret = 953;
2694  0 break;
2695  0 case 922:
2696  0 ret = 954;
2697  0 break;
2698  0 case 923:
2699  0 ret = 955;
2700  0 break;
2701  0 case 924:
2702  0 ret = 956;
2703  0 break;
2704  0 case 925:
2705  0 ret = 957;
2706  0 break;
2707  0 case 926:
2708  0 ret = 958;
2709  0 break;
2710  0 case 927:
2711  0 ret = 959;
2712  0 break;
2713  0 case 928:
2714  0 ret = 960;
2715  0 break;
2716  0 case 929:
2717  0 ret = 961;
2718  0 break;
2719  0 case 931:
2720  0 ret = 963;
2721  0 break;
2722  0 case 932:
2723  0 ret = 964;
2724  0 break;
2725  0 case 933:
2726  0 ret = 965;
2727  0 break;
2728  0 case 934:
2729  0 ret = 966;
2730  0 break;
2731  0 case 935:
2732  0 ret = 967;
2733  0 break;
2734  0 case 936:
2735  0 ret = 968;
2736  0 break;
2737  0 case 937:
2738  0 ret = 969;
2739  0 break;
2740  0 case 938:
2741  0 ret = 970;
2742  0 break;
2743  0 case 939:
2744  0 ret = 971;
2745  0 break;
2746  0 case 994:
2747  0 ret = 995;
2748  0 break;
2749  0 case 996:
2750  0 ret = 997;
2751  0 break;
2752  0 case 998:
2753  0 ret = 999;
2754  0 break;
2755  0 case 1000:
2756  0 ret = 1001;
2757  0 break;
2758  0 case 1002:
2759  0 ret = 1003;
2760  0 break;
2761  0 case 1004:
2762  0 ret = 1005;
2763  0 break;
2764  0 case 1006:
2765  0 ret = 1007;
2766  0 break;
2767  0 case 1025:
2768  0 ret = 1105;
2769  0 break;
2770  0 case 1026:
2771  0 ret = 1106;
2772  0 break;
2773  0 case 1027:
2774  0 ret = 1107;
2775  0 break;
2776  0 case 1028:
2777  0 ret = 1108;
2778  0 break;
2779  0 case 1029:
2780  0 ret = 1109;
2781  0 break;
2782  0 case 1030:
2783  0 ret = 1110;
2784  0 break;
2785  0 case 1031:
2786  0 ret = 1111;
2787  0 break;
2788  0 case 1032:
2789  0 ret = 1112;
2790  0 break;
2791  0 case 1033:
2792  0 ret = 1113;
2793  0 break;
2794  0 case 1034:
2795  0 ret = 1114;
2796  0 break;
2797  0 case 1035:
2798  0 ret = 1115;
2799  0 break;
2800  0 case 1036:
2801  0 ret = 1116;
2802  0 break;
2803  0 case 1038:
2804  0 ret = 1118;
2805  0 break;
2806  0 case 1039:
2807  0 ret = 1119;
2808  0 break;
2809  0 case 1040:
2810  0 ret = 1072;
2811  0 break;
2812  0 case 1041:
2813  0 ret = 1073;
2814  0 break;
2815  0 case 1042:
2816  0 ret = 1074;
2817  0 break;
2818  0 case 1043:
2819  0 ret = 1075;
2820  0 break;
2821  0 case 1044:
2822  0 ret = 1076;
2823  0 break;
2824  0 case 1045:
2825  0 ret = 1077;
2826  0 break;
2827  0 case 1046:
2828  0 ret = 1078;
2829  0 break;
2830  0 case 1047:
2831  0 ret = 1079;
2832  0 break;
2833  0 case 1048:
2834  0 ret = 1080;
2835  0 break;
2836  0 case 1049:
2837  0 ret = 1081;
2838  0 break;
2839  0 case 1050:
2840  0 ret = 1082;
2841  0 break;
2842  0 case 1051:
2843  0 ret = 1083;
2844  0 break;
2845  0 case 1052:
2846  0 ret = 1084;
2847  0 break;
2848  0 case 1053:
2849  0 ret = 1085;
2850  0 break;
2851  0 case 1054:
2852  0 ret = 1086;
2853  0 break;
2854  0 case 1055:
2855  0 ret = 1087;
2856  0 break;
2857  0 case 1056:
2858  0 ret = 1088;
2859  0 break;
2860  0 case 1057:
2861  0 ret = 1089;
2862  0 break;
2863  0 case 1058:
2864  0 ret = 1090;
2865  0 break;
2866  0 case 1059:
2867  0 ret = 1091;
2868  0 break;
2869  0 case 1060:
2870  0 ret = 1092;
2871  0 break;
2872  0 case 1061:
2873  0 ret = 1093;
2874  0 break;
2875  0 case 1062:
2876  0 ret = 1094;
2877  0 break;
2878  0 case 1063:
2879  0 ret = 1095;
2880  0 break;
2881  0 case 1064:
2882  0 ret = 1096;
2883  0 break;
2884  0 case 1065:
2885  0 ret = 1097;
2886  0 break;
2887  0 case 1066:
2888  0 ret = 1098;
2889  0 break;
2890  0 case 1067:
2891  0 ret = 1099;
2892  0 break;
2893  0 case 1068:
2894  0 ret = 1100;
2895  0 break;
2896  0 case 1069:
2897  0 ret = 1101;
2898  0 break;
2899  0 case 1070:
2900  0 ret = 1102;
2901  0 break;
2902  0 case 1071:
2903  0 ret = 1103;
2904  0 break;
2905  0 case 1120:
2906  0 ret = 1121;
2907  0 break;
2908  0 case 1122:
2909  0 ret = 1123;
2910  0 break;
2911  0 case 1124:
2912  0 ret = 1125;
2913  0 break;
2914  0 case 1126:
2915  0 ret = 1127;
2916  0 break;
2917  0 case 1128:
2918  0 ret = 1129;
2919  0 break;
2920  0 case 1130:
2921  0 ret = 1131;
2922  0 break;
2923  0 case 1132:
2924  0 ret = 1133;
2925  0 break;
2926  0 case 1134:
2927  0 ret = 1135;
2928  0 break;
2929  0 case 1136:
2930  0 ret = 1137;
2931  0 break;
2932  0 case 1138:
2933  0 ret = 1139;
2934  0 break;
2935  0 case 1140:
2936  0 ret = 1141;
2937  0 break;
2938  0 case 1142:
2939  0 ret = 1143;
2940  0 break;
2941  0 case 1144:
2942  0 ret = 1145;
2943  0 break;
2944  0 case 1146:
2945  0 ret = 1147;
2946  0 break;
2947  0 case 1148:
2948  0 ret = 1149;
2949  0 break;
2950  0 case 1150:
2951  0 ret = 1151;
2952  0 break;
2953  0 case 1152:
2954  0 ret = 1153;
2955  0 break;
2956  0 case 1168:
2957  0 ret = 1169;
2958  0 break;
2959  0 case 1170:
2960  0 ret = 1171;
2961  0 break;
2962  0 case 1172:
2963  0 ret = 1173;
2964  0 break;
2965  0 case 1174:
2966  0 ret = 1175;
2967  0 break;
2968  0 case 1176:
2969  0 ret = 1177;
2970  0 break;
2971  0 case 1178:
2972  0 ret = 1179;
2973  0 break;
2974  0 case 1180:
2975  0 ret = 1181;
2976  0 break;
2977  0 case 1182:
2978  0 ret = 1183;
2979  0 break;
2980  0 case 1184:
2981  0 ret = 1185;
2982  0 break;
2983  0 case 1186:
2984  0 ret = 1187;
2985  0 break;
2986  0 case 1188:
2987  0 ret = 1189;
2988  0 break;
2989  0 case 1190:
2990  0 ret = 1191;
2991  0 break;
2992  0 case 1192:
2993  0 ret = 1193;
2994  0 break;
2995  0 case 1194:
2996  0 ret = 1195;
2997  0 break;
2998  0 case 1196:
2999  0 ret = 1197;
3000  0 break;
3001  0 case 1198:
3002  0 ret = 1199;
3003  0 break;
3004  0 case 1200:
3005  0 ret = 1201;
3006  0 break;
3007  0 case 1202:
3008  0 ret = 1203;
3009  0 break;
3010  0 case 1204:
3011  0 ret = 1205;
3012  0 break;
3013  0 case 1206:
3014  0 ret = 1207;
3015  0 break;
3016  0 case 1208:
3017  0 ret = 1209;
3018  0 break;
3019  0 case 1210:
3020  0 ret = 1211;
3021  0 break;
3022  0 case 1212:
3023  0 ret = 1213;
3024  0 break;
3025  0 case 1214:
3026  0 ret = 1215;
3027  0 break;
3028  0 case 1217:
3029  0 ret = 1218;
3030  0 break;
3031  0 case 1219:
3032  0 ret = 1220;
3033  0 break;
3034  0 case 1223:
3035  0 ret = 1224;
3036  0 break;
3037  0 case 1227:
3038  0 ret = 1228;
3039  0 break;
3040  0 case 1232:
3041  0 ret = 1233;
3042  0 break;
3043  0 case 1234:
3044  0 ret = 1235;
3045  0 break;
3046  0 case 1236:
3047  0 ret = 1237;
3048  0 break;
3049  0 case 1238:
3050  0 ret = 1239;
3051  0 break;
3052  0 case 1240:
3053  0 ret = 1241;
3054  0 break;
3055  0 case 1242:
3056  0 ret = 1243;
3057  0 break;
3058  0 case 1244:
3059  0 ret = 1245;
3060  0 break;
3061  0 case 1246:
3062  0 ret = 1247;
3063  0 break;
3064  0 case 1248:
3065  0 ret = 1249;
3066  0 break;
3067  0 case 1250:
3068  0 ret = 1251;
3069  0 break;
3070  0 case 1252:
3071  0 ret = 1253;
3072  0 break;
3073  0 case 1254:
3074  0 ret = 1255;
3075  0 break;
3076  0 case 1256:
3077  0 ret = 1257;
3078  0 break;
3079  0 case 1258:
3080  0 ret = 1259;
3081  0 break;
3082  0 case 1262:
3083  0 ret = 1263;
3084  0 break;
3085  0 case 1264:
3086  0 ret = 1265;
3087  0 break;
3088  0 case 1266:
3089  0 ret = 1267;
3090  0 break;
3091  0 case 1268:
3092  0 ret = 1269;
3093  0 break;
3094  0 case 1272:
3095  0 ret = 1273;
3096  0 break;
3097  0 case 1329:
3098  0 ret = 1377;
3099  0 break;
3100  0 case 1330:
3101  0 ret = 1378;
3102  0 break;
3103  0 case 1331:
3104  0 ret = 1379;
3105  0 break;
3106  0 case 1332:
3107  0 ret = 1380;
3108  0 break;
3109  0 case 1333:
3110  0 ret = 1381;
3111  0 break;
3112  0 case 1334:
3113  0 ret = 1382;
3114  0 break;
3115  0 case 1335:
3116  0 ret = 1383;
3117  0 break;
3118  0 case 1336:
3119  0 ret = 1384;
3120  0 break;
3121  0 case 1337:
3122  0 ret = 1385;
3123  0 break;
3124  0 case 1338:
3125  0 ret = 1386;
3126  0 break;
3127  0 case 1339:
3128  0 ret = 1387;
3129  0 break;
3130  0 case 1340:
3131  0 ret = 1388;
3132  0 break;
3133  0 case 1341:
3134  0 ret = 1389;
3135  0 break;
3136  0 case 1342:
3137  0 ret = 1390;
3138  0 break;
3139  0 case 1343:
3140  0 ret = 1391;
3141  0 break;
3142  0 case 1344:
3143  0 ret = 1392;
3144  0 break;
3145  0 case 1345:
3146  0 ret = 1393;
3147  0 break;
3148  0 case 1346:
3149  0 ret = 1394;
3150  0 break;
3151  0 case 1347:
3152  0 ret = 1395;
3153  0 break;
3154  0 case 1348:
3155  0 ret = 1396;
3156  0 break;
3157  0 case 1349:
3158  0 ret = 1397;
3159  0 break;
3160  0 case 1350:
3161  0 ret = 1398;
3162  0 break;
3163  0 case 1351:
3164  0 ret = 1399;
3165  0 break;
3166  0 case 1352:
3167  0 ret = 1400;
3168  0 break;
3169  0 case 1353:
3170  0 ret = 1401;
3171  0 break;
3172  0 case 1354:
3173  0 ret = 1402;
3174  0 break;
3175  0 case 1355:
3176  0 ret = 1403;
3177  0 break;
3178  0 case 1356:
3179  0 ret = 1404;
3180  0 break;
3181  0 case 1357:
3182  0 ret = 1405;
3183  0 break;
3184  0 case 1358:
3185  0 ret = 1406;
3186  0 break;
3187  0 case 1359:
3188  0 ret = 1407;
3189  0 break;
3190  0 case 1360:
3191  0 ret = 1408;
3192  0 break;
3193  0 case 1361:
3194  0 ret = 1409;
3195  0 break;
3196  0 case 1362:
3197  0 ret = 1410;
3198  0 break;
3199  0 case 1363:
3200  0 ret = 1411;
3201  0 break;
3202  0 case 1364:
3203  0 ret = 1412;
3204  0 break;
3205  0 case 1365:
3206  0 ret = 1413;
3207  0 break;
3208  0 case 1366:
3209  0 ret = 1414;
3210  0 break;
3211  0 case 4256:
3212  0 ret = 4304;
3213  0 break;
3214  0 case 4257:
3215  0 ret = 4305;
3216  0 break;
3217  0 case 4258:
3218  0 ret = 4306;
3219  0 break;
3220  0 case 4259:
3221  0 ret = 4307;
3222  0 break;
3223  0 case 4260:
3224  0 ret = 4308;
3225  0 break;
3226  0 case 4261:
3227  0 ret = 4309;
3228  0 break;
3229  0 case 4262:
3230  0 ret = 4310;
3231  0 break;
3232  0 case 4263:
3233  0 ret = 4311;
3234  0 break;
3235  0 case 4264:
3236  0 ret = 4312;
3237  0 break;
3238  0 case 4265:
3239  0 ret = 4313;
3240  0 break;
3241  0 case 4266:
3242  0 ret = 4314;
3243  0 break;
3244  0 case 4267:
3245  0 ret = 4315;
3246  0 break;
3247  0 case 4268:
3248  0 ret = 4316;
3249  0 break;
3250  0 case 4269:
3251  0 ret = 4317;
3252  0 break;
3253  0 case 4270:
3254  0 ret = 4318;
3255  0 break;
3256  0 case 4271:
3257  0 ret = 4319;
3258  0 break;
3259  0 case 4272:
3260  0 ret = 4320;
3261  0 break;
3262  0 case 4273:
3263  0 ret = 4321;
3264  0 break;
3265  0 case 4274:
3266  0 ret = 4322;
3267  0 break;
3268  0 case 4275:
3269  0 ret = 4323;
3270  0 break;
3271  0 case 4276:
3272  0 ret = 4324;
3273  0 break;
3274  0 case 4277:
3275  0 ret = 4325;
3276  0 break;
3277  0 case 4278:
3278  0 ret = 4326;
3279  0 break;
3280  0 case 4279:
3281  0 ret = 4327;
3282  0 break;
3283  0 case 4280:
3284  0 ret = 4328;
3285  0 break;
3286  0 case 4281:
3287  0 ret = 4329;
3288  0 break;
3289  0 case 4282:
3290  0 ret = 4330;
3291  0 break;
3292  0 case 4283:
3293  0 ret = 4331;
3294  0 break;
3295  0 case 4284:
3296  0 ret = 4332;
3297  0 break;
3298  0 case 4285:
3299  0 ret = 4333;
3300  0 break;
3301  0 case 4286:
3302  0 ret = 4334;
3303  0 break;
3304  0 case 4287:
3305  0 ret = 4335;
3306  0 break;
3307  0 case 4288:
3308  0 ret = 4336;
3309  0 break;
3310  0 case 4289:
3311  0 ret = 4337;
3312  0 break;
3313  0 case 4290:
3314  0 ret = 4338;
3315  0 break;
3316  0 case 4291:
3317  0 ret = 4339;
3318  0 break;
3319  0 case 4292:
3320  0 ret = 4340;
3321  0 break;
3322  0 case 4293:
3323  0 ret = 4341;
3324  0 break;
3325  0 case 7680:
3326  0 ret = 7681;
3327  0 break;
3328  0 case 7682:
3329  0 ret = 7683;
3330  0 break;
3331  0 case 7684:
3332  0 ret = 7685;
3333  0 break;
3334  0 case 7686:
3335  0 ret = 7687;
3336  0 break;
3337  0 case 7688:
3338  0 ret = 7689;
3339  0 break;
3340  0 case 7690:
3341  0 ret = 7691;
3342  0 break;
3343  0 case 7692:
3344  0 ret = 7693;
3345  0 break;
3346  0 case 7694:
3347  0 ret = 7695;
3348  0 break;
3349  0 case 7696:
3350  0 ret = 7697;
3351  0 break;
3352  0 case 7698:
3353  0 ret = 7699;
3354  0 break;
3355  0 case 7700:
3356  0 ret = 7701;
3357  0 break;
3358  0 case 7702:
3359  0 ret = 7703;
3360  0 break;
3361  0 case 7704:
3362  0 ret = 7705;
3363  0 break;
3364  0 case 7706:
3365  0 ret = 7707;
3366  0 break;
3367  0 case 7708:
3368  0 ret = 7709;
3369  0 break;
3370  0 case 7710:
3371  0 ret = 7711;
3372  0 break;
3373  0 case 7712:
3374  0 ret = 7713;
3375  0 break;
3376  0 case 7714:
3377  0 ret = 7715;
3378  0 break;
3379  0 case 7716:
3380  0 ret = 7717;
3381  0 break;
3382  0 case 7718:
3383  0 ret = 7719;
3384  0 break;
3385  0 case 7720:
3386  0 ret = 7721;
3387  0 break;
3388  0 case 7722:
3389  0 ret = 7723;
3390  0 break;
3391  0 case 7724:
3392  0 ret = 7725;
3393  0 break;
3394  0 case 7726:
3395  0 ret = 7727;
3396  0 break;
3397  0 case 7728:
3398  0 ret = 7729;
3399  0 break;
3400  0 case 7730:
3401  0 ret = 7731;
3402  0 break;
3403  0 case 7732:
3404  0 ret = 7733;
3405  0 break;
3406  0 case 7734:
3407  0 ret = 7735;
3408  0 break;
3409  0 case 7736:
3410  0 ret = 7737;
3411  0 break;
3412  0 case 7738:
3413  0 ret = 7739;
3414  0 break;
3415  0 case 7740:
3416  0 ret = 7741;
3417  0 break;
3418  0 case 7742:
3419  0 ret = 7743;
3420  0 break;
3421  0 case 7744:
3422  0 ret = 7745;
3423  0 break;
3424  0 case 7746:
3425  0 ret = 7747;
3426  0 break;
3427  0 case 7748:
3428  0 ret = 7749;
3429  0 break;
3430  0 case 7750:
3431  0 ret = 7751;
3432  0 break;
3433  0 case 7752:
3434  0 ret = 7753;
3435  0 break;
3436  0 case 7754:
3437  0 ret = 7755;
3438  0 break;
3439  0 case 7756:
3440  0 ret = 7757;
3441  0 break;
3442  0 case 7758:
3443  0 ret = 7759;
3444  0 break;
3445  0 case 7760:
3446  0 ret = 7761;
3447  0 break;
3448  0 case 7762:
3449  0 ret = 7763;
3450  0 break;
3451  0 case 7764:
3452  0 ret = 7765;
3453  0 break;
3454  0 case 7766:
3455  0 ret = 7767;
3456  0 break;
3457  0 case 7768:
3458  0 ret = 7769;
3459  0 break;
3460  0 case 7770:
3461  0 ret = 7771;
3462  0 break;
3463  0 case 7772:
3464  0 ret = 7773;
3465  0 break;
3466  0 case 7774:
3467  0 ret = 7775;
3468  0 break;
3469  0 case 7776:
3470  0 ret = 7777;
3471  0 break;
3472  0 case 7778:
3473  0 ret = 7779;
3474  0 break;
3475  0 case 7780:
3476  0 ret = 7781;
3477  0 break;
3478  0 case 7782:
3479  0 ret = 7783;
3480  0 break;
3481  0 case 7784:
3482  0 ret = 7785;
3483  0 break;
3484  0 case 7786:
3485  0 ret = 7787;
3486  0 break;
3487  0 case 7788:
3488  0 ret = 7789;
3489  0 break;
3490  0 case 7790:
3491  0 ret = 7791;
3492  0 break;
3493  0 case 7792:
3494  0 ret = 7793;
3495  0 break;
3496  0 case 7794:
3497  0 ret = 7795;
3498  0 break;
3499  0 case 7796:
3500  0 ret = 7797;
3501  0 break;
3502  0 case 7798:
3503  0 ret = 7799;
3504  0 break;
3505  0 case 7800:
3506  0 ret = 7801;
3507  0 break;
3508  0 case 7802:
3509  0 ret = 7803;
3510  0 break;
3511  0 case 7804:
3512  0 ret = 7805;
3513  0 break;
3514  0 case 7806:
3515  0 ret = 7807;
3516  0 break;
3517  0 case 7808:
3518  0 ret = 7809;
3519  0 break;
3520  0 case 7810:
3521  0 ret = 7811;
3522  0 break;
3523  0 case 7812:
3524  0 ret = 7813;
3525  0 break;
3526  0 case 7814:
3527  0 ret = 7815;
3528  0 break;
3529  0 case 7816:
3530  0 ret = 7817;
3531  0 break;
3532  0 case 7818:
3533  0 ret = 7819;
3534  0 break;
3535  0 case 7820:
3536  0 ret = 7821;
3537  0 break;
3538  0 case 7822:
3539  0 ret = 7823;
3540  0 break;
3541  0 case 7824:
3542  0 ret = 7825;
3543  0 break;
3544  0 case 7826:
3545  0 ret = 7827;
3546  0 break;
3547  0 case 7828:
3548  0 ret = 7829;
3549  0 break;
3550  0 case 7840:
3551  0 ret = 7841;
3552  0 break;
3553  0 case 7842:
3554  0 ret = 7843;
3555  0 break;
3556  0 case 7844:
3557  0 ret = 7845;
3558  0 break;
3559  0 case 7846:
3560  0 ret = 7847;
3561  0 break;
3562  0 case 7848:
3563  0 ret = 7849;
3564  0 break;
3565  0 case 7850:
3566  0 ret = 7851;
3567  0 break;
3568  0 case 7852:
3569  0 ret = 7853;
3570  0 break;
3571  0 case 7854:
3572  0 ret = 7855;
3573  0 break;
3574  0 case 7856:
3575  0 ret = 7857;
3576  0 break;
3577  0 case 7858:
3578  0 ret = 7859;
3579  0 break;
3580  0 case 7860:
3581  0 ret = 7861;
3582  0 break;
3583  0 case 7862:
3584  0 ret = 7863;
3585  0 break;
3586  0 case 7864:
3587  0 ret = 7865;
3588  0 break;
3589  0 case 7866:
3590  0 ret = 7867;
3591  0 break;
3592  0 case 7868:
3593  0 ret = 7869;
3594  0 break;
3595  0 case 7870:
3596  0 ret = 7871;
3597  0 break;
3598  0 case 7872:
3599  0 ret = 7873;
3600  0 break;
3601  0 case 7874:
3602  0 ret = 7875;
3603  0 break;
3604  0 case 7876:
3605  0 ret = 7877;
3606  0 break;
3607  0 case 7878:
3608  0 ret = 7879;
3609  0 break;
3610  0 case 7880:
3611  0 ret = 7881;
3612  0 break;
3613  0 case 7882:
3614  0 ret = 7883;
3615  0 break;
3616  0 case 7884:
3617  0 ret = 7885;
3618  0 break;
3619  0 case 7886:
3620  0 ret = 7887;
3621  0 break;
3622  0 case 7888:
3623  0 ret = 7889;
3624  0 break;
3625  0 case 7890:
3626  0 ret = 7891;
3627  0 break;
3628  0 case 7892:
3629  0 ret = 7893;
3630  0 break;
3631  0 case 7894:
3632  0 ret = 7895;
3633  0 break;
3634  0 case 7896:
3635  0 ret = 7897;
3636  0 break;
3637  0 case 7898:
3638  0 ret = 7899;
3639  0 break;
3640  0 case 7900:
3641  0 ret = 7901;
3642  0 break;
3643  0 case 7902:
3644  0 ret = 7903;
3645  0 break;
3646  0 case 7904:
3647  0 ret = 7905;
3648  0 break;
3649  0 case 7906:
3650  0 ret = 7907;
3651  0 break;
3652  0 case 7908:
3653  0 ret = 7909;
3654  0 break;
3655  0 case 7910:
3656  0 ret = 7911;
3657  0 break;
3658  0 case 7912:
3659  0 ret = 7913;
3660  0 break;
3661  0 case 7914:
3662  0 ret = 7915;
3663  0 break;
3664  0 case 7916:
3665  0 ret = 7917;
3666  0 break;
3667  0 case 7918:
3668  0 ret = 7919;
3669  0 break;
3670  0 case 7920:
3671  0 ret = 7921;
3672  0 break;
3673  0 case 7922:
3674  0 ret = 7923;
3675  0 break;
3676  0 case 7924:
3677  0 ret = 7925;
3678  0 break;
3679  0 case 7926:
3680  0 ret = 7927;
3681  0 break;
3682  0 case 7928:
3683  0 ret = 7929;
3684  0 break;
3685  0 case 7944:
3686  0 ret = 7936;
3687  0 break;
3688  0 case 7945:
3689  0 ret = 7937;
3690  0 break;
3691  0 case 7946:
3692  0 ret = 7938;
3693  0 break;
3694  0 case 7947:
3695  0 ret = 7939;
3696  0 break;
3697  0 case 7948:
3698  0 ret = 7940;
3699  0 break;
3700  0 case 7949:
3701  0 ret = 7941;
3702  0 break;
3703  0 case 7950:
3704  0 ret = 7942;
3705  0 break;
3706  0 case 7951:
3707  0 ret = 7943;
3708  0 break;
3709  0 case 7960:
3710  0 ret = 7952;
3711  0 break;
3712  0 case 7961:
3713  0 ret = 7953;
3714  0 break;
3715  0 case 7962:
3716  0 ret = 7954;
3717  0 break;
3718  0 case 7963:
3719  0 ret = 7955;
3720  0 break;
3721  0 case 7964:
3722  0 ret = 7956;
3723  0 break;
3724  0 case 7965:
3725  0 ret = 7957;
3726  0 break;
3727  0 case 7976:
3728  0 ret = 7968;
3729  0 break;
3730  0 case 7977:
3731  0 ret = 7969;
3732  0 break;
3733  0 case 7978:
3734  0 ret = 7970;
3735  0 break;
3736  0 case 7979:
3737  0 ret = 7971;
3738  0 break;
3739  0 case 7980:
3740  0 ret = 7972;
3741  0 break;
3742  0 case 7981:
3743  0 ret = 7973;
3744  0 break;
3745  0 case 7982:
3746  0 ret = 7974;
3747  0 break;
3748  0 case 7983:
3749  0 ret = 7975;
3750  0 break;
3751  0 case 7992:
3752  0 ret = 7984;
3753  0 break;
3754  0 case 7993:
3755  0 ret = 7985;
3756  0 break;
3757  0 case 7994:
3758  0 ret = 7986;
3759  0 break;
3760  0 case 7995:
3761  0 ret = 7987;
3762  0 break;
3763  0 case 7996:
3764  0 ret = 7988;
3765  0 break;
3766  0 case 7997:
3767  0 ret = 7989;
3768  0 break;
3769  0 case 7998:
3770  0 ret = 7990;
3771  0 break;
3772  0 case 7999:
3773  0 ret = 7991;
3774  0 break;
3775  0 case 8008:
3776  0 ret = 8000;
3777  0 break;
3778  0 case 8009:
3779  0 ret = 8001;
3780  0 break;
3781  0 case 8010:
3782  0 ret = 8002;
3783  0 break;
3784  0 case 8011:
3785  0 ret = 8003;
3786  0 break;
3787  0 case 8012:
3788  0 ret = 8004;
3789  0 break;
3790  0 case 8013:
3791  0 ret = 8005;
3792  0 break;
3793  0 case 8025:
3794  0 ret = 8017;
3795  0 break;
3796  0 case 8027:
3797  0 ret = 8019;
3798  0 break;
3799  0 case 8029:
3800  0 ret = 8021;
3801  0 break;
3802  0 case 8031:
3803  0 ret = 8023;
3804  0 break;
3805  0 case 8040:
3806  0 ret = 8032;
3807  0 break;
3808  0 case 8041:
3809  0 ret = 8033;
3810  0 break;
3811  0 case 8042:
3812  0 ret = 8034;
3813  0 break;
3814  0 case 8043:
3815  0 ret = 8035;
3816  0 break;
3817  0 case 8044:
3818  0 ret = 8036;
3819  0 break;
3820  0 case 8045:
3821  0 ret = 8037;
3822  0 break;
3823  0 case 8046:
3824  0 ret = 8038;
3825  0 break;
3826  0 case 8047:
3827  0 ret = 8039;
3828  0 break;
3829  0 case 8072:
3830  0 ret = 8064;
3831  0 break;
3832  0 case 8073:
3833  0 ret = 8065;
3834  0 break;
3835  0 case 8074:
3836  0 ret = 8066;
3837  0 break;
3838  0 case 8075:
3839  0 ret = 8067;
3840  0 break;
3841  0 case 8076:
3842  0 ret = 8068;
3843  0 break;
3844  0 case 8077:
3845  0 ret = 8069;
3846  0 break;
3847  0 case 8078:
3848  0 ret = 8070;
3849  0 break;
3850  0 case 8079:
3851  0 ret = 8071;
3852  0 break;
3853  0 case 8088:
3854  0 ret = 8080;
3855  0 break;
3856  0 case 8089:
3857  0 ret = 8081;
3858  0 break;
3859  0 case 8090:
3860  0 ret = 8082;
3861  0 break;
3862  0 case 8091:
3863  0 ret = 8083;
3864  0 break;
3865  0 case 8092:
3866  0 ret = 8084;
3867  0 break;
3868  0 case 8093:
3869  0 ret = 8085;
3870  0 break;
3871  0 case 8094:
3872  0 ret = 8086;
3873  0 break;
3874  0 case 8095:
3875  0 ret = 8087;
3876  0 break;
3877  0 case 8104:
3878  0 ret = 8096;
3879  0 break;
3880  0 case 8105:
3881  0 ret = 8097;
3882  0 break;
3883  0 case 8106:
3884  0 ret = 8098;
3885  0 break;
3886  0 case 8107:
3887  0 ret = 8099;
3888  0 break;
3889  0 case 8108:
3890  0 ret = 8100;
3891  0 break;
3892  0 case 8109:
3893  0 ret = 8101;
3894  0 break;
3895  0 case 8110:
3896  0 ret = 8102;
3897  0 break;
3898  0 case 8111:
3899  0 ret = 8103;
3900  0 break;
3901  0 case 8120:
3902  0 ret = 8112;
3903  0 break;
3904  0 case 8121:
3905  0 ret = 8113;
3906  0 break;
3907  0 case 8122:
3908  0 ret = 8048;
3909  0 break;
3910  0 case 8123:
3911  0 ret = 8049;
3912  0 break;
3913  0 case 8124:
3914  0 ret = 8115;
3915  0 break;
3916  0 case 8136:
3917  0 ret = 8050;
3918  0 break;
3919  0 case 8137:
3920  0 ret = 8051;
3921  0 break;
3922  0 case 8138:
3923  0 ret = 8052;
3924  0 break;
3925  0 case 8139:
3926  0 ret = 8053;
3927  0 break;
3928  0 case 8140:
3929  0 ret = 8131;
3930  0 break;
3931  0 case 8152:
3932  0 ret = 8144;
3933  0 break;
3934  0 case 8153:
3935  0 ret = 8145;
3936  0 break;
3937  0 case 8154:
3938  0 ret = 8054;
3939  0 break;
3940  0 case 8155:
3941  0 ret = 8055;
3942  0 break;
3943  0 case 8168:
3944  0 ret = 8160;
3945  0 break;
3946  0 case 8169:
3947  0 ret = 8161;
3948  0 break;
3949  0 case 8170:
3950  0 ret = 8058;
3951  0 break;
3952  0 case 8171:
3953  0 ret = 8059;
3954  0 break;
3955  0 case 8172:
3956  0 ret = 8165;
3957  0 break;
3958  0 case 8184:
3959  0 ret = 8056;
3960  0 break;
3961  0 case 8185:
3962  0 ret = 8057;
3963  0 break;
3964  0 case 8186:
3965  0 ret = 8060;
3966  0 break;
3967  0 case 8187:
3968  0 ret = 8061;
3969  0 break;
3970  0 case 8188:
3971  0 ret = 8179;
3972  0 break;
3973  0 case 8544:
3974  0 ret = 8560;
3975  0 break;
3976  0 case 8545:
3977  0 ret = 8561;
3978  0 break;
3979  0 case 8546:
3980  0 ret = 8562;
3981  0 break;
3982  0 case 8547:
3983  0 ret = 8563;
3984  0 break;
3985  0 case 8548:
3986  0 ret = 8564;
3987  0 break;
3988  0 case 8549:
3989  0 ret = 8565;
3990  0 break;
3991  0 case 8550:
3992  0 ret = 8566;
3993  0 break;
3994  0 case 8551:
3995  0 ret = 8567;
3996  0 break;
3997  0 case 8552:
3998  0 ret = 8568;
3999  0 break;
4000  0 case 8553:
4001  0 ret = 8569;
4002  0 break;
4003  0 case 8554:
4004  0 ret = 8570;
4005  0 break;
4006  0 case 8555:
4007  0 ret = 8571;
4008  0 break;
4009  0 case 8556:
4010  0 ret = 8572;
4011  0 break;
4012  0 case 8557:
4013  0 ret = 8573;
4014  0 break;
4015  0 case 8558:
4016  0 ret = 8574;
4017  0 break;
4018  0 case 8559:
4019  0 ret = 8575;
4020  0 break;
4021  0 case 9398:
4022  0 ret = 9424;
4023  0 break;
4024  0 case 9399:
4025  0 ret = 9425;
4026  0 break;
4027  0 case 9400:
4028  0 ret = 9426;
4029  0 break;
4030  0 case 9401:
4031  0 ret = 9427;
4032  0 break;
4033  0 case 9402:
4034  0 ret = 9428;
4035  0 break;
4036  0 case 9403:
4037  0 ret = 9429;
4038  0 break;
4039  0 case 9404:
4040  0 ret = 9430;
4041  0 break;
4042  0 case 9405:
4043  0 ret = 9431;
4044  0 break;
4045  0 case 9406:
4046  0 ret = 9432;
4047  0 break;
4048  0 case 9407:
4049  0 ret = 9433;
4050  0 break;
4051  0 case 9408:
4052  0 ret = 9434;
4053  0 break;
4054  0 case 9409:
4055  0 ret = 9435;
4056  0 break;
4057  0 case 9410:
4058  0 ret = 9436;
4059  0 break;
4060  0 case 9411:
4061  0 ret = 9437;
4062  0 break;
4063  0 case 9412:
4064  0 ret = 9438;
4065  0 break;
4066  0 case 9413:
4067  0 ret = 9439;
4068  0 break;
4069  0 case 9414:
4070  0 ret = 9440;
4071  0 break;
4072  0 case 9415:
4073  0 ret = 9441;
4074  0 break;
4075  0 case 9416:
4076  0 ret = 9442;
4077  0 break;
4078  0 case 9417:
4079  0 ret = 9443;
4080  0 break;
4081  0 case 9418:
4082  0 ret = 9444;
4083  0 break;
4084  0 case 9419:
4085  0 ret = 9445;
4086  0 break;
4087  0 case 9420:
4088  0 ret = 9446;
4089  0 break;
4090  0 case 9421:
4091  0 ret = 9447;
4092  0 break;
4093  0 case 9422:
4094  0 ret = 9448;
4095  0 break;
4096  0 case 9423:
4097  0 ret = 9449;
4098  0 break;
4099  0 case 65313:
4100  0 ret = 65345;
4101  0 break;
4102  0 case 65314:
4103  0 ret = 65346;
4104  0 break;
4105  0 case 65315:
4106  0 ret = 65347;
4107  0 break;
4108  0 case 65316:
4109  0 ret = 65348;
4110  0 break;
4111  0 case 65317:
4112  0 ret = 65349;
4113  0 break;
4114  0 case 65318:
4115  0 ret = 65350;
4116  0 break;
4117  0 case 65319:
4118  0 ret = 65351;
4119  0 break;
4120  0 case 65320:
4121  0 ret = 65352;
4122  0 break;
4123  0 case 65321:
4124  0 ret = 65353;
4125  0 break;
4126  0 case 65322:
4127  0 ret = 65354;
4128  0 break;
4129  0 case 65323:
4130  0 ret = 65355;
4131  0 break;
4132  0 case 65324:
4133  0 ret = 65356;
4134  0 break;
4135  0 case 65325:
4136  0 ret = 65357;
4137  0 break;
4138  0 case 65326:
4139  0 ret = 65358;
4140  0 break;
4141  0 case 65327:
4142  0 ret = 65359;
4143  0 break;
4144  0 case 65328:
4145  0 ret = 65360;
4146  0 break;
4147  0 case 65329:
4148  0 ret = 65361;
4149  0 break;
4150  0 case 65330:
4151  0 ret = 65362;
4152  0 break;
4153  0 case 65331:
4154  0 ret = 65363;
4155  0 break;
4156  0 case 65332:
4157  0 ret = 65364;
4158  0 break;
4159  0 case 65333:
4160  0 ret = 65365;
4161  0 break;
4162  0 case 65334:
4163  0 ret = 65366;
4164  0 break;
4165  0 case 65335:
4166  0 ret = 65367;
4167  0 break;
4168  0 case 65336:
4169  0 ret = 65368;
4170  0 break;
4171  0 case 65337:
4172  0 ret = 65369;
4173  0 break;
4174  0 case 65338:
4175  0 ret = 65370;
4176  0 break;
4177    }
4178  0 return (char) ret;
4179    }
4180  33221 return Character.toLowerCase(c);
4181    }
4182   
4183    /** Convert a String to title case. */
 
4184  0 toggle public static String toTitleCase(String s)
4185    {
4186  0 StringBuffer sb = new StringBuffer();
4187  0 for (int i = 0; i < s.length(); i++)
4188    {
4189  0 sb.append(CaseMgr.toTitleCase(s.charAt(i)));
4190    }
4191  0 return sb.toString();
4192    }
4193   
4194    /** Convert a String to upper case. */
 
4195  0 toggle public static String toUpperCase(String s)
4196    {
4197  0 StringBuffer sb = new StringBuffer();
4198  0 for (int i = 0; i < s.length(); i++)
4199    {
4200  0 sb.append(CaseMgr.toUpperCase(s.charAt(i)));
4201    }
4202  0 return sb.toString();
4203    }
4204   
4205    /** Convert a String to lower case. */
 
4206  0 toggle public static String toLowerCase(String s)
4207    {
4208  0 StringBuffer sb = new StringBuffer();
4209  0 for (int i = 0; i < s.length(); i++)
4210    {
4211  0 sb.append(CaseMgr.toLowerCase(s.charAt(i)));
4212    }
4213  0 return sb.toString();
4214    }
4215   
4216    /** Convert a character to title case. */
 
4217  33221 toggle public static char toTitleCase(char c)
4218    {
4219  33221 if (java_1_0)
4220    {
4221  0 int ret = (int) toUpperCase(c);
4222  0 switch (c)
4223    {
4224  0 case 452:
4225  0 ret = 453;
4226  0 break;
4227  0 case 453:
4228  0 ret = 453;
4229  0 break;
4230  0 case 454:
4231  0 ret = 453;
4232  0 break;
4233  0 case 455:
4234  0 ret = 456;
4235  0 break;
4236  0 case 456:
4237  0 ret = 456;
4238  0 break;
4239  0 case 457:
4240  0 ret = 456;
4241  0 break;
4242  0 case 458:
4243  0 ret = 459;
4244  0 break;
4245  0 case 459:
4246  0 ret = 459;
4247  0 break;
4248  0 case 460:
4249  0 ret = 459;
4250  0 break;
4251  0 case 497:
4252  0 ret = 498;
4253  0 break;
4254  0 case 498:
4255  0 ret = 498;
4256  0 break;
4257  0 case 499:
4258  0 ret = 498;
4259  0 break;
4260    }
4261  0 return (char) ret;
4262    }
4263  33221 return Character.toTitleCase(c);
4264    }
4265   
4266    /**
4267    * Duplicates the regionMatches routine of String -- but makes use of the
4268    * definitions of upper, lower, and title case in this class when ignoreCase
4269    * is set.
4270    */
 
4271  0 toggle public static boolean regionMatches(StringLike s1, boolean ign, int i1,
4272    StringLike s2, int i2, int i3)
4273    {
4274  0 int itot = i2 + i3;
4275  0 if (itot > s2.length() || i1 + i3 > s1.length())
4276    {
4277  0 return false;
4278    }
4279  0 if (!ign)
4280    {
4281  0 for (int i = i2; i < itot; i++)
4282    {
4283  0 if (s2.charAt(i) != s1.charAt(i1++))
4284    {
4285  0 return false;
4286    }
4287    }
4288    }
4289    else
4290    {
4291  0 for (int i = i2; i < itot; i++)
4292    {
4293  0 if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))
4294    {
4295  0 return false;
4296    }
4297    }
4298    }
4299  0 return true;
4300    }
4301   
4302    /**
4303    * Duplicates the regionMatches routine of String -- but makes use of the
4304    * definitions of upper, lower, and title case in this class when ignoreCase
4305    * is set.
4306    */
 
4307  0 toggle public static boolean regionMatches(String s1, boolean ign, int i1,
4308    StringLike s2, int i2, int i3)
4309    {
4310  0 int itot = i2 + i3;
4311  0 if (itot > s2.length() || i1 + i3 > s1.length())
4312    {
4313  0 return false;
4314    }
4315  0 if (!ign)
4316    {
4317  0 for (int i = i2; i < itot; i++)
4318    {
4319  0 if (s2.charAt(i) != s1.charAt(i1++))
4320    {
4321  0 return false;
4322    }
4323    }
4324    }
4325    else
4326    {
4327  0 for (int i = i2; i < itot; i++)
4328    {
4329  0 if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))
4330    {
4331  0 return false;
4332    }
4333    }
4334    }
4335  0 return true;
4336    }
4337   
4338    /**
4339    * Duplicates the regionMatches routine of String -- but makes use of the
4340    * definitions of upper, lower, and title case in this class when ignoreCase
4341    * is set.
4342    */
 
4343  0 toggle public static boolean regionMatches(StringLike s1, boolean ign, int i1,
4344    String s2, int i2, int i3)
4345    {
4346  0 int itot = i2 + i3;
4347  0 if (itot > s2.length() || i1 + i3 > s1.length())
4348    {
4349  0 return false;
4350    }
4351  0 if (!ign)
4352    {
4353  0 for (int i = i2; i < itot; i++)
4354    {
4355  0 if (s2.charAt(i) != s1.charAt(i1++))
4356    {
4357  0 return false;
4358    }
4359    }
4360    }
4361    else
4362    {
4363  0 for (int i = i2; i < itot; i++)
4364    {
4365  0 if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))
4366    {
4367  0 return false;
4368    }
4369    }
4370    }
4371  0 return true;
4372    }
4373   
4374    /**
4375    * Duplicates the regionMatches routine of String -- but makes use of the
4376    * definitions of upper, lower, and title case in this class when ignoreCase
4377    * is set.
4378    */
 
4379  0 toggle public static boolean regionMatches(String s1, boolean ign, int i1,
4380    String s2, int i2, int i3)
4381    {
4382  0 int itot = i2 + i3;
4383  0 if (itot > s2.length() || i1 + i3 > s1.length())
4384    {
4385  0 return false;
4386    }
4387  0 if (!ign)
4388    {
4389  0 for (int i = i2; i < itot; i++)
4390    {
4391  0 if (s2.charAt(i) != s1.charAt(i1++))
4392    {
4393  0 return false;
4394    }
4395    }
4396    }
4397    else
4398    {
4399  0 for (int i = i2; i < itot; i++)
4400    {
4401  0 if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))
4402    {
4403  0 return false;
4404    }
4405    }
4406    }
4407  0 return true;
4408    }
4409    }