1 /*
2    +----------------------------------------------------------------------+
3    | PHP Version 7                                                        |
4    +----------------------------------------------------------------------+
5    | Copyright (c) 1997-2018 The PHP Group                                |
6    +----------------------------------------------------------------------+
7    | This source file is subject to version 3.01 of the PHP license,      |
8    | that is bundled with this package in the file LICENSE, and is        |
9    | available through the world-wide-web at the following url:           |
10    | http://www.php.net/license/3_01.txt                                  |
11    | If you did not receive a copy of the PHP license and are unable to   |
12    | obtain it through the world-wide-web, please send a note to          |
13    | license@php.net so we can mail you a copy immediately.               |
14    +----------------------------------------------------------------------+
15    | Author: Michael Wallner <mike@php.net>                               |
16    +----------------------------------------------------------------------+
17 */
18 
19 static const uint32_t crc32_table[] = {  0x0,
20 	0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b,
21 	0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6,
22 	0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,
23 	0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, 0x5f15adac,
24 	0x5bd4b01b, 0x569796c2, 0x52568b75, 0x6a1936c8, 0x6ed82b7f,
25 	0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, 0x709f7b7a,
26 	0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
27 	0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58,
28 	0xbaea46ef, 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033,
29 	0xa4ad16ea, 0xa06c0b5d, 0xd4326d90, 0xd0f37027, 0xddb056fe,
30 	0xd9714b49, 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,
31 	0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, 0xe13ef6f4,
32 	0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0,
33 	0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5,
34 	0x2ac12072, 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16,
35 	0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca, 0x7897ab07,
36 	0x7c56b6b0, 0x71159069, 0x75d48dde, 0x6b93dddb, 0x6f52c06c,
37 	0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1,
38 	0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
39 	0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b,
40 	0xbb60adfc, 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698,
41 	0x832f1041, 0x87ee0df6, 0x99a95df3, 0x9d684044, 0x902b669d,
42 	0x94ea7b2a, 0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e,
43 	0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2, 0xc6bcf05f,
44 	0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34,
45 	0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80,
46 	0x644fc637, 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,
47 	0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, 0x5c007b8a,
48 	0x58c1663d, 0x558240e4, 0x51435d53, 0x251d3b9e, 0x21dc2629,
49 	0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, 0x3f9b762c,
50 	0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
51 	0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e,
52 	0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65,
53 	0xeba91bbc, 0xef68060b, 0xd727bbb6, 0xd3e6a601, 0xdea580d8,
54 	0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,
55 	0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, 0xae3afba2,
56 	0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71,
57 	0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74,
58 	0x857130c3, 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640,
59 	0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c, 0x7b827d21,
60 	0x7f436096, 0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a,
61 	0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, 0x18197087,
62 	0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
63 	0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d,
64 	0x2056cd3a, 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce,
65 	0xcc2b1d17, 0xc8ea00a0, 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb,
66 	0xdbee767c, 0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18,
67 	0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, 0x89b8fd09,
68 	0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662,
69 	0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf,
70 	0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
71 };
72 
73 static const uint32_t crc32b_table[] = {
74 	0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
75 	0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
76 	0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
77 	0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
78 	0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
79 	0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
80 	0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
81 	0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
82 	0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
83 	0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
84 	0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
85 	0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
86 	0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
87 	0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
88 	0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
89 	0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
90 	0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
91 	0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
92 	0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
93 	0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
94 	0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
95 	0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
96 	0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
97 	0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
98 	0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
99 	0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
100 	0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
101 	0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
102 	0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
103 	0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
104 	0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
105 	0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
106 	0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
107 	0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
108 	0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
109 	0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
110 	0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
111 	0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
112 	0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
113 	0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
114 	0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
115 	0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
116 	0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
117 	0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
118 	0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
119 	0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
120 	0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
121 	0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
122 	0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
123 	0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
124 	0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
125 	0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
126 	0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
127 	0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
128 	0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
129 	0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
130 	0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
131 	0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
132 	0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
133 	0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
134 	0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
135 	0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
136 	0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
137 	0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,
138 };
139 
140 /*
141  * Local variables:
142  * tab-width: 4
143  * c-basic-offset: 4
144  * End:
145  * vim600: sw=4 ts=4 fdm=marker
146  * vim<600: sw=4 ts=4
147  */
148