1 /* test_aes.c - TinyCrypt AES-128 tests (including NIST tests) */
2 
3 /*
4  *  Copyright (C) 2017 by Intel Corporation, All Rights Reserved.
5  *
6  *  Redistribution and use in source and binary forms, with or without
7  *  modification, are permitted provided that the following conditions are met:
8  *
9  *    - Redistributions of source code must retain the above copyright notice,
10  *     this list of conditions and the following disclaimer.
11  *
12  *    - Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  *    - Neither the name of Intel Corporation nor the names of its contributors
17  *    may be used to endorse or promote products derived from this software
18  *    without specific prior written permission.
19  *
20  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23  *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24  *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26  *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27  *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28  *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30  *  POSSIBILITY OF SUCH DAMAGE.
31  */
32 
33 /*
34  * DESCRIPTION
35  * This module tests the following AES routines:
36  *
37  * Scenarios tested include:
38  * - AES128 NIST key schedule test
39  * - AES128 NIST encryption test
40  * - AES128 NIST fixed-key and variable-text
41  * - AES128 NIST variable-key and fixed-text
42  */
43 
44 #include <tinycrypt/aes.h>
45 #include <tinycrypt/constants.h>
46 #include <test_utils.h>
47 
48 #include <stdlib.h>
49 #include <stdio.h>
50 #include <string.h>
51 
52 #include <stdint.h>
53 #include <stddef.h>
54 
55 #define NUM_OF_NIST_KEYS 16
56 #define NUM_OF_FIXED_KEYS 128
57 
58 
59 struct kat_table {
60 	uint8_t in[NUM_OF_NIST_KEYS];
61 	uint8_t out[NUM_OF_NIST_KEYS];
62 };
63 
64 /*
65  * NIST test key schedule.
66  */
test_1(void)67 int test_1(void)
68 {
69 	int result = TC_PASS;
70 	const uint8_t nist_key[NUM_OF_NIST_KEYS] = {
71 		0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
72 		0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
73 	};
74 	const struct tc_aes_key_sched_struct expected = {
75 		{
76 			0x2b7e1516, 0x28aed2a6, 0xabf71588, 0x09cf4f3c,
77 			0xa0fafe17, 0x88542cb1, 0x23a33939, 0x2a6c7605,
78 			0xf2c295f2, 0x7a96b943, 0x5935807a, 0x7359f67f,
79 			0x3d80477d, 0x4716fe3e, 0x1e237e44, 0x6d7a883b,
80 			0xef44a541, 0xa8525b7f, 0xb671253b, 0xdb0bad00,
81 			0xd4d1c6f8, 0x7c839d87, 0xcaf2b8bc, 0x11f915bc,
82 			0x6d88a37a, 0x110b3efd, 0xdbf98641, 0xca0093fd,
83 			0x4e54f70e, 0x5f5fc9f3, 0x84a64fb2, 0x4ea6dc4f,
84 			0xead27321, 0xb58dbad2, 0x312bf560, 0x7f8d292f,
85 			0xac7766f3, 0x19fadc21, 0x28d12941, 0x575c006e,
86 			0xd014f9a8, 0xc9ee2589, 0xe13f0cc8, 0xb6630ca6
87 		}
88 	};
89 	struct tc_aes_key_sched_struct s;
90 
91 	TC_PRINT("AES128 %s (NIST key schedule test):\n", __func__);
92 
93 	if (tc_aes128_set_encrypt_key(&s, nist_key) == 0) {
94 		TC_ERROR("AES128 test %s (NIST key schedule test) failed.\n",
95 			 __func__);
96 		result = TC_FAIL;
97 		goto exitTest1;
98 	}
99 
100 	result = check_result(1, expected.words, sizeof(expected.words), s.words,
101 			      sizeof(s.words));
102 
103 exitTest1:
104 	TC_END_RESULT(result);
105 	return result;
106 }
107 
108 /*
109  * NIST test vectors for encryption.
110  */
test_2(void)111 int test_2(void)
112 {
113 	int result = TC_PASS;
114 	const uint8_t nist_key[NUM_OF_NIST_KEYS] = {
115 		0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
116 		0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
117 	};
118 	const uint8_t nist_input[NUM_OF_NIST_KEYS] = {
119 		0x32, 0x43, 0xf6, 0xa8, 0x88, 0x5a, 0x30, 0x8d,
120 		0x31, 0x31, 0x98, 0xa2, 0xe0, 0x37, 0x07, 0x34
121 	};
122 	const uint8_t expected[NUM_OF_NIST_KEYS] = {
123 		0x39, 0x25, 0x84, 0x1d, 0x02, 0xdc, 0x09, 0xfb,
124 		0xdc, 0x11, 0x85, 0x97, 0x19, 0x6a, 0x0b, 0x32
125 	};
126 	struct tc_aes_key_sched_struct s;
127 	uint8_t ciphertext[NUM_OF_NIST_KEYS];
128 
129 	TC_PRINT("AES128 %s (NIST encryption test):\n", __func__);
130 
131 	(void)tc_aes128_set_encrypt_key(&s, nist_key);
132 	if (tc_aes_encrypt(ciphertext, nist_input, &s) == 0) {
133 		TC_ERROR("AES128 %s (NIST encryption test) failed.\n",
134 			 __func__);
135 		result = TC_FAIL;
136 		goto exitTest2;
137 	}
138 
139 	result = check_result(2, expected, sizeof(expected), ciphertext,
140 			      sizeof(ciphertext));
141 
142 exitTest2:
143 	TC_END_RESULT(result);
144 
145 	return result;
146 }
147 
var_text_test(unsigned int r,const uint8_t * in,const uint8_t * out,TCAesKeySched_t s)148 int var_text_test(unsigned int r, const uint8_t *in, const uint8_t *out,
149 		  TCAesKeySched_t s)
150 {
151 	uint8_t ciphertext[NUM_OF_NIST_KEYS];
152 	uint8_t decrypted[NUM_OF_NIST_KEYS];
153 	int result = TC_PASS;
154 
155 	(void)tc_aes_encrypt(ciphertext, in, s);
156 	result = check_result(r, out, NUM_OF_NIST_KEYS, ciphertext,
157 			      sizeof(ciphertext));
158 	if (result != TC_FAIL) {
159 		if (tc_aes_decrypt(decrypted, ciphertext, s) == 0) {
160 			TC_ERROR("aes_decrypt failed\n");
161 			result = TC_FAIL;
162 		} else {
163 			result = check_result(r, in, NUM_OF_NIST_KEYS,
164 					      decrypted, sizeof(decrypted));
165 		}
166 	}
167 
168 	return result;
169 }
170 
171 /*
172  * All NIST tests with fixed key and variable text.
173  */
test_3(void)174 int test_3(void)
175 {
176 	int result = TC_PASS;
177 	const uint8_t key[NUM_OF_NIST_KEYS] = {
178 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
179 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
180 	};
181 	const struct kat_table kat_tbl[NUM_OF_FIXED_KEYS] = {
182 		{{
183 				0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
184 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
185 			}, {
186 				0x3a, 0xd7, 0x8e, 0x72, 0x6c, 0x1e, 0xc0, 0x2b,
187 				0x7e, 0xbf, 0xe9, 0x2b, 0x23, 0xd9, 0xec, 0x34
188 			} },
189 		{{
190 				0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
191 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
192 			}, {
193 				0xaa, 0xe5, 0x93, 0x9c, 0x8e, 0xfd, 0xf2, 0xf0,
194 				0x4e, 0x60, 0xb9, 0xfe, 0x71, 0x17, 0xb2, 0xc2
195 			} },
196 		{{
197 				0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
198 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
199 			}, {
200 				0xf0, 0x31, 0xd4, 0xd7, 0x4f, 0x5d, 0xcb, 0xf3,
201 				0x9d, 0xaa, 0xf8, 0xca, 0x3a, 0xf6, 0xe5, 0x27
202 			} },
203 		{{
204 				0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
205 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
206 			}, {
207 				0x96, 0xd9, 0xfd, 0x5c, 0xc4, 0xf0, 0x74, 0x41,
208 				0x72, 0x7d, 0xf0, 0xf3, 0x3e, 0x40, 0x1a, 0x36
209 			} },
210 		{{
211 				0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
212 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
213 			}, {
214 				0x30, 0xcc, 0xdb, 0x04, 0x46, 0x46, 0xd7, 0xe1,
215 				0xf3, 0xcc, 0xea, 0x3d, 0xca, 0x08, 0xb8, 0xc0
216 			} },
217 		{{
218 				0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
219 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
220 			}, {
221 				0x16, 0xae, 0x4c, 0xe5, 0x04, 0x2a, 0x67, 0xee,
222 				0x8e, 0x17, 0x7b, 0x7c, 0x58, 0x7e, 0xcc, 0x82
223 			} },
224 		{{
225 				0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
226 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
227 			}, {
228 				0xb6, 0xda, 0x0b, 0xb1, 0x1a, 0x23, 0x85, 0x5d,
229 				0x9c, 0x5c, 0xb1, 0xb4, 0xc6, 0x41, 0x2e, 0x0a
230 			} },
231 		{{
232 				0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
233 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
234 			}, {
235 				0xdb, 0x4f, 0x1a, 0xa5, 0x30, 0x96, 0x7d, 0x67,
236 				0x32, 0xce, 0x47, 0x15, 0xeb, 0x0e, 0xe2, 0x4b
237 			} },
238 		{{
239 				0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
240 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
241 			}, {
242 				0xa8, 0x17, 0x38, 0x25, 0x26, 0x21, 0xdd, 0x18,
243 				0x0a, 0x34, 0xf3, 0x45, 0x5b, 0x4b, 0xaa, 0x2f
244 			} },
245 		{{
246 				0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
247 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
248 			}, {
249 				0x77, 0xe2, 0xb5, 0x08, 0xdb, 0x7f, 0xd8, 0x92,
250 				0x34, 0xca, 0xf7, 0x93, 0x9e, 0xe5, 0x62, 0x1a
251 			} },
252 		{{
253 				0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
254 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
255 			}, {
256 				0xb8, 0x49, 0x9c, 0x25, 0x1f, 0x84, 0x42, 0xee,
257 				0x13, 0xf0, 0x93, 0x3b, 0x68, 0x8f, 0xcd, 0x19
258 			} },
259 		{{
260 				0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
261 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
262 			}, {
263 				0x96, 0x51, 0x35, 0xf8, 0xa8, 0x1f, 0x25, 0xc9,
264 				0xd6, 0x30, 0xb1, 0x75, 0x02, 0xf6, 0x8e, 0x53
265 			} },
266 		{{
267 				0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
268 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
269 			}, {
270 				0x8b, 0x87, 0x14, 0x5a, 0x01, 0xad, 0x1c, 0x6c,
271 				0xed, 0xe9, 0x95, 0xea, 0x36, 0x70, 0x45, 0x4f
272 			} },
273 		{{
274 				0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
275 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
276 			}, {
277 				0x8e, 0xae, 0x3b, 0x10, 0xa0, 0xc8, 0xca, 0x6d,
278 				0x1d, 0x3b, 0x0f, 0xa6, 0x1e, 0x56, 0xb0, 0xb2
279 			} },
280 		{{
281 				0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
282 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
283 			}, {
284 				0x64, 0xb4, 0xd6, 0x29, 0x81, 0x0f, 0xda, 0x6b,
285 				0xaf, 0xdf, 0x08, 0xf3, 0xb0, 0xd8, 0xd2, 0xc5
286 			} },
287 		{{
288 				0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
289 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
290 			}, {
291 				0xd7, 0xe5, 0xdb, 0xd3, 0x32, 0x45, 0x95, 0xf8,
292 				0xfd, 0xc7, 0xd7, 0xc5, 0x71, 0xda, 0x6c, 0x2a
293 			} },
294 		{{
295 				0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
296 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
297 			}, {
298 				0xf3, 0xf7, 0x23, 0x75, 0x26, 0x4e, 0x16, 0x7f,
299 				0xca, 0x9d, 0xe2, 0xc1, 0x52, 0x7d, 0x96, 0x06
300 			} },
301 		{{
302 				0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
303 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
304 			}, {
305 				0x8e, 0xe7, 0x9d, 0xd4, 0xf4, 0x01, 0xff, 0x9b,
306 				0x7e, 0xa9, 0x45, 0xd8, 0x66, 0x66, 0xc1, 0x3b
307 			} },
308 		{{
309 				0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
310 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
311 			}, {
312 				0xdd, 0x35, 0xce, 0xa2, 0x79, 0x99, 0x40, 0xb4,
313 				0x0d, 0xb3, 0xf8, 0x19, 0xcb, 0x94, 0xc0, 0x8b
314 			} },
315 		{{
316 				0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
317 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
318 			}, {
319 				0x69, 0x41, 0xcb, 0x6b, 0x3e, 0x08, 0xc2, 0xb7,
320 				0xaf, 0xa5, 0x81, 0xeb, 0xdd, 0x60, 0x7b, 0x87
321 			} },
322 		{{
323 				0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
324 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
325 			},	{
326 				0x2c, 0x20, 0xf4, 0x39, 0xf6, 0xbb, 0x09, 0x7b,
327 				0x29, 0xb8, 0xbd, 0x6d, 0x99, 0xaa, 0xd7, 0x99
328 			} },
329 		{{
330 				0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
331 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
332 			}, {
333 				0x62, 0x5d, 0x01, 0xf0, 0x58, 0xe5, 0x65, 0xf7,
334 				0x7a, 0xe8, 0x63, 0x78, 0xbd, 0x2c, 0x49, 0xb3
335 			} },
336 		{{
337 				0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
338 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
339 			}, {
340 				0xc0, 0xb5, 0xfd, 0x98, 0x19, 0x0e, 0xf4, 0x5f,
341 				0xbb, 0x43, 0x01, 0x43, 0x8d, 0x09, 0x59, 0x50
342 			} },
343 		{{
344 				0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
345 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
346 			}, {
347 				0x13, 0x00, 0x1f, 0xf5, 0xd9, 0x98, 0x06, 0xef,
348 				0xd2, 0x5d, 0xa3, 0x4f, 0x56, 0xbe, 0x85, 0x4b
349 			} },
350 		{{
351 				0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
352 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
353 			}, {
354 				0x3b, 0x59, 0x4c, 0x60, 0xf5, 0xc8, 0x27, 0x7a,
355 				0x51, 0x13, 0x67, 0x7f, 0x94, 0x20, 0x8d, 0x82
356 			} },
357 		{{
358 				0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
359 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
360 			}, {
361 				0xe9, 0xc0, 0xfc, 0x18, 0x18, 0xe4, 0xaa, 0x46,
362 				0xbd, 0x2e, 0x39, 0xd6, 0x38, 0xf8, 0x9e, 0x05
363 			} },
364 		{{
365 				0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
366 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
367 			}, {
368 				0xf8, 0x02, 0x3e, 0xe9, 0xc3, 0xfd, 0xc4, 0x5a,
369 				0x01, 0x9b, 0x4e, 0x98, 0x5c, 0x7e, 0x1a, 0x54
370 			} },
371 		{{
372 				0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
373 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
374 			}, {
375 				0x35, 0xf4, 0x01, 0x82, 0xab, 0x46, 0x62, 0xf3,
376 				0x02, 0x3b, 0xae, 0xc1, 0xee, 0x79, 0x6b, 0x57
377 			} },
378 		{{
379 				0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00,
380 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
381 			}, {
382 				0x3a, 0xeb, 0xba, 0xd7, 0x30, 0x36, 0x49, 0xb4,
383 				0x19, 0x4a, 0x69, 0x45, 0xc6, 0xcc, 0x36, 0x94
384 			} },
385 		{{
386 				0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
387 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
388 			}, {
389 				0xa2, 0x12, 0x4b, 0xea, 0x53, 0xec, 0x28, 0x34,
390 				0x27, 0x9b, 0xed, 0x7f, 0x7e, 0xb0, 0xf9, 0x38
391 			} },
392 		{{
393 				0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
394 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
395 			}, {
396 				0xb9, 0xfb, 0x43, 0x99, 0xfa, 0x4f, 0xac, 0xc7,
397 				0x30, 0x9e, 0x14, 0xec, 0x98, 0x36, 0x0b, 0x0a
398 			} },
399 		{{
400 				0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
401 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
402 			}, {
403 				0xc2, 0x62, 0x77, 0x43, 0x74, 0x20, 0xc5, 0xd6,
404 				0x34, 0xf7, 0x15, 0xae, 0xa8, 0x1a, 0x91, 0x32
405 			} },
406 		{{
407 				0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00,
408 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
409 			}, {
410 				0x17, 0x1a, 0x0e, 0x1b, 0x2d, 0xd4, 0x24, 0xf0,
411 				0xe0, 0x89, 0xaf, 0x2c, 0x4c, 0x10, 0xf3, 0x2f
412 			} },
413 		{{
414 				0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00,
415 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
416 			}, {
417 				0x7c, 0xad, 0xbe, 0x40, 0x2d, 0x1b, 0x20, 0x8f,
418 				0xe7, 0x35, 0xed, 0xce, 0x00, 0xae, 0xe7, 0xce
419 			} },
420 		{{
421 				0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00,
422 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
423 			}, {
424 				0x43, 0xb0, 0x2f, 0xf9, 0x29, 0xa1, 0x48, 0x5a,
425 				0xf6, 0xf5, 0xc6, 0xd6, 0x55, 0x8b, 0xaa, 0x0f
426 			} },
427 		{{
428 				0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
429 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
430 			}, {
431 				0x09, 0x2f, 0xaa, 0xcc, 0x9b, 0xf4, 0x35, 0x08,
432 				0xbf, 0x8f, 0xa8, 0x61, 0x3c, 0xa7, 0x5d, 0xea
433 			} },
434 		{{
435 				0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00,
436 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
437 			}, {
438 				0xcb, 0x2b, 0xf8, 0x28, 0x0f, 0x3f, 0x97, 0x42,
439 				0xc7, 0xed, 0x51, 0x3f, 0xe8, 0x02, 0x62, 0x9c
440 			} },
441 		{{
442 				0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00,
443 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
444 			}, {
445 				0x21, 0x5a, 0x41, 0xee, 0x44, 0x2f, 0xa9, 0x92,
446 				0xa6, 0xe3, 0x23, 0x98, 0x6d, 0xed, 0x3f, 0x68
447 			} },
448 		{{
449 				0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
450 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
451 			}, {
452 				0xf2, 0x1e, 0x99, 0xcf, 0x4f, 0x0f, 0x77, 0xce,
453 				0xa8, 0x36, 0xe1, 0x1a, 0x2f, 0xe7, 0x5f, 0xb1
454 			} },
455 		{{
456 				0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
457 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
458 			}, {
459 				0x95, 0xe3, 0xa0, 0xca, 0x90, 0x79, 0xe6, 0x46,
460 				0x33, 0x1d, 0xf8, 0xb4, 0xe7, 0x0d, 0x2c, 0xd6
461 			} },
462 		{{
463 				0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
464 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
465 			}, {
466 				0x4a, 0xfe, 0x7f, 0x12, 0x0c, 0xe7, 0x61, 0x3f,
467 				0x74, 0xfc, 0x12, 0xa0, 0x1a, 0x82, 0x80, 0x73
468 			} },
469 		{{
470 				0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
471 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
472 			}, {
473 				0x82, 0x7f, 0x00, 0x0e, 0x75, 0xe2, 0xc8, 0xb9,
474 				0xd4, 0x79, 0xbe, 0xed, 0x91, 0x3f, 0xe6, 0x78
475 			} },
476 		{{
477 				0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
478 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
479 			}, {
480 				0x35, 0x83, 0x0c, 0x8e, 0x7a, 0xae, 0xfe, 0x2d,
481 				0x30, 0x31, 0x0e, 0xf3, 0x81, 0xcb, 0xf6, 0x91
482 			} },
483 		{{
484 				0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00,
485 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
486 			}, {
487 				0x19, 0x1a, 0xa0, 0xf2, 0xc8, 0x57, 0x01, 0x44,
488 				0xf3, 0x86, 0x57, 0xea, 0x40, 0x85, 0xeb, 0xe5
489 			} },
490 		{{
491 				0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
492 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
493 			}, {
494 				0x85, 0x06, 0x2c, 0x2c, 0x90, 0x9f, 0x15, 0xd9,
495 				0x26, 0x9b, 0x6c, 0x18, 0xce, 0x99, 0xc4, 0xf0
496 			} },
497 		{{
498 				0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
499 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
500 			}, {
501 				0x67, 0x80, 0x34, 0xdc, 0x9e, 0x41, 0xb5, 0xa5,
502 				0x60, 0xed, 0x23, 0x9e, 0xea, 0xb1, 0xbc, 0x78
503 			} },
504 		{{
505 				0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
506 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
507 			}, {
508 				0xc2, 0xf9, 0x3a, 0x4c, 0xe5, 0xab, 0x6d, 0x5d,
509 				0x56, 0xf1, 0xb9, 0x3c, 0xf1, 0x99, 0x11, 0xc1
510 			} },
511 		{{
512 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
513 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
514 			}, {
515 				0x1c, 0x31, 0x12, 0xbc, 0xb0, 0xc1, 0xdc, 0xc7,
516 				0x49, 0xd7, 0x99, 0x74, 0x36, 0x91, 0xbf, 0x82
517 			} },
518 		{{
519 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
520 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
521 			}, {
522 				0x00, 0xc5, 0x5b, 0xd7, 0x5c, 0x7f, 0x9c, 0x88,
523 				0x19, 0x89, 0xd3, 0xec, 0x19, 0x11, 0xc0, 0xd4
524 			} },
525 		{{
526 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
527 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
528 			}, {
529 				0xea, 0x2e, 0x6b, 0x5e, 0xf1, 0x82, 0xb7, 0xdf,
530 				0xf3, 0x62, 0x9a, 0xbd, 0x6a, 0x12, 0x04, 0x5f
531 			} },
532 		{{
533 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
534 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
535 			}, {
536 				0x22, 0x32, 0x23, 0x27, 0xe0, 0x17, 0x80, 0xb1,
537 				0x73, 0x97, 0xf2, 0x40, 0x87, 0xf8, 0xcc, 0x6f
538 			} },
539 		{{
540 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
541 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
542 			}, {
543 				0xc9, 0xca, 0xcb, 0x5c, 0xd1, 0x16, 0x92, 0xc3,
544 				0x73, 0xb2, 0x41, 0x17, 0x68, 0x14, 0x9e, 0xe7
545 			} },
546 		{{
547 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
548 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
549 			}, {
550 				0xa1, 0x8e, 0x3d, 0xbb, 0xca, 0x57, 0x78, 0x60,
551 				0xda, 0xb6, 0xb8, 0x0d, 0xa3, 0x13, 0x92, 0x56
552 			} },
553 		{{
554 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
555 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
556 			}, {
557 				0x79, 0xb6, 0x1c, 0x37, 0xbf, 0x32, 0x8e, 0xcc,
558 				0xa8, 0xd7, 0x43, 0x26, 0x5a, 0x3d, 0x42, 0x5c
559 			} },
560 		{{
561 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
562 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
563 			}, {
564 				0xd2, 0xd9, 0x9c, 0x6b, 0xcc, 0x1f, 0x06, 0xfd,
565 				0xa8, 0xe2, 0x7e, 0x8a, 0xe3, 0xf1, 0xcc, 0xc7
566 			} },
567 		{{
568 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
569 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
570 			}, {
571 				0x1b, 0xfd, 0x4b, 0x91, 0xc7, 0x01, 0xfd, 0x6b,
572 				0x61, 0xb7, 0xf9, 0x97, 0x82, 0x9d, 0x66, 0x3b
573 			} },
574 		{{
575 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
576 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
577 			}, {
578 				0x11, 0x00, 0x5d, 0x52, 0xf2, 0x5f, 0x16, 0xbd,
579 				0xc9, 0x54, 0x5a, 0x87, 0x6a, 0x63, 0x49, 0x0a
580 			} },
581 		{{
582 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
583 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
584 			}, {
585 				0x3a, 0x4d, 0x35, 0x4f, 0x02, 0xbb, 0x5a, 0x5e,
586 				0x47, 0xd3, 0x96, 0x66, 0x86, 0x7f, 0x24, 0x6a
587 			} },
588 		{{
589 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
590 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
591 			}, {
592 				0xd4, 0x51, 0xb8, 0xd6, 0xe1, 0xe1, 0xa0, 0xeb,
593 				0xb1, 0x55, 0xfb, 0xbf, 0x6e, 0x7b, 0x7d, 0xc3
594 			} },
595 		{{
596 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
597 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
598 			}, {
599 				0x68, 0x98, 0xd4, 0xf4, 0x2f, 0xa7, 0xba, 0x6a,
600 				0x10, 0xac, 0x05, 0xe8, 0x7b, 0x9f, 0x20, 0x80
601 			} },
602 		{{
603 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
604 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
605 			}, {
606 				0xb6, 0x11, 0x29, 0x5e, 0x73, 0x9c, 0xa7, 0xd9,
607 				0xb5, 0x0f, 0x8e, 0x4c, 0x0e, 0x75, 0x4a, 0x3f
608 			} },
609 		{{
610 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
611 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
612 			}, {
613 				0x7d, 0x33, 0xfc, 0x7d, 0x8a, 0xbe, 0x3c, 0xa1,
614 				0x93, 0x67, 0x59, 0xf8, 0xf5, 0xde, 0xaf, 0x20
615 			} },
616 		{{
617 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
618 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
619 			}, {
620 				0x3b, 0x5e, 0x0f, 0x56, 0x6d, 0xc9, 0x6c, 0x29,
621 				0x8f, 0x0c, 0x12, 0x63, 0x75, 0x39, 0xb2, 0x5c
622 			} },
623 		{{
624 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
625 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
626 			}, {
627 				0xf8, 0x07, 0xc3, 0xe7, 0x98, 0x5f, 0xe0, 0xf5,
628 				0xa5, 0x0e, 0x2c, 0xdb, 0x25, 0xc5, 0x10, 0x9e
629 			} },
630 		{{
631 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
632 				0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
633 			}, {
634 				0x41, 0xf9, 0x92, 0xa8, 0x56, 0xfb, 0x27, 0x8b,
635 				0x38, 0x9a, 0x62, 0xf5, 0xd2, 0x74, 0xd7, 0xe9
636 			} },
637 		{{
638 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
639 				0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
640 			}, {
641 				0x10, 0xd3, 0xed, 0x7a, 0x6f, 0xe1, 0x5a, 0xb4,
642 				0xd9, 0x1a, 0xcb, 0xc7, 0xd0, 0x76, 0x7a, 0xb1
643 			} },
644 		{{
645 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
646 				0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
647 			}, {
648 				0x21, 0xfe, 0xec, 0xd4, 0x5b, 0x2e, 0x67, 0x59,
649 				0x73, 0xac, 0x33, 0xbf, 0x0c, 0x54, 0x24, 0xfc
650 			} },
651 		{{
652 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
653 				0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
654 			}, {
655 				0x14, 0x80, 0xcb, 0x39, 0x55, 0xba, 0x62, 0xd0,
656 				0x9e, 0xea, 0x66, 0x8f, 0x7c, 0x70, 0x88, 0x17
657 			} },
658 		{{
659 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
660 				0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
661 			}, {
662 				0x66, 0x40, 0x40, 0x33, 0xd6, 0xb7, 0x2b, 0x60,
663 				0x93, 0x54, 0xd5, 0x49, 0x6e, 0x7e, 0xb5, 0x11
664 			} },
665 		{{
666 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
667 				0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
668 			}, {
669 				0x1c, 0x31, 0x7a, 0x22, 0x0a, 0x7d, 0x70, 0x0d,
670 				0xa2, 0xb1, 0xe0, 0x75, 0xb0, 0x02, 0x66, 0xe1
671 			} },
672 		{{
673 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
674 				0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
675 			}, {
676 				0xab, 0x3b, 0x89, 0x54, 0x22, 0x33, 0xf1, 0x27,
677 				0x1b, 0xf8, 0xfd, 0x0c, 0x0f, 0x40, 0x35, 0x45
678 			} },
679 		{{
680 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
681 				0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
682 			}, {
683 				0xd9, 0x3e, 0xae, 0x96, 0x6f, 0xac, 0x46, 0xdc,
684 				0xa9, 0x27, 0xd6, 0xb1, 0x14, 0xfa, 0x3f, 0x9e
685 			} },
686 		{{
687 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
688 				0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
689 			}, {
690 				0x1b, 0xde, 0xc5, 0x21, 0x31, 0x65, 0x03, 0xd9,
691 				0xd5, 0xee, 0x65, 0xdf, 0x3e, 0xa9, 0x4d, 0xdf
692 			} },
693 		{{
694 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
695 				0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
696 			}, {
697 				0xee, 0xf4, 0x56, 0x43, 0x1d, 0xea, 0x8b, 0x4a,
698 				0xcf, 0x83, 0xbd, 0xae, 0x37, 0x17, 0xf7, 0x5f
699 			} },
700 		{{
701 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
702 				0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
703 			}, {
704 				0x06, 0xf2, 0x51, 0x9a, 0x2f, 0xaf, 0xaa, 0x59,
705 				0x6b, 0xfe, 0xf5, 0xcf, 0xa1, 0x5c, 0x21, 0xb9
706 			} },
707 		{{
708 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
709 				0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
710 			}, {
711 				0x25, 0x1a, 0x7e, 0xac, 0x7e, 0x2f, 0xe8, 0x09,
712 				0xe4, 0xaa, 0x8d, 0x0d, 0x70, 0x12, 0x53, 0x1a
713 			} },
714 		{{
715 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
716 				0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
717 			}, {
718 				0x3b, 0xff, 0xc1, 0x6e, 0x4c, 0x49, 0xb2, 0x68,
719 				0xa2, 0x0f, 0x8d, 0x96, 0xa6, 0x0b, 0x40, 0x58
720 			} },
721 		{{
722 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
723 				0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
724 			}, {
725 				0xe8, 0x86, 0xf9, 0x28, 0x19, 0x99, 0xc5, 0xbb,
726 				0x3b, 0x3e, 0x88, 0x62, 0xe2, 0xf7, 0xc9, 0x88
727 			} },
728 		{{
729 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
730 				0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
731 			}, {
732 				0x56, 0x3b, 0xf9, 0x0d, 0x61, 0xbe, 0xef, 0x39,
733 				0xf4, 0x8d, 0xd6, 0x25, 0xfc, 0xef, 0x13, 0x61
734 			} },
735 		{{
736 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
737 				0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
738 			}, {
739 				0x4d, 0x37, 0xc8, 0x50, 0x64, 0x45, 0x63, 0xc6,
740 				0x9f, 0xd0, 0xac, 0xd9, 0xa0, 0x49, 0x32, 0x5b
741 			} },
742 		{{
743 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
744 				0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
745 			}, {
746 				0xb8, 0x7c, 0x92, 0x1b, 0x91, 0x82, 0x9e, 0xf3,
747 				0xb1, 0x3c, 0xa5, 0x41, 0xee, 0x11, 0x30, 0xa6
748 			} },
749 		{{
750 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
751 				0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00
752 			}, {
753 				0x2e, 0x65, 0xeb, 0x6b, 0x6e, 0xa3, 0x83, 0xe1,
754 				0x09, 0xac, 0xcc, 0xe8, 0x32, 0x6b, 0x03, 0x93
755 			} },
756 		{{
757 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
758 				0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00
759 			}, {
760 				0x9c, 0xa5, 0x47, 0xf7, 0x43, 0x9e, 0xdc, 0x3e,
761 				0x25, 0x5c, 0x0f, 0x4d, 0x49, 0xaa, 0x89, 0x90
762 			} },
763 		{{
764 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
765 				0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00
766 			}, {
767 				0xa5, 0xe6, 0x52, 0x61, 0x4c, 0x93, 0x00, 0xf3,
768 				0x78, 0x16, 0xb1, 0xf9, 0xfd, 0x0c, 0x87, 0xf9
769 			} },
770 		{{
771 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
772 				0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00
773 			}, {
774 				0x14, 0x95, 0x4f, 0x0b, 0x46, 0x97, 0x77, 0x6f,
775 				0x44, 0x49, 0x4f, 0xe4, 0x58, 0xd8, 0x14, 0xed
776 			} },
777 		{{
778 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
779 				0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00
780 			}, {
781 				0x7c, 0x8d, 0x9a, 0xb6, 0xc2, 0x76, 0x17, 0x23,
782 				0xfe, 0x42, 0xf8, 0xbb, 0x50, 0x6c, 0xbc, 0xf7
783 			} },
784 		{{
785 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
786 				0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00
787 			}, {
788 				0xdb, 0x7e, 0x19, 0x32, 0x67, 0x9f, 0xdd, 0x99,
789 				0x74, 0x2a, 0xab, 0x04, 0xaa, 0x0d, 0x5a, 0x80
790 			} },
791 		{{
792 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
793 				0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
794 			}, {
795 				0x4c, 0x6a, 0x1c, 0x83, 0xe5, 0x68, 0xcd, 0x10,
796 				0xf2, 0x7c, 0x2d, 0x73, 0xde, 0xd1, 0x9c, 0x28
797 			} },
798 		{{
799 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
800 				0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00
801 			}, {
802 				0x90, 0xec, 0xbe, 0x61, 0x77, 0xe6, 0x74, 0xc9,
803 				0x8d, 0xe4, 0x12, 0x41, 0x3f, 0x7a, 0xc9, 0x15
804 			} },
805 		{{
806 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
807 				0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00
808 			}, {
809 				0x90, 0x68, 0x4a, 0x2a, 0xc5, 0x5f, 0xe1, 0xec,
810 				0x2b, 0x8e, 0xbd, 0x56, 0x22, 0x52, 0x0b, 0x73
811 			} },
812 		{{
813 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
814 				0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00
815 			}, {
816 				0x74, 0x72, 0xf9, 0xa7, 0x98, 0x86, 0x07, 0xca,
817 				0x79, 0x70, 0x77, 0x95, 0x99, 0x10, 0x35, 0xe6
818 			} },
819 		{{
820 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
821 				0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00
822 			}, {
823 				0x56, 0xaf, 0xf0, 0x89, 0x87, 0x8b, 0xf3, 0x35,
824 				0x2f, 0x8d, 0xf1, 0x72, 0xa3, 0xae, 0x47, 0xd8
825 			} },
826 		{{
827 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
828 				0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00
829 			}, {
830 				0x65, 0xc0, 0x52, 0x6c, 0xbe, 0x40, 0x16, 0x1b,
831 				0x80, 0x19, 0xa2, 0xa3, 0x17, 0x1a, 0xbd, 0x23
832 			} },
833 		{{
834 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
835 				0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00
836 			}, {
837 				0x37, 0x7b, 0xe0, 0xbe, 0x33, 0xb4, 0xe3, 0xe3,
838 				0x10, 0xb4, 0xaa, 0xbd, 0xa1, 0x73, 0xf8, 0x4f
839 			} },
840 		{{
841 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
842 				0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00
843 			}, {
844 				0x94, 0x02, 0xe9, 0xaa, 0x6f, 0x69, 0xde, 0x65,
845 				0x04, 0xda, 0x8d, 0x20, 0xc4, 0xfc, 0xaa, 0x2f
846 			} },
847 		{{
848 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
849 				0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00
850 			}, {
851 				0x12, 0x3c, 0x1f, 0x4a, 0xf3, 0x13, 0xad, 0x8c,
852 				0x2c, 0xe6, 0x48, 0xb2, 0xe7, 0x1f, 0xb6, 0xe1
853 			} },
854 		{{
855 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
856 				0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00
857 			}, {
858 				0x1f, 0xfc, 0x62, 0x6d, 0x30, 0x20, 0x3d, 0xcd,
859 				0xb0, 0x01, 0x9f, 0xb8, 0x0f, 0x72, 0x6c, 0xf4
860 			} },
861 		{{
862 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
863 				0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00
864 			}, {
865 				0x76, 0xda, 0x1f, 0xbe, 0x3a, 0x50, 0x72, 0x8c,
866 				0x50, 0xfd, 0x2e, 0x62, 0x1b, 0x5a, 0xd8, 0x85
867 			} },
868 		{{
869 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
870 				0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00
871 			}, {
872 				0x08, 0x2e, 0xb8, 0xbe, 0x35, 0xf4, 0x42, 0xfb,
873 				0x52, 0x66, 0x8e, 0x16, 0xa5, 0x91, 0xd1, 0xd6
874 			} },
875 		{{
876 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
877 				0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00
878 			}, {
879 				0xe6, 0x56, 0xf9, 0xec, 0xf5, 0xfe, 0x27, 0xec,
880 				0x3e, 0x4a, 0x73, 0xd0, 0x0c, 0x28, 0x2f, 0xb3
881 			} },
882 		{{
883 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
884 				0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00
885 			}, {
886 				0x2c, 0xa8, 0x20, 0x9d, 0x63, 0x27, 0x4c, 0xd9,
887 				0xa2, 0x9b, 0xb7, 0x4b, 0xcd, 0x77, 0x68, 0x3a
888 			} },
889 		{{
890 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
891 				0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00
892 			}, {
893 				0x79, 0xbf, 0x5d, 0xce, 0x14, 0xbb, 0x7d, 0xd7,
894 				0x3a, 0x8e, 0x36, 0x11, 0xde, 0x7c, 0xe0, 0x26
895 			} },
896 		{{
897 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
898 				0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00
899 			}, {
900 				0x3c, 0x84, 0x99, 0x39, 0xa5, 0xd2, 0x93, 0x99,
901 				0xf3, 0x44, 0xc4, 0xa0, 0xec, 0xa8, 0xa5, 0x76
902 			} },
903 		{{
904 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
905 				0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00
906 			}, {
907 				0xed, 0x3c, 0x0a, 0x94, 0xd5, 0x9b, 0xec, 0xe9,
908 				0x88, 0x35, 0xda, 0x7a, 0xa4, 0xf0, 0x7c, 0xa2
909 			} },
910 		{{
911 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
912 				0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00
913 			}, {
914 				0x63, 0x91, 0x9e, 0xd4, 0xce, 0x10, 0x19, 0x64,
915 				0x38, 0xb6, 0xad, 0x09, 0xd9, 0x9c, 0xd7, 0x95
916 			} },
917 		{{
918 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
919 				0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00
920 			}, {
921 				0x76, 0x78, 0xf3, 0xa8, 0x33, 0xf1, 0x9f, 0xea,
922 				0x95, 0xf3, 0xc6, 0x02, 0x9e, 0x2b, 0xc6, 0x10
923 			} },
924 		{{
925 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
926 				0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00
927 			}, {
928 				0x3a, 0xa4, 0x26, 0x83, 0x10, 0x67, 0xd3, 0x6b,
929 				0x92, 0xbe, 0x7c, 0x5f, 0x81, 0xc1, 0x3c, 0x56
930 			} },
931 		{{
932 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
933 				0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00
934 			}, {
935 				0x92, 0x72, 0xe2, 0xd2, 0xcd, 0xd1, 0x10, 0x50,
936 				0x99, 0x8c, 0x84, 0x50, 0x77, 0xa3, 0x0e, 0xa0
937 			} },
938 		{{
939 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
940 				0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00
941 			}, {
942 				0x08, 0x8c, 0x4b, 0x53, 0xf5, 0xec, 0x0f, 0xf8,
943 				0x14, 0xc1, 0x9a, 0xda, 0xe7, 0xf6, 0x24, 0x6c
944 			} },
945 		{{
946 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
947 				0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00
948 			}, {
949 				0x40, 0x10, 0xa5, 0xe4, 0x01, 0xfd, 0xf0, 0xa0,
950 				0x35, 0x4d, 0xdb, 0xcc, 0x0d, 0x01, 0x2b, 0x17
951 			} },
952 		{{
953 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
954 				0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00
955 			}, {
956 				0xa8, 0x7a, 0x38, 0x57, 0x36, 0xc0, 0xa6, 0x18,
957 				0x9b, 0xd6, 0x58, 0x9b, 0xd8, 0x44, 0x5a, 0x93
958 			} },
959 		{{
960 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
961 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00
962 			}, {
963 				0x54, 0x5f, 0x2b, 0x83, 0xd9, 0x61, 0x6d, 0xcc,
964 				0xf6, 0x0f, 0xa9, 0x83, 0x0e, 0x9c, 0xd2, 0x87
965 			} },
966 		{{
967 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
968 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00
969 			}, {
970 				0x4b, 0x70, 0x6f, 0x7f, 0x92, 0x40, 0x63, 0x52,
971 				0x39, 0x40, 0x37, 0xa6, 0xd4, 0xf4, 0x68, 0x8d
972 			} },
973 		{{
974 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
975 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00
976 			}, {
977 				0xb7, 0x97, 0x2b, 0x39, 0x41, 0xc4, 0x4b, 0x90,
978 				0xaf, 0xa7, 0xb2, 0x64, 0xbf, 0xba, 0x73, 0x87
979 			} },
980 		{{
981 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
982 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00
983 			}, {
984 				0x6f, 0x45, 0x73, 0x2c, 0xf1, 0x08, 0x81, 0x54,
985 				0x6f, 0x0f, 0xd2, 0x38, 0x96, 0xd2, 0xbb, 0x60
986 			} },
987 		{{
988 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
989 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00
990 			}, {
991 				0x2e, 0x35, 0x79, 0xca, 0x15, 0xaf, 0x27, 0xf6,
992 				0x4b, 0x3c, 0x95, 0x5a, 0x5b, 0xfc, 0x30, 0xba
993 			} },
994 		{{
995 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
996 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00
997 			}, {
998 				0x34, 0xa2, 0xc5, 0xa9, 0x1a, 0xe2, 0xae, 0xc9,
999 				0x9b, 0x7d, 0x1b, 0x5f, 0xa6, 0x78, 0x04, 0x47
1000 			} },
1001 		{{
1002 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1003 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00
1004 			}, {
1005 				0xa4, 0xd6, 0x61, 0x6b, 0xd0, 0x4f, 0x87, 0x33,
1006 				0x5b, 0x0e, 0x53, 0x35, 0x12, 0x27, 0xa9, 0xee
1007 			} },
1008 		{{
1009 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1010 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00
1011 			}, {
1012 				0x7f, 0x69, 0x2b, 0x03, 0x94, 0x58, 0x67, 0xd1,
1013 				0x61, 0x79, 0xa8, 0xce, 0xfc, 0x83, 0xea, 0x3f
1014 			} },
1015 		{{
1016 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1017 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00
1018 			}, {
1019 				0x3b, 0xd1, 0x41, 0xee, 0x84, 0xa0, 0xe6, 0x41,
1020 				0x4a, 0x26, 0xe7, 0xa4, 0xf2, 0x81, 0xf8, 0xa2
1021 			} },
1022 		{{
1023 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1024 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80
1025 			}, {
1026 				0xd1, 0x78, 0x8f, 0x57, 0x2d, 0x98, 0xb2, 0xb1,
1027 				0x6e, 0xc5, 0xd5, 0xf3, 0x92, 0x2b, 0x99, 0xbc
1028 			} },
1029 		{{
1030 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1031 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
1032 			}, {
1033 				0x08, 0x33, 0xff, 0x6f, 0x61, 0xd9, 0x8a, 0x57,
1034 				0xb2, 0x88, 0xe8, 0xc3, 0x58, 0x6b, 0x85, 0xa6
1035 			} },
1036 		{{
1037 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1038 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0
1039 			}, {
1040 				0x85, 0x68, 0x26, 0x17, 0x97, 0xde, 0x17, 0x6b,
1041 				0xf0, 0xb4, 0x3b, 0xec, 0xc6, 0x28, 0x5a, 0xfb
1042 			} },
1043 		{{
1044 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1045 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0
1046 			}, {
1047 				0xf9, 0xb0, 0xfd, 0xa0, 0xc4, 0xa8, 0x98, 0xf5,
1048 				0xb9, 0xe6, 0xf6, 0x61, 0xc4, 0xce, 0x4d, 0x07
1049 			} },
1050 		{{
1051 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1052 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8
1053 			}, {
1054 				0x8a, 0xde, 0x89, 0x59, 0x13, 0x68, 0x5c, 0x67,
1055 				0xc5, 0x26, 0x9f, 0x8a, 0xae, 0x42, 0x98, 0x3e
1056 			} },
1057 		{{
1058 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1059 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc
1060 			}, {
1061 				0x39, 0xbd, 0xe6, 0x7d, 0x5c, 0x8e, 0xd8, 0xa8,
1062 				0xb1, 0xc3, 0x7e, 0xb8, 0xfa, 0x9f, 0x5a, 0xc0
1063 			} },
1064 		{{
1065 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1066 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe
1067 			}, {
1068 				0x5c, 0x00, 0x5e, 0x72, 0xc1, 0x41, 0x8c, 0x44,
1069 				0xf5, 0x69, 0xf2, 0xea, 0x33, 0xba, 0x54, 0xf3
1070 			} },
1071 		{{
1072 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1073 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
1074 			}, {
1075 				0x3f, 0x5b, 0x8c, 0xc9, 0xea, 0x85, 0x5a, 0x0a,
1076 				0xfa, 0x73, 0x47, 0xd2, 0x3e, 0x8d, 0x66, 0x4e
1077 			} }
1078 	};
1079 	struct tc_aes_key_sched_struct s;
1080 	unsigned int i;
1081 
1082 	TC_PRINT("AES128 %s (NIST fixed-key and variable-text):\n", __func__);
1083 
1084 	(void)tc_aes128_set_encrypt_key(&s, key);
1085 
1086 	for (i = 0; i < 128; ++i) {
1087 		result = var_text_test(i, kat_tbl[i].in, kat_tbl[i].out, &s);
1088 		if (result == TC_FAIL) {
1089 			break;
1090 		}
1091 	}
1092 
1093 	TC_END_RESULT(result);
1094 
1095 	return result;
1096 }
1097 
var_key_test(unsigned int r,const uint8_t * in,const uint8_t * out)1098 int var_key_test(unsigned int r, const uint8_t *in, const uint8_t *out)
1099 {
1100 	int result = TC_PASS;
1101 
1102 	const uint8_t plaintext[NUM_OF_NIST_KEYS] = {
1103 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1104 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1105 	};
1106 	uint8_t ciphertext[NUM_OF_NIST_KEYS];
1107 	struct tc_aes_key_sched_struct s;
1108 
1109 	(void)tc_aes128_set_encrypt_key(&s, in);
1110 
1111 	(void)tc_aes_encrypt(ciphertext, plaintext, &s);
1112 	result = check_result(r, out, NUM_OF_NIST_KEYS, ciphertext,
1113 			      sizeof(ciphertext));
1114 
1115 	return result;
1116 }
1117 
1118 /*
1119  * All NIST tests with variable key and fixed text.
1120  */
test_4(void)1121 int test_4(void)
1122 {
1123 	int result = TC_PASS;
1124 	const struct kat_table kat_tbl[NUM_OF_FIXED_KEYS] = {
1125 		{{
1126 				0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1127 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1128 			}, {
1129 				0x0e, 0xdd, 0x33, 0xd3, 0xc6, 0x21, 0xe5, 0x46,
1130 				0x45, 0x5b, 0xd8, 0xba, 0x14, 0x18, 0xbe, 0xc8
1131 			} },
1132 		{{
1133 				0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1134 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1135 			}, {
1136 				0x4b, 0xc3, 0xf8, 0x83, 0x45, 0x0c, 0x11, 0x3c,
1137 				0x64, 0xca, 0x42, 0xe1, 0x11, 0x2a, 0x9e, 0x87
1138 			} },
1139 		{{
1140 				0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1141 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1142 			}, {
1143 				0x72, 0xa1, 0xda, 0x77, 0x0f, 0x5d, 0x7a, 0xc4,
1144 				0xc9, 0xef, 0x94, 0xd8, 0x22, 0xaf, 0xfd, 0x97
1145 			} },
1146 		{{
1147 				0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1148 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1149 			}, {
1150 				0x97, 0x00, 0x14, 0xd6, 0x34, 0xe2, 0xb7, 0x65,
1151 				0x07, 0x77, 0xe8, 0xe8, 0x4d, 0x03, 0xcc, 0xd8
1152 			} },
1153 		{{
1154 				0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1155 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1156 			}, {
1157 				0xf1, 0x7e, 0x79, 0xae, 0xd0, 0xdb, 0x7e, 0x27,
1158 				0x9e, 0x95, 0x5b, 0x5f, 0x49, 0x38, 0x75, 0xa7
1159 			} },
1160 		{{
1161 				0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1162 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1163 			}, {
1164 				0x9e, 0xd5, 0xa7, 0x51, 0x36, 0xa9, 0x40, 0xd0,
1165 				0x96, 0x3d, 0xa3, 0x79, 0xdb, 0x4a, 0xf2, 0x6a
1166 			} },
1167 		{{
1168 				0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1169 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1170 			}, {
1171 				0xc4, 0x29, 0x5f, 0x83, 0x46, 0x5c, 0x77, 0x55,
1172 				0xe8, 0xfa, 0x36, 0x4b, 0xac, 0x6a, 0x7e, 0xa5
1173 			} },
1174 		{{
1175 				0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1176 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1177 			}, {
1178 				0xb1, 0xd7, 0x58, 0x25, 0x6b, 0x28, 0xfd, 0x85,
1179 				0x0a, 0xd4, 0x94, 0x42, 0x08, 0xcf, 0x11, 0x55
1180 			} },
1181 		{{
1182 				0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1183 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1184 			}, {
1185 				0x42, 0xff, 0xb3, 0x4c, 0x74, 0x3d, 0xe4, 0xd8,
1186 				0x8c, 0xa3, 0x80, 0x11, 0xc9, 0x90, 0x89, 0x0b
1187 			} },
1188 		{{
1189 				0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1190 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1191 			}, {
1192 				0x99, 0x58, 0xf0, 0xec, 0xea, 0x8b, 0x21, 0x72,
1193 				0xc0, 0xc1, 0x99, 0x5f, 0x91, 0x82, 0xc0, 0xf3
1194 			} },
1195 		{{
1196 				0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1197 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1198 			}, {
1199 				0x95, 0x6d, 0x77, 0x98, 0xfa, 0xc2, 0x0f, 0x82,
1200 				0xa8, 0x82, 0x3f, 0x98, 0x4d, 0x06, 0xf7, 0xf5
1201 			} },
1202 		{{
1203 				0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1204 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1205 			}, {
1206 				0xa0, 0x1b, 0xf4, 0x4f, 0x2d, 0x16, 0xbe, 0x92,
1207 				0x8c, 0xa4, 0x4a, 0xaf, 0x7b, 0x9b, 0x10, 0x6b
1208 			} },
1209 		{{
1210 				0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1211 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1212 			}, {
1213 				0xb5, 0xf1, 0xa3, 0x3e, 0x50, 0xd4, 0x0d, 0x10,
1214 				0x37, 0x64, 0xc7, 0x6b, 0xd4, 0xc6, 0xb6, 0xf8
1215 			} },
1216 		{{
1217 				0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1218 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1219 			}, {
1220 				0x26, 0x37, 0x05, 0x0c, 0x9f, 0xc0, 0xd4, 0x81,
1221 				0x7e, 0x2d, 0x69, 0xde, 0x87, 0x8a, 0xee, 0x8d
1222 			} },
1223 		{{
1224 				0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1225 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1226 			}, {
1227 				0x11, 0x3e, 0xcb, 0xe4, 0xa4, 0x53, 0x26, 0x9a,
1228 				0x0d, 0xd2, 0x60, 0x69, 0x46, 0x7f, 0xb5, 0xb5
1229 			} },
1230 		{{
1231 				0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1232 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1233 			}, {
1234 				0x97, 0xd0, 0x75, 0x4f, 0xe6, 0x8f, 0x11, 0xb9,
1235 				0xe3, 0x75, 0xd0, 0x70, 0xa6, 0x08, 0xc8, 0x84
1236 			} },
1237 		{{
1238 				0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
1239 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1240 			}, {
1241 				0xc6, 0xa0, 0xb3, 0xe9, 0x98, 0xd0, 0x50, 0x68,
1242 				0xa5, 0x39, 0x97, 0x78, 0x40, 0x52, 0x00, 0xb4
1243 			} },
1244 		{{
1245 				0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
1246 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1247 			}, {
1248 				0xdf, 0x55, 0x6a, 0x33, 0x43, 0x8d, 0xb8, 0x7b,
1249 				0xc4, 0x1b, 0x17, 0x52, 0xc5, 0x5e, 0x5e, 0x49
1250 			} },
1251 		{{
1252 				0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
1253 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1254 			}, {
1255 				0x90, 0xfb, 0x12, 0x8d, 0x3a, 0x1a, 0xf6, 0xe5,
1256 				0x48, 0x52, 0x1b, 0xb9, 0x62, 0xbf, 0x1f, 0x05
1257 			} },
1258 		{{
1259 				0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
1260 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1261 			}, {
1262 				0x26, 0x29, 0x8e, 0x9c, 0x1d, 0xb5, 0x17, 0xc2,
1263 				0x15, 0xfa, 0xdf, 0xb7, 0xd2, 0xa8, 0xd6, 0x91
1264 			} },
1265 		{{
1266 				0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
1267 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1268 			}, {
1269 				0xa6, 0xcb, 0x76, 0x1d, 0x61, 0xf8, 0x29, 0x2d,
1270 				0x0d, 0xf3, 0x93, 0xa2, 0x79, 0xad, 0x03, 0x80
1271 			} },
1272 		{{
1273 				0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
1274 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1275 			}, {
1276 				0x12, 0xac, 0xd8, 0x9b, 0x13, 0xcd, 0x5f, 0x87,
1277 				0x26, 0xe3, 0x4d, 0x44, 0xfd, 0x48, 0x61, 0x08
1278 			} },
1279 		{{
1280 				0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
1281 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1282 			}, {
1283 				0x95, 0xb1, 0x70, 0x3f, 0xc5, 0x7b, 0xa0, 0x9f,
1284 				0xe0, 0xc3, 0x58, 0x0f, 0xeb, 0xdd, 0x7e, 0xd4
1285 			} },
1286 		{{
1287 				0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
1288 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1289 			}, {
1290 				0xde, 0x11, 0x72, 0x2d, 0x89, 0x3e, 0x9f, 0x91,
1291 				0x21, 0xc3, 0x81, 0xbe, 0xcc, 0x1d, 0xa5, 0x9a
1292 			} },
1293 		{{
1294 				0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
1295 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1296 			}, {
1297 				0x6d, 0x11, 0x4c, 0xcb, 0x27, 0xbf, 0x39, 0x10,
1298 				0x12, 0xe8, 0x97, 0x4c, 0x54, 0x6d, 0x9b, 0xf2
1299 			} },
1300 		{{
1301 				0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
1302 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1303 			}, {
1304 				0x5c, 0xe3, 0x7e, 0x17, 0xeb, 0x46, 0x46, 0xec,
1305 				0xfa, 0xc2, 0x9b, 0x9c, 0xc3, 0x8d, 0x93, 0x40
1306 			} },
1307 		{{
1308 				0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
1309 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1310 			}, {
1311 				0x18, 0xc1, 0xb6, 0xe2, 0x15, 0x71, 0x22, 0x05,
1312 				0x6d, 0x02, 0x43, 0xd8, 0xa1, 0x65, 0xcd, 0xdb
1313 			} },
1314 		{{
1315 				0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
1316 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1317 			}, {
1318 				0x99, 0x69, 0x3e, 0x6a, 0x59, 0xd1, 0x36, 0x6c,
1319 				0x74, 0xd8, 0x23, 0x56, 0x2d, 0x7e, 0x14, 0x31
1320 			} },
1321 		{{
1322 				0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00,
1323 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1324 			}, {
1325 				0x6c, 0x7c, 0x64, 0xdc, 0x84, 0xa8, 0xbb, 0xa7,
1326 				0x58, 0xed, 0x17, 0xeb, 0x02, 0x5a, 0x57, 0xe3
1327 			} },
1328 		{{
1329 				0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
1330 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1331 			}, {
1332 				0xe1, 0x7b, 0xc7, 0x9f, 0x30, 0xea, 0xab, 0x2f,
1333 				0xac, 0x2c, 0xbb, 0xe3, 0x45, 0x8d, 0x68, 0x7a
1334 			} },
1335 		{{
1336 				0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
1337 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1338 			}, {
1339 				0x11, 0x14, 0xbc, 0x20, 0x28, 0x00, 0x9b, 0x92,
1340 				0x3f, 0x0b, 0x01, 0x91, 0x5c, 0xe5, 0xe7, 0xc4
1341 			} },
1342 		{{
1343 				0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
1344 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1345 			}, {
1346 				0x9c, 0x28, 0x52, 0x4a, 0x16, 0xa1, 0xe1, 0xc1,
1347 				0x45, 0x29, 0x71, 0xca, 0xa8, 0xd1, 0x34, 0x76
1348 			} },
1349 		{{
1350 				0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00,
1351 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1352 			}, {
1353 				0xed, 0x62, 0xe1, 0x63, 0x63, 0x63, 0x83, 0x60,
1354 				0xfd, 0xd6, 0xad, 0x62, 0x11, 0x27, 0x94, 0xf0
1355 			} },
1356 		{{
1357 				0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00,
1358 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1359 			}, {
1360 				0x5a, 0x86, 0x88, 0xf0, 0xb2, 0xa2, 0xc1, 0x62,
1361 				0x24, 0xc1, 0x61, 0x65, 0x8f, 0xfd, 0x40, 0x44
1362 			} },
1363 		{{
1364 				0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00,
1365 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1366 			}, {
1367 				0x23, 0xf7, 0x10, 0x84, 0x2b, 0x9b, 0xb9, 0xc3,
1368 				0x2f, 0x26, 0x64, 0x8c, 0x78, 0x68, 0x07, 0xca
1369 			} },
1370 		{{
1371 				0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
1372 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1373 			}, {
1374 				0x44, 0xa9, 0x8b, 0xf1, 0x1e, 0x16, 0x3f, 0x63,
1375 				0x2c, 0x47, 0xec, 0x6a, 0x49, 0x68, 0x3a, 0x89
1376 			} },
1377 		{{
1378 				0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00,
1379 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1380 			}, {
1381 				0x0f, 0x18, 0xaf, 0xf9, 0x42, 0x74, 0x69, 0x6d,
1382 				0x9b, 0x61, 0x84, 0x8b, 0xd5, 0x0a, 0xc5, 0xe5
1383 			} },
1384 		{{
1385 				0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00,
1386 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1387 			}, {
1388 				0x82, 0x40, 0x85, 0x71, 0xc3, 0xe2, 0x42, 0x45,
1389 				0x40, 0x20, 0x7f, 0x83, 0x3b, 0x6d, 0xda, 0x69
1390 			} },
1391 		{{
1392 				0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
1393 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1394 			}, {
1395 				0x30, 0x3f, 0xf9, 0x96, 0x94, 0x7f, 0x0c, 0x7d,
1396 				0x1f, 0x43, 0xc8, 0xf3, 0x02, 0x7b, 0x9b, 0x75
1397 			} },
1398 		{{
1399 				0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
1400 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1401 			}, {
1402 				0x7d, 0xf4, 0xda, 0xf4, 0xad, 0x29, 0xa3, 0x61,
1403 				0x5a, 0x9b, 0x6e, 0xce, 0x5c, 0x99, 0x51, 0x8a
1404 			} },
1405 		{{
1406 				0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
1407 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1408 			}, {
1409 				0xc7, 0x29, 0x54, 0xa4, 0x8d, 0x07, 0x74, 0xdb,
1410 				0x0b, 0x49, 0x71, 0xc5, 0x26, 0x26, 0x04, 0x15
1411 			} },
1412 		{{
1413 				0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
1414 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1415 			}, {
1416 				0x1d, 0xf9, 0xb7, 0x61, 0x12, 0xdc, 0x65, 0x31,
1417 				0xe0, 0x7d, 0x2c, 0xfd, 0xa0, 0x44, 0x11, 0xf0
1418 			} },
1419 		{{
1420 				0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
1421 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1422 			}, {
1423 				0x8e, 0x4d, 0x8e, 0x69, 0x91, 0x19, 0xe1, 0xfc,
1424 				0x87, 0x54, 0x5a, 0x64, 0x7f, 0xb1, 0xd3, 0x4f
1425 			} },
1426 		{{
1427 				0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00,
1428 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1429 			}, {
1430 				0xe6, 0xc4, 0x80, 0x7a, 0xe1, 0x1f, 0x36, 0xf0,
1431 				0x91, 0xc5, 0x7d, 0x9f, 0xb6, 0x85, 0x48, 0xd1
1432 			} },
1433 		{{
1434 				0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
1435 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1436 			}, {
1437 				0x8e, 0xbf, 0x73, 0xaa, 0xd4, 0x9c, 0x82, 0x00,
1438 				0x7f, 0x77, 0xa5, 0xc1, 0xcc, 0xec, 0x6a, 0xb4
1439 			} },
1440 		{{
1441 				0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
1442 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1443 			}, {
1444 				0x4f, 0xb2, 0x88, 0xcc, 0x20, 0x40, 0x04, 0x90,
1445 				0x01, 0xd2, 0xc7, 0x58, 0x5a, 0xd1, 0x23, 0xfc
1446 			} },
1447 		{{
1448 				0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
1449 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1450 			}, {
1451 				0x04, 0x49, 0x71, 0x10, 0xef, 0xb9, 0xdc, 0xeb,
1452 				0x13, 0xe2, 0xb1, 0x3f, 0xb4, 0x46, 0x55, 0x64
1453 			} },
1454 		{{
1455 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1456 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1457 			}, {
1458 				0x75, 0x55, 0x0e, 0x6c, 0xb5, 0xa8, 0x8e, 0x49,
1459 				0x63, 0x4c, 0x9a, 0xb6, 0x9e, 0xda, 0x04, 0x30
1460 			} },
1461 		{{
1462 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
1463 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1464 			}, {
1465 				0xb6, 0x76, 0x84, 0x73, 0xce, 0x98, 0x43, 0xea,
1466 				0x66, 0xa8, 0x14, 0x05, 0xdd, 0x50, 0xb3, 0x45
1467 			} },
1468 		{{
1469 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
1470 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1471 			}, {
1472 				0xcb, 0x2f, 0x43, 0x03, 0x83, 0xf9, 0x08, 0x4e,
1473 				0x03, 0xa6, 0x53, 0x57, 0x1e, 0x06, 0x5d, 0xe6
1474 			} },
1475 		{{
1476 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
1477 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1478 			}, {
1479 				0xff, 0x4e, 0x66, 0xc0, 0x7b, 0xae, 0x3e, 0x79,
1480 				0xfb, 0x7d, 0x21, 0x08, 0x47, 0xa3, 0xb0, 0xba
1481 			} },
1482 		{{
1483 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
1484 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1485 			}, {
1486 				0x7b, 0x90, 0x78, 0x51, 0x25, 0x50, 0x5f, 0xad,
1487 				0x59, 0xb1, 0x3c, 0x18, 0x6d, 0xd6, 0x6c, 0xe3
1488 			} },
1489 		{{
1490 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
1491 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1492 			}, {
1493 				0x8b, 0x52, 0x7a, 0x6a, 0xeb, 0xda, 0xec, 0x9e,
1494 				0xae, 0xf8, 0xed, 0xa2, 0xcb, 0x77, 0x83, 0xe5
1495 			} },
1496 		{{
1497 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
1498 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1499 			}, {
1500 				0x43, 0xfd, 0xaf, 0x53, 0xeb, 0xbc, 0x98, 0x80,
1501 				0xc2, 0x28, 0x61, 0x7d, 0x6a, 0x9b, 0x54, 0x8b
1502 			} },
1503 		{{
1504 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
1505 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1506 			}, {
1507 				0x53, 0x78, 0x61, 0x04, 0xb9, 0x74, 0x4b, 0x98,
1508 				0xf0, 0x52, 0xc4, 0x6f, 0x1c, 0x85, 0x0d, 0x0b
1509 			} },
1510 		{{
1511 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
1512 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1513 			}, {
1514 				0xb5, 0xab, 0x30, 0x13, 0xdd, 0x1e, 0x61, 0xdf,
1515 				0x06, 0xcb, 0xaf, 0x34, 0xca, 0x2a, 0xee, 0x78
1516 			} },
1517 		{{
1518 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
1519 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1520 			}, {
1521 				0x74, 0x70, 0x46, 0x9b, 0xe9, 0x72, 0x30, 0x30,
1522 				0xfd, 0xcc, 0x73, 0xa8, 0xcd, 0x4f, 0xbb, 0x10
1523 			} },
1524 		{{
1525 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
1526 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1527 			}, {
1528 				0xa3, 0x5a, 0x63, 0xf5, 0x34, 0x3e, 0xbe, 0x9e,
1529 				0xf8, 0x16, 0x7b, 0xcb, 0x48, 0xad, 0x12, 0x2e
1530 			} },
1531 		{{
1532 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
1533 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1534 			}, {
1535 				0xfd, 0x86, 0x87, 0xf0, 0x75, 0x7a, 0x21, 0x0e,
1536 				0x9f, 0xdf, 0x18, 0x12, 0x04, 0xc3, 0x08, 0x63
1537 			} },
1538 		{{
1539 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
1540 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1541 			}, {
1542 				0x7a, 0x18, 0x1e, 0x84, 0xbd, 0x54, 0x57, 0xd2,
1543 				0x6a, 0x88, 0xfb, 0xae, 0x96, 0x01, 0x8f, 0xb0
1544 			} },
1545 		{{
1546 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
1547 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1548 			}, {
1549 				0x65, 0x33, 0x17, 0xb9, 0x36, 0x2b, 0x6f, 0x9b,
1550 				0x9e, 0x1a, 0x58, 0x0e, 0x68, 0xd4, 0x94, 0xb5
1551 			} },
1552 		{{
1553 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
1554 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1555 			}, {
1556 				0x99, 0x5c, 0x9d, 0xc0, 0xb6, 0x89, 0xf0, 0x3c,
1557 				0x45, 0x86, 0x7b, 0x5f, 0xaa, 0x5c, 0x18, 0xd1
1558 			} },
1559 		{{
1560 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
1561 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1562 			}, {
1563 				0x77, 0xa4, 0xd9, 0x6d, 0x56, 0xdd, 0xa3, 0x98,
1564 				0xb9, 0xaa, 0xbe, 0xcf, 0xc7, 0x57, 0x29, 0xfd
1565 			} },
1566 		{{
1567 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1568 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1569 			}, {
1570 				0x84, 0xbe, 0x19, 0xe0, 0x53, 0x63, 0x5f, 0x09,
1571 				0xf2, 0x66, 0x5e, 0x7b, 0xae, 0x85, 0xb4, 0x2d
1572 			} },
1573 		{{
1574 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1575 				0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1576 			}, {
1577 				0x32, 0xcd, 0x65, 0x28, 0x42, 0x92, 0x6a, 0xea,
1578 				0x4a, 0xa6, 0x13, 0x7b, 0xb2, 0xbe, 0x2b, 0x5e
1579 			} },
1580 		{{
1581 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1582 				0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1583 			}, {
1584 				0x49, 0x3d, 0x4a, 0x4f, 0x38, 0xeb, 0xb3, 0x37,
1585 				0xd1, 0x0a, 0xa8, 0x4e, 0x91, 0x71, 0xa5, 0x54
1586 			} },
1587 		{{
1588 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1589 				0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1590 			}, {
1591 				0xd9, 0xbf, 0xf7, 0xff, 0x45, 0x4b, 0x0e, 0xc5,
1592 				0xa4, 0xa2, 0xa6, 0x95, 0x66, 0xe2, 0xcb, 0x84
1593 			} },
1594 		{{
1595 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1596 				0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1597 			}, {
1598 				0x35, 0x35, 0xd5, 0x65, 0xac, 0xe3, 0xf3, 0x1e,
1599 				0xb2, 0x49, 0xba, 0x2c, 0xc6, 0x76, 0x5d, 0x7a
1600 			} },
1601 		{{
1602 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1603 				0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1604 			}, {
1605 				0xf6, 0x0e, 0x91, 0xfc, 0x32, 0x69, 0xee, 0xcf,
1606 				0x32, 0x31, 0xc6, 0xe9, 0x94, 0x56, 0x97, 0xc6
1607 			} },
1608 		{{
1609 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1610 				0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1611 			}, {
1612 				0xab, 0x69, 0xcf, 0xad, 0xf5, 0x1f, 0x8e, 0x60,
1613 				0x4d, 0x9c, 0xc3, 0x71, 0x82, 0xf6, 0x63, 0x5a
1614 			} },
1615 		{{
1616 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1617 				0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1618 			}, {
1619 				0x78, 0x66, 0x37, 0x3f, 0x24, 0xa0, 0xb6, 0xed,
1620 				0x56, 0xe0, 0xd9, 0x6f, 0xcd, 0xaf, 0xb8, 0x77
1621 			} },
1622 		{{
1623 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1624 				0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1625 			}, {
1626 				0x1e, 0xa4, 0x48, 0xc2, 0xaa, 0xc9, 0x54, 0xf5,
1627 				0xd8, 0x12, 0xe9, 0xd7, 0x84, 0x94, 0x44, 0x6a
1628 			} },
1629 		{{
1630 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1631 				0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1632 			}, {
1633 				0xac, 0xc5, 0x59, 0x9d, 0xd8, 0xac, 0x02, 0x23,
1634 				0x9a, 0x0f, 0xef, 0x4a, 0x36, 0xdd, 0x16, 0x68
1635 			} },
1636 		{{
1637 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1638 				0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1639 			}, {
1640 				0xd8, 0x76, 0x44, 0x68, 0xbb, 0x10, 0x38, 0x28,
1641 				0xcf, 0x7e, 0x14, 0x73, 0xce, 0x89, 0x50, 0x73
1642 			} },
1643 		{{
1644 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1645 				0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1646 			}, {
1647 				0x1b, 0x0d, 0x02, 0x89, 0x36, 0x83, 0xb9, 0xf1,
1648 				0x80, 0x45, 0x8e, 0x4a, 0xa6, 0xb7, 0x39, 0x82
1649 			} },
1650 		{{
1651 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1652 				0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1653 			}, {
1654 				0x96, 0xd9, 0xb0, 0x17, 0xd3, 0x02, 0xdf, 0x41,
1655 				0x0a, 0x93, 0x7d, 0xcd, 0xb8, 0xbb, 0x6e, 0x43
1656 			} },
1657 		{{
1658 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1659 				0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1660 			}, {
1661 				0xef, 0x16, 0x23, 0xcc, 0x44, 0x31, 0x3c, 0xff,
1662 				0x44, 0x0b, 0x15, 0x94, 0xa7, 0xe2, 0x1c, 0xc6
1663 			} },
1664 		{{
1665 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1666 				0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1667 			}, {
1668 				0x28, 0x4c, 0xa2, 0xfa, 0x35, 0x80, 0x7b, 0x8b,
1669 				0x0a, 0xe4, 0xd1, 0x9e, 0x11, 0xd7, 0xdb, 0xd7
1670 			} },
1671 		{{
1672 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1673 				0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1674 			}, {
1675 				0xf2, 0xe9, 0x76, 0x87, 0x57, 0x55, 0xf9, 0x40,
1676 				0x1d, 0x54, 0xf3, 0x6e, 0x2a, 0x23, 0xa5, 0x94
1677 			} },
1678 		{{
1679 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1680 				0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1681 			}, {
1682 				0xec, 0x19, 0x8a, 0x18, 0xe1, 0x0e, 0x53, 0x24,
1683 				0x03, 0xb7, 0xe2, 0x08, 0x87, 0xc8, 0xdd, 0x80
1684 			} },
1685 		{{
1686 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1687 				0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
1688 			}, {
1689 				0x54, 0x5d, 0x50, 0xeb, 0xd9, 0x19, 0xe4, 0xa6,
1690 				0x94, 0x9d, 0x96, 0xad, 0x47, 0xe4, 0x6a, 0x80
1691 			} },
1692 		{{
1693 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1694 				0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00
1695 			}, {
1696 				0xdb, 0xdf, 0xb5, 0x27, 0x06, 0x0e, 0x0a, 0x71,
1697 				0x00, 0x9c, 0x7b, 0xb0, 0xc6, 0x8f, 0x1d, 0x44
1698 			} },
1699 		{{
1700 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1701 				0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00
1702 			}, {
1703 				0x9c, 0xfa, 0x13, 0x22, 0xea, 0x33, 0xda, 0x21,
1704 				0x73, 0xa0, 0x24, 0xf2, 0xff, 0x0d, 0x89, 0x6d
1705 			} },
1706 		{{
1707 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1708 				0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00
1709 			}, {
1710 				0x87, 0x85, 0xb1, 0xa7, 0x5b, 0x0f, 0x3b, 0xd9,
1711 				0x58, 0xdc, 0xd0, 0xe2, 0x93, 0x18, 0xc5, 0x21
1712 			} },
1713 		{{
1714 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1715 				0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00
1716 			}, {
1717 				0x38, 0xf6, 0x7b, 0x9e, 0x98, 0xe4, 0xa9, 0x7b,
1718 				0x6d, 0xf0, 0x30, 0xa9, 0xfc, 0xdd, 0x01, 0x04
1719 			} },
1720 		{{
1721 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1722 				0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00
1723 			}, {
1724 				0x19, 0x2a, 0xff, 0xfb, 0x2c, 0x88, 0x0e, 0x82,
1725 				0xb0, 0x59, 0x26, 0xd0, 0xfc, 0x6c, 0x44, 0x8b
1726 			} },
1727 		{{
1728 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1729 				0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00
1730 			}, {
1731 				0x6a, 0x79, 0x80, 0xce, 0x7b, 0x10, 0x5c, 0xf5,
1732 				0x30, 0x95, 0x2d, 0x74, 0xda, 0xaf, 0x79, 0x8c
1733 			} },
1734 		{{
1735 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1736 				0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
1737 			}, {
1738 				0xea, 0x36, 0x95, 0xe1, 0x35, 0x1b, 0x9d, 0x68,
1739 				0x58, 0xbd, 0x95, 0x8c, 0xf5, 0x13, 0xef, 0x6c
1740 			} },
1741 		{{
1742 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1743 				0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00
1744 			}, {
1745 				0x6d, 0xa0, 0x49, 0x0b, 0xa0, 0xba, 0x03, 0x43,
1746 				0xb9, 0x35, 0x68, 0x1d, 0x2c, 0xce, 0x5b, 0xa1
1747 			} },
1748 		{{
1749 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1750 				0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00
1751 			}, {
1752 				0xf0, 0xea, 0x23, 0xaf, 0x08, 0x53, 0x40, 0x11,
1753 				0xc6, 0x00, 0x09, 0xab, 0x29, 0xad, 0xa2, 0xf1
1754 			} },
1755 		{{
1756 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1757 				0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00
1758 			}, {
1759 				0xff, 0x13, 0x80, 0x6c, 0xf1, 0x9c, 0xc3, 0x87,
1760 				0x21, 0x55, 0x4d, 0x7c, 0x0f, 0xcd, 0xcd, 0x4b
1761 			} },
1762 		{{
1763 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1764 				0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00
1765 			}, {
1766 				0x68, 0x38, 0xaf, 0x1f, 0x4f, 0x69, 0xba, 0xe9,
1767 				0xd8, 0x5d, 0xd1, 0x88, 0xdc, 0xdf, 0x06, 0x88
1768 			} },
1769 		{{
1770 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1771 				0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00
1772 			}, {
1773 				0x36, 0xcf, 0x44, 0xc9, 0x2d, 0x55, 0x0b, 0xfb,
1774 				0x1e, 0xd2, 0x8e, 0xf5, 0x83, 0xdd, 0xf5, 0xd7
1775 			} },
1776 		{{
1777 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1778 				0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00
1779 			}, {
1780 				0xd0, 0x6e, 0x31, 0x95, 0xb5, 0x37, 0x6f, 0x10,
1781 				0x9d, 0x5c, 0x4e, 0xc6, 0xc5, 0xd6, 0x2c, 0xed
1782 			} },
1783 		{{
1784 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1785 				0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00
1786 			}, {
1787 				0xc4, 0x40, 0xde, 0x01, 0x4d, 0x3d, 0x61, 0x07,
1788 				0x07, 0x27, 0x9b, 0x13, 0x24, 0x2a, 0x5c, 0x36
1789 			} },
1790 		{{
1791 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1792 				0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00
1793 			}, {
1794 				0xf0, 0xc5, 0xc6, 0xff, 0xa5, 0xe0, 0xbd, 0x3a,
1795 				0x94, 0xc8, 0x8f, 0x6b, 0x6f, 0x7c, 0x16, 0xb9
1796 			} },
1797 		{{
1798 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1799 				0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00
1800 			}, {
1801 				0x3e, 0x40, 0xc3, 0x90, 0x1c, 0xd7, 0xef, 0xfc,
1802 				0x22, 0xbf, 0xfc, 0x35, 0xde, 0xe0, 0xb4, 0xd9
1803 			} },
1804 		{{
1805 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1806 				0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00
1807 			}, {
1808 				0xb6, 0x33, 0x05, 0xc7, 0x2b, 0xed, 0xfa, 0xb9,
1809 				0x73, 0x82, 0xc4, 0x06, 0xd0, 0xc4, 0x9b, 0xc6
1810 			} },
1811 		{{
1812 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1813 				0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00
1814 			}, {
1815 				0x36, 0xbb, 0xaa, 0xb2, 0x2a, 0x6b, 0xd4, 0x92,
1816 				0x5a, 0x99, 0xa2, 0xb4, 0x08, 0xd2, 0xdb, 0xae
1817 			} },
1818 		{{
1819 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1820 				0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00
1821 			}, {
1822 				0x30, 0x7c, 0x5b, 0x8f, 0xcd, 0x05, 0x33, 0xab,
1823 				0x98, 0xbc, 0x51, 0xe2, 0x7a, 0x6c, 0xe4, 0x61
1824 			} },
1825 		{{
1826 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1827 				0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00
1828 			}, {
1829 				0x82, 0x9c, 0x04, 0xff, 0x4c, 0x07, 0x51, 0x3c,
1830 				0x0b, 0x3e, 0xf0, 0x5c, 0x03, 0xe3, 0x37, 0xb5
1831 			} },
1832 		{{
1833 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1834 				0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00
1835 			}, {
1836 				0xf1, 0x7a, 0xf0, 0xe8, 0x95, 0xdd, 0xa5, 0xeb,
1837 				0x98, 0xef, 0xc6, 0x80, 0x66, 0xe8, 0x4c, 0x54
1838 			} },
1839 		{{
1840 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1841 				0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00
1842 			}, {
1843 				0x27, 0x71, 0x67, 0xf3, 0x81, 0x2a, 0xff, 0xf1,
1844 				0xff, 0xac, 0xb4, 0xa9, 0x34, 0x37, 0x9f, 0xc3
1845 			} },
1846 		{{
1847 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1848 				0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00
1849 			}, {
1850 				0x2c, 0xb1, 0xdc, 0x3a, 0x9c, 0x72, 0x97, 0x2e,
1851 				0x42, 0x5a, 0xe2, 0xef, 0x3e, 0xb5, 0x97, 0xcd
1852 			} },
1853 		{{
1854 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1855 				0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00
1856 			}, {
1857 				0x36, 0xae, 0xaa, 0x3a, 0x21, 0x3e, 0x96, 0x8d,
1858 				0x4b, 0x5b, 0x67, 0x9d, 0x3a, 0x2c, 0x97, 0xfe
1859 			} },
1860 		{{
1861 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1862 				0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00
1863 			}, {
1864 				0x92, 0x41, 0xda, 0xca, 0x4f, 0xdd, 0x03, 0x4a,
1865 				0x82, 0x37, 0x2d, 0xb5, 0x0e, 0x1a, 0x0f, 0x3f
1866 			} },
1867 		{{
1868 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1869 				0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00
1870 			}, {
1871 				0xc1, 0x45, 0x74, 0xd9, 0xcd, 0x00, 0xcf, 0x2b,
1872 				0x5a, 0x7f, 0x77, 0xe5, 0x3c, 0xd5, 0x78, 0x85
1873 			} },
1874 		{{
1875 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1876 				0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00
1877 			}, {
1878 				0x79, 0x3d, 0xe3, 0x92, 0x36, 0x57, 0x0a, 0xba,
1879 				0x83, 0xab, 0x9b, 0x73, 0x7c, 0xb5, 0x21, 0xc9
1880 			} },
1881 		{{
1882 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1883 				0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00
1884 			}, {
1885 				0x16, 0x59, 0x1c, 0x0f, 0x27, 0xd6, 0x0e, 0x29,
1886 				0xb8, 0x5a, 0x96, 0xc3, 0x38, 0x61, 0xa7, 0xef
1887 			} },
1888 		{{
1889 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1890 				0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00
1891 			}, {
1892 				0x44, 0xfb, 0x5c, 0x4d, 0x4f, 0x5c, 0xb7, 0x9b,
1893 				0xe5, 0xc1, 0x74, 0xa3, 0xb1, 0xc9, 0x73, 0x48
1894 			} },
1895 		{{
1896 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1897 				0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00
1898 			}, {
1899 				0x67, 0x4d, 0x2b, 0x61, 0x63, 0x3d, 0x16, 0x2b,
1900 				0xe5, 0x9d, 0xde, 0x04, 0x22, 0x2f, 0x47, 0x40
1901 			} },
1902 		{{
1903 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1904 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00
1905 			}, {
1906 				0xb4, 0x75, 0x0f, 0xf2, 0x63, 0xa6, 0x5e, 0x1f,
1907 				0x9e, 0x92, 0x4c, 0xcf, 0xd9, 0x8f, 0x3e, 0x37
1908 			} },
1909 		{{
1910 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1911 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00
1912 			}, {
1913 				0x62, 0xd0, 0x66, 0x2d, 0x6e, 0xae, 0xdd, 0xed,
1914 				0xeb, 0xae, 0x7f, 0x7e, 0xa3, 0xa4, 0xf6, 0xb6
1915 			} },
1916 		{{
1917 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1918 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00
1919 			}, {
1920 				0x70, 0xc4, 0x6b, 0xb3, 0x06, 0x92, 0xbe, 0x65,
1921 				0x7f, 0x7e, 0xaa, 0x93, 0xeb, 0xad, 0x98, 0x97
1922 			} },
1923 		{{
1924 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1925 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00
1926 			}, {
1927 				0x32, 0x39, 0x94, 0xcf, 0xb9, 0xda, 0x28, 0x5a,
1928 				0x5d, 0x96, 0x42, 0xe1, 0x75, 0x9b, 0x22, 0x4a
1929 			} },
1930 		{{
1931 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1932 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00
1933 			}, {
1934 				0x1d, 0xbf, 0x57, 0x87, 0x7b, 0x7b, 0x17, 0x38,
1935 				0x5c, 0x85, 0xd0, 0xb5, 0x48, 0x51, 0xe3, 0x71
1936 			} },
1937 		{{
1938 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1939 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00
1940 			}, {
1941 				0xdf, 0xa5, 0xc0, 0x97, 0xcd, 0xc1, 0x53, 0x2a,
1942 				0xc0, 0x71, 0xd5, 0x7b, 0x1d, 0x28, 0xd1, 0xbd
1943 			} },
1944 		{{
1945 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1946 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00
1947 			}, {
1948 				0x3a, 0x0c, 0x53, 0xfa, 0x37, 0x31, 0x1f, 0xc1,
1949 				0x0b, 0xd2, 0xa9, 0x98, 0x1f, 0x51, 0x31, 0x74
1950 			} },
1951 		{{
1952 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1953 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00
1954 			}, {
1955 				0xba, 0x4f, 0x97, 0x0c, 0x0a, 0x25, 0xc4, 0x18,
1956 				0x14, 0xbd, 0xae, 0x2e, 0x50, 0x6b, 0xe3, 0xb4
1957 			} },
1958 		{{
1959 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1960 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00
1961 			}, {
1962 				0x2d, 0xce, 0x3a, 0xcb, 0x72, 0x7c, 0xd1, 0x3c,
1963 				0xcd, 0x76, 0xd4, 0x25, 0xea, 0x56, 0xe4, 0xf6
1964 			} },
1965 		{{
1966 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1967 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80
1968 			}, {
1969 				0x51, 0x60, 0x47, 0x4d, 0x50, 0x4b, 0x9b, 0x3e,
1970 				0xef, 0xb6, 0x8d, 0x35, 0xf2, 0x45, 0xf4, 0xb3
1971 			} },
1972 		{{
1973 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1974 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
1975 			}, {
1976 				0x41, 0xa8, 0xa9, 0x47, 0x76, 0x66, 0x35, 0xde,
1977 				0xc3, 0x75, 0x53, 0xd9, 0xa6, 0xc0, 0xcb, 0xb7
1978 			} },
1979 		{{
1980 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1981 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0
1982 			}, {
1983 				0x25, 0xd6, 0xcf, 0xe6, 0x88, 0x1f, 0x2b, 0xf4,
1984 				0x97, 0xdd, 0x14, 0xcd, 0x4d, 0xdf, 0x44, 0x5b
1985 			} },
1986 		{{
1987 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1988 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0
1989 			}, {
1990 				0x41, 0xc7, 0x8c, 0x13, 0x5e, 0xd9, 0xe9, 0x8c,
1991 				0x09, 0x66, 0x40, 0x64, 0x72, 0x65, 0xda, 0x1e
1992 			} },
1993 		{{
1994 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1995 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8
1996 			}, {
1997 				0x5a, 0x4d, 0x40, 0x4d, 0x89, 0x17, 0xe3, 0x53,
1998 				0xe9, 0x2a, 0x21, 0x07, 0x2c, 0x3b, 0x23, 0x05
1999 			} },
2000 		{{
2001 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2002 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc
2003 			}, {
2004 				0x02, 0xbc, 0x96, 0x84, 0x6b, 0x3f, 0xdc, 0x71,
2005 				0x64, 0x3f, 0x38, 0x4c, 0xd3, 0xcc, 0x3e, 0xaf
2006 			} },
2007 		{{
2008 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2009 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe
2010 			}, {
2011 				0x9b, 0xa4, 0xa9, 0x14, 0x3f, 0x4e, 0x5d, 0x40,
2012 				0x48, 0x52, 0x1c, 0x4f, 0x88, 0x77, 0xd8, 0x8e
2013 			} },
2014 		{{
2015 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2016 				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
2017 			}, {
2018 				0xa1, 0xf6, 0x25, 0x8c, 0x87, 0x7d, 0x5f, 0xcd,
2019 				0x89, 0x64, 0x48, 0x45, 0x38, 0xbf, 0xc9, 0x2c
2020 			} }
2021 	};
2022 	unsigned int i;
2023 
2024 	TC_PRINT("AES128 test #4 (NIST variable-key and fixed-text):\n");
2025 
2026 	for (i = 0; i < NUM_OF_FIXED_KEYS; ++i) {
2027 		result = var_key_test(i, kat_tbl[i].in, kat_tbl[i].out);
2028 		if (result == TC_FAIL) {
2029 			break;
2030 		}
2031 
2032 	}
2033 
2034 	TC_END_RESULT(result);
2035 
2036 	return result;
2037 }
2038 
2039 /*
2040  * Main task to test AES
2041  */
main(void)2042 int main(void)
2043 {
2044 	int result = TC_PASS;
2045 
2046 	TC_START("Performing AES128 tests:");
2047 
2048 	result = test_1();
2049 	if (result == TC_FAIL) { /* terminate test */
2050 		TC_ERROR("AES128 test #1 (NIST key schedule test) failed.\n");
2051 		goto exitTest;
2052 	}
2053 	result = test_2();
2054 	if (result == TC_FAIL) { /* terminate test */
2055 		TC_ERROR("AES128 test #2 (NIST encryption test) failed.\n");
2056 		goto exitTest;
2057 	}
2058 	result = test_3();
2059 	if (result == TC_FAIL) { /* terminate test */
2060 		TC_ERROR("AES128 test #3 (NIST fixed-key and variable-text) "
2061 			 "failed.\n");
2062 		goto exitTest;
2063 	}
2064 	result = test_4();
2065 	if (result == TC_FAIL) { /* terminate test */
2066 		TC_ERROR("AES128 test #4 (NIST variable-key and fixed-text) "
2067 			 "failed.\n");
2068 		goto exitTest;
2069 	}
2070 
2071 	TC_PRINT("All AES128 tests succeeded!\n");
2072 
2073  exitTest:
2074 	TC_END_RESULT(result);
2075 	TC_END_REPORT(result);
2076 
2077 	return result;
2078 }
2079