summaryrefslogtreecommitdiff
path: root/lib/unicore/Bidirectional.pl
blob: 54e7012b5a1c46a61fbdb661a9dbbda1249080c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
# This file is built by ./mktables from e.g. UnicodeData.txt.
# Any changes made here will be lost!

return <<'END';
0000	0008	BN
0009		S
000A		B
000B		S
000C		WS
000D		B
000E	001B	BN
001C	001E	B
001F		S
0020		WS
0021	0022	ON
0023	0025	ET
0026	002A	ON
002B		ET
002C		CS
002D		ET
002E		CS
002F		ES
0030	0039	EN
003A		CS
003B	0040	ON
0041	005A	L
005B	0060	ON
0061	007A	L
007B	007E	ON
007F	0084	BN
0085		B
0086	009F	BN
00A0		CS
00A1		ON
00A2	00A5	ET
00A6	00A9	ON
00AA		L
00AB	00AF	ON
00B0	00B1	ET
00B2	00B3	EN
00B4		ON
00B5		L
00B6	00B8	ON
00B9		EN
00BA		L
00BB	00BF	ON
00C0	00D6	L
00D7		ON
00D8	00F6	L
00F7		ON
00F8	0236	L
0250	02B8	L
02B9	02BA	ON
02BB	02C1	L
02C2	02CF	ON
02D0	02D1	L
02D2	02DF	ON
02E0	02E4	L
02E5	02ED	ON
02EE		L
02EF	02FF	ON
0300	0357	NSM
035D	036F	NSM
0374	0375	ON
037A		L
037E		ON
0384	0385	ON
0386		L
0387		ON
0388	038A	L
038C		L
038E	03A1	L
03A3	03CE	L
03D0	03F5	L
03F6		ON
03F7	03FB	L
0400	0482	L
0483	0486	NSM
0488	0489	NSM
048A	04CE	L
04D0	04F5	L
04F8	04F9	L
0500	050F	L
0531	0556	L
0559	055F	L
0561	0587	L
0589		L
058A		ON
0591	05A1	NSM
05A3	05B9	NSM
05BB	05BD	NSM
05BE		R
05BF		NSM
05C0		R
05C1	05C2	NSM
05C3		R
05C4		NSM
05D0	05EA	R
05F0	05F4	R
0600	0603	AL
060C		CS
060D		AL
060E	060F	ON
0610	0615	NSM
061B		AL
061F		AL
0621	063A	AL
0640	064A	AL
064B	0658	NSM
0660	0669	AN
066A		ET
066B	066C	AN
066D	066F	AL
0670		NSM
0671	06D5	AL
06D6	06DC	NSM
06DD		AL
06DE	06E4	NSM
06E5	06E6	AL
06E7	06E8	NSM
06E9		ON
06EA	06ED	NSM
06EE	06EF	AL
06F0	06F9	EN
06FA	070D	AL
070F		BN
0710		AL
0711		NSM
0712	072F	AL
0730	074A	NSM
074D	074F	AL
0780	07A5	AL
07A6	07B0	NSM
07B1		AL
0901	0902	NSM
0903	0939	L
093C		NSM
093D	0940	L
0941	0948	NSM
0949	094C	L
094D		NSM
0950		L
0951	0954	NSM
0958	0961	L
0962	0963	NSM
0964	0970	L
0981		NSM
0982	0983	L
0985	098C	L
098F	0990	L
0993	09A8	L
09AA	09B0	L
09B2		L
09B6	09B9	L
09BC		NSM
09BD	09C0	L
09C1	09C4	NSM
09C7	09C8	L
09CB	09CC	L
09CD		NSM
09D7		L
09DC	09DD	L
09DF	09E1	L
09E2	09E3	NSM
09E6	09F1	L
09F2	09F3	ET
09F4	09FA	L
0A01	0A02	NSM
0A03		L
0A05	0A0A	L
0A0F	0A10	L
0A13	0A28	L
0A2A	0A30	L
0A32	0A33	L
0A35	0A36	L
0A38	0A39	L
0A3C		NSM
0A3E	0A40	L
0A41	0A42	NSM
0A47	0A48	NSM
0A4B	0A4D	NSM
0A59	0A5C	L
0A5E		L
0A66	0A6F	L
0A70	0A71	NSM
0A72	0A74	L
0A81	0A82	NSM
0A83		L
0A85	0A8D	L
0A8F	0A91	L
0A93	0AA8	L
0AAA	0AB0	L
0AB2	0AB3	L
0AB5	0AB9	L
0ABC		NSM
0ABD	0AC0	L
0AC1	0AC5	NSM
0AC7	0AC8	NSM
0AC9		L
0ACB	0ACC	L
0ACD		NSM
0AD0		L
0AE0	0AE1	L
0AE2	0AE3	NSM
0AE6	0AEF	L
0AF1		ET
0B01		NSM
0B02	0B03	L
0B05	0B0C	L
0B0F	0B10	L
0B13	0B28	L
0B2A	0B30	L
0B32	0B33	L
0B35	0B39	L
0B3C		NSM
0B3D	0B3E	L
0B3F		NSM
0B40		L
0B41	0B43	NSM
0B47	0B48	L
0B4B	0B4C	L
0B4D		NSM
0B56		NSM
0B57		L
0B5C	0B5D	L
0B5F	0B61	L
0B66	0B71	L
0B82		NSM
0B83		L
0B85	0B8A	L
0B8E	0B90	L
0B92	0B95	L
0B99	0B9A	L
0B9C		L
0B9E	0B9F	L
0BA3	0BA4	L
0BA8	0BAA	L
0BAE	0BB5	L
0BB7	0BB9	L
0BBE	0BBF	L
0BC0		NSM
0BC1	0BC2	L
0BC6	0BC8	L
0BCA	0BCC	L
0BCD		NSM
0BD7		L
0BE7	0BF2	L
0BF3	0BF8	ON
0BF9		ET
0BFA		ON
0C01	0C03	L
0C05	0C0C	L
0C0E	0C10	L
0C12	0C28	L
0C2A	0C33	L
0C35	0C39	L
0C3E	0C40	NSM
0C41	0C44	L
0C46	0C48	NSM
0C4A	0C4D	NSM
0C55	0C56	NSM
0C60	0C61	L
0C66	0C6F	L
0C82	0C83	L
0C85	0C8C	L
0C8E	0C90	L
0C92	0CA8	L
0CAA	0CB3	L
0CB5	0CB9	L
0CBC		NSM
0CBD	0CC4	L
0CC6	0CC8	L
0CCA	0CCB	L
0CCC	0CCD	NSM
0CD5	0CD6	L
0CDE		L
0CE0	0CE1	L
0CE6	0CEF	L
0D02	0D03	L
0D05	0D0C	L
0D0E	0D10	L
0D12	0D28	L
0D2A	0D39	L
0D3E	0D40	L
0D41	0D43	NSM
0D46	0D48	L
0D4A	0D4C	L
0D4D		NSM
0D57		L
0D60	0D61	L
0D66	0D6F	L
0D82	0D83	L
0D85	0D96	L
0D9A	0DB1	L
0DB3	0DBB	L
0DBD		L
0DC0	0DC6	L
0DCA		NSM
0DCF	0DD1	L
0DD2	0DD4	NSM
0DD6		NSM
0DD8	0DDF	L
0DF2	0DF4	L
0E01	0E30	L
0E31		NSM
0E32	0E33	L
0E34	0E3A	NSM
0E3F		ET
0E40	0E46	L
0E47	0E4E	NSM
0E4F	0E5B	L
0E81	0E82	L
0E84		L
0E87	0E88	L
0E8A		L
0E8D		L
0E94	0E97	L
0E99	0E9F	L
0EA1	0EA3	L
0EA5		L
0EA7		L
0EAA	0EAB	L
0EAD	0EB0	L
0EB1		NSM
0EB2	0EB3	L
0EB4	0EB9	NSM
0EBB	0EBC	NSM
0EBD		L
0EC0	0EC4	L
0EC6		L
0EC8	0ECD	NSM
0ED0	0ED9	L
0EDC	0EDD	L
0F00	0F17	L
0F18	0F19	NSM
0F1A	0F34	L
0F35		NSM
0F36		L
0F37		NSM
0F38		L
0F39		NSM
0F3A	0F3D	ON
0F3E	0F47	L
0F49	0F6A	L
0F71	0F7E	NSM
0F7F		L
0F80	0F84	NSM
0F85		L
0F86	0F87	NSM
0F88	0F8B	L
0F90	0F97	NSM
0F99	0FBC	NSM
0FBE	0FC5	L
0FC6		NSM
0FC7	0FCC	L
0FCF		L
1000	1021	L
1023	1027	L
1029	102A	L
102C		L
102D	1030	NSM
1031		L
1032		NSM
1036	1037	NSM
1038		L
1039		NSM
1040	1057	L
1058	1059	NSM
10A0	10C5	L
10D0	10F8	L
10FB		L
1100	1159	L
115F	11A2	L
11A8	11F9	L
1200	1206	L
1208	1246	L
1248		L
124A	124D	L
1250	1256	L
1258		L
125A	125D	L
1260	1286	L
1288		L
128A	128D	L
1290	12AE	L
12B0		L
12B2	12B5	L
12B8	12BE	L
12C0		L
12C2	12C5	L
12C8	12CE	L
12D0	12D6	L
12D8	12EE	L
12F0	130E	L
1310		L
1312	1315	L
1318	131E	L
1320	1346	L
1348	135A	L
1361	137C	L
13A0	13F4	L
1401	1676	L
1680		WS
1681	169A	L
169B	169C	ON
16A0	16F0	L
1700	170C	L
170E	1711	L
1712	1714	NSM
1720	1731	L
1732	1734	NSM
1735	1736	L
1740	1751	L
1752	1753	NSM
1760	176C	L
176E	1770	L
1772	1773	NSM
1780	17B6	L
17B7	17BD	NSM
17BE	17C5	L
17C6		NSM
17C7	17C8	L
17C9	17D3	NSM
17D4	17DA	L
17DB		ET
17DC		L
17DD		NSM
17E0	17E9	L
17F0	17F9	ON
1800	180A	ON
180B	180D	NSM
180E		WS
1810	1819	L
1820	1877	L
1880	18A8	L
18A9		NSM
1900	191C	L
1920	1922	NSM
1923	1926	L
1927	192B	NSM
1930	1931	L
1932		NSM
1933	1938	L
1939	193B	NSM
1940		ON
1944	1945	ON
1946	196D	L
1970	1974	L
19E0	19FF	ON
1D00	1D6B	L
1E00	1E9B	L
1EA0	1EF9	L
1F00	1F15	L
1F18	1F1D	L
1F20	1F45	L
1F48	1F4D	L
1F50	1F57	L
1F59		L
1F5B		L
1F5D		L
1F5F	1F7D	L
1F80	1FB4	L
1FB6	1FBC	L
1FBD		ON
1FBE		L
1FBF	1FC1	ON
1FC2	1FC4	L
1FC6	1FCC	L
1FCD	1FCF	ON
1FD0	1FD3	L
1FD6	1FDB	L
1FDD	1FDF	ON
1FE0	1FEC	L
1FED	1FEF	ON
1FF2	1FF4	L
1FF6	1FFC	L
1FFD	1FFE	ON
2000	200A	WS
200B	200D	BN
200E		L
200F		R
2010	2027	ON
2028		WS
2029		B
202A		LRE
202B		RLE
202C		PDF
202D		LRO
202E		RLO
202F		WS
2030	2034	ET
2035	2054	ON
2057		ON
205F		WS
2060	2063	BN
206A	206F	BN
2070		EN
2071		L
2074	2079	EN
207A	207B	ET
207C	207E	ON
207F		L
2080	2089	EN
208A	208B	ET
208C	208E	ON
20A0	20B1	ET
20D0	20EA	NSM
2100	2101	ON
2102		L
2103	2106	ON
2107		L
2108	2109	ON
210A	2113	L
2114		ON
2115		L
2116	2118	ON
2119	211D	L
211E	2123	ON
2124		L
2125		ON
2126		L
2127		ON
2128		L
2129		ON
212A	212D	L
212E		ET
212F	2131	L
2132		ON
2133	2139	L
213A	213B	ON
213D	213F	L
2140	2144	ON
2145	2149	L
214A	214B	ON
2153	215F	ON
2160	2183	L
2190	2211	ON
2212	2213	ET
2214	2335	ON
2336	237A	L
237B	2394	ON
2395		L
2396	23D0	ON
2400	2426	ON
2440	244A	ON
2460	249B	EN
249C	24E9	L
24EA		EN
24EB	2617	ON
2619	267D	ON
2680	2691	ON
26A0	26A1	ON
2701	2704	ON
2706	2709	ON
270C	2727	ON
2729	274B	ON
274D		ON
274F	2752	ON
2756		ON
2758	275E	ON
2761	2794	ON
2798	27AF	ON
27B1	27BE	ON
27D0	27EB	ON
27F0	2B0D	ON
2E80	2E99	ON
2E9B	2EF3	ON
2F00	2FD5	ON
2FF0	2FFB	ON
3000		WS
3001	3004	ON
3005	3007	L
3008	3020	ON
3021	3029	L
302A	302F	NSM
3030		ON
3031	3035	L
3036	3037	ON
3038	303C	L
303D	303F	ON
3041	3096	L
3099	309A	NSM
309B	309C	ON
309D	309F	L
30A0		ON
30A1	30FA	L
30FB		ON
30FC	30FF	L
3105	312C	L
3131	318E	L
3190	31B7	L
31F0	321C	L
321D	321E	ON
3220	3243	L
3250	325F	ON
3260	327B	L
327C	327D	ON
327F	32B0	L
32B1	32BF	ON
32C0	32CB	L
32CC	32CF	ON
32D0	32FE	L
3300	3376	L
3377	337A	ON
337B	33DD	L
33DE	33DF	ON
33E0	33FE	L
33FF		ON
4DC0	4DFF	ON
A000	A48C	L
A490	A4C6	ON
F900	FA2D	L
FA30	FA6A	L
FB00	FB06	L
FB13	FB17	L
FB1D		R
FB1E		NSM
FB1F	FB28	R
FB29		ET
FB2A	FB36	R
FB38	FB3C	R
FB3E		R
FB40	FB41	R
FB43	FB44	R
FB46	FB4F	R
FB50	FBB1	AL
FBD3	FD3D	AL
FD3E	FD3F	ON
FD50	FD8F	AL
FD92	FDC7	AL
FDF0	FDFC	AL
FDFD		ON
FE00	FE0F	NSM
FE20	FE23	NSM
FE30	FE4F	ON
FE50		CS
FE51		ON
FE52		CS
FE54		ON
FE55		CS
FE56	FE5E	ON
FE5F		ET
FE60	FE61	ON
FE62	FE63	ET
FE64	FE66	ON
FE68		ON
FE69	FE6A	ET
FE6B		ON
FE70	FE74	AL
FE76	FEFC	AL
FEFF		BN
FF01	FF02	ON
FF03	FF05	ET
FF06	FF0A	ON
FF0B		ET
FF0C		CS
FF0D		ET
FF0E		CS
FF0F		ES
FF10	FF19	EN
FF1A		CS
FF1B	FF20	ON
FF21	FF3A	L
FF3B	FF40	ON
FF41	FF5A	L
FF5B	FF65	ON
FF66	FFBE	L
FFC2	FFC7	L
FFCA	FFCF	L
FFD2	FFD7	L
FFDA	FFDC	L
FFE0	FFE1	ET
FFE2	FFE4	ON
FFE5	FFE6	ET
FFE8	FFEE	ON
FFF9	FFFB	BN
FFFC	FFFD	ON
10000	1000B	L
1000D	10026	L
10028	1003A	L
1003C	1003D	L
1003F	1004D	L
10050	1005D	L
10080	100FA	L
10100		L
10101		ON
10102		L
10107	10133	L
10137	1013F	L
10300	1031E	L
10320	10323	L
10330	1034A	L
10380	1039D	L
1039F		L
10400	1049D	L
104A0	104A9	L
10800	10805	R
10808		R
1080A	10835	R
10837	10838	R
1083C		R
1083F		R
1D000	1D0F5	L
1D100	1D126	L
1D12A	1D166	L
1D167	1D169	NSM
1D16A	1D172	L
1D173	1D17A	BN
1D17B	1D182	NSM
1D183	1D184	L
1D185	1D18B	NSM
1D18C	1D1A9	L
1D1AA	1D1AD	NSM
1D1AE	1D1DD	L
1D300	1D356	ON
1D400	1D454	L
1D456	1D49C	L
1D49E	1D49F	L
1D4A2		L
1D4A5	1D4A6	L
1D4A9	1D4AC	L
1D4AE	1D4B9	L
1D4BB		L
1D4BD	1D4C3	L
1D4C5	1D505	L
1D507	1D50A	L
1D50D	1D514	L
1D516	1D51C	L
1D51E	1D539	L
1D53B	1D53E	L
1D540	1D544	L
1D546		L
1D54A	1D550	L
1D552	1D6A3	L
1D6A8	1D7C9	L
1D7CE	1D7FF	EN
2F800	2FA1D	L
E0001		BN
E0020	E007F	BN
E0100	E01EF	NSM
END