This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
locale.c: savepv() of getenv()
[perl5.git] / ebcdic_tables.h
1 /* -*- buffer-read-only: t -*-
2  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
3  * This file is built by regen/ebcdic.pl.
4  * Any changes made here will be lost!
5  */
6
7
8 #ifndef H_EBCDIC_TABLES   /* Guard against nested #includes */
9 #define H_EBCDIC_TABLES   1
10
11 /* This file contains definitions for various tables used in EBCDIC handling.
12  * More info is in utfebcdic.h */
13
14 #if 'A' == 193 /* EBCDIC 1047 */ \
15      && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
16      && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
17      && '$' == 91 && '@' == 124 && '`' == 121
18
19 /* Index is ASCII platform code point; value is EBCDIC 1047 equivalent */
20 EXTCONST U8 PL_a2e[] = {
21    0,   1,   2,   3,  55,  45,  46,  47,  22,   5,  21,  11,  12,  13,  14,  15,
22   16,  17,  18,  19,  60,  61,  50,  38,  24,  25,  63,  39,  28,  29,  30,  31,
23   64,  90, 127, 123,  91, 108,  80, 125,  77,  93,  92,  78, 107,  96,  75,  97,
24  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122,  94,  76, 126, 110, 111,
25  124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
26  215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 173, 224, 189,  95, 109,
27  121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
28  151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192,  79, 208, 161,   7,
29   32,  33,  34,  35,  36,  37,   6,  23,  40,  41,  42,  43,  44,   9,  10,  27,
30   48,  49,  26,  51,  52,  53,  54,   8,  56,  57,  58,  59,   4,  20,  62, 255,
31   65, 170,  74, 177, 159, 178, 106, 181, 187, 180, 154, 138, 176, 202, 175, 188,
32  144, 143, 234, 250, 190, 160, 182, 179, 157, 218, 155, 139, 183, 184, 185, 171,
33  100, 101,  98, 102,  99, 103, 158, 104, 116, 113, 114, 115, 120, 117, 118, 119,
34  172, 105, 237, 238, 235, 239, 236, 191, 128, 253, 254, 251, 252, 186, 174,  89,
35   68,  69,  66,  70,  67,  71, 156,  72,  84,  81,  82,  83,  88,  85,  86,  87,
36  140,  73, 205, 206, 203, 207, 204, 225, 112, 221, 222, 219, 220, 141, 142, 223
37 };
38
39 /* Index is EBCDIC 1047 code point; value is ASCII platform equivalent */
40 EXTCONST U8 PL_e2a[] = {
41    0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,  12,  13,  14,  15,
42   16,  17,  18,  19, 157,  10,   8, 135,  24,  25, 146, 143,  28,  29,  30,  31,
43  128, 129, 130, 131, 132, 133,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
44  144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,  20,  21, 158,  26,
45   32, 160, 226, 228, 224, 225, 227, 229, 231, 241, 162,  46,  60,  40,  43, 124,
46   38, 233, 234, 235, 232, 237, 238, 239, 236, 223,  33,  36,  42,  41,  59,  94,
47   45,  47, 194, 196, 192, 193, 195, 197, 199, 209, 166,  44,  37,  95,  62,  63,
48  248, 201, 202, 203, 200, 205, 206, 207, 204,  96,  58,  35,  64,  39,  61,  34,
49  216,  97,  98,  99, 100, 101, 102, 103, 104, 105, 171, 187, 240, 253, 254, 177,
50  176, 106, 107, 108, 109, 110, 111, 112, 113, 114, 170, 186, 230, 184, 198, 164,
51  181, 126, 115, 116, 117, 118, 119, 120, 121, 122, 161, 191, 208,  91, 222, 174,
52  172, 163, 165, 183, 169, 167, 182, 188, 189, 190, 221, 168, 175,  93, 180, 215,
53  123,  65,  66,  67,  68,  69,  70,  71,  72,  73, 173, 244, 246, 242, 243, 245,
54  125,  74,  75,  76,  77,  78,  79,  80,  81,  82, 185, 251, 252, 249, 250, 255,
55   92, 247,  83,  84,  85,  86,  87,  88,  89,  90, 178, 212, 214, 210, 211, 213,
56   48,  49,  50,  51,  52,  53,  54,  55,  56,  57, 179, 219, 220, 217, 218, 159
57 };
58
59 /* (Confusingly named) Index is EBCDIC 1047 I8 byte; value is
60  * EBCDIC 1047 UTF-EBCDIC equivalent */
61 EXTCONST U8 PL_utf2e[] = {
62    0,   1,   2,   3,  55,  45,  46,  47,  22,   5,  21,  11,  12,  13,  14,  15,
63   16,  17,  18,  19,  60,  61,  50,  38,  24,  25,  63,  39,  28,  29,  30,  31,
64   64,  90, 127, 123,  91, 108,  80, 125,  77,  93,  92,  78, 107,  96,  75,  97,
65  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122,  94,  76, 126, 110, 111,
66  124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
67  215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 173, 224, 189,  95, 109,
68  121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
69  151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192,  79, 208, 161,   7,
70   32,  33,  34,  35,  36,  37,   6,  23,  40,  41,  42,  43,  44,   9,  10,  27,
71   48,  49,  26,  51,  52,  53,  54,   8,  56,  57,  58,  59,   4,  20,  62, 255,
72   65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  81,  82,  83,  84,  85,  86,
73   87,  88,  89,  98,  99, 100, 101, 102, 103, 104, 105, 106, 112, 113, 114, 115,
74  116, 117, 118, 119, 120, 128, 138, 139, 140, 141, 142, 143, 144, 154, 155, 156,
75  157, 158, 159, 160, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182,
76  183, 184, 185, 186, 187, 188, 190, 191, 202, 203, 204, 205, 206, 207, 218, 219,
77  220, 221, 222, 223, 225, 234, 235, 236, 237, 238, 239, 250, 251, 252, 253, 254
78 };
79
80 /* (Confusingly named) Index is EBCDIC 1047 UTF-EBCDIC byte; value is
81  * EBCDIC 1047 I8 equivalent */
82 EXTCONST U8 PL_e2utf[] = {
83    0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,  12,  13,  14,  15,
84   16,  17,  18,  19, 157,  10,   8, 135,  24,  25, 146, 143,  28,  29,  30,  31,
85  128, 129, 130, 131, 132, 133,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
86  144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,  20,  21, 158,  26,
87   32, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,  46,  60,  40,  43, 124,
88   38, 170, 171, 172, 173, 174, 175, 176, 177, 178,  33,  36,  42,  41,  59,  94,
89   45,  47, 179, 180, 181, 182, 183, 184, 185, 186, 187,  44,  37,  95,  62,  63,
90  188, 189, 190, 191, 192, 193, 194, 195, 196,  96,  58,  35,  64,  39,  61,  34,
91  197,  97,  98,  99, 100, 101, 102, 103, 104, 105, 198, 199, 200, 201, 202, 203,
92  204, 106, 107, 108, 109, 110, 111, 112, 113, 114, 205, 206, 207, 208, 209, 210,
93  211, 126, 115, 116, 117, 118, 119, 120, 121, 122, 212, 213, 214,  91, 215, 216,
94  217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,  93, 230, 231,
95  123,  65,  66,  67,  68,  69,  70,  71,  72,  73, 232, 233, 234, 235, 236, 237,
96  125,  74,  75,  76,  77,  78,  79,  80,  81,  82, 238, 239, 240, 241, 242, 243,
97   92, 244,  83,  84,  85,  86,  87,  88,  89,  90, 245, 246, 247, 248, 249, 250,
98   48,  49,  50,  51,  52,  53,  54,  55,  56,  57, 251, 252, 253, 254, 255, 159
99 };
100
101 /* Index is EBCDIC 1047 UTF-EBCDIC byte; value is UTF8SKIP for start bytes;
102  * 1 for continuation.  Adapted from the shadow flags table in tr16.  The
103  * entries marked 9 in tr16 are continuation bytes and are marked as length 1
104  * here so that we can recover. */
105 EXTCONST U8 PL_utf8skip[] = {
106    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
107    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
108    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
109    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
110    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
111    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
112    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
113    1,   1,   1,   1,   2,   2,   2,   2,   2,   1,   1,   1,   1,   1,   1,   1,
114    2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
115    2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
116    2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   1,   2,   2,
117    2,   2,   2,   2,   2,   2,   2,   3,   3,   3,   3,   3,   3,   1,   3,   3,
118    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   3,   3,   3,   3,   3,   3,
119    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   3,   3,   4,   4,   4,   4,
120    1,   4,   1,   1,   1,   1,   1,   1,   1,   1,   4,   4,   4,   5,   5,   5,
121    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   5,   6,   6,   7,   7,   1
122 };
123
124 /* Index is EBCDIC 1047 code point; value is its lowercase equivalent */
125 EXTCONST U8 PL_latin1_lc[] = {
126    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
127   16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
128   32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
129   48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
130   64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
131   80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
132   96,  97,  66,  67,  68,  69,  70,  71,  72,  73, 106, 107, 108, 109, 110, 111,
133  112,  81,  82,  83,  84,  85,  86,  87,  88, 121, 122, 123, 124, 125, 126, 127,
134  112, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
135  144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 156, 159,
136  160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 140, 173, 142, 175,
137  176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 141, 187, 188, 189, 190, 191,
138  192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
139  208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
140  224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
141  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
142 };
143
144 /* Index is EBCDIC 1047 code point; value is its uppercase equivalent.
145  * The 'mod' in the name means that codepoints whose uppercase is above 255 or
146  * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */
147 EXTCONST U8 PL_mod_latin1_uc[] = {
148    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
149   16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
150   32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
151   48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
152   64,  65,  98,  99, 100, 101, 102, 103, 104, 105,  74,  75,  76,  77,  78,  79,
153   80, 113, 114, 115, 116, 117, 118, 119, 120, 223,  90,  91,  92,  93,  94,  95,
154   96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
155  128, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
156  128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 186, 174, 143,
157  144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 158, 159,
158  223, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
159  176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
160  192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 235, 236, 237, 238, 239,
161  208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 251, 252, 253, 254, 223,
162  224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
163  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
164 };
165
166 /* Index is EBCDIC 1047 code point; For A-Z, value is a-z; for a-z, value
167  * is A-Z; all other code points map to themselves */
168 EXTCONST U8 PL_fold[] = {
169    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
170   16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
171   32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
172   48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
173   64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
174   80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
175   96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
176  112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
177  128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 140, 141, 142, 143,
178  144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 156, 157, 158, 159,
179  160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
180  176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
181  192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
182  208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
183  224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 236, 237, 238, 239,
184  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
185 };
186
187 /* Index is EBCDIC 1047 code point; value is its other fold-pair equivalent
188  * (A => a; a => A, etc) in the 0-255 range.  If no such equivalent, value is
189  * the code point itself */
190 EXTCONST U8 PL_fold_latin1[] = {
191    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
192   16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
193   32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
194   48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
195   64,  65,  98,  99, 100, 101, 102, 103, 104, 105,  74,  75,  76,  77,  78,  79,
196   80, 113, 114, 115, 116, 117, 118, 119, 120,  89,  90,  91,  92,  93,  94,  95,
197   96,  97,  66,  67,  68,  69,  70,  71,  72,  73, 106, 107, 108, 109, 110, 111,
198  128,  81,  82,  83,  84,  85,  86,  87,  88, 121, 122, 123, 124, 125, 126, 127,
199  112, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 186, 174, 143,
200  144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 156, 159,
201  160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 140, 173, 142, 175,
202  176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 141, 187, 188, 189, 190, 191,
203  192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 235, 236, 237, 238, 239,
204  208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 251, 252, 253, 254, 223,
205  224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
206  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
207 };
208
209 #endif  /* EBCDIC 1047 */
210
211 #if 'A' == 193 /* EBCDIC 037 */ \
212      && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
213      && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
214      && '$' == 91 && '@' == 124 && '`' == 121
215
216 /* Index is ASCII platform code point; value is EBCDIC 037 equivalent */
217 EXTCONST U8 PL_a2e[] = {
218    0,   1,   2,   3,  55,  45,  46,  47,  22,   5,  37,  11,  12,  13,  14,  15,
219   16,  17,  18,  19,  60,  61,  50,  38,  24,  25,  63,  39,  28,  29,  30,  31,
220   64,  90, 127, 123,  91, 108,  80, 125,  77,  93,  92,  78, 107,  96,  75,  97,
221  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122,  94,  76, 126, 110, 111,
222  124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
223  215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 186, 224, 187, 176, 109,
224  121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
225  151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192,  79, 208, 161,   7,
226   32,  33,  34,  35,  36,  21,   6,  23,  40,  41,  42,  43,  44,   9,  10,  27,
227   48,  49,  26,  51,  52,  53,  54,   8,  56,  57,  58,  59,   4,  20,  62, 255,
228   65, 170,  74, 177, 159, 178, 106, 181, 189, 180, 154, 138,  95, 202, 175, 188,
229  144, 143, 234, 250, 190, 160, 182, 179, 157, 218, 155, 139, 183, 184, 185, 171,
230  100, 101,  98, 102,  99, 103, 158, 104, 116, 113, 114, 115, 120, 117, 118, 119,
231  172, 105, 237, 238, 235, 239, 236, 191, 128, 253, 254, 251, 252, 173, 174,  89,
232   68,  69,  66,  70,  67,  71, 156,  72,  84,  81,  82,  83,  88,  85,  86,  87,
233  140,  73, 205, 206, 203, 207, 204, 225, 112, 221, 222, 219, 220, 141, 142, 223
234 };
235
236 /* Index is EBCDIC 037 code point; value is ASCII platform equivalent */
237 EXTCONST U8 PL_e2a[] = {
238    0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,  12,  13,  14,  15,
239   16,  17,  18,  19, 157, 133,   8, 135,  24,  25, 146, 143,  28,  29,  30,  31,
240  128, 129, 130, 131, 132,  10,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
241  144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,  20,  21, 158,  26,
242   32, 160, 226, 228, 224, 225, 227, 229, 231, 241, 162,  46,  60,  40,  43, 124,
243   38, 233, 234, 235, 232, 237, 238, 239, 236, 223,  33,  36,  42,  41,  59, 172,
244   45,  47, 194, 196, 192, 193, 195, 197, 199, 209, 166,  44,  37,  95,  62,  63,
245  248, 201, 202, 203, 200, 205, 206, 207, 204,  96,  58,  35,  64,  39,  61,  34,
246  216,  97,  98,  99, 100, 101, 102, 103, 104, 105, 171, 187, 240, 253, 254, 177,
247  176, 106, 107, 108, 109, 110, 111, 112, 113, 114, 170, 186, 230, 184, 198, 164,
248  181, 126, 115, 116, 117, 118, 119, 120, 121, 122, 161, 191, 208, 221, 222, 174,
249   94, 163, 165, 183, 169, 167, 182, 188, 189, 190,  91,  93, 175, 168, 180, 215,
250  123,  65,  66,  67,  68,  69,  70,  71,  72,  73, 173, 244, 246, 242, 243, 245,
251  125,  74,  75,  76,  77,  78,  79,  80,  81,  82, 185, 251, 252, 249, 250, 255,
252   92, 247,  83,  84,  85,  86,  87,  88,  89,  90, 178, 212, 214, 210, 211, 213,
253   48,  49,  50,  51,  52,  53,  54,  55,  56,  57, 179, 219, 220, 217, 218, 159
254 };
255
256 /* (Confusingly named) Index is EBCDIC 037 I8 byte; value is
257  * EBCDIC 037 UTF-EBCDIC equivalent */
258 EXTCONST U8 PL_utf2e[] = {
259    0,   1,   2,   3,  55,  45,  46,  47,  22,   5,  37,  11,  12,  13,  14,  15,
260   16,  17,  18,  19,  60,  61,  50,  38,  24,  25,  63,  39,  28,  29,  30,  31,
261   64,  90, 127, 123,  91, 108,  80, 125,  77,  93,  92,  78, 107,  96,  75,  97,
262  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122,  94,  76, 126, 110, 111,
263  124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
264  215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 186, 224, 187, 176, 109,
265  121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
266  151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192,  79, 208, 161,   7,
267   32,  33,  34,  35,  36,  21,   6,  23,  40,  41,  42,  43,  44,   9,  10,  27,
268   48,  49,  26,  51,  52,  53,  54,   8,  56,  57,  58,  59,   4,  20,  62, 255,
269   65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  81,  82,  83,  84,  85,  86,
270   87,  88,  89,  95,  98,  99, 100, 101, 102, 103, 104, 105, 106, 112, 113, 114,
271  115, 116, 117, 118, 119, 120, 128, 138, 139, 140, 141, 142, 143, 144, 154, 155,
272  156, 157, 158, 159, 160, 170, 171, 172, 173, 174, 175, 177, 178, 179, 180, 181,
273  182, 183, 184, 185, 188, 189, 190, 191, 202, 203, 204, 205, 206, 207, 218, 219,
274  220, 221, 222, 223, 225, 234, 235, 236, 237, 238, 239, 250, 251, 252, 253, 254
275 };
276
277 /* (Confusingly named) Index is EBCDIC 037 UTF-EBCDIC byte; value is
278  * EBCDIC 037 I8 equivalent */
279 EXTCONST U8 PL_e2utf[] = {
280    0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,  12,  13,  14,  15,
281   16,  17,  18,  19, 157, 133,   8, 135,  24,  25, 146, 143,  28,  29,  30,  31,
282  128, 129, 130, 131, 132,  10,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
283  144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,  20,  21, 158,  26,
284   32, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,  46,  60,  40,  43, 124,
285   38, 170, 171, 172, 173, 174, 175, 176, 177, 178,  33,  36,  42,  41,  59, 179,
286   45,  47, 180, 181, 182, 183, 184, 185, 186, 187, 188,  44,  37,  95,  62,  63,
287  189, 190, 191, 192, 193, 194, 195, 196, 197,  96,  58,  35,  64,  39,  61,  34,
288  198,  97,  98,  99, 100, 101, 102, 103, 104, 105, 199, 200, 201, 202, 203, 204,
289  205, 106, 107, 108, 109, 110, 111, 112, 113, 114, 206, 207, 208, 209, 210, 211,
290  212, 126, 115, 116, 117, 118, 119, 120, 121, 122, 213, 214, 215, 216, 217, 218,
291   94, 219, 220, 221, 222, 223, 224, 225, 226, 227,  91,  93, 228, 229, 230, 231,
292  123,  65,  66,  67,  68,  69,  70,  71,  72,  73, 232, 233, 234, 235, 236, 237,
293  125,  74,  75,  76,  77,  78,  79,  80,  81,  82, 238, 239, 240, 241, 242, 243,
294   92, 244,  83,  84,  85,  86,  87,  88,  89,  90, 245, 246, 247, 248, 249, 250,
295   48,  49,  50,  51,  52,  53,  54,  55,  56,  57, 251, 252, 253, 254, 255, 159
296 };
297
298 /* Index is EBCDIC 037 UTF-EBCDIC byte; value is UTF8SKIP for start bytes;
299  * 1 for continuation.  Adapted from the shadow flags table in tr16.  The
300  * entries marked 9 in tr16 are continuation bytes and are marked as length 1
301  * here so that we can recover. */
302 EXTCONST U8 PL_utf8skip[] = {
303    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
304    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
305    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
306    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
307    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
308    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
309    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
310    1,   1,   1,   2,   2,   2,   2,   2,   2,   1,   1,   1,   1,   1,   1,   1,
311    2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
312    2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
313    2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
314    1,   2,   2,   2,   2,   2,   3,   3,   3,   3,   1,   1,   3,   3,   3,   3,
315    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   3,   3,   3,   3,   3,   3,
316    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   3,   3,   4,   4,   4,   4,
317    1,   4,   1,   1,   1,   1,   1,   1,   1,   1,   4,   4,   4,   5,   5,   5,
318    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   5,   6,   6,   7,   7,   1
319 };
320
321 /* Index is EBCDIC 037 code point; value is its lowercase equivalent */
322 EXTCONST U8 PL_latin1_lc[] = {
323    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
324   16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
325   32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
326   48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
327   64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
328   80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
329   96,  97,  66,  67,  68,  69,  70,  71,  72,  73, 106, 107, 108, 109, 110, 111,
330  112,  81,  82,  83,  84,  85,  86,  87,  88, 121, 122, 123, 124, 125, 126, 127,
331  112, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
332  144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 156, 159,
333  160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 140, 141, 142, 175,
334  176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
335  192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
336  208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
337  224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
338  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
339 };
340
341 /* Index is EBCDIC 037 code point; value is its uppercase equivalent.
342  * The 'mod' in the name means that codepoints whose uppercase is above 255 or
343  * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */
344 EXTCONST U8 PL_mod_latin1_uc[] = {
345    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
346   16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
347   32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
348   48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
349   64,  65,  98,  99, 100, 101, 102, 103, 104, 105,  74,  75,  76,  77,  78,  79,
350   80, 113, 114, 115, 116, 117, 118, 119, 120, 223,  90,  91,  92,  93,  94,  95,
351   96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
352  128, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
353  128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
354  144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 158, 159,
355  223, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
356  176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
357  192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 235, 236, 237, 238, 239,
358  208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 251, 252, 253, 254, 223,
359  224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
360  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
361 };
362
363 /* Index is EBCDIC 037 code point; For A-Z, value is a-z; for a-z, value
364  * is A-Z; all other code points map to themselves */
365 EXTCONST U8 PL_fold[] = {
366    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
367   16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
368   32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
369   48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
370   64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
371   80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
372   96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
373  112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
374  128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 140, 141, 142, 143,
375  144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 156, 157, 158, 159,
376  160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
377  176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
378  192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
379  208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
380  224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 236, 237, 238, 239,
381  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
382 };
383
384 /* Index is EBCDIC 037 code point; value is its other fold-pair equivalent
385  * (A => a; a => A, etc) in the 0-255 range.  If no such equivalent, value is
386  * the code point itself */
387 EXTCONST U8 PL_fold_latin1[] = {
388    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
389   16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
390   32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
391   48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
392   64,  65,  98,  99, 100, 101, 102, 103, 104, 105,  74,  75,  76,  77,  78,  79,
393   80, 113, 114, 115, 116, 117, 118, 119, 120,  89,  90,  91,  92,  93,  94,  95,
394   96,  97,  66,  67,  68,  69,  70,  71,  72,  73, 106, 107, 108, 109, 110, 111,
395  128,  81,  82,  83,  84,  85,  86,  87,  88, 121, 122, 123, 124, 125, 126, 127,
396  112, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
397  144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 156, 159,
398  160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 140, 141, 142, 175,
399  176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
400  192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 235, 236, 237, 238, 239,
401  208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 251, 252, 253, 254, 223,
402  224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
403  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
404 };
405
406 #endif  /* EBCDIC 037 */
407
408 #if 'A' == 193 /* EBCDIC POSIX-BC */ \
409      && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
410      && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
411      && '$' == 91 && '@' == 124 && '`' == 74
412
413 /* Index is ASCII platform code point; value is EBCDIC POSIX-BC equivalent */
414 EXTCONST U8 PL_a2e[] = {
415    0,   1,   2,   3,  55,  45,  46,  47,  22,   5,  21,  11,  12,  13,  14,  15,
416   16,  17,  18,  19,  60,  61,  50,  38,  24,  25,  63,  39,  28,  29,  30,  31,
417   64,  90, 127, 123,  91, 108,  80, 125,  77,  93,  92,  78, 107,  96,  75,  97,
418  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122,  94,  76, 126, 110, 111,
419  124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
420  215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 187, 188, 189, 106, 109,
421   74, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
422  151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 251,  79, 253, 255,   7,
423   32,  33,  34,  35,  36,  37,   6,  23,  40,  41,  42,  43,  44,   9,  10,  27,
424   48,  49,  26,  51,  52,  53,  54,   8,  56,  57,  58,  59,   4,  20,  62,  95,
425   65, 170, 176, 177, 159, 178, 208, 181, 121, 180, 154, 138, 186, 202, 175, 161,
426  144, 143, 234, 250, 190, 160, 182, 179, 157, 218, 155, 139, 183, 184, 185, 171,
427  100, 101,  98, 102,  99, 103, 158, 104, 116, 113, 114, 115, 120, 117, 118, 119,
428  172, 105, 237, 238, 235, 239, 236, 191, 128, 224, 254, 221, 252, 173, 174,  89,
429   68,  69,  66,  70,  67,  71, 156,  72,  84,  81,  82,  83,  88,  85,  86,  87,
430  140,  73, 205, 206, 203, 207, 204, 225, 112, 192, 222, 219, 220, 141, 142, 223
431 };
432
433 /* Index is EBCDIC POSIX-BC code point; value is ASCII platform equivalent */
434 EXTCONST U8 PL_e2a[] = {
435    0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,  12,  13,  14,  15,
436   16,  17,  18,  19, 157,  10,   8, 135,  24,  25, 146, 143,  28,  29,  30,  31,
437  128, 129, 130, 131, 132, 133,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
438  144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,  20,  21, 158,  26,
439   32, 160, 226, 228, 224, 225, 227, 229, 231, 241,  96,  46,  60,  40,  43, 124,
440   38, 233, 234, 235, 232, 237, 238, 239, 236, 223,  33,  36,  42,  41,  59, 159,
441   45,  47, 194, 196, 192, 193, 195, 197, 199, 209,  94,  44,  37,  95,  62,  63,
442  248, 201, 202, 203, 200, 205, 206, 207, 204, 168,  58,  35,  64,  39,  61,  34,
443  216,  97,  98,  99, 100, 101, 102, 103, 104, 105, 171, 187, 240, 253, 254, 177,
444  176, 106, 107, 108, 109, 110, 111, 112, 113, 114, 170, 186, 230, 184, 198, 164,
445  181, 175, 115, 116, 117, 118, 119, 120, 121, 122, 161, 191, 208, 221, 222, 174,
446  162, 163, 165, 183, 169, 167, 182, 188, 189, 190, 172,  91,  92,  93, 180, 215,
447  249,  65,  66,  67,  68,  69,  70,  71,  72,  73, 173, 244, 246, 242, 243, 245,
448  166,  74,  75,  76,  77,  78,  79,  80,  81,  82, 185, 251, 252, 219, 250, 255,
449  217, 247,  83,  84,  85,  86,  87,  88,  89,  90, 178, 212, 214, 210, 211, 213,
450   48,  49,  50,  51,  52,  53,  54,  55,  56,  57, 179, 123, 220, 125, 218, 126
451 };
452
453 /* (Confusingly named) Index is EBCDIC POSIX-BC I8 byte; value is
454  * EBCDIC POSIX-BC UTF-EBCDIC equivalent */
455 EXTCONST U8 PL_utf2e[] = {
456    0,   1,   2,   3,  55,  45,  46,  47,  22,   5,  21,  11,  12,  13,  14,  15,
457   16,  17,  18,  19,  60,  61,  50,  38,  24,  25,  63,  39,  28,  29,  30,  31,
458   64,  90, 127, 123,  91, 108,  80, 125,  77,  93,  92,  78, 107,  96,  75,  97,
459  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122,  94,  76, 126, 110, 111,
460  124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
461  215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 187, 188, 189, 106, 109,
462   74, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
463  151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 251,  79, 253, 255,   7,
464   32,  33,  34,  35,  36,  37,   6,  23,  40,  41,  42,  43,  44,   9,  10,  27,
465   48,  49,  26,  51,  52,  53,  54,   8,  56,  57,  58,  59,   4,  20,  62,  95,
466   65,  66,  67,  68,  69,  70,  71,  72,  73,  81,  82,  83,  84,  85,  86,  87,
467   88,  89,  98,  99, 100, 101, 102, 103, 104, 105, 112, 113, 114, 115, 116, 117,
468  118, 119, 120, 121, 128, 138, 139, 140, 141, 142, 143, 144, 154, 155, 156, 157,
469  158, 159, 160, 161, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
470  182, 183, 184, 185, 186, 190, 191, 192, 202, 203, 204, 205, 206, 207, 208, 218,
471  219, 220, 221, 222, 223, 224, 225, 234, 235, 236, 237, 238, 239, 250, 252, 254
472 };
473
474 /* (Confusingly named) Index is EBCDIC POSIX-BC UTF-EBCDIC byte; value is
475  * EBCDIC POSIX-BC I8 equivalent */
476 EXTCONST U8 PL_e2utf[] = {
477    0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,  12,  13,  14,  15,
478   16,  17,  18,  19, 157,  10,   8, 135,  24,  25, 146, 143,  28,  29,  30,  31,
479  128, 129, 130, 131, 132, 133,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
480  144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,  20,  21, 158,  26,
481   32, 160, 161, 162, 163, 164, 165, 166, 167, 168,  96,  46,  60,  40,  43, 124,
482   38, 169, 170, 171, 172, 173, 174, 175, 176, 177,  33,  36,  42,  41,  59, 159,
483   45,  47, 178, 179, 180, 181, 182, 183, 184, 185,  94,  44,  37,  95,  62,  63,
484  186, 187, 188, 189, 190, 191, 192, 193, 194, 195,  58,  35,  64,  39,  61,  34,
485  196,  97,  98,  99, 100, 101, 102, 103, 104, 105, 197, 198, 199, 200, 201, 202,
486  203, 106, 107, 108, 109, 110, 111, 112, 113, 114, 204, 205, 206, 207, 208, 209,
487  210, 211, 115, 116, 117, 118, 119, 120, 121, 122, 212, 213, 214, 215, 216, 217,
488  218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,  91,  92,  93, 229, 230,
489  231,  65,  66,  67,  68,  69,  70,  71,  72,  73, 232, 233, 234, 235, 236, 237,
490  238,  74,  75,  76,  77,  78,  79,  80,  81,  82, 239, 240, 241, 242, 243, 244,
491  245, 246,  83,  84,  85,  86,  87,  88,  89,  90, 247, 248, 249, 250, 251, 252,
492   48,  49,  50,  51,  52,  53,  54,  55,  56,  57, 253, 123, 254, 125, 255, 126
493 };
494
495 /* Index is EBCDIC POSIX-BC UTF-EBCDIC byte; value is UTF8SKIP for start bytes;
496  * 1 for continuation.  Adapted from the shadow flags table in tr16.  The
497  * entries marked 9 in tr16 are continuation bytes and are marked as length 1
498  * here so that we can recover. */
499 EXTCONST U8 PL_utf8skip[] = {
500    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
501    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
502    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
503    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
504    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
505    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
506    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
507    1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   1,   1,   1,   1,   1,   1,
508    2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
509    2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
510    2,   2,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,
511    2,   2,   2,   2,   2,   2,   3,   3,   3,   3,   3,   1,   1,   1,   3,   3,
512    3,   1,   1,   1,   1,   1,   1,   1,   1,   1,   3,   3,   3,   3,   3,   3,
513    3,   1,   1,   1,   1,   1,   1,   1,   1,   1,   3,   4,   4,   4,   4,   4,
514    4,   4,   1,   1,   1,   1,   1,   1,   1,   1,   4,   5,   5,   5,   5,   6,
515    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   6,   1,   7,   1,   7,   1
516 };
517
518 /* Index is EBCDIC POSIX-BC code point; value is its lowercase equivalent */
519 EXTCONST U8 PL_latin1_lc[] = {
520    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
521   16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
522   32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
523   48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
524   64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
525   80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
526   96,  97,  66,  67,  68,  69,  70,  71,  72,  73, 106, 107, 108, 109, 110, 111,
527  112,  81,  82,  83,  84,  85,  86,  87,  88, 121, 122, 123, 124, 125, 126, 127,
528  112, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
529  144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 156, 159,
530  160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 140, 141, 142, 175,
531  176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
532  192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
533  208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 219, 222, 223,
534  192, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
535  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 220, 253, 222, 255
536 };
537
538 /* Index is EBCDIC POSIX-BC code point; value is its uppercase equivalent.
539  * The 'mod' in the name means that codepoints whose uppercase is above 255 or
540  * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */
541 EXTCONST U8 PL_mod_latin1_uc[] = {
542    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
543   16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
544   32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
545   48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
546   64,  65,  98,  99, 100, 101, 102, 103, 104, 105,  74,  75,  76,  77,  78,  79,
547   80, 113, 114, 115, 116, 117, 118, 119, 120, 223,  90,  91,  92,  93,  94,  95,
548   96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
549  128, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
550  128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
551  144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 158, 159,
552  223, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
553  176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
554  224, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 235, 236, 237, 238, 239,
555  208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 221, 252, 221, 254, 223,
556  224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
557  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
558 };
559
560 /* Index is EBCDIC POSIX-BC code point; For A-Z, value is a-z; for a-z, value
561  * is A-Z; all other code points map to themselves */
562 EXTCONST U8 PL_fold[] = {
563    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
564   16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
565   32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
566   48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
567   64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
568   80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
569   96,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
570  112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
571  128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 140, 141, 142, 143,
572  144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 156, 157, 158, 159,
573  160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
574  176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
575  192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
576  208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
577  224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 236, 237, 238, 239,
578  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
579 };
580
581 /* Index is EBCDIC POSIX-BC code point; value is its other fold-pair equivalent
582  * (A => a; a => A, etc) in the 0-255 range.  If no such equivalent, value is
583  * the code point itself */
584 EXTCONST U8 PL_fold_latin1[] = {
585    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,
586   16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,
587   32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
588   48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,
589   64,  65,  98,  99, 100, 101, 102, 103, 104, 105,  74,  75,  76,  77,  78,  79,
590   80, 113, 114, 115, 116, 117, 118, 119, 120,  89,  90,  91,  92,  93,  94,  95,
591   96,  97,  66,  67,  68,  69,  70,  71,  72,  73, 106, 107, 108, 109, 110, 111,
592  128,  81,  82,  83,  84,  85,  86,  87,  88, 121, 122, 123, 124, 125, 126, 127,
593  112, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
594  144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 156, 159,
595  160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 140, 141, 142, 175,
596  176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
597  224, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 235, 236, 237, 238, 239,
598  208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 221, 252, 219, 254, 223,
599  192, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
600  240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 220, 253, 222, 255
601 };
602
603 #endif  /* EBCDIC POSIX-BC */
604
605 #endif /* H_EBCDIC_TABLES */
606
607 /* ex: set ro: */