1 pub const INVALID_VALUE: u8 = 255;
2 #[rustfmt::skip]
3 pub const STANDARD_ENCODE: &[u8; 64] = &[
4     65, // input 0 (0x0) => 'A' (0x41)
5     66, // input 1 (0x1) => 'B' (0x42)
6     67, // input 2 (0x2) => 'C' (0x43)
7     68, // input 3 (0x3) => 'D' (0x44)
8     69, // input 4 (0x4) => 'E' (0x45)
9     70, // input 5 (0x5) => 'F' (0x46)
10     71, // input 6 (0x6) => 'G' (0x47)
11     72, // input 7 (0x7) => 'H' (0x48)
12     73, // input 8 (0x8) => 'I' (0x49)
13     74, // input 9 (0x9) => 'J' (0x4A)
14     75, // input 10 (0xA) => 'K' (0x4B)
15     76, // input 11 (0xB) => 'L' (0x4C)
16     77, // input 12 (0xC) => 'M' (0x4D)
17     78, // input 13 (0xD) => 'N' (0x4E)
18     79, // input 14 (0xE) => 'O' (0x4F)
19     80, // input 15 (0xF) => 'P' (0x50)
20     81, // input 16 (0x10) => 'Q' (0x51)
21     82, // input 17 (0x11) => 'R' (0x52)
22     83, // input 18 (0x12) => 'S' (0x53)
23     84, // input 19 (0x13) => 'T' (0x54)
24     85, // input 20 (0x14) => 'U' (0x55)
25     86, // input 21 (0x15) => 'V' (0x56)
26     87, // input 22 (0x16) => 'W' (0x57)
27     88, // input 23 (0x17) => 'X' (0x58)
28     89, // input 24 (0x18) => 'Y' (0x59)
29     90, // input 25 (0x19) => 'Z' (0x5A)
30     97, // input 26 (0x1A) => 'a' (0x61)
31     98, // input 27 (0x1B) => 'b' (0x62)
32     99, // input 28 (0x1C) => 'c' (0x63)
33     100, // input 29 (0x1D) => 'd' (0x64)
34     101, // input 30 (0x1E) => 'e' (0x65)
35     102, // input 31 (0x1F) => 'f' (0x66)
36     103, // input 32 (0x20) => 'g' (0x67)
37     104, // input 33 (0x21) => 'h' (0x68)
38     105, // input 34 (0x22) => 'i' (0x69)
39     106, // input 35 (0x23) => 'j' (0x6A)
40     107, // input 36 (0x24) => 'k' (0x6B)
41     108, // input 37 (0x25) => 'l' (0x6C)
42     109, // input 38 (0x26) => 'm' (0x6D)
43     110, // input 39 (0x27) => 'n' (0x6E)
44     111, // input 40 (0x28) => 'o' (0x6F)
45     112, // input 41 (0x29) => 'p' (0x70)
46     113, // input 42 (0x2A) => 'q' (0x71)
47     114, // input 43 (0x2B) => 'r' (0x72)
48     115, // input 44 (0x2C) => 's' (0x73)
49     116, // input 45 (0x2D) => 't' (0x74)
50     117, // input 46 (0x2E) => 'u' (0x75)
51     118, // input 47 (0x2F) => 'v' (0x76)
52     119, // input 48 (0x30) => 'w' (0x77)
53     120, // input 49 (0x31) => 'x' (0x78)
54     121, // input 50 (0x32) => 'y' (0x79)
55     122, // input 51 (0x33) => 'z' (0x7A)
56     48, // input 52 (0x34) => '0' (0x30)
57     49, // input 53 (0x35) => '1' (0x31)
58     50, // input 54 (0x36) => '2' (0x32)
59     51, // input 55 (0x37) => '3' (0x33)
60     52, // input 56 (0x38) => '4' (0x34)
61     53, // input 57 (0x39) => '5' (0x35)
62     54, // input 58 (0x3A) => '6' (0x36)
63     55, // input 59 (0x3B) => '7' (0x37)
64     56, // input 60 (0x3C) => '8' (0x38)
65     57, // input 61 (0x3D) => '9' (0x39)
66     43, // input 62 (0x3E) => '+' (0x2B)
67     47, // input 63 (0x3F) => '/' (0x2F)
68 ];
69 #[rustfmt::skip]
70 pub const STANDARD_DECODE: &[u8; 256] = &[
71     INVALID_VALUE, // input 0 (0x0)
72     INVALID_VALUE, // input 1 (0x1)
73     INVALID_VALUE, // input 2 (0x2)
74     INVALID_VALUE, // input 3 (0x3)
75     INVALID_VALUE, // input 4 (0x4)
76     INVALID_VALUE, // input 5 (0x5)
77     INVALID_VALUE, // input 6 (0x6)
78     INVALID_VALUE, // input 7 (0x7)
79     INVALID_VALUE, // input 8 (0x8)
80     INVALID_VALUE, // input 9 (0x9)
81     INVALID_VALUE, // input 10 (0xA)
82     INVALID_VALUE, // input 11 (0xB)
83     INVALID_VALUE, // input 12 (0xC)
84     INVALID_VALUE, // input 13 (0xD)
85     INVALID_VALUE, // input 14 (0xE)
86     INVALID_VALUE, // input 15 (0xF)
87     INVALID_VALUE, // input 16 (0x10)
88     INVALID_VALUE, // input 17 (0x11)
89     INVALID_VALUE, // input 18 (0x12)
90     INVALID_VALUE, // input 19 (0x13)
91     INVALID_VALUE, // input 20 (0x14)
92     INVALID_VALUE, // input 21 (0x15)
93     INVALID_VALUE, // input 22 (0x16)
94     INVALID_VALUE, // input 23 (0x17)
95     INVALID_VALUE, // input 24 (0x18)
96     INVALID_VALUE, // input 25 (0x19)
97     INVALID_VALUE, // input 26 (0x1A)
98     INVALID_VALUE, // input 27 (0x1B)
99     INVALID_VALUE, // input 28 (0x1C)
100     INVALID_VALUE, // input 29 (0x1D)
101     INVALID_VALUE, // input 30 (0x1E)
102     INVALID_VALUE, // input 31 (0x1F)
103     INVALID_VALUE, // input 32 (0x20)
104     INVALID_VALUE, // input 33 (0x21)
105     INVALID_VALUE, // input 34 (0x22)
106     INVALID_VALUE, // input 35 (0x23)
107     INVALID_VALUE, // input 36 (0x24)
108     INVALID_VALUE, // input 37 (0x25)
109     INVALID_VALUE, // input 38 (0x26)
110     INVALID_VALUE, // input 39 (0x27)
111     INVALID_VALUE, // input 40 (0x28)
112     INVALID_VALUE, // input 41 (0x29)
113     INVALID_VALUE, // input 42 (0x2A)
114     62, // input 43 (0x2B char '+') => 62 (0x3E)
115     INVALID_VALUE, // input 44 (0x2C)
116     INVALID_VALUE, // input 45 (0x2D)
117     INVALID_VALUE, // input 46 (0x2E)
118     63, // input 47 (0x2F char '/') => 63 (0x3F)
119     52, // input 48 (0x30 char '0') => 52 (0x34)
120     53, // input 49 (0x31 char '1') => 53 (0x35)
121     54, // input 50 (0x32 char '2') => 54 (0x36)
122     55, // input 51 (0x33 char '3') => 55 (0x37)
123     56, // input 52 (0x34 char '4') => 56 (0x38)
124     57, // input 53 (0x35 char '5') => 57 (0x39)
125     58, // input 54 (0x36 char '6') => 58 (0x3A)
126     59, // input 55 (0x37 char '7') => 59 (0x3B)
127     60, // input 56 (0x38 char '8') => 60 (0x3C)
128     61, // input 57 (0x39 char '9') => 61 (0x3D)
129     INVALID_VALUE, // input 58 (0x3A)
130     INVALID_VALUE, // input 59 (0x3B)
131     INVALID_VALUE, // input 60 (0x3C)
132     INVALID_VALUE, // input 61 (0x3D)
133     INVALID_VALUE, // input 62 (0x3E)
134     INVALID_VALUE, // input 63 (0x3F)
135     INVALID_VALUE, // input 64 (0x40)
136     0, // input 65 (0x41 char 'A') => 0 (0x0)
137     1, // input 66 (0x42 char 'B') => 1 (0x1)
138     2, // input 67 (0x43 char 'C') => 2 (0x2)
139     3, // input 68 (0x44 char 'D') => 3 (0x3)
140     4, // input 69 (0x45 char 'E') => 4 (0x4)
141     5, // input 70 (0x46 char 'F') => 5 (0x5)
142     6, // input 71 (0x47 char 'G') => 6 (0x6)
143     7, // input 72 (0x48 char 'H') => 7 (0x7)
144     8, // input 73 (0x49 char 'I') => 8 (0x8)
145     9, // input 74 (0x4A char 'J') => 9 (0x9)
146     10, // input 75 (0x4B char 'K') => 10 (0xA)
147     11, // input 76 (0x4C char 'L') => 11 (0xB)
148     12, // input 77 (0x4D char 'M') => 12 (0xC)
149     13, // input 78 (0x4E char 'N') => 13 (0xD)
150     14, // input 79 (0x4F char 'O') => 14 (0xE)
151     15, // input 80 (0x50 char 'P') => 15 (0xF)
152     16, // input 81 (0x51 char 'Q') => 16 (0x10)
153     17, // input 82 (0x52 char 'R') => 17 (0x11)
154     18, // input 83 (0x53 char 'S') => 18 (0x12)
155     19, // input 84 (0x54 char 'T') => 19 (0x13)
156     20, // input 85 (0x55 char 'U') => 20 (0x14)
157     21, // input 86 (0x56 char 'V') => 21 (0x15)
158     22, // input 87 (0x57 char 'W') => 22 (0x16)
159     23, // input 88 (0x58 char 'X') => 23 (0x17)
160     24, // input 89 (0x59 char 'Y') => 24 (0x18)
161     25, // input 90 (0x5A char 'Z') => 25 (0x19)
162     INVALID_VALUE, // input 91 (0x5B)
163     INVALID_VALUE, // input 92 (0x5C)
164     INVALID_VALUE, // input 93 (0x5D)
165     INVALID_VALUE, // input 94 (0x5E)
166     INVALID_VALUE, // input 95 (0x5F)
167     INVALID_VALUE, // input 96 (0x60)
168     26, // input 97 (0x61 char 'a') => 26 (0x1A)
169     27, // input 98 (0x62 char 'b') => 27 (0x1B)
170     28, // input 99 (0x63 char 'c') => 28 (0x1C)
171     29, // input 100 (0x64 char 'd') => 29 (0x1D)
172     30, // input 101 (0x65 char 'e') => 30 (0x1E)
173     31, // input 102 (0x66 char 'f') => 31 (0x1F)
174     32, // input 103 (0x67 char 'g') => 32 (0x20)
175     33, // input 104 (0x68 char 'h') => 33 (0x21)
176     34, // input 105 (0x69 char 'i') => 34 (0x22)
177     35, // input 106 (0x6A char 'j') => 35 (0x23)
178     36, // input 107 (0x6B char 'k') => 36 (0x24)
179     37, // input 108 (0x6C char 'l') => 37 (0x25)
180     38, // input 109 (0x6D char 'm') => 38 (0x26)
181     39, // input 110 (0x6E char 'n') => 39 (0x27)
182     40, // input 111 (0x6F char 'o') => 40 (0x28)
183     41, // input 112 (0x70 char 'p') => 41 (0x29)
184     42, // input 113 (0x71 char 'q') => 42 (0x2A)
185     43, // input 114 (0x72 char 'r') => 43 (0x2B)
186     44, // input 115 (0x73 char 's') => 44 (0x2C)
187     45, // input 116 (0x74 char 't') => 45 (0x2D)
188     46, // input 117 (0x75 char 'u') => 46 (0x2E)
189     47, // input 118 (0x76 char 'v') => 47 (0x2F)
190     48, // input 119 (0x77 char 'w') => 48 (0x30)
191     49, // input 120 (0x78 char 'x') => 49 (0x31)
192     50, // input 121 (0x79 char 'y') => 50 (0x32)
193     51, // input 122 (0x7A char 'z') => 51 (0x33)
194     INVALID_VALUE, // input 123 (0x7B)
195     INVALID_VALUE, // input 124 (0x7C)
196     INVALID_VALUE, // input 125 (0x7D)
197     INVALID_VALUE, // input 126 (0x7E)
198     INVALID_VALUE, // input 127 (0x7F)
199     INVALID_VALUE, // input 128 (0x80)
200     INVALID_VALUE, // input 129 (0x81)
201     INVALID_VALUE, // input 130 (0x82)
202     INVALID_VALUE, // input 131 (0x83)
203     INVALID_VALUE, // input 132 (0x84)
204     INVALID_VALUE, // input 133 (0x85)
205     INVALID_VALUE, // input 134 (0x86)
206     INVALID_VALUE, // input 135 (0x87)
207     INVALID_VALUE, // input 136 (0x88)
208     INVALID_VALUE, // input 137 (0x89)
209     INVALID_VALUE, // input 138 (0x8A)
210     INVALID_VALUE, // input 139 (0x8B)
211     INVALID_VALUE, // input 140 (0x8C)
212     INVALID_VALUE, // input 141 (0x8D)
213     INVALID_VALUE, // input 142 (0x8E)
214     INVALID_VALUE, // input 143 (0x8F)
215     INVALID_VALUE, // input 144 (0x90)
216     INVALID_VALUE, // input 145 (0x91)
217     INVALID_VALUE, // input 146 (0x92)
218     INVALID_VALUE, // input 147 (0x93)
219     INVALID_VALUE, // input 148 (0x94)
220     INVALID_VALUE, // input 149 (0x95)
221     INVALID_VALUE, // input 150 (0x96)
222     INVALID_VALUE, // input 151 (0x97)
223     INVALID_VALUE, // input 152 (0x98)
224     INVALID_VALUE, // input 153 (0x99)
225     INVALID_VALUE, // input 154 (0x9A)
226     INVALID_VALUE, // input 155 (0x9B)
227     INVALID_VALUE, // input 156 (0x9C)
228     INVALID_VALUE, // input 157 (0x9D)
229     INVALID_VALUE, // input 158 (0x9E)
230     INVALID_VALUE, // input 159 (0x9F)
231     INVALID_VALUE, // input 160 (0xA0)
232     INVALID_VALUE, // input 161 (0xA1)
233     INVALID_VALUE, // input 162 (0xA2)
234     INVALID_VALUE, // input 163 (0xA3)
235     INVALID_VALUE, // input 164 (0xA4)
236     INVALID_VALUE, // input 165 (0xA5)
237     INVALID_VALUE, // input 166 (0xA6)
238     INVALID_VALUE, // input 167 (0xA7)
239     INVALID_VALUE, // input 168 (0xA8)
240     INVALID_VALUE, // input 169 (0xA9)
241     INVALID_VALUE, // input 170 (0xAA)
242     INVALID_VALUE, // input 171 (0xAB)
243     INVALID_VALUE, // input 172 (0xAC)
244     INVALID_VALUE, // input 173 (0xAD)
245     INVALID_VALUE, // input 174 (0xAE)
246     INVALID_VALUE, // input 175 (0xAF)
247     INVALID_VALUE, // input 176 (0xB0)
248     INVALID_VALUE, // input 177 (0xB1)
249     INVALID_VALUE, // input 178 (0xB2)
250     INVALID_VALUE, // input 179 (0xB3)
251     INVALID_VALUE, // input 180 (0xB4)
252     INVALID_VALUE, // input 181 (0xB5)
253     INVALID_VALUE, // input 182 (0xB6)
254     INVALID_VALUE, // input 183 (0xB7)
255     INVALID_VALUE, // input 184 (0xB8)
256     INVALID_VALUE, // input 185 (0xB9)
257     INVALID_VALUE, // input 186 (0xBA)
258     INVALID_VALUE, // input 187 (0xBB)
259     INVALID_VALUE, // input 188 (0xBC)
260     INVALID_VALUE, // input 189 (0xBD)
261     INVALID_VALUE, // input 190 (0xBE)
262     INVALID_VALUE, // input 191 (0xBF)
263     INVALID_VALUE, // input 192 (0xC0)
264     INVALID_VALUE, // input 193 (0xC1)
265     INVALID_VALUE, // input 194 (0xC2)
266     INVALID_VALUE, // input 195 (0xC3)
267     INVALID_VALUE, // input 196 (0xC4)
268     INVALID_VALUE, // input 197 (0xC5)
269     INVALID_VALUE, // input 198 (0xC6)
270     INVALID_VALUE, // input 199 (0xC7)
271     INVALID_VALUE, // input 200 (0xC8)
272     INVALID_VALUE, // input 201 (0xC9)
273     INVALID_VALUE, // input 202 (0xCA)
274     INVALID_VALUE, // input 203 (0xCB)
275     INVALID_VALUE, // input 204 (0xCC)
276     INVALID_VALUE, // input 205 (0xCD)
277     INVALID_VALUE, // input 206 (0xCE)
278     INVALID_VALUE, // input 207 (0xCF)
279     INVALID_VALUE, // input 208 (0xD0)
280     INVALID_VALUE, // input 209 (0xD1)
281     INVALID_VALUE, // input 210 (0xD2)
282     INVALID_VALUE, // input 211 (0xD3)
283     INVALID_VALUE, // input 212 (0xD4)
284     INVALID_VALUE, // input 213 (0xD5)
285     INVALID_VALUE, // input 214 (0xD6)
286     INVALID_VALUE, // input 215 (0xD7)
287     INVALID_VALUE, // input 216 (0xD8)
288     INVALID_VALUE, // input 217 (0xD9)
289     INVALID_VALUE, // input 218 (0xDA)
290     INVALID_VALUE, // input 219 (0xDB)
291     INVALID_VALUE, // input 220 (0xDC)
292     INVALID_VALUE, // input 221 (0xDD)
293     INVALID_VALUE, // input 222 (0xDE)
294     INVALID_VALUE, // input 223 (0xDF)
295     INVALID_VALUE, // input 224 (0xE0)
296     INVALID_VALUE, // input 225 (0xE1)
297     INVALID_VALUE, // input 226 (0xE2)
298     INVALID_VALUE, // input 227 (0xE3)
299     INVALID_VALUE, // input 228 (0xE4)
300     INVALID_VALUE, // input 229 (0xE5)
301     INVALID_VALUE, // input 230 (0xE6)
302     INVALID_VALUE, // input 231 (0xE7)
303     INVALID_VALUE, // input 232 (0xE8)
304     INVALID_VALUE, // input 233 (0xE9)
305     INVALID_VALUE, // input 234 (0xEA)
306     INVALID_VALUE, // input 235 (0xEB)
307     INVALID_VALUE, // input 236 (0xEC)
308     INVALID_VALUE, // input 237 (0xED)
309     INVALID_VALUE, // input 238 (0xEE)
310     INVALID_VALUE, // input 239 (0xEF)
311     INVALID_VALUE, // input 240 (0xF0)
312     INVALID_VALUE, // input 241 (0xF1)
313     INVALID_VALUE, // input 242 (0xF2)
314     INVALID_VALUE, // input 243 (0xF3)
315     INVALID_VALUE, // input 244 (0xF4)
316     INVALID_VALUE, // input 245 (0xF5)
317     INVALID_VALUE, // input 246 (0xF6)
318     INVALID_VALUE, // input 247 (0xF7)
319     INVALID_VALUE, // input 248 (0xF8)
320     INVALID_VALUE, // input 249 (0xF9)
321     INVALID_VALUE, // input 250 (0xFA)
322     INVALID_VALUE, // input 251 (0xFB)
323     INVALID_VALUE, // input 252 (0xFC)
324     INVALID_VALUE, // input 253 (0xFD)
325     INVALID_VALUE, // input 254 (0xFE)
326     INVALID_VALUE, // input 255 (0xFF)
327 ];
328 #[rustfmt::skip]
329 pub const URL_SAFE_ENCODE: &[u8; 64] = &[
330     65, // input 0 (0x0) => 'A' (0x41)
331     66, // input 1 (0x1) => 'B' (0x42)
332     67, // input 2 (0x2) => 'C' (0x43)
333     68, // input 3 (0x3) => 'D' (0x44)
334     69, // input 4 (0x4) => 'E' (0x45)
335     70, // input 5 (0x5) => 'F' (0x46)
336     71, // input 6 (0x6) => 'G' (0x47)
337     72, // input 7 (0x7) => 'H' (0x48)
338     73, // input 8 (0x8) => 'I' (0x49)
339     74, // input 9 (0x9) => 'J' (0x4A)
340     75, // input 10 (0xA) => 'K' (0x4B)
341     76, // input 11 (0xB) => 'L' (0x4C)
342     77, // input 12 (0xC) => 'M' (0x4D)
343     78, // input 13 (0xD) => 'N' (0x4E)
344     79, // input 14 (0xE) => 'O' (0x4F)
345     80, // input 15 (0xF) => 'P' (0x50)
346     81, // input 16 (0x10) => 'Q' (0x51)
347     82, // input 17 (0x11) => 'R' (0x52)
348     83, // input 18 (0x12) => 'S' (0x53)
349     84, // input 19 (0x13) => 'T' (0x54)
350     85, // input 20 (0x14) => 'U' (0x55)
351     86, // input 21 (0x15) => 'V' (0x56)
352     87, // input 22 (0x16) => 'W' (0x57)
353     88, // input 23 (0x17) => 'X' (0x58)
354     89, // input 24 (0x18) => 'Y' (0x59)
355     90, // input 25 (0x19) => 'Z' (0x5A)
356     97, // input 26 (0x1A) => 'a' (0x61)
357     98, // input 27 (0x1B) => 'b' (0x62)
358     99, // input 28 (0x1C) => 'c' (0x63)
359     100, // input 29 (0x1D) => 'd' (0x64)
360     101, // input 30 (0x1E) => 'e' (0x65)
361     102, // input 31 (0x1F) => 'f' (0x66)
362     103, // input 32 (0x20) => 'g' (0x67)
363     104, // input 33 (0x21) => 'h' (0x68)
364     105, // input 34 (0x22) => 'i' (0x69)
365     106, // input 35 (0x23) => 'j' (0x6A)
366     107, // input 36 (0x24) => 'k' (0x6B)
367     108, // input 37 (0x25) => 'l' (0x6C)
368     109, // input 38 (0x26) => 'm' (0x6D)
369     110, // input 39 (0x27) => 'n' (0x6E)
370     111, // input 40 (0x28) => 'o' (0x6F)
371     112, // input 41 (0x29) => 'p' (0x70)
372     113, // input 42 (0x2A) => 'q' (0x71)
373     114, // input 43 (0x2B) => 'r' (0x72)
374     115, // input 44 (0x2C) => 's' (0x73)
375     116, // input 45 (0x2D) => 't' (0x74)
376     117, // input 46 (0x2E) => 'u' (0x75)
377     118, // input 47 (0x2F) => 'v' (0x76)
378     119, // input 48 (0x30) => 'w' (0x77)
379     120, // input 49 (0x31) => 'x' (0x78)
380     121, // input 50 (0x32) => 'y' (0x79)
381     122, // input 51 (0x33) => 'z' (0x7A)
382     48, // input 52 (0x34) => '0' (0x30)
383     49, // input 53 (0x35) => '1' (0x31)
384     50, // input 54 (0x36) => '2' (0x32)
385     51, // input 55 (0x37) => '3' (0x33)
386     52, // input 56 (0x38) => '4' (0x34)
387     53, // input 57 (0x39) => '5' (0x35)
388     54, // input 58 (0x3A) => '6' (0x36)
389     55, // input 59 (0x3B) => '7' (0x37)
390     56, // input 60 (0x3C) => '8' (0x38)
391     57, // input 61 (0x3D) => '9' (0x39)
392     45, // input 62 (0x3E) => '-' (0x2D)
393     95, // input 63 (0x3F) => '_' (0x5F)
394 ];
395 #[rustfmt::skip]
396 pub const URL_SAFE_DECODE: &[u8; 256] = &[
397     INVALID_VALUE, // input 0 (0x0)
398     INVALID_VALUE, // input 1 (0x1)
399     INVALID_VALUE, // input 2 (0x2)
400     INVALID_VALUE, // input 3 (0x3)
401     INVALID_VALUE, // input 4 (0x4)
402     INVALID_VALUE, // input 5 (0x5)
403     INVALID_VALUE, // input 6 (0x6)
404     INVALID_VALUE, // input 7 (0x7)
405     INVALID_VALUE, // input 8 (0x8)
406     INVALID_VALUE, // input 9 (0x9)
407     INVALID_VALUE, // input 10 (0xA)
408     INVALID_VALUE, // input 11 (0xB)
409     INVALID_VALUE, // input 12 (0xC)
410     INVALID_VALUE, // input 13 (0xD)
411     INVALID_VALUE, // input 14 (0xE)
412     INVALID_VALUE, // input 15 (0xF)
413     INVALID_VALUE, // input 16 (0x10)
414     INVALID_VALUE, // input 17 (0x11)
415     INVALID_VALUE, // input 18 (0x12)
416     INVALID_VALUE, // input 19 (0x13)
417     INVALID_VALUE, // input 20 (0x14)
418     INVALID_VALUE, // input 21 (0x15)
419     INVALID_VALUE, // input 22 (0x16)
420     INVALID_VALUE, // input 23 (0x17)
421     INVALID_VALUE, // input 24 (0x18)
422     INVALID_VALUE, // input 25 (0x19)
423     INVALID_VALUE, // input 26 (0x1A)
424     INVALID_VALUE, // input 27 (0x1B)
425     INVALID_VALUE, // input 28 (0x1C)
426     INVALID_VALUE, // input 29 (0x1D)
427     INVALID_VALUE, // input 30 (0x1E)
428     INVALID_VALUE, // input 31 (0x1F)
429     INVALID_VALUE, // input 32 (0x20)
430     INVALID_VALUE, // input 33 (0x21)
431     INVALID_VALUE, // input 34 (0x22)
432     INVALID_VALUE, // input 35 (0x23)
433     INVALID_VALUE, // input 36 (0x24)
434     INVALID_VALUE, // input 37 (0x25)
435     INVALID_VALUE, // input 38 (0x26)
436     INVALID_VALUE, // input 39 (0x27)
437     INVALID_VALUE, // input 40 (0x28)
438     INVALID_VALUE, // input 41 (0x29)
439     INVALID_VALUE, // input 42 (0x2A)
440     INVALID_VALUE, // input 43 (0x2B)
441     INVALID_VALUE, // input 44 (0x2C)
442     62, // input 45 (0x2D char '-') => 62 (0x3E)
443     INVALID_VALUE, // input 46 (0x2E)
444     INVALID_VALUE, // input 47 (0x2F)
445     52, // input 48 (0x30 char '0') => 52 (0x34)
446     53, // input 49 (0x31 char '1') => 53 (0x35)
447     54, // input 50 (0x32 char '2') => 54 (0x36)
448     55, // input 51 (0x33 char '3') => 55 (0x37)
449     56, // input 52 (0x34 char '4') => 56 (0x38)
450     57, // input 53 (0x35 char '5') => 57 (0x39)
451     58, // input 54 (0x36 char '6') => 58 (0x3A)
452     59, // input 55 (0x37 char '7') => 59 (0x3B)
453     60, // input 56 (0x38 char '8') => 60 (0x3C)
454     61, // input 57 (0x39 char '9') => 61 (0x3D)
455     INVALID_VALUE, // input 58 (0x3A)
456     INVALID_VALUE, // input 59 (0x3B)
457     INVALID_VALUE, // input 60 (0x3C)
458     INVALID_VALUE, // input 61 (0x3D)
459     INVALID_VALUE, // input 62 (0x3E)
460     INVALID_VALUE, // input 63 (0x3F)
461     INVALID_VALUE, // input 64 (0x40)
462     0, // input 65 (0x41 char 'A') => 0 (0x0)
463     1, // input 66 (0x42 char 'B') => 1 (0x1)
464     2, // input 67 (0x43 char 'C') => 2 (0x2)
465     3, // input 68 (0x44 char 'D') => 3 (0x3)
466     4, // input 69 (0x45 char 'E') => 4 (0x4)
467     5, // input 70 (0x46 char 'F') => 5 (0x5)
468     6, // input 71 (0x47 char 'G') => 6 (0x6)
469     7, // input 72 (0x48 char 'H') => 7 (0x7)
470     8, // input 73 (0x49 char 'I') => 8 (0x8)
471     9, // input 74 (0x4A char 'J') => 9 (0x9)
472     10, // input 75 (0x4B char 'K') => 10 (0xA)
473     11, // input 76 (0x4C char 'L') => 11 (0xB)
474     12, // input 77 (0x4D char 'M') => 12 (0xC)
475     13, // input 78 (0x4E char 'N') => 13 (0xD)
476     14, // input 79 (0x4F char 'O') => 14 (0xE)
477     15, // input 80 (0x50 char 'P') => 15 (0xF)
478     16, // input 81 (0x51 char 'Q') => 16 (0x10)
479     17, // input 82 (0x52 char 'R') => 17 (0x11)
480     18, // input 83 (0x53 char 'S') => 18 (0x12)
481     19, // input 84 (0x54 char 'T') => 19 (0x13)
482     20, // input 85 (0x55 char 'U') => 20 (0x14)
483     21, // input 86 (0x56 char 'V') => 21 (0x15)
484     22, // input 87 (0x57 char 'W') => 22 (0x16)
485     23, // input 88 (0x58 char 'X') => 23 (0x17)
486     24, // input 89 (0x59 char 'Y') => 24 (0x18)
487     25, // input 90 (0x5A char 'Z') => 25 (0x19)
488     INVALID_VALUE, // input 91 (0x5B)
489     INVALID_VALUE, // input 92 (0x5C)
490     INVALID_VALUE, // input 93 (0x5D)
491     INVALID_VALUE, // input 94 (0x5E)
492     63, // input 95 (0x5F char '_') => 63 (0x3F)
493     INVALID_VALUE, // input 96 (0x60)
494     26, // input 97 (0x61 char 'a') => 26 (0x1A)
495     27, // input 98 (0x62 char 'b') => 27 (0x1B)
496     28, // input 99 (0x63 char 'c') => 28 (0x1C)
497     29, // input 100 (0x64 char 'd') => 29 (0x1D)
498     30, // input 101 (0x65 char 'e') => 30 (0x1E)
499     31, // input 102 (0x66 char 'f') => 31 (0x1F)
500     32, // input 103 (0x67 char 'g') => 32 (0x20)
501     33, // input 104 (0x68 char 'h') => 33 (0x21)
502     34, // input 105 (0x69 char 'i') => 34 (0x22)
503     35, // input 106 (0x6A char 'j') => 35 (0x23)
504     36, // input 107 (0x6B char 'k') => 36 (0x24)
505     37, // input 108 (0x6C char 'l') => 37 (0x25)
506     38, // input 109 (0x6D char 'm') => 38 (0x26)
507     39, // input 110 (0x6E char 'n') => 39 (0x27)
508     40, // input 111 (0x6F char 'o') => 40 (0x28)
509     41, // input 112 (0x70 char 'p') => 41 (0x29)
510     42, // input 113 (0x71 char 'q') => 42 (0x2A)
511     43, // input 114 (0x72 char 'r') => 43 (0x2B)
512     44, // input 115 (0x73 char 's') => 44 (0x2C)
513     45, // input 116 (0x74 char 't') => 45 (0x2D)
514     46, // input 117 (0x75 char 'u') => 46 (0x2E)
515     47, // input 118 (0x76 char 'v') => 47 (0x2F)
516     48, // input 119 (0x77 char 'w') => 48 (0x30)
517     49, // input 120 (0x78 char 'x') => 49 (0x31)
518     50, // input 121 (0x79 char 'y') => 50 (0x32)
519     51, // input 122 (0x7A char 'z') => 51 (0x33)
520     INVALID_VALUE, // input 123 (0x7B)
521     INVALID_VALUE, // input 124 (0x7C)
522     INVALID_VALUE, // input 125 (0x7D)
523     INVALID_VALUE, // input 126 (0x7E)
524     INVALID_VALUE, // input 127 (0x7F)
525     INVALID_VALUE, // input 128 (0x80)
526     INVALID_VALUE, // input 129 (0x81)
527     INVALID_VALUE, // input 130 (0x82)
528     INVALID_VALUE, // input 131 (0x83)
529     INVALID_VALUE, // input 132 (0x84)
530     INVALID_VALUE, // input 133 (0x85)
531     INVALID_VALUE, // input 134 (0x86)
532     INVALID_VALUE, // input 135 (0x87)
533     INVALID_VALUE, // input 136 (0x88)
534     INVALID_VALUE, // input 137 (0x89)
535     INVALID_VALUE, // input 138 (0x8A)
536     INVALID_VALUE, // input 139 (0x8B)
537     INVALID_VALUE, // input 140 (0x8C)
538     INVALID_VALUE, // input 141 (0x8D)
539     INVALID_VALUE, // input 142 (0x8E)
540     INVALID_VALUE, // input 143 (0x8F)
541     INVALID_VALUE, // input 144 (0x90)
542     INVALID_VALUE, // input 145 (0x91)
543     INVALID_VALUE, // input 146 (0x92)
544     INVALID_VALUE, // input 147 (0x93)
545     INVALID_VALUE, // input 148 (0x94)
546     INVALID_VALUE, // input 149 (0x95)
547     INVALID_VALUE, // input 150 (0x96)
548     INVALID_VALUE, // input 151 (0x97)
549     INVALID_VALUE, // input 152 (0x98)
550     INVALID_VALUE, // input 153 (0x99)
551     INVALID_VALUE, // input 154 (0x9A)
552     INVALID_VALUE, // input 155 (0x9B)
553     INVALID_VALUE, // input 156 (0x9C)
554     INVALID_VALUE, // input 157 (0x9D)
555     INVALID_VALUE, // input 158 (0x9E)
556     INVALID_VALUE, // input 159 (0x9F)
557     INVALID_VALUE, // input 160 (0xA0)
558     INVALID_VALUE, // input 161 (0xA1)
559     INVALID_VALUE, // input 162 (0xA2)
560     INVALID_VALUE, // input 163 (0xA3)
561     INVALID_VALUE, // input 164 (0xA4)
562     INVALID_VALUE, // input 165 (0xA5)
563     INVALID_VALUE, // input 166 (0xA6)
564     INVALID_VALUE, // input 167 (0xA7)
565     INVALID_VALUE, // input 168 (0xA8)
566     INVALID_VALUE, // input 169 (0xA9)
567     INVALID_VALUE, // input 170 (0xAA)
568     INVALID_VALUE, // input 171 (0xAB)
569     INVALID_VALUE, // input 172 (0xAC)
570     INVALID_VALUE, // input 173 (0xAD)
571     INVALID_VALUE, // input 174 (0xAE)
572     INVALID_VALUE, // input 175 (0xAF)
573     INVALID_VALUE, // input 176 (0xB0)
574     INVALID_VALUE, // input 177 (0xB1)
575     INVALID_VALUE, // input 178 (0xB2)
576     INVALID_VALUE, // input 179 (0xB3)
577     INVALID_VALUE, // input 180 (0xB4)
578     INVALID_VALUE, // input 181 (0xB5)
579     INVALID_VALUE, // input 182 (0xB6)
580     INVALID_VALUE, // input 183 (0xB7)
581     INVALID_VALUE, // input 184 (0xB8)
582     INVALID_VALUE, // input 185 (0xB9)
583     INVALID_VALUE, // input 186 (0xBA)
584     INVALID_VALUE, // input 187 (0xBB)
585     INVALID_VALUE, // input 188 (0xBC)
586     INVALID_VALUE, // input 189 (0xBD)
587     INVALID_VALUE, // input 190 (0xBE)
588     INVALID_VALUE, // input 191 (0xBF)
589     INVALID_VALUE, // input 192 (0xC0)
590     INVALID_VALUE, // input 193 (0xC1)
591     INVALID_VALUE, // input 194 (0xC2)
592     INVALID_VALUE, // input 195 (0xC3)
593     INVALID_VALUE, // input 196 (0xC4)
594     INVALID_VALUE, // input 197 (0xC5)
595     INVALID_VALUE, // input 198 (0xC6)
596     INVALID_VALUE, // input 199 (0xC7)
597     INVALID_VALUE, // input 200 (0xC8)
598     INVALID_VALUE, // input 201 (0xC9)
599     INVALID_VALUE, // input 202 (0xCA)
600     INVALID_VALUE, // input 203 (0xCB)
601     INVALID_VALUE, // input 204 (0xCC)
602     INVALID_VALUE, // input 205 (0xCD)
603     INVALID_VALUE, // input 206 (0xCE)
604     INVALID_VALUE, // input 207 (0xCF)
605     INVALID_VALUE, // input 208 (0xD0)
606     INVALID_VALUE, // input 209 (0xD1)
607     INVALID_VALUE, // input 210 (0xD2)
608     INVALID_VALUE, // input 211 (0xD3)
609     INVALID_VALUE, // input 212 (0xD4)
610     INVALID_VALUE, // input 213 (0xD5)
611     INVALID_VALUE, // input 214 (0xD6)
612     INVALID_VALUE, // input 215 (0xD7)
613     INVALID_VALUE, // input 216 (0xD8)
614     INVALID_VALUE, // input 217 (0xD9)
615     INVALID_VALUE, // input 218 (0xDA)
616     INVALID_VALUE, // input 219 (0xDB)
617     INVALID_VALUE, // input 220 (0xDC)
618     INVALID_VALUE, // input 221 (0xDD)
619     INVALID_VALUE, // input 222 (0xDE)
620     INVALID_VALUE, // input 223 (0xDF)
621     INVALID_VALUE, // input 224 (0xE0)
622     INVALID_VALUE, // input 225 (0xE1)
623     INVALID_VALUE, // input 226 (0xE2)
624     INVALID_VALUE, // input 227 (0xE3)
625     INVALID_VALUE, // input 228 (0xE4)
626     INVALID_VALUE, // input 229 (0xE5)
627     INVALID_VALUE, // input 230 (0xE6)
628     INVALID_VALUE, // input 231 (0xE7)
629     INVALID_VALUE, // input 232 (0xE8)
630     INVALID_VALUE, // input 233 (0xE9)
631     INVALID_VALUE, // input 234 (0xEA)
632     INVALID_VALUE, // input 235 (0xEB)
633     INVALID_VALUE, // input 236 (0xEC)
634     INVALID_VALUE, // input 237 (0xED)
635     INVALID_VALUE, // input 238 (0xEE)
636     INVALID_VALUE, // input 239 (0xEF)
637     INVALID_VALUE, // input 240 (0xF0)
638     INVALID_VALUE, // input 241 (0xF1)
639     INVALID_VALUE, // input 242 (0xF2)
640     INVALID_VALUE, // input 243 (0xF3)
641     INVALID_VALUE, // input 244 (0xF4)
642     INVALID_VALUE, // input 245 (0xF5)
643     INVALID_VALUE, // input 246 (0xF6)
644     INVALID_VALUE, // input 247 (0xF7)
645     INVALID_VALUE, // input 248 (0xF8)
646     INVALID_VALUE, // input 249 (0xF9)
647     INVALID_VALUE, // input 250 (0xFA)
648     INVALID_VALUE, // input 251 (0xFB)
649     INVALID_VALUE, // input 252 (0xFC)
650     INVALID_VALUE, // input 253 (0xFD)
651     INVALID_VALUE, // input 254 (0xFE)
652     INVALID_VALUE, // input 255 (0xFF)
653 ];
654 #[rustfmt::skip]
655 pub const CRYPT_ENCODE: &[u8; 64] = &[
656     46, // input 0 (0x0) => '.' (0x2E)
657     47, // input 1 (0x1) => '/' (0x2F)
658     48, // input 2 (0x2) => '0' (0x30)
659     49, // input 3 (0x3) => '1' (0x31)
660     50, // input 4 (0x4) => '2' (0x32)
661     51, // input 5 (0x5) => '3' (0x33)
662     52, // input 6 (0x6) => '4' (0x34)
663     53, // input 7 (0x7) => '5' (0x35)
664     54, // input 8 (0x8) => '6' (0x36)
665     55, // input 9 (0x9) => '7' (0x37)
666     56, // input 10 (0xA) => '8' (0x38)
667     57, // input 11 (0xB) => '9' (0x39)
668     65, // input 12 (0xC) => 'A' (0x41)
669     66, // input 13 (0xD) => 'B' (0x42)
670     67, // input 14 (0xE) => 'C' (0x43)
671     68, // input 15 (0xF) => 'D' (0x44)
672     69, // input 16 (0x10) => 'E' (0x45)
673     70, // input 17 (0x11) => 'F' (0x46)
674     71, // input 18 (0x12) => 'G' (0x47)
675     72, // input 19 (0x13) => 'H' (0x48)
676     73, // input 20 (0x14) => 'I' (0x49)
677     74, // input 21 (0x15) => 'J' (0x4A)
678     75, // input 22 (0x16) => 'K' (0x4B)
679     76, // input 23 (0x17) => 'L' (0x4C)
680     77, // input 24 (0x18) => 'M' (0x4D)
681     78, // input 25 (0x19) => 'N' (0x4E)
682     79, // input 26 (0x1A) => 'O' (0x4F)
683     80, // input 27 (0x1B) => 'P' (0x50)
684     81, // input 28 (0x1C) => 'Q' (0x51)
685     82, // input 29 (0x1D) => 'R' (0x52)
686     83, // input 30 (0x1E) => 'S' (0x53)
687     84, // input 31 (0x1F) => 'T' (0x54)
688     85, // input 32 (0x20) => 'U' (0x55)
689     86, // input 33 (0x21) => 'V' (0x56)
690     87, // input 34 (0x22) => 'W' (0x57)
691     88, // input 35 (0x23) => 'X' (0x58)
692     89, // input 36 (0x24) => 'Y' (0x59)
693     90, // input 37 (0x25) => 'Z' (0x5A)
694     97, // input 38 (0x26) => 'a' (0x61)
695     98, // input 39 (0x27) => 'b' (0x62)
696     99, // input 40 (0x28) => 'c' (0x63)
697     100, // input 41 (0x29) => 'd' (0x64)
698     101, // input 42 (0x2A) => 'e' (0x65)
699     102, // input 43 (0x2B) => 'f' (0x66)
700     103, // input 44 (0x2C) => 'g' (0x67)
701     104, // input 45 (0x2D) => 'h' (0x68)
702     105, // input 46 (0x2E) => 'i' (0x69)
703     106, // input 47 (0x2F) => 'j' (0x6A)
704     107, // input 48 (0x30) => 'k' (0x6B)
705     108, // input 49 (0x31) => 'l' (0x6C)
706     109, // input 50 (0x32) => 'm' (0x6D)
707     110, // input 51 (0x33) => 'n' (0x6E)
708     111, // input 52 (0x34) => 'o' (0x6F)
709     112, // input 53 (0x35) => 'p' (0x70)
710     113, // input 54 (0x36) => 'q' (0x71)
711     114, // input 55 (0x37) => 'r' (0x72)
712     115, // input 56 (0x38) => 's' (0x73)
713     116, // input 57 (0x39) => 't' (0x74)
714     117, // input 58 (0x3A) => 'u' (0x75)
715     118, // input 59 (0x3B) => 'v' (0x76)
716     119, // input 60 (0x3C) => 'w' (0x77)
717     120, // input 61 (0x3D) => 'x' (0x78)
718     121, // input 62 (0x3E) => 'y' (0x79)
719     122, // input 63 (0x3F) => 'z' (0x7A)
720 ];
721 #[rustfmt::skip]
722 pub const CRYPT_DECODE: &[u8; 256] = &[
723     INVALID_VALUE, // input 0 (0x0)
724     INVALID_VALUE, // input 1 (0x1)
725     INVALID_VALUE, // input 2 (0x2)
726     INVALID_VALUE, // input 3 (0x3)
727     INVALID_VALUE, // input 4 (0x4)
728     INVALID_VALUE, // input 5 (0x5)
729     INVALID_VALUE, // input 6 (0x6)
730     INVALID_VALUE, // input 7 (0x7)
731     INVALID_VALUE, // input 8 (0x8)
732     INVALID_VALUE, // input 9 (0x9)
733     INVALID_VALUE, // input 10 (0xA)
734     INVALID_VALUE, // input 11 (0xB)
735     INVALID_VALUE, // input 12 (0xC)
736     INVALID_VALUE, // input 13 (0xD)
737     INVALID_VALUE, // input 14 (0xE)
738     INVALID_VALUE, // input 15 (0xF)
739     INVALID_VALUE, // input 16 (0x10)
740     INVALID_VALUE, // input 17 (0x11)
741     INVALID_VALUE, // input 18 (0x12)
742     INVALID_VALUE, // input 19 (0x13)
743     INVALID_VALUE, // input 20 (0x14)
744     INVALID_VALUE, // input 21 (0x15)
745     INVALID_VALUE, // input 22 (0x16)
746     INVALID_VALUE, // input 23 (0x17)
747     INVALID_VALUE, // input 24 (0x18)
748     INVALID_VALUE, // input 25 (0x19)
749     INVALID_VALUE, // input 26 (0x1A)
750     INVALID_VALUE, // input 27 (0x1B)
751     INVALID_VALUE, // input 28 (0x1C)
752     INVALID_VALUE, // input 29 (0x1D)
753     INVALID_VALUE, // input 30 (0x1E)
754     INVALID_VALUE, // input 31 (0x1F)
755     INVALID_VALUE, // input 32 (0x20)
756     INVALID_VALUE, // input 33 (0x21)
757     INVALID_VALUE, // input 34 (0x22)
758     INVALID_VALUE, // input 35 (0x23)
759     INVALID_VALUE, // input 36 (0x24)
760     INVALID_VALUE, // input 37 (0x25)
761     INVALID_VALUE, // input 38 (0x26)
762     INVALID_VALUE, // input 39 (0x27)
763     INVALID_VALUE, // input 40 (0x28)
764     INVALID_VALUE, // input 41 (0x29)
765     INVALID_VALUE, // input 42 (0x2A)
766     INVALID_VALUE, // input 43 (0x2B)
767     INVALID_VALUE, // input 44 (0x2C)
768     INVALID_VALUE, // input 45 (0x2D)
769     0, // input 46 (0x2E char '.') => 0 (0x0)
770     1, // input 47 (0x2F char '/') => 1 (0x1)
771     2, // input 48 (0x30 char '0') => 2 (0x2)
772     3, // input 49 (0x31 char '1') => 3 (0x3)
773     4, // input 50 (0x32 char '2') => 4 (0x4)
774     5, // input 51 (0x33 char '3') => 5 (0x5)
775     6, // input 52 (0x34 char '4') => 6 (0x6)
776     7, // input 53 (0x35 char '5') => 7 (0x7)
777     8, // input 54 (0x36 char '6') => 8 (0x8)
778     9, // input 55 (0x37 char '7') => 9 (0x9)
779     10, // input 56 (0x38 char '8') => 10 (0xA)
780     11, // input 57 (0x39 char '9') => 11 (0xB)
781     INVALID_VALUE, // input 58 (0x3A)
782     INVALID_VALUE, // input 59 (0x3B)
783     INVALID_VALUE, // input 60 (0x3C)
784     INVALID_VALUE, // input 61 (0x3D)
785     INVALID_VALUE, // input 62 (0x3E)
786     INVALID_VALUE, // input 63 (0x3F)
787     INVALID_VALUE, // input 64 (0x40)
788     12, // input 65 (0x41 char 'A') => 12 (0xC)
789     13, // input 66 (0x42 char 'B') => 13 (0xD)
790     14, // input 67 (0x43 char 'C') => 14 (0xE)
791     15, // input 68 (0x44 char 'D') => 15 (0xF)
792     16, // input 69 (0x45 char 'E') => 16 (0x10)
793     17, // input 70 (0x46 char 'F') => 17 (0x11)
794     18, // input 71 (0x47 char 'G') => 18 (0x12)
795     19, // input 72 (0x48 char 'H') => 19 (0x13)
796     20, // input 73 (0x49 char 'I') => 20 (0x14)
797     21, // input 74 (0x4A char 'J') => 21 (0x15)
798     22, // input 75 (0x4B char 'K') => 22 (0x16)
799     23, // input 76 (0x4C char 'L') => 23 (0x17)
800     24, // input 77 (0x4D char 'M') => 24 (0x18)
801     25, // input 78 (0x4E char 'N') => 25 (0x19)
802     26, // input 79 (0x4F char 'O') => 26 (0x1A)
803     27, // input 80 (0x50 char 'P') => 27 (0x1B)
804     28, // input 81 (0x51 char 'Q') => 28 (0x1C)
805     29, // input 82 (0x52 char 'R') => 29 (0x1D)
806     30, // input 83 (0x53 char 'S') => 30 (0x1E)
807     31, // input 84 (0x54 char 'T') => 31 (0x1F)
808     32, // input 85 (0x55 char 'U') => 32 (0x20)
809     33, // input 86 (0x56 char 'V') => 33 (0x21)
810     34, // input 87 (0x57 char 'W') => 34 (0x22)
811     35, // input 88 (0x58 char 'X') => 35 (0x23)
812     36, // input 89 (0x59 char 'Y') => 36 (0x24)
813     37, // input 90 (0x5A char 'Z') => 37 (0x25)
814     INVALID_VALUE, // input 91 (0x5B)
815     INVALID_VALUE, // input 92 (0x5C)
816     INVALID_VALUE, // input 93 (0x5D)
817     INVALID_VALUE, // input 94 (0x5E)
818     INVALID_VALUE, // input 95 (0x5F)
819     INVALID_VALUE, // input 96 (0x60)
820     38, // input 97 (0x61 char 'a') => 38 (0x26)
821     39, // input 98 (0x62 char 'b') => 39 (0x27)
822     40, // input 99 (0x63 char 'c') => 40 (0x28)
823     41, // input 100 (0x64 char 'd') => 41 (0x29)
824     42, // input 101 (0x65 char 'e') => 42 (0x2A)
825     43, // input 102 (0x66 char 'f') => 43 (0x2B)
826     44, // input 103 (0x67 char 'g') => 44 (0x2C)
827     45, // input 104 (0x68 char 'h') => 45 (0x2D)
828     46, // input 105 (0x69 char 'i') => 46 (0x2E)
829     47, // input 106 (0x6A char 'j') => 47 (0x2F)
830     48, // input 107 (0x6B char 'k') => 48 (0x30)
831     49, // input 108 (0x6C char 'l') => 49 (0x31)
832     50, // input 109 (0x6D char 'm') => 50 (0x32)
833     51, // input 110 (0x6E char 'n') => 51 (0x33)
834     52, // input 111 (0x6F char 'o') => 52 (0x34)
835     53, // input 112 (0x70 char 'p') => 53 (0x35)
836     54, // input 113 (0x71 char 'q') => 54 (0x36)
837     55, // input 114 (0x72 char 'r') => 55 (0x37)
838     56, // input 115 (0x73 char 's') => 56 (0x38)
839     57, // input 116 (0x74 char 't') => 57 (0x39)
840     58, // input 117 (0x75 char 'u') => 58 (0x3A)
841     59, // input 118 (0x76 char 'v') => 59 (0x3B)
842     60, // input 119 (0x77 char 'w') => 60 (0x3C)
843     61, // input 120 (0x78 char 'x') => 61 (0x3D)
844     62, // input 121 (0x79 char 'y') => 62 (0x3E)
845     63, // input 122 (0x7A char 'z') => 63 (0x3F)
846     INVALID_VALUE, // input 123 (0x7B)
847     INVALID_VALUE, // input 124 (0x7C)
848     INVALID_VALUE, // input 125 (0x7D)
849     INVALID_VALUE, // input 126 (0x7E)
850     INVALID_VALUE, // input 127 (0x7F)
851     INVALID_VALUE, // input 128 (0x80)
852     INVALID_VALUE, // input 129 (0x81)
853     INVALID_VALUE, // input 130 (0x82)
854     INVALID_VALUE, // input 131 (0x83)
855     INVALID_VALUE, // input 132 (0x84)
856     INVALID_VALUE, // input 133 (0x85)
857     INVALID_VALUE, // input 134 (0x86)
858     INVALID_VALUE, // input 135 (0x87)
859     INVALID_VALUE, // input 136 (0x88)
860     INVALID_VALUE, // input 137 (0x89)
861     INVALID_VALUE, // input 138 (0x8A)
862     INVALID_VALUE, // input 139 (0x8B)
863     INVALID_VALUE, // input 140 (0x8C)
864     INVALID_VALUE, // input 141 (0x8D)
865     INVALID_VALUE, // input 142 (0x8E)
866     INVALID_VALUE, // input 143 (0x8F)
867     INVALID_VALUE, // input 144 (0x90)
868     INVALID_VALUE, // input 145 (0x91)
869     INVALID_VALUE, // input 146 (0x92)
870     INVALID_VALUE, // input 147 (0x93)
871     INVALID_VALUE, // input 148 (0x94)
872     INVALID_VALUE, // input 149 (0x95)
873     INVALID_VALUE, // input 150 (0x96)
874     INVALID_VALUE, // input 151 (0x97)
875     INVALID_VALUE, // input 152 (0x98)
876     INVALID_VALUE, // input 153 (0x99)
877     INVALID_VALUE, // input 154 (0x9A)
878     INVALID_VALUE, // input 155 (0x9B)
879     INVALID_VALUE, // input 156 (0x9C)
880     INVALID_VALUE, // input 157 (0x9D)
881     INVALID_VALUE, // input 158 (0x9E)
882     INVALID_VALUE, // input 159 (0x9F)
883     INVALID_VALUE, // input 160 (0xA0)
884     INVALID_VALUE, // input 161 (0xA1)
885     INVALID_VALUE, // input 162 (0xA2)
886     INVALID_VALUE, // input 163 (0xA3)
887     INVALID_VALUE, // input 164 (0xA4)
888     INVALID_VALUE, // input 165 (0xA5)
889     INVALID_VALUE, // input 166 (0xA6)
890     INVALID_VALUE, // input 167 (0xA7)
891     INVALID_VALUE, // input 168 (0xA8)
892     INVALID_VALUE, // input 169 (0xA9)
893     INVALID_VALUE, // input 170 (0xAA)
894     INVALID_VALUE, // input 171 (0xAB)
895     INVALID_VALUE, // input 172 (0xAC)
896     INVALID_VALUE, // input 173 (0xAD)
897     INVALID_VALUE, // input 174 (0xAE)
898     INVALID_VALUE, // input 175 (0xAF)
899     INVALID_VALUE, // input 176 (0xB0)
900     INVALID_VALUE, // input 177 (0xB1)
901     INVALID_VALUE, // input 178 (0xB2)
902     INVALID_VALUE, // input 179 (0xB3)
903     INVALID_VALUE, // input 180 (0xB4)
904     INVALID_VALUE, // input 181 (0xB5)
905     INVALID_VALUE, // input 182 (0xB6)
906     INVALID_VALUE, // input 183 (0xB7)
907     INVALID_VALUE, // input 184 (0xB8)
908     INVALID_VALUE, // input 185 (0xB9)
909     INVALID_VALUE, // input 186 (0xBA)
910     INVALID_VALUE, // input 187 (0xBB)
911     INVALID_VALUE, // input 188 (0xBC)
912     INVALID_VALUE, // input 189 (0xBD)
913     INVALID_VALUE, // input 190 (0xBE)
914     INVALID_VALUE, // input 191 (0xBF)
915     INVALID_VALUE, // input 192 (0xC0)
916     INVALID_VALUE, // input 193 (0xC1)
917     INVALID_VALUE, // input 194 (0xC2)
918     INVALID_VALUE, // input 195 (0xC3)
919     INVALID_VALUE, // input 196 (0xC4)
920     INVALID_VALUE, // input 197 (0xC5)
921     INVALID_VALUE, // input 198 (0xC6)
922     INVALID_VALUE, // input 199 (0xC7)
923     INVALID_VALUE, // input 200 (0xC8)
924     INVALID_VALUE, // input 201 (0xC9)
925     INVALID_VALUE, // input 202 (0xCA)
926     INVALID_VALUE, // input 203 (0xCB)
927     INVALID_VALUE, // input 204 (0xCC)
928     INVALID_VALUE, // input 205 (0xCD)
929     INVALID_VALUE, // input 206 (0xCE)
930     INVALID_VALUE, // input 207 (0xCF)
931     INVALID_VALUE, // input 208 (0xD0)
932     INVALID_VALUE, // input 209 (0xD1)
933     INVALID_VALUE, // input 210 (0xD2)
934     INVALID_VALUE, // input 211 (0xD3)
935     INVALID_VALUE, // input 212 (0xD4)
936     INVALID_VALUE, // input 213 (0xD5)
937     INVALID_VALUE, // input 214 (0xD6)
938     INVALID_VALUE, // input 215 (0xD7)
939     INVALID_VALUE, // input 216 (0xD8)
940     INVALID_VALUE, // input 217 (0xD9)
941     INVALID_VALUE, // input 218 (0xDA)
942     INVALID_VALUE, // input 219 (0xDB)
943     INVALID_VALUE, // input 220 (0xDC)
944     INVALID_VALUE, // input 221 (0xDD)
945     INVALID_VALUE, // input 222 (0xDE)
946     INVALID_VALUE, // input 223 (0xDF)
947     INVALID_VALUE, // input 224 (0xE0)
948     INVALID_VALUE, // input 225 (0xE1)
949     INVALID_VALUE, // input 226 (0xE2)
950     INVALID_VALUE, // input 227 (0xE3)
951     INVALID_VALUE, // input 228 (0xE4)
952     INVALID_VALUE, // input 229 (0xE5)
953     INVALID_VALUE, // input 230 (0xE6)
954     INVALID_VALUE, // input 231 (0xE7)
955     INVALID_VALUE, // input 232 (0xE8)
956     INVALID_VALUE, // input 233 (0xE9)
957     INVALID_VALUE, // input 234 (0xEA)
958     INVALID_VALUE, // input 235 (0xEB)
959     INVALID_VALUE, // input 236 (0xEC)
960     INVALID_VALUE, // input 237 (0xED)
961     INVALID_VALUE, // input 238 (0xEE)
962     INVALID_VALUE, // input 239 (0xEF)
963     INVALID_VALUE, // input 240 (0xF0)
964     INVALID_VALUE, // input 241 (0xF1)
965     INVALID_VALUE, // input 242 (0xF2)
966     INVALID_VALUE, // input 243 (0xF3)
967     INVALID_VALUE, // input 244 (0xF4)
968     INVALID_VALUE, // input 245 (0xF5)
969     INVALID_VALUE, // input 246 (0xF6)
970     INVALID_VALUE, // input 247 (0xF7)
971     INVALID_VALUE, // input 248 (0xF8)
972     INVALID_VALUE, // input 249 (0xF9)
973     INVALID_VALUE, // input 250 (0xFA)
974     INVALID_VALUE, // input 251 (0xFB)
975     INVALID_VALUE, // input 252 (0xFC)
976     INVALID_VALUE, // input 253 (0xFD)
977     INVALID_VALUE, // input 254 (0xFE)
978     INVALID_VALUE, // input 255 (0xFF)
979 ];
980 #[rustfmt::skip]
981 pub const BCRYPT_ENCODE: &[u8; 64] = &[
982     46, // input 0 (0x0) => '.' (0x2E)
983     47, // input 1 (0x1) => '/' (0x2F)
984     65, // input 2 (0x2) => 'A' (0x41)
985     66, // input 3 (0x3) => 'B' (0x42)
986     67, // input 4 (0x4) => 'C' (0x43)
987     68, // input 5 (0x5) => 'D' (0x44)
988     69, // input 6 (0x6) => 'E' (0x45)
989     70, // input 7 (0x7) => 'F' (0x46)
990     71, // input 8 (0x8) => 'G' (0x47)
991     72, // input 9 (0x9) => 'H' (0x48)
992     73, // input 10 (0xA) => 'I' (0x49)
993     74, // input 11 (0xB) => 'J' (0x4A)
994     75, // input 12 (0xC) => 'K' (0x4B)
995     76, // input 13 (0xD) => 'L' (0x4C)
996     77, // input 14 (0xE) => 'M' (0x4D)
997     78, // input 15 (0xF) => 'N' (0x4E)
998     79, // input 16 (0x10) => 'O' (0x4F)
999     80, // input 17 (0x11) => 'P' (0x50)
1000     81, // input 18 (0x12) => 'Q' (0x51)
1001     82, // input 19 (0x13) => 'R' (0x52)
1002     83, // input 20 (0x14) => 'S' (0x53)
1003     84, // input 21 (0x15) => 'T' (0x54)
1004     85, // input 22 (0x16) => 'U' (0x55)
1005     86, // input 23 (0x17) => 'V' (0x56)
1006     87, // input 24 (0x18) => 'W' (0x57)
1007     88, // input 25 (0x19) => 'X' (0x58)
1008     89, // input 26 (0x1A) => 'Y' (0x59)
1009     90, // input 27 (0x1B) => 'Z' (0x5A)
1010     97, // input 28 (0x1C) => 'a' (0x61)
1011     98, // input 29 (0x1D) => 'b' (0x62)
1012     99, // input 30 (0x1E) => 'c' (0x63)
1013     100, // input 31 (0x1F) => 'd' (0x64)
1014     101, // input 32 (0x20) => 'e' (0x65)
1015     102, // input 33 (0x21) => 'f' (0x66)
1016     103, // input 34 (0x22) => 'g' (0x67)
1017     104, // input 35 (0x23) => 'h' (0x68)
1018     105, // input 36 (0x24) => 'i' (0x69)
1019     106, // input 37 (0x25) => 'j' (0x6A)
1020     107, // input 38 (0x26) => 'k' (0x6B)
1021     108, // input 39 (0x27) => 'l' (0x6C)
1022     109, // input 40 (0x28) => 'm' (0x6D)
1023     110, // input 41 (0x29) => 'n' (0x6E)
1024     111, // input 42 (0x2A) => 'o' (0x6F)
1025     112, // input 43 (0x2B) => 'p' (0x70)
1026     113, // input 44 (0x2C) => 'q' (0x71)
1027     114, // input 45 (0x2D) => 'r' (0x72)
1028     115, // input 46 (0x2E) => 's' (0x73)
1029     116, // input 47 (0x2F) => 't' (0x74)
1030     117, // input 48 (0x30) => 'u' (0x75)
1031     118, // input 49 (0x31) => 'v' (0x76)
1032     119, // input 50 (0x32) => 'w' (0x77)
1033     120, // input 51 (0x33) => 'x' (0x78)
1034     121, // input 52 (0x34) => 'y' (0x79)
1035     122, // input 53 (0x35) => 'z' (0x7A)
1036     48, // input 54 (0x36) => '0' (0x30)
1037     49, // input 55 (0x37) => '1' (0x31)
1038     50, // input 56 (0x38) => '2' (0x32)
1039     51, // input 57 (0x39) => '3' (0x33)
1040     52, // input 58 (0x3A) => '4' (0x34)
1041     53, // input 59 (0x3B) => '5' (0x35)
1042     54, // input 60 (0x3C) => '6' (0x36)
1043     55, // input 61 (0x3D) => '7' (0x37)
1044     56, // input 62 (0x3E) => '8' (0x38)
1045     57, // input 63 (0x3F) => '9' (0x39)
1046 ];
1047 #[rustfmt::skip]
1048 pub const BCRYPT_DECODE: &[u8; 256] = &[
1049     INVALID_VALUE, // input 0 (0x0)
1050     INVALID_VALUE, // input 1 (0x1)
1051     INVALID_VALUE, // input 2 (0x2)
1052     INVALID_VALUE, // input 3 (0x3)
1053     INVALID_VALUE, // input 4 (0x4)
1054     INVALID_VALUE, // input 5 (0x5)
1055     INVALID_VALUE, // input 6 (0x6)
1056     INVALID_VALUE, // input 7 (0x7)
1057     INVALID_VALUE, // input 8 (0x8)
1058     INVALID_VALUE, // input 9 (0x9)
1059     INVALID_VALUE, // input 10 (0xA)
1060     INVALID_VALUE, // input 11 (0xB)
1061     INVALID_VALUE, // input 12 (0xC)
1062     INVALID_VALUE, // input 13 (0xD)
1063     INVALID_VALUE, // input 14 (0xE)
1064     INVALID_VALUE, // input 15 (0xF)
1065     INVALID_VALUE, // input 16 (0x10)
1066     INVALID_VALUE, // input 17 (0x11)
1067     INVALID_VALUE, // input 18 (0x12)
1068     INVALID_VALUE, // input 19 (0x13)
1069     INVALID_VALUE, // input 20 (0x14)
1070     INVALID_VALUE, // input 21 (0x15)
1071     INVALID_VALUE, // input 22 (0x16)
1072     INVALID_VALUE, // input 23 (0x17)
1073     INVALID_VALUE, // input 24 (0x18)
1074     INVALID_VALUE, // input 25 (0x19)
1075     INVALID_VALUE, // input 26 (0x1A)
1076     INVALID_VALUE, // input 27 (0x1B)
1077     INVALID_VALUE, // input 28 (0x1C)
1078     INVALID_VALUE, // input 29 (0x1D)
1079     INVALID_VALUE, // input 30 (0x1E)
1080     INVALID_VALUE, // input 31 (0x1F)
1081     INVALID_VALUE, // input 32 (0x20)
1082     INVALID_VALUE, // input 33 (0x21)
1083     INVALID_VALUE, // input 34 (0x22)
1084     INVALID_VALUE, // input 35 (0x23)
1085     INVALID_VALUE, // input 36 (0x24)
1086     INVALID_VALUE, // input 37 (0x25)
1087     INVALID_VALUE, // input 38 (0x26)
1088     INVALID_VALUE, // input 39 (0x27)
1089     INVALID_VALUE, // input 40 (0x28)
1090     INVALID_VALUE, // input 41 (0x29)
1091     INVALID_VALUE, // input 42 (0x2A)
1092     INVALID_VALUE, // input 43 (0x2B)
1093     INVALID_VALUE, // input 44 (0x2C)
1094     INVALID_VALUE, // input 45 (0x2D)
1095     0, // input 46 (0x2E char '.') => 0 (0x0)
1096     1, // input 47 (0x2F char '/') => 1 (0x1)
1097     54, // input 48 (0x30 char '0') => 54 (0x36)
1098     55, // input 49 (0x31 char '1') => 55 (0x37)
1099     56, // input 50 (0x32 char '2') => 56 (0x38)
1100     57, // input 51 (0x33 char '3') => 57 (0x39)
1101     58, // input 52 (0x34 char '4') => 58 (0x3A)
1102     59, // input 53 (0x35 char '5') => 59 (0x3B)
1103     60, // input 54 (0x36 char '6') => 60 (0x3C)
1104     61, // input 55 (0x37 char '7') => 61 (0x3D)
1105     62, // input 56 (0x38 char '8') => 62 (0x3E)
1106     63, // input 57 (0x39 char '9') => 63 (0x3F)
1107     INVALID_VALUE, // input 58 (0x3A)
1108     INVALID_VALUE, // input 59 (0x3B)
1109     INVALID_VALUE, // input 60 (0x3C)
1110     INVALID_VALUE, // input 61 (0x3D)
1111     INVALID_VALUE, // input 62 (0x3E)
1112     INVALID_VALUE, // input 63 (0x3F)
1113     INVALID_VALUE, // input 64 (0x40)
1114     2, // input 65 (0x41 char 'A') => 2 (0x2)
1115     3, // input 66 (0x42 char 'B') => 3 (0x3)
1116     4, // input 67 (0x43 char 'C') => 4 (0x4)
1117     5, // input 68 (0x44 char 'D') => 5 (0x5)
1118     6, // input 69 (0x45 char 'E') => 6 (0x6)
1119     7, // input 70 (0x46 char 'F') => 7 (0x7)
1120     8, // input 71 (0x47 char 'G') => 8 (0x8)
1121     9, // input 72 (0x48 char 'H') => 9 (0x9)
1122     10, // input 73 (0x49 char 'I') => 10 (0xA)
1123     11, // input 74 (0x4A char 'J') => 11 (0xB)
1124     12, // input 75 (0x4B char 'K') => 12 (0xC)
1125     13, // input 76 (0x4C char 'L') => 13 (0xD)
1126     14, // input 77 (0x4D char 'M') => 14 (0xE)
1127     15, // input 78 (0x4E char 'N') => 15 (0xF)
1128     16, // input 79 (0x4F char 'O') => 16 (0x10)
1129     17, // input 80 (0x50 char 'P') => 17 (0x11)
1130     18, // input 81 (0x51 char 'Q') => 18 (0x12)
1131     19, // input 82 (0x52 char 'R') => 19 (0x13)
1132     20, // input 83 (0x53 char 'S') => 20 (0x14)
1133     21, // input 84 (0x54 char 'T') => 21 (0x15)
1134     22, // input 85 (0x55 char 'U') => 22 (0x16)
1135     23, // input 86 (0x56 char 'V') => 23 (0x17)
1136     24, // input 87 (0x57 char 'W') => 24 (0x18)
1137     25, // input 88 (0x58 char 'X') => 25 (0x19)
1138     26, // input 89 (0x59 char 'Y') => 26 (0x1A)
1139     27, // input 90 (0x5A char 'Z') => 27 (0x1B)
1140     INVALID_VALUE, // input 91 (0x5B)
1141     INVALID_VALUE, // input 92 (0x5C)
1142     INVALID_VALUE, // input 93 (0x5D)
1143     INVALID_VALUE, // input 94 (0x5E)
1144     INVALID_VALUE, // input 95 (0x5F)
1145     INVALID_VALUE, // input 96 (0x60)
1146     28, // input 97 (0x61 char 'a') => 28 (0x1C)
1147     29, // input 98 (0x62 char 'b') => 29 (0x1D)
1148     30, // input 99 (0x63 char 'c') => 30 (0x1E)
1149     31, // input 100 (0x64 char 'd') => 31 (0x1F)
1150     32, // input 101 (0x65 char 'e') => 32 (0x20)
1151     33, // input 102 (0x66 char 'f') => 33 (0x21)
1152     34, // input 103 (0x67 char 'g') => 34 (0x22)
1153     35, // input 104 (0x68 char 'h') => 35 (0x23)
1154     36, // input 105 (0x69 char 'i') => 36 (0x24)
1155     37, // input 106 (0x6A char 'j') => 37 (0x25)
1156     38, // input 107 (0x6B char 'k') => 38 (0x26)
1157     39, // input 108 (0x6C char 'l') => 39 (0x27)
1158     40, // input 109 (0x6D char 'm') => 40 (0x28)
1159     41, // input 110 (0x6E char 'n') => 41 (0x29)
1160     42, // input 111 (0x6F char 'o') => 42 (0x2A)
1161     43, // input 112 (0x70 char 'p') => 43 (0x2B)
1162     44, // input 113 (0x71 char 'q') => 44 (0x2C)
1163     45, // input 114 (0x72 char 'r') => 45 (0x2D)
1164     46, // input 115 (0x73 char 's') => 46 (0x2E)
1165     47, // input 116 (0x74 char 't') => 47 (0x2F)
1166     48, // input 117 (0x75 char 'u') => 48 (0x30)
1167     49, // input 118 (0x76 char 'v') => 49 (0x31)
1168     50, // input 119 (0x77 char 'w') => 50 (0x32)
1169     51, // input 120 (0x78 char 'x') => 51 (0x33)
1170     52, // input 121 (0x79 char 'y') => 52 (0x34)
1171     53, // input 122 (0x7A char 'z') => 53 (0x35)
1172     INVALID_VALUE, // input 123 (0x7B)
1173     INVALID_VALUE, // input 124 (0x7C)
1174     INVALID_VALUE, // input 125 (0x7D)
1175     INVALID_VALUE, // input 126 (0x7E)
1176     INVALID_VALUE, // input 127 (0x7F)
1177     INVALID_VALUE, // input 128 (0x80)
1178     INVALID_VALUE, // input 129 (0x81)
1179     INVALID_VALUE, // input 130 (0x82)
1180     INVALID_VALUE, // input 131 (0x83)
1181     INVALID_VALUE, // input 132 (0x84)
1182     INVALID_VALUE, // input 133 (0x85)
1183     INVALID_VALUE, // input 134 (0x86)
1184     INVALID_VALUE, // input 135 (0x87)
1185     INVALID_VALUE, // input 136 (0x88)
1186     INVALID_VALUE, // input 137 (0x89)
1187     INVALID_VALUE, // input 138 (0x8A)
1188     INVALID_VALUE, // input 139 (0x8B)
1189     INVALID_VALUE, // input 140 (0x8C)
1190     INVALID_VALUE, // input 141 (0x8D)
1191     INVALID_VALUE, // input 142 (0x8E)
1192     INVALID_VALUE, // input 143 (0x8F)
1193     INVALID_VALUE, // input 144 (0x90)
1194     INVALID_VALUE, // input 145 (0x91)
1195     INVALID_VALUE, // input 146 (0x92)
1196     INVALID_VALUE, // input 147 (0x93)
1197     INVALID_VALUE, // input 148 (0x94)
1198     INVALID_VALUE, // input 149 (0x95)
1199     INVALID_VALUE, // input 150 (0x96)
1200     INVALID_VALUE, // input 151 (0x97)
1201     INVALID_VALUE, // input 152 (0x98)
1202     INVALID_VALUE, // input 153 (0x99)
1203     INVALID_VALUE, // input 154 (0x9A)
1204     INVALID_VALUE, // input 155 (0x9B)
1205     INVALID_VALUE, // input 156 (0x9C)
1206     INVALID_VALUE, // input 157 (0x9D)
1207     INVALID_VALUE, // input 158 (0x9E)
1208     INVALID_VALUE, // input 159 (0x9F)
1209     INVALID_VALUE, // input 160 (0xA0)
1210     INVALID_VALUE, // input 161 (0xA1)
1211     INVALID_VALUE, // input 162 (0xA2)
1212     INVALID_VALUE, // input 163 (0xA3)
1213     INVALID_VALUE, // input 164 (0xA4)
1214     INVALID_VALUE, // input 165 (0xA5)
1215     INVALID_VALUE, // input 166 (0xA6)
1216     INVALID_VALUE, // input 167 (0xA7)
1217     INVALID_VALUE, // input 168 (0xA8)
1218     INVALID_VALUE, // input 169 (0xA9)
1219     INVALID_VALUE, // input 170 (0xAA)
1220     INVALID_VALUE, // input 171 (0xAB)
1221     INVALID_VALUE, // input 172 (0xAC)
1222     INVALID_VALUE, // input 173 (0xAD)
1223     INVALID_VALUE, // input 174 (0xAE)
1224     INVALID_VALUE, // input 175 (0xAF)
1225     INVALID_VALUE, // input 176 (0xB0)
1226     INVALID_VALUE, // input 177 (0xB1)
1227     INVALID_VALUE, // input 178 (0xB2)
1228     INVALID_VALUE, // input 179 (0xB3)
1229     INVALID_VALUE, // input 180 (0xB4)
1230     INVALID_VALUE, // input 181 (0xB5)
1231     INVALID_VALUE, // input 182 (0xB6)
1232     INVALID_VALUE, // input 183 (0xB7)
1233     INVALID_VALUE, // input 184 (0xB8)
1234     INVALID_VALUE, // input 185 (0xB9)
1235     INVALID_VALUE, // input 186 (0xBA)
1236     INVALID_VALUE, // input 187 (0xBB)
1237     INVALID_VALUE, // input 188 (0xBC)
1238     INVALID_VALUE, // input 189 (0xBD)
1239     INVALID_VALUE, // input 190 (0xBE)
1240     INVALID_VALUE, // input 191 (0xBF)
1241     INVALID_VALUE, // input 192 (0xC0)
1242     INVALID_VALUE, // input 193 (0xC1)
1243     INVALID_VALUE, // input 194 (0xC2)
1244     INVALID_VALUE, // input 195 (0xC3)
1245     INVALID_VALUE, // input 196 (0xC4)
1246     INVALID_VALUE, // input 197 (0xC5)
1247     INVALID_VALUE, // input 198 (0xC6)
1248     INVALID_VALUE, // input 199 (0xC7)
1249     INVALID_VALUE, // input 200 (0xC8)
1250     INVALID_VALUE, // input 201 (0xC9)
1251     INVALID_VALUE, // input 202 (0xCA)
1252     INVALID_VALUE, // input 203 (0xCB)
1253     INVALID_VALUE, // input 204 (0xCC)
1254     INVALID_VALUE, // input 205 (0xCD)
1255     INVALID_VALUE, // input 206 (0xCE)
1256     INVALID_VALUE, // input 207 (0xCF)
1257     INVALID_VALUE, // input 208 (0xD0)
1258     INVALID_VALUE, // input 209 (0xD1)
1259     INVALID_VALUE, // input 210 (0xD2)
1260     INVALID_VALUE, // input 211 (0xD3)
1261     INVALID_VALUE, // input 212 (0xD4)
1262     INVALID_VALUE, // input 213 (0xD5)
1263     INVALID_VALUE, // input 214 (0xD6)
1264     INVALID_VALUE, // input 215 (0xD7)
1265     INVALID_VALUE, // input 216 (0xD8)
1266     INVALID_VALUE, // input 217 (0xD9)
1267     INVALID_VALUE, // input 218 (0xDA)
1268     INVALID_VALUE, // input 219 (0xDB)
1269     INVALID_VALUE, // input 220 (0xDC)
1270     INVALID_VALUE, // input 221 (0xDD)
1271     INVALID_VALUE, // input 222 (0xDE)
1272     INVALID_VALUE, // input 223 (0xDF)
1273     INVALID_VALUE, // input 224 (0xE0)
1274     INVALID_VALUE, // input 225 (0xE1)
1275     INVALID_VALUE, // input 226 (0xE2)
1276     INVALID_VALUE, // input 227 (0xE3)
1277     INVALID_VALUE, // input 228 (0xE4)
1278     INVALID_VALUE, // input 229 (0xE5)
1279     INVALID_VALUE, // input 230 (0xE6)
1280     INVALID_VALUE, // input 231 (0xE7)
1281     INVALID_VALUE, // input 232 (0xE8)
1282     INVALID_VALUE, // input 233 (0xE9)
1283     INVALID_VALUE, // input 234 (0xEA)
1284     INVALID_VALUE, // input 235 (0xEB)
1285     INVALID_VALUE, // input 236 (0xEC)
1286     INVALID_VALUE, // input 237 (0xED)
1287     INVALID_VALUE, // input 238 (0xEE)
1288     INVALID_VALUE, // input 239 (0xEF)
1289     INVALID_VALUE, // input 240 (0xF0)
1290     INVALID_VALUE, // input 241 (0xF1)
1291     INVALID_VALUE, // input 242 (0xF2)
1292     INVALID_VALUE, // input 243 (0xF3)
1293     INVALID_VALUE, // input 244 (0xF4)
1294     INVALID_VALUE, // input 245 (0xF5)
1295     INVALID_VALUE, // input 246 (0xF6)
1296     INVALID_VALUE, // input 247 (0xF7)
1297     INVALID_VALUE, // input 248 (0xF8)
1298     INVALID_VALUE, // input 249 (0xF9)
1299     INVALID_VALUE, // input 250 (0xFA)
1300     INVALID_VALUE, // input 251 (0xFB)
1301     INVALID_VALUE, // input 252 (0xFC)
1302     INVALID_VALUE, // input 253 (0xFD)
1303     INVALID_VALUE, // input 254 (0xFE)
1304     INVALID_VALUE, // input 255 (0xFF)
1305 ];
1306 #[rustfmt::skip]
1307 pub const IMAP_MUTF7_ENCODE: &[u8; 64] = &[
1308     65, // input 0 (0x0) => 'A' (0x41)
1309     66, // input 1 (0x1) => 'B' (0x42)
1310     67, // input 2 (0x2) => 'C' (0x43)
1311     68, // input 3 (0x3) => 'D' (0x44)
1312     69, // input 4 (0x4) => 'E' (0x45)
1313     70, // input 5 (0x5) => 'F' (0x46)
1314     71, // input 6 (0x6) => 'G' (0x47)
1315     72, // input 7 (0x7) => 'H' (0x48)
1316     73, // input 8 (0x8) => 'I' (0x49)
1317     74, // input 9 (0x9) => 'J' (0x4A)
1318     75, // input 10 (0xA) => 'K' (0x4B)
1319     76, // input 11 (0xB) => 'L' (0x4C)
1320     77, // input 12 (0xC) => 'M' (0x4D)
1321     78, // input 13 (0xD) => 'N' (0x4E)
1322     79, // input 14 (0xE) => 'O' (0x4F)
1323     80, // input 15 (0xF) => 'P' (0x50)
1324     81, // input 16 (0x10) => 'Q' (0x51)
1325     82, // input 17 (0x11) => 'R' (0x52)
1326     83, // input 18 (0x12) => 'S' (0x53)
1327     84, // input 19 (0x13) => 'T' (0x54)
1328     85, // input 20 (0x14) => 'U' (0x55)
1329     86, // input 21 (0x15) => 'V' (0x56)
1330     87, // input 22 (0x16) => 'W' (0x57)
1331     88, // input 23 (0x17) => 'X' (0x58)
1332     89, // input 24 (0x18) => 'Y' (0x59)
1333     90, // input 25 (0x19) => 'Z' (0x5A)
1334     97, // input 26 (0x1A) => 'a' (0x61)
1335     98, // input 27 (0x1B) => 'b' (0x62)
1336     99, // input 28 (0x1C) => 'c' (0x63)
1337     100, // input 29 (0x1D) => 'd' (0x64)
1338     101, // input 30 (0x1E) => 'e' (0x65)
1339     102, // input 31 (0x1F) => 'f' (0x66)
1340     103, // input 32 (0x20) => 'g' (0x67)
1341     104, // input 33 (0x21) => 'h' (0x68)
1342     105, // input 34 (0x22) => 'i' (0x69)
1343     106, // input 35 (0x23) => 'j' (0x6A)
1344     107, // input 36 (0x24) => 'k' (0x6B)
1345     108, // input 37 (0x25) => 'l' (0x6C)
1346     109, // input 38 (0x26) => 'm' (0x6D)
1347     110, // input 39 (0x27) => 'n' (0x6E)
1348     111, // input 40 (0x28) => 'o' (0x6F)
1349     112, // input 41 (0x29) => 'p' (0x70)
1350     113, // input 42 (0x2A) => 'q' (0x71)
1351     114, // input 43 (0x2B) => 'r' (0x72)
1352     115, // input 44 (0x2C) => 's' (0x73)
1353     116, // input 45 (0x2D) => 't' (0x74)
1354     117, // input 46 (0x2E) => 'u' (0x75)
1355     118, // input 47 (0x2F) => 'v' (0x76)
1356     119, // input 48 (0x30) => 'w' (0x77)
1357     120, // input 49 (0x31) => 'x' (0x78)
1358     121, // input 50 (0x32) => 'y' (0x79)
1359     122, // input 51 (0x33) => 'z' (0x7A)
1360     48, // input 52 (0x34) => '0' (0x30)
1361     49, // input 53 (0x35) => '1' (0x31)
1362     50, // input 54 (0x36) => '2' (0x32)
1363     51, // input 55 (0x37) => '3' (0x33)
1364     52, // input 56 (0x38) => '4' (0x34)
1365     53, // input 57 (0x39) => '5' (0x35)
1366     54, // input 58 (0x3A) => '6' (0x36)
1367     55, // input 59 (0x3B) => '7' (0x37)
1368     56, // input 60 (0x3C) => '8' (0x38)
1369     57, // input 61 (0x3D) => '9' (0x39)
1370     43, // input 62 (0x3E) => '+' (0x2B)
1371     44, // input 63 (0x3F) => ',' (0x2C)
1372 ];
1373 #[rustfmt::skip]
1374 pub const IMAP_MUTF7_DECODE: &[u8; 256] = &[
1375     INVALID_VALUE, // input 0 (0x0)
1376     INVALID_VALUE, // input 1 (0x1)
1377     INVALID_VALUE, // input 2 (0x2)
1378     INVALID_VALUE, // input 3 (0x3)
1379     INVALID_VALUE, // input 4 (0x4)
1380     INVALID_VALUE, // input 5 (0x5)
1381     INVALID_VALUE, // input 6 (0x6)
1382     INVALID_VALUE, // input 7 (0x7)
1383     INVALID_VALUE, // input 8 (0x8)
1384     INVALID_VALUE, // input 9 (0x9)
1385     INVALID_VALUE, // input 10 (0xA)
1386     INVALID_VALUE, // input 11 (0xB)
1387     INVALID_VALUE, // input 12 (0xC)
1388     INVALID_VALUE, // input 13 (0xD)
1389     INVALID_VALUE, // input 14 (0xE)
1390     INVALID_VALUE, // input 15 (0xF)
1391     INVALID_VALUE, // input 16 (0x10)
1392     INVALID_VALUE, // input 17 (0x11)
1393     INVALID_VALUE, // input 18 (0x12)
1394     INVALID_VALUE, // input 19 (0x13)
1395     INVALID_VALUE, // input 20 (0x14)
1396     INVALID_VALUE, // input 21 (0x15)
1397     INVALID_VALUE, // input 22 (0x16)
1398     INVALID_VALUE, // input 23 (0x17)
1399     INVALID_VALUE, // input 24 (0x18)
1400     INVALID_VALUE, // input 25 (0x19)
1401     INVALID_VALUE, // input 26 (0x1A)
1402     INVALID_VALUE, // input 27 (0x1B)
1403     INVALID_VALUE, // input 28 (0x1C)
1404     INVALID_VALUE, // input 29 (0x1D)
1405     INVALID_VALUE, // input 30 (0x1E)
1406     INVALID_VALUE, // input 31 (0x1F)
1407     INVALID_VALUE, // input 32 (0x20)
1408     INVALID_VALUE, // input 33 (0x21)
1409     INVALID_VALUE, // input 34 (0x22)
1410     INVALID_VALUE, // input 35 (0x23)
1411     INVALID_VALUE, // input 36 (0x24)
1412     INVALID_VALUE, // input 37 (0x25)
1413     INVALID_VALUE, // input 38 (0x26)
1414     INVALID_VALUE, // input 39 (0x27)
1415     INVALID_VALUE, // input 40 (0x28)
1416     INVALID_VALUE, // input 41 (0x29)
1417     INVALID_VALUE, // input 42 (0x2A)
1418     62, // input 43 (0x2B char '+') => 62 (0x3E)
1419     63, // input 44 (0x2C char ',') => 63 (0x3F)
1420     INVALID_VALUE, // input 45 (0x2D)
1421     INVALID_VALUE, // input 46 (0x2E)
1422     INVALID_VALUE, // input 47 (0x2F)
1423     52, // input 48 (0x30 char '0') => 52 (0x34)
1424     53, // input 49 (0x31 char '1') => 53 (0x35)
1425     54, // input 50 (0x32 char '2') => 54 (0x36)
1426     55, // input 51 (0x33 char '3') => 55 (0x37)
1427     56, // input 52 (0x34 char '4') => 56 (0x38)
1428     57, // input 53 (0x35 char '5') => 57 (0x39)
1429     58, // input 54 (0x36 char '6') => 58 (0x3A)
1430     59, // input 55 (0x37 char '7') => 59 (0x3B)
1431     60, // input 56 (0x38 char '8') => 60 (0x3C)
1432     61, // input 57 (0x39 char '9') => 61 (0x3D)
1433     INVALID_VALUE, // input 58 (0x3A)
1434     INVALID_VALUE, // input 59 (0x3B)
1435     INVALID_VALUE, // input 60 (0x3C)
1436     INVALID_VALUE, // input 61 (0x3D)
1437     INVALID_VALUE, // input 62 (0x3E)
1438     INVALID_VALUE, // input 63 (0x3F)
1439     INVALID_VALUE, // input 64 (0x40)
1440     0, // input 65 (0x41 char 'A') => 0 (0x0)
1441     1, // input 66 (0x42 char 'B') => 1 (0x1)
1442     2, // input 67 (0x43 char 'C') => 2 (0x2)
1443     3, // input 68 (0x44 char 'D') => 3 (0x3)
1444     4, // input 69 (0x45 char 'E') => 4 (0x4)
1445     5, // input 70 (0x46 char 'F') => 5 (0x5)
1446     6, // input 71 (0x47 char 'G') => 6 (0x6)
1447     7, // input 72 (0x48 char 'H') => 7 (0x7)
1448     8, // input 73 (0x49 char 'I') => 8 (0x8)
1449     9, // input 74 (0x4A char 'J') => 9 (0x9)
1450     10, // input 75 (0x4B char 'K') => 10 (0xA)
1451     11, // input 76 (0x4C char 'L') => 11 (0xB)
1452     12, // input 77 (0x4D char 'M') => 12 (0xC)
1453     13, // input 78 (0x4E char 'N') => 13 (0xD)
1454     14, // input 79 (0x4F char 'O') => 14 (0xE)
1455     15, // input 80 (0x50 char 'P') => 15 (0xF)
1456     16, // input 81 (0x51 char 'Q') => 16 (0x10)
1457     17, // input 82 (0x52 char 'R') => 17 (0x11)
1458     18, // input 83 (0x53 char 'S') => 18 (0x12)
1459     19, // input 84 (0x54 char 'T') => 19 (0x13)
1460     20, // input 85 (0x55 char 'U') => 20 (0x14)
1461     21, // input 86 (0x56 char 'V') => 21 (0x15)
1462     22, // input 87 (0x57 char 'W') => 22 (0x16)
1463     23, // input 88 (0x58 char 'X') => 23 (0x17)
1464     24, // input 89 (0x59 char 'Y') => 24 (0x18)
1465     25, // input 90 (0x5A char 'Z') => 25 (0x19)
1466     INVALID_VALUE, // input 91 (0x5B)
1467     INVALID_VALUE, // input 92 (0x5C)
1468     INVALID_VALUE, // input 93 (0x5D)
1469     INVALID_VALUE, // input 94 (0x5E)
1470     INVALID_VALUE, // input 95 (0x5F)
1471     INVALID_VALUE, // input 96 (0x60)
1472     26, // input 97 (0x61 char 'a') => 26 (0x1A)
1473     27, // input 98 (0x62 char 'b') => 27 (0x1B)
1474     28, // input 99 (0x63 char 'c') => 28 (0x1C)
1475     29, // input 100 (0x64 char 'd') => 29 (0x1D)
1476     30, // input 101 (0x65 char 'e') => 30 (0x1E)
1477     31, // input 102 (0x66 char 'f') => 31 (0x1F)
1478     32, // input 103 (0x67 char 'g') => 32 (0x20)
1479     33, // input 104 (0x68 char 'h') => 33 (0x21)
1480     34, // input 105 (0x69 char 'i') => 34 (0x22)
1481     35, // input 106 (0x6A char 'j') => 35 (0x23)
1482     36, // input 107 (0x6B char 'k') => 36 (0x24)
1483     37, // input 108 (0x6C char 'l') => 37 (0x25)
1484     38, // input 109 (0x6D char 'm') => 38 (0x26)
1485     39, // input 110 (0x6E char 'n') => 39 (0x27)
1486     40, // input 111 (0x6F char 'o') => 40 (0x28)
1487     41, // input 112 (0x70 char 'p') => 41 (0x29)
1488     42, // input 113 (0x71 char 'q') => 42 (0x2A)
1489     43, // input 114 (0x72 char 'r') => 43 (0x2B)
1490     44, // input 115 (0x73 char 's') => 44 (0x2C)
1491     45, // input 116 (0x74 char 't') => 45 (0x2D)
1492     46, // input 117 (0x75 char 'u') => 46 (0x2E)
1493     47, // input 118 (0x76 char 'v') => 47 (0x2F)
1494     48, // input 119 (0x77 char 'w') => 48 (0x30)
1495     49, // input 120 (0x78 char 'x') => 49 (0x31)
1496     50, // input 121 (0x79 char 'y') => 50 (0x32)
1497     51, // input 122 (0x7A char 'z') => 51 (0x33)
1498     INVALID_VALUE, // input 123 (0x7B)
1499     INVALID_VALUE, // input 124 (0x7C)
1500     INVALID_VALUE, // input 125 (0x7D)
1501     INVALID_VALUE, // input 126 (0x7E)
1502     INVALID_VALUE, // input 127 (0x7F)
1503     INVALID_VALUE, // input 128 (0x80)
1504     INVALID_VALUE, // input 129 (0x81)
1505     INVALID_VALUE, // input 130 (0x82)
1506     INVALID_VALUE, // input 131 (0x83)
1507     INVALID_VALUE, // input 132 (0x84)
1508     INVALID_VALUE, // input 133 (0x85)
1509     INVALID_VALUE, // input 134 (0x86)
1510     INVALID_VALUE, // input 135 (0x87)
1511     INVALID_VALUE, // input 136 (0x88)
1512     INVALID_VALUE, // input 137 (0x89)
1513     INVALID_VALUE, // input 138 (0x8A)
1514     INVALID_VALUE, // input 139 (0x8B)
1515     INVALID_VALUE, // input 140 (0x8C)
1516     INVALID_VALUE, // input 141 (0x8D)
1517     INVALID_VALUE, // input 142 (0x8E)
1518     INVALID_VALUE, // input 143 (0x8F)
1519     INVALID_VALUE, // input 144 (0x90)
1520     INVALID_VALUE, // input 145 (0x91)
1521     INVALID_VALUE, // input 146 (0x92)
1522     INVALID_VALUE, // input 147 (0x93)
1523     INVALID_VALUE, // input 148 (0x94)
1524     INVALID_VALUE, // input 149 (0x95)
1525     INVALID_VALUE, // input 150 (0x96)
1526     INVALID_VALUE, // input 151 (0x97)
1527     INVALID_VALUE, // input 152 (0x98)
1528     INVALID_VALUE, // input 153 (0x99)
1529     INVALID_VALUE, // input 154 (0x9A)
1530     INVALID_VALUE, // input 155 (0x9B)
1531     INVALID_VALUE, // input 156 (0x9C)
1532     INVALID_VALUE, // input 157 (0x9D)
1533     INVALID_VALUE, // input 158 (0x9E)
1534     INVALID_VALUE, // input 159 (0x9F)
1535     INVALID_VALUE, // input 160 (0xA0)
1536     INVALID_VALUE, // input 161 (0xA1)
1537     INVALID_VALUE, // input 162 (0xA2)
1538     INVALID_VALUE, // input 163 (0xA3)
1539     INVALID_VALUE, // input 164 (0xA4)
1540     INVALID_VALUE, // input 165 (0xA5)
1541     INVALID_VALUE, // input 166 (0xA6)
1542     INVALID_VALUE, // input 167 (0xA7)
1543     INVALID_VALUE, // input 168 (0xA8)
1544     INVALID_VALUE, // input 169 (0xA9)
1545     INVALID_VALUE, // input 170 (0xAA)
1546     INVALID_VALUE, // input 171 (0xAB)
1547     INVALID_VALUE, // input 172 (0xAC)
1548     INVALID_VALUE, // input 173 (0xAD)
1549     INVALID_VALUE, // input 174 (0xAE)
1550     INVALID_VALUE, // input 175 (0xAF)
1551     INVALID_VALUE, // input 176 (0xB0)
1552     INVALID_VALUE, // input 177 (0xB1)
1553     INVALID_VALUE, // input 178 (0xB2)
1554     INVALID_VALUE, // input 179 (0xB3)
1555     INVALID_VALUE, // input 180 (0xB4)
1556     INVALID_VALUE, // input 181 (0xB5)
1557     INVALID_VALUE, // input 182 (0xB6)
1558     INVALID_VALUE, // input 183 (0xB7)
1559     INVALID_VALUE, // input 184 (0xB8)
1560     INVALID_VALUE, // input 185 (0xB9)
1561     INVALID_VALUE, // input 186 (0xBA)
1562     INVALID_VALUE, // input 187 (0xBB)
1563     INVALID_VALUE, // input 188 (0xBC)
1564     INVALID_VALUE, // input 189 (0xBD)
1565     INVALID_VALUE, // input 190 (0xBE)
1566     INVALID_VALUE, // input 191 (0xBF)
1567     INVALID_VALUE, // input 192 (0xC0)
1568     INVALID_VALUE, // input 193 (0xC1)
1569     INVALID_VALUE, // input 194 (0xC2)
1570     INVALID_VALUE, // input 195 (0xC3)
1571     INVALID_VALUE, // input 196 (0xC4)
1572     INVALID_VALUE, // input 197 (0xC5)
1573     INVALID_VALUE, // input 198 (0xC6)
1574     INVALID_VALUE, // input 199 (0xC7)
1575     INVALID_VALUE, // input 200 (0xC8)
1576     INVALID_VALUE, // input 201 (0xC9)
1577     INVALID_VALUE, // input 202 (0xCA)
1578     INVALID_VALUE, // input 203 (0xCB)
1579     INVALID_VALUE, // input 204 (0xCC)
1580     INVALID_VALUE, // input 205 (0xCD)
1581     INVALID_VALUE, // input 206 (0xCE)
1582     INVALID_VALUE, // input 207 (0xCF)
1583     INVALID_VALUE, // input 208 (0xD0)
1584     INVALID_VALUE, // input 209 (0xD1)
1585     INVALID_VALUE, // input 210 (0xD2)
1586     INVALID_VALUE, // input 211 (0xD3)
1587     INVALID_VALUE, // input 212 (0xD4)
1588     INVALID_VALUE, // input 213 (0xD5)
1589     INVALID_VALUE, // input 214 (0xD6)
1590     INVALID_VALUE, // input 215 (0xD7)
1591     INVALID_VALUE, // input 216 (0xD8)
1592     INVALID_VALUE, // input 217 (0xD9)
1593     INVALID_VALUE, // input 218 (0xDA)
1594     INVALID_VALUE, // input 219 (0xDB)
1595     INVALID_VALUE, // input 220 (0xDC)
1596     INVALID_VALUE, // input 221 (0xDD)
1597     INVALID_VALUE, // input 222 (0xDE)
1598     INVALID_VALUE, // input 223 (0xDF)
1599     INVALID_VALUE, // input 224 (0xE0)
1600     INVALID_VALUE, // input 225 (0xE1)
1601     INVALID_VALUE, // input 226 (0xE2)
1602     INVALID_VALUE, // input 227 (0xE3)
1603     INVALID_VALUE, // input 228 (0xE4)
1604     INVALID_VALUE, // input 229 (0xE5)
1605     INVALID_VALUE, // input 230 (0xE6)
1606     INVALID_VALUE, // input 231 (0xE7)
1607     INVALID_VALUE, // input 232 (0xE8)
1608     INVALID_VALUE, // input 233 (0xE9)
1609     INVALID_VALUE, // input 234 (0xEA)
1610     INVALID_VALUE, // input 235 (0xEB)
1611     INVALID_VALUE, // input 236 (0xEC)
1612     INVALID_VALUE, // input 237 (0xED)
1613     INVALID_VALUE, // input 238 (0xEE)
1614     INVALID_VALUE, // input 239 (0xEF)
1615     INVALID_VALUE, // input 240 (0xF0)
1616     INVALID_VALUE, // input 241 (0xF1)
1617     INVALID_VALUE, // input 242 (0xF2)
1618     INVALID_VALUE, // input 243 (0xF3)
1619     INVALID_VALUE, // input 244 (0xF4)
1620     INVALID_VALUE, // input 245 (0xF5)
1621     INVALID_VALUE, // input 246 (0xF6)
1622     INVALID_VALUE, // input 247 (0xF7)
1623     INVALID_VALUE, // input 248 (0xF8)
1624     INVALID_VALUE, // input 249 (0xF9)
1625     INVALID_VALUE, // input 250 (0xFA)
1626     INVALID_VALUE, // input 251 (0xFB)
1627     INVALID_VALUE, // input 252 (0xFC)
1628     INVALID_VALUE, // input 253 (0xFD)
1629     INVALID_VALUE, // input 254 (0xFE)
1630     INVALID_VALUE, // input 255 (0xFF)
1631 ];
1632 #[rustfmt::skip]
1633 pub const BINHEX_ENCODE: &[u8; 64] = &[
1634     33, // input 0 (0x0) => '!' (0x21)
1635     34, // input 1 (0x1) => '"' (0x22)
1636     35, // input 2 (0x2) => '#' (0x23)
1637     36, // input 3 (0x3) => '$' (0x24)
1638     37, // input 4 (0x4) => '%' (0x25)
1639     38, // input 5 (0x5) => '&' (0x26)
1640     39, // input 6 (0x6) => ''' (0x27)
1641     40, // input 7 (0x7) => '(' (0x28)
1642     41, // input 8 (0x8) => ')' (0x29)
1643     42, // input 9 (0x9) => '*' (0x2A)
1644     43, // input 10 (0xA) => '+' (0x2B)
1645     44, // input 11 (0xB) => ',' (0x2C)
1646     45, // input 12 (0xC) => '-' (0x2D)
1647     48, // input 13 (0xD) => '0' (0x30)
1648     49, // input 14 (0xE) => '1' (0x31)
1649     50, // input 15 (0xF) => '2' (0x32)
1650     51, // input 16 (0x10) => '3' (0x33)
1651     52, // input 17 (0x11) => '4' (0x34)
1652     53, // input 18 (0x12) => '5' (0x35)
1653     54, // input 19 (0x13) => '6' (0x36)
1654     55, // input 20 (0x14) => '7' (0x37)
1655     56, // input 21 (0x15) => '8' (0x38)
1656     57, // input 22 (0x16) => '9' (0x39)
1657     64, // input 23 (0x17) => '@' (0x40)
1658     65, // input 24 (0x18) => 'A' (0x41)
1659     66, // input 25 (0x19) => 'B' (0x42)
1660     67, // input 26 (0x1A) => 'C' (0x43)
1661     68, // input 27 (0x1B) => 'D' (0x44)
1662     69, // input 28 (0x1C) => 'E' (0x45)
1663     70, // input 29 (0x1D) => 'F' (0x46)
1664     71, // input 30 (0x1E) => 'G' (0x47)
1665     72, // input 31 (0x1F) => 'H' (0x48)
1666     73, // input 32 (0x20) => 'I' (0x49)
1667     74, // input 33 (0x21) => 'J' (0x4A)
1668     75, // input 34 (0x22) => 'K' (0x4B)
1669     76, // input 35 (0x23) => 'L' (0x4C)
1670     77, // input 36 (0x24) => 'M' (0x4D)
1671     78, // input 37 (0x25) => 'N' (0x4E)
1672     80, // input 38 (0x26) => 'P' (0x50)
1673     81, // input 39 (0x27) => 'Q' (0x51)
1674     82, // input 40 (0x28) => 'R' (0x52)
1675     83, // input 41 (0x29) => 'S' (0x53)
1676     84, // input 42 (0x2A) => 'T' (0x54)
1677     85, // input 43 (0x2B) => 'U' (0x55)
1678     86, // input 44 (0x2C) => 'V' (0x56)
1679     88, // input 45 (0x2D) => 'X' (0x58)
1680     89, // input 46 (0x2E) => 'Y' (0x59)
1681     90, // input 47 (0x2F) => 'Z' (0x5A)
1682     91, // input 48 (0x30) => '[' (0x5B)
1683     96, // input 49 (0x31) => '`' (0x60)
1684     97, // input 50 (0x32) => 'a' (0x61)
1685     98, // input 51 (0x33) => 'b' (0x62)
1686     99, // input 52 (0x34) => 'c' (0x63)
1687     100, // input 53 (0x35) => 'd' (0x64)
1688     101, // input 54 (0x36) => 'e' (0x65)
1689     104, // input 55 (0x37) => 'h' (0x68)
1690     105, // input 56 (0x38) => 'i' (0x69)
1691     106, // input 57 (0x39) => 'j' (0x6A)
1692     107, // input 58 (0x3A) => 'k' (0x6B)
1693     108, // input 59 (0x3B) => 'l' (0x6C)
1694     109, // input 60 (0x3C) => 'm' (0x6D)
1695     112, // input 61 (0x3D) => 'p' (0x70)
1696     113, // input 62 (0x3E) => 'q' (0x71)
1697     114, // input 63 (0x3F) => 'r' (0x72)
1698 ];
1699 #[rustfmt::skip]
1700 pub const BINHEX_DECODE: &[u8; 256] = &[
1701     INVALID_VALUE, // input 0 (0x0)
1702     INVALID_VALUE, // input 1 (0x1)
1703     INVALID_VALUE, // input 2 (0x2)
1704     INVALID_VALUE, // input 3 (0x3)
1705     INVALID_VALUE, // input 4 (0x4)
1706     INVALID_VALUE, // input 5 (0x5)
1707     INVALID_VALUE, // input 6 (0x6)
1708     INVALID_VALUE, // input 7 (0x7)
1709     INVALID_VALUE, // input 8 (0x8)
1710     INVALID_VALUE, // input 9 (0x9)
1711     INVALID_VALUE, // input 10 (0xA)
1712     INVALID_VALUE, // input 11 (0xB)
1713     INVALID_VALUE, // input 12 (0xC)
1714     INVALID_VALUE, // input 13 (0xD)
1715     INVALID_VALUE, // input 14 (0xE)
1716     INVALID_VALUE, // input 15 (0xF)
1717     INVALID_VALUE, // input 16 (0x10)
1718     INVALID_VALUE, // input 17 (0x11)
1719     INVALID_VALUE, // input 18 (0x12)
1720     INVALID_VALUE, // input 19 (0x13)
1721     INVALID_VALUE, // input 20 (0x14)
1722     INVALID_VALUE, // input 21 (0x15)
1723     INVALID_VALUE, // input 22 (0x16)
1724     INVALID_VALUE, // input 23 (0x17)
1725     INVALID_VALUE, // input 24 (0x18)
1726     INVALID_VALUE, // input 25 (0x19)
1727     INVALID_VALUE, // input 26 (0x1A)
1728     INVALID_VALUE, // input 27 (0x1B)
1729     INVALID_VALUE, // input 28 (0x1C)
1730     INVALID_VALUE, // input 29 (0x1D)
1731     INVALID_VALUE, // input 30 (0x1E)
1732     INVALID_VALUE, // input 31 (0x1F)
1733     INVALID_VALUE, // input 32 (0x20)
1734     0, // input 33 (0x21 char '!') => 0 (0x0)
1735     1, // input 34 (0x22 char '"') => 1 (0x1)
1736     2, // input 35 (0x23 char '#') => 2 (0x2)
1737     3, // input 36 (0x24 char '$') => 3 (0x3)
1738     4, // input 37 (0x25 char '%') => 4 (0x4)
1739     5, // input 38 (0x26 char '&') => 5 (0x5)
1740     6, // input 39 (0x27 char ''') => 6 (0x6)
1741     7, // input 40 (0x28 char '(') => 7 (0x7)
1742     8, // input 41 (0x29 char ')') => 8 (0x8)
1743     9, // input 42 (0x2A char '*') => 9 (0x9)
1744     10, // input 43 (0x2B char '+') => 10 (0xA)
1745     11, // input 44 (0x2C char ',') => 11 (0xB)
1746     12, // input 45 (0x2D char '-') => 12 (0xC)
1747     INVALID_VALUE, // input 46 (0x2E)
1748     INVALID_VALUE, // input 47 (0x2F)
1749     13, // input 48 (0x30 char '0') => 13 (0xD)
1750     14, // input 49 (0x31 char '1') => 14 (0xE)
1751     15, // input 50 (0x32 char '2') => 15 (0xF)
1752     16, // input 51 (0x33 char '3') => 16 (0x10)
1753     17, // input 52 (0x34 char '4') => 17 (0x11)
1754     18, // input 53 (0x35 char '5') => 18 (0x12)
1755     19, // input 54 (0x36 char '6') => 19 (0x13)
1756     20, // input 55 (0x37 char '7') => 20 (0x14)
1757     21, // input 56 (0x38 char '8') => 21 (0x15)
1758     22, // input 57 (0x39 char '9') => 22 (0x16)
1759     INVALID_VALUE, // input 58 (0x3A)
1760     INVALID_VALUE, // input 59 (0x3B)
1761     INVALID_VALUE, // input 60 (0x3C)
1762     INVALID_VALUE, // input 61 (0x3D)
1763     INVALID_VALUE, // input 62 (0x3E)
1764     INVALID_VALUE, // input 63 (0x3F)
1765     23, // input 64 (0x40 char '@') => 23 (0x17)
1766     24, // input 65 (0x41 char 'A') => 24 (0x18)
1767     25, // input 66 (0x42 char 'B') => 25 (0x19)
1768     26, // input 67 (0x43 char 'C') => 26 (0x1A)
1769     27, // input 68 (0x44 char 'D') => 27 (0x1B)
1770     28, // input 69 (0x45 char 'E') => 28 (0x1C)
1771     29, // input 70 (0x46 char 'F') => 29 (0x1D)
1772     30, // input 71 (0x47 char 'G') => 30 (0x1E)
1773     31, // input 72 (0x48 char 'H') => 31 (0x1F)
1774     32, // input 73 (0x49 char 'I') => 32 (0x20)
1775     33, // input 74 (0x4A char 'J') => 33 (0x21)
1776     34, // input 75 (0x4B char 'K') => 34 (0x22)
1777     35, // input 76 (0x4C char 'L') => 35 (0x23)
1778     36, // input 77 (0x4D char 'M') => 36 (0x24)
1779     37, // input 78 (0x4E char 'N') => 37 (0x25)
1780     INVALID_VALUE, // input 79 (0x4F)
1781     38, // input 80 (0x50 char 'P') => 38 (0x26)
1782     39, // input 81 (0x51 char 'Q') => 39 (0x27)
1783     40, // input 82 (0x52 char 'R') => 40 (0x28)
1784     41, // input 83 (0x53 char 'S') => 41 (0x29)
1785     42, // input 84 (0x54 char 'T') => 42 (0x2A)
1786     43, // input 85 (0x55 char 'U') => 43 (0x2B)
1787     44, // input 86 (0x56 char 'V') => 44 (0x2C)
1788     INVALID_VALUE, // input 87 (0x57)
1789     45, // input 88 (0x58 char 'X') => 45 (0x2D)
1790     46, // input 89 (0x59 char 'Y') => 46 (0x2E)
1791     47, // input 90 (0x5A char 'Z') => 47 (0x2F)
1792     48, // input 91 (0x5B char '[') => 48 (0x30)
1793     INVALID_VALUE, // input 92 (0x5C)
1794     INVALID_VALUE, // input 93 (0x5D)
1795     INVALID_VALUE, // input 94 (0x5E)
1796     INVALID_VALUE, // input 95 (0x5F)
1797     49, // input 96 (0x60 char '`') => 49 (0x31)
1798     50, // input 97 (0x61 char 'a') => 50 (0x32)
1799     51, // input 98 (0x62 char 'b') => 51 (0x33)
1800     52, // input 99 (0x63 char 'c') => 52 (0x34)
1801     53, // input 100 (0x64 char 'd') => 53 (0x35)
1802     54, // input 101 (0x65 char 'e') => 54 (0x36)
1803     INVALID_VALUE, // input 102 (0x66)
1804     INVALID_VALUE, // input 103 (0x67)
1805     55, // input 104 (0x68 char 'h') => 55 (0x37)
1806     56, // input 105 (0x69 char 'i') => 56 (0x38)
1807     57, // input 106 (0x6A char 'j') => 57 (0x39)
1808     58, // input 107 (0x6B char 'k') => 58 (0x3A)
1809     59, // input 108 (0x6C char 'l') => 59 (0x3B)
1810     60, // input 109 (0x6D char 'm') => 60 (0x3C)
1811     INVALID_VALUE, // input 110 (0x6E)
1812     INVALID_VALUE, // input 111 (0x6F)
1813     61, // input 112 (0x70 char 'p') => 61 (0x3D)
1814     62, // input 113 (0x71 char 'q') => 62 (0x3E)
1815     63, // input 114 (0x72 char 'r') => 63 (0x3F)
1816     INVALID_VALUE, // input 115 (0x73)
1817     INVALID_VALUE, // input 116 (0x74)
1818     INVALID_VALUE, // input 117 (0x75)
1819     INVALID_VALUE, // input 118 (0x76)
1820     INVALID_VALUE, // input 119 (0x77)
1821     INVALID_VALUE, // input 120 (0x78)
1822     INVALID_VALUE, // input 121 (0x79)
1823     INVALID_VALUE, // input 122 (0x7A)
1824     INVALID_VALUE, // input 123 (0x7B)
1825     INVALID_VALUE, // input 124 (0x7C)
1826     INVALID_VALUE, // input 125 (0x7D)
1827     INVALID_VALUE, // input 126 (0x7E)
1828     INVALID_VALUE, // input 127 (0x7F)
1829     INVALID_VALUE, // input 128 (0x80)
1830     INVALID_VALUE, // input 129 (0x81)
1831     INVALID_VALUE, // input 130 (0x82)
1832     INVALID_VALUE, // input 131 (0x83)
1833     INVALID_VALUE, // input 132 (0x84)
1834     INVALID_VALUE, // input 133 (0x85)
1835     INVALID_VALUE, // input 134 (0x86)
1836     INVALID_VALUE, // input 135 (0x87)
1837     INVALID_VALUE, // input 136 (0x88)
1838     INVALID_VALUE, // input 137 (0x89)
1839     INVALID_VALUE, // input 138 (0x8A)
1840     INVALID_VALUE, // input 139 (0x8B)
1841     INVALID_VALUE, // input 140 (0x8C)
1842     INVALID_VALUE, // input 141 (0x8D)
1843     INVALID_VALUE, // input 142 (0x8E)
1844     INVALID_VALUE, // input 143 (0x8F)
1845     INVALID_VALUE, // input 144 (0x90)
1846     INVALID_VALUE, // input 145 (0x91)
1847     INVALID_VALUE, // input 146 (0x92)
1848     INVALID_VALUE, // input 147 (0x93)
1849     INVALID_VALUE, // input 148 (0x94)
1850     INVALID_VALUE, // input 149 (0x95)
1851     INVALID_VALUE, // input 150 (0x96)
1852     INVALID_VALUE, // input 151 (0x97)
1853     INVALID_VALUE, // input 152 (0x98)
1854     INVALID_VALUE, // input 153 (0x99)
1855     INVALID_VALUE, // input 154 (0x9A)
1856     INVALID_VALUE, // input 155 (0x9B)
1857     INVALID_VALUE, // input 156 (0x9C)
1858     INVALID_VALUE, // input 157 (0x9D)
1859     INVALID_VALUE, // input 158 (0x9E)
1860     INVALID_VALUE, // input 159 (0x9F)
1861     INVALID_VALUE, // input 160 (0xA0)
1862     INVALID_VALUE, // input 161 (0xA1)
1863     INVALID_VALUE, // input 162 (0xA2)
1864     INVALID_VALUE, // input 163 (0xA3)
1865     INVALID_VALUE, // input 164 (0xA4)
1866     INVALID_VALUE, // input 165 (0xA5)
1867     INVALID_VALUE, // input 166 (0xA6)
1868     INVALID_VALUE, // input 167 (0xA7)
1869     INVALID_VALUE, // input 168 (0xA8)
1870     INVALID_VALUE, // input 169 (0xA9)
1871     INVALID_VALUE, // input 170 (0xAA)
1872     INVALID_VALUE, // input 171 (0xAB)
1873     INVALID_VALUE, // input 172 (0xAC)
1874     INVALID_VALUE, // input 173 (0xAD)
1875     INVALID_VALUE, // input 174 (0xAE)
1876     INVALID_VALUE, // input 175 (0xAF)
1877     INVALID_VALUE, // input 176 (0xB0)
1878     INVALID_VALUE, // input 177 (0xB1)
1879     INVALID_VALUE, // input 178 (0xB2)
1880     INVALID_VALUE, // input 179 (0xB3)
1881     INVALID_VALUE, // input 180 (0xB4)
1882     INVALID_VALUE, // input 181 (0xB5)
1883     INVALID_VALUE, // input 182 (0xB6)
1884     INVALID_VALUE, // input 183 (0xB7)
1885     INVALID_VALUE, // input 184 (0xB8)
1886     INVALID_VALUE, // input 185 (0xB9)
1887     INVALID_VALUE, // input 186 (0xBA)
1888     INVALID_VALUE, // input 187 (0xBB)
1889     INVALID_VALUE, // input 188 (0xBC)
1890     INVALID_VALUE, // input 189 (0xBD)
1891     INVALID_VALUE, // input 190 (0xBE)
1892     INVALID_VALUE, // input 191 (0xBF)
1893     INVALID_VALUE, // input 192 (0xC0)
1894     INVALID_VALUE, // input 193 (0xC1)
1895     INVALID_VALUE, // input 194 (0xC2)
1896     INVALID_VALUE, // input 195 (0xC3)
1897     INVALID_VALUE, // input 196 (0xC4)
1898     INVALID_VALUE, // input 197 (0xC5)
1899     INVALID_VALUE, // input 198 (0xC6)
1900     INVALID_VALUE, // input 199 (0xC7)
1901     INVALID_VALUE, // input 200 (0xC8)
1902     INVALID_VALUE, // input 201 (0xC9)
1903     INVALID_VALUE, // input 202 (0xCA)
1904     INVALID_VALUE, // input 203 (0xCB)
1905     INVALID_VALUE, // input 204 (0xCC)
1906     INVALID_VALUE, // input 205 (0xCD)
1907     INVALID_VALUE, // input 206 (0xCE)
1908     INVALID_VALUE, // input 207 (0xCF)
1909     INVALID_VALUE, // input 208 (0xD0)
1910     INVALID_VALUE, // input 209 (0xD1)
1911     INVALID_VALUE, // input 210 (0xD2)
1912     INVALID_VALUE, // input 211 (0xD3)
1913     INVALID_VALUE, // input 212 (0xD4)
1914     INVALID_VALUE, // input 213 (0xD5)
1915     INVALID_VALUE, // input 214 (0xD6)
1916     INVALID_VALUE, // input 215 (0xD7)
1917     INVALID_VALUE, // input 216 (0xD8)
1918     INVALID_VALUE, // input 217 (0xD9)
1919     INVALID_VALUE, // input 218 (0xDA)
1920     INVALID_VALUE, // input 219 (0xDB)
1921     INVALID_VALUE, // input 220 (0xDC)
1922     INVALID_VALUE, // input 221 (0xDD)
1923     INVALID_VALUE, // input 222 (0xDE)
1924     INVALID_VALUE, // input 223 (0xDF)
1925     INVALID_VALUE, // input 224 (0xE0)
1926     INVALID_VALUE, // input 225 (0xE1)
1927     INVALID_VALUE, // input 226 (0xE2)
1928     INVALID_VALUE, // input 227 (0xE3)
1929     INVALID_VALUE, // input 228 (0xE4)
1930     INVALID_VALUE, // input 229 (0xE5)
1931     INVALID_VALUE, // input 230 (0xE6)
1932     INVALID_VALUE, // input 231 (0xE7)
1933     INVALID_VALUE, // input 232 (0xE8)
1934     INVALID_VALUE, // input 233 (0xE9)
1935     INVALID_VALUE, // input 234 (0xEA)
1936     INVALID_VALUE, // input 235 (0xEB)
1937     INVALID_VALUE, // input 236 (0xEC)
1938     INVALID_VALUE, // input 237 (0xED)
1939     INVALID_VALUE, // input 238 (0xEE)
1940     INVALID_VALUE, // input 239 (0xEF)
1941     INVALID_VALUE, // input 240 (0xF0)
1942     INVALID_VALUE, // input 241 (0xF1)
1943     INVALID_VALUE, // input 242 (0xF2)
1944     INVALID_VALUE, // input 243 (0xF3)
1945     INVALID_VALUE, // input 244 (0xF4)
1946     INVALID_VALUE, // input 245 (0xF5)
1947     INVALID_VALUE, // input 246 (0xF6)
1948     INVALID_VALUE, // input 247 (0xF7)
1949     INVALID_VALUE, // input 248 (0xF8)
1950     INVALID_VALUE, // input 249 (0xF9)
1951     INVALID_VALUE, // input 250 (0xFA)
1952     INVALID_VALUE, // input 251 (0xFB)
1953     INVALID_VALUE, // input 252 (0xFC)
1954     INVALID_VALUE, // input 253 (0xFD)
1955     INVALID_VALUE, // input 254 (0xFE)
1956     INVALID_VALUE, // input 255 (0xFF)
1957 ];
1958