1 /*
2  * Do not edit this file!
3  * This file is generated from:
4  *    idna-tables.xml (version rfc6452 (2011-11-14))
5  */
6 
7 #include <stddef.h>
8 #include <idn/utf32.h>
9 #include <idn/auto/idnacategory.h>
10 
11 /*
12  * IDNA code point tables.
13  */
14 #define IDNACATEGORY_BITS_0	9
15 #define IDNACATEGORY_BITS_1	7
16 #define IDNACATEGORY_BITS_2	5
17 
18 static const unsigned short idnacategory_imap[] = {
19 	  272,   400,   528,   656,   784,   912,   912,   912,
20 	  912,  1040,  1168,   912,   912,  1296,  1424,  1552,
21 	 1680,  1808,  1936,  2064,  2192,  2192,  2320,  2192,
22 	 2192,  2192,  2192,  2448,  2192,  2576,  2704,  2832,
23 	  912,   912,   912,   912,   912,   912,   912,   912,
24 	  912,   912,  2960,  3088,  2192,  2192,  2192,  3216,
25 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  2192,
26 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  3344,
27 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  2192,
28 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  3344,
29 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  2192,
30 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  3344,
31 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  2192,
32 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  3344,
33 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  2192,
34 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  3344,
35 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  2192,
36 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  3344,
37 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  2192,
38 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  3344,
39 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  2192,
40 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  3344,
41 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  2192,
42 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  3344,
43 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  2192,
44 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  3344,
45 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  2192,
46 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  3344,
47 	 3472,  2192,  2192,  2192,  2192,  2192,  2192,  2192,
48 	 2192,  2192,  2192,  2192,  2192,  2192,  2192,  3344,
49 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
50 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
51 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
52 	 1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
53 	    0,     1,     0,     2,     0,     3,     4,     5,
54 	    6,     7,     8,     9,    10,    11,    12,    13,
55 	    6,    14,    15,    16,    16,    17,    18,    19,
56 	   16,    16,    20,    21,    22,    23,    24,    25,
57 	    0,    26,    16,     6,    27,     6,    28,     6,
58 	    6,    29,    30,    31,    32,    33,    34,    35,
59 	   36,    16,    37,    38,    16,    16,    39,    40,
60 	   41,    16,    42,    16,    16,    43,    16,    44,
61 	   16,    45,    46,    47,    47,    48,    47,    49,
62 	   16,    16,    50,    51,    52,    53,    54,    55,
63 	   56,    57,    58,    59,    60,    61,    62,    63,
64 	   52,    61,    64,    65,    66,    67,    68,    69,
65 	   70,    71,    72,    73,    74,    75,    76,    77,
66 	   74,    78,    79,    80,    81,    82,    83,    84,
67 	   31,    85,    86,    47,    87,    88,    89,    47,
68 	   90,    91,    92,    93,    94,    95,    96,    47,
69 	   16,    16,    97,    16,    98,     0,    99,   100,
70 	    0,     0,     0,     0,     0,     0,     0,     0,
71 	   16,    16,   101,    16,   102,   103,   104,    16,
72 	  105,    16,    78,   106,   107,    16,    16,   108,
73 	   37,    16,    16,    16,    16,    16,    16,    16,
74 	   16,    16,    16,    16,    16,    16,    16,    16,
75 	   16,    16,    16,   109,   110,    16,    16,   111,
76 	  112,   113,   114,   115,    16,   116,   117,   118,
77 	  119,    16,    16,   120,    16,   121,    16,   122,
78 	  123,   124,   125,   126,    16,   127,   128,     0,
79 	  129,    16,   130,   131,   132,   133,    47,    47,
80 	   16,    16,   134,   135,    16,    16,    16,   136,
81 	   16,   137,   138,    98,    47,    47,   139,   140,
82 	   16,   141,   142,   143,   144,     0,    16,   145,
83 	    6,     6,     6,     6,   146,     6,     6,     6,
84 	  147,   148,   149,   150,     0,   151,   152,   153,
85 	  154,     0,     0,   155,   156,   157,   158,   159,
86 	    0,     0,   142,     0,   160,     0,     0,     0,
87 	    0,     0,     0,     0,     0,     0,     0,     0,
88 	    0,     0,     0,     0,     0,     0,     0,   161,
89 	    0,   162,   163,     0,     0,     0,     0,     0,
90 	    0,     0,     0,     0,     0,     0,     0,     0,
91 	    0,     0,     0,     0,     0,     0,     0,     0,
92 	  164,     0,     0,     0,     0,     0,     0,     0,
93 	    0,     0,     0,     0,     0,     0,     0,     0,
94 	    0,     0,     0,     0,     0,     0,     0,     0,
95 	    0,     0,     0,     0,     0,     0,     0,     0,
96 	    0,     0,   165,    47,    47,    47,    47,    47,
97 	    0,   166,   130,   167,     6,     6,     6,   168,
98 	   16,   169,    16,   170,   140,   171,   171,    16,
99 	    0,   172,    47,    47,   173,     0,     0,   161,
100 	    0,     0,     0,     0,     0,     0,   174,   175,
101 	  176,   177,    31,    16,   178,    37,    16,   179,
102 	  180,   181,     0,     0,   182,   183,     0,   184,
103 	  185,     0,     0,     0,     0,     0,     0,   185,
104 	    0,     0,     0,     0,     0,     0,     0,     0,
105 	   16,    16,    16,    16,    16,    16,    16,    16,
106 	   16,    16,    16,    16,    16,    16,    16,    16,
107 	   16,    16,    16,    16,    16,    16,    16,    16,
108 	   16,    16,    16,    16,    16,    16,    16,    16,
109 	   16,    16,    16,    16,    16,    16,    16,    16,
110 	   16,    16,    16,    16,    16,    16,    16,    16,
111 	   16,    16,    16,    16,    16,    16,    16,    16,
112 	   16,    16,    16,    16,    16,    16,    16,    16,
113 	   16,    16,    16,    16,    16,    16,    16,    16,
114 	   16,    16,    16,    16,    16,    16,    16,    16,
115 	   16,    16,    16,    16,    16,    16,    16,    16,
116 	   16,    16,    16,    16,    16,    16,    16,    16,
117 	   16,    16,    16,    16,    16,    16,    16,    16,
118 	   16,    16,    16,    16,    16,    16,    16,    16,
119 	   16,    16,    16,    16,    16,    16,    16,    16,
120 	   16,    16,    16,    16,    16,    16,    16,    16,
121 	   16,    16,    16,    16,    16,    16,    16,    16,
122 	   16,    16,    16,    16,    16,    16,    16,    16,
123 	   16,    16,    16,    16,    16,    16,    16,    16,
124 	   16,    16,    16,    16,    16,    16,    16,    16,
125 	   16,    16,    16,    16,    16,    16,    16,    16,
126 	   16,    16,    16,    16,    16,    16,    16,    16,
127 	   16,    16,    16,    16,    16,    16,    16,    16,
128 	   16,    16,    16,    16,    16,    16,    16,    16,
129 	   16,    16,    16,    16,    16,    16,    16,    16,
130 	   16,    16,    16,    16,    16,   122,     0,     0,
131 	   16,    16,    16,    16,    16,    16,    16,    16,
132 	   16,    16,    16,    16,    16,    16,    16,    16,
133 	   16,    16,    16,    16,    16,    16,    16,    16,
134 	   16,    16,    16,    16,    16,    16,    16,    16,
135 	   16,    16,    16,    16,    16,    16,    16,    16,
136 	   16,    16,    16,    16,    16,    16,    16,    16,
137 	   16,    16,    16,    16,    16,    16,    16,    16,
138 	   16,    16,    16,    16,    16,    16,    16,    16,
139 	   16,    16,    16,    16,    16,    16,    16,    16,
140 	   16,    16,    16,    16,    16,    16,    16,    16,
141 	   16,    16,    16,    16,    16,    16,    16,    16,
142 	   16,    16,    16,    16,    16,    16,    16,    16,
143 	   16,    16,    16,    16,    16,    16,    16,    16,
144 	   16,    16,    16,    16,    16,    16,    16,    16,
145 	   16,    16,    16,    16,    16,    16,    16,    16,
146 	   16,    16,    16,    16,    16,    16,    16,    16,
147 	   16,    16,    16,    16,    16,    16,    16,    16,
148 	   16,    16,    16,    16,    16,    16,    16,    16,
149 	   16,    16,    16,    16,    16,    16,    16,    16,
150 	   16,    16,    16,    16,    16,    16,    16,    16,
151 	   16,    16,    16,    16,    16,    16,    16,    16,
152 	   16,    16,    16,    16,    16,    16,    16,    16,
153 	   16,    16,    16,    16,    16,    16,    16,    16,
154 	   16,    16,    16,    16,    16,    16,    16,    16,
155 	   16,    16,    16,    16,    16,    16,    16,    16,
156 	   16,    16,    16,    16,    16,    16,    16,    16,
157 	   16,    16,    16,    16,    16,    16,    16,    16,
158 	   16,    16,    16,    16,    16,    16,    16,    16,
159 	   16,    16,    16,    16,    16,    16,    16,    16,
160 	   16,    16,    16,    16,    16,    16,    16,    16,
161 	   16,    16,    16,    16,    16,    16,    16,    16,
162 	   16,    16,    16,    16,    16,    16,    16,    16,
163 	   16,    16,    16,    16,    16,    16,    16,    16,
164 	   16,    16,    16,    16,    16,    16,   186,    47,
165 	   16,    16,    16,    16,    16,    16,    16,    16,
166 	   16,    16,    16,    16,    16,    16,    16,    16,
167 	   16,    16,    16,    16,    16,    16,    16,    16,
168 	   16,    16,    16,    16,    16,    16,    16,    16,
169 	   16,    16,    16,    16,   187,     0,   188,    98,
170 	   16,    16,    16,    16,    16,    16,    16,    16,
171 	  189,   190,     6,   191,   192,    16,    16,   193,
172 	  194,   195,     6,   196,   197,   198,    47,   199,
173 	   16,   200,    16,   201,    16,    16,   202,   203,
174 	   16,   204,   205,   106,    16,    16,   206,    47,
175 	   16,   140,   207,   208,    16,    16,   209,   210,
176 	  211,   212,    47,    47,    47,    47,    16,   213,
177 	   16,    16,    16,    16,    16,    16,    16,    16,
178 	   16,    16,    16,    16,    16,    16,    16,    16,
179 	   16,    16,    16,    16,    16,    16,    16,    16,
180 	   16,    16,    16,    16,    16,    16,    16,    16,
181 	   16,    16,    16,    16,    16,    16,    16,    16,
182 	   16,    16,    16,    16,    16,    16,    16,    16,
183 	   16,    16,    16,    16,    16,    16,    16,    16,
184 	   16,    16,    16,    16,    16,    16,    16,    16,
185 	   16,    16,    16,    16,    16,    16,    16,    16,
186 	   16,    16,    16,    16,    16,    16,    16,    16,
187 	   16,    16,    16,    16,    16,    16,    16,    16,
188 	   16,    16,    16,    16,    16,   214,   215,   216,
189 	    0,     0,     0,     0,     0,     0,     0,     0,
190 	    0,     0,     0,     0,     0,     0,     0,     0,
191 	    0,     0,     0,     0,     0,     0,     0,     0,
192 	    0,     0,     0,     0,     0,     0,     0,     0,
193 	    0,     0,     0,     0,     0,     0,     0,     0,
194 	    0,     0,     0,     0,     0,     0,     0,     0,
195 	    0,     0,     0,     0,     0,     0,     0,     0,
196 	    0,     0,     0,     0,     0,     0,     0,     0,
197 	    0,     0,     0,     0,     0,     0,     0,     0,
198 	    0,     0,     0,     0,     0,     0,     0,     0,
199 	    0,     0,     0,     0,     0,     0,     0,     0,
200 	    0,     0,     0,     0,     0,     0,     0,     0,
201 	    0,     0,     0,     0,     0,     0,     0,     0,
202 	    0,     0,     0,     0,     0,     0,     0,     0,
203 	    0,     0,     0,     0,     0,     0,     0,     0,
204 	    0,     0,     0,     0,     0,     0,     0,     0,
205 	    0,     0,     0,     0,     0,     0,     0,     0,
206 	    0,     0,     0,     0,     0,     0,     0,     0,
207 	    0,     0,     0,     0,     0,     0,     0,     0,
208 	    0,     0,     0,     0,     0,     0,     0,     0,
209 	    0,     0,     0,     0,     0,     0,     0,     0,
210 	    0,     0,     0,     0,     0,     0,     0,     0,
211 	    0,     0,     0,     0,     0,     0,     0,     0,
212 	    0,     0,     0,     0,     0,     0,     0,     0,
213 	    0,     0,     0,     0,     0,     0,     0,     0,
214 	    0,     0,     0,     0,     0,     0,     0,     0,
215 	    0,     0,     0,     0,     0,     0,     0,     0,
216 	    0,     0,     0,     0,     0,     0,     0,     0,
217 	    0,     0,     0,     0,     0,     0,     0,     0,
218 	    0,     0,     0,     0,     0,     0,     0,     0,
219 	    0,     0,     0,     0,     0,     0,     0,     0,
220 	    0,     0,     0,     0,     0,     0,     0,     0,
221 	    0,     0,     0,     0,     0,     0,     0,     0,
222 	    0,     0,     0,     0,     0,     0,     0,     0,
223 	  217,   218,     0,   219,     0,     0,   220,    47,
224 	  221,   222,   223,     0,     0,     0,   224,     0,
225 	    0,     0,     0,     0,     0,     0,     0,     0,
226 	    0,     0,   158,     0,   225,     0,   226,   227,
227 	  220,   228,   229,   230,     0,     0,     0,   231,
228 	  164,     0,     0,     0,     0,   185,   232,   233,
229 	  234,   235,   236,    47,    16,    16,    16,   183,
230 	  237,   238,     0,     0,   239,    47,   158,   240,
231 	   47,    47,    47,    47,   123,    16,   241,    47,
232 	  130,   184,   242,    47,   243,    16,   244,    47,
233 	    0,   245,    16,    16,   246,   247,    47,    47,
234 	   47,    47,    47,    47,    47,    47,    47,    47,
235 	   47,    47,    47,    47,    47,    47,    47,    47,
236 	   47,    47,    47,    47,    47,    47,    47,    47,
237 	  248,   249,   250,    47,    47,    47,    47,    47,
238 	  251,   252,    47,    47,    16,   253,    47,    47,
239 	  254,   255,   256,   257,    47,    47,    47,    47,
240 	   16,   258,   259,   260,    47,    47,    47,    47,
241 	   16,    16,   261,    47,    47,    47,    47,    47,
242 	   47,    47,    47,    47,    47,    47,    47,    47,
243 	   47,    47,    47,   185,    47,    47,    47,    47,
244 	   47,    47,    47,    47,    47,    47,    47,    47,
245 	   16,    16,   262,   263,    16,   144,   264,   265,
246 	   16,   266,   267,    47,    16,    16,   268,    47,
247 	   47,    47,    47,    47,    47,    47,    47,    47,
248 	   47,    47,    47,    47,    47,    47,    47,    47,
249 	   47,    47,    47,    47,    47,    47,    47,    47,
250 	   47,    47,    47,    47,    47,    47,    47,    47,
251 	   47,    47,    47,    47,    16,   120,   247,    47,
252 	   47,    47,    47,    47,    47,    47,    47,    47,
253 	   47,    47,    47,    47,    47,    47,    47,    47,
254 	   47,    47,    47,    47,    47,    47,    47,    47,
255 	   47,    47,    47,    47,    47,    47,    47,    47,
256 	   47,    47,    47,    47,    47,    47,    47,    47,
257 	   47,    47,    47,    47,    47,    47,    47,    47,
258 	   47,    47,    47,    47,    47,    47,    47,    47,
259 	   47,    47,    47,    47,    47,    47,    47,    47,
260 	   47,    47,    47,    47,    47,    47,    47,    47,
261 	   16,    16,    16,    16,    16,    16,    16,    16,
262 	   16,    16,    16,    16,    16,    16,    16,    16,
263 	   16,    16,    16,    16,    16,    16,    16,    16,
264 	   16,    16,    16,   269,    47,    47,    47,    47,
265 	    0,     0,     0,   270,    47,    47,    47,    47,
266 	   47,    47,    47,    47,    47,    47,    47,    47,
267 	   47,    47,    47,    47,    47,    47,    47,    47,
268 	   47,    47,    47,    47,    47,    47,    47,    47,
269 	   47,    47,    47,    47,    47,    47,    47,    47,
270 	   47,    47,    47,    47,    47,    47,    47,    47,
271 	   47,    47,    47,    47,    47,    47,    47,    47,
272 	   47,    47,    47,    47,    47,    47,    47,    47,
273 	   47,    47,    47,    47,    47,    47,    47,    47,
274 	   47,    47,    47,    47,    47,    47,    47,    47,
275 	   47,    47,    47,    47,    47,    47,    47,    47,
276 	   47,    47,    47,    47,    47,    47,    47,    47,
277 	   16,    16,    16,    16,    16,    16,    16,    16,
278 	   16,    16,    16,    16,    16,    16,    16,    16,
279 	   16,    16,    16,    16,    16,    16,    16,    16,
280 	   16,    16,    16,    16,    16,    16,    16,    16,
281 	   16,   269,    47,    47,    47,    47,    47,    47,
282 	   47,    47,    47,    47,    47,    47,    47,    47,
283 	   47,    47,    47,    47,    47,    47,    47,    47,
284 	   47,    47,    47,    47,    47,    47,    47,    47,
285 	   47,    47,    47,    47,    47,    47,    47,    47,
286 	   47,    47,    47,    47,    47,    47,    47,    47,
287 	   47,    47,    47,    47,    47,    47,    47,    47,
288 	   47,    47,    47,    47,    47,    47,    47,    47,
289 	   47,    47,    47,    47,    47,    47,    47,    47,
290 	   47,    47,    47,    47,    47,    47,    47,    47,
291 	   47,    47,    47,    47,    47,    47,    47,    47,
292 	   47,    47,    47,    47,    47,    47,    47,    47,
293 	   47,    47,    47,    47,    47,    47,    47,    47,
294 	   47,    47,    47,    47,    47,    47,    47,    47,
295 	   47,    47,    47,    47,    47,    47,    47,    47,
296 	   47,    47,    47,    47,    47,    47,    47,    47,
297 	   47,    47,    47,    47,    47,    47,    47,    47,
298 	   47,    47,    47,    47,    47,    47,    47,    47,
299 	   47,    47,    47,    47,    47,    47,    47,    47,
300 	   47,    47,    47,    47,    47,    47,    47,    47,
301 	   47,    47,    47,    47,    47,    47,    47,    47,
302 	   47,    47,    47,    47,    47,    47,    47,    47,
303 	   47,    47,    47,    47,    47,    47,    47,    47,
304 	   47,    47,    47,    47,    47,    47,    47,    47,
305 	   47,    47,    47,    47,    47,    47,    47,    47,
306 	   47,    47,    47,    47,    47,    47,    47,    47,
307 	   47,    47,    47,    47,    47,    47,    47,    47,
308 	   47,    47,    47,    47,    47,    47,    47,    47,
309 	   47,    47,    47,    47,    47,    47,    47,    47,
310 	   47,    47,    47,    47,    47,    47,    47,    47,
311 	   47,    47,    47,    47,    47,    47,    47,    47,
312 	   47,    47,    47,    47,    47,    47,    47,    47,
313 	   47,    47,    47,    47,    47,    47,    47,    47,
314 	   47,    47,    47,    47,    47,    47,    47,    47,
315 	   47,    47,    47,    47,    47,    47,    47,    47,
316 	   47,    47,    47,    47,    47,    47,    47,    47,
317 	   16,    16,    16,    16,    16,    16,    16,    16,
318 	   16,    16,    16,    16,    16,    16,    16,    16,
319 	   16,   271,    47,    47,    47,    47,    47,    47,
320 	   47,    47,    47,    47,    47,    47,    47,    47,
321 	   47,    47,    47,    47,    47,    47,    47,    47,
322 	   47,    47,    47,    47,    47,    47,    47,    47,
323 	   47,    47,    47,    47,    47,    47,    47,    47,
324 	   16,    16,   272,   130,   273,    47,    47,    47,
325 	  274,    47,    47,    47,    47,    47,    47,    47,
326 	   47,    47,    47,    47,    47,    47,    47,    47,
327 	   47,    47,    47,    47,    47,    47,    47,    47,
328 	   47,    47,    47,    47,    47,    47,    47,    47,
329 	   47,    47,    47,    47,    47,    47,    47,    47,
330 	   47,    47,    47,    47,    47,    47,    47,    47,
331 	   47,    47,    47,    47,    47,    47,    47,    47,
332 	   47,    47,    47,    47,    47,    47,    47,    47,
333 	   47,    47,    47,    47,    47,    47,    47,    47,
334 	   47,    47,    47,    47,    47,    47,    47,    47,
335 	   47,    47,    47,    47,    47,    47,    47,    47,
336 	   47,    47,    47,    47,    47,    47,    47,    47,
337 	   47,    47,    47,    47,    47,    47,    47,    47,
338 	   47,    47,    47,    47,    47,    47,    47,    47,
339 	   47,    47,    47,    47,    47,    47,    47,    47,
340 	   47,    47,    47,    47,    47,    47,    47,    47,
341 	    0,     0,     0,     0,     0,     0,     0,   174,
342 	    0,   275,     0,     0,     0,     0,   227,    47,
343 	    0,     0,   276,    47,    47,    47,    47,    47,
344 	    0,     0,   277,   278,    47,    47,    47,    47,
345 	    0,     0,   279,     0,   280,   281,   282,     0,
346 	  283,   284,   285,     0,     0,     0,     0,     0,
347 	    0,     0,     0,     0,     0,   286,     0,     0,
348 	    0,     0,     0,     0,     0,     0,   287,     0,
349 	   47,    47,    47,    47,    47,    47,    47,    47,
350 	   47,    47,    47,    47,    47,    47,    47,    47,
351 	   47,    47,    47,    47,    47,    47,    47,    47,
352 	   47,    47,    47,    47,    47,    47,    47,    47,
353 	   47,    47,    47,    47,    47,    47,    47,    47,
354 	   47,    47,    47,    47,    47,    47,    47,    47,
355 	   47,    47,    47,    47,    47,    47,    47,    47,
356 	   47,    47,    47,    47,    47,    47,    47,    47,
357 	   47,    47,    47,    47,    47,    47,    47,    47,
358 	   47,    47,    47,    47,    47,    47,    47,    47,
359 	   47,    47,    47,    47,    47,    47,    47,    47,
360 	   47,    47,    47,    47,    47,    47,    47,    47,
361 	   47,    47,    47,    47,    47,    47,    47,    47,
362 	   47,    47,    47,    47,    47,    47,    47,    47,
363 	   47,    47,    47,    47,    47,    47,    47,    47,
364 	   47,    47,    47,    47,    47,    47,    47,    47,
365 	   47,    47,    47,    47,    47,    47,    47,    47,
366 	   47,    47,    47,    47,    47,    47,    47,    47,
367 	   47,    47,    47,    47,    47,    47,    47,    47,
368 	   47,    47,    47,    47,    47,    47,    47,    47,
369 	   47,    47,    47,    47,    47,    47,    47,    47,
370 	   47,    47,    47,    47,    47,    47,    47,    47,
371 	  282,   288,   289,   290,   291,   292,    47,   293,
372 	   47,    47,    47,    47,    47,    47,    47,    47,
373 	    0,   294,     0,     0,   161,   295,   296,    47,
374 	  297,   182,     0,   294,   157,    47,    47,   298,
375 	  299,   157,   300,    47,    47,    47,    47,    47,
376 	    0,   301,     0,   106,   161,     0,   302,   159,
377 	    0,   185,   303,     0,     0,     0,     0,   304,
378 	    0,   227,   305,   306,    47,    47,    47,   307,
379 	    0,     0,   308,    47,     0,     0,   276,    47,
380 	    0,     0,     0,   161,    47,    47,    47,    47,
381 	   47,    47,    47,    47,    47,    47,    47,    47,
382 	   47,    47,    47,    47,    47,    47,    47,    47,
383 	   47,    47,    47,    47,    47,    47,    47,    47,
384 	   47,    47,    47,    47,    47,    47,    47,    47,
385 	   47,    47,    47,    47,    47,    47,    47,    47,
386 	   47,    47,    47,    47,    47,    47,    47,    47,
387 	   47,    47,    47,    47,    47,    47,    47,    47,
388 	   47,    47,    47,    47,    47,    47,    47,   309,
389 	   16,    16,    16,    16,    16,    16,    16,    16,
390 	   16,    16,    16,    16,    16,    16,    16,    16,
391 	   16,    16,    16,    16,    16,    16,    16,    16,
392 	   16,    16,    16,    16,    16,    16,    16,    16,
393 	   16,    16,    16,    16,    16,    16,    16,    16,
394 	   16,    16,    16,    16,    16,    16,    16,    16,
395 	   16,    16,    16,    16,    16,    16,   140,    47,
396 	   16,    16,    16,    16,    16,    16,    16,    16,
397 	   16,    16,    16,    16,    16,    16,    16,    16,
398 	   16,    16,    16,    16,    16,    16,    16,    16,
399 	   16,    16,    16,    16,    16,    16,    16,    16,
400 	   16,    16,    16,    16,    16,    16,    16,    16,
401 	   16,    16,    16,    16,    16,    16,    16,    16,
402 	   16,    16,    16,    16,    16,    16,    16,    16,
403 	   16,    16,    16,    16,    16,    16,    16,    16,
404 	   16,    16,    16,    16,    16,    16,    16,    16,
405 	   16,    16,    16,    16,    16,    16,    16,    16,
406 	   16,    16,    16,    16,    16,    16,    16,    16,
407 	   16,    16,    16,    16,    16,    16,    16,    16,
408 	   16,    16,    16,    16,    16,    16,    16,    16,
409 	   16,    16,    16,    16,    16,    16,    16,    16,
410 	   16,    16,    16,    16,    16,    16,    16,    16,
411 	   16,    16,    16,    16,    16,    16,    16,    16,
412 	   16,   108,    16,    16,    16,    16,    16,    16,
413 	  246,    47,    47,    47,    47,    47,    47,    47,
414 	   47,    47,    47,    47,    47,    47,    47,    47,
415 	   47,    47,    47,    47,    47,    47,    47,    47,
416 	   47,    47,    47,    47,    47,    47,    47,    47,
417 	   47,    47,    47,    47,    47,    47,    47,    47,
418 	   47,    47,    47,    47,    47,    47,    47,    47,
419 	   47,    47,    47,    47,    47,    47,    47,    47,
420 	   47,    47,    47,    47,    47,    47,    47,    47,
421 	   47,    47,    47,    47,    47,    47,    47,    47,
422 	   47,    47,    47,    47,    47,    47,    47,    47,
423 	   47,    47,    47,    47,    47,    47,    47,    47,
424 	   47,    47,    47,    47,    47,    47,    47,    47,
425 	   47,    47,    47,    47,    47,    47,    47,    47,
426 	   47,    47,    47,    47,    47,    47,    47,    47,
427 	   47,    47,    47,    47,    47,    47,    47,    47,
428 	   47,    47,    47,    47,    47,    47,    47,    47,
429 	    0,     0,     0,     0,     0,     0,     0,     0,
430 	    0,     0,     0,     0,     0,     0,     0,     0,
431 	  227,    47,    47,    47,    47,    47,    47,    47,
432 	   47,    47,    47,    47,    47,    47,    47,    47,
433 	   47,    47,    47,    47,    47,    47,    47,    47,
434 	   47,    47,    47,    47,    47,    47,    47,    47,
435 	   47,    47,    47,    47,    47,    47,    47,    47,
436 	   47,    47,    47,    47,    47,    47,    47,   309,
437 	   47,    47,    47,    47,    47,    47,    47,    47,
438 	   47,    47,    47,    47,    47,    47,    47,    47,
439 	   47,    47,    47,    47,    47,    47,    47,    47,
440 	   47,    47,    47,    47,    47,    47,    47,    47,
441 	   47,    47,    47,    47,    47,    47,    47,    47,
442 	   47,    47,    47,    47,    47,    47,    47,    47,
443 	   47,    47,    47,    47,    47,    47,    47,    47,
444 	   47,    47,    47,    47,    47,    47,    47,    47,
445 	   47,    47,    47,    47,    47,    47,    47,    47,
446 	   47,    47,    47,    47,    47,    47,    47,    47,
447 	   47,    47,    47,    47,    47,    47,    47,    47,
448 	   47,    47,    47,    47,    47,    47,    47,    47,
449 	   47,    47,    47,    47,    47,    47,    47,    47,
450 	   47,    47,    47,    47,    47,    47,    47,    47,
451 	   47,    47,    47,    47,    47,    47,    47,    47,
452 	   47,    47,    47,    47,    47,    47,    47,   309,
453 	  310,     0,     0,     0,    47,    47,    47,    47,
454 	    0,     0,     0,     0,     0,     0,     0,   311,
455 	   47,    47,    47,    47,    47,    47,    47,    47,
456 	   47,    47,    47,    47,    47,    47,    47,    47,
457 	   47,    47,    47,    47,    47,    47,    47,    47,
458 	   47,    47,    47,    47,    47,    47,    47,    47,
459 	   47,    47,    47,    47,    47,    47,    47,    47,
460 	   47,    47,    47,    47,    47,    47,    47,    47,
461 	   47,    47,    47,    47,    47,    47,    47,    47,
462 	   47,    47,    47,    47,    47,    47,    47,    47,
463 	   47,    47,    47,    47,    47,    47,    47,    47,
464 	   47,    47,    47,    47,    47,    47,    47,    47,
465 	   47,    47,    47,    47,    47,    47,    47,    47,
466 	   47,    47,    47,    47,    47,    47,    47,    47,
467 	   47,    47,    47,    47,    47,    47,    47,    47,
468 	   47,    47,    47,    47,    47,    47,    47,    47,
469 };
470 
471 static const struct {
472 	unsigned char tbl[32];
473 } idnacategory_table[] = {
474 	{{
475 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
476 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
477 	}},
478 	{{
479 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  3,  3,  0,
480 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,
481 	}},
482 	{{
483 	 3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
484 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,
485 	}},
486 	{{
487 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
488 	 3,  3,  3,  3,  3,  3,  2,  3,  3,  3,  3,  3,  3,  3,  3,
489 	}},
490 	{{
491 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
492 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,
493 	}},
494 	{{
495 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
496 	 0,  0,  0,  0,  0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,
497 	}},
498 	{{
499 	 3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,
500 	 0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,
501 	}},
502 	{{
503 	 3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,
504 	 0,  3,  3,  3,  0,  3,  0,  0,  3,  0,  3,  0,  3,  0,  3,
505 	}},
506 	{{
507 	 3,  3,  0,  3,  0,  3,  0,  3,  0,  3,  3,  0,  3,  0,  3,  0,  3,
508 	 0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,
509 	}},
510 	{{
511 	 3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,
512 	 0,  3,  0,  3,  0,  3,  0,  3,  3,  0,  3,  0,  3,  0,  3,
513 	}},
514 	{{
515 	 0,  3,  3,  0,  3,  0,  3,  3,  0,  3,  3,  3,  0,  0,  3,  3,  3,
516 	 3,  0,  3,  3,  0,  3,  3,  3,  0,  0,  0,  3,  3,  0,  3,
517 	}},
518 	{{
519 	 3,  0,  3,  0,  3,  0,  3,  3,  0,  3,  0,  0,  3,  0,  3,  3,  0,
520 	 3,  3,  3,  0,  3,  0,  3,  3,  0,  0,  0,  3,  0,  0,  0,
521 	}},
522 	{{
523 	 0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  3,  0,
524 	 3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  0,  3,  0,
525 	}},
526 	{{
527 	 3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  0,
528 	 3,  3,  3,  3,  0,  3,  3,  3,  0,  3,  0,  3,  0,  3,  0,
529 	}},
530 	{{
531 	 3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,
532 	 0,  3,  0,  0,  0,  0,  0,  0,  0,  3,  3,  0,  3,  3,  0,
533 	}},
534 	{{
535 	 0,  3,  0,  3,  3,  3,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  0,
536 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
537 	}},
538 	{{
539 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
540 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
541 	}},
542 	{{
543 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,
544 	 3,  3,  3,  3,  3,  3,  3,  3,  0,  0,  0,  0,  0,  0,  0,
545 	}},
546 	{{
547 	 0,  0,  3,  3,  3,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
548 	 0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
549 	}},
550 	{{
551 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  3,  0,  3,  3,
552 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
553 	}},
554 	{{
555 	 3,  3,  0,  3,  3,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,
556 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
557 	}},
558 	{{
559 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,
560 	 0,  3,  0,  3,  2,  3,  0,  4,  4,  3,  0,  0,  0,  3,  4,
561 	}},
562 	{{
563 	 4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,  4,  3,  4,  3,  3,  0,
564 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
565 	}},
566 	{{
567 	 3,  3,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  0,  0,  0,  0,
568 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
569 	}},
570 	{{
571 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,
572 	 3,  3,  3,  3,  3,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,
573 	}},
574 	{{
575 	 3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,
576 	 3,  3,  0,  3,  3,  3,  3,  0,  3,  3,  0,  0,  3,  3,  3,
577 	}},
578 	{{
579 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,
580 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
581 	}},
582 	{{
583 	 3,  0,  3,  0,  0,  0,  0,  0,  3,  3,  3,  0,  3,  0,  3,  0,  3,
584 	 0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,
585 	}},
586 	{{
587 	 3,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  0,  3,
588 	 0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,
589 	}},
590 	{{
591 	 3,  0,  3,  0,  3,  0,  3,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,
592 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
593 	}},
594 	{{
595 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
596 	 3,  3,  3,  3,  3,  3,  4,  4,  0,  3,  3,  3,  3,  3,  3,
597 	}},
598 	{{
599 	 4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
600 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
601 	}},
602 	{{
603 	 0,  0,  0,  0,  0,  0,  0,  3,  4,  3,  3,  4,  4,  4,  4,  3,  4,
604 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
605 	}},
606 	{{
607 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
608 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,
609 	}},
610 	{{
611 	 3,  0,  0,  3,  0,  0,  3,  0,  4,  4,  4,  4,  4,  4,  4,  4,  0,
612 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
613 	}},
614 	{{
615 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  0,
616 	 0,  0,  2,  2,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
617 	}},
618 	{{
619 	 3,  3,  3,  3,  3,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,
620 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  4,  3,  3,
621 	}},
622 	{{
623 	 3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
624 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
625 	}},
626 	{{
627 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  3,  3,  3,  3,  0,  0,  0,
628 	 0,  0,  0,  0,  3,  3,  3,  3,  0,  0,  0,  0,  0,  0,  0,
629 	}},
630 	{{
631 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
632 	 0,  0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  0,
633 	}},
634 	{{
635 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  0,  0,  0,  0,  0,  2,
636 	 2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,  0,  0,
637 	}},
638 	{{
639 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  3,  0,
640 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
641 	}},
642 	{{
643 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  0,  0,  0,  0,
644 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
645 	}},
646 	{{
647 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
648 	 0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
649 	}},
650 	{{
651 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
652 	 0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,
653 	}},
654 	{{
655 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  3,
656 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,
657 	}},
658 	{{
659 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
660 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  3,  4,
661 	}},
662 	{{
663 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
664 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
665 	}},
666 	{{
667 	 0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,
668 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
669 	}},
670 	{{
671 	 4,  4,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
672 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,
673 	}},
674 	{{
675 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
676 	 0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,
677 	}},
678 	{{
679 	 0,  0,  0,  0,  3,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,
680 	 0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,
681 	}},
682 	{{
683 	 4,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  0,  0,
684 	 4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
685 	}},
686 	{{
687 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,
688 	 4,  0,  4,  4,  4,  0,  0,  0,  0,  4,  4,  0,  0,  0,  0,
689 	}},
690 	{{
691 	 0,  0,  0,  0,  0,  4,  4,  0,  0,  4,  4,  0,  0,  0,  0,  4,  4,
692 	 4,  4,  4,  4,  4,  4,  0,  4,  4,  4,  4,  3,  3,  4,  3,
693 	}},
694 	{{
695 	 0,  0,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
696 	 0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,
697 	}},
698 	{{
699 	 4,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  0,  0,
700 	 4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
701 	}},
702 	{{
703 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,
704 	 4,  0,  3,  4,  0,  3,  4,  0,  0,  4,  4,  0,  4,  0,  0,
705 	}},
706 	{{
707 	 0,  0,  0,  4,  4,  4,  4,  0,  0,  4,  4,  0,  0,  0,  4,  4,  4,
708 	 0,  4,  4,  4,  4,  4,  4,  4,  3,  3,  3,  0,  4,  3,  4,
709 	}},
710 	{{
711 	 4,  4,  4,  4,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
712 	 0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
713 	}},
714 	{{
715 	 4,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,
716 	 0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
717 	}},
718 	{{
719 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,
720 	 4,  0,  0,  4,  0,  0,  0,  0,  0,  4,  4,  0,  0,  0,  0,
721 	}},
722 	{{
723 	 0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  4,  0,  0,  0,  4,  4,  0,
724 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
725 	}},
726 	{{
727 	 0,  0,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,
728 	 3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
729 	}},
730 	{{
731 	 0,  0,  0,  0,  0,  4,  4,  0,  0,  4,  4,  0,  0,  0,  4,  4,  4,
732 	 4,  4,  4,  4,  4,  0,  0,  4,  4,  4,  4,  3,  3,  4,  0,
733 	}},
734 	{{
735 	 0,  0,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,
736 	 0,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,
737 	}},
738 	{{
739 	 4,  4,  0,  0,  4,  0,  0,  0,  0,  0,  0,  4,  4,  4,  0,  0,  0,
740 	 4,  0,  0,  0,  0,  4,  4,  4,  0,  0,  4,  0,  4,  0,  0,
741 	}},
742 	{{
743 	 4,  4,  4,  0,  0,  4,  4,  4,  0,  0,  0,  4,  4,  4,  0,  0,  0,
744 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  0,  0,
745 	}},
746 	{{
747 	 0,  0,  0,  4,  4,  4,  0,  0,  0,  4,  0,  0,  0,  0,  4,  4,  0,
748 	 4,  4,  4,  4,  4,  4,  0,  4,  4,  4,  4,  4,  4,  4,  4,
749 	}},
750 	{{
751 	 4,  4,  4,  4,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,
752 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,
753 	}},
754 	{{
755 	 4,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,
756 	 4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
757 	}},
758 	{{
759 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,
760 	 0,  0,  0,  4,  0,  0,  0,  0,  0,  4,  4,  4,  0,  0,  0,
761 	}},
762 	{{
763 	 0,  0,  0,  0,  0,  4,  0,  0,  0,  4,  0,  0,  0,  0,  4,  4,  4,
764 	 4,  4,  4,  4,  0,  0,  4,  0,  0,  4,  4,  4,  4,  4,  4,
765 	}},
766 	{{
767 	 0,  0,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,
768 	 4,  4,  4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,
769 	}},
770 	{{
771 	 4,  4,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,
772 	 4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
773 	}},
774 	{{
775 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,
776 	 0,  0,  0,  4,  0,  0,  0,  0,  0,  4,  4,  0,  0,  0,  0,
777 	}},
778 	{{
779 	 0,  0,  0,  0,  0,  4,  0,  0,  0,  4,  0,  0,  0,  0,  4,  4,  4,
780 	 4,  4,  4,  4,  0,  0,  4,  4,  4,  4,  4,  4,  4,  0,  4,
781 	}},
782 	{{
783 	 0,  0,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,
784 	 0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
785 	}},
786 	{{
787 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
788 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  0,  0,  0,
789 	}},
790 	{{
791 	 0,  0,  0,  0,  0,  4,  0,  0,  0,  4,  0,  0,  0,  0,  0,  4,  4,
792 	 4,  4,  4,  4,  4,  4,  0,  4,  4,  4,  4,  4,  4,  4,  4,
793 	}},
794 	{{
795 	 0,  0,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,
796 	 3,  3,  3,  3,  3,  4,  4,  4,  3,  0,  0,  0,  0,  0,  0,
797 	}},
798 	{{
799 	 4,  4,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
800 	 0,  0,  0,  0,  0,  0,  4,  4,  4,  0,  0,  0,  0,  0,  0,
801 	}},
802 	{{
803 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
804 	 0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  4,  4,
805 	}},
806 	{{
807 	 0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  0,  4,  4,  4,  4,  0,  0,
808 	 0,  0,  0,  0,  4,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,
809 	}},
810 	{{
811 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
812 	 4,  0,  0,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
813 	}},
814 	{{
815 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
816 	 0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  3,
817 	}},
818 	{{
819 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,
820 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  4,  4,  4,  4,
821 	}},
822 	{{
823 	 4,  0,  0,  4,  0,  4,  4,  0,  0,  4,  0,  4,  4,  0,  4,  4,  4,
824 	 4,  4,  4,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,
825 	}},
826 	{{
827 	 4,  0,  0,  0,  4,  0,  4,  0,  4,  4,  0,  0,  4,  0,  0,  0,  0,
828 	 0,  0,  3,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  4,  4,
829 	}},
830 	{{
831 	 0,  0,  0,  0,  0,  4,  0,  4,  0,  0,  0,  0,  0,  0,  4,  4,  0,
832 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  3,  3,  0,  0,
833 	}},
834 	{{
835 	 0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  3,  3,  3,  3,  3,
836 	 3,  3,  3,  3,  3,  3,  3,  0,  0,  3,  3,  3,  3,  3,  3,
837 	}},
838 	{{
839 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,
840 	 3,  3,  3,  3,  0,  3,  0,  3,  0,  3,  3,  3,  3,  0,  0,
841 	}},
842 	{{
843 	 0,  0,  0,  3,  0,  0,  0,  0,  4,  0,  0,  0,  0,  3,  0,  0,  0,
844 	 0,  3,  0,  0,  0,  0,  3,  0,  0,  0,  0,  3,  0,  0,  0,
845 	}},
846 	{{
847 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  0,  0,  4,  4,  4,  4,
848 	 0,  0,  3,  0,  3,  3,  3,  3,  3,  0,  0,  0,  0,  0,  0,
849 	}},
850 	{{
851 	 0,  3,  0,  0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
852 	 0,  0,  3,  0,  0,  0,  0,  4,  0,  0,  0,  0,  3,  0,  0,
853 	}},
854 	{{
855 	 0,  0,  3,  0,  0,  0,  0,  3,  0,  0,  0,  0,  3,  0,  0,  0,  0,
856 	 0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  0,  0,  4,  3,  3,
857 	}},
858 	{{
859 	 3,  3,  3,  3,  3,  3,  0,  3,  3,  3,  3,  3,  3,  4,  3,  3,  3,
860 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,
861 	}},
862 	{{
863 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  0,
864 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
865 	}},
866 	{{
867 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
868 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,
869 	}},
870 	{{
871 	 3,  3,  3,  3,  3,  3,  4,  3,  4,  4,  4,  4,  4,  3,  4,  4,  0,
872 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
873 	}},
874 	{{
875 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
876 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  0,  0,  0,
877 	}},
878 	{{
879 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  4,  4,  0,
880 	 0,  0,  0,  0,  0,  0,  4,  0,  4,  0,  0,  0,  0,  4,  4,
881 	}},
882 	{{
883 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  4,  4,  0,
884 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
885 	}},
886 	{{
887 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
888 	 4,  0,  0,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,  0,  4,
889 	}},
890 	{{
891 	 0,  4,  0,  0,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,
892 	 0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,
893 	}},
894 	{{
895 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
896 	 4,  0,  0,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,
897 	}},
898 	{{
899 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
900 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,
901 	}},
902 	{{
903 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,
904 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,
905 	}},
906 	{{
907 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
908 	 0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
909 	}},
910 	{{
911 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  0,  0,
912 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
913 	}},
914 	{{
915 	 3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
916 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  4,  4,  4,
917 	}},
918 	{{
919 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,
920 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
921 	}},
922 	{{
923 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,
924 	 0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
925 	}},
926 	{{
927 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
928 	 0,  0,  0,  0,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,
929 	}},
930 	{{
931 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
932 	 0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
933 	}},
934 	{{
935 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,
936 	 4,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
937 	}},
938 	{{
939 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
940 	 0,  0,  0,  3,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
941 	}},
942 	{{
943 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
944 	 0,  0,  0,  3,  3,  3,  0,  3,  3,  3,  3,  0,  0,  4,  4,
945 	}},
946 	{{
947 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  3,
948 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,
949 	}},
950 	{{
951 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  0,
952 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,
953 	}},
954 	{{
955 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
956 	 0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,
957 	}},
958 	{{
959 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  0,
960 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
961 	}},
962 	{{
963 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
964 	 0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
965 	}},
966 	{{
967 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
968 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,
969 	}},
970 	{{
971 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  0,
972 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,
973 	}},
974 	{{
975 	 3,  4,  4,  4,  3,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
976 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
977 	}},
978 	{{
979 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  0,
980 	 0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
981 	}},
982 	{{
983 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  0,
984 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
985 	}},
986 	{{
987 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  0,
988 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  4,  4,  4,  3,  3,
989 	}},
990 	{{
991 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
992 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  3,  3,
993 	}},
994 	{{
995 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
996 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,
997 	}},
998 	{{
999 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1000 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  0,
1001 	}},
1002 	{{
1003 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  0,
1004 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,
1005 	}},
1006 	{{
1007 	 3,  3,  3,  3,  3,  3,  3,  0,  3,  3,  3,  3,  3,  3,  4,  4,  4,
1008 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1009 	}},
1010 	{{
1011 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  0,
1012 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,
1013 	}},
1014 	{{
1015 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  0,  0,  0,  0,  0,
1016 	 0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,
1017 	}},
1018 	{{
1019 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1020 	 0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  3,  3,  3,  3,
1021 	}},
1022 	{{
1023 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1024 	 0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  3,  3,  3,  3,  3,
1025 	}},
1026 	{{
1027 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  0,  0,  0,  0,
1028 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1029 	}},
1030 	{{
1031 	 3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  0,
1032 	 0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1033 	}},
1034 	{{
1035 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1036 	 0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1037 	}},
1038 	{{
1039 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  0,  3,
1040 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  3,  3,  3,  3,
1041 	}},
1042 	{{
1043 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  3,  3,
1044 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1045 	}},
1046 	{{
1047 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  0,  0,  0,  0,  0,
1048 	 0,  0,  0,  0,  0,  0,  0,  3,  0,  0,  0,  0,  0,  0,  0,
1049 	}},
1050 	{{
1051 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1052 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,
1053 	}},
1054 	{{
1055 	 0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1056 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,  0,  0,  0,
1057 	}},
1058 	{{
1059 	 3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,
1060 	 0,  3,  0,  3,  0,  0,  0,  0,  0,  3,  3,  0,  0,  3,  0,
1061 	}},
1062 	{{
1063 	 0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  0,
1064 	 0,  0,  0,  0,  0,  4,  4,  3,  3,  3,  3,  3,  3,  4,  4,
1065 	}},
1066 	{{
1067 	 0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  0,
1068 	 0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,
1069 	}},
1070 	{{
1071 	 0,  0,  0,  0,  0,  0,  4,  4,  3,  3,  3,  3,  3,  3,  4,  4,  0,
1072 	 0,  0,  0,  0,  0,  0,  0,  4,  3,  4,  3,  4,  3,  4,  3,
1073 	}},
1074 	{{
1075 	 0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  0,
1076 	 3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  4,  4,
1077 	}},
1078 	{{
1079 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,
1080 	 0,  3,  3,  3,  4,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1081 	}},
1082 	{{
1083 	 3,  3,  3,  3,  3,  4,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,
1084 	 0,  0,  3,  4,  4,  0,  0,  3,  3,  3,  3,  4,  3,  3,  3,
1085 	}},
1086 	{{
1087 	 0,  0,  0,  3,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  4,
1088 	 4,  3,  3,  3,  4,  0,  3,  3,  3,  3,  3,  3,  3,  3,  4,
1089 	}},
1090 	{{
1091 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  1,  1,  3,  3,  3,
1092 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1093 	}},
1094 	{{
1095 	 3,  3,  3,  3,  3,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1096 	 3,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1097 	}},
1098 	{{
1099 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  3,
1100 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,
1101 	}},
1102 	{{
1103 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1104 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,
1105 	}},
1106 	{{
1107 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,
1108 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1109 	}},
1110 	{{
1111 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1112 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1113 	}},
1114 	{{
1115 	 3,  3,  3,  3,  0,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  3,
1116 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1117 	}},
1118 	{{
1119 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1120 	 3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1121 	}},
1122 	{{
1123 	 3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1124 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1125 	}},
1126 	{{
1127 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,
1128 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1129 	}},
1130 	{{
1131 	 4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1132 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1133 	}},
1134 	{{
1135 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  3,
1136 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,
1137 	}},
1138 	{{
1139 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  0,
1140 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1141 	}},
1142 	{{
1143 	 3,  0,  3,  3,  3,  0,  0,  3,  0,  3,  0,  3,  0,  3,  3,  3,  3,
1144 	 0,  3,  0,  0,  3,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,
1145 	}},
1146 	{{
1147 	 3,  0,  3,  0,  0,  3,  3,  3,  3,  3,  3,  3,  0,  3,  0,  0,  0,
1148 	 0,  3,  0,  4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,
1149 	}},
1150 	{{
1151 	 0,  0,  0,  0,  0,  0,  4,  0,  4,  4,  4,  4,  4,  0,  4,  4,  0,
1152 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1153 	}},
1154 	{{
1155 	 0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  3,  3,
1156 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,
1157 	}},
1158 	{{
1159 	 0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  4,  0,
1160 	 0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  4,
1161 	}},
1162 	{{
1163 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  3,
1164 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,
1165 	}},
1166 	{{
1167 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1168 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  3,  3,  3,  3,  3,
1169 	}},
1170 	{{
1171 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1172 	 3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1173 	}},
1174 	{{
1175 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,
1176 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,
1177 	}},
1178 	{{
1179 	 3,  3,  3,  3,  3,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1180 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1181 	}},
1182 	{{
1183 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  0,  0,  0,  3,  3,  3,
1184 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  3,  3,  3,
1185 	}},
1186 	{{
1187 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1188 	 0,  0,  0,  0,  0,  0,  4,  4,  0,  0,  3,  3,  0,  0,  3,
1189 	}},
1190 	{{
1191 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1192 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  3,
1193 	}},
1194 	{{
1195 	 4,  4,  4,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1196 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1197 	}},
1198 	{{
1199 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,
1200 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1201 	}},
1202 	{{
1203 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  3,
1204 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1205 	}},
1206 	{{
1207 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1208 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,
1209 	}},
1210 	{{
1211 	 3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,
1212 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1213 	}},
1214 	{{
1215 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1216 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,
1217 	}},
1218 	{{
1219 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,
1220 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1221 	}},
1222 	{{
1223 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  3,
1224 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1225 	}},
1226 	{{
1227 	 3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,
1228 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1229 	}},
1230 	{{
1231 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  0,
1232 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1233 	}},
1234 	{{
1235 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,
1236 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1237 	}},
1238 	{{
1239 	 3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  0,  0,  3,
1240 	 3,  3,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,
1241 	}},
1242 	{{
1243 	 3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,
1244 	 0,  3,  0,  3,  0,  3,  0,  4,  4,  4,  4,  4,  4,  4,  0,
1245 	}},
1246 	{{
1247 	 0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,
1248 	 0,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,
1249 	}},
1250 	{{
1251 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1252 	 3,  3,  3,  3,  3,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1253 	}},
1254 	{{
1255 	 3,  3,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  0,
1256 	 0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,
1257 	}},
1258 	{{
1259 	 3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,
1260 	 0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  3,  0,  3,  3,  0,
1261 	}},
1262 	{{
1263 	 3,  0,  3,  0,  3,  0,  3,  0,  0,  3,  3,  3,  0,  3,  0,  4,  3,
1264 	 0,  3,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1265 	}},
1266 	{{
1267 	 3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  4,  4,  4,  4,  4,  4,
1268 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1269 	}},
1270 	{{
1271 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1272 	 4,  4,  4,  4,  4,  4,  4,  3,  3,  0,  0,  0,  0,  0,  0,
1273 	}},
1274 	{{
1275 	 0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  4,  4,  4,  4,  3,
1276 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,
1277 	}},
1278 	{{
1279 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1280 	 0,  0,  0,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,
1281 	}},
1282 	{{
1283 	 0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,  3,  0,
1284 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,
1285 	}},
1286 	{{
1287 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1288 	 0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  0,  4,  4,  4,  4,
1289 	}},
1290 	{{
1291 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  0,
1292 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1293 	}},
1294 	{{
1295 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1296 	 0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,
1297 	}},
1298 	{{
1299 	 0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  0,  0,
1300 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  3,  3,
1301 	}},
1302 	{{
1303 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  0,
1304 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  3,  3,  3,  3,
1305 	}},
1306 	{{
1307 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1308 	 0,  0,  0,  0,  0,  0,  3,  3,  3,  0,  0,  4,  4,  4,  4,
1309 	}},
1310 	{{
1311 	 0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1312 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,  0,  0,  3,  3,
1313 	}},
1314 	{{
1315 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,
1316 	 3,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1317 	}},
1318 	{{
1319 	 4,  0,  0,  0,  0,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,  4,  4,
1320 	 0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1321 	}},
1322 	{{
1323 	 0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  4,  4,
1324 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1325 	}},
1326 	{{
1327 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  0,  4,  4,  0,
1328 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,
1329 	}},
1330 	{{
1331 	 0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,
1332 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1333 	}},
1334 	{{
1335 	 3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,
1336 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1337 	}},
1338 	{{
1339 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1340 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,
1341 	}},
1342 	{{
1343 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  0,  3,
1344 	 0,  3,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,
1345 	}},
1346 	{{
1347 	 3,  0,  3,  0,  0,  3,  3,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,
1348 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1349 	}},
1350 	{{
1351 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  3,
1352 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1353 	}},
1354 	{{
1355 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1356 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,
1357 	}},
1358 	{{
1359 	 3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1360 	 4,  4,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  3,  0,  3,
1361 	}},
1362 	{{
1363 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1364 	 3,  3,  3,  3,  3,  3,  4,  3,  3,  3,  3,  3,  4,  3,  4,
1365 	}},
1366 	{{
1367 	 3,  3,  4,  3,  3,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1368 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1369 	}},
1370 	{{
1371 	 3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1372 	 4,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1373 	}},
1374 	{{
1375 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,
1376 	 4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1377 	}},
1378 	{{
1379 	 3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  3,
1380 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1381 	}},
1382 	{{
1383 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1384 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,
1385 	}},
1386 	{{
1387 	 0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,
1388 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1389 	}},
1390 	{{
1391 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1392 	 3,  3,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1393 	}},
1394 	{{
1395 	 3,  3,  3,  3,  3,  3,  3,  4,  3,  3,  3,  3,  4,  4,  4,  4,  3,
1396 	 3,  3,  0,  3,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1397 	}},
1398 	{{
1399 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1400 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  3,
1401 	}},
1402 	{{
1403 	 4,  4,  3,  3,  3,  3,  3,  3,  4,  4,  3,  3,  3,  3,  3,  3,  4,
1404 	 4,  3,  3,  3,  3,  3,  3,  4,  4,  3,  3,  3,  4,  4,  4,
1405 	}},
1406 	{{
1407 	 3,  3,  3,  3,  3,  3,  3,  4,  3,  3,  3,  3,  3,  3,  3,  4,  4,
1408 	 4,  4,  4,  4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,
1409 	}},
1410 	{{
1411 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,
1412 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1413 	}},
1414 	{{
1415 	 0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1416 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  4,  0,
1417 	}},
1418 	{{
1419 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  0,
1420 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,
1421 	}},
1422 	{{
1423 	 3,  3,  3,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1424 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1425 	}},
1426 	{{
1427 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1428 	 3,  3,  3,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1429 	}},
1430 	{{
1431 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  3,
1432 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,
1433 	}},
1434 	{{
1435 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1436 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  0,  4,  4,
1437 	}},
1438 	{{
1439 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1440 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1441 	}},
1442 	{{
1443 	 0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  3,  4,  4,  4,  4,  4,  4,
1444 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1445 	}},
1446 	{{
1447 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1448 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  3,
1449 	}},
1450 	{{
1451 	 0,  0,  0,  0,  4,  4,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  3,
1452 	 3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1453 	}},
1454 	{{
1455 	 3,  3,  3,  3,  3,  3,  3,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1456 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1457 	}},
1458 	{{
1459 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1460 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,
1461 	}},
1462 	{{
1463 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,
1464 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1465 	}},
1466 	{{
1467 	 0,  0,  0,  0,  0,  0,  4,  4,  0,  4,  0,  0,  0,  0,  0,  0,  0,
1468 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1469 	}},
1470 	{{
1471 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1472 	 0,  0,  0,  0,  0,  4,  0,  0,  4,  4,  4,  0,  4,  4,  0,
1473 	}},
1474 	{{
1475 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1476 	 0,  0,  0,  0,  0,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1477 	}},
1478 	{{
1479 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1480 	 0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  4,  4,  4,  3,
1481 	}},
1482 	{{
1483 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1484 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  3,
1485 	}},
1486 	{{
1487 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1488 	 0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  0,  0,
1489 	}},
1490 	{{
1491 	 0,  0,  0,  0,  4,  0,  0,  4,  4,  4,  4,  4,  0,  0,  0,  0,  0,
1492 	 0,  0,  0,  4,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,
1493 	}},
1494 	{{
1495 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1496 	 0,  0,  0,  4,  4,  4,  4,  0,  0,  0,  4,  4,  4,  4,  0,
1497 	}},
1498 	{{
1499 	 3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  3,
1500 	 3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,
1501 	}},
1502 	{{
1503 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1504 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,
1505 	}},
1506 	{{
1507 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1508 	 0,  0,  0,  0,  0,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,
1509 	}},
1510 	{{
1511 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1512 	 0,  0,  0,  0,  0,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,
1513 	}},
1514 	{{
1515 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1516 	 0,  0,  4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,
1517 	}},
1518 	{{
1519 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,
1520 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1521 	}},
1522 	{{
1523 	 0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,
1524 	 4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1525 	}},
1526 	{{
1527 	 3,  3,  3,  3,  3,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,
1528 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1529 	}},
1530 	{{
1531 	 3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,
1532 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1533 	}},
1534 	{{
1535 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  0,
1536 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,
1537 	}},
1538 	{{
1539 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1540 	 0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1541 	}},
1542 	{{
1543 	 3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1544 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1545 	}},
1546 	{{
1547 	 0,  0,  0,  0,  0,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  0,
1548 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,
1549 	}},
1550 	{{
1551 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,
1552 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1553 	}},
1554 	{{
1555 	 3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,
1556 	 3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1557 	}},
1558 	{{
1559 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1560 	 0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,
1561 	}},
1562 	{{
1563 	 0,  0,  0,  0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,
1564 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1565 	}},
1566 	{{
1567 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,  0,
1568 	 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1569 	}},
1570 	{{
1571 	 0,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1572 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1573 	}},
1574 	{{
1575 	 3,  3,  3,  3,  3,  3,  3,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,
1576 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1577 	}},
1578 	{{
1579 	 3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1580 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1581 	}},
1582 	{{
1583 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1584 	 3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1585 	}},
1586 	{{
1587 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1588 	 3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1589 	}},
1590 	{{
1591 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1592 	 3,  3,  3,  3,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1593 	}},
1594 	{{
1595 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1596 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  3,  3,
1597 	}},
1598 	{{
1599 	 4,  4,  3,  4,  4,  3,  3,  4,  4,  3,  3,  3,  3,  4,  3,  3,  3,
1600 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  3,  4,  3,  3,  3,
1601 	}},
1602 	{{
1603 	 3,  3,  3,  3,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1604 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1605 	}},
1606 	{{
1607 	 3,  3,  3,  3,  3,  3,  4,  3,  3,  3,  3,  4,  4,  3,  3,  3,  3,
1608 	 3,  3,  3,  3,  4,  3,  3,  3,  3,  3,  3,  3,  4,  3,  3,
1609 	}},
1610 	{{
1611 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1612 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  3,  3,  3,  3,  4,
1613 	}},
1614 	{{
1615 	 3,  3,  3,  3,  3,  4,  3,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,
1616 	 4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1617 	}},
1618 	{{
1619 	 3,  3,  3,  3,  3,  3,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1620 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1621 	}},
1622 	{{
1623 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  3,  3,  3,
1624 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1625 	}},
1626 	{{
1627 	 4,  3,  3,  4,  3,  4,  4,  3,  4,  3,  3,  3,  3,  3,  3,  3,  3,
1628 	 3,  3,  4,  3,  3,  3,  3,  4,  3,  4,  3,  4,  4,  4,  4,
1629 	}},
1630 	{{
1631 	 4,  4,  3,  4,  4,  4,  4,  3,  4,  3,  4,  3,  4,  3,  3,  3,  4,
1632 	 3,  3,  4,  3,  4,  4,  3,  4,  3,  4,  3,  4,  3,  4,  3,
1633 	}},
1634 	{{
1635 	 4,  3,  3,  4,  3,  4,  4,  3,  3,  3,  3,  4,  3,  3,  3,  3,  3,
1636 	 3,  3,  4,  3,  3,  3,  3,  4,  3,  3,  3,  3,  4,  3,  4,
1637 	}},
1638 	{{
1639 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  3,  3,  3,  3,  3,  3,
1640 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,
1641 	}},
1642 	{{
1643 	 4,  3,  3,  3,  4,  3,  3,  3,  3,  3,  4,  3,  3,  3,  3,  3,  3,
1644 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,
1645 	}},
1646 	{{
1647 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,
1648 	 3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1649 	}},
1650 	{{
1651 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  3,
1652 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1653 	}},
1654 	{{
1655 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,
1656 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,
1657 	}},
1658 	{{
1659 	 4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,
1660 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1661 	}},
1662 	{{
1663 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  3,
1664 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1665 	}},
1666 	{{
1667 	 4,  4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1668 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1669 	}},
1670 	{{
1671 	 3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,
1672 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1673 	}},
1674 	{{
1675 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  3,
1676 	 3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1677 	}},
1678 	{{
1679 	 3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,
1680 	 3,  3,  3,  3,  3,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1681 	}},
1682 	{{
1683 	 3,  3,  3,  3,  3,  4,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,
1684 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1685 	}},
1686 	{{
1687 	 3,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1688 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1689 	}},
1690 	{{
1691 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1692 	 3,  3,  3,  3,  3,  3,  3,  4,  3,  3,  3,  3,  4,  4,  4,
1693 	}},
1694 	{{
1695 	 3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,
1696 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
1697 	}},
1698 	{{
1699 	 3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1700 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1701 	}},
1702 	{{
1703 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1704 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,  3,  3,  3,  3,
1705 	}},
1706 	{{
1707 	 3,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,
1708 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1709 	}},
1710 	{{
1711 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1712 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  3,  3,
1713 	}},
1714 	{{
1715 	 4,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1716 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1717 	}},
1718 	{{
1719 	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,
1720 	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
1721 	}},
1722 };
1723 
1724 /*
1725  * Table accessor.
1726  */
1727 idn__idnacategory_t
idn__sparsemap_getidnacategory(unsigned long v)1728 idn__sparsemap_getidnacategory(unsigned long v) {
1729 	int idx0, idx1, idx2;
1730 
1731 	if (v > UTF32_MAX)
1732 		return (idn__idnacategory_unknown);
1733 	idx0 = v >> (IDNACATEGORY_BITS_1 + IDNACATEGORY_BITS_2);
1734 	idx1 = (v >> IDNACATEGORY_BITS_2) & ((1 << IDNACATEGORY_BITS_1) - 1);
1735 	idx2 = v & ((1 << IDNACATEGORY_BITS_2) - 1);
1736 	return (idn__idnacategory_t) idnacategory_table[idnacategory_imap[idnacategory_imap[idx0] + idx1]].tbl[idx2];
1737 }
1738