Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / unittests / Support / SipHashTest.cpp
blob7c557eb488accbef25a92ebb47ca5ba78fbb0724
1 //===- llvm/unittest/Support/SipHashTest.cpp ------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
9 #include "llvm/Support/SipHash.h"
10 #include "llvm/ADT/ArrayRef.h"
11 #include "gtest/gtest.h"
12 #include <string.h>
14 using namespace llvm;
16 namespace {
18 // Tests from the SipHash reference implementation:
19 // https://github.com/veorq/SipHash
20 // from test.c and vectors.h, with the latter vectors at the end of the file,
21 // forward-declared here.
22 extern const uint8_t ExpectedSipHash64[64][8];
23 extern const uint8_t ExpectedSipHash128[64][16];
25 TEST(SipHashTest, SipHash_2_4_64) {
26 uint8_t K[16];
27 for (size_t KI = 0; KI < sizeof(K); ++KI)
28 K[KI] = KI;
30 uint8_t In[64], Out[8];
31 for (size_t InLen = 0; InLen < sizeof(In); ++InLen) {
32 In[InLen] = InLen;
33 getSipHash_2_4_64(ArrayRef(In, InLen), K, Out);
34 for (size_t I = 0; I < sizeof(Out); ++I)
35 EXPECT_EQ(ExpectedSipHash64[InLen][I], Out[I]);
39 TEST(SipHashTest, SipHash_2_4_128) {
40 uint8_t K[16];
41 for (size_t KI = 0; KI < sizeof(K); ++KI)
42 K[KI] = KI;
44 uint8_t In[64], Out[16];
45 for (size_t InLen = 0; InLen < sizeof(In); ++InLen) {
46 In[InLen] = InLen;
47 getSipHash_2_4_128(ArrayRef(In, InLen), K, Out);
48 for (size_t I = 0; I < sizeof(Out); ++I)
49 EXPECT_EQ(ExpectedSipHash128[InLen][I], Out[I]);
53 // Tests for the ptrauth-specific SipHash wrapper.
54 TEST(SipHashTest, PointerAuthSipHash) {
55 // Test some basic cases.
56 EXPECT_EQ(0xE793, getPointerAuthStableSipHash(""));
57 EXPECT_EQ(0xF468, getPointerAuthStableSipHash("strlen"));
58 EXPECT_EQ(0x2D15, getPointerAuthStableSipHash("_ZN1 ind; f"));
60 // Test some known strings that are already enshrined in the ABI.
61 EXPECT_EQ(0x6AE1, getPointerAuthStableSipHash("isa"));
62 EXPECT_EQ(0xB5AB, getPointerAuthStableSipHash("objc_class:superclass"));
63 EXPECT_EQ(0xC0BB, getPointerAuthStableSipHash("block_descriptor"));
64 EXPECT_EQ(0xC310, getPointerAuthStableSipHash("method_list_t"));
66 // Test limit cases where we differ from naive truncations from 64-bit hashes.
67 EXPECT_EQ(1, getPointerAuthStableSipHash("_Zptrkvttf"));
68 EXPECT_EQ(0xFFFF, getPointerAuthStableSipHash("_Zaflhllod"));
71 // Below are the unmodified expected outputs from the reference vectors.h.
73 const uint8_t ExpectedSipHash64[64][8] = {
75 0x31,
76 0x0e,
77 0x0e,
78 0xdd,
79 0x47,
80 0xdb,
81 0x6f,
82 0x72,
85 0xfd,
86 0x67,
87 0xdc,
88 0x93,
89 0xc5,
90 0x39,
91 0xf8,
92 0x74,
95 0x5a,
96 0x4f,
97 0xa9,
98 0xd9,
99 0x09,
100 0x80,
101 0x6c,
102 0x0d,
105 0x2d,
106 0x7e,
107 0xfb,
108 0xd7,
109 0x96,
110 0x66,
111 0x67,
112 0x85,
115 0xb7,
116 0x87,
117 0x71,
118 0x27,
119 0xe0,
120 0x94,
121 0x27,
122 0xcf,
125 0x8d,
126 0xa6,
127 0x99,
128 0xcd,
129 0x64,
130 0x55,
131 0x76,
132 0x18,
135 0xce,
136 0xe3,
137 0xfe,
138 0x58,
139 0x6e,
140 0x46,
141 0xc9,
142 0xcb,
145 0x37,
146 0xd1,
147 0x01,
148 0x8b,
149 0xf5,
150 0x00,
151 0x02,
152 0xab,
155 0x62,
156 0x24,
157 0x93,
158 0x9a,
159 0x79,
160 0xf5,
161 0xf5,
162 0x93,
165 0xb0,
166 0xe4,
167 0xa9,
168 0x0b,
169 0xdf,
170 0x82,
171 0x00,
172 0x9e,
175 0xf3,
176 0xb9,
177 0xdd,
178 0x94,
179 0xc5,
180 0xbb,
181 0x5d,
182 0x7a,
185 0xa7,
186 0xad,
187 0x6b,
188 0x22,
189 0x46,
190 0x2f,
191 0xb3,
192 0xf4,
195 0xfb,
196 0xe5,
197 0x0e,
198 0x86,
199 0xbc,
200 0x8f,
201 0x1e,
202 0x75,
205 0x90,
206 0x3d,
207 0x84,
208 0xc0,
209 0x27,
210 0x56,
211 0xea,
212 0x14,
215 0xee,
216 0xf2,
217 0x7a,
218 0x8e,
219 0x90,
220 0xca,
221 0x23,
222 0xf7,
225 0xe5,
226 0x45,
227 0xbe,
228 0x49,
229 0x61,
230 0xca,
231 0x29,
232 0xa1,
235 0xdb,
236 0x9b,
237 0xc2,
238 0x57,
239 0x7f,
240 0xcc,
241 0x2a,
242 0x3f,
245 0x94,
246 0x47,
247 0xbe,
248 0x2c,
249 0xf5,
250 0xe9,
251 0x9a,
252 0x69,
255 0x9c,
256 0xd3,
257 0x8d,
258 0x96,
259 0xf0,
260 0xb3,
261 0xc1,
262 0x4b,
265 0xbd,
266 0x61,
267 0x79,
268 0xa7,
269 0x1d,
270 0xc9,
271 0x6d,
272 0xbb,
275 0x98,
276 0xee,
277 0xa2,
278 0x1a,
279 0xf2,
280 0x5c,
281 0xd6,
282 0xbe,
285 0xc7,
286 0x67,
287 0x3b,
288 0x2e,
289 0xb0,
290 0xcb,
291 0xf2,
292 0xd0,
295 0x88,
296 0x3e,
297 0xa3,
298 0xe3,
299 0x95,
300 0x67,
301 0x53,
302 0x93,
305 0xc8,
306 0xce,
307 0x5c,
308 0xcd,
309 0x8c,
310 0x03,
311 0x0c,
312 0xa8,
315 0x94,
316 0xaf,
317 0x49,
318 0xf6,
319 0xc6,
320 0x50,
321 0xad,
322 0xb8,
325 0xea,
326 0xb8,
327 0x85,
328 0x8a,
329 0xde,
330 0x92,
331 0xe1,
332 0xbc,
335 0xf3,
336 0x15,
337 0xbb,
338 0x5b,
339 0xb8,
340 0x35,
341 0xd8,
342 0x17,
345 0xad,
346 0xcf,
347 0x6b,
348 0x07,
349 0x63,
350 0x61,
351 0x2e,
352 0x2f,
355 0xa5,
356 0xc9,
357 0x1d,
358 0xa7,
359 0xac,
360 0xaa,
361 0x4d,
362 0xde,
365 0x71,
366 0x65,
367 0x95,
368 0x87,
369 0x66,
370 0x50,
371 0xa2,
372 0xa6,
375 0x28,
376 0xef,
377 0x49,
378 0x5c,
379 0x53,
380 0xa3,
381 0x87,
382 0xad,
385 0x42,
386 0xc3,
387 0x41,
388 0xd8,
389 0xfa,
390 0x92,
391 0xd8,
392 0x32,
395 0xce,
396 0x7c,
397 0xf2,
398 0x72,
399 0x2f,
400 0x51,
401 0x27,
402 0x71,
405 0xe3,
406 0x78,
407 0x59,
408 0xf9,
409 0x46,
410 0x23,
411 0xf3,
412 0xa7,
415 0x38,
416 0x12,
417 0x05,
418 0xbb,
419 0x1a,
420 0xb0,
421 0xe0,
422 0x12,
425 0xae,
426 0x97,
427 0xa1,
428 0x0f,
429 0xd4,
430 0x34,
431 0xe0,
432 0x15,
435 0xb4,
436 0xa3,
437 0x15,
438 0x08,
439 0xbe,
440 0xff,
441 0x4d,
442 0x31,
445 0x81,
446 0x39,
447 0x62,
448 0x29,
449 0xf0,
450 0x90,
451 0x79,
452 0x02,
455 0x4d,
456 0x0c,
457 0xf4,
458 0x9e,
459 0xe5,
460 0xd4,
461 0xdc,
462 0xca,
465 0x5c,
466 0x73,
467 0x33,
468 0x6a,
469 0x76,
470 0xd8,
471 0xbf,
472 0x9a,
475 0xd0,
476 0xa7,
477 0x04,
478 0x53,
479 0x6b,
480 0xa9,
481 0x3e,
482 0x0e,
485 0x92,
486 0x59,
487 0x58,
488 0xfc,
489 0xd6,
490 0x42,
491 0x0c,
492 0xad,
495 0xa9,
496 0x15,
497 0xc2,
498 0x9b,
499 0xc8,
500 0x06,
501 0x73,
502 0x18,
505 0x95,
506 0x2b,
507 0x79,
508 0xf3,
509 0xbc,
510 0x0a,
511 0xa6,
512 0xd4,
515 0xf2,
516 0x1d,
517 0xf2,
518 0xe4,
519 0x1d,
520 0x45,
521 0x35,
522 0xf9,
525 0x87,
526 0x57,
527 0x75,
528 0x19,
529 0x04,
530 0x8f,
531 0x53,
532 0xa9,
535 0x10,
536 0xa5,
537 0x6c,
538 0xf5,
539 0xdf,
540 0xcd,
541 0x9a,
542 0xdb,
545 0xeb,
546 0x75,
547 0x09,
548 0x5c,
549 0xcd,
550 0x98,
551 0x6c,
552 0xd0,
555 0x51,
556 0xa9,
557 0xcb,
558 0x9e,
559 0xcb,
560 0xa3,
561 0x12,
562 0xe6,
565 0x96,
566 0xaf,
567 0xad,
568 0xfc,
569 0x2c,
570 0xe6,
571 0x66,
572 0xc7,
575 0x72,
576 0xfe,
577 0x52,
578 0x97,
579 0x5a,
580 0x43,
581 0x64,
582 0xee,
585 0x5a,
586 0x16,
587 0x45,
588 0xb2,
589 0x76,
590 0xd5,
591 0x92,
592 0xa1,
595 0xb2,
596 0x74,
597 0xcb,
598 0x8e,
599 0xbf,
600 0x87,
601 0x87,
602 0x0a,
605 0x6f,
606 0x9b,
607 0xb4,
608 0x20,
609 0x3d,
610 0xe7,
611 0xb3,
612 0x81,
615 0xea,
616 0xec,
617 0xb2,
618 0xa3,
619 0x0b,
620 0x22,
621 0xa8,
622 0x7f,
625 0x99,
626 0x24,
627 0xa4,
628 0x3c,
629 0xc1,
630 0x31,
631 0x57,
632 0x24,
635 0xbd,
636 0x83,
637 0x8d,
638 0x3a,
639 0xaf,
640 0xbf,
641 0x8d,
642 0xb7,
645 0x0b,
646 0x1a,
647 0x2a,
648 0x32,
649 0x65,
650 0xd5,
651 0x1a,
652 0xea,
655 0x13,
656 0x50,
657 0x79,
658 0xa3,
659 0x23,
660 0x1c,
661 0xe6,
662 0x60,
665 0x93,
666 0x2b,
667 0x28,
668 0x46,
669 0xe4,
670 0xd7,
671 0x06,
672 0x66,
675 0xe1,
676 0x91,
677 0x5f,
678 0x5c,
679 0xb1,
680 0xec,
681 0xa4,
682 0x6c,
685 0xf3,
686 0x25,
687 0x96,
688 0x5c,
689 0xa1,
690 0x6d,
691 0x62,
692 0x9f,
695 0x57,
696 0x5f,
697 0xf2,
698 0x8e,
699 0x60,
700 0x38,
701 0x1b,
702 0xe5,
705 0x72,
706 0x45,
707 0x06,
708 0xeb,
709 0x4c,
710 0x32,
711 0x8a,
712 0x95,
716 const uint8_t ExpectedSipHash128[64][16] = {
718 0xa3,
719 0x81,
720 0x7f,
721 0x04,
722 0xba,
723 0x25,
724 0xa8,
725 0xe6,
726 0x6d,
727 0xf6,
728 0x72,
729 0x14,
730 0xc7,
731 0x55,
732 0x02,
733 0x93,
736 0xda,
737 0x87,
738 0xc1,
739 0xd8,
740 0x6b,
741 0x99,
742 0xaf,
743 0x44,
744 0x34,
745 0x76,
746 0x59,
747 0x11,
748 0x9b,
749 0x22,
750 0xfc,
751 0x45,
754 0x81,
755 0x77,
756 0x22,
757 0x8d,
758 0xa4,
759 0xa4,
760 0x5d,
761 0xc7,
762 0xfc,
763 0xa3,
764 0x8b,
765 0xde,
766 0xf6,
767 0x0a,
768 0xff,
769 0xe4,
772 0x9c,
773 0x70,
774 0xb6,
775 0x0c,
776 0x52,
777 0x67,
778 0xa9,
779 0x4e,
780 0x5f,
781 0x33,
782 0xb6,
783 0xb0,
784 0x29,
785 0x85,
786 0xed,
787 0x51,
790 0xf8,
791 0x81,
792 0x64,
793 0xc1,
794 0x2d,
795 0x9c,
796 0x8f,
797 0xaf,
798 0x7d,
799 0x0f,
800 0x6e,
801 0x7c,
802 0x7b,
803 0xcd,
804 0x55,
805 0x79,
808 0x13,
809 0x68,
810 0x87,
811 0x59,
812 0x80,
813 0x77,
814 0x6f,
815 0x88,
816 0x54,
817 0x52,
818 0x7a,
819 0x07,
820 0x69,
821 0x0e,
822 0x96,
823 0x27,
826 0x14,
827 0xee,
828 0xca,
829 0x33,
830 0x8b,
831 0x20,
832 0x86,
833 0x13,
834 0x48,
835 0x5e,
836 0xa0,
837 0x30,
838 0x8f,
839 0xd7,
840 0xa1,
841 0x5e,
844 0xa1,
845 0xf1,
846 0xeb,
847 0xbe,
848 0xd8,
849 0xdb,
850 0xc1,
851 0x53,
852 0xc0,
853 0xb8,
854 0x4a,
855 0xa6,
856 0x1f,
857 0xf0,
858 0x82,
859 0x39,
862 0x3b,
863 0x62,
864 0xa9,
865 0xba,
866 0x62,
867 0x58,
868 0xf5,
869 0x61,
870 0x0f,
871 0x83,
872 0xe2,
873 0x64,
874 0xf3,
875 0x14,
876 0x97,
877 0xb4,
880 0x26,
881 0x44,
882 0x99,
883 0x06,
884 0x0a,
885 0xd9,
886 0xba,
887 0xab,
888 0xc4,
889 0x7f,
890 0x8b,
891 0x02,
892 0xbb,
893 0x6d,
894 0x71,
895 0xed,
898 0x00,
899 0x11,
900 0x0d,
901 0xc3,
902 0x78,
903 0x14,
904 0x69,
905 0x56,
906 0xc9,
907 0x54,
908 0x47,
909 0xd3,
910 0xf3,
911 0xd0,
912 0xfb,
913 0xba,
916 0x01,
917 0x51,
918 0xc5,
919 0x68,
920 0x38,
921 0x6b,
922 0x66,
923 0x77,
924 0xa2,
925 0xb4,
926 0xdc,
927 0x6f,
928 0x81,
929 0xe5,
930 0xdc,
931 0x18,
934 0xd6,
935 0x26,
936 0xb2,
937 0x66,
938 0x90,
939 0x5e,
940 0xf3,
941 0x58,
942 0x82,
943 0x63,
944 0x4d,
945 0xf6,
946 0x85,
947 0x32,
948 0xc1,
949 0x25,
952 0x98,
953 0x69,
954 0xe2,
955 0x47,
956 0xe9,
957 0xc0,
958 0x8b,
959 0x10,
960 0xd0,
961 0x29,
962 0x93,
963 0x4f,
964 0xc4,
965 0xb9,
966 0x52,
967 0xf7,
970 0x31,
971 0xfc,
972 0xef,
973 0xac,
974 0x66,
975 0xd7,
976 0xde,
977 0x9c,
978 0x7e,
979 0xc7,
980 0x48,
981 0x5f,
982 0xe4,
983 0x49,
984 0x49,
985 0x02,
988 0x54,
989 0x93,
990 0xe9,
991 0x99,
992 0x33,
993 0xb0,
994 0xa8,
995 0x11,
996 0x7e,
997 0x08,
998 0xec,
999 0x0f,
1000 0x97,
1001 0xcf,
1002 0xc3,
1003 0xd9,
1006 0x6e,
1007 0xe2,
1008 0xa4,
1009 0xca,
1010 0x67,
1011 0xb0,
1012 0x54,
1013 0xbb,
1014 0xfd,
1015 0x33,
1016 0x15,
1017 0xbf,
1018 0x85,
1019 0x23,
1020 0x05,
1021 0x77,
1024 0x47,
1025 0x3d,
1026 0x06,
1027 0xe8,
1028 0x73,
1029 0x8d,
1030 0xb8,
1031 0x98,
1032 0x54,
1033 0xc0,
1034 0x66,
1035 0xc4,
1036 0x7a,
1037 0xe4,
1038 0x77,
1039 0x40,
1042 0xa4,
1043 0x26,
1044 0xe5,
1045 0xe4,
1046 0x23,
1047 0xbf,
1048 0x48,
1049 0x85,
1050 0x29,
1051 0x4d,
1052 0xa4,
1053 0x81,
1054 0xfe,
1055 0xae,
1056 0xf7,
1057 0x23,
1060 0x78,
1061 0x01,
1062 0x77,
1063 0x31,
1064 0xcf,
1065 0x65,
1066 0xfa,
1067 0xb0,
1068 0x74,
1069 0xd5,
1070 0x20,
1071 0x89,
1072 0x52,
1073 0x51,
1074 0x2e,
1075 0xb1,
1078 0x9e,
1079 0x25,
1080 0xfc,
1081 0x83,
1082 0x3f,
1083 0x22,
1084 0x90,
1085 0x73,
1086 0x3e,
1087 0x93,
1088 0x44,
1089 0xa5,
1090 0xe8,
1091 0x38,
1092 0x39,
1093 0xeb,
1096 0x56,
1097 0x8e,
1098 0x49,
1099 0x5a,
1100 0xbe,
1101 0x52,
1102 0x5a,
1103 0x21,
1104 0x8a,
1105 0x22,
1106 0x14,
1107 0xcd,
1108 0x3e,
1109 0x07,
1110 0x1d,
1111 0x12,
1114 0x4a,
1115 0x29,
1116 0xb5,
1117 0x45,
1118 0x52,
1119 0xd1,
1120 0x6b,
1121 0x9a,
1122 0x46,
1123 0x9c,
1124 0x10,
1125 0x52,
1126 0x8e,
1127 0xff,
1128 0x0a,
1129 0xae,
1132 0xc9,
1133 0xd1,
1134 0x84,
1135 0xdd,
1136 0xd5,
1137 0xa9,
1138 0xf5,
1139 0xe0,
1140 0xcf,
1141 0x8c,
1142 0xe2,
1143 0x9a,
1144 0x9a,
1145 0xbf,
1146 0x69,
1147 0x1c,
1150 0x2d,
1151 0xb4,
1152 0x79,
1153 0xae,
1154 0x78,
1155 0xbd,
1156 0x50,
1157 0xd8,
1158 0x88,
1159 0x2a,
1160 0x8a,
1161 0x17,
1162 0x8a,
1163 0x61,
1164 0x32,
1165 0xad,
1168 0x8e,
1169 0xce,
1170 0x5f,
1171 0x04,
1172 0x2d,
1173 0x5e,
1174 0x44,
1175 0x7b,
1176 0x50,
1177 0x51,
1178 0xb9,
1179 0xea,
1180 0xcb,
1181 0x8d,
1182 0x8f,
1183 0x6f,
1186 0x9c,
1187 0x0b,
1188 0x53,
1189 0xb4,
1190 0xb3,
1191 0xc3,
1192 0x07,
1193 0xe8,
1194 0x7e,
1195 0xae,
1196 0xe0,
1197 0x86,
1198 0x78,
1199 0x14,
1200 0x1f,
1201 0x66,
1204 0xab,
1205 0xf2,
1206 0x48,
1207 0xaf,
1208 0x69,
1209 0xa6,
1210 0xea,
1211 0xe4,
1212 0xbf,
1213 0xd3,
1214 0xeb,
1215 0x2f,
1216 0x12,
1217 0x9e,
1218 0xeb,
1219 0x94,
1222 0x06,
1223 0x64,
1224 0xda,
1225 0x16,
1226 0x68,
1227 0x57,
1228 0x4b,
1229 0x88,
1230 0xb9,
1231 0x35,
1232 0xf3,
1233 0x02,
1234 0x73,
1235 0x58,
1236 0xae,
1237 0xf4,
1240 0xaa,
1241 0x4b,
1242 0x9d,
1243 0xc4,
1244 0xbf,
1245 0x33,
1246 0x7d,
1247 0xe9,
1248 0x0c,
1249 0xd4,
1250 0xfd,
1251 0x3c,
1252 0x46,
1253 0x7c,
1254 0x6a,
1255 0xb7,
1258 0xea,
1259 0x5c,
1260 0x7f,
1261 0x47,
1262 0x1f,
1263 0xaf,
1264 0x6b,
1265 0xde,
1266 0x2b,
1267 0x1a,
1268 0xd7,
1269 0xd4,
1270 0x68,
1271 0x6d,
1272 0x22,
1273 0x87,
1276 0x29,
1277 0x39,
1278 0xb0,
1279 0x18,
1280 0x32,
1281 0x23,
1282 0xfa,
1283 0xfc,
1284 0x17,
1285 0x23,
1286 0xde,
1287 0x4f,
1288 0x52,
1289 0xc4,
1290 0x3d,
1291 0x35,
1294 0x7c,
1295 0x39,
1296 0x56,
1297 0xca,
1298 0x5e,
1299 0xea,
1300 0xfc,
1301 0x3e,
1302 0x36,
1303 0x3e,
1304 0x9d,
1305 0x55,
1306 0x65,
1307 0x46,
1308 0xeb,
1309 0x68,
1312 0x77,
1313 0xc6,
1314 0x07,
1315 0x71,
1316 0x46,
1317 0xf0,
1318 0x1c,
1319 0x32,
1320 0xb6,
1321 0xb6,
1322 0x9d,
1323 0x5f,
1324 0x4e,
1325 0xa9,
1326 0xff,
1327 0xcf,
1330 0x37,
1331 0xa6,
1332 0x98,
1333 0x6c,
1334 0xb8,
1335 0x84,
1336 0x7e,
1337 0xdf,
1338 0x09,
1339 0x25,
1340 0xf0,
1341 0xf1,
1342 0x30,
1343 0x9b,
1344 0x54,
1345 0xde,
1348 0xa7,
1349 0x05,
1350 0xf0,
1351 0xe6,
1352 0x9d,
1353 0xa9,
1354 0xa8,
1355 0xf9,
1356 0x07,
1357 0x24,
1358 0x1a,
1359 0x2e,
1360 0x92,
1361 0x3c,
1362 0x8c,
1363 0xc8,
1366 0x3d,
1367 0xc4,
1368 0x7d,
1369 0x1f,
1370 0x29,
1371 0xc4,
1372 0x48,
1373 0x46,
1374 0x1e,
1375 0x9e,
1376 0x76,
1377 0xed,
1378 0x90,
1379 0x4f,
1380 0x67,
1381 0x11,
1384 0x0d,
1385 0x62,
1386 0xbf,
1387 0x01,
1388 0xe6,
1389 0xfc,
1390 0x0e,
1391 0x1a,
1392 0x0d,
1393 0x3c,
1394 0x47,
1395 0x51,
1396 0xc5,
1397 0xd3,
1398 0x69,
1399 0x2b,
1402 0x8c,
1403 0x03,
1404 0x46,
1405 0x8b,
1406 0xca,
1407 0x7c,
1408 0x66,
1409 0x9e,
1410 0xe4,
1411 0xfd,
1412 0x5e,
1413 0x08,
1414 0x4b,
1415 0xbe,
1416 0xe7,
1417 0xb5,
1420 0x52,
1421 0x8a,
1422 0x5b,
1423 0xb9,
1424 0x3b,
1425 0xaf,
1426 0x2c,
1427 0x9c,
1428 0x44,
1429 0x73,
1430 0xcc,
1431 0xe5,
1432 0xd0,
1433 0xd2,
1434 0x2b,
1435 0xd9,
1438 0xdf,
1439 0x6a,
1440 0x30,
1441 0x1e,
1442 0x95,
1443 0xc9,
1444 0x5d,
1445 0xad,
1446 0x97,
1447 0xae,
1448 0x0c,
1449 0xc8,
1450 0xc6,
1451 0x91,
1452 0x3b,
1453 0xd8,
1456 0x80,
1457 0x11,
1458 0x89,
1459 0x90,
1460 0x2c,
1461 0x85,
1462 0x7f,
1463 0x39,
1464 0xe7,
1465 0x35,
1466 0x91,
1467 0x28,
1468 0x5e,
1469 0x70,
1470 0xb6,
1471 0xdb,
1474 0xe6,
1475 0x17,
1476 0x34,
1477 0x6a,
1478 0xc9,
1479 0xc2,
1480 0x31,
1481 0xbb,
1482 0x36,
1483 0x50,
1484 0xae,
1485 0x34,
1486 0xcc,
1487 0xca,
1488 0x0c,
1489 0x5b,
1492 0x27,
1493 0xd9,
1494 0x34,
1495 0x37,
1496 0xef,
1497 0xb7,
1498 0x21,
1499 0xaa,
1500 0x40,
1501 0x18,
1502 0x21,
1503 0xdc,
1504 0xec,
1505 0x5a,
1506 0xdf,
1507 0x89,
1510 0x89,
1511 0x23,
1512 0x7d,
1513 0x9d,
1514 0xed,
1515 0x9c,
1516 0x5e,
1517 0x78,
1518 0xd8,
1519 0xb1,
1520 0xc9,
1521 0xb1,
1522 0x66,
1523 0xcc,
1524 0x73,
1525 0x42,
1528 0x4a,
1529 0x6d,
1530 0x80,
1531 0x91,
1532 0xbf,
1533 0x5e,
1534 0x7d,
1535 0x65,
1536 0x11,
1537 0x89,
1538 0xfa,
1539 0x94,
1540 0xa2,
1541 0x50,
1542 0xb1,
1543 0x4c,
1546 0x0e,
1547 0x33,
1548 0xf9,
1549 0x60,
1550 0x55,
1551 0xe7,
1552 0xae,
1553 0x89,
1554 0x3f,
1555 0xfc,
1556 0x0e,
1557 0x3d,
1558 0xcf,
1559 0x49,
1560 0x29,
1561 0x02,
1564 0xe6,
1565 0x1c,
1566 0x43,
1567 0x2b,
1568 0x72,
1569 0x0b,
1570 0x19,
1571 0xd1,
1572 0x8e,
1573 0xc8,
1574 0xd8,
1575 0x4b,
1576 0xdc,
1577 0x63,
1578 0x15,
1579 0x1b,
1582 0xf7,
1583 0xe5,
1584 0xae,
1585 0xf5,
1586 0x49,
1587 0xf7,
1588 0x82,
1589 0xcf,
1590 0x37,
1591 0x90,
1592 0x55,
1593 0xa6,
1594 0x08,
1595 0x26,
1596 0x9b,
1597 0x16,
1600 0x43,
1601 0x8d,
1602 0x03,
1603 0x0f,
1604 0xd0,
1605 0xb7,
1606 0xa5,
1607 0x4f,
1608 0xa8,
1609 0x37,
1610 0xf2,
1611 0xad,
1612 0x20,
1613 0x1a,
1614 0x64,
1615 0x03,
1618 0xa5,
1619 0x90,
1620 0xd3,
1621 0xee,
1622 0x4f,
1623 0xbf,
1624 0x04,
1625 0xe3,
1626 0x24,
1627 0x7e,
1628 0x0d,
1629 0x27,
1630 0xf2,
1631 0x86,
1632 0x42,
1633 0x3f,
1636 0x5f,
1637 0xe2,
1638 0xc1,
1639 0xa1,
1640 0x72,
1641 0xfe,
1642 0x93,
1643 0xc4,
1644 0xb1,
1645 0x5c,
1646 0xd3,
1647 0x7c,
1648 0xae,
1649 0xf9,
1650 0xf5,
1651 0x38,
1654 0x2c,
1655 0x97,
1656 0x32,
1657 0x5c,
1658 0xbd,
1659 0x06,
1660 0xb3,
1661 0x6e,
1662 0xb2,
1663 0x13,
1664 0x3d,
1665 0xd0,
1666 0x8b,
1667 0x3a,
1668 0x01,
1669 0x7c,
1672 0x92,
1673 0xc8,
1674 0x14,
1675 0x22,
1676 0x7a,
1677 0x6b,
1678 0xca,
1679 0x94,
1680 0x9f,
1681 0xf0,
1682 0x65,
1683 0x9f,
1684 0x00,
1685 0x2a,
1686 0xd3,
1687 0x9e,
1690 0xdc,
1691 0xe8,
1692 0x50,
1693 0x11,
1694 0x0b,
1695 0xd8,
1696 0x32,
1697 0x8c,
1698 0xfb,
1699 0xd5,
1700 0x08,
1701 0x41,
1702 0xd6,
1703 0x91,
1704 0x1d,
1705 0x87,
1708 0x67,
1709 0xf1,
1710 0x49,
1711 0x84,
1712 0xc7,
1713 0xda,
1714 0x79,
1715 0x12,
1716 0x48,
1717 0xe3,
1718 0x2b,
1719 0xb5,
1720 0x92,
1721 0x25,
1722 0x83,
1723 0xda,
1726 0x19,
1727 0x38,
1728 0xf2,
1729 0xcf,
1730 0x72,
1731 0xd5,
1732 0x4e,
1733 0xe9,
1734 0x7e,
1735 0x94,
1736 0x16,
1737 0x6f,
1738 0xa9,
1739 0x1d,
1740 0x2a,
1741 0x36,
1744 0x74,
1745 0x48,
1746 0x1e,
1747 0x96,
1748 0x46,
1749 0xed,
1750 0x49,
1751 0xfe,
1752 0x0f,
1753 0x62,
1754 0x24,
1755 0x30,
1756 0x16,
1757 0x04,
1758 0x69,
1759 0x8e,
1762 0x57,
1763 0xfc,
1764 0xa5,
1765 0xde,
1766 0x98,
1767 0xa9,
1768 0xd6,
1769 0xd8,
1770 0x00,
1771 0x64,
1772 0x38,
1773 0xd0,
1774 0x58,
1775 0x3d,
1776 0x8a,
1777 0x1d,
1780 0x9f,
1781 0xec,
1782 0xde,
1783 0x1c,
1784 0xef,
1785 0xdc,
1786 0x1c,
1787 0xbe,
1788 0xd4,
1789 0x76,
1790 0x36,
1791 0x74,
1792 0xd9,
1793 0x57,
1794 0x53,
1795 0x59,
1798 0xe3,
1799 0x04,
1800 0x0c,
1801 0x00,
1802 0xeb,
1803 0x28,
1804 0xf1,
1805 0x53,
1806 0x66,
1807 0xca,
1808 0x73,
1809 0xcb,
1810 0xd8,
1811 0x72,
1812 0xe7,
1813 0x40,
1816 0x76,
1817 0x97,
1818 0x00,
1819 0x9a,
1820 0x6a,
1821 0x83,
1822 0x1d,
1823 0xfe,
1824 0xcc,
1825 0xa9,
1826 0x1c,
1827 0x59,
1828 0x93,
1829 0x67,
1830 0x0f,
1831 0x7a,
1834 0x58,
1835 0x53,
1836 0x54,
1837 0x23,
1838 0x21,
1839 0xf5,
1840 0x67,
1841 0xa0,
1842 0x05,
1843 0xd5,
1844 0x47,
1845 0xa4,
1846 0xf0,
1847 0x47,
1848 0x59,
1849 0xbd,
1852 0x51,
1853 0x50,
1854 0xd1,
1855 0x77,
1856 0x2f,
1857 0x50,
1858 0x83,
1859 0x4a,
1860 0x50,
1861 0x3e,
1862 0x06,
1863 0x9a,
1864 0x97,
1865 0x3f,
1866 0xbd,
1867 0x7c,
1871 } // end anonymous namespace