URL
https://opencores.org/ocsvn/zpu/zpu/trunk
Subversion Repositories zpu
Compare Revisions
- This comparison shows the changes necessary to convert path
/zpu/trunk
- from Rev 92 to Rev 93
- ↔ Reverse comparison
Rev 92 → Rev 93
/zpu/zpu4/test/hello/hello.ram
0,0 → 1,3055
0 => x"0b0b0b0b", |
1 => x"82700b0b", |
2 => x"80cfd80c", |
3 => x"3a0b0b80", |
4 => x"c6d00400", |
5 => x"00000000", |
6 => x"00000000", |
7 => x"00000000", |
8 => x"80088408", |
9 => x"88080b0b", |
10 => x"80c7972d", |
11 => x"880c840c", |
12 => x"800c0400", |
13 => x"00000000", |
14 => x"00000000", |
15 => x"00000000", |
16 => x"71fd0608", |
17 => x"72830609", |
18 => x"81058205", |
19 => x"832b2a83", |
20 => x"ffff0652", |
21 => x"04000000", |
22 => x"00000000", |
23 => x"00000000", |
24 => x"71fd0608", |
25 => x"83ffff73", |
26 => x"83060981", |
27 => x"05820583", |
28 => x"2b2b0906", |
29 => x"7383ffff", |
30 => x"0b0b0b0b", |
31 => x"83a70400", |
32 => x"72098105", |
33 => x"72057373", |
34 => x"09060906", |
35 => x"73097306", |
36 => x"070a8106", |
37 => x"53510400", |
38 => x"00000000", |
39 => x"00000000", |
40 => x"72722473", |
41 => x"732e0753", |
42 => x"51040000", |
43 => x"00000000", |
44 => x"00000000", |
45 => x"00000000", |
46 => x"00000000", |
47 => x"00000000", |
48 => x"71737109", |
49 => x"71068106", |
50 => x"30720a10", |
51 => x"0a720a10", |
52 => x"0a31050a", |
53 => x"81065151", |
54 => x"53510400", |
55 => x"00000000", |
56 => x"72722673", |
57 => x"732e0753", |
58 => x"51040000", |
59 => x"00000000", |
60 => x"00000000", |
61 => x"00000000", |
62 => x"00000000", |
63 => x"00000000", |
64 => x"00000000", |
65 => x"00000000", |
66 => x"00000000", |
67 => x"00000000", |
68 => x"00000000", |
69 => x"00000000", |
70 => x"00000000", |
71 => x"00000000", |
72 => x"0b0b0b88", |
73 => x"c4040000", |
74 => x"00000000", |
75 => x"00000000", |
76 => x"00000000", |
77 => x"00000000", |
78 => x"00000000", |
79 => x"00000000", |
80 => x"720a722b", |
81 => x"0a535104", |
82 => x"00000000", |
83 => x"00000000", |
84 => x"00000000", |
85 => x"00000000", |
86 => x"00000000", |
87 => x"00000000", |
88 => x"72729f06", |
89 => x"0981050b", |
90 => x"0b0b88a7", |
91 => x"05040000", |
92 => x"00000000", |
93 => x"00000000", |
94 => x"00000000", |
95 => x"00000000", |
96 => x"72722aff", |
97 => x"739f062a", |
98 => x"0974090a", |
99 => x"8106ff05", |
100 => x"06075351", |
101 => x"04000000", |
102 => x"00000000", |
103 => x"00000000", |
104 => x"71715351", |
105 => x"020d0406", |
106 => x"73830609", |
107 => x"81058205", |
108 => x"832b0b2b", |
109 => x"0772fc06", |
110 => x"0c515104", |
111 => x"00000000", |
112 => x"72098105", |
113 => x"72050970", |
114 => x"81050906", |
115 => x"0a810653", |
116 => x"51040000", |
117 => x"00000000", |
118 => x"00000000", |
119 => x"00000000", |
120 => x"72098105", |
121 => x"72050970", |
122 => x"81050906", |
123 => x"0a098106", |
124 => x"53510400", |
125 => x"00000000", |
126 => x"00000000", |
127 => x"00000000", |
128 => x"71098105", |
129 => x"52040000", |
130 => x"00000000", |
131 => x"00000000", |
132 => x"00000000", |
133 => x"00000000", |
134 => x"00000000", |
135 => x"00000000", |
136 => x"72720981", |
137 => x"05055351", |
138 => x"04000000", |
139 => x"00000000", |
140 => x"00000000", |
141 => x"00000000", |
142 => x"00000000", |
143 => x"00000000", |
144 => x"72097206", |
145 => x"73730906", |
146 => x"07535104", |
147 => x"00000000", |
148 => x"00000000", |
149 => x"00000000", |
150 => x"00000000", |
151 => x"00000000", |
152 => x"71fc0608", |
153 => x"72830609", |
154 => x"81058305", |
155 => x"1010102a", |
156 => x"81ff0652", |
157 => x"04000000", |
158 => x"00000000", |
159 => x"00000000", |
160 => x"71fc0608", |
161 => x"0b0b80cf", |
162 => x"c4738306", |
163 => x"10100508", |
164 => x"060b0b0b", |
165 => x"88aa0400", |
166 => x"00000000", |
167 => x"00000000", |
168 => x"80088408", |
169 => x"88087575", |
170 => x"0b0b0b8b", |
171 => x"9f2d5050", |
172 => x"80085688", |
173 => x"0c840c80", |
174 => x"0c510400", |
175 => x"00000000", |
176 => x"80088408", |
177 => x"88087575", |
178 => x"0b0b0b8b", |
179 => x"e32d5050", |
180 => x"80085688", |
181 => x"0c840c80", |
182 => x"0c510400", |
183 => x"00000000", |
184 => x"72097081", |
185 => x"0509060a", |
186 => x"8106ff05", |
187 => x"70547106", |
188 => x"73097274", |
189 => x"05ff0506", |
190 => x"07515151", |
191 => x"04000000", |
192 => x"72097081", |
193 => x"0509060a", |
194 => x"098106ff", |
195 => x"05705471", |
196 => x"06730972", |
197 => x"7405ff05", |
198 => x"06075151", |
199 => x"51040000", |
200 => x"05ff0504", |
201 => x"00000000", |
202 => x"00000000", |
203 => x"00000000", |
204 => x"00000000", |
205 => x"00000000", |
206 => x"00000000", |
207 => x"00000000", |
208 => x"810b0b0b", |
209 => x"80cfd40c", |
210 => x"51040000", |
211 => x"00000000", |
212 => x"00000000", |
213 => x"00000000", |
214 => x"00000000", |
215 => x"00000000", |
216 => x"71810552", |
217 => x"04000000", |
218 => x"00000000", |
219 => x"00000000", |
220 => x"00000000", |
221 => x"00000000", |
222 => x"00000000", |
223 => x"00000000", |
224 => x"00000000", |
225 => x"00000000", |
226 => x"00000000", |
227 => x"00000000", |
228 => x"00000000", |
229 => x"00000000", |
230 => x"00000000", |
231 => x"00000000", |
232 => x"02840572", |
233 => x"10100552", |
234 => x"04000000", |
235 => x"00000000", |
236 => x"00000000", |
237 => x"00000000", |
238 => x"00000000", |
239 => x"00000000", |
240 => x"00000000", |
241 => x"00000000", |
242 => x"00000000", |
243 => x"00000000", |
244 => x"00000000", |
245 => x"00000000", |
246 => x"00000000", |
247 => x"00000000", |
248 => x"717105ff", |
249 => x"05715351", |
250 => x"020d0400", |
251 => x"00000000", |
252 => x"00000000", |
253 => x"00000000", |
254 => x"00000000", |
255 => x"00000000", |
256 => x"82c53f80", |
257 => x"c6d93f04", |
258 => x"10101010", |
259 => x"10101010", |
260 => x"10101010", |
261 => x"10101010", |
262 => x"10101010", |
263 => x"10101010", |
264 => x"10101010", |
265 => x"10101053", |
266 => x"51047381", |
267 => x"ff067383", |
268 => x"06098105", |
269 => x"83051010", |
270 => x"102b0772", |
271 => x"fc060c51", |
272 => x"51043c04", |
273 => x"72728072", |
274 => x"8106ff05", |
275 => x"09720605", |
276 => x"71105272", |
277 => x"0a100a53", |
278 => x"72ed3851", |
279 => x"51535104", |
280 => x"fe3d0d0b", |
281 => x"0b80dfc0", |
282 => x"08538413", |
283 => x"0870882a", |
284 => x"70810651", |
285 => x"52527080", |
286 => x"2ef03871", |
287 => x"81ff0680", |
288 => x"0c843d0d", |
289 => x"04ff3d0d", |
290 => x"0b0b80df", |
291 => x"c0085271", |
292 => x"0870882a", |
293 => x"81327081", |
294 => x"06515151", |
295 => x"70f13873", |
296 => x"720c833d", |
297 => x"0d0480cf", |
298 => x"d408802e", |
299 => x"a43880cf", |
300 => x"d808822e", |
301 => x"bd388380", |
302 => x"800b0b0b", |
303 => x"80dfc00c", |
304 => x"82a0800b", |
305 => x"80dfc40c", |
306 => x"8290800b", |
307 => x"80dfc80c", |
308 => x"04f88080", |
309 => x"80a40b0b", |
310 => x"0b80dfc0", |
311 => x"0cf88080", |
312 => x"82800b80", |
313 => x"dfc40cf8", |
314 => x"80808480", |
315 => x"0b80dfc8", |
316 => x"0c0480c0", |
317 => x"a8808c0b", |
318 => x"0b0b80df", |
319 => x"c00c80c0", |
320 => x"a880940b", |
321 => x"80dfc40c", |
322 => x"0b0b80cf", |
323 => x"8c0b80df", |
324 => x"c80c0470", |
325 => x"7080dfcc", |
326 => x"335170a7", |
327 => x"3880cfe0", |
328 => x"08700852", |
329 => x"5270802e", |
330 => x"94388412", |
331 => x"80cfe00c", |
332 => x"702d80cf", |
333 => x"e0087008", |
334 => x"525270ee", |
335 => x"38810b80", |
336 => x"dfcc3450", |
337 => x"50040470", |
338 => x"0b0b80df", |
339 => x"bc08802e", |
340 => x"8e380b0b", |
341 => x"0b0b800b", |
342 => x"802e0981", |
343 => x"06833850", |
344 => x"040b0b80", |
345 => x"dfbc510b", |
346 => x"0b0bf594", |
347 => x"3f500404", |
348 => x"fe3d0d89", |
349 => x"5380cf90", |
350 => x"5182c13f", |
351 => x"80cfa051", |
352 => x"82ba3f81", |
353 => x"0a0b80df", |
354 => x"d80cff0b", |
355 => x"80dfdc0c", |
356 => x"ff135372", |
357 => x"8025de38", |
358 => x"72800c84", |
359 => x"3d0d04fb", |
360 => x"3d0d7779", |
361 => x"55558056", |
362 => x"757524ab", |
363 => x"38807424", |
364 => x"9d388053", |
365 => x"73527451", |
366 => x"80e13f80", |
367 => x"08547580", |
368 => x"2e853880", |
369 => x"08305473", |
370 => x"800c873d", |
371 => x"0d047330", |
372 => x"76813257", |
373 => x"54dc3974", |
374 => x"30558156", |
375 => x"738025d2", |
376 => x"38ec39fa", |
377 => x"3d0d787a", |
378 => x"57558057", |
379 => x"767524a4", |
380 => x"38759f2c", |
381 => x"54815375", |
382 => x"74327431", |
383 => x"5274519b", |
384 => x"3f800854", |
385 => x"76802e85", |
386 => x"38800830", |
387 => x"5473800c", |
388 => x"883d0d04", |
389 => x"74305581", |
390 => x"57d739fc", |
391 => x"3d0d7678", |
392 => x"53548153", |
393 => x"80747326", |
394 => x"52557280", |
395 => x"2e983870", |
396 => x"802eab38", |
397 => x"807224a6", |
398 => x"38711073", |
399 => x"10757226", |
400 => x"53545272", |
401 => x"ea387351", |
402 => x"78833874", |
403 => x"5170800c", |
404 => x"863d0d04", |
405 => x"720a100a", |
406 => x"720a100a", |
407 => x"53537280", |
408 => x"2ee43871", |
409 => x"7426ed38", |
410 => x"73723175", |
411 => x"7407740a", |
412 => x"100a740a", |
413 => x"100a5555", |
414 => x"5654e339", |
415 => x"f73d0d7c", |
416 => x"70525380", |
417 => x"f93f7254", |
418 => x"80085580", |
419 => x"cfb05681", |
420 => x"57800881", |
421 => x"055a8b3d", |
422 => x"e4115953", |
423 => x"8259f413", |
424 => x"527b8811", |
425 => x"08525381", |
426 => x"b23f8008", |
427 => x"30708008", |
428 => x"079f2c8a", |
429 => x"07800c53", |
430 => x"8b3d0d04", |
431 => x"f63d0d7c", |
432 => x"80cfe408", |
433 => x"71535553", |
434 => x"b53f7255", |
435 => x"80085680", |
436 => x"cfb05781", |
437 => x"58800881", |
438 => x"055b8c3d", |
439 => x"e4115a53", |
440 => x"825af413", |
441 => x"52881408", |
442 => x"5180f03f", |
443 => x"80083070", |
444 => x"8008079f", |
445 => x"2c8a0780", |
446 => x"0c548c3d", |
447 => x"0d047070", |
448 => x"70707570", |
449 => x"71830653", |
450 => x"555270b4", |
451 => x"38717008", |
452 => x"7009f7fb", |
453 => x"fdff1206", |
454 => x"f8848281", |
455 => x"80065452", |
456 => x"53719b38", |
457 => x"84137008", |
458 => x"7009f7fb", |
459 => x"fdff1206", |
460 => x"f8848281", |
461 => x"80065452", |
462 => x"5371802e", |
463 => x"e7387252", |
464 => x"71335372", |
465 => x"802e8a38", |
466 => x"81127033", |
467 => x"545272f8", |
468 => x"38717431", |
469 => x"800c5050", |
470 => x"505004f2", |
471 => x"3d0d6062", |
472 => x"88110870", |
473 => x"58565f5a", |
474 => x"73802e81", |
475 => x"8c388c1a", |
476 => x"2270832a", |
477 => x"81328106", |
478 => x"56587486", |
479 => x"38901a08", |
480 => x"91387951", |
481 => x"90b73fff", |
482 => x"55800880", |
483 => x"ec388c1a", |
484 => x"22587d08", |
485 => x"55807883", |
486 => x"ffff0670", |
487 => x"0a100a81", |
488 => x"06415c57", |
489 => x"7e772e80", |
490 => x"d7387690", |
491 => x"38740884", |
492 => x"16088817", |
493 => x"57585676", |
494 => x"802ef238", |
495 => x"76548880", |
496 => x"77278438", |
497 => x"88805473", |
498 => x"5375529c", |
499 => x"1a0851a4", |
500 => x"1a085877", |
501 => x"2d800b80", |
502 => x"082582e0", |
503 => x"38800816", |
504 => x"77800831", |
505 => x"7f880508", |
506 => x"80083170", |
507 => x"6188050c", |
508 => x"5b585678", |
509 => x"ffb43880", |
510 => x"5574800c", |
511 => x"903d0d04", |
512 => x"7a813281", |
513 => x"06774056", |
514 => x"75802e81", |
515 => x"bd387690", |
516 => x"38740884", |
517 => x"16088817", |
518 => x"57585976", |
519 => x"802ef238", |
520 => x"881a0878", |
521 => x"83ffff06", |
522 => x"70892a81", |
523 => x"06565956", |
524 => x"73802e82", |
525 => x"f8387577", |
526 => x"278b3877", |
527 => x"872a8106", |
528 => x"5c7b82b5", |
529 => x"38767627", |
530 => x"83387656", |
531 => x"75537852", |
532 => x"79085185", |
533 => x"833f881a", |
534 => x"08763188", |
535 => x"1b0c7908", |
536 => x"167a0c76", |
537 => x"56751977", |
538 => x"77317f88", |
539 => x"05087831", |
540 => x"70618805", |
541 => x"0c415859", |
542 => x"7e802efe", |
543 => x"fa388c1a", |
544 => x"2258ff8a", |
545 => x"39787954", |
546 => x"7c537b52", |
547 => x"5684c93f", |
548 => x"881a0879", |
549 => x"31881b0c", |
550 => x"7908197a", |
551 => x"0c7c7631", |
552 => x"5d7c8e38", |
553 => x"79518ff2", |
554 => x"3f800881", |
555 => x"8f388008", |
556 => x"5f751c77", |
557 => x"77317f88", |
558 => x"05087831", |
559 => x"70618805", |
560 => x"0c5d585c", |
561 => x"7a802efe", |
562 => x"ae387681", |
563 => x"83387408", |
564 => x"84160888", |
565 => x"1757585c", |
566 => x"76802ef2", |
567 => x"3876538a", |
568 => x"527b5182", |
569 => x"d33f8008", |
570 => x"7c318105", |
571 => x"5d800884", |
572 => x"3881175d", |
573 => x"815f7c59", |
574 => x"767d2783", |
575 => x"38765994", |
576 => x"1a08881b", |
577 => x"08115758", |
578 => x"807a085c", |
579 => x"54901a08", |
580 => x"7b278338", |
581 => x"81547579", |
582 => x"25843873", |
583 => x"ba387779", |
584 => x"24fee238", |
585 => x"77537b52", |
586 => x"9c1a0851", |
587 => x"a41a0859", |
588 => x"782d8008", |
589 => x"56800880", |
590 => x"24fee238", |
591 => x"8c1a2280", |
592 => x"c0075e7d", |
593 => x"8c1b23ff", |
594 => x"5574800c", |
595 => x"903d0d04", |
596 => x"7effa338", |
597 => x"ff873975", |
598 => x"537b527a", |
599 => x"5182f93f", |
600 => x"7908167a", |
601 => x"0c79518e", |
602 => x"b13f8008", |
603 => x"cf387c76", |
604 => x"315d7cfe", |
605 => x"bc38feac", |
606 => x"39901a08", |
607 => x"7a087131", |
608 => x"78117056", |
609 => x"5a575280", |
610 => x"cfe40851", |
611 => x"84943f80", |
612 => x"08802eff", |
613 => x"a7388008", |
614 => x"901b0c80", |
615 => x"08167a0c", |
616 => x"77941b0c", |
617 => x"76881b0c", |
618 => x"7656fd99", |
619 => x"39790858", |
620 => x"901a0878", |
621 => x"27833881", |
622 => x"54757727", |
623 => x"843873b3", |
624 => x"38941a08", |
625 => x"54737726", |
626 => x"80d33873", |
627 => x"5378529c", |
628 => x"1a0851a4", |
629 => x"1a085877", |
630 => x"2d800856", |
631 => x"80088024", |
632 => x"fd83388c", |
633 => x"1a2280c0", |
634 => x"075e7d8c", |
635 => x"1b23ff55", |
636 => x"fed73975", |
637 => x"53785277", |
638 => x"5181dd3f", |
639 => x"7908167a", |
640 => x"0c79518d", |
641 => x"953f8008", |
642 => x"802efcd9", |
643 => x"388c1a22", |
644 => x"80c0075e", |
645 => x"7d8c1b23", |
646 => x"ff55fead", |
647 => x"39767754", |
648 => x"79537852", |
649 => x"5681b13f", |
650 => x"881a0877", |
651 => x"31881b0c", |
652 => x"7908177a", |
653 => x"0cfcae39", |
654 => x"fa3d0d7a", |
655 => x"79028805", |
656 => x"a7053355", |
657 => x"53548374", |
658 => x"2780df38", |
659 => x"71830651", |
660 => x"7080d738", |
661 => x"71715755", |
662 => x"83517582", |
663 => x"802913ff", |
664 => x"12525670", |
665 => x"8025f338", |
666 => x"837427bc", |
667 => x"38740876", |
668 => x"327009f7", |
669 => x"fbfdff12", |
670 => x"06f88482", |
671 => x"81800651", |
672 => x"5170802e", |
673 => x"98387451", |
674 => x"80527033", |
675 => x"5772772e", |
676 => x"b9388111", |
677 => x"81135351", |
678 => x"837227ee", |
679 => x"38fc1484", |
680 => x"16565473", |
681 => x"8326c638", |
682 => x"7452ff14", |
683 => x"5170ff2e", |
684 => x"97387133", |
685 => x"5472742e", |
686 => x"98388112", |
687 => x"ff125252", |
688 => x"70ff2e09", |
689 => x"8106eb38", |
690 => x"80517080", |
691 => x"0c883d0d", |
692 => x"0471800c", |
693 => x"883d0d04", |
694 => x"fa3d0d78", |
695 => x"7a7c7272", |
696 => x"72595755", |
697 => x"58565774", |
698 => x"7727b238", |
699 => x"75155176", |
700 => x"7127aa38", |
701 => x"707618ff", |
702 => x"18535353", |
703 => x"70ff2e96", |
704 => x"38ff12ff", |
705 => x"14545272", |
706 => x"337234ff", |
707 => x"115170ff", |
708 => x"2e098106", |
709 => x"ec387680", |
710 => x"0c883d0d", |
711 => x"048f7627", |
712 => x"80e63874", |
713 => x"77078306", |
714 => x"517080dc", |
715 => x"38767552", |
716 => x"53707084", |
717 => x"05520873", |
718 => x"70840555", |
719 => x"0c727170", |
720 => x"84055308", |
721 => x"71708405", |
722 => x"530c7170", |
723 => x"84055308", |
724 => x"71708405", |
725 => x"530c7170", |
726 => x"84055308", |
727 => x"71708405", |
728 => x"530cf015", |
729 => x"5553738f", |
730 => x"26c73883", |
731 => x"74279538", |
732 => x"70708405", |
733 => x"52087370", |
734 => x"8405550c", |
735 => x"fc145473", |
736 => x"8326ed38", |
737 => x"72715452", |
738 => x"ff145170", |
739 => x"ff2eff86", |
740 => x"38727081", |
741 => x"05543372", |
742 => x"70810554", |
743 => x"34ff1151", |
744 => x"ea39ef3d", |
745 => x"0d636567", |
746 => x"405d427b", |
747 => x"802e8582", |
748 => x"386151a9", |
749 => x"e73ff81c", |
750 => x"70841208", |
751 => x"70fc0670", |
752 => x"628b0570", |
753 => x"f8064159", |
754 => x"455c5f41", |
755 => x"57967427", |
756 => x"82c53880", |
757 => x"7b247e7c", |
758 => x"26075880", |
759 => x"5477742e", |
760 => x"09810682", |
761 => x"ab38787b", |
762 => x"2581fe38", |
763 => x"781780d7", |
764 => x"a00b8805", |
765 => x"085b5679", |
766 => x"762e84c5", |
767 => x"38841608", |
768 => x"70fe0617", |
769 => x"84110881", |
770 => x"06415555", |
771 => x"7e828d38", |
772 => x"74fc0658", |
773 => x"79762e84", |
774 => x"e3387818", |
775 => x"5f7e7b25", |
776 => x"81ff387c", |
777 => x"81065473", |
778 => x"82c13876", |
779 => x"77083184", |
780 => x"1108fc06", |
781 => x"56577580", |
782 => x"2e913879", |
783 => x"762e84f0", |
784 => x"38741819", |
785 => x"58777b25", |
786 => x"84913876", |
787 => x"802e829b", |
788 => x"38781556", |
789 => x"7a762482", |
790 => x"92388c17", |
791 => x"08881808", |
792 => x"718c120c", |
793 => x"88120c5e", |
794 => x"75598817", |
795 => x"61fc055b", |
796 => x"5679a426", |
797 => x"85ff387b", |
798 => x"76595593", |
799 => x"7a2780c9", |
800 => x"387b7084", |
801 => x"055d087c", |
802 => x"56760c74", |
803 => x"70840556", |
804 => x"088c180c", |
805 => x"9017589b", |
806 => x"7a27ae38", |
807 => x"74708405", |
808 => x"5608780c", |
809 => x"74708405", |
810 => x"56089418", |
811 => x"0c981758", |
812 => x"a37a2795", |
813 => x"38747084", |
814 => x"05560878", |
815 => x"0c747084", |
816 => x"0556089c", |
817 => x"180ca017", |
818 => x"58747084", |
819 => x"05560875", |
820 => x"5f787084", |
821 => x"055a0c77", |
822 => x"7e708405", |
823 => x"40087170", |
824 => x"8405530c", |
825 => x"7e08710c", |
826 => x"5d787b31", |
827 => x"56758f26", |
828 => x"80c93884", |
829 => x"17088106", |
830 => x"79078418", |
831 => x"0c781784", |
832 => x"11088107", |
833 => x"84120c5b", |
834 => x"6151a791", |
835 => x"3f881754", |
836 => x"73800c93", |
837 => x"3d0d0490", |
838 => x"5bfdb839", |
839 => x"7756fe83", |
840 => x"398c1608", |
841 => x"88170871", |
842 => x"8c120c88", |
843 => x"120c587e", |
844 => x"707c3157", |
845 => x"598f7627", |
846 => x"ffb9387a", |
847 => x"17841808", |
848 => x"81067c07", |
849 => x"84190c76", |
850 => x"81078412", |
851 => x"0c761184", |
852 => x"11088107", |
853 => x"84120c5b", |
854 => x"88055261", |
855 => x"518fda3f", |
856 => x"6151a6b9", |
857 => x"3f881754", |
858 => x"ffa6397d", |
859 => x"52615197", |
860 => x"d73f8008", |
861 => x"5a800880", |
862 => x"2e81ab38", |
863 => x"8008f805", |
864 => x"60840508", |
865 => x"fe066105", |
866 => x"58557477", |
867 => x"2e83f238", |
868 => x"fc195877", |
869 => x"a42681b0", |
870 => x"387b8008", |
871 => x"56579378", |
872 => x"2780dc38", |
873 => x"7b707084", |
874 => x"05520880", |
875 => x"08708405", |
876 => x"800c0c80", |
877 => x"08717084", |
878 => x"0553085d", |
879 => x"567b7670", |
880 => x"8405580c", |
881 => x"579b7827", |
882 => x"b6387670", |
883 => x"84055808", |
884 => x"75708405", |
885 => x"570c7670", |
886 => x"84055808", |
887 => x"75708405", |
888 => x"570ca378", |
889 => x"27993876", |
890 => x"70840558", |
891 => x"08757084", |
892 => x"05570c76", |
893 => x"70840558", |
894 => x"08757084", |
895 => x"05570c76", |
896 => x"70840558", |
897 => x"08775e75", |
898 => x"70840557", |
899 => x"0c747d70", |
900 => x"84055f08", |
901 => x"71708405", |
902 => x"530c7d08", |
903 => x"710c5f7b", |
904 => x"5261518e", |
905 => x"943f6151", |
906 => x"a4f33f79", |
907 => x"800c933d", |
908 => x"0d047d52", |
909 => x"61519690", |
910 => x"3f800880", |
911 => x"0c933d0d", |
912 => x"04841608", |
913 => x"55fbc939", |
914 => x"77537b52", |
915 => x"800851a2", |
916 => x"a53f7b52", |
917 => x"61518de1", |
918 => x"3fcc398c", |
919 => x"16088817", |
920 => x"08718c12", |
921 => x"0c88120c", |
922 => x"5d8c1708", |
923 => x"88180871", |
924 => x"8c120c88", |
925 => x"120c5977", |
926 => x"59fbef39", |
927 => x"7818901c", |
928 => x"40557e75", |
929 => x"24fb9c38", |
930 => x"7a177080", |
931 => x"d7a00b88", |
932 => x"050c757c", |
933 => x"31810784", |
934 => x"120c5684", |
935 => x"17088106", |
936 => x"7b078418", |
937 => x"0c6151a3", |
938 => x"f43f8817", |
939 => x"54fce139", |
940 => x"74181990", |
941 => x"1c5e5a7c", |
942 => x"7a24fb8f", |
943 => x"388c1708", |
944 => x"88180871", |
945 => x"8c120c88", |
946 => x"120c5e88", |
947 => x"1761fc05", |
948 => x"575975a4", |
949 => x"2681b638", |
950 => x"7b795955", |
951 => x"93762780", |
952 => x"c9387b70", |
953 => x"84055d08", |
954 => x"7c56790c", |
955 => x"74708405", |
956 => x"56088c18", |
957 => x"0c901758", |
958 => x"9b7627ae", |
959 => x"38747084", |
960 => x"05560878", |
961 => x"0c747084", |
962 => x"05560894", |
963 => x"180c9817", |
964 => x"58a37627", |
965 => x"95387470", |
966 => x"84055608", |
967 => x"780c7470", |
968 => x"84055608", |
969 => x"9c180ca0", |
970 => x"17587470", |
971 => x"84055608", |
972 => x"75417870", |
973 => x"84055a0c", |
974 => x"77607084", |
975 => x"05420871", |
976 => x"70840553", |
977 => x"0c600871", |
978 => x"0c5e7a17", |
979 => x"7080d7a0", |
980 => x"0b88050c", |
981 => x"7a7c3181", |
982 => x"0784120c", |
983 => x"58841708", |
984 => x"81067b07", |
985 => x"84180c61", |
986 => x"51a2b23f", |
987 => x"78547380", |
988 => x"0c933d0d", |
989 => x"0479537b", |
990 => x"5275519f", |
991 => x"f93ffae9", |
992 => x"39841508", |
993 => x"fc061960", |
994 => x"5859fadd", |
995 => x"3975537b", |
996 => x"5278519f", |
997 => x"e13f7a17", |
998 => x"7080d7a0", |
999 => x"0b88050c", |
1000 => x"7a7c3181", |
1001 => x"0784120c", |
1002 => x"58841708", |
1003 => x"81067b07", |
1004 => x"84180c61", |
1005 => x"51a1e63f", |
1006 => x"7854ffb2", |
1007 => x"39fa3d0d", |
1008 => x"7880cfe4", |
1009 => x"085455b8", |
1010 => x"1308802e", |
1011 => x"81af388c", |
1012 => x"15227083", |
1013 => x"ffff0670", |
1014 => x"832a8132", |
1015 => x"81065555", |
1016 => x"5672802e", |
1017 => x"80da3873", |
1018 => x"842a8132", |
1019 => x"810657ff", |
1020 => x"537680f2", |
1021 => x"3873822a", |
1022 => x"81065473", |
1023 => x"802eb938", |
1024 => x"b0150854", |
1025 => x"73802e9c", |
1026 => x"3880c015", |
1027 => x"5373732e", |
1028 => x"8f387352", |
1029 => x"80cfe408", |
1030 => x"518a9e3f", |
1031 => x"8c152256", |
1032 => x"76b0160c", |
1033 => x"75db0657", |
1034 => x"768c1623", |
1035 => x"800b8416", |
1036 => x"0c901508", |
1037 => x"750c7656", |
1038 => x"75880754", |
1039 => x"738c1623", |
1040 => x"90150880", |
1041 => x"2ebf388c", |
1042 => x"15227081", |
1043 => x"06555373", |
1044 => x"9c38720a", |
1045 => x"100a8106", |
1046 => x"56758538", |
1047 => x"94150854", |
1048 => x"7388160c", |
1049 => x"80537280", |
1050 => x"0c883d0d", |
1051 => x"04800b88", |
1052 => x"160c9415", |
1053 => x"08309816", |
1054 => x"0c8053ea", |
1055 => x"39725182", |
1056 => x"a63ffecb", |
1057 => x"3974518f", |
1058 => x"bc3f8c15", |
1059 => x"22708106", |
1060 => x"55537380", |
1061 => x"2effbb38", |
1062 => x"d439f83d", |
1063 => x"0d7a5776", |
1064 => x"802e8197", |
1065 => x"3880cfe4", |
1066 => x"0854b814", |
1067 => x"08802e80", |
1068 => x"eb388c17", |
1069 => x"2270902b", |
1070 => x"70902c70", |
1071 => x"832a8132", |
1072 => x"81065b5b", |
1073 => x"57557780", |
1074 => x"cb389017", |
1075 => x"08567580", |
1076 => x"2e80c138", |
1077 => x"76087631", |
1078 => x"76780c79", |
1079 => x"83065555", |
1080 => x"73853894", |
1081 => x"17085877", |
1082 => x"88180c80", |
1083 => x"7525a538", |
1084 => x"74537552", |
1085 => x"9c170851", |
1086 => x"a4170854", |
1087 => x"732d800b", |
1088 => x"80082580", |
1089 => x"c9388008", |
1090 => x"16758008", |
1091 => x"31565674", |
1092 => x"8024dd38", |
1093 => x"800b800c", |
1094 => x"8a3d0d04", |
1095 => x"73518187", |
1096 => x"3f8c1722", |
1097 => x"70902b70", |
1098 => x"902c7083", |
1099 => x"2a813281", |
1100 => x"065b5b57", |
1101 => x"5577dd38", |
1102 => x"ff9039a1", |
1103 => x"9a5280cf", |
1104 => x"e408518c", |
1105 => x"d03f8008", |
1106 => x"800c8a3d", |
1107 => x"0d048c17", |
1108 => x"2280c007", |
1109 => x"58778c18", |
1110 => x"23ff0b80", |
1111 => x"0c8a3d0d", |
1112 => x"04fa3d0d", |
1113 => x"797080dc", |
1114 => x"298c1154", |
1115 => x"7a535657", |
1116 => x"8fd63f80", |
1117 => x"08800855", |
1118 => x"56800880", |
1119 => x"2ea23880", |
1120 => x"088c0554", |
1121 => x"800b8008", |
1122 => x"0c768008", |
1123 => x"84050c73", |
1124 => x"80088805", |
1125 => x"0c745380", |
1126 => x"5273519c", |
1127 => x"f53f7554", |
1128 => x"73800c88", |
1129 => x"3d0d0470", |
1130 => x"707074a8", |
1131 => x"e60bbc12", |
1132 => x"0c53810b", |
1133 => x"b8140c80", |
1134 => x"0b84dc14", |
1135 => x"0c830b84", |
1136 => x"e0140c84", |
1137 => x"e81384e4", |
1138 => x"140c8413", |
1139 => x"08518070", |
1140 => x"720c7084", |
1141 => x"130c7088", |
1142 => x"130c5284", |
1143 => x"0b8c1223", |
1144 => x"718e1223", |
1145 => x"7190120c", |
1146 => x"7194120c", |
1147 => x"7198120c", |
1148 => x"709c120c", |
1149 => x"80c1d50b", |
1150 => x"a0120c80", |
1151 => x"c2a10ba4", |
1152 => x"120c80c3", |
1153 => x"9d0ba812", |
1154 => x"0c80c3ee", |
1155 => x"0bac120c", |
1156 => x"88130872", |
1157 => x"710c7284", |
1158 => x"120c7288", |
1159 => x"120c5189", |
1160 => x"0b8c1223", |
1161 => x"810b8e12", |
1162 => x"23719012", |
1163 => x"0c719412", |
1164 => x"0c719812", |
1165 => x"0c709c12", |
1166 => x"0c80c1d5", |
1167 => x"0ba0120c", |
1168 => x"80c2a10b", |
1169 => x"a4120c80", |
1170 => x"c39d0ba8", |
1171 => x"120c80c3", |
1172 => x"ee0bac12", |
1173 => x"0c8c1308", |
1174 => x"72710c72", |
1175 => x"84120c72", |
1176 => x"88120c51", |
1177 => x"8a0b8c12", |
1178 => x"23820b8e", |
1179 => x"12237190", |
1180 => x"120c7194", |
1181 => x"120c7198", |
1182 => x"120c709c", |
1183 => x"120c80c1", |
1184 => x"d50ba012", |
1185 => x"0c80c2a1", |
1186 => x"0ba4120c", |
1187 => x"80c39d0b", |
1188 => x"a8120c80", |
1189 => x"c3ee0bac", |
1190 => x"120c5050", |
1191 => x"5004f83d", |
1192 => x"0d7a80cf", |
1193 => x"e408b811", |
1194 => x"08575758", |
1195 => x"7481ec38", |
1196 => x"a8e60bbc", |
1197 => x"170c810b", |
1198 => x"b8170c74", |
1199 => x"84dc170c", |
1200 => x"830b84e0", |
1201 => x"170c84e8", |
1202 => x"1684e417", |
1203 => x"0c841608", |
1204 => x"75710c75", |
1205 => x"84120c75", |
1206 => x"88120c59", |
1207 => x"840b8c1a", |
1208 => x"23748e1a", |
1209 => x"2374901a", |
1210 => x"0c74941a", |
1211 => x"0c74981a", |
1212 => x"0c789c1a", |
1213 => x"0c80c1d5", |
1214 => x"0ba01a0c", |
1215 => x"80c2a10b", |
1216 => x"a41a0c80", |
1217 => x"c39d0ba8", |
1218 => x"1a0c80c3", |
1219 => x"ee0bac1a", |
1220 => x"0c881608", |
1221 => x"75710c75", |
1222 => x"84120c75", |
1223 => x"88120c57", |
1224 => x"890b8c18", |
1225 => x"23810b8e", |
1226 => x"18237490", |
1227 => x"180c7494", |
1228 => x"180c7498", |
1229 => x"180c769c", |
1230 => x"180c80c1", |
1231 => x"d50ba018", |
1232 => x"0c80c2a1", |
1233 => x"0ba4180c", |
1234 => x"80c39d0b", |
1235 => x"a8180c80", |
1236 => x"c3ee0bac", |
1237 => x"180c8c16", |
1238 => x"0875710c", |
1239 => x"7584120c", |
1240 => x"7588120c", |
1241 => x"548a0b8c", |
1242 => x"1523820b", |
1243 => x"8e152374", |
1244 => x"90150c74", |
1245 => x"94150c74", |
1246 => x"98150c73", |
1247 => x"9c150c80", |
1248 => x"c1d50ba0", |
1249 => x"150c80c2", |
1250 => x"a10ba415", |
1251 => x"0c80c39d", |
1252 => x"0ba8150c", |
1253 => x"80c3ee0b", |
1254 => x"ac150c84", |
1255 => x"dc168811", |
1256 => x"08841208", |
1257 => x"ff055757", |
1258 => x"57807524", |
1259 => x"9f388c16", |
1260 => x"2270902b", |
1261 => x"70902c51", |
1262 => x"55597380", |
1263 => x"2e80ed38", |
1264 => x"80dc16ff", |
1265 => x"16565674", |
1266 => x"8025e338", |
1267 => x"76085574", |
1268 => x"802e8f38", |
1269 => x"74881108", |
1270 => x"841208ff", |
1271 => x"05575757", |
1272 => x"c83982fc", |
1273 => x"5277518a", |
1274 => x"df3f8008", |
1275 => x"80085556", |
1276 => x"8008802e", |
1277 => x"a3388008", |
1278 => x"8c057580", |
1279 => x"080c5484", |
1280 => x"0b800884", |
1281 => x"050c7380", |
1282 => x"0888050c", |
1283 => x"82f05374", |
1284 => x"52735197", |
1285 => x"fd3f7554", |
1286 => x"7374780c", |
1287 => x"5573ffb4", |
1288 => x"388c780c", |
1289 => x"800b800c", |
1290 => x"8a3d0d04", |
1291 => x"810b8c17", |
1292 => x"2373760c", |
1293 => x"7388170c", |
1294 => x"7384170c", |
1295 => x"7390170c", |
1296 => x"7394170c", |
1297 => x"7398170c", |
1298 => x"ff0b8e17", |
1299 => x"2373b017", |
1300 => x"0c73b417", |
1301 => x"0c7380c4", |
1302 => x"170c7380", |
1303 => x"c8170c75", |
1304 => x"800c8a3d", |
1305 => x"0d047070", |
1306 => x"a19a5273", |
1307 => x"5186a63f", |
1308 => x"50500470", |
1309 => x"70a19a52", |
1310 => x"80cfe408", |
1311 => x"5186963f", |
1312 => x"505004fb", |
1313 => x"3d0d7770", |
1314 => x"52569890", |
1315 => x"3f80d7a0", |
1316 => x"0b880508", |
1317 => x"841108fc", |
1318 => x"06707b31", |
1319 => x"9fef05e0", |
1320 => x"8006e080", |
1321 => x"05525555", |
1322 => x"a0807524", |
1323 => x"94388052", |
1324 => x"755197ea", |
1325 => x"3f80d7a8", |
1326 => x"08145372", |
1327 => x"80082e8f", |
1328 => x"38755197", |
1329 => x"d83f8053", |
1330 => x"72800c87", |
1331 => x"3d0d0474", |
1332 => x"30527551", |
1333 => x"97c83f80", |
1334 => x"08ff2ea8", |
1335 => x"3880d7a0", |
1336 => x"0b880508", |
1337 => x"74763181", |
1338 => x"0784120c", |
1339 => x"5380d6e4", |
1340 => x"08753180", |
1341 => x"d6e40c75", |
1342 => x"5197a23f", |
1343 => x"810b800c", |
1344 => x"873d0d04", |
1345 => x"80527551", |
1346 => x"97943f80", |
1347 => x"d7a00b88", |
1348 => x"05088008", |
1349 => x"71315454", |
1350 => x"8f7325ff", |
1351 => x"a4388008", |
1352 => x"80d79408", |
1353 => x"3180d6e4", |
1354 => x"0c728107", |
1355 => x"84150c75", |
1356 => x"5196ea3f", |
1357 => x"8053ff90", |
1358 => x"39f73d0d", |
1359 => x"7b7d545a", |
1360 => x"72802e82", |
1361 => x"83387951", |
1362 => x"96d23ff8", |
1363 => x"13841108", |
1364 => x"70fe0670", |
1365 => x"13841108", |
1366 => x"fc065c57", |
1367 => x"58545780", |
1368 => x"d7a80874", |
1369 => x"2e82de38", |
1370 => x"7784150c", |
1371 => x"80738106", |
1372 => x"56597479", |
1373 => x"2e81d538", |
1374 => x"77148411", |
1375 => x"08810656", |
1376 => x"5374a038", |
1377 => x"77165678", |
1378 => x"81e63888", |
1379 => x"14085574", |
1380 => x"80d7a82e", |
1381 => x"82f9388c", |
1382 => x"1408708c", |
1383 => x"170c7588", |
1384 => x"120c5875", |
1385 => x"81078418", |
1386 => x"0c751776", |
1387 => x"710c5478", |
1388 => x"81913883", |
1389 => x"ff762781", |
1390 => x"c8387589", |
1391 => x"2a76832a", |
1392 => x"54547380", |
1393 => x"2ebf3875", |
1394 => x"862ab805", |
1395 => x"53847427", |
1396 => x"b43880db", |
1397 => x"14539474", |
1398 => x"27ab3875", |
1399 => x"8c2a80ee", |
1400 => x"055380d4", |
1401 => x"74279e38", |
1402 => x"758f2a80", |
1403 => x"f7055382", |
1404 => x"d4742791", |
1405 => x"3875922a", |
1406 => x"80fc0553", |
1407 => x"8ad47427", |
1408 => x"843880fe", |
1409 => x"53721010", |
1410 => x"1080d7a0", |
1411 => x"05881108", |
1412 => x"55557375", |
1413 => x"2e82bf38", |
1414 => x"841408fc", |
1415 => x"06597579", |
1416 => x"278d3888", |
1417 => x"14085473", |
1418 => x"752e0981", |
1419 => x"06ea388c", |
1420 => x"1408708c", |
1421 => x"190c7488", |
1422 => x"190c7788", |
1423 => x"120c5576", |
1424 => x"8c150c79", |
1425 => x"5194d63f", |
1426 => x"8b3d0d04", |
1427 => x"76087771", |
1428 => x"31587605", |
1429 => x"88180856", |
1430 => x"567480d7", |
1431 => x"a82e80e0", |
1432 => x"388c1708", |
1433 => x"708c170c", |
1434 => x"7588120c", |
1435 => x"53fe8939", |
1436 => x"8814088c", |
1437 => x"1508708c", |
1438 => x"130c5988", |
1439 => x"190cfea3", |
1440 => x"3975832a", |
1441 => x"70545480", |
1442 => x"74248198", |
1443 => x"3872822c", |
1444 => x"81712b80", |
1445 => x"d7a40807", |
1446 => x"80d7a00b", |
1447 => x"84050c74", |
1448 => x"10101080", |
1449 => x"d7a00588", |
1450 => x"1108718c", |
1451 => x"1b0c7088", |
1452 => x"1b0c7988", |
1453 => x"130c565a", |
1454 => x"55768c15", |
1455 => x"0cff8439", |
1456 => x"8159fdb4", |
1457 => x"39771673", |
1458 => x"81065455", |
1459 => x"72983876", |
1460 => x"08777131", |
1461 => x"5875058c", |
1462 => x"18088819", |
1463 => x"08718c12", |
1464 => x"0c88120c", |
1465 => x"55557481", |
1466 => x"0784180c", |
1467 => x"7680d7a0", |
1468 => x"0b88050c", |
1469 => x"80d79c08", |
1470 => x"7526fec7", |
1471 => x"3880d798", |
1472 => x"08527951", |
1473 => x"fafd3f79", |
1474 => x"5193923f", |
1475 => x"feba3981", |
1476 => x"778c170c", |
1477 => x"7788170c", |
1478 => x"758c190c", |
1479 => x"7588190c", |
1480 => x"59fd8039", |
1481 => x"83147082", |
1482 => x"2c81712b", |
1483 => x"80d7a408", |
1484 => x"0780d7a0", |
1485 => x"0b84050c", |
1486 => x"75101010", |
1487 => x"80d7a005", |
1488 => x"88110871", |
1489 => x"8c1c0c70", |
1490 => x"881c0c7a", |
1491 => x"88130c57", |
1492 => x"5b5653fe", |
1493 => x"e4398073", |
1494 => x"24a33872", |
1495 => x"822c8171", |
1496 => x"2b80d7a4", |
1497 => x"080780d7", |
1498 => x"a00b8405", |
1499 => x"0c58748c", |
1500 => x"180c7388", |
1501 => x"180c7688", |
1502 => x"160cfdc3", |
1503 => x"39831370", |
1504 => x"822c8171", |
1505 => x"2b80d7a4", |
1506 => x"080780d7", |
1507 => x"a00b8405", |
1508 => x"0c5953da", |
1509 => x"39f93d0d", |
1510 => x"797b5853", |
1511 => x"800b80cf", |
1512 => x"e4085356", |
1513 => x"72722ebc", |
1514 => x"3884dc13", |
1515 => x"5574762e", |
1516 => x"b3388815", |
1517 => x"08841608", |
1518 => x"ff055454", |
1519 => x"80732499", |
1520 => x"388c1422", |
1521 => x"70902b53", |
1522 => x"587180d4", |
1523 => x"3880dc14", |
1524 => x"ff145454", |
1525 => x"728025e9", |
1526 => x"38740855", |
1527 => x"74d43880", |
1528 => x"cfe40852", |
1529 => x"84dc1255", |
1530 => x"74802ead", |
1531 => x"38881508", |
1532 => x"841608ff", |
1533 => x"05545480", |
1534 => x"73249838", |
1535 => x"8c142270", |
1536 => x"902b5358", |
1537 => x"71ad3880", |
1538 => x"dc14ff14", |
1539 => x"54547280", |
1540 => x"25ea3874", |
1541 => x"085574d5", |
1542 => x"3875800c", |
1543 => x"893d0d04", |
1544 => x"7351762d", |
1545 => x"75800807", |
1546 => x"80dc15ff", |
1547 => x"15555556", |
1548 => x"ffa23973", |
1549 => x"51762d75", |
1550 => x"80080780", |
1551 => x"dc15ff15", |
1552 => x"555556ca", |
1553 => x"39ea3d0d", |
1554 => x"688c1122", |
1555 => x"700a100a", |
1556 => x"81065758", |
1557 => x"567480e4", |
1558 => x"388e1622", |
1559 => x"70902b70", |
1560 => x"902c5155", |
1561 => x"58807424", |
1562 => x"b138983d", |
1563 => x"c4055373", |
1564 => x"5280cfe4", |
1565 => x"08519481", |
1566 => x"3f800b80", |
1567 => x"08249738", |
1568 => x"7983e080", |
1569 => x"06547380", |
1570 => x"c0802e81", |
1571 => x"8f387382", |
1572 => x"80802e81", |
1573 => x"91388c16", |
1574 => x"22577690", |
1575 => x"80075473", |
1576 => x"8c172388", |
1577 => x"805280cf", |
1578 => x"e4085181", |
1579 => x"9b3f8008", |
1580 => x"9d388c16", |
1581 => x"22820755", |
1582 => x"748c1723", |
1583 => x"80c31670", |
1584 => x"770c9017", |
1585 => x"0c810b94", |
1586 => x"170c983d", |
1587 => x"0d0480cf", |
1588 => x"e408a8e6", |
1589 => x"0bbc120c", |
1590 => x"588c1622", |
1591 => x"81800754", |
1592 => x"738c1723", |
1593 => x"8008760c", |
1594 => x"80089017", |
1595 => x"0c88800b", |
1596 => x"94170c74", |
1597 => x"802ed338", |
1598 => x"8e162270", |
1599 => x"902b7090", |
1600 => x"2c535654", |
1601 => x"9afe3f80", |
1602 => x"08802eff", |
1603 => x"bd388c16", |
1604 => x"22810757", |
1605 => x"768c1723", |
1606 => x"983d0d04", |
1607 => x"810b8c17", |
1608 => x"225855fe", |
1609 => x"f539a816", |
1610 => x"0880c39d", |
1611 => x"2e098106", |
1612 => x"fee4388c", |
1613 => x"16228880", |
1614 => x"0754738c", |
1615 => x"17238880", |
1616 => x"0b80cc17", |
1617 => x"0cfedc39", |
1618 => x"f43d0d7e", |
1619 => x"608b1170", |
1620 => x"f8065b55", |
1621 => x"555d7296", |
1622 => x"26833890", |
1623 => x"58807824", |
1624 => x"74792607", |
1625 => x"55805474", |
1626 => x"742e0981", |
1627 => x"0680ca38", |
1628 => x"7c518ea8", |
1629 => x"3f7783f7", |
1630 => x"2680c538", |
1631 => x"77832a70", |
1632 => x"10101080", |
1633 => x"d7a0058c", |
1634 => x"11085858", |
1635 => x"5475772e", |
1636 => x"81f03884", |
1637 => x"1608fc06", |
1638 => x"8c170888", |
1639 => x"1808718c", |
1640 => x"120c8812", |
1641 => x"0c5b7605", |
1642 => x"84110881", |
1643 => x"0784120c", |
1644 => x"537c518d", |
1645 => x"e83f8816", |
1646 => x"5473800c", |
1647 => x"8e3d0d04", |
1648 => x"77892a78", |
1649 => x"832a5854", |
1650 => x"73802ebf", |
1651 => x"3877862a", |
1652 => x"b8055784", |
1653 => x"7427b438", |
1654 => x"80db1457", |
1655 => x"947427ab", |
1656 => x"38778c2a", |
1657 => x"80ee0557", |
1658 => x"80d47427", |
1659 => x"9e38778f", |
1660 => x"2a80f705", |
1661 => x"5782d474", |
1662 => x"27913877", |
1663 => x"922a80fc", |
1664 => x"05578ad4", |
1665 => x"74278438", |
1666 => x"80fe5776", |
1667 => x"10101080", |
1668 => x"d7a0058c", |
1669 => x"11085653", |
1670 => x"74732ea3", |
1671 => x"38841508", |
1672 => x"fc067079", |
1673 => x"31555673", |
1674 => x"8f2488e4", |
1675 => x"38738025", |
1676 => x"88e6388c", |
1677 => x"15085574", |
1678 => x"732e0981", |
1679 => x"06df3881", |
1680 => x"175980d7", |
1681 => x"b0085675", |
1682 => x"80d7a82e", |
1683 => x"82cc3884", |
1684 => x"1608fc06", |
1685 => x"70793155", |
1686 => x"55738f24", |
1687 => x"bb3880d7", |
1688 => x"a80b80d7", |
1689 => x"b40c80d7", |
1690 => x"a80b80d7", |
1691 => x"b00c8074", |
1692 => x"2480db38", |
1693 => x"74168411", |
1694 => x"08810784", |
1695 => x"120c53fe", |
1696 => x"b0398816", |
1697 => x"8c110857", |
1698 => x"5975792e", |
1699 => x"098106fe", |
1700 => x"82388214", |
1701 => x"59ffab39", |
1702 => x"77167881", |
1703 => x"0784180c", |
1704 => x"7080d7b4", |
1705 => x"0c7080d7", |
1706 => x"b00c80d7", |
1707 => x"a80b8c12", |
1708 => x"0c8c1108", |
1709 => x"88120c74", |
1710 => x"81078412", |
1711 => x"0c740574", |
1712 => x"710c5b7c", |
1713 => x"518bd63f", |
1714 => x"881654fd", |
1715 => x"ec3983ff", |
1716 => x"75278391", |
1717 => x"3874892a", |
1718 => x"75832a54", |
1719 => x"5473802e", |
1720 => x"bf387486", |
1721 => x"2ab80553", |
1722 => x"847427b4", |
1723 => x"3880db14", |
1724 => x"53947427", |
1725 => x"ab38748c", |
1726 => x"2a80ee05", |
1727 => x"5380d474", |
1728 => x"279e3874", |
1729 => x"8f2a80f7", |
1730 => x"055382d4", |
1731 => x"74279138", |
1732 => x"74922a80", |
1733 => x"fc05538a", |
1734 => x"d4742784", |
1735 => x"3880fe53", |
1736 => x"72101010", |
1737 => x"80d7a005", |
1738 => x"88110855", |
1739 => x"5773772e", |
1740 => x"868b3884", |
1741 => x"1408fc06", |
1742 => x"5b747b27", |
1743 => x"8d388814", |
1744 => x"08547377", |
1745 => x"2e098106", |
1746 => x"ea388c14", |
1747 => x"0880d7a0", |
1748 => x"0b840508", |
1749 => x"718c190c", |
1750 => x"7588190c", |
1751 => x"7788130c", |
1752 => x"5c57758c", |
1753 => x"150c7853", |
1754 => x"80792483", |
1755 => x"98387282", |
1756 => x"2c81712b", |
1757 => x"5656747b", |
1758 => x"2680ca38", |
1759 => x"7a750657", |
1760 => x"7682a338", |
1761 => x"78fc0684", |
1762 => x"05597410", |
1763 => x"707c0655", |
1764 => x"55738292", |
1765 => x"38841959", |
1766 => x"f13980d7", |
1767 => x"a00b8405", |
1768 => x"0879545b", |
1769 => x"788025c6", |
1770 => x"3882da39", |
1771 => x"74097b06", |
1772 => x"7080d7a0", |
1773 => x"0b84050c", |
1774 => x"5b741055", |
1775 => x"747b2685", |
1776 => x"387485bc", |
1777 => x"3880d7a0", |
1778 => x"0b880508", |
1779 => x"70841208", |
1780 => x"fc06707b", |
1781 => x"317b7226", |
1782 => x"8f722507", |
1783 => x"5d575c5c", |
1784 => x"5578802e", |
1785 => x"80d93879", |
1786 => x"1580d798", |
1787 => x"08199011", |
1788 => x"59545680", |
1789 => x"d79408ff", |
1790 => x"2e8838a0", |
1791 => x"8f13e080", |
1792 => x"06577652", |
1793 => x"7c518996", |
1794 => x"3f800854", |
1795 => x"8008ff2e", |
1796 => x"90388008", |
1797 => x"762782a7", |
1798 => x"387480d7", |
1799 => x"a02e829f", |
1800 => x"3880d7a0", |
1801 => x"0b880508", |
1802 => x"55841508", |
1803 => x"fc067079", |
1804 => x"31797226", |
1805 => x"8f722507", |
1806 => x"5d555a7a", |
1807 => x"83f23877", |
1808 => x"81078416", |
1809 => x"0c771570", |
1810 => x"80d7a00b", |
1811 => x"88050c74", |
1812 => x"81078412", |
1813 => x"0c567c51", |
1814 => x"88c33f88", |
1815 => x"15547380", |
1816 => x"0c8e3d0d", |
1817 => x"0474832a", |
1818 => x"70545480", |
1819 => x"7424819b", |
1820 => x"3872822c", |
1821 => x"81712b80", |
1822 => x"d7a40807", |
1823 => x"7080d7a0", |
1824 => x"0b84050c", |
1825 => x"75101010", |
1826 => x"80d7a005", |
1827 => x"88110871", |
1828 => x"8c1b0c70", |
1829 => x"881b0c79", |
1830 => x"88130c57", |
1831 => x"555c5575", |
1832 => x"8c150cfd", |
1833 => x"c1397879", |
1834 => x"10101080", |
1835 => x"d7a00570", |
1836 => x"565b5c8c", |
1837 => x"14085675", |
1838 => x"742ea338", |
1839 => x"841608fc", |
1840 => x"06707931", |
1841 => x"5853768f", |
1842 => x"2483f138", |
1843 => x"76802584", |
1844 => x"af388c16", |
1845 => x"08567574", |
1846 => x"2e098106", |
1847 => x"df388814", |
1848 => x"811a7083", |
1849 => x"06555a54", |
1850 => x"72c9387b", |
1851 => x"83065675", |
1852 => x"802efdb8", |
1853 => x"38ff1cf8", |
1854 => x"1b5b5c88", |
1855 => x"1a087a2e", |
1856 => x"ea38fdb5", |
1857 => x"39831953", |
1858 => x"fce43983", |
1859 => x"1470822c", |
1860 => x"81712b80", |
1861 => x"d7a40807", |
1862 => x"7080d7a0", |
1863 => x"0b84050c", |
1864 => x"76101010", |
1865 => x"80d7a005", |
1866 => x"88110871", |
1867 => x"8c1c0c70", |
1868 => x"881c0c7a", |
1869 => x"88130c58", |
1870 => x"535d5653", |
1871 => x"fee13980", |
1872 => x"d6e40817", |
1873 => x"59800876", |
1874 => x"2e818b38", |
1875 => x"80d79408", |
1876 => x"ff2e848e", |
1877 => x"38737631", |
1878 => x"1980d6e4", |
1879 => x"0c738706", |
1880 => x"70565372", |
1881 => x"802e8838", |
1882 => x"88733170", |
1883 => x"15555576", |
1884 => x"149fff06", |
1885 => x"a0807131", |
1886 => x"1670547e", |
1887 => x"53515386", |
1888 => x"9d3f8008", |
1889 => x"568008ff", |
1890 => x"2e819e38", |
1891 => x"80d6e408", |
1892 => x"137080d6", |
1893 => x"e40c7475", |
1894 => x"80d7a00b", |
1895 => x"88050c77", |
1896 => x"76311581", |
1897 => x"07555659", |
1898 => x"7a80d7a0", |
1899 => x"2e83c038", |
1900 => x"798f2682", |
1901 => x"ef38810b", |
1902 => x"84150c84", |
1903 => x"1508fc06", |
1904 => x"70793179", |
1905 => x"72268f72", |
1906 => x"25075d55", |
1907 => x"5a7a802e", |
1908 => x"fced3880", |
1909 => x"db398008", |
1910 => x"9fff0655", |
1911 => x"74feed38", |
1912 => x"7880d6e4", |
1913 => x"0c80d7a0", |
1914 => x"0b880508", |
1915 => x"7a188107", |
1916 => x"84120c55", |
1917 => x"80d79008", |
1918 => x"79278638", |
1919 => x"7880d790", |
1920 => x"0c80d78c", |
1921 => x"087927fc", |
1922 => x"a0387880", |
1923 => x"d78c0c84", |
1924 => x"1508fc06", |
1925 => x"70793179", |
1926 => x"72268f72", |
1927 => x"25075d55", |
1928 => x"5a7a802e", |
1929 => x"fc993888", |
1930 => x"39807457", |
1931 => x"53fedd39", |
1932 => x"7c5184e9", |
1933 => x"3f800b80", |
1934 => x"0c8e3d0d", |
1935 => x"04807324", |
1936 => x"a5387282", |
1937 => x"2c81712b", |
1938 => x"80d7a408", |
1939 => x"077080d7", |
1940 => x"a00b8405", |
1941 => x"0c5c5a76", |
1942 => x"8c170c73", |
1943 => x"88170c75", |
1944 => x"88180cf9", |
1945 => x"fd398313", |
1946 => x"70822c81", |
1947 => x"712b80d7", |
1948 => x"a4080770", |
1949 => x"80d7a00b", |
1950 => x"84050c5d", |
1951 => x"5b53d839", |
1952 => x"7a75065c", |
1953 => x"7bfc9f38", |
1954 => x"84197510", |
1955 => x"5659f139", |
1956 => x"ff178105", |
1957 => x"59f7ab39", |
1958 => x"8c150888", |
1959 => x"1608718c", |
1960 => x"120c8812", |
1961 => x"0c597515", |
1962 => x"84110881", |
1963 => x"0784120c", |
1964 => x"587c5183", |
1965 => x"e83f8815", |
1966 => x"54fba339", |
1967 => x"77167881", |
1968 => x"0784180c", |
1969 => x"8c170888", |
1970 => x"1808718c", |
1971 => x"120c8812", |
1972 => x"0c5c7080", |
1973 => x"d7b40c70", |
1974 => x"80d7b00c", |
1975 => x"80d7a80b", |
1976 => x"8c120c8c", |
1977 => x"11088812", |
1978 => x"0c778107", |
1979 => x"84120c77", |
1980 => x"0577710c", |
1981 => x"557c5183", |
1982 => x"a43f8816", |
1983 => x"54f5ba39", |
1984 => x"72168411", |
1985 => x"08810784", |
1986 => x"120c588c", |
1987 => x"16088817", |
1988 => x"08718c12", |
1989 => x"0c88120c", |
1990 => x"577c5183", |
1991 => x"803f8816", |
1992 => x"54f59639", |
1993 => x"7284150c", |
1994 => x"f41af806", |
1995 => x"70841d08", |
1996 => x"81060784", |
1997 => x"1d0c701c", |
1998 => x"5556850b", |
1999 => x"84150c85", |
2000 => x"0b88150c", |
2001 => x"8f7627fd", |
2002 => x"ab38881b", |
2003 => x"527c51eb", |
2004 => x"e83f80d7", |
2005 => x"a00b8805", |
2006 => x"0880d6e4", |
2007 => x"085a55fd", |
2008 => x"93397880", |
2009 => x"d6e40c73", |
2010 => x"80d7940c", |
2011 => x"fbef3972", |
2012 => x"84150cfc", |
2013 => x"ff39fb3d", |
2014 => x"0d77707a", |
2015 => x"7c585553", |
2016 => x"568f7527", |
2017 => x"80e63872", |
2018 => x"76078306", |
2019 => x"517080dc", |
2020 => x"38757352", |
2021 => x"54707084", |
2022 => x"05520874", |
2023 => x"70840556", |
2024 => x"0c737170", |
2025 => x"84055308", |
2026 => x"71708405", |
2027 => x"530c7170", |
2028 => x"84055308", |
2029 => x"71708405", |
2030 => x"530c7170", |
2031 => x"84055308", |
2032 => x"71708405", |
2033 => x"530cf016", |
2034 => x"5654748f", |
2035 => x"26c73883", |
2036 => x"75279538", |
2037 => x"70708405", |
2038 => x"52087470", |
2039 => x"8405560c", |
2040 => x"fc155574", |
2041 => x"8326ed38", |
2042 => x"73715452", |
2043 => x"ff155170", |
2044 => x"ff2e9838", |
2045 => x"72708105", |
2046 => x"54337270", |
2047 => x"81055434", |
2048 => x"ff115170", |
2049 => x"ff2e0981", |
2050 => x"06ea3875", |
2051 => x"800c873d", |
2052 => x"0d04fb3d", |
2053 => x"0d777a71", |
2054 => x"028c05a3", |
2055 => x"05335854", |
2056 => x"54568373", |
2057 => x"2780d438", |
2058 => x"75830651", |
2059 => x"7080cc38", |
2060 => x"74882b75", |
2061 => x"07707190", |
2062 => x"2b075551", |
2063 => x"8f7327a7", |
2064 => x"38737270", |
2065 => x"8405540c", |
2066 => x"71747170", |
2067 => x"8405530c", |
2068 => x"74717084", |
2069 => x"05530c74", |
2070 => x"71708405", |
2071 => x"530cf014", |
2072 => x"5452728f", |
2073 => x"26db3883", |
2074 => x"73279038", |
2075 => x"73727084", |
2076 => x"05540cfc", |
2077 => x"13537283", |
2078 => x"26f238ff", |
2079 => x"135170ff", |
2080 => x"2e933874", |
2081 => x"72708105", |
2082 => x"5434ff11", |
2083 => x"5170ff2e", |
2084 => x"098106ef", |
2085 => x"3875800c", |
2086 => x"873d0d04", |
2087 => x"04047070", |
2088 => x"7070800b", |
2089 => x"80dfe00c", |
2090 => x"765184f3", |
2091 => x"3f800853", |
2092 => x"8008ff2e", |
2093 => x"89387280", |
2094 => x"0c505050", |
2095 => x"500480df", |
2096 => x"e0085473", |
2097 => x"802eef38", |
2098 => x"7574710c", |
2099 => x"5272800c", |
2100 => x"50505050", |
2101 => x"04f93d0d", |
2102 => x"797c557b", |
2103 => x"548e1122", |
2104 => x"70902b70", |
2105 => x"902c5557", |
2106 => x"80cfe408", |
2107 => x"53585683", |
2108 => x"f63f8008", |
2109 => x"57800b80", |
2110 => x"08249338", |
2111 => x"80d01608", |
2112 => x"80080580", |
2113 => x"d0170c76", |
2114 => x"800c893d", |
2115 => x"0d048c16", |
2116 => x"2283dfff", |
2117 => x"0655748c", |
2118 => x"17237680", |
2119 => x"0c893d0d", |
2120 => x"04fa3d0d", |
2121 => x"788c1122", |
2122 => x"70882a70", |
2123 => x"81065157", |
2124 => x"585674a9", |
2125 => x"388c1622", |
2126 => x"83dfff06", |
2127 => x"55748c17", |
2128 => x"237a5479", |
2129 => x"538e1622", |
2130 => x"70902b70", |
2131 => x"902c5456", |
2132 => x"80cfe408", |
2133 => x"525681b2", |
2134 => x"3f883d0d", |
2135 => x"04825480", |
2136 => x"538e1622", |
2137 => x"70902b70", |
2138 => x"902c5456", |
2139 => x"80cfe408", |
2140 => x"525782bb", |
2141 => x"3f8c1622", |
2142 => x"83dfff06", |
2143 => x"55748c17", |
2144 => x"237a5479", |
2145 => x"538e1622", |
2146 => x"70902b70", |
2147 => x"902c5456", |
2148 => x"80cfe408", |
2149 => x"525680f2", |
2150 => x"3f883d0d", |
2151 => x"04f93d0d", |
2152 => x"797c557b", |
2153 => x"548e1122", |
2154 => x"70902b70", |
2155 => x"902c5557", |
2156 => x"80cfe408", |
2157 => x"53585681", |
2158 => x"f63f8008", |
2159 => x"578008ff", |
2160 => x"2e99388c", |
2161 => x"1622a080", |
2162 => x"0755748c", |
2163 => x"17238008", |
2164 => x"80d0170c", |
2165 => x"76800c89", |
2166 => x"3d0d048c", |
2167 => x"162283df", |
2168 => x"ff065574", |
2169 => x"8c172376", |
2170 => x"800c893d", |
2171 => x"0d047070", |
2172 => x"70748e11", |
2173 => x"2270902b", |
2174 => x"70902c55", |
2175 => x"51515380", |
2176 => x"cfe40851", |
2177 => x"bd3f5050", |
2178 => x"5004fb3d", |
2179 => x"0d800b80", |
2180 => x"dfe00c7a", |
2181 => x"53795278", |
2182 => x"5182ff3f", |
2183 => x"80085580", |
2184 => x"08ff2e88", |
2185 => x"3874800c", |
2186 => x"873d0d04", |
2187 => x"80dfe008", |
2188 => x"5675802e", |
2189 => x"f0387776", |
2190 => x"710c5474", |
2191 => x"800c873d", |
2192 => x"0d047070", |
2193 => x"7070800b", |
2194 => x"80dfe00c", |
2195 => x"765184cc", |
2196 => x"3f800853", |
2197 => x"8008ff2e", |
2198 => x"89387280", |
2199 => x"0c505050", |
2200 => x"500480df", |
2201 => x"e0085473", |
2202 => x"802eef38", |
2203 => x"7574710c", |
2204 => x"5272800c", |
2205 => x"50505050", |
2206 => x"04fc3d0d", |
2207 => x"800b80df", |
2208 => x"e00c7852", |
2209 => x"775187b3", |
2210 => x"3f800854", |
2211 => x"8008ff2e", |
2212 => x"88387380", |
2213 => x"0c863d0d", |
2214 => x"0480dfe0", |
2215 => x"08557480", |
2216 => x"2ef03876", |
2217 => x"75710c53", |
2218 => x"73800c86", |
2219 => x"3d0d04fb", |
2220 => x"3d0d800b", |
2221 => x"80dfe00c", |
2222 => x"7a537952", |
2223 => x"7851848e", |
2224 => x"3f800855", |
2225 => x"8008ff2e", |
2226 => x"88387480", |
2227 => x"0c873d0d", |
2228 => x"0480dfe0", |
2229 => x"08567580", |
2230 => x"2ef03877", |
2231 => x"76710c54", |
2232 => x"74800c87", |
2233 => x"3d0d04fb", |
2234 => x"3d0d800b", |
2235 => x"80dfe00c", |
2236 => x"7a537952", |
2237 => x"78518296", |
2238 => x"3f800855", |
2239 => x"8008ff2e", |
2240 => x"88387480", |
2241 => x"0c873d0d", |
2242 => x"0480dfe0", |
2243 => x"08567580", |
2244 => x"2ef03877", |
2245 => x"76710c54", |
2246 => x"74800c87", |
2247 => x"3d0d0470", |
2248 => x"707080df", |
2249 => x"d0088938", |
2250 => x"80dfe40b", |
2251 => x"80dfd00c", |
2252 => x"80dfd008", |
2253 => x"75115252", |
2254 => x"ff537087", |
2255 => x"fb808026", |
2256 => x"88387080", |
2257 => x"dfd00c71", |
2258 => x"5372800c", |
2259 => x"50505004", |
2260 => x"fd3d0d80", |
2261 => x"0b80cfd8", |
2262 => x"08545472", |
2263 => x"812e9b38", |
2264 => x"7380dfd4", |
2265 => x"0cc2bf3f", |
2266 => x"c1963f80", |
2267 => x"dfa85281", |
2268 => x"51c3fd3f", |
2269 => x"80085186", |
2270 => x"c23f7280", |
2271 => x"dfd40cc2", |
2272 => x"a53fc0fc", |
2273 => x"3f80dfa8", |
2274 => x"528151c3", |
2275 => x"e33f8008", |
2276 => x"5186a83f", |
2277 => x"00ff3900", |
2278 => x"ff39f53d", |
2279 => x"0d7e6080", |
2280 => x"dfd40870", |
2281 => x"5b585b5b", |
2282 => x"7580c238", |
2283 => x"777a25a1", |
2284 => x"38771b70", |
2285 => x"337081ff", |
2286 => x"06585859", |
2287 => x"758a2e98", |
2288 => x"387681ff", |
2289 => x"0651c1bd", |
2290 => x"3f811858", |
2291 => x"797824e1", |
2292 => x"3879800c", |
2293 => x"8d3d0d04", |
2294 => x"8d51c1a9", |
2295 => x"3f783370", |
2296 => x"81ff0652", |
2297 => x"57c19e3f", |
2298 => x"811858e0", |
2299 => x"3979557a", |
2300 => x"547d5385", |
2301 => x"528d3dfc", |
2302 => x"0551c0c6", |
2303 => x"3f800856", |
2304 => x"85b23f7b", |
2305 => x"80080c75", |
2306 => x"800c8d3d", |
2307 => x"0d04f63d", |
2308 => x"0d7d7f80", |
2309 => x"dfd40870", |
2310 => x"5b585a5a", |
2311 => x"7580c138", |
2312 => x"777925b3", |
2313 => x"38c0b93f", |
2314 => x"800881ff", |
2315 => x"06708d32", |
2316 => x"7030709f", |
2317 => x"2a515157", |
2318 => x"57768a2e", |
2319 => x"80c43875", |
2320 => x"802ebf38", |
2321 => x"771a5676", |
2322 => x"76347651", |
2323 => x"c0b73f81", |
2324 => x"18587878", |
2325 => x"24cf3877", |
2326 => x"5675800c", |
2327 => x"8c3d0d04", |
2328 => x"78557954", |
2329 => x"7c538452", |
2330 => x"8c3dfc05", |
2331 => x"51ffbfd2", |
2332 => x"3f800856", |
2333 => x"84be3f7a", |
2334 => x"80080c75", |
2335 => x"800c8c3d", |
2336 => x"0d04771a", |
2337 => x"598a7934", |
2338 => x"8118588d", |
2339 => x"51ffbff5", |
2340 => x"3f8a51ff", |
2341 => x"bfef3f77", |
2342 => x"56ffbe39", |
2343 => x"fb3d0d80", |
2344 => x"dfd40870", |
2345 => x"56547388", |
2346 => x"3874800c", |
2347 => x"873d0d04", |
2348 => x"77538352", |
2349 => x"873dfc05", |
2350 => x"51ffbf86", |
2351 => x"3f800854", |
2352 => x"83f23f75", |
2353 => x"80080c73", |
2354 => x"800c873d", |
2355 => x"0d04fa3d", |
2356 => x"0d80dfd4", |
2357 => x"08802ea3", |
2358 => x"387a5579", |
2359 => x"54785386", |
2360 => x"52883dfc", |
2361 => x"0551ffbe", |
2362 => x"d93f8008", |
2363 => x"5683c53f", |
2364 => x"7680080c", |
2365 => x"75800c88", |
2366 => x"3d0d0483", |
2367 => x"b73f9d0b", |
2368 => x"80080cff", |
2369 => x"0b800c88", |
2370 => x"3d0d04f7", |
2371 => x"3d0d7b7d", |
2372 => x"5b59bc53", |
2373 => x"80527951", |
2374 => x"f5f83f80", |
2375 => x"70565798", |
2376 => x"56741970", |
2377 => x"3370782b", |
2378 => x"79078118", |
2379 => x"f81a5a58", |
2380 => x"59555884", |
2381 => x"7524ea38", |
2382 => x"767a2384", |
2383 => x"19588070", |
2384 => x"56579856", |
2385 => x"74187033", |
2386 => x"70782b79", |
2387 => x"078118f8", |
2388 => x"1a5a5859", |
2389 => x"51548475", |
2390 => x"24ea3876", |
2391 => x"821b2388", |
2392 => x"19588070", |
2393 => x"56579856", |
2394 => x"74187033", |
2395 => x"70782b79", |
2396 => x"078118f8", |
2397 => x"1a5a5859", |
2398 => x"51548475", |
2399 => x"24ea3876", |
2400 => x"841b0c8c", |
2401 => x"19588070", |
2402 => x"56579856", |
2403 => x"74187033", |
2404 => x"70782b79", |
2405 => x"078118f8", |
2406 => x"1a5a5859", |
2407 => x"51548475", |
2408 => x"24ea3876", |
2409 => x"881b2390", |
2410 => x"19588070", |
2411 => x"56579856", |
2412 => x"74187033", |
2413 => x"70782b79", |
2414 => x"078118f8", |
2415 => x"1a5a5859", |
2416 => x"51548475", |
2417 => x"24ea3876", |
2418 => x"8a1b2394", |
2419 => x"19588070", |
2420 => x"56579856", |
2421 => x"74187033", |
2422 => x"70782b79", |
2423 => x"078118f8", |
2424 => x"1a5a5859", |
2425 => x"51548475", |
2426 => x"24ea3876", |
2427 => x"8c1b2398", |
2428 => x"19588070", |
2429 => x"56579856", |
2430 => x"74187033", |
2431 => x"70782b79", |
2432 => x"078118f8", |
2433 => x"1a5a5859", |
2434 => x"51548475", |
2435 => x"24ea3876", |
2436 => x"8e1b239c", |
2437 => x"19588070", |
2438 => x"5657b856", |
2439 => x"74187033", |
2440 => x"70782b79", |
2441 => x"078118f8", |
2442 => x"1a5a5859", |
2443 => x"5a548875", |
2444 => x"24ea3876", |
2445 => x"901b0c8b", |
2446 => x"3d0d04e9", |
2447 => x"3d0d6a80", |
2448 => x"dfd40857", |
2449 => x"57759338", |
2450 => x"80c0800b", |
2451 => x"84180c75", |
2452 => x"ac180c75", |
2453 => x"800c993d", |
2454 => x"0d04893d", |
2455 => x"70556a54", |
2456 => x"558a5299", |
2457 => x"3dffbc05", |
2458 => x"51ffbbd6", |
2459 => x"3f800877", |
2460 => x"53755256", |
2461 => x"fd953fbc", |
2462 => x"3f778008", |
2463 => x"0c75800c", |
2464 => x"993d0d04", |
2465 => x"fc3d0d81", |
2466 => x"5480dfd4", |
2467 => x"08883873", |
2468 => x"800c863d", |
2469 => x"0d047653", |
2470 => x"97b95286", |
2471 => x"3dfc0551", |
2472 => x"ffbb9f3f", |
2473 => x"8008548c", |
2474 => x"3f748008", |
2475 => x"0c73800c", |
2476 => x"863d0d04", |
2477 => x"80cfe408", |
2478 => x"800c04f7", |
2479 => x"3d0d7b80", |
2480 => x"cfe40882", |
2481 => x"c811085a", |
2482 => x"545a7780", |
2483 => x"2e80da38", |
2484 => x"81881884", |
2485 => x"1908ff05", |
2486 => x"81712b59", |
2487 => x"55598074", |
2488 => x"2480ea38", |
2489 => x"807424b5", |
2490 => x"3873822b", |
2491 => x"78118805", |
2492 => x"56568180", |
2493 => x"19087706", |
2494 => x"5372802e", |
2495 => x"b6387816", |
2496 => x"70085353", |
2497 => x"79517408", |
2498 => x"53722dff", |
2499 => x"14fc17fc", |
2500 => x"1779812c", |
2501 => x"5a575754", |
2502 => x"738025d6", |
2503 => x"38770858", |
2504 => x"77ffad38", |
2505 => x"80cfe408", |
2506 => x"53bc1308", |
2507 => x"a5387951", |
2508 => x"f8e23f74", |
2509 => x"0853722d", |
2510 => x"ff14fc17", |
2511 => x"fc177981", |
2512 => x"2c5a5757", |
2513 => x"54738025", |
2514 => x"ffa838d1", |
2515 => x"398057ff", |
2516 => x"93397251", |
2517 => x"bc130854", |
2518 => x"732d7951", |
2519 => x"f8b63f70", |
2520 => x"7080dfb0", |
2521 => x"0bfc0570", |
2522 => x"08525270", |
2523 => x"ff2e9138", |
2524 => x"702dfc12", |
2525 => x"70085252", |
2526 => x"70ff2e09", |
2527 => x"8106f138", |
2528 => x"50500404", |
2529 => x"ffbb8c3f", |
2530 => x"04000000", |
2531 => x"00000040", |
2532 => x"48656c6c", |
2533 => x"6f20776f", |
2534 => x"726c6420", |
2535 => x"310a0000", |
2536 => x"48656c6c", |
2537 => x"6f20776f", |
2538 => x"726c6420", |
2539 => x"320a0000", |
2540 => x"0a000000", |
2541 => x"43000000", |
2542 => x"64756d6d", |
2543 => x"792e6578", |
2544 => x"65000000", |
2545 => x"00ffffff", |
2546 => x"ff00ffff", |
2547 => x"ffff00ff", |
2548 => x"ffffff00", |
2549 => x"00000000", |
2550 => x"00000000", |
2551 => x"00000000", |
2552 => x"00002fb8", |
2553 => x"000027e8", |
2554 => x"00000000", |
2555 => x"00002a50", |
2556 => x"00002aac", |
2557 => x"00002b08", |
2558 => x"00000000", |
2559 => x"00000000", |
2560 => x"00000000", |
2561 => x"00000000", |
2562 => x"00000000", |
2563 => x"00000000", |
2564 => x"00000000", |
2565 => x"00000000", |
2566 => x"00000000", |
2567 => x"000027b4", |
2568 => x"00000000", |
2569 => x"00000000", |
2570 => x"00000000", |
2571 => x"00000000", |
2572 => x"00000000", |
2573 => x"00000000", |
2574 => x"00000000", |
2575 => x"00000000", |
2576 => x"00000000", |
2577 => x"00000000", |
2578 => x"00000000", |
2579 => x"00000000", |
2580 => x"00000000", |
2581 => x"00000000", |
2582 => x"00000000", |
2583 => x"00000000", |
2584 => x"00000000", |
2585 => x"00000000", |
2586 => x"00000000", |
2587 => x"00000000", |
2588 => x"00000000", |
2589 => x"00000000", |
2590 => x"00000000", |
2591 => x"00000000", |
2592 => x"00000000", |
2593 => x"00000000", |
2594 => x"00000000", |
2595 => x"00000000", |
2596 => x"00000001", |
2597 => x"330eabcd", |
2598 => x"1234e66d", |
2599 => x"deec0005", |
2600 => x"000b0000", |
2601 => x"00000000", |
2602 => x"00000000", |
2603 => x"00000000", |
2604 => x"00000000", |
2605 => x"00000000", |
2606 => x"00000000", |
2607 => x"00000000", |
2608 => x"00000000", |
2609 => x"00000000", |
2610 => x"00000000", |
2611 => x"00000000", |
2612 => x"00000000", |
2613 => x"00000000", |
2614 => x"00000000", |
2615 => x"00000000", |
2616 => x"00000000", |
2617 => x"00000000", |
2618 => x"00000000", |
2619 => x"00000000", |
2620 => x"00000000", |
2621 => x"00000000", |
2622 => x"00000000", |
2623 => x"00000000", |
2624 => x"00000000", |
2625 => x"00000000", |
2626 => x"00000000", |
2627 => x"00000000", |
2628 => x"00000000", |
2629 => x"00000000", |
2630 => x"00000000", |
2631 => x"00000000", |
2632 => x"00000000", |
2633 => x"00000000", |
2634 => x"00000000", |
2635 => x"00000000", |
2636 => x"00000000", |
2637 => x"00000000", |
2638 => x"00000000", |
2639 => x"00000000", |
2640 => x"00000000", |
2641 => x"00000000", |
2642 => x"00000000", |
2643 => x"00000000", |
2644 => x"00000000", |
2645 => x"00000000", |
2646 => x"00000000", |
2647 => x"00000000", |
2648 => x"00000000", |
2649 => x"00000000", |
2650 => x"00000000", |
2651 => x"00000000", |
2652 => x"00000000", |
2653 => x"00000000", |
2654 => x"00000000", |
2655 => x"00000000", |
2656 => x"00000000", |
2657 => x"00000000", |
2658 => x"00000000", |
2659 => x"00000000", |
2660 => x"00000000", |
2661 => x"00000000", |
2662 => x"00000000", |
2663 => x"00000000", |
2664 => x"00000000", |
2665 => x"00000000", |
2666 => x"00000000", |
2667 => x"00000000", |
2668 => x"00000000", |
2669 => x"00000000", |
2670 => x"00000000", |
2671 => x"00000000", |
2672 => x"00000000", |
2673 => x"00000000", |
2674 => x"00000000", |
2675 => x"00000000", |
2676 => x"00000000", |
2677 => x"00000000", |
2678 => x"00000000", |
2679 => x"00000000", |
2680 => x"00000000", |
2681 => x"00000000", |
2682 => x"00000000", |
2683 => x"00000000", |
2684 => x"00000000", |
2685 => x"00000000", |
2686 => x"00000000", |
2687 => x"00000000", |
2688 => x"00000000", |
2689 => x"00000000", |
2690 => x"00000000", |
2691 => x"00000000", |
2692 => x"00000000", |
2693 => x"00000000", |
2694 => x"00000000", |
2695 => x"00000000", |
2696 => x"00000000", |
2697 => x"00000000", |
2698 => x"00000000", |
2699 => x"00000000", |
2700 => x"00000000", |
2701 => x"00000000", |
2702 => x"00000000", |
2703 => x"00000000", |
2704 => x"00000000", |
2705 => x"00000000", |
2706 => x"00000000", |
2707 => x"00000000", |
2708 => x"00000000", |
2709 => x"00000000", |
2710 => x"00000000", |
2711 => x"00000000", |
2712 => x"00000000", |
2713 => x"00000000", |
2714 => x"00000000", |
2715 => x"00000000", |
2716 => x"00000000", |
2717 => x"00000000", |
2718 => x"00000000", |
2719 => x"00000000", |
2720 => x"00000000", |
2721 => x"00000000", |
2722 => x"00000000", |
2723 => x"00000000", |
2724 => x"00000000", |
2725 => x"00000000", |
2726 => x"00000000", |
2727 => x"00000000", |
2728 => x"00000000", |
2729 => x"00000000", |
2730 => x"00000000", |
2731 => x"00000000", |
2732 => x"00000000", |
2733 => x"00000000", |
2734 => x"00000000", |
2735 => x"00000000", |
2736 => x"00000000", |
2737 => x"00000000", |
2738 => x"00000000", |
2739 => x"00000000", |
2740 => x"00000000", |
2741 => x"00000000", |
2742 => x"00000000", |
2743 => x"00000000", |
2744 => x"00000000", |
2745 => x"00000000", |
2746 => x"00000000", |
2747 => x"00000000", |
2748 => x"00000000", |
2749 => x"00000000", |
2750 => x"00000000", |
2751 => x"00000000", |
2752 => x"00000000", |
2753 => x"00000000", |
2754 => x"00000000", |
2755 => x"00000000", |
2756 => x"00000000", |
2757 => x"00000000", |
2758 => x"00000000", |
2759 => x"00000000", |
2760 => x"00000000", |
2761 => x"00000000", |
2762 => x"00000000", |
2763 => x"00000000", |
2764 => x"00000000", |
2765 => x"00000000", |
2766 => x"00000000", |
2767 => x"00000000", |
2768 => x"00000000", |
2769 => x"00000000", |
2770 => x"00000000", |
2771 => x"00000000", |
2772 => x"00000000", |
2773 => x"00000000", |
2774 => x"00000000", |
2775 => x"00000000", |
2776 => x"00000000", |
2777 => x"00000000", |
2778 => x"00000000", |
2779 => x"00000000", |
2780 => x"00000000", |
2781 => x"00000000", |
2782 => x"00000000", |
2783 => x"00000000", |
2784 => x"00000000", |
2785 => x"00000000", |
2786 => x"00000000", |
2787 => x"00000000", |
2788 => x"00000000", |
2789 => x"ffffffff", |
2790 => x"00000000", |
2791 => x"00020000", |
2792 => x"00000000", |
2793 => x"00000000", |
2794 => x"00002ba0", |
2795 => x"00002ba0", |
2796 => x"00002ba8", |
2797 => x"00002ba8", |
2798 => x"00002bb0", |
2799 => x"00002bb0", |
2800 => x"00002bb8", |
2801 => x"00002bb8", |
2802 => x"00002bc0", |
2803 => x"00002bc0", |
2804 => x"00002bc8", |
2805 => x"00002bc8", |
2806 => x"00002bd0", |
2807 => x"00002bd0", |
2808 => x"00002bd8", |
2809 => x"00002bd8", |
2810 => x"00002be0", |
2811 => x"00002be0", |
2812 => x"00002be8", |
2813 => x"00002be8", |
2814 => x"00002bf0", |
2815 => x"00002bf0", |
2816 => x"00002bf8", |
2817 => x"00002bf8", |
2818 => x"00002c00", |
2819 => x"00002c00", |
2820 => x"00002c08", |
2821 => x"00002c08", |
2822 => x"00002c10", |
2823 => x"00002c10", |
2824 => x"00002c18", |
2825 => x"00002c18", |
2826 => x"00002c20", |
2827 => x"00002c20", |
2828 => x"00002c28", |
2829 => x"00002c28", |
2830 => x"00002c30", |
2831 => x"00002c30", |
2832 => x"00002c38", |
2833 => x"00002c38", |
2834 => x"00002c40", |
2835 => x"00002c40", |
2836 => x"00002c48", |
2837 => x"00002c48", |
2838 => x"00002c50", |
2839 => x"00002c50", |
2840 => x"00002c58", |
2841 => x"00002c58", |
2842 => x"00002c60", |
2843 => x"00002c60", |
2844 => x"00002c68", |
2845 => x"00002c68", |
2846 => x"00002c70", |
2847 => x"00002c70", |
2848 => x"00002c78", |
2849 => x"00002c78", |
2850 => x"00002c80", |
2851 => x"00002c80", |
2852 => x"00002c88", |
2853 => x"00002c88", |
2854 => x"00002c90", |
2855 => x"00002c90", |
2856 => x"00002c98", |
2857 => x"00002c98", |
2858 => x"00002ca0", |
2859 => x"00002ca0", |
2860 => x"00002ca8", |
2861 => x"00002ca8", |
2862 => x"00002cb0", |
2863 => x"00002cb0", |
2864 => x"00002cb8", |
2865 => x"00002cb8", |
2866 => x"00002cc0", |
2867 => x"00002cc0", |
2868 => x"00002cc8", |
2869 => x"00002cc8", |
2870 => x"00002cd0", |
2871 => x"00002cd0", |
2872 => x"00002cd8", |
2873 => x"00002cd8", |
2874 => x"00002ce0", |
2875 => x"00002ce0", |
2876 => x"00002ce8", |
2877 => x"00002ce8", |
2878 => x"00002cf0", |
2879 => x"00002cf0", |
2880 => x"00002cf8", |
2881 => x"00002cf8", |
2882 => x"00002d00", |
2883 => x"00002d00", |
2884 => x"00002d08", |
2885 => x"00002d08", |
2886 => x"00002d10", |
2887 => x"00002d10", |
2888 => x"00002d18", |
2889 => x"00002d18", |
2890 => x"00002d20", |
2891 => x"00002d20", |
2892 => x"00002d28", |
2893 => x"00002d28", |
2894 => x"00002d30", |
2895 => x"00002d30", |
2896 => x"00002d38", |
2897 => x"00002d38", |
2898 => x"00002d40", |
2899 => x"00002d40", |
2900 => x"00002d48", |
2901 => x"00002d48", |
2902 => x"00002d50", |
2903 => x"00002d50", |
2904 => x"00002d58", |
2905 => x"00002d58", |
2906 => x"00002d60", |
2907 => x"00002d60", |
2908 => x"00002d68", |
2909 => x"00002d68", |
2910 => x"00002d70", |
2911 => x"00002d70", |
2912 => x"00002d78", |
2913 => x"00002d78", |
2914 => x"00002d80", |
2915 => x"00002d80", |
2916 => x"00002d88", |
2917 => x"00002d88", |
2918 => x"00002d90", |
2919 => x"00002d90", |
2920 => x"00002d98", |
2921 => x"00002d98", |
2922 => x"00002da0", |
2923 => x"00002da0", |
2924 => x"00002da8", |
2925 => x"00002da8", |
2926 => x"00002db0", |
2927 => x"00002db0", |
2928 => x"00002db8", |
2929 => x"00002db8", |
2930 => x"00002dc0", |
2931 => x"00002dc0", |
2932 => x"00002dc8", |
2933 => x"00002dc8", |
2934 => x"00002dd0", |
2935 => x"00002dd0", |
2936 => x"00002dd8", |
2937 => x"00002dd8", |
2938 => x"00002de0", |
2939 => x"00002de0", |
2940 => x"00002de8", |
2941 => x"00002de8", |
2942 => x"00002df0", |
2943 => x"00002df0", |
2944 => x"00002df8", |
2945 => x"00002df8", |
2946 => x"00002e00", |
2947 => x"00002e00", |
2948 => x"00002e08", |
2949 => x"00002e08", |
2950 => x"00002e10", |
2951 => x"00002e10", |
2952 => x"00002e18", |
2953 => x"00002e18", |
2954 => x"00002e20", |
2955 => x"00002e20", |
2956 => x"00002e28", |
2957 => x"00002e28", |
2958 => x"00002e30", |
2959 => x"00002e30", |
2960 => x"00002e38", |
2961 => x"00002e38", |
2962 => x"00002e40", |
2963 => x"00002e40", |
2964 => x"00002e48", |
2965 => x"00002e48", |
2966 => x"00002e50", |
2967 => x"00002e50", |
2968 => x"00002e58", |
2969 => x"00002e58", |
2970 => x"00002e60", |
2971 => x"00002e60", |
2972 => x"00002e68", |
2973 => x"00002e68", |
2974 => x"00002e70", |
2975 => x"00002e70", |
2976 => x"00002e78", |
2977 => x"00002e78", |
2978 => x"00002e80", |
2979 => x"00002e80", |
2980 => x"00002e88", |
2981 => x"00002e88", |
2982 => x"00002e90", |
2983 => x"00002e90", |
2984 => x"00002e98", |
2985 => x"00002e98", |
2986 => x"00002ea0", |
2987 => x"00002ea0", |
2988 => x"00002ea8", |
2989 => x"00002ea8", |
2990 => x"00002eb0", |
2991 => x"00002eb0", |
2992 => x"00002eb8", |
2993 => x"00002eb8", |
2994 => x"00002ec0", |
2995 => x"00002ec0", |
2996 => x"00002ec8", |
2997 => x"00002ec8", |
2998 => x"00002ed0", |
2999 => x"00002ed0", |
3000 => x"00002ed8", |
3001 => x"00002ed8", |
3002 => x"00002ee0", |
3003 => x"00002ee0", |
3004 => x"00002ee8", |
3005 => x"00002ee8", |
3006 => x"00002ef0", |
3007 => x"00002ef0", |
3008 => x"00002ef8", |
3009 => x"00002ef8", |
3010 => x"00002f00", |
3011 => x"00002f00", |
3012 => x"00002f08", |
3013 => x"00002f08", |
3014 => x"00002f10", |
3015 => x"00002f10", |
3016 => x"00002f18", |
3017 => x"00002f18", |
3018 => x"00002f20", |
3019 => x"00002f20", |
3020 => x"00002f28", |
3021 => x"00002f28", |
3022 => x"00002f30", |
3023 => x"00002f30", |
3024 => x"00002f38", |
3025 => x"00002f38", |
3026 => x"00002f40", |
3027 => x"00002f40", |
3028 => x"00002f48", |
3029 => x"00002f48", |
3030 => x"00002f50", |
3031 => x"00002f50", |
3032 => x"00002f58", |
3033 => x"00002f58", |
3034 => x"00002f60", |
3035 => x"00002f60", |
3036 => x"00002f68", |
3037 => x"00002f68", |
3038 => x"00002f70", |
3039 => x"00002f70", |
3040 => x"00002f78", |
3041 => x"00002f78", |
3042 => x"00002f80", |
3043 => x"00002f80", |
3044 => x"00002f88", |
3045 => x"00002f88", |
3046 => x"00002f90", |
3047 => x"00002f90", |
3048 => x"00002f98", |
3049 => x"00002f98", |
3050 => x"000027b8", |
3051 => x"ffffffff", |
3052 => x"00000000", |
3053 => x"ffffffff", |
3054 => x"00000000", |
/zpu/zpu4/test/hello/hello.c
0,0 → 1,47
/* |
* Small hello world example, does not use printf() |
*/ |
#include <stdio.h> |
|
int j; |
int k; |
|
int main(int argc, char **argv) |
{ |
int i; |
for (i=0; i< 10; i++) |
{ |
puts("Hello world 1\n"); |
puts("Hello world 2\n"); |
j=-4; |
if ((j>>1)!=-2) |
{ |
abort(); |
} |
|
k=10; |
if (k*j!=-40) |
{ |
abort(); |
} |
|
j=10; |
k=10000000; |
if (k*j!=100000000) |
{ |
abort(); |
} |
|
j=0x80000000; |
k=0xffffffff; |
if (j>k) |
{ |
abort(); |
} |
} |
if (i!=10) |
{ |
abort(); |
} |
|
} |
/zpu/zpu4/test/hello/build.sh
0,0 → 1,4
zpu-elf-gcc -O3 -phi `pwd`/hello.c -o hello.elf -Wl,--relax -Wl,--gc-sections -g |
zpu-elf-objdump --disassemble-all >hello.dis hello.elf |
zpu-elf-objcopy -O binary hello.elf hello.bin |
java -classpath ../../../../sw/simulator/zpusim.jar com.zylin.zpu.simulator.tools.MakeRam hello.bin >hello.ram |
/zpu/zpu4/test/hello/hello.elf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
zpu/zpu4/test/hello/hello.elf
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: zpu/zpu4/test/hello/hello.bin
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: zpu/zpu4/test/hello/hello.bin
===================================================================
--- zpu/zpu4/test/hello/hello.bin (nonexistent)
+++ zpu/zpu4/test/hello/hello.bin (revision 93)
zpu/zpu4/test/hello/hello.bin
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: zpu/zpu4/test/dmips/dmips.elf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: zpu/zpu4/test/dmips/dmips.elf
===================================================================
--- zpu/zpu4/test/dmips/dmips.elf (nonexistent)
+++ zpu/zpu4/test/dmips/dmips.elf (revision 93)
zpu/zpu4/test/dmips/dmips.elf
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: zpu/zpu4/test/dmips/dmips.bin
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: zpu/zpu4/test/dmips/dmips.bin
===================================================================
--- zpu/zpu4/test/dmips/dmips.bin (nonexistent)
+++ zpu/zpu4/test/dmips/dmips.bin (revision 93)
zpu/zpu4/test/dmips/dmips.bin
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: zpu/zpu4/test/dmips/build.sh
===================================================================
--- zpu/zpu4/test/dmips/build.sh (nonexistent)
+++ zpu/zpu4/test/dmips/build.sh (revision 93)
@@ -0,0 +1,4 @@
+zpu-elf-gcc -DTIME ../../../../../../roadshow/dhrystone/dhry_*.c -O3 -Wl,--gc-sections -Wl,--relax -phi -o dmips.elf
+zpu-elf-objdump --disassemble-all >dmips.dis dmips.elf
+zpu-elf-objcopy -O binary dmips.elf dmips.bin
+java -classpath ../../../../sw/simulator/zpusim.jar com.zylin.zpu.simulator.tools.MakeRam dmips.bin >dmips.ram
Index: zpu/zpu4/test/dmips/dmips.ram
===================================================================
--- zpu/zpu4/test/dmips/dmips.ram (nonexistent)
+++ zpu/zpu4/test/dmips/dmips.ram (revision 93)
@@ -0,0 +1,3256 @@
+0 => x"0b0b0b0b",
+1 => x"82700b0b",
+2 => x"80d5f40c",
+3 => x"3a0b0b80",
+4 => x"c4fb0400",
+5 => x"00000000",
+6 => x"00000000",
+7 => x"00000000",
+8 => x"80088408",
+9 => x"88080b0b",
+10 => x"80c5c22d",
+11 => x"880c840c",
+12 => x"800c0400",
+13 => x"00000000",
+14 => x"00000000",
+15 => x"00000000",
+16 => x"71fd0608",
+17 => x"72830609",
+18 => x"81058205",
+19 => x"832b2a83",
+20 => x"ffff0652",
+21 => x"04000000",
+22 => x"00000000",
+23 => x"00000000",
+24 => x"71fd0608",
+25 => x"83ffff73",
+26 => x"83060981",
+27 => x"05820583",
+28 => x"2b2b0906",
+29 => x"7383ffff",
+30 => x"0b0b0b0b",
+31 => x"83a70400",
+32 => x"72098105",
+33 => x"72057373",
+34 => x"09060906",
+35 => x"73097306",
+36 => x"070a8106",
+37 => x"53510400",
+38 => x"00000000",
+39 => x"00000000",
+40 => x"72722473",
+41 => x"732e0753",
+42 => x"51040000",
+43 => x"00000000",
+44 => x"00000000",
+45 => x"00000000",
+46 => x"00000000",
+47 => x"00000000",
+48 => x"71737109",
+49 => x"71068106",
+50 => x"30720a10",
+51 => x"0a720a10",
+52 => x"0a31050a",
+53 => x"81065151",
+54 => x"53510400",
+55 => x"00000000",
+56 => x"72722673",
+57 => x"732e0753",
+58 => x"51040000",
+59 => x"00000000",
+60 => x"00000000",
+61 => x"00000000",
+62 => x"00000000",
+63 => x"00000000",
+64 => x"00000000",
+65 => x"00000000",
+66 => x"00000000",
+67 => x"00000000",
+68 => x"00000000",
+69 => x"00000000",
+70 => x"00000000",
+71 => x"00000000",
+72 => x"0b0b0b88",
+73 => x"c3040000",
+74 => x"00000000",
+75 => x"00000000",
+76 => x"00000000",
+77 => x"00000000",
+78 => x"00000000",
+79 => x"00000000",
+80 => x"720a722b",
+81 => x"0a535104",
+82 => x"00000000",
+83 => x"00000000",
+84 => x"00000000",
+85 => x"00000000",
+86 => x"00000000",
+87 => x"00000000",
+88 => x"72729f06",
+89 => x"0981050b",
+90 => x"0b0b88a6",
+91 => x"05040000",
+92 => x"00000000",
+93 => x"00000000",
+94 => x"00000000",
+95 => x"00000000",
+96 => x"72722aff",
+97 => x"739f062a",
+98 => x"0974090a",
+99 => x"8106ff05",
+100 => x"06075351",
+101 => x"04000000",
+102 => x"00000000",
+103 => x"00000000",
+104 => x"71715351",
+105 => x"020d0406",
+106 => x"73830609",
+107 => x"81058205",
+108 => x"832b0b2b",
+109 => x"0772fc06",
+110 => x"0c515104",
+111 => x"00000000",
+112 => x"72098105",
+113 => x"72050970",
+114 => x"81050906",
+115 => x"0a810653",
+116 => x"51040000",
+117 => x"00000000",
+118 => x"00000000",
+119 => x"00000000",
+120 => x"72098105",
+121 => x"72050970",
+122 => x"81050906",
+123 => x"0a098106",
+124 => x"53510400",
+125 => x"00000000",
+126 => x"00000000",
+127 => x"00000000",
+128 => x"71098105",
+129 => x"52040000",
+130 => x"00000000",
+131 => x"00000000",
+132 => x"00000000",
+133 => x"00000000",
+134 => x"00000000",
+135 => x"00000000",
+136 => x"72720981",
+137 => x"05055351",
+138 => x"04000000",
+139 => x"00000000",
+140 => x"00000000",
+141 => x"00000000",
+142 => x"00000000",
+143 => x"00000000",
+144 => x"72097206",
+145 => x"73730906",
+146 => x"07535104",
+147 => x"00000000",
+148 => x"00000000",
+149 => x"00000000",
+150 => x"00000000",
+151 => x"00000000",
+152 => x"71fc0608",
+153 => x"72830609",
+154 => x"81058305",
+155 => x"1010102a",
+156 => x"81ff0652",
+157 => x"04000000",
+158 => x"00000000",
+159 => x"00000000",
+160 => x"71fc0608",
+161 => x"0b0b80d5",
+162 => x"e0738306",
+163 => x"10100508",
+164 => x"060b0b0b",
+165 => x"88a90400",
+166 => x"00000000",
+167 => x"00000000",
+168 => x"80088408",
+169 => x"88087575",
+170 => x"0b0b0bad",
+171 => x"aa2d5050",
+172 => x"80085688",
+173 => x"0c840c80",
+174 => x"0c510400",
+175 => x"00000000",
+176 => x"80088408",
+177 => x"88087575",
+178 => x"0b0b0bad",
+179 => x"ee2d5050",
+180 => x"80085688",
+181 => x"0c840c80",
+182 => x"0c510400",
+183 => x"00000000",
+184 => x"72097081",
+185 => x"0509060a",
+186 => x"8106ff05",
+187 => x"70547106",
+188 => x"73097274",
+189 => x"05ff0506",
+190 => x"07515151",
+191 => x"04000000",
+192 => x"72097081",
+193 => x"0509060a",
+194 => x"098106ff",
+195 => x"05705471",
+196 => x"06730972",
+197 => x"7405ff05",
+198 => x"06075151",
+199 => x"51040000",
+200 => x"05ff0504",
+201 => x"00000000",
+202 => x"00000000",
+203 => x"00000000",
+204 => x"00000000",
+205 => x"00000000",
+206 => x"00000000",
+207 => x"00000000",
+208 => x"810b0b0b",
+209 => x"80d5f00c",
+210 => x"51040000",
+211 => x"00000000",
+212 => x"00000000",
+213 => x"00000000",
+214 => x"00000000",
+215 => x"00000000",
+216 => x"71810552",
+217 => x"04000000",
+218 => x"00000000",
+219 => x"00000000",
+220 => x"00000000",
+221 => x"00000000",
+222 => x"00000000",
+223 => x"00000000",
+224 => x"00000000",
+225 => x"00000000",
+226 => x"00000000",
+227 => x"00000000",
+228 => x"00000000",
+229 => x"00000000",
+230 => x"00000000",
+231 => x"00000000",
+232 => x"02840572",
+233 => x"10100552",
+234 => x"04000000",
+235 => x"00000000",
+236 => x"00000000",
+237 => x"00000000",
+238 => x"00000000",
+239 => x"00000000",
+240 => x"00000000",
+241 => x"00000000",
+242 => x"00000000",
+243 => x"00000000",
+244 => x"00000000",
+245 => x"00000000",
+246 => x"00000000",
+247 => x"00000000",
+248 => x"717105ff",
+249 => x"05715351",
+250 => x"020d0400",
+251 => x"00000000",
+252 => x"00000000",
+253 => x"00000000",
+254 => x"00000000",
+255 => x"00000000",
+256 => x"82fd3fbf",
+257 => x"a03f0410",
+258 => x"10101010",
+259 => x"10101010",
+260 => x"10101010",
+261 => x"10101010",
+262 => x"10101010",
+263 => x"10101010",
+264 => x"10101010",
+265 => x"10105351",
+266 => x"047381ff",
+267 => x"06738306",
+268 => x"09810583",
+269 => x"05101010",
+270 => x"2b0772fc",
+271 => x"060c5151",
+272 => x"043c0472",
+273 => x"72807281",
+274 => x"06ff0509",
+275 => x"72060571",
+276 => x"1052720a",
+277 => x"100a5372",
+278 => x"ed385151",
+279 => x"535104ff",
+280 => x"3d0d0b0b",
+281 => x"80e5e408",
+282 => x"52710870",
+283 => x"882a8132",
+284 => x"70810651",
+285 => x"515170f1",
+286 => x"3873720c",
+287 => x"833d0d04",
+288 => x"80d5f008",
+289 => x"802ea438",
+290 => x"80d5f408",
+291 => x"822ebd38",
+292 => x"8380800b",
+293 => x"0b0b80e5",
+294 => x"e40c82a0",
+295 => x"800b80e5",
+296 => x"e80c8290",
+297 => x"800b80e5",
+298 => x"ec0c04f8",
+299 => x"808080a4",
+300 => x"0b0b0b80",
+301 => x"e5e40cf8",
+302 => x"80808280",
+303 => x"0b80e5e8",
+304 => x"0cf88080",
+305 => x"84800b80",
+306 => x"e5ec0c04",
+307 => x"80c0a880",
+308 => x"8c0b0b0b",
+309 => x"80e5e40c",
+310 => x"80c0a880",
+311 => x"940b80e5",
+312 => x"e80c0b0b",
+313 => x"80c7d00b",
+314 => x"80e5ec0c",
+315 => x"04f23d0d",
+316 => x"6080e5e8",
+317 => x"08565d82",
+318 => x"750c8059",
+319 => x"805a800b",
+320 => x"8f3d5d5b",
+321 => x"7a101015",
+322 => x"70087108",
+323 => x"719f2c7e",
+324 => x"852b5855",
+325 => x"557d5359",
+326 => x"5799993f",
+327 => x"7d7f7a72",
+328 => x"077c7207",
+329 => x"71716081",
+330 => x"05415f5d",
+331 => x"5b595755",
+332 => x"817b278f",
+333 => x"38767d0c",
+334 => x"77841e0c",
+335 => x"7c800c90",
+336 => x"3d0d0480",
+337 => x"e5e80855",
+338 => x"ffba3970",
+339 => x"7080e5f0",
+340 => x"335170a7",
+341 => x"3880d5fc",
+342 => x"08700852",
+343 => x"5270802e",
+344 => x"94388412",
+345 => x"80d5fc0c",
+346 => x"702d80d5",
+347 => x"fc087008",
+348 => x"525270ee",
+349 => x"38810b80",
+350 => x"e5f03450",
+351 => x"50040470",
+352 => x"0b0b80e5",
+353 => x"e008802e",
+354 => x"8e380b0b",
+355 => x"0b0b800b",
+356 => x"802e0981",
+357 => x"06833850",
+358 => x"040b0b80",
+359 => x"e5e0510b",
+360 => x"0b0bf4dc",
+361 => x"3f500404",
+362 => x"ff3d0d02",
+363 => x"8f053352",
+364 => x"718a2e8a",
+365 => x"387151fd",
+366 => x"a63f833d",
+367 => x"0d048d51",
+368 => x"fd9d3f71",
+369 => x"51fd983f",
+370 => x"833d0d04",
+371 => x"ce3d0db5",
+372 => x"3d707084",
+373 => x"0552088b",
+374 => x"a85c56a5",
+375 => x"3d5e5c80",
+376 => x"75708105",
+377 => x"5733765b",
+378 => x"55587378",
+379 => x"2e80c138",
+380 => x"8e3d5b73",
+381 => x"a52e0981",
+382 => x"0680c538",
+383 => x"78708105",
+384 => x"5a335473",
+385 => x"80e42e81",
+386 => x"b6387380",
+387 => x"e42480c6",
+388 => x"387380e3",
+389 => x"2ea13880",
+390 => x"52a55179",
+391 => x"2d805273",
+392 => x"51792d82",
+393 => x"18587870",
+394 => x"81055a33",
+395 => x"5473c438",
+396 => x"77800cb4",
+397 => x"3d0d047b",
+398 => x"841d8312",
+399 => x"33565d57",
+400 => x"80527351",
+401 => x"792d8118",
+402 => x"79708105",
+403 => x"5b335558",
+404 => x"73ffa038",
+405 => x"db397380",
+406 => x"f32e0981",
+407 => x"06ffb838",
+408 => x"7b841d71",
+409 => x"08595d56",
+410 => x"80773355",
+411 => x"5673762e",
+412 => x"8d388116",
+413 => x"70187033",
+414 => x"57555674",
+415 => x"f538ff16",
+416 => x"55807625",
+417 => x"ffa03876",
+418 => x"70810558",
+419 => x"33548052",
+420 => x"7351792d",
+421 => x"811875ff",
+422 => x"17575758",
+423 => x"807625ff",
+424 => x"85387670",
+425 => x"81055833",
+426 => x"54805273",
+427 => x"51792d81",
+428 => x"1875ff17",
+429 => x"57575875",
+430 => x"8024cc38",
+431 => x"fee8397b",
+432 => x"841d7108",
+433 => x"70719f2c",
+434 => x"5953595d",
+435 => x"56807524",
+436 => x"81913875",
+437 => x"7d7c5856",
+438 => x"54805773",
+439 => x"772e0981",
+440 => x"06b638b0",
+441 => x"7b3402b5",
+442 => x"05567a76",
+443 => x"2e9738ff",
+444 => x"16567533",
+445 => x"75708105",
+446 => x"57348117",
+447 => x"577a762e",
+448 => x"098106eb",
+449 => x"38807534",
+450 => x"767dff12",
+451 => x"57585675",
+452 => x"8024fef3",
+453 => x"38fe8f39",
+454 => x"8a527351",
+455 => x"9fd03f80",
+456 => x"0880c7d4",
+457 => x"05337670",
+458 => x"81055834",
+459 => x"8a527351",
+460 => x"9ef83f80",
+461 => x"08548008",
+462 => x"802effae",
+463 => x"388a5273",
+464 => x"519fab3f",
+465 => x"800880c7",
+466 => x"d4053376",
+467 => x"70810558",
+468 => x"348a5273",
+469 => x"519ed33f",
+470 => x"80085480",
+471 => x"08ffb938",
+472 => x"ff883974",
+473 => x"527653b4",
+474 => x"3dffb805",
+475 => x"51949a3f",
+476 => x"a33d0856",
+477 => x"fedd3980",
+478 => x"3d0d80c1",
+479 => x"0b81b4bc",
+480 => x"34800b81",
+481 => x"b6980c70",
+482 => x"800c823d",
+483 => x"0d04ff3d",
+484 => x"0d800b81",
+485 => x"b4bc3352",
+486 => x"527080c1",
+487 => x"2e993871",
+488 => x"81b69808",
+489 => x"0781b698",
+490 => x"0c80c20b",
+491 => x"81b4c034",
+492 => x"70800c83",
+493 => x"3d0d0481",
+494 => x"0b81b698",
+495 => x"080781b6",
+496 => x"980c80c2",
+497 => x"0b81b4c0",
+498 => x"3470800c",
+499 => x"833d0d04",
+500 => x"fd3d0d75",
+501 => x"70088a05",
+502 => x"535381b4",
+503 => x"bc335170",
+504 => x"80c12e8b",
+505 => x"3873f338",
+506 => x"70800c85",
+507 => x"3d0d04ff",
+508 => x"127081b4",
+509 => x"b8083174",
+510 => x"0c800c85",
+511 => x"3d0d04fc",
+512 => x"3d0d81b4",
+513 => x"c4085574",
+514 => x"802e8c38",
+515 => x"76750871",
+516 => x"0c81b4c4",
+517 => x"0856548c",
+518 => x"155381b4",
+519 => x"b808528a",
+520 => x"518fd43f",
+521 => x"73800c86",
+522 => x"3d0d04fb",
+523 => x"3d0d7770",
+524 => x"085656b0",
+525 => x"5381b4c4",
+526 => x"08527451",
+527 => x"ab943f85",
+528 => x"0b8c170c",
+529 => x"850b8c16",
+530 => x"0c750875",
+531 => x"0c81b4c4",
+532 => x"08547380",
+533 => x"2e8a3873",
+534 => x"08750c81",
+535 => x"b4c40854",
+536 => x"8c145381",
+537 => x"b4b80852",
+538 => x"8a518f8b",
+539 => x"3f841508",
+540 => x"ad38860b",
+541 => x"8c160c88",
+542 => x"15528816",
+543 => x"08518e97",
+544 => x"3f81b4c4",
+545 => x"08700876",
+546 => x"0c548c15",
+547 => x"7054548a",
+548 => x"52730851",
+549 => x"8ee13f73",
+550 => x"800c873d",
+551 => x"0d047508",
+552 => x"54b05373",
+553 => x"527551aa",
+554 => x"a93f7380",
+555 => x"0c873d0d",
+556 => x"04d93d0d",
+557 => x"b0519dcf",
+558 => x"3f800881",
+559 => x"b4b40cb0",
+560 => x"519dc43f",
+561 => x"800881b4",
+562 => x"c40c81b4",
+563 => x"b4088008",
+564 => x"0c800b80",
+565 => x"0884050c",
+566 => x"820b8008",
+567 => x"88050ca8",
+568 => x"0b80088c",
+569 => x"050c9f53",
+570 => x"80c7e052",
+571 => x"80089005",
+572 => x"51a9df3f",
+573 => x"a13d5e9f",
+574 => x"5380c880",
+575 => x"527d51a9",
+576 => x"d13f8a0b",
+577 => x"80f2f80c",
+578 => x"80d2a451",
+579 => x"f9be3f80",
+580 => x"c8a051f9",
+581 => x"b73f80d2",
+582 => x"a451f9b0",
+583 => x"3f80d684",
+584 => x"08802e89",
+585 => x"d33880c8",
+586 => x"d051f9a0",
+587 => x"3f80d2a4",
+588 => x"51f9993f",
+589 => x"80d68008",
+590 => x"5280c8fc",
+591 => x"51f98d3f",
+592 => x"80e69451",
+593 => x"b2ff3f81",
+594 => x"0b9a3d5e",
+595 => x"5b800b80",
+596 => x"d6800825",
+597 => x"82d43890",
+598 => x"3d5f80c1",
+599 => x"0b81b4bc",
+600 => x"34810b81",
+601 => x"b6980c80",
+602 => x"c20b81b4",
+603 => x"c0348240",
+604 => x"835a9f53",
+605 => x"80c9ac52",
+606 => x"7c51a8d6",
+607 => x"3f814180",
+608 => x"7d537e52",
+609 => x"568e943f",
+610 => x"8008762e",
+611 => x"09810683",
+612 => x"38815675",
+613 => x"81b6980c",
+614 => x"7f705856",
+615 => x"758325a2",
+616 => x"38751010",
+617 => x"16fd0542",
+618 => x"a93dffa4",
+619 => x"05538352",
+620 => x"76518cc3",
+621 => x"3f7f8105",
+622 => x"70417058",
+623 => x"56837624",
+624 => x"e0386154",
+625 => x"755380e6",
+626 => x"9c5281b4",
+627 => x"d0518cb7",
+628 => x"3f81b4c4",
+629 => x"08700858",
+630 => x"58b05377",
+631 => x"527651a7",
+632 => x"f13f850b",
+633 => x"8c190c85",
+634 => x"0b8c180c",
+635 => x"7708770c",
+636 => x"81b4c408",
+637 => x"5675802e",
+638 => x"8a387508",
+639 => x"770c81b4",
+640 => x"c408568c",
+641 => x"165381b4",
+642 => x"b808528a",
+643 => x"518be83f",
+644 => x"84170887",
+645 => x"ea38860b",
+646 => x"8c180c88",
+647 => x"17528818",
+648 => x"08518af3",
+649 => x"3f81b4c4",
+650 => x"08700878",
+651 => x"0c568c17",
+652 => x"7054598a",
+653 => x"52780851",
+654 => x"8bbd3f80",
+655 => x"c10b81b4",
+656 => x"c0335757",
+657 => x"767626a2",
+658 => x"3880c352",
+659 => x"76518ca1",
+660 => x"3f800861",
+661 => x"2e89e438",
+662 => x"81177081",
+663 => x"ff0681b4",
+664 => x"c0335858",
+665 => x"58757727",
+666 => x"e0387960",
+667 => x"29627054",
+668 => x"71535b59",
+669 => x"98b43f80",
+670 => x"0840787a",
+671 => x"31708729",
+672 => x"80083180",
+673 => x"088a0581",
+674 => x"b4bc3381",
+675 => x"b4b8085e",
+676 => x"5b525a56",
+677 => x"7780c12e",
+678 => x"89ce387b",
+679 => x"f738811b",
+680 => x"5b80d680",
+681 => x"087b25fd",
+682 => x"b13881b4",
+683 => x"ac51b095",
+684 => x"3f80c9cc",
+685 => x"51f6953f",
+686 => x"80d2a451",
+687 => x"f68e3f80",
+688 => x"c9dc51f6",
+689 => x"873f80d2",
+690 => x"a451f680",
+691 => x"3f81b4b8",
+692 => x"085280ca",
+693 => x"9451f5f4",
+694 => x"3f855280",
+695 => x"cab051f5",
+696 => x"eb3f81b6",
+697 => x"98085280",
+698 => x"cacc51f5",
+699 => x"df3f8152",
+700 => x"80cab051",
+701 => x"f5d63f81",
+702 => x"b4bc3352",
+703 => x"80cae851",
+704 => x"f5ca3f80",
+705 => x"c15280cb",
+706 => x"8451f5c0",
+707 => x"3f81b4c0",
+708 => x"335280cb",
+709 => x"a051f5b4",
+710 => x"3f80c252",
+711 => x"80cb8451",
+712 => x"f5aa3f81",
+713 => x"b4f00852",
+714 => x"80cbbc51",
+715 => x"f59e3f87",
+716 => x"5280cab0",
+717 => x"51f5953f",
+718 => x"80f2f808",
+719 => x"5280cbd8",
+720 => x"51f5893f",
+721 => x"80cbf451",
+722 => x"f5823f80",
+723 => x"cca051f4",
+724 => x"fb3f81b4",
+725 => x"c4087008",
+726 => x"535a80cc",
+727 => x"ac51f4ec",
+728 => x"3f80ccc8",
+729 => x"51f4e53f",
+730 => x"81b4c408",
+731 => x"84110853",
+732 => x"5680ccfc",
+733 => x"51f4d53f",
+734 => x"805280ca",
+735 => x"b051f4cc",
+736 => x"3f81b4c4",
+737 => x"08881108",
+738 => x"535880cd",
+739 => x"9851f4bc",
+740 => x"3f825280",
+741 => x"cab051f4",
+742 => x"b33f81b4",
+743 => x"c4088c11",
+744 => x"08535780",
+745 => x"cdb451f4",
+746 => x"a33f9152",
+747 => x"80cab051",
+748 => x"f49a3f81",
+749 => x"b4c40890",
+750 => x"055280cd",
+751 => x"d051f48c",
+752 => x"3f80cdec",
+753 => x"51f4853f",
+754 => x"80cea451",
+755 => x"f3fe3f81",
+756 => x"b4b40870",
+757 => x"08535f80",
+758 => x"ccac51f3",
+759 => x"ef3f80ce",
+760 => x"b851f3e8",
+761 => x"3f81b4b4",
+762 => x"08841108",
+763 => x"535b80cc",
+764 => x"fc51f3d8",
+765 => x"3f805280",
+766 => x"cab051f3",
+767 => x"cf3f81b4",
+768 => x"b4088811",
+769 => x"08535c80",
+770 => x"cd9851f3",
+771 => x"bf3f8152",
+772 => x"80cab051",
+773 => x"f3b63f81",
+774 => x"b4b4088c",
+775 => x"1108535a",
+776 => x"80cdb451",
+777 => x"f3a63f92",
+778 => x"5280cab0",
+779 => x"51f39d3f",
+780 => x"81b4b408",
+781 => x"90055280",
+782 => x"cdd051f3",
+783 => x"8f3f80cd",
+784 => x"ec51f388",
+785 => x"3f7f5280",
+786 => x"cef851f2",
+787 => x"ff3f8552",
+788 => x"80cab051",
+789 => x"f2f63f78",
+790 => x"5280cf94",
+791 => x"51f2ed3f",
+792 => x"8d5280ca",
+793 => x"b051f2e4",
+794 => x"3f615280",
+795 => x"cfb051f2",
+796 => x"db3f8752",
+797 => x"80cab051",
+798 => x"f2d23f60",
+799 => x"5280cfcc",
+800 => x"51f2c93f",
+801 => x"815280ca",
+802 => x"b051f2c0",
+803 => x"3f7d5280",
+804 => x"cfe851f2",
+805 => x"b73f80d0",
+806 => x"8451f2b0",
+807 => x"3f7c5280",
+808 => x"d0bc51f2",
+809 => x"a73f80d0",
+810 => x"d851f2a0",
+811 => x"3f80d2a4",
+812 => x"51f2993f",
+813 => x"81b4ac08",
+814 => x"81b4b008",
+815 => x"80e69408",
+816 => x"80e69808",
+817 => x"72713170",
+818 => x"74267574",
+819 => x"31707231",
+820 => x"80e68c0c",
+821 => x"444480e6",
+822 => x"900c80e6",
+823 => x"90085680",
+824 => x"d190555c",
+825 => x"595758f1",
+826 => x"e33f80e6",
+827 => x"8c085680",
+828 => x"762582a3",
+829 => x"3880d680",
+830 => x"0870719f",
+831 => x"2c9a3d53",
+832 => x"565680e6",
+833 => x"8c0880e6",
+834 => x"90084153",
+835 => x"7f547052",
+836 => x"5a89eb3f",
+837 => x"66685f80",
+838 => x"e5fc0c7d",
+839 => x"80e6800c",
+840 => x"80d68008",
+841 => x"709f2c58",
+842 => x"568058bd",
+843 => x"84c07855",
+844 => x"55765275",
+845 => x"53795187",
+846 => x"d13f953d",
+847 => x"80e68c08",
+848 => x"80e69008",
+849 => x"41557f56",
+850 => x"67694053",
+851 => x"7e547052",
+852 => x"5c89ab3f",
+853 => x"64665e80",
+854 => x"e6840c7c",
+855 => x"80e6880c",
+856 => x"80d68008",
+857 => x"709f2c40",
+858 => x"58805783",
+859 => x"dceb9480",
+860 => x"7755557e",
+861 => x"5277537b",
+862 => x"51878f3f",
+863 => x"64665d5b",
+864 => x"805e8ddd",
+865 => x"7e555580",
+866 => x"e68c0880",
+867 => x"e6900859",
+868 => x"52775379",
+869 => x"5186f33f",
+870 => x"66684054",
+871 => x"7e557a52",
+872 => x"7b53a93d",
+873 => x"ffa80551",
+874 => x"88d43f62",
+875 => x"645e81b4",
+876 => x"c80c7c81",
+877 => x"b4cc0c80",
+878 => x"d1a051f0",
+879 => x"8f3f80e6",
+880 => x"80085280",
+881 => x"d1d051f0",
+882 => x"833f80d1",
+883 => x"d851effc",
+884 => x"3f80e688",
+885 => x"085280d1",
+886 => x"d051eff0",
+887 => x"3f81b4cc",
+888 => x"085280d2",
+889 => x"8851efe4",
+890 => x"3f80d2a4",
+891 => x"51efdd3f",
+892 => x"800b800c",
+893 => x"a93d0d04",
+894 => x"80d2a851",
+895 => x"f6ac3977",
+896 => x"0857b053",
+897 => x"76527751",
+898 => x"9fc83f80",
+899 => x"c10b81b4",
+900 => x"c0335757",
+901 => x"f8ae3975",
+902 => x"8a3880e6",
+903 => x"90088126",
+904 => x"fdd33880",
+905 => x"d2d851ef",
+906 => x"a33f80d3",
+907 => x"9051ef9c",
+908 => x"3f80d2a4",
+909 => x"51ef953f",
+910 => x"80d68008",
+911 => x"70719f2c",
+912 => x"9a3d5356",
+913 => x"5680e68c",
+914 => x"0880e690",
+915 => x"0841537f",
+916 => x"5470525a",
+917 => x"87a83f66",
+918 => x"685f80e5",
+919 => x"fc0c7d80",
+920 => x"e6800c80",
+921 => x"d6800870",
+922 => x"9f2c5856",
+923 => x"8058bd84",
+924 => x"c0785555",
+925 => x"76527553",
+926 => x"7951858e",
+927 => x"3f953d80",
+928 => x"e68c0880",
+929 => x"e6900841",
+930 => x"557f5667",
+931 => x"6940537e",
+932 => x"5470525c",
+933 => x"86e83f64",
+934 => x"665e80e6",
+935 => x"840c7c80",
+936 => x"e6880c80",
+937 => x"d6800870",
+938 => x"9f2c4058",
+939 => x"805783dc",
+940 => x"eb948077",
+941 => x"55557e52",
+942 => x"77537b51",
+943 => x"84cc3f64",
+944 => x"665d5b80",
+945 => x"5e8ddd7e",
+946 => x"555580e6",
+947 => x"8c0880e6",
+948 => x"90085952",
+949 => x"77537951",
+950 => x"84b03f66",
+951 => x"6840547e",
+952 => x"557a527b",
+953 => x"53a93dff",
+954 => x"a8055186",
+955 => x"913f6264",
+956 => x"5e81b4c8",
+957 => x"0c7c81b4",
+958 => x"cc0c80d1",
+959 => x"a051edcc",
+960 => x"3f80e680",
+961 => x"085280d1",
+962 => x"d051edc0",
+963 => x"3f80d1d8",
+964 => x"51edb93f",
+965 => x"80e68808",
+966 => x"5280d1d0",
+967 => x"51edad3f",
+968 => x"81b4cc08",
+969 => x"5280d288",
+970 => x"51eda13f",
+971 => x"80d2a451",
+972 => x"ed9a3f80",
+973 => x"0b800ca9",
+974 => x"3d0d04a9",
+975 => x"3dffa005",
+976 => x"52805180",
+977 => x"d23f9f53",
+978 => x"80d3b052",
+979 => x"7c519d82",
+980 => x"3f7a7b81",
+981 => x"b4b80c81",
+982 => x"187081ff",
+983 => x"0681b4c0",
+984 => x"33595959",
+985 => x"5af5fe39",
+986 => x"ff16707b",
+987 => x"31600c5c",
+988 => x"800b811c",
+989 => x"5c5c80d6",
+990 => x"80087b25",
+991 => x"f3dc38f6",
+992 => x"a939ff3d",
+993 => x"0d738232",
+994 => x"70307072",
+995 => x"07802580",
+996 => x"0c525283",
+997 => x"3d0d04fe",
+998 => x"3d0d7476",
+999 => x"71535452",
+1000 => x"71822e83",
+1001 => x"38835171",
+1002 => x"812e9a38",
+1003 => x"8172269f",
+1004 => x"3871822e",
+1005 => x"b8387184",
+1006 => x"2ea93870",
+1007 => x"730c7080",
+1008 => x"0c843d0d",
+1009 => x"0480e40b",
+1010 => x"81b4b808",
+1011 => x"258b3880",
+1012 => x"730c7080",
+1013 => x"0c843d0d",
+1014 => x"0483730c",
+1015 => x"70800c84",
+1016 => x"3d0d0482",
+1017 => x"730c7080",
+1018 => x"0c843d0d",
+1019 => x"0481730c",
+1020 => x"70800c84",
+1021 => x"3d0d0480",
+1022 => x"3d0d7474",
+1023 => x"14820571",
+1024 => x"0c800c82",
+1025 => x"3d0d04f7",
+1026 => x"3d0d7b7d",
+1027 => x"7f618512",
+1028 => x"70822b75",
+1029 => x"11707471",
+1030 => x"70840553",
+1031 => x"0c5a5a5d",
+1032 => x"5b760c79",
+1033 => x"80f8180c",
+1034 => x"79861252",
+1035 => x"57585a5a",
+1036 => x"76762499",
+1037 => x"3876b329",
+1038 => x"822b7911",
+1039 => x"51537673",
+1040 => x"70840555",
+1041 => x"0c811454",
+1042 => x"757425f2",
+1043 => x"387681cc",
+1044 => x"2919fc11",
+1045 => x"088105fc",
+1046 => x"120c7a19",
+1047 => x"70089fa0",
+1048 => x"130c5856",
+1049 => x"850b81b4",
+1050 => x"b80c7580",
+1051 => x"0c8b3d0d",
+1052 => x"04fe3d0d",
+1053 => x"02930533",
+1054 => x"51800284",
+1055 => x"05970533",
+1056 => x"54527073",
+1057 => x"2e883871",
+1058 => x"800c843d",
+1059 => x"0d047081",
+1060 => x"b4bc3481",
+1061 => x"0b800c84",
+1062 => x"3d0d04f8",
+1063 => x"3d0d7a7c",
+1064 => x"5956820b",
+1065 => x"83195555",
+1066 => x"74167033",
+1067 => x"75335b51",
+1068 => x"5372792e",
+1069 => x"80c63880",
+1070 => x"c10b8116",
+1071 => x"81165656",
+1072 => x"57827525",
+1073 => x"e338ffa9",
+1074 => x"177081ff",
+1075 => x"06555973",
+1076 => x"82268338",
+1077 => x"87558153",
+1078 => x"7680d22e",
+1079 => x"98387752",
+1080 => x"75519bc3",
+1081 => x"3f805372",
+1082 => x"80082589",
+1083 => x"38871581",
+1084 => x"b4b80c81",
+1085 => x"5372800c",
+1086 => x"8a3d0d04",
+1087 => x"7281b4bc",
+1088 => x"34827525",
+1089 => x"ffa238ff",
+1090 => x"bd39ef3d",
+1091 => x"0d636567",
+1092 => x"5b427943",
+1093 => x"67695940",
+1094 => x"77415a80",
+1095 => x"5d805e61",
+1096 => x"7083ffff",
+1097 => x"0671902a",
+1098 => x"627083ff",
+1099 => x"ff067190",
+1100 => x"2a747229",
+1101 => x"74732975",
+1102 => x"73297774",
+1103 => x"2973902a",
+1104 => x"05721151",
+1105 => x"5856535f",
+1106 => x"5a575a58",
+1107 => x"55587373",
+1108 => x"27863884",
+1109 => x"80801656",
+1110 => x"73902a16",
+1111 => x"5b7883ff",
+1112 => x"ff067484",
+1113 => x"80802905",
+1114 => x"5c7a7c5a",
+1115 => x"5d785e77",
+1116 => x"7f296178",
+1117 => x"29057d05",
+1118 => x"5d7c7e56",
+1119 => x"7a0c7484",
+1120 => x"1b0c7980",
+1121 => x"0c933d0d",
+1122 => x"04f93d0d",
+1123 => x"797b7d54",
+1124 => x"58725977",
+1125 => x"30797030",
+1126 => x"7072079f",
+1127 => x"2a737131",
+1128 => x"5a525977",
+1129 => x"7956730c",
+1130 => x"53738413",
+1131 => x"0c54800c",
+1132 => x"893d0d04",
+1133 => x"f93d0d79",
+1134 => x"7b7d7f56",
+1135 => x"54525472",
+1136 => x"802ea038",
+1137 => x"70577158",
+1138 => x"a0733152",
+1139 => x"807225a1",
+1140 => x"38777074",
+1141 => x"2b577073",
+1142 => x"2a78752b",
+1143 => x"07565174",
+1144 => x"76535170",
+1145 => x"740c7184",
+1146 => x"150c7380",
+1147 => x"0c893d0d",
+1148 => x"04805677",
+1149 => x"72302b55",
+1150 => x"74765351",
+1151 => x"e639e43d",
+1152 => x"0d6ea13d",
+1153 => x"08a33d08",
+1154 => x"59575f80",
+1155 => x"764d774e",
+1156 => x"a33d08a5",
+1157 => x"3d08574b",
+1158 => x"754c5e7d",
+1159 => x"6c2486fb",
+1160 => x"38806a24",
+1161 => x"878f3869",
+1162 => x"6b58566b",
+1163 => x"6d5d467b",
+1164 => x"47754476",
+1165 => x"45646468",
+1166 => x"685c5c56",
+1167 => x"567481e7",
+1168 => x"38787627",
+1169 => x"82c73875",
+1170 => x"81ff2683",
+1171 => x"2b5583ff",
+1172 => x"ff76278c",
+1173 => x"389055fe",
+1174 => x"800a7627",
+1175 => x"83389855",
+1176 => x"75752a80",
+1177 => x"d3d00570",
+1178 => x"33a07731",
+1179 => x"71315755",
+1180 => x"5774802e",
+1181 => x"95387575",
+1182 => x"2ba07631",
+1183 => x"7a772b7c",
+1184 => x"722a077c",
+1185 => x"782b5d5b",
+1186 => x"59567590",
+1187 => x"2a7683ff",
+1188 => x"ff067154",
+1189 => x"7a535957",
+1190 => x"88803f80",
+1191 => x"085b87ea",
+1192 => x"3f800880",
+1193 => x"0879297c",
+1194 => x"902b7c90",
+1195 => x"2a075656",
+1196 => x"59737527",
+1197 => x"94388008",
+1198 => x"ff057615",
+1199 => x"55597574",
+1200 => x"26873874",
+1201 => x"742687b9",
+1202 => x"38765273",
+1203 => x"75315187",
+1204 => x"c93f8008",
+1205 => x"5587b33f",
+1206 => x"80088008",
+1207 => x"79297b83",
+1208 => x"ffff0677",
+1209 => x"902b0756",
+1210 => x"59577378",
+1211 => x"27963880",
+1212 => x"08ff0576",
+1213 => x"15555775",
+1214 => x"74268938",
+1215 => x"77742677",
+1216 => x"71315856",
+1217 => x"78902b77",
+1218 => x"0758805b",
+1219 => x"7a407741",
+1220 => x"7f615654",
+1221 => x"7d80d938",
+1222 => x"737f0c74",
+1223 => x"7f84050c",
+1224 => x"7e800c9e",
+1225 => x"3d0d0480",
+1226 => x"705c5874",
+1227 => x"7926dd38",
+1228 => x"7481ff26",
+1229 => x"832b5774",
+1230 => x"83ffff26",
+1231 => x"82a53874",
+1232 => x"772a80d3",
+1233 => x"d0057033",
+1234 => x"a0793171",
+1235 => x"31595c5d",
+1236 => x"7682b338",
+1237 => x"76547479",
+1238 => x"27833881",
+1239 => x"54797627",
+1240 => x"74075981",
+1241 => x"5878ffa2",
+1242 => x"38765880",
+1243 => x"5bff9d39",
+1244 => x"73527453",
+1245 => x"9e3de805",
+1246 => x"51fc8e3f",
+1247 => x"6769567f",
+1248 => x"0c747f84",
+1249 => x"050c7e80",
+1250 => x"0c9e3d0d",
+1251 => x"0475802e",
+1252 => x"81c43875",
+1253 => x"81ff2683",
+1254 => x"2b5583ff",
+1255 => x"ff76278c",
+1256 => x"389055fe",
+1257 => x"800a7627",
+1258 => x"83389855",
+1259 => x"75752a80",
+1260 => x"d3d00570",
+1261 => x"33a07731",
+1262 => x"7131575e",
+1263 => x"54748491",
+1264 => x"38787631",
+1265 => x"54817690",
+1266 => x"2a7783ff",
+1267 => x"ff065f5d",
+1268 => x"5b7b5273",
+1269 => x"5185c33f",
+1270 => x"80085785",
+1271 => x"ad3f8008",
+1272 => x"80087e29",
+1273 => x"78902b7c",
+1274 => x"902a0756",
+1275 => x"56597375",
+1276 => x"27943880",
+1277 => x"08ff0576",
+1278 => x"15555975",
+1279 => x"74268738",
+1280 => x"74742684",
+1281 => x"f3387b52",
+1282 => x"73753151",
+1283 => x"858c3f80",
+1284 => x"085584f6",
+1285 => x"3f800880",
+1286 => x"087e297b",
+1287 => x"83ffff06",
+1288 => x"77902b07",
+1289 => x"56595773",
+1290 => x"78279638",
+1291 => x"8008ff05",
+1292 => x"76155557",
+1293 => x"75742689",
+1294 => x"38777426",
+1295 => x"77713158",
+1296 => x"5a78902b",
+1297 => x"77077b41",
+1298 => x"417f6156",
+1299 => x"547d802e",
+1300 => x"fdc638fe",
+1301 => x"9b397552",
+1302 => x"815184ae",
+1303 => x"3f800856",
+1304 => x"feb13990",
+1305 => x"57fe800a",
+1306 => x"7527fdd3",
+1307 => x"38987571",
+1308 => x"2a80d3d0",
+1309 => x"057033a0",
+1310 => x"73317131",
+1311 => x"535d5e57",
+1312 => x"76802efd",
+1313 => x"cf38a077",
+1314 => x"3175782b",
+1315 => x"77722a07",
+1316 => x"77792b7b",
+1317 => x"7a2b7d74",
+1318 => x"2a077d7b",
+1319 => x"2b73902a",
+1320 => x"7483ffff",
+1321 => x"0671597f",
+1322 => x"772a585e",
+1323 => x"5c415f58",
+1324 => x"5c5483e6",
+1325 => x"3f800854",
+1326 => x"83d03f80",
+1327 => x"08800879",
+1328 => x"2975902b",
+1329 => x"7e902a07",
+1330 => x"56565973",
+1331 => x"75279938",
+1332 => x"8008ff05",
+1333 => x"7b155559",
+1334 => x"7a74268c",
+1335 => x"38737527",
+1336 => x"8738ff19",
+1337 => x"7b155559",
+1338 => x"76527375",
+1339 => x"315183aa",
+1340 => x"3f800855",
+1341 => x"83943f80",
+1342 => x"08800879",
+1343 => x"297d83ff",
+1344 => x"ff067790",
+1345 => x"2b075659",
+1346 => x"57737827",
+1347 => x"99388008",
+1348 => x"ff057b15",
+1349 => x"55577a74",
+1350 => x"268c3873",
+1351 => x"78278738",
+1352 => x"ff177b15",
+1353 => x"55577378",
+1354 => x"3179902b",
+1355 => x"78077083",
+1356 => x"ffff0671",
+1357 => x"902a7983",
+1358 => x"ffff067a",
+1359 => x"902a7372",
+1360 => x"29737329",
+1361 => x"74732976",
+1362 => x"74297390",
+1363 => x"2a057205",
+1364 => x"5755435f",
+1365 => x"5b585a57",
+1366 => x"595a747c",
+1367 => x"27863884",
+1368 => x"80801757",
+1369 => x"74902a17",
+1370 => x"7983ffff",
+1371 => x"06768480",
+1372 => x"80290557",
+1373 => x"57767a26",
+1374 => x"9a38767a",
+1375 => x"32703070",
+1376 => x"72078025",
+1377 => x"565a5b7c",
+1378 => x"7627fafe",
+1379 => x"3873802e",
+1380 => x"faf838ff",
+1381 => x"1858805b",
+1382 => x"faf239ff",
+1383 => x"76537754",
+1384 => x"9f3de805",
+1385 => x"525ef7e1",
+1386 => x"3f676957",
+1387 => x"4c754d69",
+1388 => x"8025f8f3",
+1389 => x"387d096a",
+1390 => x"6c5c537a",
+1391 => x"549f3de8",
+1392 => x"05525ef7",
+1393 => x"c43f6769",
+1394 => x"714c704d",
+1395 => x"5856f8db",
+1396 => x"39a07531",
+1397 => x"76762b7a",
+1398 => x"772b7c73",
+1399 => x"2a077c78",
+1400 => x"2b72902a",
+1401 => x"7383ffff",
+1402 => x"0671587e",
+1403 => x"762a5742",
+1404 => x"405d5d57",
+1405 => x"5881a33f",
+1406 => x"80085781",
+1407 => x"8d3f8008",
+1408 => x"80087e29",
+1409 => x"78902b7d",
+1410 => x"902a0756",
+1411 => x"56597375",
+1412 => x"27993880",
+1413 => x"08ff0576",
+1414 => x"15555975",
+1415 => x"74268c38",
+1416 => x"73752787",
+1417 => x"38ff1976",
+1418 => x"1555597b",
+1419 => x"52737531",
+1420 => x"5180e73f",
+1421 => x"80085580",
+1422 => x"d13f8008",
+1423 => x"80087e29",
+1424 => x"7c83ffff",
+1425 => x"06707890",
+1426 => x"2b075156",
+1427 => x"58587377",
+1428 => x"27993880",
+1429 => x"08ff0576",
+1430 => x"15555875",
+1431 => x"74268c38",
+1432 => x"73772787",
+1433 => x"38ff1876",
+1434 => x"15555878",
+1435 => x"902b7807",
+1436 => x"74783155",
+1437 => x"5bfada39",
+1438 => x"ff197615",
+1439 => x"5559fb86",
+1440 => x"39ff1976",
+1441 => x"155559f8",
+1442 => x"c0397070",
+1443 => x"70805375",
+1444 => x"52745181",
+1445 => x"913f5050",
+1446 => x"50047070",
+1447 => x"70815375",
+1448 => x"52745181",
+1449 => x"813f5050",
+1450 => x"5004fb3d",
+1451 => x"0d777955",
+1452 => x"55805675",
+1453 => x"7524ab38",
+1454 => x"8074249d",
+1455 => x"38805373",
+1456 => x"52745180",
+1457 => x"e13f8008",
+1458 => x"5475802e",
+1459 => x"85388008",
+1460 => x"30547380",
+1461 => x"0c873d0d",
+1462 => x"04733076",
+1463 => x"81325754",
+1464 => x"dc397430",
+1465 => x"55815673",
+1466 => x"8025d238",
+1467 => x"ec39fa3d",
+1468 => x"0d787a57",
+1469 => x"55805776",
+1470 => x"7524a438",
+1471 => x"759f2c54",
+1472 => x"81537574",
+1473 => x"32743152",
+1474 => x"74519b3f",
+1475 => x"80085476",
+1476 => x"802e8538",
+1477 => x"80083054",
+1478 => x"73800c88",
+1479 => x"3d0d0474",
+1480 => x"30558157",
+1481 => x"d739fc3d",
+1482 => x"0d767853",
+1483 => x"54815380",
+1484 => x"74732652",
+1485 => x"5572802e",
+1486 => x"98387080",
+1487 => x"2eab3880",
+1488 => x"7224a638",
+1489 => x"71107310",
+1490 => x"75722653",
+1491 => x"545272ea",
+1492 => x"38735178",
+1493 => x"83387451",
+1494 => x"70800c86",
+1495 => x"3d0d0472",
+1496 => x"0a100a72",
+1497 => x"0a100a53",
+1498 => x"5372802e",
+1499 => x"e4387174",
+1500 => x"26ed3873",
+1501 => x"72317574",
+1502 => x"07740a10",
+1503 => x"0a740a10",
+1504 => x"0a555556",
+1505 => x"54e33970",
+1506 => x"70735280",
+1507 => x"decc0851",
+1508 => x"933f5050",
+1509 => x"04707073",
+1510 => x"5280decc",
+1511 => x"085190ce",
+1512 => x"3f505004",
+1513 => x"f43d0d7e",
+1514 => x"608b1170",
+1515 => x"f8065b55",
+1516 => x"555d7296",
+1517 => x"26833890",
+1518 => x"58807824",
+1519 => x"74792607",
+1520 => x"55805474",
+1521 => x"742e0981",
+1522 => x"0680ca38",
+1523 => x"7c518d9e",
+1524 => x"3f7783f7",
+1525 => x"2680c538",
+1526 => x"77832a70",
+1527 => x"10101080",
+1528 => x"d6c4058c",
+1529 => x"11085858",
+1530 => x"5475772e",
+1531 => x"81f03884",
+1532 => x"1608fc06",
+1533 => x"8c170888",
+1534 => x"1808718c",
+1535 => x"120c8812",
+1536 => x"0c5b7605",
+1537 => x"84110881",
+1538 => x"0784120c",
+1539 => x"537c518c",
+1540 => x"de3f8816",
+1541 => x"5473800c",
+1542 => x"8e3d0d04",
+1543 => x"77892a78",
+1544 => x"832a5854",
+1545 => x"73802ebf",
+1546 => x"3877862a",
+1547 => x"b8055784",
+1548 => x"7427b438",
+1549 => x"80db1457",
+1550 => x"947427ab",
+1551 => x"38778c2a",
+1552 => x"80ee0557",
+1553 => x"80d47427",
+1554 => x"9e38778f",
+1555 => x"2a80f705",
+1556 => x"5782d474",
+1557 => x"27913877",
+1558 => x"922a80fc",
+1559 => x"05578ad4",
+1560 => x"74278438",
+1561 => x"80fe5776",
+1562 => x"10101080",
+1563 => x"d6c4058c",
+1564 => x"11085653",
+1565 => x"74732ea3",
+1566 => x"38841508",
+1567 => x"fc067079",
+1568 => x"31555673",
+1569 => x"8f2488e4",
+1570 => x"38738025",
+1571 => x"88e6388c",
+1572 => x"15085574",
+1573 => x"732e0981",
+1574 => x"06df3881",
+1575 => x"175980d6",
+1576 => x"d4085675",
+1577 => x"80d6cc2e",
+1578 => x"82cc3884",
+1579 => x"1608fc06",
+1580 => x"70793155",
+1581 => x"55738f24",
+1582 => x"bb3880d6",
+1583 => x"cc0b80d6",
+1584 => x"d80c80d6",
+1585 => x"cc0b80d6",
+1586 => x"d40c8074",
+1587 => x"2480db38",
+1588 => x"74168411",
+1589 => x"08810784",
+1590 => x"120c53fe",
+1591 => x"b0398816",
+1592 => x"8c110857",
+1593 => x"5975792e",
+1594 => x"098106fe",
+1595 => x"82388214",
+1596 => x"59ffab39",
+1597 => x"77167881",
+1598 => x"0784180c",
+1599 => x"7080d6d8",
+1600 => x"0c7080d6",
+1601 => x"d40c80d6",
+1602 => x"cc0b8c12",
+1603 => x"0c8c1108",
+1604 => x"88120c74",
+1605 => x"81078412",
+1606 => x"0c740574",
+1607 => x"710c5b7c",
+1608 => x"518acc3f",
+1609 => x"881654fd",
+1610 => x"ec3983ff",
+1611 => x"75278391",
+1612 => x"3874892a",
+1613 => x"75832a54",
+1614 => x"5473802e",
+1615 => x"bf387486",
+1616 => x"2ab80553",
+1617 => x"847427b4",
+1618 => x"3880db14",
+1619 => x"53947427",
+1620 => x"ab38748c",
+1621 => x"2a80ee05",
+1622 => x"5380d474",
+1623 => x"279e3874",
+1624 => x"8f2a80f7",
+1625 => x"055382d4",
+1626 => x"74279138",
+1627 => x"74922a80",
+1628 => x"fc05538a",
+1629 => x"d4742784",
+1630 => x"3880fe53",
+1631 => x"72101010",
+1632 => x"80d6c405",
+1633 => x"88110855",
+1634 => x"5773772e",
+1635 => x"868b3884",
+1636 => x"1408fc06",
+1637 => x"5b747b27",
+1638 => x"8d388814",
+1639 => x"08547377",
+1640 => x"2e098106",
+1641 => x"ea388c14",
+1642 => x"0880d6c4",
+1643 => x"0b840508",
+1644 => x"718c190c",
+1645 => x"7588190c",
+1646 => x"7788130c",
+1647 => x"5c57758c",
+1648 => x"150c7853",
+1649 => x"80792483",
+1650 => x"98387282",
+1651 => x"2c81712b",
+1652 => x"5656747b",
+1653 => x"2680ca38",
+1654 => x"7a750657",
+1655 => x"7682a338",
+1656 => x"78fc0684",
+1657 => x"05597410",
+1658 => x"707c0655",
+1659 => x"55738292",
+1660 => x"38841959",
+1661 => x"f13980d6",
+1662 => x"c40b8405",
+1663 => x"0879545b",
+1664 => x"788025c6",
+1665 => x"3882da39",
+1666 => x"74097b06",
+1667 => x"7080d6c4",
+1668 => x"0b84050c",
+1669 => x"5b741055",
+1670 => x"747b2685",
+1671 => x"387485bc",
+1672 => x"3880d6c4",
+1673 => x"0b880508",
+1674 => x"70841208",
+1675 => x"fc06707b",
+1676 => x"317b7226",
+1677 => x"8f722507",
+1678 => x"5d575c5c",
+1679 => x"5578802e",
+1680 => x"80d93879",
+1681 => x"1580d6bc",
+1682 => x"08199011",
+1683 => x"59545680",
+1684 => x"d6b808ff",
+1685 => x"2e8838a0",
+1686 => x"8f13e080",
+1687 => x"06577652",
+1688 => x"7c51888c",
+1689 => x"3f800854",
+1690 => x"8008ff2e",
+1691 => x"90388008",
+1692 => x"762782a7",
+1693 => x"387480d6",
+1694 => x"c42e829f",
+1695 => x"3880d6c4",
+1696 => x"0b880508",
+1697 => x"55841508",
+1698 => x"fc067079",
+1699 => x"31797226",
+1700 => x"8f722507",
+1701 => x"5d555a7a",
+1702 => x"83f23877",
+1703 => x"81078416",
+1704 => x"0c771570",
+1705 => x"80d6c40b",
+1706 => x"88050c74",
+1707 => x"81078412",
+1708 => x"0c567c51",
+1709 => x"87b93f88",
+1710 => x"15547380",
+1711 => x"0c8e3d0d",
+1712 => x"0474832a",
+1713 => x"70545480",
+1714 => x"7424819b",
+1715 => x"3872822c",
+1716 => x"81712b80",
+1717 => x"d6c80807",
+1718 => x"7080d6c4",
+1719 => x"0b84050c",
+1720 => x"75101010",
+1721 => x"80d6c405",
+1722 => x"88110871",
+1723 => x"8c1b0c70",
+1724 => x"881b0c79",
+1725 => x"88130c57",
+1726 => x"555c5575",
+1727 => x"8c150cfd",
+1728 => x"c1397879",
+1729 => x"10101080",
+1730 => x"d6c40570",
+1731 => x"565b5c8c",
+1732 => x"14085675",
+1733 => x"742ea338",
+1734 => x"841608fc",
+1735 => x"06707931",
+1736 => x"5853768f",
+1737 => x"2483f138",
+1738 => x"76802584",
+1739 => x"af388c16",
+1740 => x"08567574",
+1741 => x"2e098106",
+1742 => x"df388814",
+1743 => x"811a7083",
+1744 => x"06555a54",
+1745 => x"72c9387b",
+1746 => x"83065675",
+1747 => x"802efdb8",
+1748 => x"38ff1cf8",
+1749 => x"1b5b5c88",
+1750 => x"1a087a2e",
+1751 => x"ea38fdb5",
+1752 => x"39831953",
+1753 => x"fce43983",
+1754 => x"1470822c",
+1755 => x"81712b80",
+1756 => x"d6c80807",
+1757 => x"7080d6c4",
+1758 => x"0b84050c",
+1759 => x"76101010",
+1760 => x"80d6c405",
+1761 => x"88110871",
+1762 => x"8c1c0c70",
+1763 => x"881c0c7a",
+1764 => x"88130c58",
+1765 => x"535d5653",
+1766 => x"fee13980",
+1767 => x"d6880817",
+1768 => x"59800876",
+1769 => x"2e818b38",
+1770 => x"80d6b808",
+1771 => x"ff2e848e",
+1772 => x"38737631",
+1773 => x"1980d688",
+1774 => x"0c738706",
+1775 => x"70565372",
+1776 => x"802e8838",
+1777 => x"88733170",
+1778 => x"15555576",
+1779 => x"149fff06",
+1780 => x"a0807131",
+1781 => x"1670547e",
+1782 => x"53515385",
+1783 => x"933f8008",
+1784 => x"568008ff",
+1785 => x"2e819e38",
+1786 => x"80d68808",
+1787 => x"137080d6",
+1788 => x"880c7475",
+1789 => x"80d6c40b",
+1790 => x"88050c77",
+1791 => x"76311581",
+1792 => x"07555659",
+1793 => x"7a80d6c4",
+1794 => x"2e83c038",
+1795 => x"798f2682",
+1796 => x"ef38810b",
+1797 => x"84150c84",
+1798 => x"1508fc06",
+1799 => x"70793179",
+1800 => x"72268f72",
+1801 => x"25075d55",
+1802 => x"5a7a802e",
+1803 => x"fced3880",
+1804 => x"db398008",
+1805 => x"9fff0655",
+1806 => x"74feed38",
+1807 => x"7880d688",
+1808 => x"0c80d6c4",
+1809 => x"0b880508",
+1810 => x"7a188107",
+1811 => x"84120c55",
+1812 => x"80d6b408",
+1813 => x"79278638",
+1814 => x"7880d6b4",
+1815 => x"0c80d6b0",
+1816 => x"087927fc",
+1817 => x"a0387880",
+1818 => x"d6b00c84",
+1819 => x"1508fc06",
+1820 => x"70793179",
+1821 => x"72268f72",
+1822 => x"25075d55",
+1823 => x"5a7a802e",
+1824 => x"fc993888",
+1825 => x"39807457",
+1826 => x"53fedd39",
+1827 => x"7c5183df",
+1828 => x"3f800b80",
+1829 => x"0c8e3d0d",
+1830 => x"04807324",
+1831 => x"a5387282",
+1832 => x"2c81712b",
+1833 => x"80d6c808",
+1834 => x"077080d6",
+1835 => x"c40b8405",
+1836 => x"0c5c5a76",
+1837 => x"8c170c73",
+1838 => x"88170c75",
+1839 => x"88180cf9",
+1840 => x"fd398313",
+1841 => x"70822c81",
+1842 => x"712b80d6",
+1843 => x"c8080770",
+1844 => x"80d6c40b",
+1845 => x"84050c5d",
+1846 => x"5b53d839",
+1847 => x"7a75065c",
+1848 => x"7bfc9f38",
+1849 => x"84197510",
+1850 => x"5659f139",
+1851 => x"ff178105",
+1852 => x"59f7ab39",
+1853 => x"8c150888",
+1854 => x"1608718c",
+1855 => x"120c8812",
+1856 => x"0c597515",
+1857 => x"84110881",
+1858 => x"0784120c",
+1859 => x"587c5182",
+1860 => x"de3f8815",
+1861 => x"54fba339",
+1862 => x"77167881",
+1863 => x"0784180c",
+1864 => x"8c170888",
+1865 => x"1808718c",
+1866 => x"120c8812",
+1867 => x"0c5c7080",
+1868 => x"d6d80c70",
+1869 => x"80d6d40c",
+1870 => x"80d6cc0b",
+1871 => x"8c120c8c",
+1872 => x"11088812",
+1873 => x"0c778107",
+1874 => x"84120c77",
+1875 => x"0577710c",
+1876 => x"557c5182",
+1877 => x"9a3f8816",
+1878 => x"54f5ba39",
+1879 => x"72168411",
+1880 => x"08810784",
+1881 => x"120c588c",
+1882 => x"16088817",
+1883 => x"08718c12",
+1884 => x"0c88120c",
+1885 => x"577c5181",
+1886 => x"f63f8816",
+1887 => x"54f59639",
+1888 => x"7284150c",
+1889 => x"f41af806",
+1890 => x"70841d08",
+1891 => x"81060784",
+1892 => x"1d0c701c",
+1893 => x"5556850b",
+1894 => x"84150c85",
+1895 => x"0b88150c",
+1896 => x"8f7627fd",
+1897 => x"ab38881b",
+1898 => x"527c5184",
+1899 => x"c13f80d6",
+1900 => x"c40b8805",
+1901 => x"0880d688",
+1902 => x"085a55fd",
+1903 => x"93397880",
+1904 => x"d6880c73",
+1905 => x"80d6b80c",
+1906 => x"fbef3972",
+1907 => x"84150cfc",
+1908 => x"ff39fb3d",
+1909 => x"0d77707a",
+1910 => x"7c585553",
+1911 => x"568f7527",
+1912 => x"80e63872",
+1913 => x"76078306",
+1914 => x"517080dc",
+1915 => x"38757352",
+1916 => x"54707084",
+1917 => x"05520874",
+1918 => x"70840556",
+1919 => x"0c737170",
+1920 => x"84055308",
+1921 => x"71708405",
+1922 => x"530c7170",
+1923 => x"84055308",
+1924 => x"71708405",
+1925 => x"530c7170",
+1926 => x"84055308",
+1927 => x"71708405",
+1928 => x"530cf016",
+1929 => x"5654748f",
+1930 => x"26c73883",
+1931 => x"75279538",
+1932 => x"70708405",
+1933 => x"52087470",
+1934 => x"8405560c",
+1935 => x"fc155574",
+1936 => x"8326ed38",
+1937 => x"73715452",
+1938 => x"ff155170",
+1939 => x"ff2e9838",
+1940 => x"72708105",
+1941 => x"54337270",
+1942 => x"81055434",
+1943 => x"ff115170",
+1944 => x"ff2e0981",
+1945 => x"06ea3875",
+1946 => x"800c873d",
+1947 => x"0d040404",
+1948 => x"70707070",
+1949 => x"800b81b6",
+1950 => x"9c0c7651",
+1951 => x"87cc3f80",
+1952 => x"08538008",
+1953 => x"ff2e8938",
+1954 => x"72800c50",
+1955 => x"50505004",
+1956 => x"81b69c08",
+1957 => x"5473802e",
+1958 => x"ef387574",
+1959 => x"710c5272",
+1960 => x"800c5050",
+1961 => x"505004fb",
+1962 => x"3d0d7779",
+1963 => x"70720783",
+1964 => x"06535452",
+1965 => x"70933871",
+1966 => x"73730854",
+1967 => x"56547173",
+1968 => x"082e80c4",
+1969 => x"38737554",
+1970 => x"52713370",
+1971 => x"81ff0652",
+1972 => x"5470802e",
+1973 => x"9d387233",
+1974 => x"5570752e",
+1975 => x"09810695",
+1976 => x"38811281",
+1977 => x"14713370",
+1978 => x"81ff0654",
+1979 => x"56545270",
+1980 => x"e5387233",
+1981 => x"557381ff",
+1982 => x"067581ff",
+1983 => x"06717131",
+1984 => x"800c5552",
+1985 => x"873d0d04",
+1986 => x"7109f7fb",
+1987 => x"fdff1306",
+1988 => x"f8848281",
+1989 => x"80065271",
+1990 => x"97388414",
+1991 => x"84167108",
+1992 => x"54565471",
+1993 => x"75082ee0",
+1994 => x"38737554",
+1995 => x"52ff9a39",
+1996 => x"800b800c",
+1997 => x"873d0d04",
+1998 => x"fb3d0d77",
+1999 => x"705256fe",
+2000 => x"ad3f80d6",
+2001 => x"c40b8805",
+2002 => x"08841108",
+2003 => x"fc06707b",
+2004 => x"319fef05",
+2005 => x"e08006e0",
+2006 => x"80055255",
+2007 => x"55a08075",
+2008 => x"24943880",
+2009 => x"527551fe",
+2010 => x"873f80d6",
+2011 => x"cc081453",
+2012 => x"7280082e",
+2013 => x"8f387551",
+2014 => x"fdf53f80",
+2015 => x"5372800c",
+2016 => x"873d0d04",
+2017 => x"74305275",
+2018 => x"51fde53f",
+2019 => x"8008ff2e",
+2020 => x"a83880d6",
+2021 => x"c40b8805",
+2022 => x"08747631",
+2023 => x"81078412",
+2024 => x"0c5380d6",
+2025 => x"88087531",
+2026 => x"80d6880c",
+2027 => x"7551fdbf",
+2028 => x"3f810b80",
+2029 => x"0c873d0d",
+2030 => x"04805275",
+2031 => x"51fdb13f",
+2032 => x"80d6c40b",
+2033 => x"88050880",
+2034 => x"08713154",
+2035 => x"548f7325",
+2036 => x"ffa43880",
+2037 => x"0880d6b8",
+2038 => x"083180d6",
+2039 => x"880c7281",
+2040 => x"0784150c",
+2041 => x"7551fd87",
+2042 => x"3f8053ff",
+2043 => x"9039f73d",
+2044 => x"0d7b7d54",
+2045 => x"5a72802e",
+2046 => x"82833879",
+2047 => x"51fcef3f",
+2048 => x"f8138411",
+2049 => x"0870fe06",
+2050 => x"70138411",
+2051 => x"08fc065c",
+2052 => x"57585457",
+2053 => x"80d6cc08",
+2054 => x"742e82de",
+2055 => x"38778415",
+2056 => x"0c807381",
+2057 => x"06565974",
+2058 => x"792e81d5",
+2059 => x"38771484",
+2060 => x"11088106",
+2061 => x"565374a0",
+2062 => x"38771656",
+2063 => x"7881e638",
+2064 => x"88140855",
+2065 => x"7480d6cc",
+2066 => x"2e82f938",
+2067 => x"8c140870",
+2068 => x"8c170c75",
+2069 => x"88120c58",
+2070 => x"75810784",
+2071 => x"180c7517",
+2072 => x"76710c54",
+2073 => x"78819138",
+2074 => x"83ff7627",
+2075 => x"81c83875",
+2076 => x"892a7683",
+2077 => x"2a545473",
+2078 => x"802ebf38",
+2079 => x"75862ab8",
+2080 => x"05538474",
+2081 => x"27b43880",
+2082 => x"db145394",
+2083 => x"7427ab38",
+2084 => x"758c2a80",
+2085 => x"ee055380",
+2086 => x"d474279e",
+2087 => x"38758f2a",
+2088 => x"80f70553",
+2089 => x"82d47427",
+2090 => x"91387592",
+2091 => x"2a80fc05",
+2092 => x"538ad474",
+2093 => x"27843880",
+2094 => x"fe537210",
+2095 => x"101080d6",
+2096 => x"c4058811",
+2097 => x"08555573",
+2098 => x"752e82bf",
+2099 => x"38841408",
+2100 => x"fc065975",
+2101 => x"79278d38",
+2102 => x"88140854",
+2103 => x"73752e09",
+2104 => x"8106ea38",
+2105 => x"8c140870",
+2106 => x"8c190c74",
+2107 => x"88190c77",
+2108 => x"88120c55",
+2109 => x"768c150c",
+2110 => x"7951faf3",
+2111 => x"3f8b3d0d",
+2112 => x"04760877",
+2113 => x"71315876",
+2114 => x"05881808",
+2115 => x"56567480",
+2116 => x"d6cc2e80",
+2117 => x"e0388c17",
+2118 => x"08708c17",
+2119 => x"0c758812",
+2120 => x"0c53fe89",
+2121 => x"39881408",
+2122 => x"8c150870",
+2123 => x"8c130c59",
+2124 => x"88190cfe",
+2125 => x"a3397583",
+2126 => x"2a705454",
+2127 => x"80742481",
+2128 => x"98387282",
+2129 => x"2c81712b",
+2130 => x"80d6c808",
+2131 => x"0780d6c4",
+2132 => x"0b84050c",
+2133 => x"74101010",
+2134 => x"80d6c405",
+2135 => x"88110871",
+2136 => x"8c1b0c70",
+2137 => x"881b0c79",
+2138 => x"88130c56",
+2139 => x"5a55768c",
+2140 => x"150cff84",
+2141 => x"398159fd",
+2142 => x"b4397716",
+2143 => x"73810654",
+2144 => x"55729838",
+2145 => x"76087771",
+2146 => x"31587505",
+2147 => x"8c180888",
+2148 => x"1908718c",
+2149 => x"120c8812",
+2150 => x"0c555574",
+2151 => x"81078418",
+2152 => x"0c7680d6",
+2153 => x"c40b8805",
+2154 => x"0c80d6c0",
+2155 => x"087526fe",
+2156 => x"c73880d6",
+2157 => x"bc085279",
+2158 => x"51fafd3f",
+2159 => x"7951f9af",
+2160 => x"3ffeba39",
+2161 => x"81778c17",
+2162 => x"0c778817",
+2163 => x"0c758c19",
+2164 => x"0c758819",
+2165 => x"0c59fd80",
+2166 => x"39831470",
+2167 => x"822c8171",
+2168 => x"2b80d6c8",
+2169 => x"080780d6",
+2170 => x"c40b8405",
+2171 => x"0c751010",
+2172 => x"1080d6c4",
+2173 => x"05881108",
+2174 => x"718c1c0c",
+2175 => x"70881c0c",
+2176 => x"7a88130c",
+2177 => x"575b5653",
+2178 => x"fee43980",
+2179 => x"7324a338",
+2180 => x"72822c81",
+2181 => x"712b80d6",
+2182 => x"c8080780",
+2183 => x"d6c40b84",
+2184 => x"050c5874",
+2185 => x"8c180c73",
+2186 => x"88180c76",
+2187 => x"88160cfd",
+2188 => x"c3398313",
+2189 => x"70822c81",
+2190 => x"712b80d6",
+2191 => x"c8080780",
+2192 => x"d6c40b84",
+2193 => x"050c5953",
+2194 => x"da397070",
+2195 => x"7080e5f4",
+2196 => x"08893881",
+2197 => x"b6a00b80",
+2198 => x"e5f40c80",
+2199 => x"e5f40875",
+2200 => x"115252ff",
+2201 => x"537087fb",
+2202 => x"80802688",
+2203 => x"387080e5",
+2204 => x"f40c7153",
+2205 => x"72800c50",
+2206 => x"505004fd",
+2207 => x"3d0d800b",
+2208 => x"80d5f408",
+2209 => x"54547281",
+2210 => x"2e9b3873",
+2211 => x"80e5f80c",
+2212 => x"c3ee3fc2",
+2213 => x"eb3f80e5",
+2214 => x"cc528151",
+2215 => x"cc933f80",
+2216 => x"085180dd",
+2217 => x"3f7280e5",
+2218 => x"f80cc3d4",
+2219 => x"3fc2d13f",
+2220 => x"80e5cc52",
+2221 => x"8151cbf9",
+2222 => x"3f800851",
+2223 => x"80c33f00",
+2224 => x"ff3900ff",
+2225 => x"39f43d0d",
+2226 => x"7e80e5ec",
+2227 => x"08700870",
+2228 => x"81ff0692",
+2229 => x"3df80555",
+2230 => x"515a5759",
+2231 => x"c48f3f80",
+2232 => x"5477557b",
+2233 => x"7d585276",
+2234 => x"538e3df0",
+2235 => x"0551de8e",
+2236 => x"3f797b58",
+2237 => x"790c7684",
+2238 => x"1a0c7880",
+2239 => x"0c8e3d0d",
+2240 => x"04f73d0d",
+2241 => x"7b80decc",
+2242 => x"0882c811",
+2243 => x"085a545a",
+2244 => x"77802e80",
+2245 => x"da388188",
+2246 => x"18841908",
+2247 => x"ff058171",
+2248 => x"2b595559",
+2249 => x"80742480",
+2250 => x"ea388074",
+2251 => x"24b53873",
+2252 => x"822b7811",
+2253 => x"88055656",
+2254 => x"81801908",
+2255 => x"77065372",
+2256 => x"802eb638",
+2257 => x"78167008",
+2258 => x"53537951",
+2259 => x"74085372",
+2260 => x"2dff14fc",
+2261 => x"17fc1779",
+2262 => x"812c5a57",
+2263 => x"57547380",
+2264 => x"25d63877",
+2265 => x"085877ff",
+2266 => x"ad3880de",
+2267 => x"cc0853bc",
+2268 => x"1308a538",
+2269 => x"7951fec7",
+2270 => x"3f740853",
+2271 => x"722dff14",
+2272 => x"fc17fc17",
+2273 => x"79812c5a",
+2274 => x"57575473",
+2275 => x"8025ffa8",
+2276 => x"38d13980",
+2277 => x"57ff9339",
+2278 => x"7251bc13",
+2279 => x"0854732d",
+2280 => x"7951fe9b",
+2281 => x"3f707080",
+2282 => x"e5d40bfc",
+2283 => x"05700852",
+2284 => x"5270ff2e",
+2285 => x"9138702d",
+2286 => x"fc127008",
+2287 => x"525270ff",
+2288 => x"2e098106",
+2289 => x"f1385050",
+2290 => x"0404c2ff",
+2291 => x"3f040000",
+2292 => x"00000040",
+2293 => x"30313233",
+2294 => x"34353637",
+2295 => x"38390000",
+2296 => x"44485259",
+2297 => x"53544f4e",
+2298 => x"45205052",
+2299 => x"4f475241",
+2300 => x"4d2c2053",
+2301 => x"4f4d4520",
+2302 => x"53545249",
+2303 => x"4e470000",
+2304 => x"44485259",
+2305 => x"53544f4e",
+2306 => x"45205052",
+2307 => x"4f475241",
+2308 => x"4d2c2031",
+2309 => x"27535420",
+2310 => x"53545249",
+2311 => x"4e470000",
+2312 => x"44687279",
+2313 => x"73746f6e",
+2314 => x"65204265",
+2315 => x"6e63686d",
+2316 => x"61726b2c",
+2317 => x"20566572",
+2318 => x"73696f6e",
+2319 => x"20322e31",
+2320 => x"20284c61",
+2321 => x"6e677561",
+2322 => x"67653a20",
+2323 => x"43290a00",
+2324 => x"50726f67",
+2325 => x"72616d20",
+2326 => x"636f6d70",
+2327 => x"696c6564",
+2328 => x"20776974",
+2329 => x"68202772",
+2330 => x"65676973",
+2331 => x"74657227",
+2332 => x"20617474",
+2333 => x"72696275",
+2334 => x"74650a00",
+2335 => x"45786563",
+2336 => x"7574696f",
+2337 => x"6e207374",
+2338 => x"61727473",
+2339 => x"2c202564",
+2340 => x"2072756e",
+2341 => x"73207468",
+2342 => x"726f7567",
+2343 => x"68204468",
+2344 => x"72797374",
+2345 => x"6f6e650a",
+2346 => x"00000000",
+2347 => x"44485259",
+2348 => x"53544f4e",
+2349 => x"45205052",
+2350 => x"4f475241",
+2351 => x"4d2c2032",
+2352 => x"274e4420",
+2353 => x"53545249",
+2354 => x"4e470000",
+2355 => x"45786563",
+2356 => x"7574696f",
+2357 => x"6e20656e",
+2358 => x"64730a00",
+2359 => x"46696e61",
+2360 => x"6c207661",
+2361 => x"6c756573",
+2362 => x"206f6620",
+2363 => x"74686520",
+2364 => x"76617269",
+2365 => x"61626c65",
+2366 => x"73207573",
+2367 => x"65642069",
+2368 => x"6e207468",
+2369 => x"65206265",
+2370 => x"6e63686d",
+2371 => x"61726b3a",
+2372 => x"0a000000",
+2373 => x"496e745f",
+2374 => x"476c6f62",
+2375 => x"3a202020",
+2376 => x"20202020",
+2377 => x"20202020",
+2378 => x"2025640a",
+2379 => x"00000000",
+2380 => x"20202020",
+2381 => x"20202020",
+2382 => x"73686f75",
+2383 => x"6c642062",
+2384 => x"653a2020",
+2385 => x"2025640a",
+2386 => x"00000000",
+2387 => x"426f6f6c",
+2388 => x"5f476c6f",
+2389 => x"623a2020",
+2390 => x"20202020",
+2391 => x"20202020",
+2392 => x"2025640a",
+2393 => x"00000000",
+2394 => x"43685f31",
+2395 => x"5f476c6f",
+2396 => x"623a2020",
+2397 => x"20202020",
+2398 => x"20202020",
+2399 => x"2025630a",
+2400 => x"00000000",
+2401 => x"20202020",
+2402 => x"20202020",
+2403 => x"73686f75",
+2404 => x"6c642062",
+2405 => x"653a2020",
+2406 => x"2025630a",
+2407 => x"00000000",
+2408 => x"43685f32",
+2409 => x"5f476c6f",
+2410 => x"623a2020",
+2411 => x"20202020",
+2412 => x"20202020",
+2413 => x"2025630a",
+2414 => x"00000000",
+2415 => x"4172725f",
+2416 => x"315f476c",
+2417 => x"6f625b38",
+2418 => x"5d3a2020",
+2419 => x"20202020",
+2420 => x"2025640a",
+2421 => x"00000000",
+2422 => x"4172725f",
+2423 => x"325f476c",
+2424 => x"6f625b38",
+2425 => x"5d5b375d",
+2426 => x"3a202020",
+2427 => x"2025640a",
+2428 => x"00000000",
+2429 => x"20202020",
+2430 => x"20202020",
+2431 => x"73686f75",
+2432 => x"6c642062",
+2433 => x"653a2020",
+2434 => x"204e756d",
+2435 => x"6265725f",
+2436 => x"4f665f52",
+2437 => x"756e7320",
+2438 => x"2b203130",
+2439 => x"0a000000",
+2440 => x"5074725f",
+2441 => x"476c6f62",
+2442 => x"2d3e0a00",
+2443 => x"20205074",
+2444 => x"725f436f",
+2445 => x"6d703a20",
+2446 => x"20202020",
+2447 => x"20202020",
+2448 => x"2025640a",
+2449 => x"00000000",
+2450 => x"20202020",
+2451 => x"20202020",
+2452 => x"73686f75",
+2453 => x"6c642062",
+2454 => x"653a2020",
+2455 => x"2028696d",
+2456 => x"706c656d",
+2457 => x"656e7461",
+2458 => x"74696f6e",
+2459 => x"2d646570",
+2460 => x"656e6465",
+2461 => x"6e74290a",
+2462 => x"00000000",
+2463 => x"20204469",
+2464 => x"7363723a",
+2465 => x"20202020",
+2466 => x"20202020",
+2467 => x"20202020",
+2468 => x"2025640a",
+2469 => x"00000000",
+2470 => x"2020456e",
+2471 => x"756d5f43",
+2472 => x"6f6d703a",
+2473 => x"20202020",
+2474 => x"20202020",
+2475 => x"2025640a",
+2476 => x"00000000",
+2477 => x"2020496e",
+2478 => x"745f436f",
+2479 => x"6d703a20",
+2480 => x"20202020",
+2481 => x"20202020",
+2482 => x"2025640a",
+2483 => x"00000000",
+2484 => x"20205374",
+2485 => x"725f436f",
+2486 => x"6d703a20",
+2487 => x"20202020",
+2488 => x"20202020",
+2489 => x"2025730a",
+2490 => x"00000000",
+2491 => x"20202020",
+2492 => x"20202020",
+2493 => x"73686f75",
+2494 => x"6c642062",
+2495 => x"653a2020",
+2496 => x"20444852",
+2497 => x"5953544f",
+2498 => x"4e452050",
+2499 => x"524f4752",
+2500 => x"414d2c20",
+2501 => x"534f4d45",
+2502 => x"20535452",
+2503 => x"494e470a",
+2504 => x"00000000",
+2505 => x"4e657874",
+2506 => x"5f507472",
+2507 => x"5f476c6f",
+2508 => x"622d3e0a",
+2509 => x"00000000",
+2510 => x"20202020",
+2511 => x"20202020",
+2512 => x"73686f75",
+2513 => x"6c642062",
+2514 => x"653a2020",
+2515 => x"2028696d",
+2516 => x"706c656d",
+2517 => x"656e7461",
+2518 => x"74696f6e",
+2519 => x"2d646570",
+2520 => x"656e6465",
+2521 => x"6e74292c",
+2522 => x"2073616d",
+2523 => x"65206173",
+2524 => x"2061626f",
+2525 => x"76650a00",
+2526 => x"496e745f",
+2527 => x"315f4c6f",
+2528 => x"633a2020",
+2529 => x"20202020",
+2530 => x"20202020",
+2531 => x"2025640a",
+2532 => x"00000000",
+2533 => x"496e745f",
+2534 => x"325f4c6f",
+2535 => x"633a2020",
+2536 => x"20202020",
+2537 => x"20202020",
+2538 => x"2025640a",
+2539 => x"00000000",
+2540 => x"496e745f",
+2541 => x"335f4c6f",
+2542 => x"633a2020",
+2543 => x"20202020",
+2544 => x"20202020",
+2545 => x"2025640a",
+2546 => x"00000000",
+2547 => x"456e756d",
+2548 => x"5f4c6f63",
+2549 => x"3a202020",
+2550 => x"20202020",
+2551 => x"20202020",
+2552 => x"2025640a",
+2553 => x"00000000",
+2554 => x"5374725f",
+2555 => x"315f4c6f",
+2556 => x"633a2020",
+2557 => x"20202020",
+2558 => x"20202020",
+2559 => x"2025730a",
+2560 => x"00000000",
+2561 => x"20202020",
+2562 => x"20202020",
+2563 => x"73686f75",
+2564 => x"6c642062",
+2565 => x"653a2020",
+2566 => x"20444852",
+2567 => x"5953544f",
+2568 => x"4e452050",
+2569 => x"524f4752",
+2570 => x"414d2c20",
+2571 => x"31275354",
+2572 => x"20535452",
+2573 => x"494e470a",
+2574 => x"00000000",
+2575 => x"5374725f",
+2576 => x"325f4c6f",
+2577 => x"633a2020",
+2578 => x"20202020",
+2579 => x"20202020",
+2580 => x"2025730a",
+2581 => x"00000000",
+2582 => x"20202020",
+2583 => x"20202020",
+2584 => x"73686f75",
+2585 => x"6c642062",
+2586 => x"653a2020",
+2587 => x"20444852",
+2588 => x"5953544f",
+2589 => x"4e452050",
+2590 => x"524f4752",
+2591 => x"414d2c20",
+2592 => x"32274e44",
+2593 => x"20535452",
+2594 => x"494e470a",
+2595 => x"00000000",
+2596 => x"55736572",
+2597 => x"2074696d",
+2598 => x"653a2025",
+2599 => x"640a0000",
+2600 => x"4d696372",
+2601 => x"6f736563",
+2602 => x"6f6e6473",
+2603 => x"20666f72",
+2604 => x"206f6e65",
+2605 => x"2072756e",
+2606 => x"20746872",
+2607 => x"6f756768",
+2608 => x"20446872",
+2609 => x"7973746f",
+2610 => x"6e653a20",
+2611 => x"00000000",
+2612 => x"2564200a",
+2613 => x"00000000",
+2614 => x"44687279",
+2615 => x"73746f6e",
+2616 => x"65732070",
+2617 => x"65722053",
+2618 => x"65636f6e",
+2619 => x"643a2020",
+2620 => x"20202020",
+2621 => x"20202020",
+2622 => x"20202020",
+2623 => x"20202020",
+2624 => x"20202020",
+2625 => x"00000000",
+2626 => x"56415820",
+2627 => x"4d495053",
+2628 => x"20726174",
+2629 => x"696e6720",
+2630 => x"2a203130",
+2631 => x"3030203d",
+2632 => x"20256420",
+2633 => x"0a000000",
+2634 => x"50726f67",
+2635 => x"72616d20",
+2636 => x"636f6d70",
+2637 => x"696c6564",
+2638 => x"20776974",
+2639 => x"686f7574",
+2640 => x"20277265",
+2641 => x"67697374",
+2642 => x"65722720",
+2643 => x"61747472",
+2644 => x"69627574",
+2645 => x"650a0000",
+2646 => x"4d656173",
+2647 => x"75726564",
+2648 => x"2074696d",
+2649 => x"6520746f",
+2650 => x"6f20736d",
+2651 => x"616c6c20",
+2652 => x"746f206f",
+2653 => x"62746169",
+2654 => x"6e206d65",
+2655 => x"616e696e",
+2656 => x"6766756c",
+2657 => x"20726573",
+2658 => x"756c7473",
+2659 => x"0a000000",
+2660 => x"506c6561",
+2661 => x"73652069",
+2662 => x"6e637265",
+2663 => x"61736520",
+2664 => x"6e756d62",
+2665 => x"6572206f",
+2666 => x"66207275",
+2667 => x"6e730a00",
+2668 => x"44485259",
+2669 => x"53544f4e",
+2670 => x"45205052",
+2671 => x"4f475241",
+2672 => x"4d2c2033",
+2673 => x"27524420",
+2674 => x"53545249",
+2675 => x"4e470000",
+2676 => x"00010202",
+2677 => x"03030303",
+2678 => x"04040404",
+2679 => x"04040404",
+2680 => x"05050505",
+2681 => x"05050505",
+2682 => x"05050505",
+2683 => x"05050505",
+2684 => x"06060606",
+2685 => x"06060606",
+2686 => x"06060606",
+2687 => x"06060606",
+2688 => x"06060606",
+2689 => x"06060606",
+2690 => x"06060606",
+2691 => x"06060606",
+2692 => x"07070707",
+2693 => x"07070707",
+2694 => x"07070707",
+2695 => x"07070707",
+2696 => x"07070707",
+2697 => x"07070707",
+2698 => x"07070707",
+2699 => x"07070707",
+2700 => x"07070707",
+2701 => x"07070707",
+2702 => x"07070707",
+2703 => x"07070707",
+2704 => x"07070707",
+2705 => x"07070707",
+2706 => x"07070707",
+2707 => x"07070707",
+2708 => x"08080808",
+2709 => x"08080808",
+2710 => x"08080808",
+2711 => x"08080808",
+2712 => x"08080808",
+2713 => x"08080808",
+2714 => x"08080808",
+2715 => x"08080808",
+2716 => x"08080808",
+2717 => x"08080808",
+2718 => x"08080808",
+2719 => x"08080808",
+2720 => x"08080808",
+2721 => x"08080808",
+2722 => x"08080808",
+2723 => x"08080808",
+2724 => x"08080808",
+2725 => x"08080808",
+2726 => x"08080808",
+2727 => x"08080808",
+2728 => x"08080808",
+2729 => x"08080808",
+2730 => x"08080808",
+2731 => x"08080808",
+2732 => x"08080808",
+2733 => x"08080808",
+2734 => x"08080808",
+2735 => x"08080808",
+2736 => x"08080808",
+2737 => x"08080808",
+2738 => x"08080808",
+2739 => x"08080808",
+2740 => x"43000000",
+2741 => x"64756d6d",
+2742 => x"792e6578",
+2743 => x"65000000",
+2744 => x"00ffffff",
+2745 => x"ff00ffff",
+2746 => x"ffff00ff",
+2747 => x"ffffff00",
+2748 => x"00000000",
+2749 => x"00000000",
+2750 => x"00000000",
+2751 => x"000032dc",
+2752 => x"0000c350",
+2753 => x"00000000",
+2754 => x"00000000",
+2755 => x"00000000",
+2756 => x"00000000",
+2757 => x"00000000",
+2758 => x"00000000",
+2759 => x"00000000",
+2760 => x"00000000",
+2761 => x"00000000",
+2762 => x"00000000",
+2763 => x"00000000",
+2764 => x"00000000",
+2765 => x"00000000",
+2766 => x"ffffffff",
+2767 => x"00000000",
+2768 => x"00020000",
+2769 => x"00000000",
+2770 => x"00000000",
+2771 => x"00002b44",
+2772 => x"00002b44",
+2773 => x"00002b4c",
+2774 => x"00002b4c",
+2775 => x"00002b54",
+2776 => x"00002b54",
+2777 => x"00002b5c",
+2778 => x"00002b5c",
+2779 => x"00002b64",
+2780 => x"00002b64",
+2781 => x"00002b6c",
+2782 => x"00002b6c",
+2783 => x"00002b74",
+2784 => x"00002b74",
+2785 => x"00002b7c",
+2786 => x"00002b7c",
+2787 => x"00002b84",
+2788 => x"00002b84",
+2789 => x"00002b8c",
+2790 => x"00002b8c",
+2791 => x"00002b94",
+2792 => x"00002b94",
+2793 => x"00002b9c",
+2794 => x"00002b9c",
+2795 => x"00002ba4",
+2796 => x"00002ba4",
+2797 => x"00002bac",
+2798 => x"00002bac",
+2799 => x"00002bb4",
+2800 => x"00002bb4",
+2801 => x"00002bbc",
+2802 => x"00002bbc",
+2803 => x"00002bc4",
+2804 => x"00002bc4",
+2805 => x"00002bcc",
+2806 => x"00002bcc",
+2807 => x"00002bd4",
+2808 => x"00002bd4",
+2809 => x"00002bdc",
+2810 => x"00002bdc",
+2811 => x"00002be4",
+2812 => x"00002be4",
+2813 => x"00002bec",
+2814 => x"00002bec",
+2815 => x"00002bf4",
+2816 => x"00002bf4",
+2817 => x"00002bfc",
+2818 => x"00002bfc",
+2819 => x"00002c04",
+2820 => x"00002c04",
+2821 => x"00002c0c",
+2822 => x"00002c0c",
+2823 => x"00002c14",
+2824 => x"00002c14",
+2825 => x"00002c1c",
+2826 => x"00002c1c",
+2827 => x"00002c24",
+2828 => x"00002c24",
+2829 => x"00002c2c",
+2830 => x"00002c2c",
+2831 => x"00002c34",
+2832 => x"00002c34",
+2833 => x"00002c3c",
+2834 => x"00002c3c",
+2835 => x"00002c44",
+2836 => x"00002c44",
+2837 => x"00002c4c",
+2838 => x"00002c4c",
+2839 => x"00002c54",
+2840 => x"00002c54",
+2841 => x"00002c5c",
+2842 => x"00002c5c",
+2843 => x"00002c64",
+2844 => x"00002c64",
+2845 => x"00002c6c",
+2846 => x"00002c6c",
+2847 => x"00002c74",
+2848 => x"00002c74",
+2849 => x"00002c7c",
+2850 => x"00002c7c",
+2851 => x"00002c84",
+2852 => x"00002c84",
+2853 => x"00002c8c",
+2854 => x"00002c8c",
+2855 => x"00002c94",
+2856 => x"00002c94",
+2857 => x"00002c9c",
+2858 => x"00002c9c",
+2859 => x"00002ca4",
+2860 => x"00002ca4",
+2861 => x"00002cac",
+2862 => x"00002cac",
+2863 => x"00002cb4",
+2864 => x"00002cb4",
+2865 => x"00002cbc",
+2866 => x"00002cbc",
+2867 => x"00002cc4",
+2868 => x"00002cc4",
+2869 => x"00002ccc",
+2870 => x"00002ccc",
+2871 => x"00002cd4",
+2872 => x"00002cd4",
+2873 => x"00002cdc",
+2874 => x"00002cdc",
+2875 => x"00002ce4",
+2876 => x"00002ce4",
+2877 => x"00002cec",
+2878 => x"00002cec",
+2879 => x"00002cf4",
+2880 => x"00002cf4",
+2881 => x"00002cfc",
+2882 => x"00002cfc",
+2883 => x"00002d04",
+2884 => x"00002d04",
+2885 => x"00002d0c",
+2886 => x"00002d0c",
+2887 => x"00002d14",
+2888 => x"00002d14",
+2889 => x"00002d1c",
+2890 => x"00002d1c",
+2891 => x"00002d24",
+2892 => x"00002d24",
+2893 => x"00002d2c",
+2894 => x"00002d2c",
+2895 => x"00002d34",
+2896 => x"00002d34",
+2897 => x"00002d3c",
+2898 => x"00002d3c",
+2899 => x"00002d44",
+2900 => x"00002d44",
+2901 => x"00002d4c",
+2902 => x"00002d4c",
+2903 => x"00002d54",
+2904 => x"00002d54",
+2905 => x"00002d5c",
+2906 => x"00002d5c",
+2907 => x"00002d64",
+2908 => x"00002d64",
+2909 => x"00002d6c",
+2910 => x"00002d6c",
+2911 => x"00002d74",
+2912 => x"00002d74",
+2913 => x"00002d7c",
+2914 => x"00002d7c",
+2915 => x"00002d84",
+2916 => x"00002d84",
+2917 => x"00002d8c",
+2918 => x"00002d8c",
+2919 => x"00002d94",
+2920 => x"00002d94",
+2921 => x"00002d9c",
+2922 => x"00002d9c",
+2923 => x"00002da4",
+2924 => x"00002da4",
+2925 => x"00002dac",
+2926 => x"00002dac",
+2927 => x"00002db4",
+2928 => x"00002db4",
+2929 => x"00002dbc",
+2930 => x"00002dbc",
+2931 => x"00002dc4",
+2932 => x"00002dc4",
+2933 => x"00002dcc",
+2934 => x"00002dcc",
+2935 => x"00002dd4",
+2936 => x"00002dd4",
+2937 => x"00002ddc",
+2938 => x"00002ddc",
+2939 => x"00002de4",
+2940 => x"00002de4",
+2941 => x"00002dec",
+2942 => x"00002dec",
+2943 => x"00002df4",
+2944 => x"00002df4",
+2945 => x"00002dfc",
+2946 => x"00002dfc",
+2947 => x"00002e04",
+2948 => x"00002e04",
+2949 => x"00002e0c",
+2950 => x"00002e0c",
+2951 => x"00002e14",
+2952 => x"00002e14",
+2953 => x"00002e1c",
+2954 => x"00002e1c",
+2955 => x"00002e24",
+2956 => x"00002e24",
+2957 => x"00002e2c",
+2958 => x"00002e2c",
+2959 => x"00002e34",
+2960 => x"00002e34",
+2961 => x"00002e3c",
+2962 => x"00002e3c",
+2963 => x"00002e44",
+2964 => x"00002e44",
+2965 => x"00002e4c",
+2966 => x"00002e4c",
+2967 => x"00002e54",
+2968 => x"00002e54",
+2969 => x"00002e5c",
+2970 => x"00002e5c",
+2971 => x"00002e64",
+2972 => x"00002e64",
+2973 => x"00002e6c",
+2974 => x"00002e6c",
+2975 => x"00002e74",
+2976 => x"00002e74",
+2977 => x"00002e7c",
+2978 => x"00002e7c",
+2979 => x"00002e84",
+2980 => x"00002e84",
+2981 => x"00002e8c",
+2982 => x"00002e8c",
+2983 => x"00002e94",
+2984 => x"00002e94",
+2985 => x"00002e9c",
+2986 => x"00002e9c",
+2987 => x"00002ea4",
+2988 => x"00002ea4",
+2989 => x"00002eac",
+2990 => x"00002eac",
+2991 => x"00002eb4",
+2992 => x"00002eb4",
+2993 => x"00002ebc",
+2994 => x"00002ebc",
+2995 => x"00002ec4",
+2996 => x"00002ec4",
+2997 => x"00002ecc",
+2998 => x"00002ecc",
+2999 => x"00002ed4",
+3000 => x"00002ed4",
+3001 => x"00002edc",
+3002 => x"00002edc",
+3003 => x"00002ee4",
+3004 => x"00002ee4",
+3005 => x"00002eec",
+3006 => x"00002eec",
+3007 => x"00002ef4",
+3008 => x"00002ef4",
+3009 => x"00002efc",
+3010 => x"00002efc",
+3011 => x"00002f04",
+3012 => x"00002f04",
+3013 => x"00002f0c",
+3014 => x"00002f0c",
+3015 => x"00002f14",
+3016 => x"00002f14",
+3017 => x"00002f1c",
+3018 => x"00002f1c",
+3019 => x"00002f24",
+3020 => x"00002f24",
+3021 => x"00002f2c",
+3022 => x"00002f2c",
+3023 => x"00002f34",
+3024 => x"00002f34",
+3025 => x"00002f3c",
+3026 => x"00002f3c",
+3027 => x"00002f50",
+3028 => x"00000000",
+3029 => x"000031b8",
+3030 => x"00003214",
+3031 => x"00003270",
+3032 => x"00000000",
+3033 => x"00000000",
+3034 => x"00000000",
+3035 => x"00000000",
+3036 => x"00000000",
+3037 => x"00000000",
+3038 => x"00000000",
+3039 => x"00000000",
+3040 => x"00000000",
+3041 => x"00002ad0",
+3042 => x"00000000",
+3043 => x"00000000",
+3044 => x"00000000",
+3045 => x"00000000",
+3046 => x"00000000",
+3047 => x"00000000",
+3048 => x"00000000",
+3049 => x"00000000",
+3050 => x"00000000",
+3051 => x"00000000",
+3052 => x"00000000",
+3053 => x"00000000",
+3054 => x"00000000",
+3055 => x"00000000",
+3056 => x"00000000",
+3057 => x"00000000",
+3058 => x"00000000",
+3059 => x"00000000",
+3060 => x"00000000",
+3061 => x"00000000",
+3062 => x"00000000",
+3063 => x"00000000",
+3064 => x"00000000",
+3065 => x"00000000",
+3066 => x"00000000",
+3067 => x"00000000",
+3068 => x"00000000",
+3069 => x"00000000",
+3070 => x"00000001",
+3071 => x"330eabcd",
+3072 => x"1234e66d",
+3073 => x"deec0005",
+3074 => x"000b0000",
+3075 => x"00000000",
+3076 => x"00000000",
+3077 => x"00000000",
+3078 => x"00000000",
+3079 => x"00000000",
+3080 => x"00000000",
+3081 => x"00000000",
+3082 => x"00000000",
+3083 => x"00000000",
+3084 => x"00000000",
+3085 => x"00000000",
+3086 => x"00000000",
+3087 => x"00000000",
+3088 => x"00000000",
+3089 => x"00000000",
+3090 => x"00000000",
+3091 => x"00000000",
+3092 => x"00000000",
+3093 => x"00000000",
+3094 => x"00000000",
+3095 => x"00000000",
+3096 => x"00000000",
+3097 => x"00000000",
+3098 => x"00000000",
+3099 => x"00000000",
+3100 => x"00000000",
+3101 => x"00000000",
+3102 => x"00000000",
+3103 => x"00000000",
+3104 => x"00000000",
+3105 => x"00000000",
+3106 => x"00000000",
+3107 => x"00000000",
+3108 => x"00000000",
+3109 => x"00000000",
+3110 => x"00000000",
+3111 => x"00000000",
+3112 => x"00000000",
+3113 => x"00000000",
+3114 => x"00000000",
+3115 => x"00000000",
+3116 => x"00000000",
+3117 => x"00000000",
+3118 => x"00000000",
+3119 => x"00000000",
+3120 => x"00000000",
+3121 => x"00000000",
+3122 => x"00000000",
+3123 => x"00000000",
+3124 => x"00000000",
+3125 => x"00000000",
+3126 => x"00000000",
+3127 => x"00000000",
+3128 => x"00000000",
+3129 => x"00000000",
+3130 => x"00000000",
+3131 => x"00000000",
+3132 => x"00000000",
+3133 => x"00000000",
+3134 => x"00000000",
+3135 => x"00000000",
+3136 => x"00000000",
+3137 => x"00000000",
+3138 => x"00000000",
+3139 => x"00000000",
+3140 => x"00000000",
+3141 => x"00000000",
+3142 => x"00000000",
+3143 => x"00000000",
+3144 => x"00000000",
+3145 => x"00000000",
+3146 => x"00000000",
+3147 => x"00000000",
+3148 => x"00000000",
+3149 => x"00000000",
+3150 => x"00000000",
+3151 => x"00000000",
+3152 => x"00000000",
+3153 => x"00000000",
+3154 => x"00000000",
+3155 => x"00000000",
+3156 => x"00000000",
+3157 => x"00000000",
+3158 => x"00000000",
+3159 => x"00000000",
+3160 => x"00000000",
+3161 => x"00000000",
+3162 => x"00000000",
+3163 => x"00000000",
+3164 => x"00000000",
+3165 => x"00000000",
+3166 => x"00000000",
+3167 => x"00000000",
+3168 => x"00000000",
+3169 => x"00000000",
+3170 => x"00000000",
+3171 => x"00000000",
+3172 => x"00000000",
+3173 => x"00000000",
+3174 => x"00000000",
+3175 => x"00000000",
+3176 => x"00000000",
+3177 => x"00000000",
+3178 => x"00000000",
+3179 => x"00000000",
+3180 => x"00000000",
+3181 => x"00000000",
+3182 => x"00000000",
+3183 => x"00000000",
+3184 => x"00000000",
+3185 => x"00000000",
+3186 => x"00000000",
+3187 => x"00000000",
+3188 => x"00000000",
+3189 => x"00000000",
+3190 => x"00000000",
+3191 => x"00000000",
+3192 => x"00000000",
+3193 => x"00000000",
+3194 => x"00000000",
+3195 => x"00000000",
+3196 => x"00000000",
+3197 => x"00000000",
+3198 => x"00000000",
+3199 => x"00000000",
+3200 => x"00000000",
+3201 => x"00000000",
+3202 => x"00000000",
+3203 => x"00000000",
+3204 => x"00000000",
+3205 => x"00000000",
+3206 => x"00000000",
+3207 => x"00000000",
+3208 => x"00000000",
+3209 => x"00000000",
+3210 => x"00000000",
+3211 => x"00000000",
+3212 => x"00000000",
+3213 => x"00000000",
+3214 => x"00000000",
+3215 => x"00000000",
+3216 => x"00000000",
+3217 => x"00000000",
+3218 => x"00000000",
+3219 => x"00000000",
+3220 => x"00000000",
+3221 => x"00000000",
+3222 => x"00000000",
+3223 => x"00000000",
+3224 => x"00000000",
+3225 => x"00000000",
+3226 => x"00000000",
+3227 => x"00000000",
+3228 => x"00000000",
+3229 => x"00000000",
+3230 => x"00000000",
+3231 => x"00000000",
+3232 => x"00000000",
+3233 => x"00000000",
+3234 => x"00000000",
+3235 => x"00000000",
+3236 => x"00000000",
+3237 => x"00000000",
+3238 => x"00000000",
+3239 => x"00000000",
+3240 => x"00000000",
+3241 => x"00000000",
+3242 => x"00000000",
+3243 => x"00000000",
+3244 => x"00000000",
+3245 => x"00000000",
+3246 => x"00000000",
+3247 => x"00000000",
+3248 => x"00000000",
+3249 => x"00000000",
+3250 => x"00000000",
+3251 => x"00002ad4",
+3252 => x"ffffffff",
+3253 => x"00000000",
+3254 => x"ffffffff",
+3255 => x"00000000",
Index: zpu/zpu4/test/interrupt/int.elf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: zpu/zpu4/test/interrupt/int.elf
===================================================================
--- zpu/zpu4/test/interrupt/int.elf (nonexistent)
+++ zpu/zpu4/test/interrupt/int.elf (revision 93)
zpu/zpu4/test/interrupt/int.elf
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: zpu/zpu4/test/interrupt/int.bin
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: zpu/zpu4/test/interrupt/int.bin
===================================================================
--- zpu/zpu4/test/interrupt/int.bin (nonexistent)
+++ zpu/zpu4/test/interrupt/int.bin (revision 93)
zpu/zpu4/test/interrupt/int.bin
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: zpu/zpu4/test/interrupt/build.sh
===================================================================
--- zpu/zpu4/test/interrupt/build.sh (nonexistent)
+++ zpu/zpu4/test/interrupt/build.sh (revision 93)
@@ -0,0 +1,4 @@
+zpu-elf-gcc -O3 -phi `pwd`/int.c -o int.elf -Wl,--relax -Wl,--gc-sections -g
+zpu-elf-objdump --disassemble-all >int.dis int.elf
+zpu-elf-objcopy -O binary int.elf int.bin
+java -classpath ../../../../sw/simulator/zpusim.jar com.zylin.zpu.simulator.tools.MakeRam int.bin >int.ram
Index: zpu/zpu4/test/interrupt/int.ram
===================================================================
--- zpu/zpu4/test/interrupt/int.ram (nonexistent)
+++ zpu/zpu4/test/interrupt/int.ram (revision 93)
@@ -0,0 +1,3057 @@
+0 => x"0b0b0b0b",
+1 => x"82700b0b",
+2 => x"80cfe00c",
+3 => x"3a0b0b80",
+4 => x"c6e00400",
+5 => x"00000000",
+6 => x"00000000",
+7 => x"00000000",
+8 => x"80088408",
+9 => x"88080b0b",
+10 => x"0b8af02d",
+11 => x"880c840c",
+12 => x"800c0400",
+13 => x"00000000",
+14 => x"00000000",
+15 => x"00000000",
+16 => x"71fd0608",
+17 => x"72830609",
+18 => x"81058205",
+19 => x"832b2a83",
+20 => x"ffff0652",
+21 => x"04000000",
+22 => x"00000000",
+23 => x"00000000",
+24 => x"71fd0608",
+25 => x"83ffff73",
+26 => x"83060981",
+27 => x"05820583",
+28 => x"2b2b0906",
+29 => x"7383ffff",
+30 => x"0b0b0b0b",
+31 => x"83a70400",
+32 => x"72098105",
+33 => x"72057373",
+34 => x"09060906",
+35 => x"73097306",
+36 => x"070a8106",
+37 => x"53510400",
+38 => x"00000000",
+39 => x"00000000",
+40 => x"72722473",
+41 => x"732e0753",
+42 => x"51040000",
+43 => x"00000000",
+44 => x"00000000",
+45 => x"00000000",
+46 => x"00000000",
+47 => x"00000000",
+48 => x"71737109",
+49 => x"71068106",
+50 => x"30720a10",
+51 => x"0a720a10",
+52 => x"0a31050a",
+53 => x"81065151",
+54 => x"53510400",
+55 => x"00000000",
+56 => x"72722673",
+57 => x"732e0753",
+58 => x"51040000",
+59 => x"00000000",
+60 => x"00000000",
+61 => x"00000000",
+62 => x"00000000",
+63 => x"00000000",
+64 => x"00000000",
+65 => x"00000000",
+66 => x"00000000",
+67 => x"00000000",
+68 => x"00000000",
+69 => x"00000000",
+70 => x"00000000",
+71 => x"00000000",
+72 => x"0b0b0b88",
+73 => x"c4040000",
+74 => x"00000000",
+75 => x"00000000",
+76 => x"00000000",
+77 => x"00000000",
+78 => x"00000000",
+79 => x"00000000",
+80 => x"720a722b",
+81 => x"0a535104",
+82 => x"00000000",
+83 => x"00000000",
+84 => x"00000000",
+85 => x"00000000",
+86 => x"00000000",
+87 => x"00000000",
+88 => x"72729f06",
+89 => x"0981050b",
+90 => x"0b0b88a7",
+91 => x"05040000",
+92 => x"00000000",
+93 => x"00000000",
+94 => x"00000000",
+95 => x"00000000",
+96 => x"72722aff",
+97 => x"739f062a",
+98 => x"0974090a",
+99 => x"8106ff05",
+100 => x"06075351",
+101 => x"04000000",
+102 => x"00000000",
+103 => x"00000000",
+104 => x"71715351",
+105 => x"020d0406",
+106 => x"73830609",
+107 => x"81058205",
+108 => x"832b0b2b",
+109 => x"0772fc06",
+110 => x"0c515104",
+111 => x"00000000",
+112 => x"72098105",
+113 => x"72050970",
+114 => x"81050906",
+115 => x"0a810653",
+116 => x"51040000",
+117 => x"00000000",
+118 => x"00000000",
+119 => x"00000000",
+120 => x"72098105",
+121 => x"72050970",
+122 => x"81050906",
+123 => x"0a098106",
+124 => x"53510400",
+125 => x"00000000",
+126 => x"00000000",
+127 => x"00000000",
+128 => x"71098105",
+129 => x"52040000",
+130 => x"00000000",
+131 => x"00000000",
+132 => x"00000000",
+133 => x"00000000",
+134 => x"00000000",
+135 => x"00000000",
+136 => x"72720981",
+137 => x"05055351",
+138 => x"04000000",
+139 => x"00000000",
+140 => x"00000000",
+141 => x"00000000",
+142 => x"00000000",
+143 => x"00000000",
+144 => x"72097206",
+145 => x"73730906",
+146 => x"07535104",
+147 => x"00000000",
+148 => x"00000000",
+149 => x"00000000",
+150 => x"00000000",
+151 => x"00000000",
+152 => x"71fc0608",
+153 => x"72830609",
+154 => x"81058305",
+155 => x"1010102a",
+156 => x"81ff0652",
+157 => x"04000000",
+158 => x"00000000",
+159 => x"00000000",
+160 => x"71fc0608",
+161 => x"0b0b80cf",
+162 => x"cc738306",
+163 => x"10100508",
+164 => x"060b0b0b",
+165 => x"88aa0400",
+166 => x"00000000",
+167 => x"00000000",
+168 => x"80088408",
+169 => x"88087575",
+170 => x"0b0b0b8b",
+171 => x"ab2d5050",
+172 => x"80085688",
+173 => x"0c840c80",
+174 => x"0c510400",
+175 => x"00000000",
+176 => x"80088408",
+177 => x"88087575",
+178 => x"0b0b0b8b",
+179 => x"ef2d5050",
+180 => x"80085688",
+181 => x"0c840c80",
+182 => x"0c510400",
+183 => x"00000000",
+184 => x"72097081",
+185 => x"0509060a",
+186 => x"8106ff05",
+187 => x"70547106",
+188 => x"73097274",
+189 => x"05ff0506",
+190 => x"07515151",
+191 => x"04000000",
+192 => x"72097081",
+193 => x"0509060a",
+194 => x"098106ff",
+195 => x"05705471",
+196 => x"06730972",
+197 => x"7405ff05",
+198 => x"06075151",
+199 => x"51040000",
+200 => x"05ff0504",
+201 => x"00000000",
+202 => x"00000000",
+203 => x"00000000",
+204 => x"00000000",
+205 => x"00000000",
+206 => x"00000000",
+207 => x"00000000",
+208 => x"810b0b0b",
+209 => x"80cfdc0c",
+210 => x"51040000",
+211 => x"00000000",
+212 => x"00000000",
+213 => x"00000000",
+214 => x"00000000",
+215 => x"00000000",
+216 => x"71810552",
+217 => x"04000000",
+218 => x"00000000",
+219 => x"00000000",
+220 => x"00000000",
+221 => x"00000000",
+222 => x"00000000",
+223 => x"00000000",
+224 => x"00000000",
+225 => x"00000000",
+226 => x"00000000",
+227 => x"00000000",
+228 => x"00000000",
+229 => x"00000000",
+230 => x"00000000",
+231 => x"00000000",
+232 => x"02840572",
+233 => x"10100552",
+234 => x"04000000",
+235 => x"00000000",
+236 => x"00000000",
+237 => x"00000000",
+238 => x"00000000",
+239 => x"00000000",
+240 => x"00000000",
+241 => x"00000000",
+242 => x"00000000",
+243 => x"00000000",
+244 => x"00000000",
+245 => x"00000000",
+246 => x"00000000",
+247 => x"00000000",
+248 => x"717105ff",
+249 => x"05715351",
+250 => x"020d0400",
+251 => x"00000000",
+252 => x"00000000",
+253 => x"00000000",
+254 => x"00000000",
+255 => x"00000000",
+256 => x"82c53f80",
+257 => x"c6e63f04",
+258 => x"10101010",
+259 => x"10101010",
+260 => x"10101010",
+261 => x"10101010",
+262 => x"10101010",
+263 => x"10101010",
+264 => x"10101010",
+265 => x"10101053",
+266 => x"51047381",
+267 => x"ff067383",
+268 => x"06098105",
+269 => x"83051010",
+270 => x"102b0772",
+271 => x"fc060c51",
+272 => x"51043c04",
+273 => x"72728072",
+274 => x"8106ff05",
+275 => x"09720605",
+276 => x"71105272",
+277 => x"0a100a53",
+278 => x"72ed3851",
+279 => x"51535104",
+280 => x"fe3d0d0b",
+281 => x"0b80dfc8",
+282 => x"08538413",
+283 => x"0870882a",
+284 => x"70810651",
+285 => x"52527080",
+286 => x"2ef03871",
+287 => x"81ff0680",
+288 => x"0c843d0d",
+289 => x"04ff3d0d",
+290 => x"0b0b80df",
+291 => x"c8085271",
+292 => x"0870882a",
+293 => x"81327081",
+294 => x"06515151",
+295 => x"70f13873",
+296 => x"720c833d",
+297 => x"0d0480cf",
+298 => x"dc08802e",
+299 => x"a43880cf",
+300 => x"e008822e",
+301 => x"bd388380",
+302 => x"800b0b0b",
+303 => x"80dfc80c",
+304 => x"82a0800b",
+305 => x"80dfcc0c",
+306 => x"8290800b",
+307 => x"80dfd00c",
+308 => x"04f88080",
+309 => x"80a40b0b",
+310 => x"0b80dfc8",
+311 => x"0cf88080",
+312 => x"82800b80",
+313 => x"dfcc0cf8",
+314 => x"80808480",
+315 => x"0b80dfd0",
+316 => x"0c0480c0",
+317 => x"a8808c0b",
+318 => x"0b0b80df",
+319 => x"c80c80c0",
+320 => x"a880940b",
+321 => x"80dfcc0c",
+322 => x"0b0b80cf",
+323 => x"980b80df",
+324 => x"d00c0470",
+325 => x"7080dfd4",
+326 => x"335170a7",
+327 => x"3880cfe8",
+328 => x"08700852",
+329 => x"5270802e",
+330 => x"94388412",
+331 => x"80cfe80c",
+332 => x"702d80cf",
+333 => x"e8087008",
+334 => x"525270ee",
+335 => x"38810b80",
+336 => x"dfd43450",
+337 => x"50040470",
+338 => x"0b0b80df",
+339 => x"c408802e",
+340 => x"8e380b0b",
+341 => x"0b0b800b",
+342 => x"802e0981",
+343 => x"06833850",
+344 => x"040b0b80",
+345 => x"dfc4510b",
+346 => x"0b0bf594",
+347 => x"3f500404",
+348 => x"803d0d80",
+349 => x"dfe00881",
+350 => x"1180dfe0",
+351 => x"0c51823d",
+352 => x"0d04fe3d",
+353 => x"0d80dfe0",
+354 => x"085380df",
+355 => x"e0085272",
+356 => x"722e8f38",
+357 => x"80cf9c51",
+358 => x"82b03f80",
+359 => x"dfe00853",
+360 => x"e93980cf",
+361 => x"ac5182a2",
+362 => x"3fe039fb",
+363 => x"3d0d7779",
+364 => x"55558056",
+365 => x"757524ab",
+366 => x"38807424",
+367 => x"9d388053",
+368 => x"73527451",
+369 => x"80e13f80",
+370 => x"08547580",
+371 => x"2e853880",
+372 => x"08305473",
+373 => x"800c873d",
+374 => x"0d047330",
+375 => x"76813257",
+376 => x"54dc3974",
+377 => x"30558156",
+378 => x"738025d2",
+379 => x"38ec39fa",
+380 => x"3d0d787a",
+381 => x"57558057",
+382 => x"767524a4",
+383 => x"38759f2c",
+384 => x"54815375",
+385 => x"74327431",
+386 => x"5274519b",
+387 => x"3f800854",
+388 => x"76802e85",
+389 => x"38800830",
+390 => x"5473800c",
+391 => x"883d0d04",
+392 => x"74305581",
+393 => x"57d739fc",
+394 => x"3d0d7678",
+395 => x"53548153",
+396 => x"80747326",
+397 => x"52557280",
+398 => x"2e983870",
+399 => x"802eab38",
+400 => x"807224a6",
+401 => x"38711073",
+402 => x"10757226",
+403 => x"53545272",
+404 => x"ea387351",
+405 => x"78833874",
+406 => x"5170800c",
+407 => x"863d0d04",
+408 => x"720a100a",
+409 => x"720a100a",
+410 => x"53537280",
+411 => x"2ee43871",
+412 => x"7426ed38",
+413 => x"73723175",
+414 => x"7407740a",
+415 => x"100a740a",
+416 => x"100a5555",
+417 => x"5654e339",
+418 => x"f73d0d7c",
+419 => x"70525380",
+420 => x"fd3f7254",
+421 => x"8008550b",
+422 => x"0b80cfb8",
+423 => x"56815780",
+424 => x"0881055a",
+425 => x"8b3de411",
+426 => x"59538259",
+427 => x"f413527b",
+428 => x"88110852",
+429 => x"5381b43f",
+430 => x"80083070",
+431 => x"8008079f",
+432 => x"2c8a0780",
+433 => x"0c538b3d",
+434 => x"0d04f63d",
+435 => x"0d7c80cf",
+436 => x"ec087153",
+437 => x"5553b73f",
+438 => x"72558008",
+439 => x"560b0b80",
+440 => x"cfb85781",
+441 => x"58800881",
+442 => x"055b8c3d",
+443 => x"e4115a53",
+444 => x"825af413",
+445 => x"52881408",
+446 => x"5180f03f",
+447 => x"80083070",
+448 => x"8008079f",
+449 => x"2c8a0780",
+450 => x"0c548c3d",
+451 => x"0d047070",
+452 => x"70707570",
+453 => x"71830653",
+454 => x"555270b4",
+455 => x"38717008",
+456 => x"7009f7fb",
+457 => x"fdff1206",
+458 => x"f8848281",
+459 => x"80065452",
+460 => x"53719b38",
+461 => x"84137008",
+462 => x"7009f7fb",
+463 => x"fdff1206",
+464 => x"f8848281",
+465 => x"80065452",
+466 => x"5371802e",
+467 => x"e7387252",
+468 => x"71335372",
+469 => x"802e8a38",
+470 => x"81127033",
+471 => x"545272f8",
+472 => x"38717431",
+473 => x"800c5050",
+474 => x"505004f2",
+475 => x"3d0d6062",
+476 => x"88110870",
+477 => x"58565f5a",
+478 => x"73802e81",
+479 => x"8c388c1a",
+480 => x"2270832a",
+481 => x"81328106",
+482 => x"56587486",
+483 => x"38901a08",
+484 => x"91387951",
+485 => x"90b73fff",
+486 => x"55800880",
+487 => x"ec388c1a",
+488 => x"22587d08",
+489 => x"55807883",
+490 => x"ffff0670",
+491 => x"0a100a81",
+492 => x"06415c57",
+493 => x"7e772e80",
+494 => x"d7387690",
+495 => x"38740884",
+496 => x"16088817",
+497 => x"57585676",
+498 => x"802ef238",
+499 => x"76548880",
+500 => x"77278438",
+501 => x"88805473",
+502 => x"5375529c",
+503 => x"1a0851a4",
+504 => x"1a085877",
+505 => x"2d800b80",
+506 => x"082582e0",
+507 => x"38800816",
+508 => x"77800831",
+509 => x"7f880508",
+510 => x"80083170",
+511 => x"6188050c",
+512 => x"5b585678",
+513 => x"ffb43880",
+514 => x"5574800c",
+515 => x"903d0d04",
+516 => x"7a813281",
+517 => x"06774056",
+518 => x"75802e81",
+519 => x"bd387690",
+520 => x"38740884",
+521 => x"16088817",
+522 => x"57585976",
+523 => x"802ef238",
+524 => x"881a0878",
+525 => x"83ffff06",
+526 => x"70892a81",
+527 => x"06565956",
+528 => x"73802e82",
+529 => x"f8387577",
+530 => x"278b3877",
+531 => x"872a8106",
+532 => x"5c7b82b5",
+533 => x"38767627",
+534 => x"83387656",
+535 => x"75537852",
+536 => x"79085185",
+537 => x"833f881a",
+538 => x"08763188",
+539 => x"1b0c7908",
+540 => x"167a0c76",
+541 => x"56751977",
+542 => x"77317f88",
+543 => x"05087831",
+544 => x"70618805",
+545 => x"0c415859",
+546 => x"7e802efe",
+547 => x"fa388c1a",
+548 => x"2258ff8a",
+549 => x"39787954",
+550 => x"7c537b52",
+551 => x"5684c93f",
+552 => x"881a0879",
+553 => x"31881b0c",
+554 => x"7908197a",
+555 => x"0c7c7631",
+556 => x"5d7c8e38",
+557 => x"79518ff2",
+558 => x"3f800881",
+559 => x"8f388008",
+560 => x"5f751c77",
+561 => x"77317f88",
+562 => x"05087831",
+563 => x"70618805",
+564 => x"0c5d585c",
+565 => x"7a802efe",
+566 => x"ae387681",
+567 => x"83387408",
+568 => x"84160888",
+569 => x"1757585c",
+570 => x"76802ef2",
+571 => x"3876538a",
+572 => x"527b5182",
+573 => x"d33f8008",
+574 => x"7c318105",
+575 => x"5d800884",
+576 => x"3881175d",
+577 => x"815f7c59",
+578 => x"767d2783",
+579 => x"38765994",
+580 => x"1a08881b",
+581 => x"08115758",
+582 => x"807a085c",
+583 => x"54901a08",
+584 => x"7b278338",
+585 => x"81547579",
+586 => x"25843873",
+587 => x"ba387779",
+588 => x"24fee238",
+589 => x"77537b52",
+590 => x"9c1a0851",
+591 => x"a41a0859",
+592 => x"782d8008",
+593 => x"56800880",
+594 => x"24fee238",
+595 => x"8c1a2280",
+596 => x"c0075e7d",
+597 => x"8c1b23ff",
+598 => x"5574800c",
+599 => x"903d0d04",
+600 => x"7effa338",
+601 => x"ff873975",
+602 => x"537b527a",
+603 => x"5182f93f",
+604 => x"7908167a",
+605 => x"0c79518e",
+606 => x"b13f8008",
+607 => x"cf387c76",
+608 => x"315d7cfe",
+609 => x"bc38feac",
+610 => x"39901a08",
+611 => x"7a087131",
+612 => x"78117056",
+613 => x"5a575280",
+614 => x"cfec0851",
+615 => x"84943f80",
+616 => x"08802eff",
+617 => x"a7388008",
+618 => x"901b0c80",
+619 => x"08167a0c",
+620 => x"77941b0c",
+621 => x"76881b0c",
+622 => x"7656fd99",
+623 => x"39790858",
+624 => x"901a0878",
+625 => x"27833881",
+626 => x"54757727",
+627 => x"843873b3",
+628 => x"38941a08",
+629 => x"54737726",
+630 => x"80d33873",
+631 => x"5378529c",
+632 => x"1a0851a4",
+633 => x"1a085877",
+634 => x"2d800856",
+635 => x"80088024",
+636 => x"fd83388c",
+637 => x"1a2280c0",
+638 => x"075e7d8c",
+639 => x"1b23ff55",
+640 => x"fed73975",
+641 => x"53785277",
+642 => x"5181dd3f",
+643 => x"7908167a",
+644 => x"0c79518d",
+645 => x"953f8008",
+646 => x"802efcd9",
+647 => x"388c1a22",
+648 => x"80c0075e",
+649 => x"7d8c1b23",
+650 => x"ff55fead",
+651 => x"39767754",
+652 => x"79537852",
+653 => x"5681b13f",
+654 => x"881a0877",
+655 => x"31881b0c",
+656 => x"7908177a",
+657 => x"0cfcae39",
+658 => x"fa3d0d7a",
+659 => x"79028805",
+660 => x"a7053355",
+661 => x"53548374",
+662 => x"2780df38",
+663 => x"71830651",
+664 => x"7080d738",
+665 => x"71715755",
+666 => x"83517582",
+667 => x"802913ff",
+668 => x"12525670",
+669 => x"8025f338",
+670 => x"837427bc",
+671 => x"38740876",
+672 => x"327009f7",
+673 => x"fbfdff12",
+674 => x"06f88482",
+675 => x"81800651",
+676 => x"5170802e",
+677 => x"98387451",
+678 => x"80527033",
+679 => x"5772772e",
+680 => x"b9388111",
+681 => x"81135351",
+682 => x"837227ee",
+683 => x"38fc1484",
+684 => x"16565473",
+685 => x"8326c638",
+686 => x"7452ff14",
+687 => x"5170ff2e",
+688 => x"97387133",
+689 => x"5472742e",
+690 => x"98388112",
+691 => x"ff125252",
+692 => x"70ff2e09",
+693 => x"8106eb38",
+694 => x"80517080",
+695 => x"0c883d0d",
+696 => x"0471800c",
+697 => x"883d0d04",
+698 => x"fa3d0d78",
+699 => x"7a7c7272",
+700 => x"72595755",
+701 => x"58565774",
+702 => x"7727b238",
+703 => x"75155176",
+704 => x"7127aa38",
+705 => x"707618ff",
+706 => x"18535353",
+707 => x"70ff2e96",
+708 => x"38ff12ff",
+709 => x"14545272",
+710 => x"337234ff",
+711 => x"115170ff",
+712 => x"2e098106",
+713 => x"ec387680",
+714 => x"0c883d0d",
+715 => x"048f7627",
+716 => x"80e63874",
+717 => x"77078306",
+718 => x"517080dc",
+719 => x"38767552",
+720 => x"53707084",
+721 => x"05520873",
+722 => x"70840555",
+723 => x"0c727170",
+724 => x"84055308",
+725 => x"71708405",
+726 => x"530c7170",
+727 => x"84055308",
+728 => x"71708405",
+729 => x"530c7170",
+730 => x"84055308",
+731 => x"71708405",
+732 => x"530cf015",
+733 => x"5553738f",
+734 => x"26c73883",
+735 => x"74279538",
+736 => x"70708405",
+737 => x"52087370",
+738 => x"8405550c",
+739 => x"fc145473",
+740 => x"8326ed38",
+741 => x"72715452",
+742 => x"ff145170",
+743 => x"ff2eff86",
+744 => x"38727081",
+745 => x"05543372",
+746 => x"70810554",
+747 => x"34ff1151",
+748 => x"ea39ef3d",
+749 => x"0d636567",
+750 => x"405d427b",
+751 => x"802e8582",
+752 => x"386151a9",
+753 => x"e73ff81c",
+754 => x"70841208",
+755 => x"70fc0670",
+756 => x"628b0570",
+757 => x"f8064159",
+758 => x"455c5f41",
+759 => x"57967427",
+760 => x"82c53880",
+761 => x"7b247e7c",
+762 => x"26075880",
+763 => x"5477742e",
+764 => x"09810682",
+765 => x"ab38787b",
+766 => x"2581fe38",
+767 => x"781780d7",
+768 => x"a80b8805",
+769 => x"085b5679",
+770 => x"762e84c5",
+771 => x"38841608",
+772 => x"70fe0617",
+773 => x"84110881",
+774 => x"06415555",
+775 => x"7e828d38",
+776 => x"74fc0658",
+777 => x"79762e84",
+778 => x"e3387818",
+779 => x"5f7e7b25",
+780 => x"81ff387c",
+781 => x"81065473",
+782 => x"82c13876",
+783 => x"77083184",
+784 => x"1108fc06",
+785 => x"56577580",
+786 => x"2e913879",
+787 => x"762e84f0",
+788 => x"38741819",
+789 => x"58777b25",
+790 => x"84913876",
+791 => x"802e829b",
+792 => x"38781556",
+793 => x"7a762482",
+794 => x"92388c17",
+795 => x"08881808",
+796 => x"718c120c",
+797 => x"88120c5e",
+798 => x"75598817",
+799 => x"61fc055b",
+800 => x"5679a426",
+801 => x"85ff387b",
+802 => x"76595593",
+803 => x"7a2780c9",
+804 => x"387b7084",
+805 => x"055d087c",
+806 => x"56760c74",
+807 => x"70840556",
+808 => x"088c180c",
+809 => x"9017589b",
+810 => x"7a27ae38",
+811 => x"74708405",
+812 => x"5608780c",
+813 => x"74708405",
+814 => x"56089418",
+815 => x"0c981758",
+816 => x"a37a2795",
+817 => x"38747084",
+818 => x"05560878",
+819 => x"0c747084",
+820 => x"0556089c",
+821 => x"180ca017",
+822 => x"58747084",
+823 => x"05560875",
+824 => x"5f787084",
+825 => x"055a0c77",
+826 => x"7e708405",
+827 => x"40087170",
+828 => x"8405530c",
+829 => x"7e08710c",
+830 => x"5d787b31",
+831 => x"56758f26",
+832 => x"80c93884",
+833 => x"17088106",
+834 => x"79078418",
+835 => x"0c781784",
+836 => x"11088107",
+837 => x"84120c5b",
+838 => x"6151a791",
+839 => x"3f881754",
+840 => x"73800c93",
+841 => x"3d0d0490",
+842 => x"5bfdb839",
+843 => x"7756fe83",
+844 => x"398c1608",
+845 => x"88170871",
+846 => x"8c120c88",
+847 => x"120c587e",
+848 => x"707c3157",
+849 => x"598f7627",
+850 => x"ffb9387a",
+851 => x"17841808",
+852 => x"81067c07",
+853 => x"84190c76",
+854 => x"81078412",
+855 => x"0c761184",
+856 => x"11088107",
+857 => x"84120c5b",
+858 => x"88055261",
+859 => x"518fda3f",
+860 => x"6151a6b9",
+861 => x"3f881754",
+862 => x"ffa6397d",
+863 => x"52615197",
+864 => x"d73f8008",
+865 => x"5a800880",
+866 => x"2e81ab38",
+867 => x"8008f805",
+868 => x"60840508",
+869 => x"fe066105",
+870 => x"58557477",
+871 => x"2e83f238",
+872 => x"fc195877",
+873 => x"a42681b0",
+874 => x"387b8008",
+875 => x"56579378",
+876 => x"2780dc38",
+877 => x"7b707084",
+878 => x"05520880",
+879 => x"08708405",
+880 => x"800c0c80",
+881 => x"08717084",
+882 => x"0553085d",
+883 => x"567b7670",
+884 => x"8405580c",
+885 => x"579b7827",
+886 => x"b6387670",
+887 => x"84055808",
+888 => x"75708405",
+889 => x"570c7670",
+890 => x"84055808",
+891 => x"75708405",
+892 => x"570ca378",
+893 => x"27993876",
+894 => x"70840558",
+895 => x"08757084",
+896 => x"05570c76",
+897 => x"70840558",
+898 => x"08757084",
+899 => x"05570c76",
+900 => x"70840558",
+901 => x"08775e75",
+902 => x"70840557",
+903 => x"0c747d70",
+904 => x"84055f08",
+905 => x"71708405",
+906 => x"530c7d08",
+907 => x"710c5f7b",
+908 => x"5261518e",
+909 => x"943f6151",
+910 => x"a4f33f79",
+911 => x"800c933d",
+912 => x"0d047d52",
+913 => x"61519690",
+914 => x"3f800880",
+915 => x"0c933d0d",
+916 => x"04841608",
+917 => x"55fbc939",
+918 => x"77537b52",
+919 => x"800851a2",
+920 => x"a53f7b52",
+921 => x"61518de1",
+922 => x"3fcc398c",
+923 => x"16088817",
+924 => x"08718c12",
+925 => x"0c88120c",
+926 => x"5d8c1708",
+927 => x"88180871",
+928 => x"8c120c88",
+929 => x"120c5977",
+930 => x"59fbef39",
+931 => x"7818901c",
+932 => x"40557e75",
+933 => x"24fb9c38",
+934 => x"7a177080",
+935 => x"d7a80b88",
+936 => x"050c757c",
+937 => x"31810784",
+938 => x"120c5684",
+939 => x"17088106",
+940 => x"7b078418",
+941 => x"0c6151a3",
+942 => x"f43f8817",
+943 => x"54fce139",
+944 => x"74181990",
+945 => x"1c5e5a7c",
+946 => x"7a24fb8f",
+947 => x"388c1708",
+948 => x"88180871",
+949 => x"8c120c88",
+950 => x"120c5e88",
+951 => x"1761fc05",
+952 => x"575975a4",
+953 => x"2681b638",
+954 => x"7b795955",
+955 => x"93762780",
+956 => x"c9387b70",
+957 => x"84055d08",
+958 => x"7c56790c",
+959 => x"74708405",
+960 => x"56088c18",
+961 => x"0c901758",
+962 => x"9b7627ae",
+963 => x"38747084",
+964 => x"05560878",
+965 => x"0c747084",
+966 => x"05560894",
+967 => x"180c9817",
+968 => x"58a37627",
+969 => x"95387470",
+970 => x"84055608",
+971 => x"780c7470",
+972 => x"84055608",
+973 => x"9c180ca0",
+974 => x"17587470",
+975 => x"84055608",
+976 => x"75417870",
+977 => x"84055a0c",
+978 => x"77607084",
+979 => x"05420871",
+980 => x"70840553",
+981 => x"0c600871",
+982 => x"0c5e7a17",
+983 => x"7080d7a8",
+984 => x"0b88050c",
+985 => x"7a7c3181",
+986 => x"0784120c",
+987 => x"58841708",
+988 => x"81067b07",
+989 => x"84180c61",
+990 => x"51a2b23f",
+991 => x"78547380",
+992 => x"0c933d0d",
+993 => x"0479537b",
+994 => x"5275519f",
+995 => x"f93ffae9",
+996 => x"39841508",
+997 => x"fc061960",
+998 => x"5859fadd",
+999 => x"3975537b",
+1000 => x"5278519f",
+1001 => x"e13f7a17",
+1002 => x"7080d7a8",
+1003 => x"0b88050c",
+1004 => x"7a7c3181",
+1005 => x"0784120c",
+1006 => x"58841708",
+1007 => x"81067b07",
+1008 => x"84180c61",
+1009 => x"51a1e63f",
+1010 => x"7854ffb2",
+1011 => x"39fa3d0d",
+1012 => x"7880cfec",
+1013 => x"085455b8",
+1014 => x"1308802e",
+1015 => x"81af388c",
+1016 => x"15227083",
+1017 => x"ffff0670",
+1018 => x"832a8132",
+1019 => x"81065555",
+1020 => x"5672802e",
+1021 => x"80da3873",
+1022 => x"842a8132",
+1023 => x"810657ff",
+1024 => x"537680f2",
+1025 => x"3873822a",
+1026 => x"81065473",
+1027 => x"802eb938",
+1028 => x"b0150854",
+1029 => x"73802e9c",
+1030 => x"3880c015",
+1031 => x"5373732e",
+1032 => x"8f387352",
+1033 => x"80cfec08",
+1034 => x"518a9e3f",
+1035 => x"8c152256",
+1036 => x"76b0160c",
+1037 => x"75db0657",
+1038 => x"768c1623",
+1039 => x"800b8416",
+1040 => x"0c901508",
+1041 => x"750c7656",
+1042 => x"75880754",
+1043 => x"738c1623",
+1044 => x"90150880",
+1045 => x"2ebf388c",
+1046 => x"15227081",
+1047 => x"06555373",
+1048 => x"9c38720a",
+1049 => x"100a8106",
+1050 => x"56758538",
+1051 => x"94150854",
+1052 => x"7388160c",
+1053 => x"80537280",
+1054 => x"0c883d0d",
+1055 => x"04800b88",
+1056 => x"160c9415",
+1057 => x"08309816",
+1058 => x"0c8053ea",
+1059 => x"39725182",
+1060 => x"a63ffecb",
+1061 => x"3974518f",
+1062 => x"bc3f8c15",
+1063 => x"22708106",
+1064 => x"55537380",
+1065 => x"2effbb38",
+1066 => x"d439f83d",
+1067 => x"0d7a5776",
+1068 => x"802e8197",
+1069 => x"3880cfec",
+1070 => x"0854b814",
+1071 => x"08802e80",
+1072 => x"eb388c17",
+1073 => x"2270902b",
+1074 => x"70902c70",
+1075 => x"832a8132",
+1076 => x"81065b5b",
+1077 => x"57557780",
+1078 => x"cb389017",
+1079 => x"08567580",
+1080 => x"2e80c138",
+1081 => x"76087631",
+1082 => x"76780c79",
+1083 => x"83065555",
+1084 => x"73853894",
+1085 => x"17085877",
+1086 => x"88180c80",
+1087 => x"7525a538",
+1088 => x"74537552",
+1089 => x"9c170851",
+1090 => x"a4170854",
+1091 => x"732d800b",
+1092 => x"80082580",
+1093 => x"c9388008",
+1094 => x"16758008",
+1095 => x"31565674",
+1096 => x"8024dd38",
+1097 => x"800b800c",
+1098 => x"8a3d0d04",
+1099 => x"73518187",
+1100 => x"3f8c1722",
+1101 => x"70902b70",
+1102 => x"902c7083",
+1103 => x"2a813281",
+1104 => x"065b5b57",
+1105 => x"5577dd38",
+1106 => x"ff9039a1",
+1107 => x"aa5280cf",
+1108 => x"ec08518c",
+1109 => x"d03f8008",
+1110 => x"800c8a3d",
+1111 => x"0d048c17",
+1112 => x"2280c007",
+1113 => x"58778c18",
+1114 => x"23ff0b80",
+1115 => x"0c8a3d0d",
+1116 => x"04fa3d0d",
+1117 => x"797080dc",
+1118 => x"298c1154",
+1119 => x"7a535657",
+1120 => x"8fd63f80",
+1121 => x"08800855",
+1122 => x"56800880",
+1123 => x"2ea23880",
+1124 => x"088c0554",
+1125 => x"800b8008",
+1126 => x"0c768008",
+1127 => x"84050c73",
+1128 => x"80088805",
+1129 => x"0c745380",
+1130 => x"5273519c",
+1131 => x"f53f7554",
+1132 => x"73800c88",
+1133 => x"3d0d0470",
+1134 => x"707074a8",
+1135 => x"f60bbc12",
+1136 => x"0c53810b",
+1137 => x"b8140c80",
+1138 => x"0b84dc14",
+1139 => x"0c830b84",
+1140 => x"e0140c84",
+1141 => x"e81384e4",
+1142 => x"140c8413",
+1143 => x"08518070",
+1144 => x"720c7084",
+1145 => x"130c7088",
+1146 => x"130c5284",
+1147 => x"0b8c1223",
+1148 => x"718e1223",
+1149 => x"7190120c",
+1150 => x"7194120c",
+1151 => x"7198120c",
+1152 => x"709c120c",
+1153 => x"80c1e50b",
+1154 => x"a0120c80",
+1155 => x"c2b10ba4",
+1156 => x"120c80c3",
+1157 => x"ad0ba812",
+1158 => x"0c80c3fe",
+1159 => x"0bac120c",
+1160 => x"88130872",
+1161 => x"710c7284",
+1162 => x"120c7288",
+1163 => x"120c5189",
+1164 => x"0b8c1223",
+1165 => x"810b8e12",
+1166 => x"23719012",
+1167 => x"0c719412",
+1168 => x"0c719812",
+1169 => x"0c709c12",
+1170 => x"0c80c1e5",
+1171 => x"0ba0120c",
+1172 => x"80c2b10b",
+1173 => x"a4120c80",
+1174 => x"c3ad0ba8",
+1175 => x"120c80c3",
+1176 => x"fe0bac12",
+1177 => x"0c8c1308",
+1178 => x"72710c72",
+1179 => x"84120c72",
+1180 => x"88120c51",
+1181 => x"8a0b8c12",
+1182 => x"23820b8e",
+1183 => x"12237190",
+1184 => x"120c7194",
+1185 => x"120c7198",
+1186 => x"120c709c",
+1187 => x"120c80c1",
+1188 => x"e50ba012",
+1189 => x"0c80c2b1",
+1190 => x"0ba4120c",
+1191 => x"80c3ad0b",
+1192 => x"a8120c80",
+1193 => x"c3fe0bac",
+1194 => x"120c5050",
+1195 => x"5004f83d",
+1196 => x"0d7a80cf",
+1197 => x"ec08b811",
+1198 => x"08575758",
+1199 => x"7481ec38",
+1200 => x"a8f60bbc",
+1201 => x"170c810b",
+1202 => x"b8170c74",
+1203 => x"84dc170c",
+1204 => x"830b84e0",
+1205 => x"170c84e8",
+1206 => x"1684e417",
+1207 => x"0c841608",
+1208 => x"75710c75",
+1209 => x"84120c75",
+1210 => x"88120c59",
+1211 => x"840b8c1a",
+1212 => x"23748e1a",
+1213 => x"2374901a",
+1214 => x"0c74941a",
+1215 => x"0c74981a",
+1216 => x"0c789c1a",
+1217 => x"0c80c1e5",
+1218 => x"0ba01a0c",
+1219 => x"80c2b10b",
+1220 => x"a41a0c80",
+1221 => x"c3ad0ba8",
+1222 => x"1a0c80c3",
+1223 => x"fe0bac1a",
+1224 => x"0c881608",
+1225 => x"75710c75",
+1226 => x"84120c75",
+1227 => x"88120c57",
+1228 => x"890b8c18",
+1229 => x"23810b8e",
+1230 => x"18237490",
+1231 => x"180c7494",
+1232 => x"180c7498",
+1233 => x"180c769c",
+1234 => x"180c80c1",
+1235 => x"e50ba018",
+1236 => x"0c80c2b1",
+1237 => x"0ba4180c",
+1238 => x"80c3ad0b",
+1239 => x"a8180c80",
+1240 => x"c3fe0bac",
+1241 => x"180c8c16",
+1242 => x"0875710c",
+1243 => x"7584120c",
+1244 => x"7588120c",
+1245 => x"548a0b8c",
+1246 => x"1523820b",
+1247 => x"8e152374",
+1248 => x"90150c74",
+1249 => x"94150c74",
+1250 => x"98150c73",
+1251 => x"9c150c80",
+1252 => x"c1e50ba0",
+1253 => x"150c80c2",
+1254 => x"b10ba415",
+1255 => x"0c80c3ad",
+1256 => x"0ba8150c",
+1257 => x"80c3fe0b",
+1258 => x"ac150c84",
+1259 => x"dc168811",
+1260 => x"08841208",
+1261 => x"ff055757",
+1262 => x"57807524",
+1263 => x"9f388c16",
+1264 => x"2270902b",
+1265 => x"70902c51",
+1266 => x"55597380",
+1267 => x"2e80ed38",
+1268 => x"80dc16ff",
+1269 => x"16565674",
+1270 => x"8025e338",
+1271 => x"76085574",
+1272 => x"802e8f38",
+1273 => x"74881108",
+1274 => x"841208ff",
+1275 => x"05575757",
+1276 => x"c83982fc",
+1277 => x"5277518a",
+1278 => x"df3f8008",
+1279 => x"80085556",
+1280 => x"8008802e",
+1281 => x"a3388008",
+1282 => x"8c057580",
+1283 => x"080c5484",
+1284 => x"0b800884",
+1285 => x"050c7380",
+1286 => x"0888050c",
+1287 => x"82f05374",
+1288 => x"52735197",
+1289 => x"fd3f7554",
+1290 => x"7374780c",
+1291 => x"5573ffb4",
+1292 => x"388c780c",
+1293 => x"800b800c",
+1294 => x"8a3d0d04",
+1295 => x"810b8c17",
+1296 => x"2373760c",
+1297 => x"7388170c",
+1298 => x"7384170c",
+1299 => x"7390170c",
+1300 => x"7394170c",
+1301 => x"7398170c",
+1302 => x"ff0b8e17",
+1303 => x"2373b017",
+1304 => x"0c73b417",
+1305 => x"0c7380c4",
+1306 => x"170c7380",
+1307 => x"c8170c75",
+1308 => x"800c8a3d",
+1309 => x"0d047070",
+1310 => x"a1aa5273",
+1311 => x"5186a63f",
+1312 => x"50500470",
+1313 => x"70a1aa52",
+1314 => x"80cfec08",
+1315 => x"5186963f",
+1316 => x"505004fb",
+1317 => x"3d0d7770",
+1318 => x"52569890",
+1319 => x"3f80d7a8",
+1320 => x"0b880508",
+1321 => x"841108fc",
+1322 => x"06707b31",
+1323 => x"9fef05e0",
+1324 => x"8006e080",
+1325 => x"05525555",
+1326 => x"a0807524",
+1327 => x"94388052",
+1328 => x"755197ea",
+1329 => x"3f80d7b0",
+1330 => x"08145372",
+1331 => x"80082e8f",
+1332 => x"38755197",
+1333 => x"d83f8053",
+1334 => x"72800c87",
+1335 => x"3d0d0474",
+1336 => x"30527551",
+1337 => x"97c83f80",
+1338 => x"08ff2ea8",
+1339 => x"3880d7a8",
+1340 => x"0b880508",
+1341 => x"74763181",
+1342 => x"0784120c",
+1343 => x"5380d6ec",
+1344 => x"08753180",
+1345 => x"d6ec0c75",
+1346 => x"5197a23f",
+1347 => x"810b800c",
+1348 => x"873d0d04",
+1349 => x"80527551",
+1350 => x"97943f80",
+1351 => x"d7a80b88",
+1352 => x"05088008",
+1353 => x"71315454",
+1354 => x"8f7325ff",
+1355 => x"a4388008",
+1356 => x"80d79c08",
+1357 => x"3180d6ec",
+1358 => x"0c728107",
+1359 => x"84150c75",
+1360 => x"5196ea3f",
+1361 => x"8053ff90",
+1362 => x"39f73d0d",
+1363 => x"7b7d545a",
+1364 => x"72802e82",
+1365 => x"83387951",
+1366 => x"96d23ff8",
+1367 => x"13841108",
+1368 => x"70fe0670",
+1369 => x"13841108",
+1370 => x"fc065c57",
+1371 => x"58545780",
+1372 => x"d7b00874",
+1373 => x"2e82de38",
+1374 => x"7784150c",
+1375 => x"80738106",
+1376 => x"56597479",
+1377 => x"2e81d538",
+1378 => x"77148411",
+1379 => x"08810656",
+1380 => x"5374a038",
+1381 => x"77165678",
+1382 => x"81e63888",
+1383 => x"14085574",
+1384 => x"80d7b02e",
+1385 => x"82f9388c",
+1386 => x"1408708c",
+1387 => x"170c7588",
+1388 => x"120c5875",
+1389 => x"81078418",
+1390 => x"0c751776",
+1391 => x"710c5478",
+1392 => x"81913883",
+1393 => x"ff762781",
+1394 => x"c8387589",
+1395 => x"2a76832a",
+1396 => x"54547380",
+1397 => x"2ebf3875",
+1398 => x"862ab805",
+1399 => x"53847427",
+1400 => x"b43880db",
+1401 => x"14539474",
+1402 => x"27ab3875",
+1403 => x"8c2a80ee",
+1404 => x"055380d4",
+1405 => x"74279e38",
+1406 => x"758f2a80",
+1407 => x"f7055382",
+1408 => x"d4742791",
+1409 => x"3875922a",
+1410 => x"80fc0553",
+1411 => x"8ad47427",
+1412 => x"843880fe",
+1413 => x"53721010",
+1414 => x"1080d7a8",
+1415 => x"05881108",
+1416 => x"55557375",
+1417 => x"2e82bf38",
+1418 => x"841408fc",
+1419 => x"06597579",
+1420 => x"278d3888",
+1421 => x"14085473",
+1422 => x"752e0981",
+1423 => x"06ea388c",
+1424 => x"1408708c",
+1425 => x"190c7488",
+1426 => x"190c7788",
+1427 => x"120c5576",
+1428 => x"8c150c79",
+1429 => x"5194d63f",
+1430 => x"8b3d0d04",
+1431 => x"76087771",
+1432 => x"31587605",
+1433 => x"88180856",
+1434 => x"567480d7",
+1435 => x"b02e80e0",
+1436 => x"388c1708",
+1437 => x"708c170c",
+1438 => x"7588120c",
+1439 => x"53fe8939",
+1440 => x"8814088c",
+1441 => x"1508708c",
+1442 => x"130c5988",
+1443 => x"190cfea3",
+1444 => x"3975832a",
+1445 => x"70545480",
+1446 => x"74248198",
+1447 => x"3872822c",
+1448 => x"81712b80",
+1449 => x"d7ac0807",
+1450 => x"80d7a80b",
+1451 => x"84050c74",
+1452 => x"10101080",
+1453 => x"d7a80588",
+1454 => x"1108718c",
+1455 => x"1b0c7088",
+1456 => x"1b0c7988",
+1457 => x"130c565a",
+1458 => x"55768c15",
+1459 => x"0cff8439",
+1460 => x"8159fdb4",
+1461 => x"39771673",
+1462 => x"81065455",
+1463 => x"72983876",
+1464 => x"08777131",
+1465 => x"5875058c",
+1466 => x"18088819",
+1467 => x"08718c12",
+1468 => x"0c88120c",
+1469 => x"55557481",
+1470 => x"0784180c",
+1471 => x"7680d7a8",
+1472 => x"0b88050c",
+1473 => x"80d7a408",
+1474 => x"7526fec7",
+1475 => x"3880d7a0",
+1476 => x"08527951",
+1477 => x"fafd3f79",
+1478 => x"5193923f",
+1479 => x"feba3981",
+1480 => x"778c170c",
+1481 => x"7788170c",
+1482 => x"758c190c",
+1483 => x"7588190c",
+1484 => x"59fd8039",
+1485 => x"83147082",
+1486 => x"2c81712b",
+1487 => x"80d7ac08",
+1488 => x"0780d7a8",
+1489 => x"0b84050c",
+1490 => x"75101010",
+1491 => x"80d7a805",
+1492 => x"88110871",
+1493 => x"8c1c0c70",
+1494 => x"881c0c7a",
+1495 => x"88130c57",
+1496 => x"5b5653fe",
+1497 => x"e4398073",
+1498 => x"24a33872",
+1499 => x"822c8171",
+1500 => x"2b80d7ac",
+1501 => x"080780d7",
+1502 => x"a80b8405",
+1503 => x"0c58748c",
+1504 => x"180c7388",
+1505 => x"180c7688",
+1506 => x"160cfdc3",
+1507 => x"39831370",
+1508 => x"822c8171",
+1509 => x"2b80d7ac",
+1510 => x"080780d7",
+1511 => x"a80b8405",
+1512 => x"0c5953da",
+1513 => x"39f93d0d",
+1514 => x"797b5853",
+1515 => x"800b80cf",
+1516 => x"ec085356",
+1517 => x"72722ebc",
+1518 => x"3884dc13",
+1519 => x"5574762e",
+1520 => x"b3388815",
+1521 => x"08841608",
+1522 => x"ff055454",
+1523 => x"80732499",
+1524 => x"388c1422",
+1525 => x"70902b53",
+1526 => x"587180d4",
+1527 => x"3880dc14",
+1528 => x"ff145454",
+1529 => x"728025e9",
+1530 => x"38740855",
+1531 => x"74d43880",
+1532 => x"cfec0852",
+1533 => x"84dc1255",
+1534 => x"74802ead",
+1535 => x"38881508",
+1536 => x"841608ff",
+1537 => x"05545480",
+1538 => x"73249838",
+1539 => x"8c142270",
+1540 => x"902b5358",
+1541 => x"71ad3880",
+1542 => x"dc14ff14",
+1543 => x"54547280",
+1544 => x"25ea3874",
+1545 => x"085574d5",
+1546 => x"3875800c",
+1547 => x"893d0d04",
+1548 => x"7351762d",
+1549 => x"75800807",
+1550 => x"80dc15ff",
+1551 => x"15555556",
+1552 => x"ffa23973",
+1553 => x"51762d75",
+1554 => x"80080780",
+1555 => x"dc15ff15",
+1556 => x"555556ca",
+1557 => x"39ea3d0d",
+1558 => x"688c1122",
+1559 => x"700a100a",
+1560 => x"81065758",
+1561 => x"567480e4",
+1562 => x"388e1622",
+1563 => x"70902b70",
+1564 => x"902c5155",
+1565 => x"58807424",
+1566 => x"b138983d",
+1567 => x"c4055373",
+1568 => x"5280cfec",
+1569 => x"08519481",
+1570 => x"3f800b80",
+1571 => x"08249738",
+1572 => x"7983e080",
+1573 => x"06547380",
+1574 => x"c0802e81",
+1575 => x"8f387382",
+1576 => x"80802e81",
+1577 => x"91388c16",
+1578 => x"22577690",
+1579 => x"80075473",
+1580 => x"8c172388",
+1581 => x"805280cf",
+1582 => x"ec085181",
+1583 => x"9b3f8008",
+1584 => x"9d388c16",
+1585 => x"22820755",
+1586 => x"748c1723",
+1587 => x"80c31670",
+1588 => x"770c9017",
+1589 => x"0c810b94",
+1590 => x"170c983d",
+1591 => x"0d0480cf",
+1592 => x"ec08a8f6",
+1593 => x"0bbc120c",
+1594 => x"588c1622",
+1595 => x"81800754",
+1596 => x"738c1723",
+1597 => x"8008760c",
+1598 => x"80089017",
+1599 => x"0c88800b",
+1600 => x"94170c74",
+1601 => x"802ed338",
+1602 => x"8e162270",
+1603 => x"902b7090",
+1604 => x"2c535654",
+1605 => x"9afb3f80",
+1606 => x"08802eff",
+1607 => x"bd388c16",
+1608 => x"22810757",
+1609 => x"768c1723",
+1610 => x"983d0d04",
+1611 => x"810b8c17",
+1612 => x"225855fe",
+1613 => x"f539a816",
+1614 => x"0880c3ad",
+1615 => x"2e098106",
+1616 => x"fee4388c",
+1617 => x"16228880",
+1618 => x"0754738c",
+1619 => x"17238880",
+1620 => x"0b80cc17",
+1621 => x"0cfedc39",
+1622 => x"f43d0d7e",
+1623 => x"608b1170",
+1624 => x"f8065b55",
+1625 => x"555d7296",
+1626 => x"26833890",
+1627 => x"58807824",
+1628 => x"74792607",
+1629 => x"55805474",
+1630 => x"742e0981",
+1631 => x"0680ca38",
+1632 => x"7c518ea8",
+1633 => x"3f7783f7",
+1634 => x"2680c538",
+1635 => x"77832a70",
+1636 => x"10101080",
+1637 => x"d7a8058c",
+1638 => x"11085858",
+1639 => x"5475772e",
+1640 => x"81f03884",
+1641 => x"1608fc06",
+1642 => x"8c170888",
+1643 => x"1808718c",
+1644 => x"120c8812",
+1645 => x"0c5b7605",
+1646 => x"84110881",
+1647 => x"0784120c",
+1648 => x"537c518d",
+1649 => x"e83f8816",
+1650 => x"5473800c",
+1651 => x"8e3d0d04",
+1652 => x"77892a78",
+1653 => x"832a5854",
+1654 => x"73802ebf",
+1655 => x"3877862a",
+1656 => x"b8055784",
+1657 => x"7427b438",
+1658 => x"80db1457",
+1659 => x"947427ab",
+1660 => x"38778c2a",
+1661 => x"80ee0557",
+1662 => x"80d47427",
+1663 => x"9e38778f",
+1664 => x"2a80f705",
+1665 => x"5782d474",
+1666 => x"27913877",
+1667 => x"922a80fc",
+1668 => x"05578ad4",
+1669 => x"74278438",
+1670 => x"80fe5776",
+1671 => x"10101080",
+1672 => x"d7a8058c",
+1673 => x"11085653",
+1674 => x"74732ea3",
+1675 => x"38841508",
+1676 => x"fc067079",
+1677 => x"31555673",
+1678 => x"8f2488e4",
+1679 => x"38738025",
+1680 => x"88e6388c",
+1681 => x"15085574",
+1682 => x"732e0981",
+1683 => x"06df3881",
+1684 => x"175980d7",
+1685 => x"b8085675",
+1686 => x"80d7b02e",
+1687 => x"82cc3884",
+1688 => x"1608fc06",
+1689 => x"70793155",
+1690 => x"55738f24",
+1691 => x"bb3880d7",
+1692 => x"b00b80d7",
+1693 => x"bc0c80d7",
+1694 => x"b00b80d7",
+1695 => x"b80c8074",
+1696 => x"2480db38",
+1697 => x"74168411",
+1698 => x"08810784",
+1699 => x"120c53fe",
+1700 => x"b0398816",
+1701 => x"8c110857",
+1702 => x"5975792e",
+1703 => x"098106fe",
+1704 => x"82388214",
+1705 => x"59ffab39",
+1706 => x"77167881",
+1707 => x"0784180c",
+1708 => x"7080d7bc",
+1709 => x"0c7080d7",
+1710 => x"b80c80d7",
+1711 => x"b00b8c12",
+1712 => x"0c8c1108",
+1713 => x"88120c74",
+1714 => x"81078412",
+1715 => x"0c740574",
+1716 => x"710c5b7c",
+1717 => x"518bd63f",
+1718 => x"881654fd",
+1719 => x"ec3983ff",
+1720 => x"75278391",
+1721 => x"3874892a",
+1722 => x"75832a54",
+1723 => x"5473802e",
+1724 => x"bf387486",
+1725 => x"2ab80553",
+1726 => x"847427b4",
+1727 => x"3880db14",
+1728 => x"53947427",
+1729 => x"ab38748c",
+1730 => x"2a80ee05",
+1731 => x"5380d474",
+1732 => x"279e3874",
+1733 => x"8f2a80f7",
+1734 => x"055382d4",
+1735 => x"74279138",
+1736 => x"74922a80",
+1737 => x"fc05538a",
+1738 => x"d4742784",
+1739 => x"3880fe53",
+1740 => x"72101010",
+1741 => x"80d7a805",
+1742 => x"88110855",
+1743 => x"5773772e",
+1744 => x"868b3884",
+1745 => x"1408fc06",
+1746 => x"5b747b27",
+1747 => x"8d388814",
+1748 => x"08547377",
+1749 => x"2e098106",
+1750 => x"ea388c14",
+1751 => x"0880d7a8",
+1752 => x"0b840508",
+1753 => x"718c190c",
+1754 => x"7588190c",
+1755 => x"7788130c",
+1756 => x"5c57758c",
+1757 => x"150c7853",
+1758 => x"80792483",
+1759 => x"98387282",
+1760 => x"2c81712b",
+1761 => x"5656747b",
+1762 => x"2680ca38",
+1763 => x"7a750657",
+1764 => x"7682a338",
+1765 => x"78fc0684",
+1766 => x"05597410",
+1767 => x"707c0655",
+1768 => x"55738292",
+1769 => x"38841959",
+1770 => x"f13980d7",
+1771 => x"a80b8405",
+1772 => x"0879545b",
+1773 => x"788025c6",
+1774 => x"3882da39",
+1775 => x"74097b06",
+1776 => x"7080d7a8",
+1777 => x"0b84050c",
+1778 => x"5b741055",
+1779 => x"747b2685",
+1780 => x"387485bc",
+1781 => x"3880d7a8",
+1782 => x"0b880508",
+1783 => x"70841208",
+1784 => x"fc06707b",
+1785 => x"317b7226",
+1786 => x"8f722507",
+1787 => x"5d575c5c",
+1788 => x"5578802e",
+1789 => x"80d93879",
+1790 => x"1580d7a0",
+1791 => x"08199011",
+1792 => x"59545680",
+1793 => x"d79c08ff",
+1794 => x"2e8838a0",
+1795 => x"8f13e080",
+1796 => x"06577652",
+1797 => x"7c518996",
+1798 => x"3f800854",
+1799 => x"8008ff2e",
+1800 => x"90388008",
+1801 => x"762782a7",
+1802 => x"387480d7",
+1803 => x"a82e829f",
+1804 => x"3880d7a8",
+1805 => x"0b880508",
+1806 => x"55841508",
+1807 => x"fc067079",
+1808 => x"31797226",
+1809 => x"8f722507",
+1810 => x"5d555a7a",
+1811 => x"83f23877",
+1812 => x"81078416",
+1813 => x"0c771570",
+1814 => x"80d7a80b",
+1815 => x"88050c74",
+1816 => x"81078412",
+1817 => x"0c567c51",
+1818 => x"88c33f88",
+1819 => x"15547380",
+1820 => x"0c8e3d0d",
+1821 => x"0474832a",
+1822 => x"70545480",
+1823 => x"7424819b",
+1824 => x"3872822c",
+1825 => x"81712b80",
+1826 => x"d7ac0807",
+1827 => x"7080d7a8",
+1828 => x"0b84050c",
+1829 => x"75101010",
+1830 => x"80d7a805",
+1831 => x"88110871",
+1832 => x"8c1b0c70",
+1833 => x"881b0c79",
+1834 => x"88130c57",
+1835 => x"555c5575",
+1836 => x"8c150cfd",
+1837 => x"c1397879",
+1838 => x"10101080",
+1839 => x"d7a80570",
+1840 => x"565b5c8c",
+1841 => x"14085675",
+1842 => x"742ea338",
+1843 => x"841608fc",
+1844 => x"06707931",
+1845 => x"5853768f",
+1846 => x"2483f138",
+1847 => x"76802584",
+1848 => x"af388c16",
+1849 => x"08567574",
+1850 => x"2e098106",
+1851 => x"df388814",
+1852 => x"811a7083",
+1853 => x"06555a54",
+1854 => x"72c9387b",
+1855 => x"83065675",
+1856 => x"802efdb8",
+1857 => x"38ff1cf8",
+1858 => x"1b5b5c88",
+1859 => x"1a087a2e",
+1860 => x"ea38fdb5",
+1861 => x"39831953",
+1862 => x"fce43983",
+1863 => x"1470822c",
+1864 => x"81712b80",
+1865 => x"d7ac0807",
+1866 => x"7080d7a8",
+1867 => x"0b84050c",
+1868 => x"76101010",
+1869 => x"80d7a805",
+1870 => x"88110871",
+1871 => x"8c1c0c70",
+1872 => x"881c0c7a",
+1873 => x"88130c58",
+1874 => x"535d5653",
+1875 => x"fee13980",
+1876 => x"d6ec0817",
+1877 => x"59800876",
+1878 => x"2e818b38",
+1879 => x"80d79c08",
+1880 => x"ff2e848e",
+1881 => x"38737631",
+1882 => x"1980d6ec",
+1883 => x"0c738706",
+1884 => x"70565372",
+1885 => x"802e8838",
+1886 => x"88733170",
+1887 => x"15555576",
+1888 => x"149fff06",
+1889 => x"a0807131",
+1890 => x"1670547e",
+1891 => x"53515386",
+1892 => x"9d3f8008",
+1893 => x"568008ff",
+1894 => x"2e819e38",
+1895 => x"80d6ec08",
+1896 => x"137080d6",
+1897 => x"ec0c7475",
+1898 => x"80d7a80b",
+1899 => x"88050c77",
+1900 => x"76311581",
+1901 => x"07555659",
+1902 => x"7a80d7a8",
+1903 => x"2e83c038",
+1904 => x"798f2682",
+1905 => x"ef38810b",
+1906 => x"84150c84",
+1907 => x"1508fc06",
+1908 => x"70793179",
+1909 => x"72268f72",
+1910 => x"25075d55",
+1911 => x"5a7a802e",
+1912 => x"fced3880",
+1913 => x"db398008",
+1914 => x"9fff0655",
+1915 => x"74feed38",
+1916 => x"7880d6ec",
+1917 => x"0c80d7a8",
+1918 => x"0b880508",
+1919 => x"7a188107",
+1920 => x"84120c55",
+1921 => x"80d79808",
+1922 => x"79278638",
+1923 => x"7880d798",
+1924 => x"0c80d794",
+1925 => x"087927fc",
+1926 => x"a0387880",
+1927 => x"d7940c84",
+1928 => x"1508fc06",
+1929 => x"70793179",
+1930 => x"72268f72",
+1931 => x"25075d55",
+1932 => x"5a7a802e",
+1933 => x"fc993888",
+1934 => x"39807457",
+1935 => x"53fedd39",
+1936 => x"7c5184e9",
+1937 => x"3f800b80",
+1938 => x"0c8e3d0d",
+1939 => x"04807324",
+1940 => x"a5387282",
+1941 => x"2c81712b",
+1942 => x"80d7ac08",
+1943 => x"077080d7",
+1944 => x"a80b8405",
+1945 => x"0c5c5a76",
+1946 => x"8c170c73",
+1947 => x"88170c75",
+1948 => x"88180cf9",
+1949 => x"fd398313",
+1950 => x"70822c81",
+1951 => x"712b80d7",
+1952 => x"ac080770",
+1953 => x"80d7a80b",
+1954 => x"84050c5d",
+1955 => x"5b53d839",
+1956 => x"7a75065c",
+1957 => x"7bfc9f38",
+1958 => x"84197510",
+1959 => x"5659f139",
+1960 => x"ff178105",
+1961 => x"59f7ab39",
+1962 => x"8c150888",
+1963 => x"1608718c",
+1964 => x"120c8812",
+1965 => x"0c597515",
+1966 => x"84110881",
+1967 => x"0784120c",
+1968 => x"587c5183",
+1969 => x"e83f8815",
+1970 => x"54fba339",
+1971 => x"77167881",
+1972 => x"0784180c",
+1973 => x"8c170888",
+1974 => x"1808718c",
+1975 => x"120c8812",
+1976 => x"0c5c7080",
+1977 => x"d7bc0c70",
+1978 => x"80d7b80c",
+1979 => x"80d7b00b",
+1980 => x"8c120c8c",
+1981 => x"11088812",
+1982 => x"0c778107",
+1983 => x"84120c77",
+1984 => x"0577710c",
+1985 => x"557c5183",
+1986 => x"a43f8816",
+1987 => x"54f5ba39",
+1988 => x"72168411",
+1989 => x"08810784",
+1990 => x"120c588c",
+1991 => x"16088817",
+1992 => x"08718c12",
+1993 => x"0c88120c",
+1994 => x"577c5183",
+1995 => x"803f8816",
+1996 => x"54f59639",
+1997 => x"7284150c",
+1998 => x"f41af806",
+1999 => x"70841d08",
+2000 => x"81060784",
+2001 => x"1d0c701c",
+2002 => x"5556850b",
+2003 => x"84150c85",
+2004 => x"0b88150c",
+2005 => x"8f7627fd",
+2006 => x"ab38881b",
+2007 => x"527c51eb",
+2008 => x"e83f80d7",
+2009 => x"a80b8805",
+2010 => x"0880d6ec",
+2011 => x"085a55fd",
+2012 => x"93397880",
+2013 => x"d6ec0c73",
+2014 => x"80d79c0c",
+2015 => x"fbef3972",
+2016 => x"84150cfc",
+2017 => x"ff39fb3d",
+2018 => x"0d77707a",
+2019 => x"7c585553",
+2020 => x"568f7527",
+2021 => x"80e63872",
+2022 => x"76078306",
+2023 => x"517080dc",
+2024 => x"38757352",
+2025 => x"54707084",
+2026 => x"05520874",
+2027 => x"70840556",
+2028 => x"0c737170",
+2029 => x"84055308",
+2030 => x"71708405",
+2031 => x"530c7170",
+2032 => x"84055308",
+2033 => x"71708405",
+2034 => x"530c7170",
+2035 => x"84055308",
+2036 => x"71708405",
+2037 => x"530cf016",
+2038 => x"5654748f",
+2039 => x"26c73883",
+2040 => x"75279538",
+2041 => x"70708405",
+2042 => x"52087470",
+2043 => x"8405560c",
+2044 => x"fc155574",
+2045 => x"8326ed38",
+2046 => x"73715452",
+2047 => x"ff155170",
+2048 => x"ff2e9838",
+2049 => x"72708105",
+2050 => x"54337270",
+2051 => x"81055434",
+2052 => x"ff115170",
+2053 => x"ff2e0981",
+2054 => x"06ea3875",
+2055 => x"800c873d",
+2056 => x"0d04fb3d",
+2057 => x"0d777a71",
+2058 => x"028c05a3",
+2059 => x"05335854",
+2060 => x"54568373",
+2061 => x"2780d438",
+2062 => x"75830651",
+2063 => x"7080cc38",
+2064 => x"74882b75",
+2065 => x"07707190",
+2066 => x"2b075551",
+2067 => x"8f7327a7",
+2068 => x"38737270",
+2069 => x"8405540c",
+2070 => x"71747170",
+2071 => x"8405530c",
+2072 => x"74717084",
+2073 => x"05530c74",
+2074 => x"71708405",
+2075 => x"530cf014",
+2076 => x"5452728f",
+2077 => x"26db3883",
+2078 => x"73279038",
+2079 => x"73727084",
+2080 => x"05540cfc",
+2081 => x"13537283",
+2082 => x"26f238ff",
+2083 => x"135170ff",
+2084 => x"2e933874",
+2085 => x"72708105",
+2086 => x"5434ff11",
+2087 => x"5170ff2e",
+2088 => x"098106ef",
+2089 => x"3875800c",
+2090 => x"873d0d04",
+2091 => x"04047070",
+2092 => x"7070800b",
+2093 => x"80dfe40c",
+2094 => x"765184f3",
+2095 => x"3f800853",
+2096 => x"8008ff2e",
+2097 => x"89387280",
+2098 => x"0c505050",
+2099 => x"500480df",
+2100 => x"e4085473",
+2101 => x"802eef38",
+2102 => x"7574710c",
+2103 => x"5272800c",
+2104 => x"50505050",
+2105 => x"04f93d0d",
+2106 => x"797c557b",
+2107 => x"548e1122",
+2108 => x"70902b70",
+2109 => x"902c5557",
+2110 => x"80cfec08",
+2111 => x"53585683",
+2112 => x"f63f8008",
+2113 => x"57800b80",
+2114 => x"08249338",
+2115 => x"80d01608",
+2116 => x"80080580",
+2117 => x"d0170c76",
+2118 => x"800c893d",
+2119 => x"0d048c16",
+2120 => x"2283dfff",
+2121 => x"0655748c",
+2122 => x"17237680",
+2123 => x"0c893d0d",
+2124 => x"04fa3d0d",
+2125 => x"788c1122",
+2126 => x"70882a70",
+2127 => x"81065157",
+2128 => x"585674a9",
+2129 => x"388c1622",
+2130 => x"83dfff06",
+2131 => x"55748c17",
+2132 => x"237a5479",
+2133 => x"538e1622",
+2134 => x"70902b70",
+2135 => x"902c5456",
+2136 => x"80cfec08",
+2137 => x"525681b2",
+2138 => x"3f883d0d",
+2139 => x"04825480",
+2140 => x"538e1622",
+2141 => x"70902b70",
+2142 => x"902c5456",
+2143 => x"80cfec08",
+2144 => x"525782bb",
+2145 => x"3f8c1622",
+2146 => x"83dfff06",
+2147 => x"55748c17",
+2148 => x"237a5479",
+2149 => x"538e1622",
+2150 => x"70902b70",
+2151 => x"902c5456",
+2152 => x"80cfec08",
+2153 => x"525680f2",
+2154 => x"3f883d0d",
+2155 => x"04f93d0d",
+2156 => x"797c557b",
+2157 => x"548e1122",
+2158 => x"70902b70",
+2159 => x"902c5557",
+2160 => x"80cfec08",
+2161 => x"53585681",
+2162 => x"f63f8008",
+2163 => x"578008ff",
+2164 => x"2e99388c",
+2165 => x"1622a080",
+2166 => x"0755748c",
+2167 => x"17238008",
+2168 => x"80d0170c",
+2169 => x"76800c89",
+2170 => x"3d0d048c",
+2171 => x"162283df",
+2172 => x"ff065574",
+2173 => x"8c172376",
+2174 => x"800c893d",
+2175 => x"0d047070",
+2176 => x"70748e11",
+2177 => x"2270902b",
+2178 => x"70902c55",
+2179 => x"51515380",
+2180 => x"cfec0851",
+2181 => x"bd3f5050",
+2182 => x"5004fb3d",
+2183 => x"0d800b80",
+2184 => x"dfe40c7a",
+2185 => x"53795278",
+2186 => x"5182fc3f",
+2187 => x"80085580",
+2188 => x"08ff2e88",
+2189 => x"3874800c",
+2190 => x"873d0d04",
+2191 => x"80dfe408",
+2192 => x"5675802e",
+2193 => x"f0387776",
+2194 => x"710c5474",
+2195 => x"800c873d",
+2196 => x"0d047070",
+2197 => x"7070800b",
+2198 => x"80dfe40c",
+2199 => x"765184c9",
+2200 => x"3f800853",
+2201 => x"8008ff2e",
+2202 => x"89387280",
+2203 => x"0c505050",
+2204 => x"500480df",
+2205 => x"e4085473",
+2206 => x"802eef38",
+2207 => x"7574710c",
+2208 => x"5272800c",
+2209 => x"50505050",
+2210 => x"04fc3d0d",
+2211 => x"800b80df",
+2212 => x"e40c7852",
+2213 => x"775187b0",
+2214 => x"3f800854",
+2215 => x"8008ff2e",
+2216 => x"88387380",
+2217 => x"0c863d0d",
+2218 => x"0480dfe4",
+2219 => x"08557480",
+2220 => x"2ef03876",
+2221 => x"75710c53",
+2222 => x"73800c86",
+2223 => x"3d0d04fb",
+2224 => x"3d0d800b",
+2225 => x"80dfe40c",
+2226 => x"7a537952",
+2227 => x"7851848b",
+2228 => x"3f800855",
+2229 => x"8008ff2e",
+2230 => x"88387480",
+2231 => x"0c873d0d",
+2232 => x"0480dfe4",
+2233 => x"08567580",
+2234 => x"2ef03877",
+2235 => x"76710c54",
+2236 => x"74800c87",
+2237 => x"3d0d04fb",
+2238 => x"3d0d800b",
+2239 => x"80dfe40c",
+2240 => x"7a537952",
+2241 => x"78518293",
+2242 => x"3f800855",
+2243 => x"8008ff2e",
+2244 => x"88387480",
+2245 => x"0c873d0d",
+2246 => x"0480dfe4",
+2247 => x"08567580",
+2248 => x"2ef03877",
+2249 => x"76710c54",
+2250 => x"74800c87",
+2251 => x"3d0d0470",
+2252 => x"707080df",
+2253 => x"d8088938",
+2254 => x"80dfe80b",
+2255 => x"80dfd80c",
+2256 => x"80dfd808",
+2257 => x"75115252",
+2258 => x"ff537087",
+2259 => x"fb808026",
+2260 => x"88387080",
+2261 => x"dfd80c71",
+2262 => x"5372800c",
+2263 => x"50505004",
+2264 => x"fd3d0d80",
+2265 => x"0b80cfe0",
+2266 => x"08545472",
+2267 => x"812e9b38",
+2268 => x"7380dfdc",
+2269 => x"0cc2af3f",
+2270 => x"c1863f80",
+2271 => x"dfb05281",
+2272 => x"51c3ff3f",
+2273 => x"80085186",
+2274 => x"bf3f7280",
+2275 => x"dfdc0cc2",
+2276 => x"953fc0ec",
+2277 => x"3f80dfb0",
+2278 => x"528151c3",
+2279 => x"e53f8008",
+2280 => x"5186a53f",
+2281 => x"00ff39f5",
+2282 => x"3d0d7e60",
+2283 => x"80dfdc08",
+2284 => x"705b585b",
+2285 => x"5b7580c2",
+2286 => x"38777a25",
+2287 => x"a138771b",
+2288 => x"70337081",
+2289 => x"ff065858",
+2290 => x"59758a2e",
+2291 => x"98387681",
+2292 => x"ff0651c1",
+2293 => x"b03f8118",
+2294 => x"58797824",
+2295 => x"e1387980",
+2296 => x"0c8d3d0d",
+2297 => x"048d51c1",
+2298 => x"9c3f7833",
+2299 => x"7081ff06",
+2300 => x"5257c191",
+2301 => x"3f811858",
+2302 => x"e0397955",
+2303 => x"7a547d53",
+2304 => x"85528d3d",
+2305 => x"fc0551c0",
+2306 => x"b93f8008",
+2307 => x"5685b23f",
+2308 => x"7b80080c",
+2309 => x"75800c8d",
+2310 => x"3d0d04f6",
+2311 => x"3d0d7d7f",
+2312 => x"80dfdc08",
+2313 => x"705b585a",
+2314 => x"5a7580c1",
+2315 => x"38777925",
+2316 => x"b338c0ac",
+2317 => x"3f800881",
+2318 => x"ff06708d",
+2319 => x"32703070",
+2320 => x"9f2a5151",
+2321 => x"5757768a",
+2322 => x"2e80c438",
+2323 => x"75802ebf",
+2324 => x"38771a56",
+2325 => x"76763476",
+2326 => x"51c0aa3f",
+2327 => x"81185878",
+2328 => x"7824cf38",
+2329 => x"77567580",
+2330 => x"0c8c3d0d",
+2331 => x"04785579",
+2332 => x"547c5384",
+2333 => x"528c3dfc",
+2334 => x"0551ffbf",
+2335 => x"c53f8008",
+2336 => x"5684be3f",
+2337 => x"7a80080c",
+2338 => x"75800c8c",
+2339 => x"3d0d0477",
+2340 => x"1a598a79",
+2341 => x"34811858",
+2342 => x"8d51ffbf",
+2343 => x"e83f8a51",
+2344 => x"ffbfe23f",
+2345 => x"7756ffbe",
+2346 => x"39fb3d0d",
+2347 => x"80dfdc08",
+2348 => x"70565473",
+2349 => x"88387480",
+2350 => x"0c873d0d",
+2351 => x"04775383",
+2352 => x"52873dfc",
+2353 => x"0551ffbe",
+2354 => x"f93f8008",
+2355 => x"5483f23f",
+2356 => x"7580080c",
+2357 => x"73800c87",
+2358 => x"3d0d04fa",
+2359 => x"3d0d80df",
+2360 => x"dc08802e",
+2361 => x"a3387a55",
+2362 => x"79547853",
+2363 => x"8652883d",
+2364 => x"fc0551ff",
+2365 => x"becc3f80",
+2366 => x"085683c5",
+2367 => x"3f768008",
+2368 => x"0c75800c",
+2369 => x"883d0d04",
+2370 => x"83b73f9d",
+2371 => x"0b80080c",
+2372 => x"ff0b800c",
+2373 => x"883d0d04",
+2374 => x"f73d0d7b",
+2375 => x"7d5b59bc",
+2376 => x"53805279",
+2377 => x"51f5fb3f",
+2378 => x"80705657",
+2379 => x"98567419",
+2380 => x"70337078",
+2381 => x"2b790781",
+2382 => x"18f81a5a",
+2383 => x"58595558",
+2384 => x"847524ea",
+2385 => x"38767a23",
+2386 => x"84195880",
+2387 => x"70565798",
+2388 => x"56741870",
+2389 => x"3370782b",
+2390 => x"79078118",
+2391 => x"f81a5a58",
+2392 => x"59515484",
+2393 => x"7524ea38",
+2394 => x"76821b23",
+2395 => x"88195880",
+2396 => x"70565798",
+2397 => x"56741870",
+2398 => x"3370782b",
+2399 => x"79078118",
+2400 => x"f81a5a58",
+2401 => x"59515484",
+2402 => x"7524ea38",
+2403 => x"76841b0c",
+2404 => x"8c195880",
+2405 => x"70565798",
+2406 => x"56741870",
+2407 => x"3370782b",
+2408 => x"79078118",
+2409 => x"f81a5a58",
+2410 => x"59515484",
+2411 => x"7524ea38",
+2412 => x"76881b23",
+2413 => x"90195880",
+2414 => x"70565798",
+2415 => x"56741870",
+2416 => x"3370782b",
+2417 => x"79078118",
+2418 => x"f81a5a58",
+2419 => x"59515484",
+2420 => x"7524ea38",
+2421 => x"768a1b23",
+2422 => x"94195880",
+2423 => x"70565798",
+2424 => x"56741870",
+2425 => x"3370782b",
+2426 => x"79078118",
+2427 => x"f81a5a58",
+2428 => x"59515484",
+2429 => x"7524ea38",
+2430 => x"768c1b23",
+2431 => x"98195880",
+2432 => x"70565798",
+2433 => x"56741870",
+2434 => x"3370782b",
+2435 => x"79078118",
+2436 => x"f81a5a58",
+2437 => x"59515484",
+2438 => x"7524ea38",
+2439 => x"768e1b23",
+2440 => x"9c195880",
+2441 => x"705657b8",
+2442 => x"56741870",
+2443 => x"3370782b",
+2444 => x"79078118",
+2445 => x"f81a5a58",
+2446 => x"595a5488",
+2447 => x"7524ea38",
+2448 => x"76901b0c",
+2449 => x"8b3d0d04",
+2450 => x"e93d0d6a",
+2451 => x"80dfdc08",
+2452 => x"57577593",
+2453 => x"3880c080",
+2454 => x"0b84180c",
+2455 => x"75ac180c",
+2456 => x"75800c99",
+2457 => x"3d0d0489",
+2458 => x"3d70556a",
+2459 => x"54558a52",
+2460 => x"993dffbc",
+2461 => x"0551ffbb",
+2462 => x"c93f8008",
+2463 => x"77537552",
+2464 => x"56fd953f",
+2465 => x"bc3f7780",
+2466 => x"080c7580",
+2467 => x"0c993d0d",
+2468 => x"04fc3d0d",
+2469 => x"815480df",
+2470 => x"dc088838",
+2471 => x"73800c86",
+2472 => x"3d0d0476",
+2473 => x"5397b952",
+2474 => x"863dfc05",
+2475 => x"51ffbb92",
+2476 => x"3f800854",
+2477 => x"8c3f7480",
+2478 => x"080c7380",
+2479 => x"0c863d0d",
+2480 => x"0480cfec",
+2481 => x"08800c04",
+2482 => x"f73d0d7b",
+2483 => x"80cfec08",
+2484 => x"82c81108",
+2485 => x"5a545a77",
+2486 => x"802e80da",
+2487 => x"38818818",
+2488 => x"841908ff",
+2489 => x"0581712b",
+2490 => x"59555980",
+2491 => x"742480ea",
+2492 => x"38807424",
+2493 => x"b5387382",
+2494 => x"2b781188",
+2495 => x"05565681",
+2496 => x"80190877",
+2497 => x"06537280",
+2498 => x"2eb63878",
+2499 => x"16700853",
+2500 => x"53795174",
+2501 => x"0853722d",
+2502 => x"ff14fc17",
+2503 => x"fc177981",
+2504 => x"2c5a5757",
+2505 => x"54738025",
+2506 => x"d6387708",
+2507 => x"5877ffad",
+2508 => x"3880cfec",
+2509 => x"0853bc13",
+2510 => x"08a53879",
+2511 => x"51f8e53f",
+2512 => x"74085372",
+2513 => x"2dff14fc",
+2514 => x"17fc1779",
+2515 => x"812c5a57",
+2516 => x"57547380",
+2517 => x"25ffa838",
+2518 => x"d1398057",
+2519 => x"ff933972",
+2520 => x"51bc1308",
+2521 => x"54732d79",
+2522 => x"51f8b93f",
+2523 => x"707080df",
+2524 => x"b80bfc05",
+2525 => x"70085252",
+2526 => x"70ff2e91",
+2527 => x"38702dfc",
+2528 => x"12700852",
+2529 => x"5270ff2e",
+2530 => x"098106f1",
+2531 => x"38505004",
+2532 => x"04ffbaff",
+2533 => x"3f040000",
+2534 => x"00000040",
+2535 => x"476f7420",
+2536 => x"696e7465",
+2537 => x"72727570",
+2538 => x"740a0000",
+2539 => x"4e6f2069",
+2540 => x"6e746572",
+2541 => x"72757074",
+2542 => x"0a000000",
+2543 => x"43000000",
+2544 => x"64756d6d",
+2545 => x"792e6578",
+2546 => x"65000000",
+2547 => x"00ffffff",
+2548 => x"ff00ffff",
+2549 => x"ffff00ff",
+2550 => x"ffffff00",
+2551 => x"00000000",
+2552 => x"00000000",
+2553 => x"00000000",
+2554 => x"00002fc0",
+2555 => x"000027f0",
+2556 => x"00000000",
+2557 => x"00002a58",
+2558 => x"00002ab4",
+2559 => x"00002b10",
+2560 => x"00000000",
+2561 => x"00000000",
+2562 => x"00000000",
+2563 => x"00000000",
+2564 => x"00000000",
+2565 => x"00000000",
+2566 => x"00000000",
+2567 => x"00000000",
+2568 => x"00000000",
+2569 => x"000027bc",
+2570 => x"00000000",
+2571 => x"00000000",
+2572 => x"00000000",
+2573 => x"00000000",
+2574 => x"00000000",
+2575 => x"00000000",
+2576 => x"00000000",
+2577 => x"00000000",
+2578 => x"00000000",
+2579 => x"00000000",
+2580 => x"00000000",
+2581 => x"00000000",
+2582 => x"00000000",
+2583 => x"00000000",
+2584 => x"00000000",
+2585 => x"00000000",
+2586 => x"00000000",
+2587 => x"00000000",
+2588 => x"00000000",
+2589 => x"00000000",
+2590 => x"00000000",
+2591 => x"00000000",
+2592 => x"00000000",
+2593 => x"00000000",
+2594 => x"00000000",
+2595 => x"00000000",
+2596 => x"00000000",
+2597 => x"00000000",
+2598 => x"00000001",
+2599 => x"330eabcd",
+2600 => x"1234e66d",
+2601 => x"deec0005",
+2602 => x"000b0000",
+2603 => x"00000000",
+2604 => x"00000000",
+2605 => x"00000000",
+2606 => x"00000000",
+2607 => x"00000000",
+2608 => x"00000000",
+2609 => x"00000000",
+2610 => x"00000000",
+2611 => x"00000000",
+2612 => x"00000000",
+2613 => x"00000000",
+2614 => x"00000000",
+2615 => x"00000000",
+2616 => x"00000000",
+2617 => x"00000000",
+2618 => x"00000000",
+2619 => x"00000000",
+2620 => x"00000000",
+2621 => x"00000000",
+2622 => x"00000000",
+2623 => x"00000000",
+2624 => x"00000000",
+2625 => x"00000000",
+2626 => x"00000000",
+2627 => x"00000000",
+2628 => x"00000000",
+2629 => x"00000000",
+2630 => x"00000000",
+2631 => x"00000000",
+2632 => x"00000000",
+2633 => x"00000000",
+2634 => x"00000000",
+2635 => x"00000000",
+2636 => x"00000000",
+2637 => x"00000000",
+2638 => x"00000000",
+2639 => x"00000000",
+2640 => x"00000000",
+2641 => x"00000000",
+2642 => x"00000000",
+2643 => x"00000000",
+2644 => x"00000000",
+2645 => x"00000000",
+2646 => x"00000000",
+2647 => x"00000000",
+2648 => x"00000000",
+2649 => x"00000000",
+2650 => x"00000000",
+2651 => x"00000000",
+2652 => x"00000000",
+2653 => x"00000000",
+2654 => x"00000000",
+2655 => x"00000000",
+2656 => x"00000000",
+2657 => x"00000000",
+2658 => x"00000000",
+2659 => x"00000000",
+2660 => x"00000000",
+2661 => x"00000000",
+2662 => x"00000000",
+2663 => x"00000000",
+2664 => x"00000000",
+2665 => x"00000000",
+2666 => x"00000000",
+2667 => x"00000000",
+2668 => x"00000000",
+2669 => x"00000000",
+2670 => x"00000000",
+2671 => x"00000000",
+2672 => x"00000000",
+2673 => x"00000000",
+2674 => x"00000000",
+2675 => x"00000000",
+2676 => x"00000000",
+2677 => x"00000000",
+2678 => x"00000000",
+2679 => x"00000000",
+2680 => x"00000000",
+2681 => x"00000000",
+2682 => x"00000000",
+2683 => x"00000000",
+2684 => x"00000000",
+2685 => x"00000000",
+2686 => x"00000000",
+2687 => x"00000000",
+2688 => x"00000000",
+2689 => x"00000000",
+2690 => x"00000000",
+2691 => x"00000000",
+2692 => x"00000000",
+2693 => x"00000000",
+2694 => x"00000000",
+2695 => x"00000000",
+2696 => x"00000000",
+2697 => x"00000000",
+2698 => x"00000000",
+2699 => x"00000000",
+2700 => x"00000000",
+2701 => x"00000000",
+2702 => x"00000000",
+2703 => x"00000000",
+2704 => x"00000000",
+2705 => x"00000000",
+2706 => x"00000000",
+2707 => x"00000000",
+2708 => x"00000000",
+2709 => x"00000000",
+2710 => x"00000000",
+2711 => x"00000000",
+2712 => x"00000000",
+2713 => x"00000000",
+2714 => x"00000000",
+2715 => x"00000000",
+2716 => x"00000000",
+2717 => x"00000000",
+2718 => x"00000000",
+2719 => x"00000000",
+2720 => x"00000000",
+2721 => x"00000000",
+2722 => x"00000000",
+2723 => x"00000000",
+2724 => x"00000000",
+2725 => x"00000000",
+2726 => x"00000000",
+2727 => x"00000000",
+2728 => x"00000000",
+2729 => x"00000000",
+2730 => x"00000000",
+2731 => x"00000000",
+2732 => x"00000000",
+2733 => x"00000000",
+2734 => x"00000000",
+2735 => x"00000000",
+2736 => x"00000000",
+2737 => x"00000000",
+2738 => x"00000000",
+2739 => x"00000000",
+2740 => x"00000000",
+2741 => x"00000000",
+2742 => x"00000000",
+2743 => x"00000000",
+2744 => x"00000000",
+2745 => x"00000000",
+2746 => x"00000000",
+2747 => x"00000000",
+2748 => x"00000000",
+2749 => x"00000000",
+2750 => x"00000000",
+2751 => x"00000000",
+2752 => x"00000000",
+2753 => x"00000000",
+2754 => x"00000000",
+2755 => x"00000000",
+2756 => x"00000000",
+2757 => x"00000000",
+2758 => x"00000000",
+2759 => x"00000000",
+2760 => x"00000000",
+2761 => x"00000000",
+2762 => x"00000000",
+2763 => x"00000000",
+2764 => x"00000000",
+2765 => x"00000000",
+2766 => x"00000000",
+2767 => x"00000000",
+2768 => x"00000000",
+2769 => x"00000000",
+2770 => x"00000000",
+2771 => x"00000000",
+2772 => x"00000000",
+2773 => x"00000000",
+2774 => x"00000000",
+2775 => x"00000000",
+2776 => x"00000000",
+2777 => x"00000000",
+2778 => x"00000000",
+2779 => x"00000000",
+2780 => x"00000000",
+2781 => x"00000000",
+2782 => x"00000000",
+2783 => x"00000000",
+2784 => x"00000000",
+2785 => x"00000000",
+2786 => x"00000000",
+2787 => x"00000000",
+2788 => x"00000000",
+2789 => x"00000000",
+2790 => x"00000000",
+2791 => x"ffffffff",
+2792 => x"00000000",
+2793 => x"00020000",
+2794 => x"00000000",
+2795 => x"00000000",
+2796 => x"00002ba8",
+2797 => x"00002ba8",
+2798 => x"00002bb0",
+2799 => x"00002bb0",
+2800 => x"00002bb8",
+2801 => x"00002bb8",
+2802 => x"00002bc0",
+2803 => x"00002bc0",
+2804 => x"00002bc8",
+2805 => x"00002bc8",
+2806 => x"00002bd0",
+2807 => x"00002bd0",
+2808 => x"00002bd8",
+2809 => x"00002bd8",
+2810 => x"00002be0",
+2811 => x"00002be0",
+2812 => x"00002be8",
+2813 => x"00002be8",
+2814 => x"00002bf0",
+2815 => x"00002bf0",
+2816 => x"00002bf8",
+2817 => x"00002bf8",
+2818 => x"00002c00",
+2819 => x"00002c00",
+2820 => x"00002c08",
+2821 => x"00002c08",
+2822 => x"00002c10",
+2823 => x"00002c10",
+2824 => x"00002c18",
+2825 => x"00002c18",
+2826 => x"00002c20",
+2827 => x"00002c20",
+2828 => x"00002c28",
+2829 => x"00002c28",
+2830 => x"00002c30",
+2831 => x"00002c30",
+2832 => x"00002c38",
+2833 => x"00002c38",
+2834 => x"00002c40",
+2835 => x"00002c40",
+2836 => x"00002c48",
+2837 => x"00002c48",
+2838 => x"00002c50",
+2839 => x"00002c50",
+2840 => x"00002c58",
+2841 => x"00002c58",
+2842 => x"00002c60",
+2843 => x"00002c60",
+2844 => x"00002c68",
+2845 => x"00002c68",
+2846 => x"00002c70",
+2847 => x"00002c70",
+2848 => x"00002c78",
+2849 => x"00002c78",
+2850 => x"00002c80",
+2851 => x"00002c80",
+2852 => x"00002c88",
+2853 => x"00002c88",
+2854 => x"00002c90",
+2855 => x"00002c90",
+2856 => x"00002c98",
+2857 => x"00002c98",
+2858 => x"00002ca0",
+2859 => x"00002ca0",
+2860 => x"00002ca8",
+2861 => x"00002ca8",
+2862 => x"00002cb0",
+2863 => x"00002cb0",
+2864 => x"00002cb8",
+2865 => x"00002cb8",
+2866 => x"00002cc0",
+2867 => x"00002cc0",
+2868 => x"00002cc8",
+2869 => x"00002cc8",
+2870 => x"00002cd0",
+2871 => x"00002cd0",
+2872 => x"00002cd8",
+2873 => x"00002cd8",
+2874 => x"00002ce0",
+2875 => x"00002ce0",
+2876 => x"00002ce8",
+2877 => x"00002ce8",
+2878 => x"00002cf0",
+2879 => x"00002cf0",
+2880 => x"00002cf8",
+2881 => x"00002cf8",
+2882 => x"00002d00",
+2883 => x"00002d00",
+2884 => x"00002d08",
+2885 => x"00002d08",
+2886 => x"00002d10",
+2887 => x"00002d10",
+2888 => x"00002d18",
+2889 => x"00002d18",
+2890 => x"00002d20",
+2891 => x"00002d20",
+2892 => x"00002d28",
+2893 => x"00002d28",
+2894 => x"00002d30",
+2895 => x"00002d30",
+2896 => x"00002d38",
+2897 => x"00002d38",
+2898 => x"00002d40",
+2899 => x"00002d40",
+2900 => x"00002d48",
+2901 => x"00002d48",
+2902 => x"00002d50",
+2903 => x"00002d50",
+2904 => x"00002d58",
+2905 => x"00002d58",
+2906 => x"00002d60",
+2907 => x"00002d60",
+2908 => x"00002d68",
+2909 => x"00002d68",
+2910 => x"00002d70",
+2911 => x"00002d70",
+2912 => x"00002d78",
+2913 => x"00002d78",
+2914 => x"00002d80",
+2915 => x"00002d80",
+2916 => x"00002d88",
+2917 => x"00002d88",
+2918 => x"00002d90",
+2919 => x"00002d90",
+2920 => x"00002d98",
+2921 => x"00002d98",
+2922 => x"00002da0",
+2923 => x"00002da0",
+2924 => x"00002da8",
+2925 => x"00002da8",
+2926 => x"00002db0",
+2927 => x"00002db0",
+2928 => x"00002db8",
+2929 => x"00002db8",
+2930 => x"00002dc0",
+2931 => x"00002dc0",
+2932 => x"00002dc8",
+2933 => x"00002dc8",
+2934 => x"00002dd0",
+2935 => x"00002dd0",
+2936 => x"00002dd8",
+2937 => x"00002dd8",
+2938 => x"00002de0",
+2939 => x"00002de0",
+2940 => x"00002de8",
+2941 => x"00002de8",
+2942 => x"00002df0",
+2943 => x"00002df0",
+2944 => x"00002df8",
+2945 => x"00002df8",
+2946 => x"00002e00",
+2947 => x"00002e00",
+2948 => x"00002e08",
+2949 => x"00002e08",
+2950 => x"00002e10",
+2951 => x"00002e10",
+2952 => x"00002e18",
+2953 => x"00002e18",
+2954 => x"00002e20",
+2955 => x"00002e20",
+2956 => x"00002e28",
+2957 => x"00002e28",
+2958 => x"00002e30",
+2959 => x"00002e30",
+2960 => x"00002e38",
+2961 => x"00002e38",
+2962 => x"00002e40",
+2963 => x"00002e40",
+2964 => x"00002e48",
+2965 => x"00002e48",
+2966 => x"00002e50",
+2967 => x"00002e50",
+2968 => x"00002e58",
+2969 => x"00002e58",
+2970 => x"00002e60",
+2971 => x"00002e60",
+2972 => x"00002e68",
+2973 => x"00002e68",
+2974 => x"00002e70",
+2975 => x"00002e70",
+2976 => x"00002e78",
+2977 => x"00002e78",
+2978 => x"00002e80",
+2979 => x"00002e80",
+2980 => x"00002e88",
+2981 => x"00002e88",
+2982 => x"00002e90",
+2983 => x"00002e90",
+2984 => x"00002e98",
+2985 => x"00002e98",
+2986 => x"00002ea0",
+2987 => x"00002ea0",
+2988 => x"00002ea8",
+2989 => x"00002ea8",
+2990 => x"00002eb0",
+2991 => x"00002eb0",
+2992 => x"00002eb8",
+2993 => x"00002eb8",
+2994 => x"00002ec0",
+2995 => x"00002ec0",
+2996 => x"00002ec8",
+2997 => x"00002ec8",
+2998 => x"00002ed0",
+2999 => x"00002ed0",
+3000 => x"00002ed8",
+3001 => x"00002ed8",
+3002 => x"00002ee0",
+3003 => x"00002ee0",
+3004 => x"00002ee8",
+3005 => x"00002ee8",
+3006 => x"00002ef0",
+3007 => x"00002ef0",
+3008 => x"00002ef8",
+3009 => x"00002ef8",
+3010 => x"00002f00",
+3011 => x"00002f00",
+3012 => x"00002f08",
+3013 => x"00002f08",
+3014 => x"00002f10",
+3015 => x"00002f10",
+3016 => x"00002f18",
+3017 => x"00002f18",
+3018 => x"00002f20",
+3019 => x"00002f20",
+3020 => x"00002f28",
+3021 => x"00002f28",
+3022 => x"00002f30",
+3023 => x"00002f30",
+3024 => x"00002f38",
+3025 => x"00002f38",
+3026 => x"00002f40",
+3027 => x"00002f40",
+3028 => x"00002f48",
+3029 => x"00002f48",
+3030 => x"00002f50",
+3031 => x"00002f50",
+3032 => x"00002f58",
+3033 => x"00002f58",
+3034 => x"00002f60",
+3035 => x"00002f60",
+3036 => x"00002f68",
+3037 => x"00002f68",
+3038 => x"00002f70",
+3039 => x"00002f70",
+3040 => x"00002f78",
+3041 => x"00002f78",
+3042 => x"00002f80",
+3043 => x"00002f80",
+3044 => x"00002f88",
+3045 => x"00002f88",
+3046 => x"00002f90",
+3047 => x"00002f90",
+3048 => x"00002f98",
+3049 => x"00002f98",
+3050 => x"00002fa0",
+3051 => x"00002fa0",
+3052 => x"000027c0",
+3053 => x"ffffffff",
+3054 => x"00000000",
+3055 => x"ffffffff",
+3056 => x"00000000",
Index: zpu/zpu4/test/interrupt/int.c
===================================================================
--- zpu/zpu4/test/interrupt/int.c (nonexistent)
+++ zpu/zpu4/test/interrupt/int.c (revision 93)
@@ -0,0 +1,40 @@
+/*
+ * Shows usage of interrupts. Goes along with zpu_core_small_wip.vhd.
+ */
+#include
+
+
+volatile int counter;
+
+/* Example of single, fixed interval non-maskable, nested interrupt. The interrupt signal is
+ * held high for enough cycles to guarantee that it will be noticed, i.e. longer than
+ * any io access + 4 cycles roughly.
+ *
+ * Any non-trivial interrupt controller would have support for
+ * acknowledging interrupts(i.e. keep interrupts asserted until
+ * software acknowledges them via memory mapped IO).
+ */
+void _zpu_interrupt(void)
+{
+ /* interrupts are enabled so we need to finish up quickly,
+ * lest we will get infinite recursion!*/
+ counter++;
+}
+
+int main(int argc, char **argv)
+{
+ int t;
+ t=counter;
+ for (;;)
+ {
+ if (t==counter)
+ {
+ puts("No interrupt\n");
+ } else
+ {
+ puts("Got interrupt\n");
+ t=counter;
+ }
+ }
+
+}
Index: zpu/zpu4/src/timer.vhd
===================================================================
--- zpu/zpu4/src/timer.vhd (nonexistent)
+++ zpu/zpu4/src/timer.vhd (revision 93)
@@ -0,0 +1,61 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity timer is
+ port(
+ clk : in std_logic;
+ areset : in std_logic;
+ we : in std_logic;
+ din : in std_logic_vector(7 downto 0);
+ adr : in std_logic_vector(2 downto 0);
+ dout : out std_logic_vector(7 downto 0));
+end timer;
+
+
+architecture behave of timer is
+
+signal sample : std_logic;
+signal reset : std_logic;
+
+
+signal cnt : unsigned(63 downto 0);
+signal cnt_smp : std_logic_vector(63 downto 0);
+
+begin
+
+ reset <= '1' when (we = '1' and din(0) = '1') else '0';
+ sample <= '1' when (we = '1' and din(1) = '1') else '0';
+
+ process(clk, areset) -- Carry generation
+ begin
+ if areset = '1' then
+ cnt <= (others => '0');
+ cnt_smp <= (others => '0');
+ elsif (clk'event and clk = '1') then
+ cnt <= cnt + 1;
+ if sample = '1' then
+-- report "sampling" severity failure;
+ cnt_smp <= std_logic_vector(cnt);
+ end if;
+ end if;
+ end process;
+
+
+ process(cnt_smp, adr)
+ begin
+ case adr is
+ when "000" => dout <= cnt_smp(7 downto 0);
+ when "001" => dout <= cnt_smp(15 downto 8);
+ when "010" => dout <= cnt_smp(23 downto 16);
+ when "011" => dout <= cnt_smp(31 downto 24);
+ when "100" => dout <= cnt_smp(39 downto 32);
+ when "101" => dout <= cnt_smp(47 downto 40);
+ when "110" => dout <= cnt_smp(55 downto 48);
+ when others => dout <= cnt_smp(63 downto 56);
+ end case;
+ end process;
+
+
+end behave;
+
Index: zpu/zpu4/src/zpuio.vhd
===================================================================
--- zpu/zpu4/src/zpuio.vhd (nonexistent)
+++ zpu/zpu4/src/zpuio.vhd (revision 93)
@@ -0,0 +1,232 @@
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.STD_LOGIC_UNSIGNED.ALL;
+
+library work;
+use work.zpu_config.all;
+use work.zpupkg.all;
+
+entity zpuio is
+ port ( areset : in std_logic;
+ cpu_clk : in std_logic;
+ clk_status : in std_logic_vector(2 downto 0);
+ cpu_din : in std_logic_vector(15 downto 0);
+ cpu_a : in std_logic_vector(20 downto 0);
+ cpu_we : in std_logic_vector(1 downto 0);
+ cpu_re : in std_logic;
+ cpu_dout : inout std_logic_vector(15 downto 0));
+end zpuio;
+
+architecture behave of zpuio is
+
+signal timer_read : std_logic_vector(7 downto 0);
+--signal timer_write : std_logic_vector(7 downto 0);
+signal timer_we : std_logic;
+
+
+signal io_busy : std_logic;
+signal io_read : std_logic_vector(7 downto 0);
+--signal io_write : std_logic_vector(7 downto 0);
+signal io_addr : std_logic_vector(maxAddrBit downto minAddrBit);
+signal io_writeEnable : std_logic;
+signal Enable : std_logic;
+
+signal din : std_logic_vector(7 downto 0);
+signal dout : std_logic_vector(7 downto 0);
+signal adr : std_logic_vector(15 downto 0);
+signal break : std_logic;
+signal we : std_logic;
+signal re : std_logic;
+
+
+-- uart forwarding...
+
+signal uartTXPending : std_logic;
+signal uartTXCleared : std_logic;
+signal uartData : std_logic_vector(7 downto 0);
+
+signal readingTimer : std_logic;
+
+
+
+
+signal mem_busy : std_logic;
+signal mem_read : std_logic_vector(wordSize-1 downto 0);
+signal mem_write : std_logic_vector(wordSize-1 downto 0);
+signal mem_addr : std_logic_vector(maxAddrBitIncIO downto 0);
+signal mem_writeEnable : std_logic;
+signal mem_readEnable : std_logic;
+signal mem_writeMask: std_logic_vector(wordBytes-1 downto 0);
+
+signal dram_mem_busy : std_logic;
+signal dram_mem_read : std_logic_vector(wordSize-1 downto 0);
+signal dram_mem_write : std_logic_vector(wordSize-1 downto 0);
+signal dram_mem_writeEnable : std_logic;
+signal dram_mem_readEnable : std_logic;
+signal dram_mem_writeMask: std_logic_vector(wordBytes-1 downto 0);
+
+
+
+--signal io_mem_read : std_logic_vector(7 downto 0);
+--signal io_mem_writeEnable : std_logic;
+--signal io_mem_readEnable : std_logic;
+signal io_readEnable : std_logic;
+
+
+signal dram_read : std_logic;
+
+
+
+begin
+
+ io_addr <= mem_addr(maxAddrBit downto minAddrBit);
+
+ timerinst: timer port map (
+ clk => cpu_clk,
+ areset => areset,
+ we => timer_we,
+ din => mem_write(7 downto 0),
+ adr => io_addr(4 downto 2),
+ dout => timer_read);
+
+ zpu: zpu_core port map (
+ clk => cpu_clk ,
+ areset => areset,
+ in_mem_busy => mem_busy,
+ mem_read => mem_read,
+ mem_write => mem_write,
+ out_mem_addr => mem_addr,
+ out_mem_writeEnable => mem_writeEnable,
+ out_mem_readEnable => mem_readEnable,
+ mem_writeMask => mem_writeMask,
+ interrupt => '0',
+ break => break);
+
+
+ram_imp: dram port map (
+ clk => cpu_clk ,
+ areset => areset,
+ mem_busy => dram_mem_busy,
+ mem_read => dram_mem_read,
+ mem_write => mem_write,
+ mem_addr => mem_addr(maxAddrBit downto 0),
+ mem_writeEnable => dram_mem_writeEnable,
+ mem_readEnable => dram_mem_readEnable,
+ mem_writeMask => mem_writeMask);
+
+
+
+ fauxUart:
+ process(cpu_clk, areset)
+ begin
+ if areset = '1' then
+ io_busy <= '0';
+ uartTXPending <= '0';
+ timer_we <= '0';
+ io_busy <= '0';
+ uartData <= x"58"; -- 'X'
+ readingTimer <= '0';
+ elsif (cpu_clk'event and cpu_clk = '1') then
+ timer_we <= '0';
+ io_busy <= '0';
+ if uartTXCleared = '1' then
+ uartTXPending <= '0';
+ end if;
+
+ if io_writeEnable = '1' then
+ if io_addr=x"2028003" then
+ -- Write to UART
+ uartData <= mem_write(7 downto 0);
+ uartTXPending <= '1';
+ io_busy <= '1';
+ elsif io_addr(12)='1' then
+ timer_we <= '1';
+ io_busy <= '1';
+ else
+-- report "Illegal IO write" severity failure;
+ end if;
+ end if;
+ if (io_readEnable = '1') then
+ if io_addr=x"2028003" then
+ io_read <= (0=>'1', -- recieve empty
+ 1 => uartTXPending, -- tx full
+ others => '0');
+ io_busy <= '1';
+ elsif io_addr(12)='1' then
+ readingTimer <= '1';
+ io_busy <= '1';
+ elsif io_addr(11)='1' then
+ io_read <= ZPU_Frequency;
+ io_busy <= '1';
+ else
+-- report "Illegal IO read" severity failure;
+ end if;
+
+ else
+ if (readingTimer = '1') then
+ readingTimer <= '0';
+ io_read <= timer_read;
+ io_busy <= '0';
+ else
+ io_read <= (others => '1');
+ end if;
+ end if;
+ end if;
+ end process;
+
+
+ forwardUARTOutputToARM:
+ process(cpu_clk, areset)
+ begin
+ if areset = '1' then
+ uartTXCleared <= '0';
+ elsif (cpu_clk = '1' and cpu_clk'event) then
+ if cpu_we(0) = '1' and cpu_a(3 downto 1) = "000" then
+ uartTXCleared <= cpu_din(0);
+ else
+ uartTXCleared <= uartTXCleared;
+ end if;
+ end if;
+ end process;
+
+ cpu_dout(7 downto 0) <= uartData when (cpu_re = '1' and cpu_a(3 downto 1) = "001") else (others => 'Z');
+ cpu_dout <= (0 => uartTXPending, others => '0') when (cpu_re = '1' and cpu_a(3 downto 1) = "000") else (others => 'Z');
+
+ dram_mem_writeEnable <= mem_writeEnable and not mem_addr(ioBit);
+ dram_mem_readEnable <= mem_readEnable and not mem_addr(ioBit);
+ io_writeEnable <= mem_writeEnable and mem_addr(ioBit);
+-- io_readEnable <= mem_readEnable and mem_addr(ioBit);
+ mem_busy <= io_busy or dram_mem_busy or dram_read or io_readEnable;
+
+ -- Memory reads either come from IO or DRAM. We need to pick the right one.
+ memorycontrol:
+ process(cpu_clk, areset)
+ begin
+ if areset = '1' then
+ dram_read <= '0';
+ io_readEnable <= '0';
+
+
+ elsif (cpu_clk'event and cpu_clk = '1') then
+ mem_read <= (others => '0');
+ if mem_addr(ioBit)='0' and mem_readEnable='1' then
+ dram_read <= '1';
+ end if;
+ if dram_read='1' and dram_mem_busy='0' then
+ dram_read <= '0';
+ mem_read <= dram_mem_read;
+ end if;
+
+ if mem_addr(ioBit)='1' and mem_readEnable='1' then
+ io_readEnable <= '1';
+ end if;
+ if io_readEnable='1' and io_busy='0' then
+ io_readEnable <= '0';
+ mem_read(7 downto 0) <= io_read;
+ end if;
+
+ end if;
+ end process;
+
+
+end behave;
Index: zpu/zpu4/src/io.vhd
===================================================================
--- zpu/zpu4/src/io.vhd (nonexistent)
+++ zpu/zpu4/src/io.vhd (revision 93)
@@ -0,0 +1,112 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+use std.textio.all;
+
+library work;
+use work.zpu_config.all;
+use work.zpupkg.all;
+use work.txt_util.all;
+
+entity zpu_io is
+ generic (
+ log_file: string := "log.txt"
+ );
+ port(
+ clk : in std_logic;
+ areset : in std_logic;
+ busy : out std_logic;
+ writeEnable : in std_logic;
+ readEnable : in std_logic;
+ write : in std_logic_vector(wordSize-1 downto 0);
+ read : out std_logic_vector(wordSize-1 downto 0);
+ addr : in std_logic_vector(maxAddrBit downto minAddrBit)
+ );
+end zpu_io;
+
+
+architecture behave of zpu_io is
+
+
+
+signal timer_read : std_logic_vector(7 downto 0);
+--signal timer_write : std_logic_vector(7 downto 0);
+signal timer_we : std_logic;
+
+signal serving : std_logic;
+
+file l_file : TEXT open write_mode is log_file;
+constant lowAddrBits: std_logic_vector(minAddrBit-1 downto 0) := (others=>'0');
+constant tx_full: std_logic := '0';
+constant rx_empty: std_logic := '1';
+
+begin
+
+
+ timerinst: timer port map (
+ clk => clk,
+ areset => areset,
+ we => timer_we,
+ din => write(7 downto 0),
+ adr => addr(4 downto 2),
+ dout => timer_read);
+
+ busy <= writeEnable or readEnable;
+ timer_we <= writeEnable and addr(12);
+
+ process(areset, clk)
+ variable taddr : std_logic_vector(maxAddrBit downto 0);
+ begin
+ taddr := (others => '0');
+ taddr(maxAddrBit downto minAddrBit) := addr;
+
+ if (areset = '1') then
+-- timer_we <= '0';
+ elsif (clk'event and clk = '1') then
+-- timer_we <= '0';
+ if writeEnable = '1' then
+ -- external interface (fixed address)
+ -- extend compare to avoid waring messages
+ if ("1" & addr & lowAddrBits)=x"80a000c" then
+ report "Write to UART[0]" & " :0x" & hstr(write);
+ -- Write to UART
+ -- report "" & character'image(conv_integer(memBint)) severity note;
+ print(l_file, character'val(to_integer(unsigned(write))));
+ elsif addr(12)='1' then
+ report "Write to TIMER" & " :0x" & hstr(write);
+-- report "xxx" severity failure;
+-- timer_we <= '1';
+ else
+ print(l_file, character'val(to_integer(unsigned(write))));
+ report "Illegal IO write @" & "0x" & hstr(taddr) severity warning;
+ end if;
+
+ end if;
+ read <= (others => '0');
+ if (readEnable = '1') then
+ -- extend compare to avoid waring messages
+ if ("1" & addr & lowAddrBits)=x"80a000c" then
+ report "Read UART[0]";
+ read(8) <= not tx_full; -- output fifo not full
+ read(9) <= not rx_empty; -- receiver not empty
+ elsif ("1" & addr & lowAddrBits)=x"80a0010" then
+ report "Read UART[1]";
+ read(8) <= not rx_empty; -- receiver not empty
+ read(7 downto 0) <= (others => '0');
+ elsif addr(12)='1' then
+ report "Read TIMER";
+ read(7 downto 0) <= timer_read;
+ elsif addr(11)='1' then
+ report "Read ZPU Freq";
+ read(7 downto 0) <= ZPU_Frequency;
+ else
+ report "Illegal IO read @" & "0x" & hstr(taddr) severity warning;
+ end if;
+ end if;
+ end if;
+ end process;
+
+
+end behave;
+
Index: zpu/zpu4/src/txt_util.vhd
===================================================================
--- zpu/zpu4/src/txt_util.vhd (nonexistent)
+++ zpu/zpu4/src/txt_util.vhd (revision 93)
@@ -0,0 +1,621 @@
+-- ZPU
+--
+-- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+--
+-- The FreeBSD license
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+--
+-- 1. Redistributions of source code must retain the above copyright
+-- notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above
+-- copyright notice, this list of conditions and the following
+-- disclaimer in the documentation and/or other materials
+-- provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
+-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+-- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+-- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+-- The views and conclusions contained in the software and documentation
+-- are those of the authors and should not be interpreted as representing
+-- official policies, either expressed or implied, of the ZPU Project.
+
+library ieee;
+use ieee.std_logic_1164.all;
+use std.textio.all;
+
+library work;
+
+package txt_util is
+
+ -- prints a message to the screen
+ procedure print(text: string);
+
+ -- prints the message when active
+ -- useful for debug switches
+ procedure print(active: boolean; text: string);
+
+ -- converts std_logic into a character
+ function chr(sl: std_logic) return character;
+
+ -- converts std_logic into a string (1 to 1)
+ function str(sl: std_logic) return string;
+
+ -- converts std_logic_vector into a string (binary base)
+ function str(slv: std_logic_vector) return string;
+
+ -- converts boolean into a string
+ function str(b: boolean) return string;
+
+ -- converts an integer into a single character
+ -- (can also be used for hex conversion and other bases)
+ function chr(int: integer) return character;
+
+ -- converts integer into string using specified base
+ function str(int: integer; base: integer) return string;
+
+ -- converts integer to string, using base 10
+ function str(int: integer) return string;
+
+ -- convert std_logic_vector into a string in hex format
+ function hstr(slv: std_logic_vector) return string;
+
+
+ -- functions to manipulate strings
+ -----------------------------------
+
+ -- convert a character to upper case
+ function to_upper(c: character) return character;
+
+ -- convert a character to lower case
+ function to_lower(c: character) return character;
+
+ -- convert a string to upper case
+ function to_upper(s: string) return string;
+
+ -- convert a string to lower case
+ function to_lower(s: string) return string;
+
+
+
+ -- functions to convert strings into other formats
+ --------------------------------------------------
+
+ -- converts a character into std_logic
+ function to_std_logic(c: character) return std_logic;
+
+ -- converts a string into std_logic_vector
+ function to_std_logic_vector(s: string) return std_logic_vector;
+
+
+
+ -- file I/O
+ -----------
+
+ -- read variable length string from input file
+ procedure str_read(file in_file: TEXT;
+ res_string: out string);
+
+ -- print string to a file and start new line
+ procedure print(file out_file: TEXT;
+ new_string: in string);
+
+ -- print character to a file and start new line
+ procedure print(file out_file: TEXT;
+ char: in character);
+
+end txt_util;
+
+
+
+
+package body txt_util is
+
+
+
+
+ -- prints text to the screen
+
+ procedure print(text: string) is
+ variable msg_line: line;
+ begin
+ write(msg_line, text);
+ writeline(output, msg_line);
+ end print;
+
+
+
+
+ -- prints text to the screen when active
+
+ procedure print(active: boolean; text: string) is
+ begin
+ if active then
+ print(text);
+ end if;
+ end print;
+
+
+ -- converts std_logic into a character
+
+ function chr(sl: std_logic) return character is
+ variable c: character;
+ begin
+ case sl is
+ when 'U' => c:= 'U';
+ when 'X' => c:= 'X';
+ when '0' => c:= '0';
+ when '1' => c:= '1';
+ when 'Z' => c:= 'Z';
+ when 'W' => c:= 'W';
+ when 'L' => c:= 'L';
+ when 'H' => c:= 'H';
+ when '-' => c:= '-';
+ end case;
+ return c;
+ end chr;
+
+
+
+ -- converts std_logic into a string (1 to 1)
+
+ function str(sl: std_logic) return string is
+ variable s: string(1 to 1);
+ begin
+ s(1) := chr(sl);
+ return s;
+ end str;
+
+
+
+ -- converts std_logic_vector into a string (binary base)
+ -- (this also takes care of the fact that the range of
+ -- a string is natural while a std_logic_vector may
+ -- have an integer range)
+
+ function str(slv: std_logic_vector) return string is
+ variable result : string (1 to slv'length);
+ variable r : integer;
+ begin
+ r := 1;
+ for i in slv'range loop
+ result(r) := chr(slv(i));
+ r := r + 1;
+ end loop;
+ return result;
+ end str;
+
+
+ function str(b: boolean) return string is
+
+ begin
+ if b then
+ return "true";
+ else
+ return "false";
+ end if;
+ end str;
+
+
+ -- converts an integer into a character
+ -- for 0 to 9 the obvious mapping is used, higher
+ -- values are mapped to the characters A-Z
+ -- (this is usefull for systems with base > 10)
+ -- (adapted from Steve Vogwell's posting in comp.lang.vhdl)
+
+ function chr(int: integer) return character is
+ variable c: character;
+ begin
+ case int is
+ when 0 => c := '0';
+ when 1 => c := '1';
+ when 2 => c := '2';
+ when 3 => c := '3';
+ when 4 => c := '4';
+ when 5 => c := '5';
+ when 6 => c := '6';
+ when 7 => c := '7';
+ when 8 => c := '8';
+ when 9 => c := '9';
+ when 10 => c := 'A';
+ when 11 => c := 'B';
+ when 12 => c := 'C';
+ when 13 => c := 'D';
+ when 14 => c := 'E';
+ when 15 => c := 'F';
+ when 16 => c := 'G';
+ when 17 => c := 'H';
+ when 18 => c := 'I';
+ when 19 => c := 'J';
+ when 20 => c := 'K';
+ when 21 => c := 'L';
+ when 22 => c := 'M';
+ when 23 => c := 'N';
+ when 24 => c := 'O';
+ when 25 => c := 'P';
+ when 26 => c := 'Q';
+ when 27 => c := 'R';
+ when 28 => c := 'S';
+ when 29 => c := 'T';
+ when 30 => c := 'U';
+ when 31 => c := 'V';
+ when 32 => c := 'W';
+ when 33 => c := 'X';
+ when 34 => c := 'Y';
+ when 35 => c := 'Z';
+ when others => c := '?';
+ end case;
+ return c;
+ end chr;
+
+
+
+ -- convert integer to string using specified base
+ -- (adapted from Steve Vogwell's posting in comp.lang.vhdl)
+
+ function str(int: integer; base: integer) return string is
+
+ variable temp: string(1 to 10);
+ variable num: integer;
+ variable abs_int: integer;
+ variable len: integer := 1;
+ variable power: integer := 1;
+
+ begin
+
+ -- bug fix for negative numbers
+ abs_int := abs(int);
+
+ num := abs_int;
+
+ while num >= base loop -- Determine how many
+ len := len + 1; -- characters required
+ num := num / base; -- to represent the
+ end loop ; -- number.
+
+ for i in len downto 1 loop -- Convert the number to
+ temp(i) := chr(abs_int/power mod base); -- a string starting
+ power := power * base; -- with the right hand
+ end loop ; -- side.
+
+ -- return result and add sign if required
+ if int < 0 then
+ return '-'& temp(1 to len);
+ else
+ return temp(1 to len);
+ end if;
+
+ end str;
+
+
+ -- convert integer to string, using base 10
+ function str(int: integer) return string is
+
+ begin
+
+ return str(int, 10) ;
+
+ end str;
+
+
+
+ -- converts a std_logic_vector into a hex string.
+ function hstr(slv: std_logic_vector) return string is
+ variable hexlen: integer;
+ variable longslv : std_logic_vector(67 downto 0) := (others => '0');
+ variable hex : string(1 to 16);
+ variable fourbit : std_logic_vector(3 downto 0);
+ begin
+ hexlen := (slv'left+1)/4;
+ if (slv'left+1) mod 4 /= 0 then
+ hexlen := hexlen + 1;
+ end if;
+ longslv(slv'left downto 0) := slv;
+ for i in (hexlen -1) downto 0 loop
+ fourbit := longslv(((i*4)+3) downto (i*4));
+ case fourbit is
+ when "0000" => hex(hexlen -I) := '0';
+ when "0001" => hex(hexlen -I) := '1';
+ when "0010" => hex(hexlen -I) := '2';
+ when "0011" => hex(hexlen -I) := '3';
+ when "0100" => hex(hexlen -I) := '4';
+ when "0101" => hex(hexlen -I) := '5';
+ when "0110" => hex(hexlen -I) := '6';
+ when "0111" => hex(hexlen -I) := '7';
+ when "1000" => hex(hexlen -I) := '8';
+ when "1001" => hex(hexlen -I) := '9';
+ when "1010" => hex(hexlen -I) := 'A';
+ when "1011" => hex(hexlen -I) := 'B';
+ when "1100" => hex(hexlen -I) := 'C';
+ when "1101" => hex(hexlen -I) := 'D';
+ when "1110" => hex(hexlen -I) := 'E';
+ when "1111" => hex(hexlen -I) := 'F';
+ when "ZZZZ" => hex(hexlen -I) := 'z';
+ when "UUUU" => hex(hexlen -I) := 'u';
+ when "XXXX" => hex(hexlen -I) := 'x';
+ when others => hex(hexlen -I) := '?';
+ end case;
+ end loop;
+ return hex(1 to hexlen);
+ end hstr;
+
+
+
+ -- functions to manipulate strings
+ -----------------------------------
+
+
+ -- convert a character to upper case
+
+ function to_upper(c: character) return character is
+
+ variable u: character;
+
+ begin
+
+ case c is
+ when 'a' => u := 'A';
+ when 'b' => u := 'B';
+ when 'c' => u := 'C';
+ when 'd' => u := 'D';
+ when 'e' => u := 'E';
+ when 'f' => u := 'F';
+ when 'g' => u := 'G';
+ when 'h' => u := 'H';
+ when 'i' => u := 'I';
+ when 'j' => u := 'J';
+ when 'k' => u := 'K';
+ when 'l' => u := 'L';
+ when 'm' => u := 'M';
+ when 'n' => u := 'N';
+ when 'o' => u := 'O';
+ when 'p' => u := 'P';
+ when 'q' => u := 'Q';
+ when 'r' => u := 'R';
+ when 's' => u := 'S';
+ when 't' => u := 'T';
+ when 'u' => u := 'U';
+ when 'v' => u := 'V';
+ when 'w' => u := 'W';
+ when 'x' => u := 'X';
+ when 'y' => u := 'Y';
+ when 'z' => u := 'Z';
+ when others => u := c;
+ end case;
+
+ return u;
+
+ end to_upper;
+
+
+ -- convert a character to lower case
+
+ function to_lower(c: character) return character is
+
+ variable l: character;
+
+ begin
+
+ case c is
+ when 'A' => l := 'a';
+ when 'B' => l := 'b';
+ when 'C' => l := 'c';
+ when 'D' => l := 'd';
+ when 'E' => l := 'e';
+ when 'F' => l := 'f';
+ when 'G' => l := 'g';
+ when 'H' => l := 'h';
+ when 'I' => l := 'i';
+ when 'J' => l := 'j';
+ when 'K' => l := 'k';
+ when 'L' => l := 'l';
+ when 'M' => l := 'm';
+ when 'N' => l := 'n';
+ when 'O' => l := 'o';
+ when 'P' => l := 'p';
+ when 'Q' => l := 'q';
+ when 'R' => l := 'r';
+ when 'S' => l := 's';
+ when 'T' => l := 't';
+ when 'U' => l := 'u';
+ when 'V' => l := 'v';
+ when 'W' => l := 'w';
+ when 'X' => l := 'x';
+ when 'Y' => l := 'y';
+ when 'Z' => l := 'z';
+ when others => l := c;
+ end case;
+
+ return l;
+
+ end to_lower;
+
+
+
+ -- convert a string to upper case
+
+ function to_upper(s: string) return string is
+
+ variable uppercase: string (s'range);
+
+ begin
+
+ for i in s'range loop
+ uppercase(i):= to_upper(s(i));
+ end loop;
+ return uppercase;
+
+ end to_upper;
+
+
+
+ -- convert a string to lower case
+
+ function to_lower(s: string) return string is
+
+ variable lowercase: string (s'range);
+
+ begin
+
+ for i in s'range loop
+ lowercase(i):= to_lower(s(i));
+ end loop;
+ return lowercase;
+
+ end to_lower;
+
+
+
+-- functions to convert strings into other types
+
+
+-- converts a character into a std_logic
+
+function to_std_logic(c: character) return std_logic is
+ variable sl: std_logic;
+ begin
+ case c is
+ when 'U' =>
+ sl := 'U';
+ when 'X' =>
+ sl := 'X';
+ when '0' =>
+ sl := '0';
+ when '1' =>
+ sl := '1';
+ when 'Z' =>
+ sl := 'Z';
+ when 'W' =>
+ sl := 'W';
+ when 'L' =>
+ sl := 'L';
+ when 'H' =>
+ sl := 'H';
+ when '-' =>
+ sl := '-';
+ when others =>
+ sl := 'X';
+ end case;
+ return sl;
+ end to_std_logic;
+
+
+-- converts a string into std_logic_vector
+
+function to_std_logic_vector(s: string) return std_logic_vector is
+ variable slv: std_logic_vector(s'high-s'low downto 0);
+ variable k: integer;
+begin
+ k := s'high-s'low;
+ for i in s'range loop
+ slv(k) := to_std_logic(s(i));
+ k := k - 1;
+ end loop;
+ return slv;
+end to_std_logic_vector;
+
+
+
+
+
+
+----------------
+-- file I/O --
+----------------
+
+
+
+-- read variable length string from input file
+
+procedure str_read(file in_file: TEXT;
+ res_string: out string) is
+
+ variable l: line;
+ variable c: character;
+ variable is_string: boolean;
+
+ begin
+
+ readline(in_file, l);
+ -- clear the contents of the result string
+ for i in res_string'range loop
+ res_string(i) := ' ';
+ end loop;
+ -- read all characters of the line, up to the length
+ -- of the results string
+ for i in res_string'range loop
+ read(l, c, is_string);
+ res_string(i) := c;
+ if not is_string then -- found end of line
+ exit;
+ end if;
+ end loop;
+
+end str_read;
+
+
+-- print string to a file
+procedure print(file out_file: TEXT;
+ new_string: in string) is
+
+ variable l: line;
+
+ begin
+
+ write(l, new_string);
+ writeline(out_file, l);
+
+end print;
+
+
+-- print character to a file and start new line
+procedure print(file out_file: TEXT;
+ char: in character) is
+
+ variable l: line;
+
+ begin
+
+ write(l, char);
+ writeline(out_file, l);
+
+end print;
+
+
+
+-- appends contents of a string to a file until line feed occurs
+-- (LF is considered to be the end of the string)
+
+procedure str_write(file out_file: TEXT;
+ new_string: in string) is
+ begin
+
+ for i in new_string'range loop
+ print(out_file, new_string(i));
+ if new_string(i) = LF then -- end of string
+ exit;
+ end if;
+ end loop;
+
+end str_write;
+
+
+
+
+end txt_util;
+
+
+
+
Index: zpu/zpu4/src/.cvsignore
===================================================================
--- zpu/zpu4/src/.cvsignore (nonexistent)
+++ zpu/zpu4/src/.cvsignore (revision 93)
@@ -0,0 +1,5 @@
+work
+vsim.wlf
+xilinx_device_details.xml
+tcl_stacktrace.txt
+vish_stacktrace.vstf
Index: zpu/zpu4/src/clocks.vhd
===================================================================
--- zpu/zpu4/src/clocks.vhd (nonexistent)
+++ zpu/zpu4/src/clocks.vhd (revision 93)
@@ -0,0 +1,246 @@
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.STD_LOGIC_UNSIGNED.ALL;
+
+library UNISIM;
+use UNISIM.vcomponents.all;
+
+entity clocks is
+ port ( areset : in std_logic;
+ cpu_clk_p : in std_logic;
+ sdr_clk_fb_p : in std_logic;
+ cpu_clk : out std_logic;
+ cpu_clk_2x : out std_logic;
+ cpu_clk_4x : out std_logic;
+ ddr_in_clk : out std_logic;
+ ddr_in_clk_2x : out std_logic;
+ locked : out std_logic_vector(2 downto 0));
+end clocks;
+
+architecture behave of clocks is
+
+signal low : std_logic;
+
+signal cpu_clk_in : std_logic;
+signal sdr_clk_fb_in : std_logic;
+
+signal dcm_cpu1 : std_logic;
+signal dcm_cpu2 : std_logic;
+signal dcm_cpu2_dum : std_logic;
+signal dcm_cpu4 : std_logic;
+signal dcm_ddr2 : std_logic;
+signal dcm_ddr2_2x : std_logic;
+
+signal cpu_clk_int : std_logic;
+signal cpu_clk_2x_int : std_logic;
+signal cpu_clk_2x_dum_int : std_logic;
+signal cpu_clk_4x_int : std_logic;
+signal ddr_in_clk_int : std_logic;
+signal ddr_in_clk_2x_int : std_logic;
+
+signal dcm1_locked_del : std_logic;
+signal dcm2_locked_del : std_logic;
+signal dcm2_reset : std_logic;
+signal dcm3_reset : std_logic;
+
+signal locked_int : std_logic_vector(2 downto 0);
+signal del_addr : std_logic_vector(3 downto 0);
+
+begin
+
+ low <= '0';
+ del_addr <= "1111";
+
+ cpu_clk <= cpu_clk_int;
+ cpu_clk_2x <= cpu_clk_2x_int;
+ cpu_clk_4x <= cpu_clk_4x_int;
+ ddr_in_clk <= ddr_in_clk_int;
+ ddr_in_clk_2x <= ddr_in_clk_2x_int;
+ locked <= locked_int;
+
+
+ CPU_IBUFG:
+ IBUFG port map (
+ O => cpu_clk_in,
+ I => cpu_clk_p);
+
+ SDR_FB_IBUFG:
+ IBUFG port map (
+ O => sdr_clk_fb_in,
+ I => sdr_clk_fb_p);
+
+ dcm2_rst:
+ SRL16 generic map (
+ INIT => X"0000")
+ port map (
+ Q => dcm1_locked_del,
+ A0 => del_addr(0),
+ A1 => del_addr(1),
+ A2 => del_addr(2),
+ A3 => del_addr(3),
+ CLK => cpu_clk_int,
+ D => locked_int(0));
+
+ dcm2_reset <= not(dcm1_locked_del);
+
+ dcm3_rst:
+ SRL16 generic map (
+ INIT => X"0000")
+ port map (
+ Q => dcm2_locked_del,
+ A0 => del_addr(0),
+ A1 => del_addr(1),
+ A2 => del_addr(2),
+ A3 => del_addr(3),
+ CLK => cpu_clk_int,
+ D => locked_int(1));
+
+ dcm3_reset <= not(dcm2_locked_del);
+
+ cpu1_dcm:
+ DCM generic map (
+ CLKDV_DIVIDE => 2.0, -- Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
+ -- 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
+ CLKFX_DIVIDE => 1, -- Can be any interger from 1 to 32
+ CLKFX_MULTIPLY => 4, -- Can be any integer from 1 to 32
+ CLKIN_DIVIDE_BY_2 => FALSE, -- TRUE/FALSE to enable CLKIN divide by two feature
+ CLKIN_PERIOD => 15.625, -- Specify period of input clock
+ CLKOUT_PHASE_SHIFT => "NONE", -- Specify phase shift of NONE, FIXED or VARIABLE
+ CLK_FEEDBACK => "1X", -- Specify clock feedback of NONE, 1X or 2X
+ DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", -- SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or
+ -- an integer from 0 to 15
+ DFS_FREQUENCY_MODE => "LOW", -- HIGH or LOW frequency mode for frequency synthesis
+ DLL_FREQUENCY_MODE => "LOW", -- HIGH or LOW frequency mode for DLL
+ DUTY_CYCLE_CORRECTION => TRUE, -- Duty cycle correction, TRUE or FALSE
+ FACTORY_JF => X"8080", -- FACTORY JF Values
+ PHASE_SHIFT => 0, -- Amount of fixed phase shift from -255 to 255
+ STARTUP_WAIT => FALSE) -- Delay configuration DONE until DCM LOCK, TRUE/FALSE
+ port map (
+ CLK0 => dcm_cpu1, -- 0 degree DCM CLK ouptput
+ CLK180 => open, -- 180 degree DCM CLK output
+ CLK270 => open, -- 270 degree DCM CLK output
+ CLK2X => dcm_cpu2, -- 2X DCM CLK output
+ CLK2X180 => open, -- 2X, 180 degree DCM CLK out
+ CLK90 => open, -- 90 degree DCM CLK output
+ CLKDV => open, -- Divided DCM CLK out (CLKDV_DIVIDE)
+ CLKFX => open, -- DCM CLK synthesis out (M/D)
+ CLKFX180 => open, -- 180 degree CLK synthesis out
+ LOCKED => locked_int(0), -- DCM LOCK status output
+ PSDONE => open, -- Dynamic phase adjust done output
+ STATUS => open, -- 8-bit DCM status bits output
+ CLKFB => cpu_clk_int, -- DCM clock feedback
+ CLKIN => cpu_clk_in, -- Clock input (from IBUFG, BUFG or DCM)
+ PSCLK => low, -- Dynamic phase adjust clock input
+ PSEN => low, -- Dynamic phase adjust enable input
+ PSINCDEC => low, -- Dynamic phase adjust increment/decrement
+ RST => areset); -- DCM asynchronous reset input
+
+ cpu2_dcm:
+ DCM generic map (
+ CLKDV_DIVIDE => 2.0, -- Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
+ -- 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
+ CLKFX_DIVIDE => 1, -- Can be any interger from 1 to 32
+ CLKFX_MULTIPLY => 4, -- Can be any integer from 1 to 32
+ CLKIN_DIVIDE_BY_2 => FALSE, -- TRUE/FALSE to enable CLKIN divide by two feature
+ CLKIN_PERIOD => 7.8125, -- Specify period of input clock
+ CLKOUT_PHASE_SHIFT => "NONE", -- Specify phase shift of NONE, FIXED or VARIABLE
+ CLK_FEEDBACK => "1X", -- Specify clock feedback of NONE, 1X or 2X
+ DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", -- SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or
+ -- an integer from 0 to 15
+ DFS_FREQUENCY_MODE => "LOW", -- HIGH or LOW frequency mode for frequency synthesis
+ DLL_FREQUENCY_MODE => "LOW", -- HIGH or LOW frequency mode for DLL
+ DUTY_CYCLE_CORRECTION => TRUE, -- Duty cycle correction, TRUE or FALSE
+ FACTORY_JF => X"8080", -- FACTORY JF Values
+ PHASE_SHIFT => 0, -- Amount of fixed phase shift from -255 to 255
+ STARTUP_WAIT => FALSE) -- Delay configuration DONE until DCM LOCK, TRUE/FALSE
+ port map (
+ CLK0 => dcm_cpu2_dum, -- 0 degree DCM CLK ouptput
+ CLK180 => open, -- 180 degree DCM CLK output
+ CLK270 => open, -- 270 degree DCM CLK output
+ CLK2X => dcm_cpu4, -- 2X DCM CLK output
+ CLK2X180 => open, -- 2X, 180 degree DCM CLK out
+ CLK90 => open, -- 90 degree DCM CLK output
+ CLKDV => open, -- Divided DCM CLK out (CLKDV_DIVIDE)
+ CLKFX => open, -- DCM CLK synthesis out (M/D)
+ CLKFX180 => open, -- 180 degree CLK synthesis out
+ LOCKED => locked_int(1), -- DCM LOCK status output
+ PSDONE => open, -- Dynamic phase adjust done output
+ STATUS => open, -- 8-bit DCM status bits output
+ CLKFB => cpu_clk_2x_dum_int, -- DCM clock feedback
+ CLKIN => cpu_clk_2x_int, -- Clock input (from IBUFG, BUFG or DCM)
+ PSCLK => low, -- Dynamic phase adjust clock input
+ PSEN => low, -- Dynamic phase adjust enable input
+ PSINCDEC => low, -- Dynamic phase adjust increment/decrement
+ RST => dcm2_reset); -- DCM asynchronous reset input
+
+ ddr_read_dcm:
+ DCM generic map (
+ CLKDV_DIVIDE => 2.0, -- Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
+ -- 7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
+ CLKFX_DIVIDE => 1, -- Can be any interger from 1 to 32
+ CLKFX_MULTIPLY => 4, -- Can be any integer from 1 to 32
+ CLKIN_DIVIDE_BY_2 => FALSE, -- TRUE/FALSE to enable CLKIN divide by two feature
+ CLKIN_PERIOD => 7.8125, -- Specify period of input clock
+ CLKOUT_PHASE_SHIFT => "FIXED", -- Specify phase shift of NONE, FIXED or VARIABLE
+-- CLKOUT_PHASE_SHIFT => "NONE", -- Specify phase shift of NONE, FIXED or VARIABLE
+ CLK_FEEDBACK => "1X", -- Specify clock feedback of NONE, 1X or 2X
+ DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", -- SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or
+ -- an integer from 0 to 15
+ DFS_FREQUENCY_MODE => "LOW", -- HIGH or LOW frequency mode for frequency synthesis
+ DLL_FREQUENCY_MODE => "LOW", -- HIGH or LOW frequency mode for DLL
+ DUTY_CYCLE_CORRECTION => TRUE, -- Duty cycle correction, TRUE or FALSE
+ FACTORY_JF => X"8080", -- FACTORY JF Values
+ PHASE_SHIFT => 103, -- Amount of fixed phase shift from -255 to 255
+-- PHASE_SHIFT => 0, -- Amount of fixed phase shift from -255 to 255
+ STARTUP_WAIT => FALSE) -- Delay configuration DONE until DCM LOCK, TRUE/FALSE
+ port map (
+ CLK0 => dcm_ddr2, -- 0 degree DCM CLK ouptput
+ CLK180 => open, -- 180 degree DCM CLK output
+ CLK270 => open, -- 270 degree DCM CLK output
+ CLK2X => dcm_ddr2_2x, -- 2X DCM CLK output
+ CLK2X180 => open, -- 2X, 180 degree DCM CLK out
+ CLK90 => open, -- 90 degree DCM CLK output
+ CLKDV => open, -- Divided DCM CLK out (CLKDV_DIVIDE)
+ CLKFX => open, -- DCM CLK synthesis out (M/D)
+ CLKFX180 => open, -- 180 degree CLK synthesis out
+ LOCKED => locked_int(2), -- DCM LOCK status output
+ PSDONE => open, -- Dynamic phase adjust done output
+ STATUS => open, -- 8-bit DCM status bits output
+ CLKFB => ddr_in_clk_int, -- DCM clock feedback
+ CLKIN => sdr_clk_fb_in, -- Clock input (from IBUFG, BUFG or DCM)
+ PSCLK => low, -- Dynamic phase adjust clock input
+ PSEN => low, -- Dynamic phase adjust enable input
+ PSINCDEC => low, -- Dynamic phase adjust increment/decrement
+ RST => dcm3_reset); -- DCM asynchronous reset input
+
+ cpu1:
+ BUFG port map (
+ I => dcm_cpu1,
+ O => cpu_clk_int);
+
+ cpu2:
+ BUFG port map (
+ I => dcm_cpu2,
+ O => cpu_clk_2x_int);
+
+ cpu2_dum:
+ BUFG port map (
+ I => dcm_cpu2_dum,
+ O => cpu_clk_2x_dum_int);
+
+ cpu4:
+ BUFG port map (
+ I => dcm_cpu4,
+ O => cpu_clk_4x_int);
+
+ ddr_clk:
+ BUFG port map (
+ I => dcm_ddr2,
+ O => ddr_in_clk_int);
+
+ ddr_clk_2x:
+ BUFG port map (
+ I => dcm_ddr2_2x,
+ O => ddr_in_clk_2x_int);
+
+end behave;
\ No newline at end of file
Index: zpu/zpu4/src/trace.vhd
===================================================================
--- zpu/zpu4/src/trace.vhd (nonexistent)
+++ zpu/zpu4/src/trace.vhd (revision 93)
@@ -0,0 +1,117 @@
+-- ZPU
+--
+-- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+--
+-- The FreeBSD license
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+--
+-- 1. Redistributions of source code must retain the above copyright
+-- notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above
+-- copyright notice, this list of conditions and the following
+-- disclaimer in the documentation and/or other materials
+-- provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
+-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+-- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+-- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+-- The views and conclusions contained in the software and documentation
+-- are those of the authors and should not be interpreted as representing
+-- official policies, either expressed or implied, of the ZPU Project.
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+use std.textio.all;
+
+library work;
+use work.zpu_config.all;
+use work.zpupkg.all;
+use work.txt_util.all;
+
+
+entity trace is
+ generic (
+ log_file: string := "trace.txt"
+ );
+ port(
+ clk : in std_logic;
+ begin_inst : in std_logic;
+ pc : in std_logic_vector(maxAddrBitIncIO downto 0);
+ opcode : in std_logic_vector(7 downto 0);
+ sp : in std_logic_vector(maxAddrBitIncIO downto 2);
+ memA : in std_logic_vector(wordSize-1 downto 0);
+ memB : in std_logic_vector(wordSize-1 downto 0);
+ busy : in std_logic;
+ intSp : in std_logic_vector(stack_bits-1 downto 0)
+ );
+end trace;
+
+
+architecture behave of trace is
+
+
+file l_file : TEXT open write_mode is log_file;
+
+
+begin
+
+
+-- write data and control information to a file
+
+receive_data: process
+
+variable l: line;
+variable t : std_logic_vector(wordSize-1 downto 0);
+variable t2 : std_logic_vector(maxAddrBitIncIO downto 0);
+variable counter : unsigned(63 downto 0);
+
+
+
+begin
+
+ t:= (others => '0');
+ t2:= (others => '0');
+
+counter := (others => '0');
+ -- print header for the logfile
+ print(l_file, "#pc,opcode,sp,top_of_stack ");
+ print(l_file, "#----------");
+ print(l_file, " ");
+
+ wait until clk = '1';
+ wait until clk = '0';
+
+ while true loop
+
+ counter := counter + 1;
+ if begin_inst = '1' then
+ t(maxAddrBitIncIO downto 2):=sp;
+ t2:=pc;
+ print(l_file, "0x" & hstr(t2) & " 0x" & hstr(opcode) & " 0x" & hstr(t) & " 0x" & hstr(memA) & " 0x" & hstr(memB) & " 0x" & hstr(intSp) & " 0x" & hstr(std_logic_vector(counter)));
+ end if;
+
+ wait until clk = '0';
+
+ end loop;
+
+ end process receive_data;
+
+
+
+end behave;
+
Index: zpu/zpu4/core/zpupkg.vhd
===================================================================
--- zpu/zpu4/core/zpupkg.vhd (nonexistent)
+++ zpu/zpu4/core/zpupkg.vhd (revision 93)
@@ -0,0 +1,204 @@
+-- ZPU
+--
+-- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+--
+-- The FreeBSD license
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+--
+-- 1. Redistributions of source code must retain the above copyright
+-- notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above
+-- copyright notice, this list of conditions and the following
+-- disclaimer in the documentation and/or other materials
+-- provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
+-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+-- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+-- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+-- The views and conclusions contained in the software and documentation
+-- are those of the authors and should not be interpreted as representing
+-- official policies, either expressed or implied, of the ZPU Project.
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+
+library work;
+use work.zpu_config.all;
+
+package zpupkg is
+
+ -- This bit is set for read/writes to IO
+ -- FIX!!! eventually this should be set to wordSize-1 so as to
+ -- to make the address of IO independent of amount of memory
+ -- reserved for CPU. Requires trivial tweaks in toolchain/runtime
+ -- libraries.
+
+ constant byteBits : integer := wordPower-3; -- # of bits in a word that addresses bytes
+ constant maxAddrBit : integer := maxAddrBitIncIO-1;
+ constant ioBit : integer := maxAddrBit+1;
+ constant wordSize : integer := 2**wordPower;
+ constant wordBytes : integer := wordSize/8;
+ constant minAddrBit : integer := byteBits;
+ -- configurable internal stack size. Probably going to be 16 after toolchain is done
+ constant stack_bits : integer := 5;
+ constant stack_size : integer := 2**stack_bits;
+
+
+ component dualport_ram is
+ port (clk : in std_logic;
+ memAWriteEnable : in std_logic;
+ memAAddr : in std_logic_vector(maxAddrBitBRAM downto minAddrBit);
+ memAWrite : in std_logic_vector(wordSize-1 downto 0);
+ memARead : out std_logic_vector(wordSize-1 downto 0);
+ memBWriteEnable : in std_logic;
+ memBAddr : in std_logic_vector(maxAddrBitBRAM downto minAddrBit);
+ memBWrite : in std_logic_vector(wordSize-1 downto 0);
+ memBRead : out std_logic_vector(wordSize-1 downto 0));
+ end component;
+
+
+ component dram is
+ port (clk : in std_logic;
+ areset : in std_logic;
+ mem_writeEnable : in std_logic;
+ mem_readEnable : in std_logic;
+ mem_addr : in std_logic_vector(maxAddrBit downto 0);
+ mem_write : in std_logic_vector(wordSize-1 downto 0);
+ mem_read : out std_logic_vector(wordSize-1 downto 0);
+ mem_busy : out std_logic;
+ mem_writeMask : in std_logic_vector(wordBytes-1 downto 0));
+ end component;
+
+
+ component trace is
+ port(
+ clk : in std_logic;
+ begin_inst : in std_logic;
+ pc : in std_logic_vector(maxAddrBitIncIO downto 0);
+ opcode : in std_logic_vector(7 downto 0);
+ sp : in std_logic_vector(maxAddrBitIncIO downto minAddrBit);
+ memA : in std_logic_vector(wordSize-1 downto 0);
+ memB : in std_logic_vector(wordSize-1 downto 0);
+ busy : in std_logic;
+ intSp : in std_logic_vector(stack_bits-1 downto 0)
+ );
+ end component;
+
+ component zpu_core is
+ port ( clk : in std_logic;
+ areset : in std_logic;
+ enable : in std_logic;
+ in_mem_busy : in std_logic;
+ mem_read : in std_logic_vector(wordSize-1 downto 0);
+ mem_write : out std_logic_vector(wordSize-1 downto 0);
+ out_mem_addr : out std_logic_vector(maxAddrBitIncIO downto 0);
+ out_mem_writeEnable : out std_logic;
+ out_mem_readEnable : out std_logic;
+ mem_writeMask: out std_logic_vector(wordBytes-1 downto 0);
+ interrupt : in std_logic;
+ break : out std_logic);
+ end component;
+
+
+
+ component timer is
+ port(
+ clk : in std_logic;
+ areset : in std_logic;
+ we : in std_logic;
+ din : in std_logic_vector(7 downto 0);
+ adr : in std_logic_vector(2 downto 0);
+ dout : out std_logic_vector(7 downto 0));
+ end component;
+
+ component zpuio is
+ port ( areset : in std_logic;
+ cpu_clk : in std_logic;
+ clk_status : in std_logic_vector(2 downto 0);
+ cpu_din : in std_logic_vector(15 downto 0);
+ cpu_a : in std_logic_vector(20 downto 0);
+ cpu_we : in std_logic_vector(1 downto 0);
+ cpu_re : in std_logic;
+ cpu_dout : inout std_logic_vector(15 downto 0));
+ end component;
+
+
+
+
+ -- opcode decode constants
+ constant OpCode_Im : std_logic_vector(7 downto 7) := "1";
+ constant OpCode_StoreSP : std_logic_vector(7 downto 5) := "010";
+ constant OpCode_LoadSP : std_logic_vector(7 downto 5) := "011";
+ constant OpCode_Emulate : std_logic_vector(7 downto 5) := "001";
+ constant OpCode_AddSP : std_logic_vector(7 downto 4) := "0001";
+ constant OpCode_Short : std_logic_vector(7 downto 4) := "0000";
+
+ constant OpCode_Break : std_logic_vector(3 downto 0) := "0000";
+ constant OpCode_NA4 : std_logic_vector(3 downto 0) := "0001";
+ constant OpCode_PushSP : std_logic_vector(3 downto 0) := "0010";
+ constant OpCode_NA3 : std_logic_vector(3 downto 0) := "0011";
+
+ constant OpCode_PopPC : std_logic_vector(3 downto 0) := "0100";
+ constant OpCode_Add : std_logic_vector(3 downto 0) := "0101";
+ constant OpCode_And : std_logic_vector(3 downto 0) := "0110";
+ constant OpCode_Or : std_logic_vector(3 downto 0) := "0111";
+
+ constant OpCode_Load : std_logic_vector(3 downto 0) := "1000";
+ constant OpCode_Not : std_logic_vector(3 downto 0) := "1001";
+ constant OpCode_Flip : std_logic_vector(3 downto 0) := "1010";
+ constant OpCode_Nop : std_logic_vector(3 downto 0) := "1011";
+
+ constant OpCode_Store : std_logic_vector(3 downto 0) := "1100";
+ constant OpCode_PopSP : std_logic_vector(3 downto 0) := "1101";
+ constant OpCode_NA2 : std_logic_vector(3 downto 0) := "1110";
+ constant OpCode_NA : std_logic_vector(3 downto 0) := "1111";
+
+ constant OpCode_Lessthan : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(36, 6));
+ constant OpCode_Lessthanorequal : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(37, 6));
+ constant OpCode_Ulessthan : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(38, 6));
+ constant OpCode_Ulessthanorequal : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(39, 6));
+
+ constant OpCode_Swap : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(40, 6));
+ constant OpCode_Mult : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(41, 6));
+
+ constant OpCode_Lshiftright : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(42, 6));
+ constant OpCode_Ashiftleft : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(43, 6));
+ constant OpCode_Ashiftright : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(44, 6));
+ constant OpCode_Call : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(45, 6));
+
+ constant OpCode_Eq : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(46, 6));
+ constant OpCode_Neq : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(47, 6));
+
+ constant OpCode_Sub : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(49, 6));
+ constant OpCode_Loadb : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(51, 6));
+ constant OpCode_Storeb : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(52, 6));
+
+ constant OpCode_Eqbranch : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(55, 6));
+ constant OpCode_Neqbranch : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(56, 6));
+ constant OpCode_Poppcrel : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(57, 6));
+
+ constant OpCode_Pushspadd : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(61, 6));
+ constant OpCode_Mult16x16 : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(62, 6));
+ constant OpCode_Callpcrel : std_logic_vector(5 downto 0) := std_logic_vector(to_unsigned(63, 6));
+
+
+
+ constant OpCode_Size : integer := 8;
+
+
+
+end zpupkg;
Index: zpu/zpu4/core/zpu_config.vhd
===================================================================
--- zpu/zpu4/core/zpu_config.vhd (nonexistent)
+++ zpu/zpu4/core/zpu_config.vhd (revision 93)
@@ -0,0 +1,57 @@
+-- ZPU
+--
+-- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+--
+-- The FreeBSD license
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+--
+-- 1. Redistributions of source code must retain the above copyright
+-- notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above
+-- copyright notice, this list of conditions and the following
+-- disclaimer in the documentation and/or other materials
+-- provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
+-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+-- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+-- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+-- The views and conclusions contained in the software and documentation
+-- are those of the authors and should not be interpreted as representing
+-- official policies, either expressed or implied, of the ZPU Project.
+
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.std_logic_arith.all;
+
+package zpu_config is
+ -- generate trace output or not.
+ constant Generate_Trace : boolean := false;
+ constant wordPower : integer := 5;
+ -- during simulation, set this to '0' to get matching trace.txt
+ constant DontCareValue : std_logic := 'X';
+ -- Clock frequency in MHz.
+ constant ZPU_Frequency : std_logic_vector(7 downto 0) := x"64";
+ -- This is the msb address bit. bytes=2^(maxAddrBitIncIO+1)
+ constant maxAddrBitIncIO : integer := 15;
+ constant maxAddrBitBRAM : integer := 14;
+
+ -- start byte address of stack.
+ -- point to top of RAM - 2*words
+ constant spStart : std_logic_vector(maxAddrBitIncIO downto 0) :=
+ conv_std_logic_vector((2**(maxAddrBitBRAM+1))-8, maxAddrBitIncIO+1);
+end zpu_config;
Index: zpu/zpu4/core/zpu_core.vhd
===================================================================
--- zpu/zpu4/core/zpu_core.vhd (nonexistent)
+++ zpu/zpu4/core/zpu_core.vhd (revision 93)
@@ -0,0 +1,957 @@
+-- ZPU
+--
+-- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+-- Copyright 2008 alvieboy - Álvaro Lopes - alvieboy@alvie.com
+--
+-- The FreeBSD license
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+--
+-- 1. Redistributions of source code must retain the above copyright
+-- notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above
+-- copyright notice, this list of conditions and the following
+-- disclaimer in the documentation and/or other materials
+-- provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
+-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+-- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+-- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+-- The views and conclusions contained in the software and documentation
+-- are those of the authors and should not be interpreted as representing
+-- official policies, either expressed or implied, of the ZPU Project.
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+
+library work;
+use work.zpu_config.all;
+use work.zpupkg.all;
+
+
+-- mem_writeEnable - set to '1' for a single cycle to send off a write request.
+-- mem_write is valid only while mem_writeEnable='1'.
+-- mem_readEnable - set to '1' for a single cycle to send off a read request.
+--
+-- mem_busy - It is illegal to send off a read/write request when mem_busy='1'.
+-- Set to '0' when mem_read is valid after a read request.
+-- If it goes to '1'(busy), it is on the cycle after mem_read/writeEnable
+-- is '1'.
+-- mem_addr - address for read/write request
+-- mem_read - read data. Valid only on the cycle after mem_busy='0' after
+-- mem_readEnable='1' for a single cycle.
+-- mem_write - data to write
+-- mem_writeMask - set to '1' for those bits that are to be written to memory upon
+-- write request
+-- break - set to '1' when CPU hits break instruction
+-- interrupt - set to '1' until interrupts are cleared by CPU.
+
+
+
+
+entity zpu_core is
+ Port ( clk : in std_logic;
+ areset : in std_logic;
+ enable : in std_logic;
+ in_mem_busy : in std_logic;
+ mem_read : in std_logic_vector(wordSize-1 downto 0);
+ mem_write : out std_logic_vector(wordSize-1 downto 0);
+ out_mem_addr : out std_logic_vector(maxAddrBitIncIO downto 0);
+ out_mem_writeEnable : out std_logic;
+ out_mem_readEnable : out std_logic;
+ mem_writeMask: out std_logic_vector(wordBytes-1 downto 0);
+ interrupt : in std_logic;
+ break : out std_logic);
+end zpu_core;
+
+architecture behave of zpu_core is
+
+type InsnType is
+(
+State_AddTop,
+State_Dup,
+State_DupStackB,
+State_Pop,
+State_Popdown,
+State_Add,
+State_Or,
+State_And,
+State_Store,
+State_AddSP,
+State_Shift,
+State_Nop,
+State_Im,
+State_LoadSP,
+State_StoreSP,
+State_Emulate,
+State_Load,
+State_PushPC,
+State_PushSP,
+State_PopPC,
+State_PopPCRel,
+State_Not,
+State_Flip,
+State_PopSP,
+State_Neqbranch,
+State_Eq,
+State_Loadb,
+State_Mult,
+State_Lessthan,
+State_Lessthanorequal,
+State_Ulessthanorequal,
+State_Ulessthan,
+State_Pushspadd,
+State_Call,
+State_Callpcrel,
+State_Sub,
+State_Break,
+State_Storeb,
+State_InsnFetch
+);
+
+type StateType is
+(
+State_Load2,
+State_Popped,
+State_LoadSP2,
+State_LoadSP3,
+State_AddSP2,
+State_Fetch,
+State_Execute,
+State_Decode,
+State_Decode2,
+State_Resync,
+
+State_StoreSP2,
+State_Resync2,
+State_Resync3,
+State_Loadb2,
+State_Storeb2,
+State_Mult2,
+State_Mult3,
+State_Mult5,
+State_Mult4,
+State_BinaryOpResult2,
+State_BinaryOpResult,
+State_Idle,
+State_Interrupt
+);
+
+
+signal pc : unsigned(maxAddrBitIncIO downto 0);
+signal sp : unsigned(maxAddrBitIncIO downto minAddrBit);
+signal incSp : unsigned(maxAddrBitIncIO downto minAddrBit);
+signal incIncSp : unsigned(maxAddrBitIncIO downto minAddrBit);
+signal decSp : unsigned(maxAddrBitIncIO downto minAddrBit);
+signal stackA : unsigned(wordSize-1 downto 0);
+signal binaryOpResult : unsigned(wordSize-1 downto 0);
+signal binaryOpResult2 : unsigned(wordSize-1 downto 0);
+signal multResult2 : unsigned(wordSize-1 downto 0);
+signal multResult3 : unsigned(wordSize-1 downto 0);
+signal multResult : unsigned(wordSize-1 downto 0);
+signal multA : unsigned(wordSize-1 downto 0);
+signal multB : unsigned(wordSize-1 downto 0);
+signal stackB : unsigned(wordSize-1 downto 0);
+signal idim_flag : std_logic;
+signal busy : std_logic;
+signal mem_writeEnable : std_logic;
+signal mem_readEnable : std_logic;
+signal mem_addr : std_logic_vector(maxAddrBitIncIO downto minAddrBit);
+signal mem_delayAddr : std_logic_vector(maxAddrBitIncIO downto minAddrBit);
+signal mem_delayReadEnable : std_logic;
+
+signal inInterrupt: std_logic;
+
+signal decodeWord : std_logic_vector(wordSize-1 downto 0);
+
+
+signal state : StateType;
+signal insn : InsnType;
+type InsnArray is array(0 to wordBytes-1) of InsnType;
+signal decodedOpcode : InsnArray;
+
+type OpcodeArray is array(0 to wordBytes-1) of std_logic_vector(7 downto 0);
+
+signal opcode : OpcodeArray;
+
+
+
+
+signal begin_inst : std_logic;
+signal trace_opcode : std_logic_vector(7 downto 0);
+signal trace_pc : std_logic_vector(maxAddrBitIncIO downto 0);
+signal trace_sp : std_logic_vector(maxAddrBitIncIO downto minAddrBit);
+signal trace_topOfStack : std_logic_vector(wordSize-1 downto 0);
+signal trace_topOfStackB : std_logic_vector(wordSize-1 downto 0);
+
+-- state machine.
+
+begin
+
+
+ traceFileGenerate:
+ if Generate_Trace generate
+ trace_file: trace port map (
+ clk => clk,
+ begin_inst => begin_inst,
+ pc => trace_pc,
+ opcode => trace_opcode,
+ sp => trace_sp,
+ memA => trace_topOfStack,
+ memB => trace_topOfStackB,
+ busy => busy,
+ intsp => (others => 'U')
+ );
+ end generate;
+
+
+ -- the memory subsystem will tell us one cycle later whether or
+ -- not it is busy
+ out_mem_writeEnable <= mem_writeEnable;
+ out_mem_readEnable <= mem_readEnable;
+ out_mem_addr(maxAddrBitIncIO downto minAddrBit) <= mem_addr;
+ out_mem_addr(minAddrBit-1 downto 0) <= (others => '0');
+
+ incSp <= sp + 1;
+ incIncSp <= sp + 2;
+ decSp <= sp - 1;
+
+
+ opcodeControl:
+ process(clk, areset)
+ variable tOpcode : std_logic_vector(OpCode_Size-1 downto 0);
+ variable spOffset : unsigned(4 downto 0);
+ variable tSpOffset : unsigned(4 downto 0);
+ variable nextPC : unsigned(maxAddrBitIncIO downto 0);
+ variable tNextState : InsnType;
+ variable tDecodedOpcode : InsnArray;
+ variable tMultResult : unsigned(wordSize*2-1 downto 0);
+ begin
+ if areset = '1' then
+ state <= State_Idle;
+ break <= '0';
+ sp <= unsigned(spStart(maxAddrBitIncIO downto minAddrBit));
+
+ pc <= (others => '0');
+ idim_flag <= '0';
+ begin_inst <= '0';
+ inInterrupt <= '0';
+ mem_writeEnable <= '0';
+ mem_readEnable <= '0';
+ multA <= (others => '0');
+ multB <= (others => '0');
+ mem_writeMask <= (others => '1');
+ elsif (clk'event and clk = '1') then
+ -- we must multiply unconditionally to get pipelined multiplication
+ tMultResult := multA * multB;
+ multResult3 <= multResult2;
+ multResult2 <= multResult;
+ multResult <= tMultResult(wordSize-1 downto 0);
+
+
+ binaryOpResult2 <= binaryOpResult; -- pipeline a bit.
+
+
+ multA <= (others => DontCareValue);
+ multB <= (others => DontCareValue);
+
+
+ mem_addr <= (others => DontCareValue);
+ mem_readEnable <='0';
+ mem_writeEnable <='0';
+ mem_write <= (others => DontCareValue);
+
+ if (mem_writeEnable = '1') and (mem_readEnable = '1') then
+ report "read/write collision" severity failure;
+ end if;
+
+
+
+
+ spOffset(4):=not opcode(to_integer(pc(byteBits-1 downto 0)))(4);
+ spOffset(3 downto 0):=unsigned(opcode(to_integer(pc(byteBits-1 downto 0)))(3 downto 0));
+ nextPC := pc + 1;
+
+ -- prepare trace snapshot
+ trace_opcode <= opcode(to_integer(pc(byteBits-1 downto 0)));
+ trace_pc <= std_logic_vector(pc);
+ trace_sp <= std_logic_vector(sp);
+ trace_topOfStack <= std_logic_vector(stackA);
+ trace_topOfStackB <= std_logic_vector(stackB);
+ begin_inst <= '0';
+
+ if (interrupt='0') then
+ -- Interrupt ended, we can serve ISR again
+ inInterrupt <= '0';
+ end if;
+
+ case state is
+ when State_Idle =>
+ if enable='1' then
+ state <= State_Resync;
+ end if;
+ -- Initial state of ZPU, fetch top of stack + first instruction
+ when State_Resync =>
+ if in_mem_busy='0' then
+ mem_addr <= std_logic_vector(sp);
+ mem_readEnable <= '1';
+ state <= State_Resync2;
+ end if;
+ when State_Resync2 =>
+ if in_mem_busy='0' then
+ stackA <= unsigned(mem_read);
+ mem_addr <= std_logic_vector(incSp);
+ mem_readEnable <= '1';
+ state <= State_Resync3;
+ end if;
+ when State_Resync3 =>
+ if in_mem_busy='0' then
+ stackB <= unsigned(mem_read);
+ mem_addr <= std_logic_vector(pc(maxAddrBitIncIO downto minAddrBit));
+ mem_readEnable <= '1';
+ state <= State_Decode;
+ end if;
+ when State_Decode =>
+ if in_mem_busy='0' then
+ decodeWord <= mem_read;
+ state <= State_Decode2;
+ -- Do not recurse into ISR while interrupt line is active
+ if interrupt='1' and inInterrupt='0' and idim_flag='0' then
+ -- We got an interrupt, execute interrupt instead of next instruction
+ inInterrupt <= '1';
+ sp <= decSp;
+ mem_writeEnable <= '1';
+ mem_addr <= std_logic_vector(incSp);
+ mem_write <= std_logic_vector(stackB);
+ stackA <= (others => DontCareValue);
+ stackA(maxAddrBitIncIO downto 0) <= pc;
+ stackB <= stackA;
+ pc <= to_unsigned(32, maxAddrBitIncIO+1);
+ state <= State_Interrupt;
+ end if;
+ end if;
+ when State_Interrupt =>
+ if in_mem_busy='0' then
+ mem_addr <= std_logic_vector(pc(maxAddrBitIncIO downto minAddrBit));
+ mem_readEnable <= '1';
+ state <= State_Decode;
+ report "ZPU jumped to interrupt!" severity note;
+ end if;
+ when State_Decode2 =>
+ -- decode 4 instructions in parallel
+ for i in 0 to wordBytes-1 loop
+ tOpcode := decodeWord((wordBytes-1-i+1)*8-1 downto (wordBytes-1-i)*8);
+
+ tSpOffset(4):=not tOpcode(4);
+ tSpOffset(3 downto 0):=unsigned(tOpcode(3 downto 0));
+
+ opcode(i) <= tOpcode;
+ if (tOpcode(7 downto 7)=OpCode_Im) then
+ tNextState:=State_Im;
+ elsif (tOpcode(7 downto 5)=OpCode_StoreSP) then
+ if tSpOffset = 0 then
+ tNextState := State_Pop;
+ elsif tSpOffset=1 then
+ tNextState := State_PopDown;
+ else
+ tNextState :=State_StoreSP;
+ end if;
+ elsif (tOpcode(7 downto 5)=OpCode_LoadSP) then
+ if tSpOffset = 0 then
+ tNextState :=State_Dup;
+ elsif tSpOffset = 1 then
+ tNextState :=State_DupStackB;
+ else
+ tNextState :=State_LoadSP;
+ end if;
+ elsif (tOpcode(7 downto 5)=OpCode_Emulate) then
+ tNextState :=State_Emulate;
+ if tOpcode(5 downto 0)=OpCode_Neqbranch then
+ tNextState :=State_Neqbranch;
+ elsif tOpcode(5 downto 0)=OpCode_Eq then
+ tNextState :=State_Eq;
+ elsif tOpcode(5 downto 0)=OpCode_Lessthan then
+ tNextState :=State_Lessthan;
+ elsif tOpcode(5 downto 0)=OpCode_Lessthanorequal then
+ --tNextState :=State_Lessthanorequal;
+ elsif tOpcode(5 downto 0)=OpCode_Ulessthan then
+ tNextState :=State_Ulessthan;
+ elsif tOpcode(5 downto 0)=OpCode_Ulessthanorequal then
+ --tNextState :=State_Ulessthanorequal;
+ elsif tOpcode(5 downto 0)=OpCode_Loadb then
+ tNextState :=State_Loadb;
+ elsif tOpcode(5 downto 0)=OpCode_Mult then
+ tNextState :=State_Mult;
+ elsif tOpcode(5 downto 0)=OpCode_Storeb then
+ tNextState :=State_Storeb;
+ elsif tOpcode(5 downto 0)=OpCode_Pushspadd then
+ tNextState :=State_Pushspadd;
+ elsif tOpcode(5 downto 0)=OpCode_Callpcrel then
+ tNextState :=State_Callpcrel;
+ elsif tOpcode(5 downto 0)=OpCode_Call then
+ --tNextState :=State_Call;
+ elsif tOpcode(5 downto 0)=OpCode_Sub then
+ tNextState :=State_Sub;
+ elsif tOpcode(5 downto 0)=OpCode_PopPCRel then
+ --tNextState :=State_PopPCRel;
+ end if;
+ elsif (tOpcode(7 downto 4)=OpCode_AddSP) then
+ if tSpOffset = 0 then
+ tNextState := State_Shift;
+ elsif tSpOffset = 1 then
+ tNextState := State_AddTop;
+ else
+ tNextState :=State_AddSP;
+ end if;
+ else
+ case tOpcode(3 downto 0) is
+ when OpCode_Nop =>
+ tNextState :=State_Nop;
+ when OpCode_PushSP =>
+ tNextState :=State_PushSP;
+ when OpCode_PopPC =>
+ tNextState :=State_PopPC;
+ when OpCode_Add =>
+ tNextState :=State_Add;
+ when OpCode_Or =>
+ tNextState :=State_Or;
+ when OpCode_And =>
+ tNextState :=State_And;
+ when OpCode_Load =>
+ tNextState :=State_Load;
+ when OpCode_Not =>
+ tNextState :=State_Not;
+ when OpCode_Flip =>
+ tNextState :=State_Flip;
+ when OpCode_Store =>
+ tNextState :=State_Store;
+ when OpCode_PopSP =>
+ tNextState :=State_PopSP;
+ when others =>
+ tNextState := State_Break;
+
+ end case;
+ end if;
+ tDecodedOpcode(i) := tNextState;
+
+ end loop;
+
+ insn <= tDecodedOpcode(to_integer(pc(byteBits-1 downto 0)));
+
+ -- once we wrap, we need to fetch
+ tDecodedOpcode(0) := State_InsnFetch;
+
+ decodedOpcode <= tDecodedOpcode;
+ state <= State_Execute;
+
+
+
+ -- Each instruction must:
+ --
+ -- 1. set idim_flag
+ -- 2. increase pc if applicable
+ -- 3. set next state if appliable
+ -- 4. do it's operation
+
+ when State_Execute =>
+ insn <= decodedOpcode(to_integer(nextPC(byteBits-1 downto 0)));
+
+ case insn is
+ when State_InsnFetch =>
+ state <= State_Fetch;
+ when State_Im =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '1';
+ pc <= pc + 1;
+
+ if idim_flag='1' then
+ stackA(wordSize-1 downto 7) <= stackA(wordSize-8 downto 0);
+ stackA(6 downto 0) <= unsigned(opcode(to_integer(pc(byteBits-1 downto 0)))(6 downto 0));
+ else
+ mem_writeEnable <= '1';
+ mem_addr <= std_logic_vector(incSp);
+ mem_write <= std_logic_vector(stackB);
+ stackB <= stackA;
+ sp <= decSp;
+ for i in wordSize-1 downto 7 loop
+ stackA(i) <= opcode(to_integer(pc(byteBits-1 downto 0)))(6);
+ end loop;
+ stackA(6 downto 0) <= unsigned(opcode(to_integer(pc(byteBits-1 downto 0)))(6 downto 0));
+ end if;
+ end if;
+ when State_StoreSP =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ state <= State_StoreSP2;
+
+ mem_writeEnable <= '1';
+ mem_addr <= std_logic_vector(sp+spOffset);
+ mem_write <= std_logic_vector(stackA);
+ stackA <= stackB;
+ sp <= incSp;
+ end if;
+
+
+ when State_LoadSP =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ state <= State_LoadSP2;
+
+ sp <= decSp;
+ mem_writeEnable <= '1';
+ mem_addr <= std_logic_vector(incSp);
+ mem_write <= std_logic_vector(stackB);
+ end if;
+ when State_Emulate =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ sp <= decSp;
+ mem_writeEnable <= '1';
+ mem_addr <= std_logic_vector(incSp);
+ mem_write <= std_logic_vector(stackB);
+ stackA <= (others => DontCareValue);
+ stackA(maxAddrBitIncIO downto 0) <= pc + 1;
+ stackB <= stackA;
+
+ -- The emulate address is:
+ -- 98 7654 3210
+ -- 0000 00aa aaa0 0000
+ pc <= (others => '0');
+ pc(9 downto 5) <= unsigned(opcode(to_integer(pc(byteBits-1 downto 0)))(4 downto 0));
+ state <= State_Fetch;
+ end if;
+ when State_Callpcrel =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ stackA <= (others => DontCareValue);
+ stackA(maxAddrBitIncIO downto 0) <= pc + 1;
+
+ pc <= pc + stackA(maxAddrBitIncIO downto 0);
+ state <= State_Fetch;
+ end if;
+ when State_Call =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ stackA <= (others => DontCareValue);
+ stackA(maxAddrBitIncIO downto 0) <= pc + 1;
+ pc <= stackA(maxAddrBitIncIO downto 0);
+ state <= State_Fetch;
+ end if;
+ when State_AddSP =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ state <= State_AddSP2;
+
+ mem_readEnable <= '1';
+ mem_addr <= std_logic_vector(sp+spOffset);
+ end if;
+ when State_PushSP =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ pc <= pc + 1;
+
+ sp <= decSp;
+ stackA <= (others => '0');
+ stackA(maxAddrBitIncIO downto minAddrBit) <= sp;
+ stackB <= stackA;
+ mem_writeEnable <= '1';
+ mem_addr <= std_logic_vector(incSp);
+ mem_write <= std_logic_vector(stackB);
+ end if;
+ when State_PopPC =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ pc <= stackA(maxAddrBitIncIO downto 0);
+ sp <= incSp;
+
+ mem_writeEnable <= '1';
+ mem_addr <= std_logic_vector(incSp);
+ mem_write <= std_logic_vector(stackB);
+ state <= State_Resync;
+ end if;
+ when State_PopPCRel =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ pc <= stackA(maxAddrBitIncIO downto 0) + pc;
+ sp <= incSp;
+
+ mem_writeEnable <= '1';
+ mem_addr <= std_logic_vector(incSp);
+ mem_write <= std_logic_vector(stackB);
+ state <= State_Resync;
+ end if;
+ when State_Add =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ stackA <= stackA + stackB;
+
+ mem_readEnable <= '1';
+ mem_addr <= std_logic_vector(incIncSp);
+ sp <= incSp;
+ state <= State_Popped;
+ end if;
+ when State_Sub =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ binaryOpResult <= stackB - stackA;
+ state <= State_BinaryOpResult;
+ end if;
+ when State_Pop =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ mem_addr <= std_logic_vector(incIncSp);
+ mem_readEnable <= '1';
+ sp <= incSp;
+ stackA <= stackB;
+ state <= State_Popped;
+ end if;
+ when State_PopDown =>
+ if in_mem_busy='0' then
+ -- PopDown leaves top of stack unchanged
+ begin_inst <= '1';
+ idim_flag <= '0';
+ mem_addr <= std_logic_vector(incIncSp);
+ mem_readEnable <= '1';
+ sp <= incSp;
+ state <= State_Popped;
+ end if;
+ when State_Or =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ stackA <= stackA or stackB;
+ mem_readEnable <= '1';
+ mem_addr <= std_logic_vector(incIncSp);
+ sp <= incSp;
+ state <= State_Popped;
+ end if;
+ when State_And =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+
+ stackA <= stackA and stackB;
+ mem_readEnable <= '1';
+ mem_addr <= std_logic_vector(incIncSp);
+ sp <= incSp;
+ state <= State_Popped;
+ end if;
+ when State_Eq =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+
+ binaryOpResult <= (others => '0');
+ if (stackA=stackB) then
+ binaryOpResult(0) <= '1';
+ end if;
+ state <= State_BinaryOpResult;
+ end if;
+ when State_Ulessthan =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+
+ binaryOpResult <= (others => '0');
+ if (stackA
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+
+ binaryOpResult <= (others => '0');
+ if (stackA<=stackB) then
+ binaryOpResult(0) <= '1';
+ end if;
+ state <= State_BinaryOpResult;
+ end if;
+ when State_Lessthan =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+
+ binaryOpResult <= (others => '0');
+ if (signed(stackA)
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+
+ binaryOpResult <= (others => '0');
+ if (signed(stackA)<=signed(stackB)) then
+ binaryOpResult(0) <= '1';
+ end if;
+ state <= State_BinaryOpResult;
+ end if;
+ when State_Load =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ state <= State_Load2;
+
+ mem_addr <= std_logic_vector(stackA(maxAddrBitIncIO downto minAddrBit));
+ mem_readEnable <= '1';
+ end if;
+
+ when State_Dup =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ pc <= pc + 1;
+
+ sp <= decSp;
+ stackB <= stackA;
+ mem_write <= std_logic_vector(stackB);
+ mem_addr <= std_logic_vector(incSp);
+ mem_writeEnable <= '1';
+ end if;
+ when State_DupStackB =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ pc <= pc + 1;
+
+ sp <= decSp;
+ stackA <= stackB;
+ stackB <= stackA;
+ mem_write <= std_logic_vector(stackB);
+ mem_addr <= std_logic_vector(incSp);
+ mem_writeEnable <= '1';
+ end if;
+ when State_Store =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ pc <= pc + 1;
+ mem_addr <= std_logic_vector(stackA(maxAddrBitIncIO downto minAddrBit));
+ mem_write <= std_logic_vector(stackB);
+ mem_writeEnable <= '1';
+ sp <= incIncSp;
+ state <= State_Resync;
+ end if;
+ when State_PopSP =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ pc <= pc + 1;
+
+ mem_write <= std_logic_vector(stackB);
+ mem_addr <= std_logic_vector(incSp);
+ mem_writeEnable <= '1';
+ sp <= stackA(maxAddrBitIncIO downto minAddrBit);
+ state <= State_Resync;
+ end if;
+ when State_Nop =>
+ begin_inst <= '1';
+ idim_flag <= '0';
+ pc <= pc + 1;
+ when State_Not =>
+ begin_inst <= '1';
+ idim_flag <= '0';
+ pc <= pc + 1;
+
+ stackA <= not stackA;
+ when State_Flip =>
+ begin_inst <= '1';
+ idim_flag <= '0';
+ pc <= pc + 1;
+
+ for i in 0 to wordSize-1 loop
+ stackA(i) <= stackA(wordSize-1-i);
+ end loop;
+ when State_AddTop =>
+ begin_inst <= '1';
+ idim_flag <= '0';
+ pc <= pc + 1;
+
+ stackA <= stackA + stackB;
+ when State_Shift =>
+ begin_inst <= '1';
+ idim_flag <= '0';
+ pc <= pc + 1;
+
+ stackA(wordSize-1 downto 1) <= stackA(wordSize-2 downto 0);
+ stackA(0) <= '0';
+ when State_Pushspadd =>
+ begin_inst <= '1';
+ idim_flag <= '0';
+ pc <= pc + 1;
+
+ stackA <= (others => '0');
+ stackA(maxAddrBitIncIO downto minAddrBit) <= stackA(maxAddrBitIncIO-minAddrBit downto 0)+sp;
+ when State_Neqbranch =>
+ -- branches are almost always taken as they form loops
+ begin_inst <= '1';
+ idim_flag <= '0';
+ sp <= incIncSp;
+ if (stackB/=0) then
+ pc <= stackA(maxAddrBitIncIO downto 0) + pc;
+ else
+ pc <= pc + 1;
+ end if;
+ -- need to fetch stack again.
+ state <= State_Resync;
+ when State_Mult =>
+ begin_inst <= '1';
+ idim_flag <= '0';
+
+ multA <= stackA;
+ multB <= stackB;
+ state <= State_Mult2;
+ when State_Break =>
+ report "Break instruction encountered" severity failure;
+ break <= '1';
+
+ when State_Loadb =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ state <= State_Loadb2;
+
+ mem_addr <= std_logic_vector(stackA(maxAddrBitIncIO downto minAddrBit));
+ mem_readEnable <= '1';
+ end if;
+ when State_Storeb =>
+ if in_mem_busy='0' then
+ begin_inst <= '1';
+ idim_flag <= '0';
+ state <= State_Storeb2;
+
+ mem_addr <= std_logic_vector(stackA(maxAddrBitIncIO downto minAddrBit));
+ mem_readEnable <= '1';
+ end if;
+
+ when others =>
+ sp <= (others => DontCareValue);
+ report "Illegal instruction" severity failure;
+ break <= '1';
+ end case;
+
+
+ when State_StoreSP2 =>
+ if in_mem_busy='0' then
+ mem_addr <= std_logic_vector(incSp);
+ mem_readEnable <= '1';
+ state <= State_Popped;
+ end if;
+ when State_LoadSP2 =>
+ if in_mem_busy='0' then
+ state <= State_LoadSP3;
+ mem_readEnable <= '1';
+ mem_addr <= std_logic_vector(sp+spOffset+1);
+ end if;
+ when State_LoadSP3 =>
+ if in_mem_busy='0' then
+ pc <= pc + 1;
+ state <= State_Execute;
+ stackB <= stackA;
+ stackA <= unsigned(mem_read);
+ end if;
+ when State_AddSP2 =>
+ if in_mem_busy='0' then
+ pc <= pc + 1;
+ state <= State_Execute;
+ stackA <= stackA + unsigned(mem_read);
+ end if;
+ when State_Load2 =>
+ if in_mem_busy='0' then
+ stackA <= unsigned(mem_read);
+ pc <= pc + 1;
+ state <= State_Execute;
+ end if;
+ when State_Loadb2 =>
+ if in_mem_busy='0' then
+ stackA <= (others => '0');
+ stackA(7 downto 0) <= unsigned(mem_read(((wordBytes-1-to_integer(stackA(byteBits-1 downto 0)))*8+7) downto (wordBytes-1-to_integer(stackA(byteBits-1 downto 0)))*8));
+ pc <= pc + 1;
+ state <= State_Execute;
+ end if;
+ when State_Storeb2 =>
+ if in_mem_busy='0' then
+ mem_addr <= std_logic_vector(stackA(maxAddrBitIncIO downto minAddrBit));
+ mem_write <= mem_read;
+ mem_write(((wordBytes-1-to_integer(stackA(byteBits-1 downto 0)))*8+7) downto (wordBytes-1-to_integer(stackA(byteBits-1 downto 0)))*8) <= std_logic_vector(stackB(7 downto 0));
+ mem_writeEnable <= '1';
+ pc <= pc + 1;
+ sp <= incIncSp;
+ state <= State_Resync;
+ end if;
+ when State_Fetch =>
+ if in_mem_busy='0' then
+ mem_addr <= std_logic_vector(pc(maxAddrBitIncIO downto minAddrBit));
+ mem_readEnable <= '1';
+ state <= State_Decode;
+ end if;
+ when State_Mult2 =>
+ state <= State_Mult3;
+ when State_Mult3 =>
+ state <= State_Mult4;
+ when State_Mult4 =>
+ state <= State_Mult5;
+ when State_Mult5 =>
+ if in_mem_busy='0' then
+ stackA <= multResult3;
+ mem_readEnable <= '1';
+ mem_addr <= std_logic_vector(incIncSp);
+ sp <= incSp;
+ state <= State_Popped;
+ end if;
+ when State_BinaryOpResult =>
+ state <= State_BinaryOpResult2;
+ when State_BinaryOpResult2 =>
+ mem_readEnable <= '1';
+ mem_addr <= std_logic_vector(incIncSp);
+ sp <= incSp;
+ stackA <= binaryOpResult2;
+ state <= State_Popped;
+ when State_Popped =>
+ if in_mem_busy='0' then
+ pc <= pc + 1;
+ stackB <= unsigned(mem_read);
+ state <= State_Execute;
+ end if;
+ when others =>
+ sp <= (others => DontCareValue);
+ report "Illegal state" severity failure;
+ break <= '1';
+ end case;
+ end if;
+ end process;
+
+
+
+end behave;
Index: zpu/zpu4/core/histogram.perl
===================================================================
--- zpu/zpu4/core/histogram.perl (nonexistent)
+++ zpu/zpu4/core/histogram.perl (revision 93)
@@ -0,0 +1,218 @@
+#!/usr/bin/perl
+##############################################################################
+#
+# Copyright (c) 2008 Salvador E. Tropea
+# Copyright (c) 2008 Instituto Nacional de Tecnología Industrial
+#
+##############################################################################
+#
+# Target: Any
+# Language: Perl
+# Interpreter used: v5.6.1/v5.8.4
+# Text editor: SETEdit 0.5.5
+#
+##############################################################################
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA
+#
+##############################################################################
+#
+# Description: Takes a ZPU trace and does some raw stats about opcodes
+# frequency and speed.
+#
+##############################################################################
+#
+# TODO
+#
+# A lot ...
+#
+
+
+# 0x40-0x460
+# div y mod son especiales
+@used=();
+@clks=();
+
+$line=1;
+$startLine=1;
+#$endLine=10000;
+$endLine=-1;
+$lastClk=0;
+$lastOpcode=-1;
+while (<>)
+ {
+ if ($_=~/^(\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+)/)
+ {
+ $clk=hex($7);
+ #print "$line\n";
+ if ($line>=$startLine)
+ {
+ #print $_;
+ $addr=hex($1);
+ $opcode=hex($2);
+ $sp=hex($3);
+ $a=hex($4);
+ $b=hex($5);
+ if ($addr>=0x40 and $addr<0x460)
+ {
+ @used[$opcode+0x100]++;
+ @clks[$lastOpcodeEmu]+=$clk-$lastClkEmu unless lastOpcodeEmu==-1;
+ $lastOpcodeEmu=$opcode+0x100;
+ $lastClkEmu=$clk;
+ }
+ else
+ {
+ @used[$opcode]++;
+ @clks[$lastOpcode]+=$clk-$lastClk unless $lastOpcode==-1;
+ #printf "%d+=%d\n",$lastOpcode,$clk-$lastClk;
+ $lastOpcode=$opcode;
+ $lastClk=$clk;
+ $lastOpcodeEmu=-1;
+ $lastClkEmu=$clk;
+ }
+ }
+ else
+ {
+ $lastClk=$clk;
+ }
+ last if $line==$endLine;
+ $line++;
+ }
+ }
+@used[$lastOpcode]--;
+
+$id=0;
+# Cluster them
+AddSimple('breakpoint',0);
+# 1=shiftleft, invalid
+AddSimple('pushsp',2);
+# 3=pushint, invalid
+AddSimple('poppc',4);
+AddSimple('add',5);
+AddSimple('and',6);
+AddSimple('or',7);
+AddSimple('load',8);
+AddSimple('not',9);
+AddSimple('flip',10);
+AddSimple('nop',11);
+AddSimple('store',12);
+AddSimple('popsp',13);
+# 14=compare, invalid
+# 15=popint, invalid
+AddSimpleRange('addsp',16,31);
+# 32-63 emulate
+AddSimpleRange('storesp',64,95);
+AddSimpleRange('loadsp',96,127);
+AddSimpleRange('im',128,255);
+
+# 32 is the reset entry point
+# 33 is the interrupt entry point
+AddEmulate('loadh',34);
+AddEmulate('storeh',35);
+AddEmulate('lessthan',36);
+AddEmulate('lessthanorequal',37);
+AddEmulate('ulessthan',38);
+AddEmulate('ulessthanorequal',39);
+AddEmulate('swap',40); # unimplemented
+AddEmulate('mult',41);
+AddEmulate('lshiftright',42);
+AddEmulate('ashiftleft',43);
+AddEmulate('ashiftright',44);
+AddEmulate('call',45);
+AddEmulate('eq',46);
+AddEmulate('neq',47);
+AddEmulate('neg',48);
+AddEmulate('sub',49);
+AddEmulate('xor',50);
+AddEmulate('loadb',51);
+AddEmulate('storeb',52);
+AddEmulate('div',53);
+AddEmulate('mod',54);
+AddEmulate('eqbranch',55);
+AddEmulate('neqbranch',56);
+AddEmulate('poppcrel',57);
+AddEmulate('config',58);
+AddEmulate('pushpc',59);
+AddEmulate('syscall_emulate',60); # unimplemented
+AddEmulate('pushspadd',61);
+AddEmulate('halfmult',62); # unimplemented
+AddEmulate('callpcrel',63);
+
+$maxID=$id;
+print "Total clocks: $lastClk\n";
+print "Unsorted:\n\n";
+for ($i=0; $i<$maxID; $i++)
+ {
+ $used=@used_noemu[$i];
+ $clkm=0;
+ $clkm=@clks_noemu[$i]/$used if $used;
+ printf "%-20s %8d %6.2f\n",$names[$i],$used,$clkm;
+ $by_times{$i}=$used;
+ $by_clks{$i}=@clks_noemu[$i];
+ }
+print "Sorted by consumed clocks:\n\n";
+foreach $key (sort { $by_clks{$b} <=> $by_clks{$a} } keys %by_clks)
+ {
+ printf "%5.2f %-20s %8d\n",$by_clks{$key}/$lastClk*100,$names[$key],$by_clks{$key};
+ }
+
+
+sub AddSimple
+{
+ my ($name, $opcode)=@_;
+
+ $names[$id]=$name;
+ @used_noemu[$id]=@used[$opcode];
+ @used_emu[$id]=@used[$opcode+0x100];
+ @used_both[$id]=@used[$opcode]+@used[$opcode+0x100];
+ @clks_noemu[$id]=@clks[$opcode];
+ @clks_emu[$id]=@clks[$opcode+0x100];
+ @clks_both[$id]=@clks[$opcode]+@clks[$opcode+0x100];
+ $id++;
+}
+
+sub AddEmulate
+{
+ my ($name, $opcode)=@_;
+
+ $names[$id]=$name;
+ @used_noemu[$id]=@used[$opcode];
+ @used_emu[$id]=@used[$opcode+0x100];
+ @used_both[$id]=@used[$opcode];
+ @clks_noemu[$id]=@clks[$opcode];
+ @clks_emu[$id]=@clks[$opcode+0x100];
+ @clks_both[$id]=@clks[$opcode];
+ $id++;
+}
+
+sub AddSimpleRange
+{
+ my ($name, $opStart, $opLast)=@_;
+ my $i;
+
+ $names[$id]=$name;
+ for ($i=$opStart; $i<=$opLast; $i++)
+ {
+ @used_noemu[$id]+=@used[$i];
+ @used_emu[$id]+=@used[$i+0x100];
+ @used_both[$id]+=@used[$i]+@used[$i+0x100];
+ @clks_noemu[$id]+=@clks[$i];
+ @clks_emu[$id]+=@clks[$i+0x100];
+ @clks_both[$id]+=@clks[$i]+@clks[$i+0x100];
+ }
+ $id++;
+}
+
+
Index: zpu/zpu4/core/zpu_core_small.vhd
===================================================================
--- zpu/zpu4/core/zpu_core_small.vhd (nonexistent)
+++ zpu/zpu4/core/zpu_core_small.vhd (revision 93)
@@ -0,0 +1,572 @@
+-- ZPU
+--
+-- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+--
+-- The FreeBSD license
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+--
+-- 1. Redistributions of source code must retain the above copyright
+-- notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above
+-- copyright notice, this list of conditions and the following
+-- disclaimer in the documentation and/or other materials
+-- provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
+-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+-- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+-- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+-- The views and conclusions contained in the software and documentation
+-- are those of the authors and should not be interpreted as representing
+-- official policies, either expressed or implied, of the ZPU Project.
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+
+library work;
+use work.zpu_config.all;
+use work.zpupkg.all;
+
+
+entity zpu_core is
+ Port ( clk : in std_logic;
+ -- asynchronous reset signal
+ areset : in std_logic;
+ -- this particular implementation of the ZPU does not
+ -- have a clocked enable signal
+ enable : in std_logic;
+ in_mem_busy : in std_logic;
+ mem_read : in std_logic_vector(wordSize-1 downto 0);
+ mem_write : out std_logic_vector(wordSize-1 downto 0);
+ out_mem_addr : out std_logic_vector(maxAddrBitIncIO downto 0);
+ out_mem_writeEnable : out std_logic;
+ out_mem_readEnable : out std_logic;
+ -- this implementation of the ZPU *always* reads and writes entire
+ -- 32 bit words, so mem_writeMask is tied to (others => '1').
+ mem_writeMask: out std_logic_vector(wordBytes-1 downto 0);
+ -- Set to one to jump to interrupt vector
+ -- The ZPU will communicate with the hardware that caused the
+ -- interrupt via memory mapped IO or the interrupt flag can
+ -- be cleared automatically
+ interrupt : in std_logic;
+ -- Signal that the break instruction is executed, normally only used
+ -- in simulation to stop simulation
+ break : out std_logic);
+end zpu_core;
+
+architecture behave of zpu_core is
+
+signal readIO : std_logic;
+
+
+
+signal memAWriteEnable : std_logic;
+signal memAAddr : unsigned(maxAddrBit downto minAddrBit);
+signal memAWrite : unsigned(wordSize-1 downto 0);
+signal memARead : unsigned(wordSize-1 downto 0);
+signal memBWriteEnable : std_logic;
+signal memBAddr : unsigned(maxAddrBit downto minAddrBit);
+signal memBWrite : unsigned(wordSize-1 downto 0);
+signal memBRead : unsigned(wordSize-1 downto 0);
+
+
+
+signal pc : unsigned(maxAddrBit downto 0);
+signal sp : unsigned(maxAddrBit downto minAddrBit);
+
+-- this signal is set upon executing an IM instruction
+-- the subsequence IM instruction will then behave differently.
+-- all other instructions will clear the idim_flag.
+-- this yields highly compact immediate instructions.
+signal idim_flag : std_logic;
+
+signal busy : std_logic;
+
+signal begin_inst : std_logic;
+
+
+
+signal trace_opcode : std_logic_vector(7 downto 0);
+signal trace_pc : std_logic_vector(maxAddrBitIncIO downto 0);
+signal trace_sp : std_logic_vector(maxAddrBitIncIO downto minAddrBit);
+signal trace_topOfStack : std_logic_vector(wordSize-1 downto 0);
+signal trace_topOfStackB : std_logic_vector(wordSize-1 downto 0);
+
+-- state machine.
+type State_Type is
+(
+State_Fetch,
+State_WriteIODone,
+State_Execute,
+State_StoreToStack,
+State_Add,
+State_Or,
+State_And,
+State_Store,
+State_ReadIO,
+State_WriteIO,
+State_Load,
+State_FetchNext,
+State_AddSP,
+State_ReadIODone,
+State_Decode,
+State_Resync,
+State_Interrupt
+
+);
+
+type DecodedOpcodeType is
+(
+Decoded_Nop,
+Decoded_Im,
+Decoded_ImShift,
+Decoded_LoadSP,
+Decoded_StoreSP ,
+Decoded_AddSP,
+Decoded_Emulate,
+Decoded_Break,
+Decoded_PushSP,
+Decoded_PopPC,
+Decoded_Add,
+Decoded_Or,
+Decoded_And,
+Decoded_Load,
+Decoded_Not,
+Decoded_Flip,
+Decoded_Store,
+Decoded_PopSP,
+Decoded_Interrupt
+);
+
+
+
+signal sampledOpcode : std_logic_vector(OpCode_Size-1 downto 0);
+signal opcode : std_logic_vector(OpCode_Size-1 downto 0);
+
+signal decodedOpcode : DecodedOpcodeType;
+signal sampledDecodedOpcode : DecodedOpcodeType;
+
+
+signal state : State_Type;
+
+subtype AddrBitBRAM_range is natural range maxAddrBitBRAM downto minAddrBit;
+signal memAAddr_stdlogic : std_logic_vector(AddrBitBRAM_range);
+signal memAWrite_stdlogic : std_logic_vector(memAWrite'range);
+signal memARead_stdlogic : std_logic_vector(memARead'range);
+signal memBAddr_stdlogic : std_logic_vector(AddrBitBRAM_range);
+signal memBWrite_stdlogic : std_logic_vector(memBWrite'range);
+signal memBRead_stdlogic : std_logic_vector(memBRead'range);
+
+subtype index is integer range 0 to 3;
+
+signal tOpcode_sel : index;
+
+
+signal inInterrupt : std_logic;
+
+
+
+begin
+
+ -- generate a trace file.
+ --
+ -- This is only used in simulation to see what instructions are
+ -- executed.
+ --
+ -- a quick & dirty regression test is then to commit trace files
+ -- to CVS and compare the latest trace file against the last known
+ -- good trace file
+ traceFileGenerate:
+ if Generate_Trace generate
+ trace_file: trace port map (
+ clk => clk,
+ begin_inst => begin_inst,
+ pc => trace_pc,
+ opcode => trace_opcode,
+ sp => trace_sp,
+ memA => trace_topOfStack,
+ memB => trace_topOfStackB,
+ busy => busy,
+ intsp => (others => 'U')
+ );
+ end generate;
+
+
+
+ -- mem_writeMask is not used in this design, tie it to 1
+ mem_writeMask <= (others => '1');
+
+
+
+ memAAddr_stdlogic <= std_logic_vector(memAAddr(AddrBitBRAM_range));
+ memAWrite_stdlogic <= std_logic_vector(memAWrite);
+ memBAddr_stdlogic <= std_logic_vector(memBAddr(AddrBitBRAM_range));
+ memBWrite_stdlogic <= std_logic_vector(memBWrite);
+
+
+ -- dualport_ram must be defined by the application.
+ --
+ -- How this can be implemented is highly dependent on the FPGA
+ -- and synthesis technology used.
+ --
+ -- sometimes it can be instantiated as in the
+ -- zpu/example/helloworld.vhd, using inference,
+ -- but oftentimes it must be instantiated directly
+ -- portmapping to part specific FPGA resources
+ --
+ --
+ -- DANGER!!!!!! If inference fails, then synthesis will try
+ -- to implement the memory using basic logic resources. This
+ -- will almost certainly cause the compiler to get "stuck"
+ -- since synthesising such a huge number of basic logic resources
+ -- will take more or less forever.
+ --
+ -- So: if your compiler gets "stuck" then inference is not
+ -- the way to go.
+ memory: dualport_ram port map (
+ clk => clk,
+ memAWriteEnable => memAWriteEnable,
+ memAAddr => memAAddr_stdlogic,
+ memAWrite => memAWrite_stdlogic,
+ memARead => memARead_stdlogic,
+ memBWriteEnable => memBWriteEnable,
+ memBAddr => memBAddr_stdlogic,
+ memBWrite => memBWrite_stdlogic,
+ memBRead => memBRead_stdlogic
+ );
+ memARead <= unsigned(memARead_stdlogic);
+ memBRead <= unsigned(memBRead_stdlogic);
+
+
+
+ tOpcode_sel <= to_integer(pc(minAddrBit-1 downto 0));
+
+
+
+ -- move out calculation of the opcode to a seperate process
+ -- to make things a bit easier to read
+ decodeControl:
+ process(memBRead, pc,tOpcode_sel)
+ variable tOpcode : std_logic_vector(OpCode_Size-1 downto 0);
+ begin
+
+ -- simplify opcode selection a bit so it passes more synthesizers
+ case (tOpcode_sel) is
+
+ when 0 => tOpcode := std_logic_vector(memBRead(31 downto 24));
+
+ when 1 => tOpcode := std_logic_vector(memBRead(23 downto 16));
+
+ when 2 => tOpcode := std_logic_vector(memBRead(15 downto 8));
+
+ when 3 => tOpcode := std_logic_vector(memBRead(7 downto 0));
+
+ when others => tOpcode := std_logic_vector(memBRead(7 downto 0));
+ end case;
+
+ sampledOpcode <= tOpcode;
+
+ if (tOpcode(7 downto 7)=OpCode_Im) then
+ sampledDecodedOpcode<=Decoded_Im;
+ elsif (tOpcode(7 downto 5)=OpCode_StoreSP) then
+ sampledDecodedOpcode<=Decoded_StoreSP;
+ elsif (tOpcode(7 downto 5)=OpCode_LoadSP) then
+ sampledDecodedOpcode<=Decoded_LoadSP;
+ elsif (tOpcode(7 downto 5)=OpCode_Emulate) then
+ sampledDecodedOpcode<=Decoded_Emulate;
+ elsif (tOpcode(7 downto 4)=OpCode_AddSP) then
+ sampledDecodedOpcode<=Decoded_AddSP;
+ else
+ case tOpcode(3 downto 0) is
+ when OpCode_Break =>
+ sampledDecodedOpcode<=Decoded_Break;
+ when OpCode_PushSP =>
+ sampledDecodedOpcode<=Decoded_PushSP;
+ when OpCode_PopPC =>
+ sampledDecodedOpcode<=Decoded_PopPC;
+ when OpCode_Add =>
+ sampledDecodedOpcode<=Decoded_Add;
+ when OpCode_Or =>
+ sampledDecodedOpcode<=Decoded_Or;
+ when OpCode_And =>
+ sampledDecodedOpcode<=Decoded_And;
+ when OpCode_Load =>
+ sampledDecodedOpcode<=Decoded_Load;
+ when OpCode_Not =>
+ sampledDecodedOpcode<=Decoded_Not;
+ when OpCode_Flip =>
+ sampledDecodedOpcode<=Decoded_Flip;
+ when OpCode_Store =>
+ sampledDecodedOpcode<=Decoded_Store;
+ when OpCode_PopSP =>
+ sampledDecodedOpcode<=Decoded_PopSP;
+ when others =>
+ sampledDecodedOpcode<=Decoded_Nop;
+ end case;
+ end if;
+ end process;
+
+
+ opcodeControl:
+ process(clk, areset)
+ variable spOffset : unsigned(4 downto 0);
+ begin
+ if areset = '1' then
+ state <= State_Resync;
+ break <= '0';
+ sp <= unsigned(spStart(maxAddrBit downto minAddrBit));
+ pc <= (others => '0');
+ idim_flag <= '0';
+ begin_inst <= '0';
+ memAAddr <= (others => '0');
+ memBAddr <= (others => '0');
+ memAWriteEnable <= '0';
+ memBWriteEnable <= '0';
+ out_mem_writeEnable <= '0';
+ out_mem_readEnable <= '0';
+ memAWrite <= (others => '0');
+ memBWrite <= (others => '0');
+ inInterrupt <= '0';
+ elsif (clk'event and clk = '1') then
+ memAWriteEnable <= '0';
+ memBWriteEnable <= '0';
+ -- This saves ca. 100 LUT's, by explicitly declaring that the
+ -- memAWrite can be left at whatever value if memAWriteEnable is
+ -- not set.
+ memAWrite <= (others => DontCareValue);
+ memBWrite <= (others => DontCareValue);
+-- out_mem_addr <= (others => DontCareValue);
+-- mem_write <= (others => DontCareValue);
+ spOffset := (others => DontCareValue);
+ memAAddr <= (others => DontCareValue);
+ memBAddr <= (others => DontCareValue);
+
+ out_mem_writeEnable <= '0';
+ out_mem_readEnable <= '0';
+ begin_inst <= '0';
+ out_mem_addr <= std_logic_vector(memARead(maxAddrBitIncIO downto 0));
+ mem_write <= std_logic_vector(memBRead);
+
+ decodedOpcode <= sampledDecodedOpcode;
+ opcode <= sampledOpcode;
+ if interrupt='0' then
+ inInterrupt <= '0'; -- no longer in an interrupt
+ end if;
+
+ case state is
+ when State_Execute =>
+ state <= State_Fetch;
+ -- at this point:
+ -- memBRead contains opcode word
+ -- memARead contains top of stack
+ pc <= pc + 1;
+
+ -- trace
+ begin_inst <= '1';
+ trace_pc <= (others => '0');
+ trace_pc(maxAddrBit downto 0) <= std_logic_vector(pc);
+ trace_opcode <= opcode;
+ trace_sp <= (others => '0');
+ trace_sp(maxAddrBit downto minAddrBit) <= std_logic_vector(sp);
+ trace_topOfStack <= std_logic_vector(memARead);
+ trace_topOfStackB <= std_logic_vector(memBRead);
+
+ -- during the next cycle we'll be reading the next opcode
+ spOffset(4):=not opcode(4);
+ spOffset(3 downto 0) := unsigned(opcode(3 downto 0));
+
+ idim_flag <= '0';
+ case decodedOpcode is
+ when Decoded_Interrupt =>
+ sp <= sp - 1;
+ memAAddr <= sp - 1;
+ memAWriteEnable <= '1';
+ memAWrite <= (others => DontCareValue);
+ memAWrite(maxAddrBit downto 0) <= pc;
+ pc <= to_unsigned(32, maxAddrBit+1); -- interrupt address
+ report "ZPU jumped to interrupt!" severity note;
+ when Decoded_Im =>
+ idim_flag <= '1';
+ memAWriteEnable <= '1';
+ if (idim_flag='0') then
+ sp <= sp - 1;
+ memAAddr <= sp-1;
+ for i in wordSize-1 downto 7 loop
+ memAWrite(i) <= opcode(6);
+ end loop;
+ memAWrite(6 downto 0) <= unsigned(opcode(6 downto 0));
+ else
+ memAAddr <= sp;
+ memAWrite(wordSize-1 downto 7) <= memARead(wordSize-8 downto 0);
+ memAWrite(6 downto 0) <= unsigned(opcode(6 downto 0));
+ end if;
+ when Decoded_StoreSP =>
+ memBWriteEnable <= '1';
+ memBAddr <= sp+spOffset;
+ memBWrite <= memARead;
+ sp <= sp + 1;
+ state <= State_Resync;
+ when Decoded_LoadSP =>
+ sp <= sp - 1;
+ memAAddr <= sp+spOffset;
+ when Decoded_Emulate =>
+ sp <= sp - 1;
+ memAWriteEnable <= '1';
+ memAAddr <= sp - 1;
+ memAWrite <= (others => DontCareValue);
+ memAWrite(maxAddrBit downto 0) <= pc + 1;
+ -- The emulate address is:
+ -- 98 7654 3210
+ -- 0000 00aa aaa0 0000
+ pc <= (others => '0');
+ pc(9 downto 5) <= unsigned(opcode(4 downto 0));
+ when Decoded_AddSP =>
+ memAAddr <= sp;
+ memBAddr <= sp+spOffset;
+ state <= State_AddSP;
+ when Decoded_Break =>
+ report "Break instruction encountered" severity failure;
+ break <= '1';
+ when Decoded_PushSP =>
+ memAWriteEnable <= '1';
+ memAAddr <= sp - 1;
+ sp <= sp - 1;
+ memAWrite <= (others => DontCareValue);
+ memAWrite(maxAddrBit downto minAddrBit) <= sp;
+ when Decoded_PopPC =>
+ pc <= memARead(maxAddrBit downto 0);
+ sp <= sp + 1;
+ state <= State_Resync;
+ when Decoded_Add =>
+ sp <= sp + 1;
+ state <= State_Add;
+ when Decoded_Or =>
+ sp <= sp + 1;
+ state <= State_Or;
+ when Decoded_And =>
+ sp <= sp + 1;
+ state <= State_And;
+ when Decoded_Load =>
+ if (memARead(ioBit)='1') then
+ out_mem_addr <= std_logic_vector(memARead(maxAddrBitIncIO downto 0));
+ out_mem_readEnable <= '1';
+ state <= State_ReadIO;
+ else
+ memAAddr <= memARead(maxAddrBit downto minAddrBit);
+ end if;
+ when Decoded_Not =>
+ memAAddr <= sp(maxAddrBit downto minAddrBit);
+ memAWriteEnable <= '1';
+ memAWrite <= not memARead;
+ when Decoded_Flip =>
+ memAAddr <= sp(maxAddrBit downto minAddrBit);
+ memAWriteEnable <= '1';
+ for i in 0 to wordSize-1 loop
+ memAWrite(i) <= memARead(wordSize-1-i);
+ end loop;
+ when Decoded_Store =>
+ memBAddr <= sp + 1;
+ sp <= sp + 1;
+ if (memARead(ioBit)='1') then
+ state <= State_WriteIO;
+ else
+ state <= State_Store;
+ end if;
+ when Decoded_PopSP =>
+ sp <= memARead(maxAddrBit downto minAddrBit);
+ state <= State_Resync;
+ when Decoded_Nop =>
+ memAAddr <= sp;
+ when others =>
+ null;
+ end case;
+ when State_ReadIO =>
+ if (in_mem_busy = '0') then
+ state <= State_Fetch;
+ memAWriteEnable <= '1';
+ memAWrite <= unsigned(mem_read);
+ end if;
+ when State_WriteIO =>
+ sp <= sp + 1;
+ out_mem_writeEnable <= '1';
+ out_mem_addr <= std_logic_vector(memARead(maxAddrBitIncIO downto 0));
+ mem_write <= std_logic_vector(memBRead);
+ state <= State_WriteIODone;
+ when State_WriteIODone =>
+ if (in_mem_busy = '0') then
+ state <= State_Resync;
+ end if;
+ when State_Fetch =>
+ -- We need to resync. During the *next* cycle
+ -- we'll fetch the opcode @ pc and thus it will
+ -- be available for State_Execute the cycle after
+ -- next
+ memBAddr <= pc(maxAddrBit downto minAddrBit);
+ state <= State_FetchNext;
+ when State_FetchNext =>
+ -- at this point memARead contains the value that is either
+ -- from the top of stack or should be copied to the top of the stack
+ memAWriteEnable <= '1';
+ memAWrite <= memARead;
+ memAAddr <= sp;
+ memBAddr <= sp + 1;
+ state <= State_Decode;
+ when State_Decode =>
+ if interrupt='1' and inInterrupt='0' and idim_flag='0' then
+ -- We got an interrupt, execute interrupt instead of next instruction
+ inInterrupt <= '1';
+ decodedOpcode <= Decoded_Interrupt;
+ end if;
+ -- during the State_Execute cycle we'll be fetching SP+1
+ memAAddr <= sp;
+ memBAddr <= sp + 1;
+ state <= State_Execute;
+ when State_Store =>
+ sp <= sp + 1;
+ memAWriteEnable <= '1';
+ memAAddr <= memARead(maxAddrBit downto minAddrBit);
+ memAWrite <= memBRead;
+ state <= State_Resync;
+ when State_AddSP =>
+ state <= State_Add;
+ when State_Add =>
+ memAAddr <= sp;
+ memAWriteEnable <= '1';
+ memAWrite <= memARead + memBRead;
+ state <= State_Fetch;
+ when State_Or =>
+ memAAddr <= sp;
+ memAWriteEnable <= '1';
+ memAWrite <= memARead or memBRead;
+ state <= State_Fetch;
+ when State_Resync =>
+ memAAddr <= sp;
+ state <= State_Fetch;
+ when State_And =>
+ memAAddr <= sp;
+ memAWriteEnable <= '1';
+ memAWrite <= memARead and memBRead;
+ state <= State_Fetch;
+ when others =>
+ null;
+ end case;
+
+ end if;
+ end process;
+
+
+
+end behave;
Index: zpu/.project
===================================================================
--- zpu/.project (nonexistent)
+++ zpu/.project (revision 93)
@@ -0,0 +1,11 @@
+
+
+ oczpu
+
+
+
+
+
+
+
+
Index: zpu/COPYING
===================================================================
--- zpu/COPYING (nonexistent)
+++ zpu/COPYING (revision 93)
@@ -0,0 +1,16 @@
+About ZPU licensing:
+
+The license for HDL implementations is FreeBSD to be
+friendly towards commercial projects and other open source
+projects, however the architecture, documentation and tools will be GPL.
+
+This means that all updates to the architecture must be shared, but actual
+implementations(which are small and can be very project speific) can
+be friendly towards commercial considerations.
+
+Patches to update files w/correct licensing info will be most appreciated!
+
+The ZPU and all the files are per 1/1-2008 Copyright Zylin AS, i.e.
+Zylin is free to decide upon the BSD license for HDL implementation
+and GPL for architecture, tools and documentation.
+
\ No newline at end of file
Index: zpu/example/log.txt
===================================================================
--- zpu/example/log.txt (nonexistent)
+++ zpu/example/log.txt (revision 93)
@@ -0,0 +1,55 @@
+N
+o
+
+i
+n
+t
+e
+r
+r
+u
+p
+t
+
+
+
+
+
+
+G
+o
+t
+
+i
+n
+t
+e
+r
+r
+u
+p
+t
+
+
+
+
+
+
+N
+o
+
+i
+n
+t
+e
+r
+r
+u
+p
+t
+
+
+
+
+
+
Index: zpu/example/sim_small_fpga_top.vhd
===================================================================
--- zpu/example/sim_small_fpga_top.vhd (nonexistent)
+++ zpu/example/sim_small_fpga_top.vhd (revision 93)
@@ -0,0 +1,207 @@
+-- ZPU
+--
+-- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+--
+-- The FreeBSD license
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+--
+-- 1. Redistributions of source code must retain the above copyright
+-- notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above
+-- copyright notice, this list of conditions and the following
+-- disclaimer in the documentation and/or other materials
+-- provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
+-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+-- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+-- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+-- The views and conclusions contained in the software and documentation
+-- are those of the authors and should not be interpreted as representing
+-- official policies, either expressed or implied, of the ZPU Project.--------------------------------------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+
+---- Uncomment the following library declaration if instantiating
+---- any Xilinx primitives in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+library work;
+use work.zpu_config.all;
+use work.zpupkg.all;
+
+entity fpga_top is
+end fpga_top;
+
+architecture behave of fpga_top is
+
+
+signal clk : std_logic;
+
+signal areset : std_logic := '1';
+
+
+component zpu_io is
+ generic (
+ log_file: string := "log.txt"
+ );
+ port(
+ clk : in std_logic;
+ areset : in std_logic;
+ busy : out std_logic;
+ writeEnable : in std_logic;
+ readEnable : in std_logic;
+ write : in std_logic_vector(wordSize-1 downto 0);
+ read : out std_logic_vector(wordSize-1 downto 0);
+ addr : in std_logic_vector(maxAddrBit downto minAddrBit)
+ );
+end component;
+
+
+
+
+
+signal mem_busy : std_logic;
+signal mem_read : std_logic_vector(wordSize-1 downto 0);
+signal mem_write : std_logic_vector(wordSize-1 downto 0);
+signal mem_addr : std_logic_vector(maxAddrBitIncIO downto 0);
+signal mem_writeEnable : std_logic;
+signal mem_readEnable : std_logic;
+signal mem_writeMask: std_logic_vector(wordBytes-1 downto 0);
+
+signal enable : std_logic;
+
+signal dram_mem_busy : std_logic;
+signal dram_mem_read : std_logic_vector(wordSize-1 downto 0);
+signal dram_mem_write : std_logic_vector(wordSize-1 downto 0);
+signal dram_mem_writeEnable : std_logic;
+signal dram_mem_readEnable : std_logic;
+signal dram_mem_writeMask: std_logic_vector(wordBytes-1 downto 0);
+
+
+signal io_busy : std_logic;
+
+signal io_mem_read : std_logic_vector(wordSize-1 downto 0);
+signal io_mem_writeEnable : std_logic;
+signal io_mem_readEnable : std_logic;
+
+
+signal dram_ready : std_logic;
+signal io_ready : std_logic;
+signal io_reading : std_logic;
+signal interruptcounter : unsigned(15 downto 0);
+signal interrupt : std_logic;
+
+
+
+signal break : std_logic;
+
+begin
+
+ zpu: zpu_core port map (
+ clk => clk ,
+ areset => areset,
+ enable => enable,
+ in_mem_busy => mem_busy,
+ mem_read => mem_read,
+ mem_write => mem_write,
+ out_mem_addr => mem_addr,
+ out_mem_writeEnable => mem_writeEnable,
+ out_mem_readEnable => mem_readEnable,
+ mem_writeMask => mem_writeMask,
+ interrupt => interrupt,
+ break => break);
+
+
+ ioMap: zpu_io port map (
+ clk => clk,
+ areset => areset,
+ busy => io_busy,
+ writeEnable => io_mem_writeEnable,
+ readEnable => io_mem_readEnable,
+ write => mem_write,
+ read => io_mem_read,
+ addr => mem_addr(maxAddrBit downto minAddrBit)
+ );
+
+ dram_mem_writeEnable <= mem_writeEnable and not mem_addr(ioBit);
+ dram_mem_readEnable <= mem_readEnable and not mem_addr(ioBit);
+ io_mem_writeEnable <= mem_writeEnable and mem_addr(ioBit);
+ io_mem_readEnable <= mem_readEnable and mem_addr(ioBit);
+ mem_busy <= io_busy;
+
+
+
+ -- Memory reads either come from IO or DRAM. We need to pick the right one.
+ memorycontrol:
+ process(dram_mem_read, dram_ready, io_ready, io_mem_read)
+ begin
+ mem_read <= (others => 'U');
+ if dram_ready='1' then
+ mem_read <= dram_mem_read;
+ end if;
+
+ if io_ready='1' then
+ mem_read <= (others => '0');
+ mem_read <= io_mem_read;
+ end if;
+ end process;
+
+
+
+ io_ready <= (io_reading or io_mem_readEnable) and not io_busy;
+
+ memoryControlSync:
+ process(clk, areset)
+ begin
+ if areset = '1' then
+ enable <= '0';
+ io_reading <= '0';
+ dram_ready <= '0';
+
+ interruptcounter <= to_unsigned(0, 16);
+ interrupt <= '0';
+
+ elsif (clk'event and clk = '1') then
+ enable <= '1';
+ io_reading <= io_busy or io_mem_readEnable;
+ dram_ready<=dram_mem_readEnable;
+
+ -- keep interrupt signal high for 16 cycles
+ interruptcounter <= interruptcounter + 1;
+ if (interruptcounter < 16) then
+ report "Interrupt asserted!" severity note;
+ interrupt <='1';
+ else
+ interrupt <='0';
+ end if;
+ end if;
+ end process;
+
+ -- wiggle the clock @ 100MHz
+ clock : PROCESS
+ begin
+ clk <= '0';
+ wait for 5 ns;
+ clk <= '1';
+ wait for 5 ns;
+ areset <= '0';
+ end PROCESS clock;
+
+
+end behave;
Index: zpu/example/simzpu_small.do
===================================================================
--- zpu/example/simzpu_small.do (nonexistent)
+++ zpu/example/simzpu_small.do (revision 93)
@@ -0,0 +1,29 @@
+# Xilinx WebPack modelsim script
+#
+#
+# cd C:/workspace/zpu/zpu/hdl/example
+# do simzpu_small.do
+
+set BreakOnAssertion 1
+vlib work
+
+vcom -93 -explicit zpu_config.vhd
+vcom -93 -explicit ../zpu4/core/zpupkg.vhd
+vcom -93 -explicit ../zpu4/src/txt_util.vhd
+vcom -93 -explicit sim_small_fpga_top_noint.vhd
+vcom -93 -explicit ../zpu4/core/zpu_core_small.vhd
+vcom -93 -explicit helloworld.vhd
+vcom -93 -explicit ../zpu4/src/timer.vhd
+vcom -93 -explicit ../zpu4/src/io.vhd
+vcom -93 -explicit ../zpu4/src/trace.vhd
+
+# run ZPU
+vsim fpga_top
+view wave
+add wave -recursive fpga_top/zpu/*
+#add wave -recursive fpga_top/*
+view structure
+#view signals
+
+# Enough to run tiny programs
+run 10 ms
Index: zpu/example/zpu_config.vhd
===================================================================
--- zpu/example/zpu_config.vhd (nonexistent)
+++ zpu/example/zpu_config.vhd (revision 93)
@@ -0,0 +1,56 @@
+-- ZPU
+--
+-- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+--
+-- The FreeBSD license
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+--
+-- 1. Redistributions of source code must retain the above copyright
+-- notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above
+-- copyright notice, this list of conditions and the following
+-- disclaimer in the documentation and/or other materials
+-- provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
+-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+-- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+-- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+-- The views and conclusions contained in the software and documentation
+-- are those of the authors and should not be interpreted as representing
+-- official policies, either expressed or implied, of the ZPU Project.
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.std_logic_arith.all;
+
+package zpu_config is
+ -- generate trace output
+ constant Generate_Trace : boolean := true;
+ constant wordPower : integer := 5;
+ -- during simulation, set this to '0' to get matching trace.txt
+ constant DontCareValue : std_logic := '0';
+ -- Clock frequency in MHz.
+ constant ZPU_Frequency : std_logic_vector(7 downto 0) := x"64";
+ -- This is the msb address bit. bytes=2^(maxAddrBitIncIO+1)
+ constant maxAddrBitIncIO : integer := 27;
+ constant maxAddrBitBRAM : integer := 16;
+
+ -- start byte address of stack.
+ -- point to top of RAM - 2*words
+ constant spStart : std_logic_vector(maxAddrBitIncIO downto 0) :=
+ conv_std_logic_vector((2**(maxAddrBitBRAM+1))-8, maxAddrBitIncIO+1);
+end zpu_config;
Index: zpu/example/simzpu_dmips.do
===================================================================
--- zpu/example/simzpu_dmips.do (nonexistent)
+++ zpu/example/simzpu_dmips.do (revision 93)
@@ -0,0 +1,29 @@
+# Xilinx WebPack modelsim script
+#
+#
+# cd C:/workspace/zpu/zpu/hdl/example
+# do simzpu_dmips.do
+
+set BreakOnAssertion 1
+vlib work
+
+vcom -93 -explicit zpu_config.vhd
+vcom -93 -explicit ../zpu4/core/zpupkg.vhd
+vcom -93 -explicit ../zpu4/src/txt_util.vhd
+vcom -93 -explicit sim_small_fpga_top_noint.vhd
+vcom -93 -explicit ../zpu4/core/zpu_core_small.vhd
+vcom -93 -explicit bram_dmips.vhd
+vcom -93 -explicit ../zpu4/src/timer.vhd
+vcom -93 -explicit ../zpu4/src/io.vhd
+vcom -93 -explicit ../zpu4/src/trace.vhd
+
+# run ZPU
+vsim fpga_top
+view wave
+add wave -recursive fpga_top/zpu/*
+#add wave -recursive fpga_top/*
+view structure
+#view signals
+
+# Enough to run tiny programs
+run 10 ms
Index: zpu/example/simzpu_interrupt.do
===================================================================
--- zpu/example/simzpu_interrupt.do (nonexistent)
+++ zpu/example/simzpu_interrupt.do (revision 93)
@@ -0,0 +1,29 @@
+# Xilinx WebPack modelsim script
+#
+#
+# cd C:/workspace/zpu/zpu/hdl/example
+# do simzpu_interrupt.do
+
+set BreakOnAssertion 1
+vlib work
+
+vcom -93 -explicit zpu_config.vhd
+vcom -93 -explicit ../zpu4/core/zpupkg.vhd
+vcom -93 -explicit ../zpu4/src/txt_util.vhd
+vcom -93 -explicit sim_small_fpga_top.vhd
+vcom -93 -explicit ../zpu4/core/zpu_core_small.vhd
+vcom -93 -explicit interrupt.vhd
+vcom -93 -explicit ../zpu4/src/timer.vhd
+vcom -93 -explicit ../zpu4/src/io.vhd
+vcom -93 -explicit ../zpu4/src/trace.vhd
+
+# run ZPU
+vsim fpga_top
+view wave
+add wave -recursive fpga_top/zpu/*
+#add wave -recursive fpga_top/*
+view structure
+#view signals
+
+# Enough to run tiny programs
+run 10 ms
Index: zpu/example/sim_small_fpga_top_noint.vhd
===================================================================
--- zpu/example/sim_small_fpga_top_noint.vhd (nonexistent)
+++ zpu/example/sim_small_fpga_top_noint.vhd (revision 93)
@@ -0,0 +1,193 @@
+-- ZPU
+--
+-- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+--
+-- The FreeBSD license
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+--
+-- 1. Redistributions of source code must retain the above copyright
+-- notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above
+-- copyright notice, this list of conditions and the following
+-- disclaimer in the documentation and/or other materials
+-- provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
+-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+-- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+-- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+-- The views and conclusions contained in the software and documentation
+-- are those of the authors and should not be interpreted as representing
+-- official policies, either expressed or implied, of the ZPU Project.
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+
+---- Uncomment the following library declaration if instantiating
+---- any Xilinx primitives in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+library work;
+use work.zpu_config.all;
+use work.zpupkg.all;
+
+entity fpga_top is
+end fpga_top;
+
+architecture behave of fpga_top is
+
+
+signal clk : std_logic;
+
+signal areset : std_logic := '1';
+
+
+component zpu_io is
+ generic (
+ log_file: string := "log.txt"
+ );
+ port(
+ clk : in std_logic;
+ areset : in std_logic;
+ busy : out std_logic;
+ writeEnable : in std_logic;
+ readEnable : in std_logic;
+ write : in std_logic_vector(wordSize-1 downto 0);
+ read : out std_logic_vector(wordSize-1 downto 0);
+ addr : in std_logic_vector(maxAddrBit downto minAddrBit)
+ );
+end component;
+
+
+
+
+
+signal mem_busy : std_logic;
+signal mem_read : std_logic_vector(wordSize-1 downto 0);
+signal mem_write : std_logic_vector(wordSize-1 downto 0);
+signal mem_addr : std_logic_vector(maxAddrBitIncIO downto 0);
+signal mem_writeEnable : std_logic;
+signal mem_readEnable : std_logic;
+signal mem_writeMask: std_logic_vector(wordBytes-1 downto 0);
+
+signal enable : std_logic;
+
+signal dram_mem_busy : std_logic;
+signal dram_mem_read : std_logic_vector(wordSize-1 downto 0);
+signal dram_mem_write : std_logic_vector(wordSize-1 downto 0);
+signal dram_mem_writeEnable : std_logic;
+signal dram_mem_readEnable : std_logic;
+signal dram_mem_writeMask: std_logic_vector(wordBytes-1 downto 0);
+
+
+signal io_busy : std_logic;
+
+signal io_mem_read : std_logic_vector(wordSize-1 downto 0);
+signal io_mem_writeEnable : std_logic;
+signal io_mem_readEnable : std_logic;
+
+
+signal dram_ready : std_logic;
+signal io_ready : std_logic;
+signal io_reading : std_logic;
+
+
+
+signal break : std_logic;
+
+begin
+
+ zpu: zpu_core port map (
+ clk => clk ,
+ areset => areset,
+ enable => enable,
+ in_mem_busy => mem_busy,
+ mem_read => mem_read,
+ mem_write => mem_write,
+ out_mem_addr => mem_addr,
+ out_mem_writeEnable => mem_writeEnable,
+ out_mem_readEnable => mem_readEnable,
+ mem_writeMask => mem_writeMask,
+ interrupt => '0',
+ break => break);
+
+
+ ioMap: zpu_io port map (
+ clk => clk,
+ areset => areset,
+ busy => io_busy,
+ writeEnable => io_mem_writeEnable,
+ readEnable => io_mem_readEnable,
+ write => mem_write,
+ read => io_mem_read,
+ addr => mem_addr(maxAddrBit downto minAddrBit)
+ );
+
+ dram_mem_writeEnable <= mem_writeEnable and not mem_addr(ioBit);
+ dram_mem_readEnable <= mem_readEnable and not mem_addr(ioBit);
+ io_mem_writeEnable <= mem_writeEnable and mem_addr(ioBit);
+ io_mem_readEnable <= mem_readEnable and mem_addr(ioBit);
+ mem_busy <= io_busy;
+
+
+
+ -- Memory reads either come from IO or DRAM. We need to pick the right one.
+ memorycontrol:
+ process(dram_mem_read, dram_ready, io_ready, io_mem_read)
+ begin
+ mem_read <= (others => 'U');
+ if dram_ready='1' then
+ mem_read <= dram_mem_read;
+ end if;
+
+ if io_ready='1' then
+ mem_read <= (others => '0');
+ mem_read <= io_mem_read;
+ end if;
+ end process;
+
+
+
+ io_ready <= (io_reading or io_mem_readEnable) and not io_busy;
+
+ memoryControlSync:
+ process(clk, areset)
+ begin
+ if areset = '1' then
+ enable <= '0';
+ io_reading <= '0';
+ dram_ready <= '0';
+
+ elsif (clk'event and clk = '1') then
+ enable <= '1';
+ io_reading <= io_busy or io_mem_readEnable;
+ dram_ready<=dram_mem_readEnable;
+ end if;
+ end process;
+
+ -- wiggle the clock @ 100MHz
+ clock : PROCESS
+ begin
+ clk <= '0';
+ wait for 5 ns;
+ clk <= '1';
+ wait for 5 ns;
+ areset <= '0';
+ end PROCESS clock;
+
+
+end behave;
Index: zpu/example/helloworld.vhd
===================================================================
--- zpu/example/helloworld.vhd (nonexistent)
+++ zpu/example/helloworld.vhd (revision 93)
@@ -0,0 +1,3154 @@
+-- ZPU
+--
+-- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+--
+-- The FreeBSD license
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+--
+-- 1. Redistributions of source code must retain the above copyright
+-- notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above
+-- copyright notice, this list of conditions and the following
+-- disclaimer in the documentation and/or other materials
+-- provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
+-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+-- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+-- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+-- The views and conclusions contained in the software and documentation
+-- are those of the authors and should not be interpreted as representing
+-- official policies, either expressed or implied, of the ZPU Project.
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+
+library work;
+use work.zpu_config.all;
+use work.zpupkg.all;
+
+entity dualport_ram is
+port (clk : in std_logic;
+ memAWriteEnable : in std_logic;
+ memAAddr : in std_logic_vector(maxAddrBitBRAM downto minAddrBit);
+ memAWrite : in std_logic_vector(wordSize-1 downto 0);
+ memARead : out std_logic_vector(wordSize-1 downto 0);
+ memBWriteEnable : in std_logic;
+ memBAddr : in std_logic_vector(maxAddrBitBRAM downto minAddrBit);
+ memBWrite : in std_logic_vector(wordSize-1 downto 0);
+ memBRead : out std_logic_vector(wordSize-1 downto 0));
+end dualport_ram;
+
+architecture dualport_ram_arch of dualport_ram is
+
+
+type ram_type is array(natural range 0 to ((2**(maxAddrBitBRAM+1))/4)-1) of std_logic_vector(wordSize-1 downto 0);
+
+shared variable ram : ram_type :=
+(
+0 => x"0b0b0b0b",
+1 => x"82700b0b",
+2 => x"80cfd80c",
+3 => x"3a0b0b80",
+4 => x"c6d00400",
+5 => x"00000000",
+6 => x"00000000",
+7 => x"00000000",
+8 => x"80088408",
+9 => x"88080b0b",
+10 => x"80c7972d",
+11 => x"880c840c",
+12 => x"800c0400",
+13 => x"00000000",
+14 => x"00000000",
+15 => x"00000000",
+16 => x"71fd0608",
+17 => x"72830609",
+18 => x"81058205",
+19 => x"832b2a83",
+20 => x"ffff0652",
+21 => x"04000000",
+22 => x"00000000",
+23 => x"00000000",
+24 => x"71fd0608",
+25 => x"83ffff73",
+26 => x"83060981",
+27 => x"05820583",
+28 => x"2b2b0906",
+29 => x"7383ffff",
+30 => x"0b0b0b0b",
+31 => x"83a70400",
+32 => x"72098105",
+33 => x"72057373",
+34 => x"09060906",
+35 => x"73097306",
+36 => x"070a8106",
+37 => x"53510400",
+38 => x"00000000",
+39 => x"00000000",
+40 => x"72722473",
+41 => x"732e0753",
+42 => x"51040000",
+43 => x"00000000",
+44 => x"00000000",
+45 => x"00000000",
+46 => x"00000000",
+47 => x"00000000",
+48 => x"71737109",
+49 => x"71068106",
+50 => x"30720a10",
+51 => x"0a720a10",
+52 => x"0a31050a",
+53 => x"81065151",
+54 => x"53510400",
+55 => x"00000000",
+56 => x"72722673",
+57 => x"732e0753",
+58 => x"51040000",
+59 => x"00000000",
+60 => x"00000000",
+61 => x"00000000",
+62 => x"00000000",
+63 => x"00000000",
+64 => x"00000000",
+65 => x"00000000",
+66 => x"00000000",
+67 => x"00000000",
+68 => x"00000000",
+69 => x"00000000",
+70 => x"00000000",
+71 => x"00000000",
+72 => x"0b0b0b88",
+73 => x"c4040000",
+74 => x"00000000",
+75 => x"00000000",
+76 => x"00000000",
+77 => x"00000000",
+78 => x"00000000",
+79 => x"00000000",
+80 => x"720a722b",
+81 => x"0a535104",
+82 => x"00000000",
+83 => x"00000000",
+84 => x"00000000",
+85 => x"00000000",
+86 => x"00000000",
+87 => x"00000000",
+88 => x"72729f06",
+89 => x"0981050b",
+90 => x"0b0b88a7",
+91 => x"05040000",
+92 => x"00000000",
+93 => x"00000000",
+94 => x"00000000",
+95 => x"00000000",
+96 => x"72722aff",
+97 => x"739f062a",
+98 => x"0974090a",
+99 => x"8106ff05",
+100 => x"06075351",
+101 => x"04000000",
+102 => x"00000000",
+103 => x"00000000",
+104 => x"71715351",
+105 => x"020d0406",
+106 => x"73830609",
+107 => x"81058205",
+108 => x"832b0b2b",
+109 => x"0772fc06",
+110 => x"0c515104",
+111 => x"00000000",
+112 => x"72098105",
+113 => x"72050970",
+114 => x"81050906",
+115 => x"0a810653",
+116 => x"51040000",
+117 => x"00000000",
+118 => x"00000000",
+119 => x"00000000",
+120 => x"72098105",
+121 => x"72050970",
+122 => x"81050906",
+123 => x"0a098106",
+124 => x"53510400",
+125 => x"00000000",
+126 => x"00000000",
+127 => x"00000000",
+128 => x"71098105",
+129 => x"52040000",
+130 => x"00000000",
+131 => x"00000000",
+132 => x"00000000",
+133 => x"00000000",
+134 => x"00000000",
+135 => x"00000000",
+136 => x"72720981",
+137 => x"05055351",
+138 => x"04000000",
+139 => x"00000000",
+140 => x"00000000",
+141 => x"00000000",
+142 => x"00000000",
+143 => x"00000000",
+144 => x"72097206",
+145 => x"73730906",
+146 => x"07535104",
+147 => x"00000000",
+148 => x"00000000",
+149 => x"00000000",
+150 => x"00000000",
+151 => x"00000000",
+152 => x"71fc0608",
+153 => x"72830609",
+154 => x"81058305",
+155 => x"1010102a",
+156 => x"81ff0652",
+157 => x"04000000",
+158 => x"00000000",
+159 => x"00000000",
+160 => x"71fc0608",
+161 => x"0b0b80cf",
+162 => x"c4738306",
+163 => x"10100508",
+164 => x"060b0b0b",
+165 => x"88aa0400",
+166 => x"00000000",
+167 => x"00000000",
+168 => x"80088408",
+169 => x"88087575",
+170 => x"0b0b0b8b",
+171 => x"9f2d5050",
+172 => x"80085688",
+173 => x"0c840c80",
+174 => x"0c510400",
+175 => x"00000000",
+176 => x"80088408",
+177 => x"88087575",
+178 => x"0b0b0b8b",
+179 => x"e32d5050",
+180 => x"80085688",
+181 => x"0c840c80",
+182 => x"0c510400",
+183 => x"00000000",
+184 => x"72097081",
+185 => x"0509060a",
+186 => x"8106ff05",
+187 => x"70547106",
+188 => x"73097274",
+189 => x"05ff0506",
+190 => x"07515151",
+191 => x"04000000",
+192 => x"72097081",
+193 => x"0509060a",
+194 => x"098106ff",
+195 => x"05705471",
+196 => x"06730972",
+197 => x"7405ff05",
+198 => x"06075151",
+199 => x"51040000",
+200 => x"05ff0504",
+201 => x"00000000",
+202 => x"00000000",
+203 => x"00000000",
+204 => x"00000000",
+205 => x"00000000",
+206 => x"00000000",
+207 => x"00000000",
+208 => x"810b0b0b",
+209 => x"80cfd40c",
+210 => x"51040000",
+211 => x"00000000",
+212 => x"00000000",
+213 => x"00000000",
+214 => x"00000000",
+215 => x"00000000",
+216 => x"71810552",
+217 => x"04000000",
+218 => x"00000000",
+219 => x"00000000",
+220 => x"00000000",
+221 => x"00000000",
+222 => x"00000000",
+223 => x"00000000",
+224 => x"00000000",
+225 => x"00000000",
+226 => x"00000000",
+227 => x"00000000",
+228 => x"00000000",
+229 => x"00000000",
+230 => x"00000000",
+231 => x"00000000",
+232 => x"02840572",
+233 => x"10100552",
+234 => x"04000000",
+235 => x"00000000",
+236 => x"00000000",
+237 => x"00000000",
+238 => x"00000000",
+239 => x"00000000",
+240 => x"00000000",
+241 => x"00000000",
+242 => x"00000000",
+243 => x"00000000",
+244 => x"00000000",
+245 => x"00000000",
+246 => x"00000000",
+247 => x"00000000",
+248 => x"717105ff",
+249 => x"05715351",
+250 => x"020d0400",
+251 => x"00000000",
+252 => x"00000000",
+253 => x"00000000",
+254 => x"00000000",
+255 => x"00000000",
+256 => x"82c53f80",
+257 => x"c6d93f04",
+258 => x"10101010",
+259 => x"10101010",
+260 => x"10101010",
+261 => x"10101010",
+262 => x"10101010",
+263 => x"10101010",
+264 => x"10101010",
+265 => x"10101053",
+266 => x"51047381",
+267 => x"ff067383",
+268 => x"06098105",
+269 => x"83051010",
+270 => x"102b0772",
+271 => x"fc060c51",
+272 => x"51043c04",
+273 => x"72728072",
+274 => x"8106ff05",
+275 => x"09720605",
+276 => x"71105272",
+277 => x"0a100a53",
+278 => x"72ed3851",
+279 => x"51535104",
+280 => x"fe3d0d0b",
+281 => x"0b80dfc0",
+282 => x"08538413",
+283 => x"0870882a",
+284 => x"70810651",
+285 => x"52527080",
+286 => x"2ef03871",
+287 => x"81ff0680",
+288 => x"0c843d0d",
+289 => x"04ff3d0d",
+290 => x"0b0b80df",
+291 => x"c0085271",
+292 => x"0870882a",
+293 => x"81327081",
+294 => x"06515151",
+295 => x"70f13873",
+296 => x"720c833d",
+297 => x"0d0480cf",
+298 => x"d408802e",
+299 => x"a43880cf",
+300 => x"d808822e",
+301 => x"bd388380",
+302 => x"800b0b0b",
+303 => x"80dfc00c",
+304 => x"82a0800b",
+305 => x"80dfc40c",
+306 => x"8290800b",
+307 => x"80dfc80c",
+308 => x"04f88080",
+309 => x"80a40b0b",
+310 => x"0b80dfc0",
+311 => x"0cf88080",
+312 => x"82800b80",
+313 => x"dfc40cf8",
+314 => x"80808480",
+315 => x"0b80dfc8",
+316 => x"0c0480c0",
+317 => x"a8808c0b",
+318 => x"0b0b80df",
+319 => x"c00c80c0",
+320 => x"a880940b",
+321 => x"80dfc40c",
+322 => x"0b0b80cf",
+323 => x"8c0b80df",
+324 => x"c80c0470",
+325 => x"7080dfcc",
+326 => x"335170a7",
+327 => x"3880cfe0",
+328 => x"08700852",
+329 => x"5270802e",
+330 => x"94388412",
+331 => x"80cfe00c",
+332 => x"702d80cf",
+333 => x"e0087008",
+334 => x"525270ee",
+335 => x"38810b80",
+336 => x"dfcc3450",
+337 => x"50040470",
+338 => x"0b0b80df",
+339 => x"bc08802e",
+340 => x"8e380b0b",
+341 => x"0b0b800b",
+342 => x"802e0981",
+343 => x"06833850",
+344 => x"040b0b80",
+345 => x"dfbc510b",
+346 => x"0b0bf594",
+347 => x"3f500404",
+348 => x"fe3d0d89",
+349 => x"5380cf90",
+350 => x"5182c13f",
+351 => x"80cfa051",
+352 => x"82ba3f81",
+353 => x"0a0b80df",
+354 => x"d80cff0b",
+355 => x"80dfdc0c",
+356 => x"ff135372",
+357 => x"8025de38",
+358 => x"72800c84",
+359 => x"3d0d04fb",
+360 => x"3d0d7779",
+361 => x"55558056",
+362 => x"757524ab",
+363 => x"38807424",
+364 => x"9d388053",
+365 => x"73527451",
+366 => x"80e13f80",
+367 => x"08547580",
+368 => x"2e853880",
+369 => x"08305473",
+370 => x"800c873d",
+371 => x"0d047330",
+372 => x"76813257",
+373 => x"54dc3974",
+374 => x"30558156",
+375 => x"738025d2",
+376 => x"38ec39fa",
+377 => x"3d0d787a",
+378 => x"57558057",
+379 => x"767524a4",
+380 => x"38759f2c",
+381 => x"54815375",
+382 => x"74327431",
+383 => x"5274519b",
+384 => x"3f800854",
+385 => x"76802e85",
+386 => x"38800830",
+387 => x"5473800c",
+388 => x"883d0d04",
+389 => x"74305581",
+390 => x"57d739fc",
+391 => x"3d0d7678",
+392 => x"53548153",
+393 => x"80747326",
+394 => x"52557280",
+395 => x"2e983870",
+396 => x"802eab38",
+397 => x"807224a6",
+398 => x"38711073",
+399 => x"10757226",
+400 => x"53545272",
+401 => x"ea387351",
+402 => x"78833874",
+403 => x"5170800c",
+404 => x"863d0d04",
+405 => x"720a100a",
+406 => x"720a100a",
+407 => x"53537280",
+408 => x"2ee43871",
+409 => x"7426ed38",
+410 => x"73723175",
+411 => x"7407740a",
+412 => x"100a740a",
+413 => x"100a5555",
+414 => x"5654e339",
+415 => x"f73d0d7c",
+416 => x"70525380",
+417 => x"f93f7254",
+418 => x"80085580",
+419 => x"cfb05681",
+420 => x"57800881",
+421 => x"055a8b3d",
+422 => x"e4115953",
+423 => x"8259f413",
+424 => x"527b8811",
+425 => x"08525381",
+426 => x"b23f8008",
+427 => x"30708008",
+428 => x"079f2c8a",
+429 => x"07800c53",
+430 => x"8b3d0d04",
+431 => x"f63d0d7c",
+432 => x"80cfe408",
+433 => x"71535553",
+434 => x"b53f7255",
+435 => x"80085680",
+436 => x"cfb05781",
+437 => x"58800881",
+438 => x"055b8c3d",
+439 => x"e4115a53",
+440 => x"825af413",
+441 => x"52881408",
+442 => x"5180f03f",
+443 => x"80083070",
+444 => x"8008079f",
+445 => x"2c8a0780",
+446 => x"0c548c3d",
+447 => x"0d047070",
+448 => x"70707570",
+449 => x"71830653",
+450 => x"555270b4",
+451 => x"38717008",
+452 => x"7009f7fb",
+453 => x"fdff1206",
+454 => x"f8848281",
+455 => x"80065452",
+456 => x"53719b38",
+457 => x"84137008",
+458 => x"7009f7fb",
+459 => x"fdff1206",
+460 => x"f8848281",
+461 => x"80065452",
+462 => x"5371802e",
+463 => x"e7387252",
+464 => x"71335372",
+465 => x"802e8a38",
+466 => x"81127033",
+467 => x"545272f8",
+468 => x"38717431",
+469 => x"800c5050",
+470 => x"505004f2",
+471 => x"3d0d6062",
+472 => x"88110870",
+473 => x"58565f5a",
+474 => x"73802e81",
+475 => x"8c388c1a",
+476 => x"2270832a",
+477 => x"81328106",
+478 => x"56587486",
+479 => x"38901a08",
+480 => x"91387951",
+481 => x"90b73fff",
+482 => x"55800880",
+483 => x"ec388c1a",
+484 => x"22587d08",
+485 => x"55807883",
+486 => x"ffff0670",
+487 => x"0a100a81",
+488 => x"06415c57",
+489 => x"7e772e80",
+490 => x"d7387690",
+491 => x"38740884",
+492 => x"16088817",
+493 => x"57585676",
+494 => x"802ef238",
+495 => x"76548880",
+496 => x"77278438",
+497 => x"88805473",
+498 => x"5375529c",
+499 => x"1a0851a4",
+500 => x"1a085877",
+501 => x"2d800b80",
+502 => x"082582e0",
+503 => x"38800816",
+504 => x"77800831",
+505 => x"7f880508",
+506 => x"80083170",
+507 => x"6188050c",
+508 => x"5b585678",
+509 => x"ffb43880",
+510 => x"5574800c",
+511 => x"903d0d04",
+512 => x"7a813281",
+513 => x"06774056",
+514 => x"75802e81",
+515 => x"bd387690",
+516 => x"38740884",
+517 => x"16088817",
+518 => x"57585976",
+519 => x"802ef238",
+520 => x"881a0878",
+521 => x"83ffff06",
+522 => x"70892a81",
+523 => x"06565956",
+524 => x"73802e82",
+525 => x"f8387577",
+526 => x"278b3877",
+527 => x"872a8106",
+528 => x"5c7b82b5",
+529 => x"38767627",
+530 => x"83387656",
+531 => x"75537852",
+532 => x"79085185",
+533 => x"833f881a",
+534 => x"08763188",
+535 => x"1b0c7908",
+536 => x"167a0c76",
+537 => x"56751977",
+538 => x"77317f88",
+539 => x"05087831",
+540 => x"70618805",
+541 => x"0c415859",
+542 => x"7e802efe",
+543 => x"fa388c1a",
+544 => x"2258ff8a",
+545 => x"39787954",
+546 => x"7c537b52",
+547 => x"5684c93f",
+548 => x"881a0879",
+549 => x"31881b0c",
+550 => x"7908197a",
+551 => x"0c7c7631",
+552 => x"5d7c8e38",
+553 => x"79518ff2",
+554 => x"3f800881",
+555 => x"8f388008",
+556 => x"5f751c77",
+557 => x"77317f88",
+558 => x"05087831",
+559 => x"70618805",
+560 => x"0c5d585c",
+561 => x"7a802efe",
+562 => x"ae387681",
+563 => x"83387408",
+564 => x"84160888",
+565 => x"1757585c",
+566 => x"76802ef2",
+567 => x"3876538a",
+568 => x"527b5182",
+569 => x"d33f8008",
+570 => x"7c318105",
+571 => x"5d800884",
+572 => x"3881175d",
+573 => x"815f7c59",
+574 => x"767d2783",
+575 => x"38765994",
+576 => x"1a08881b",
+577 => x"08115758",
+578 => x"807a085c",
+579 => x"54901a08",
+580 => x"7b278338",
+581 => x"81547579",
+582 => x"25843873",
+583 => x"ba387779",
+584 => x"24fee238",
+585 => x"77537b52",
+586 => x"9c1a0851",
+587 => x"a41a0859",
+588 => x"782d8008",
+589 => x"56800880",
+590 => x"24fee238",
+591 => x"8c1a2280",
+592 => x"c0075e7d",
+593 => x"8c1b23ff",
+594 => x"5574800c",
+595 => x"903d0d04",
+596 => x"7effa338",
+597 => x"ff873975",
+598 => x"537b527a",
+599 => x"5182f93f",
+600 => x"7908167a",
+601 => x"0c79518e",
+602 => x"b13f8008",
+603 => x"cf387c76",
+604 => x"315d7cfe",
+605 => x"bc38feac",
+606 => x"39901a08",
+607 => x"7a087131",
+608 => x"78117056",
+609 => x"5a575280",
+610 => x"cfe40851",
+611 => x"84943f80",
+612 => x"08802eff",
+613 => x"a7388008",
+614 => x"901b0c80",
+615 => x"08167a0c",
+616 => x"77941b0c",
+617 => x"76881b0c",
+618 => x"7656fd99",
+619 => x"39790858",
+620 => x"901a0878",
+621 => x"27833881",
+622 => x"54757727",
+623 => x"843873b3",
+624 => x"38941a08",
+625 => x"54737726",
+626 => x"80d33873",
+627 => x"5378529c",
+628 => x"1a0851a4",
+629 => x"1a085877",
+630 => x"2d800856",
+631 => x"80088024",
+632 => x"fd83388c",
+633 => x"1a2280c0",
+634 => x"075e7d8c",
+635 => x"1b23ff55",
+636 => x"fed73975",
+637 => x"53785277",
+638 => x"5181dd3f",
+639 => x"7908167a",
+640 => x"0c79518d",
+641 => x"953f8008",
+642 => x"802efcd9",
+643 => x"388c1a22",
+644 => x"80c0075e",
+645 => x"7d8c1b23",
+646 => x"ff55fead",
+647 => x"39767754",
+648 => x"79537852",
+649 => x"5681b13f",
+650 => x"881a0877",
+651 => x"31881b0c",
+652 => x"7908177a",
+653 => x"0cfcae39",
+654 => x"fa3d0d7a",
+655 => x"79028805",
+656 => x"a7053355",
+657 => x"53548374",
+658 => x"2780df38",
+659 => x"71830651",
+660 => x"7080d738",
+661 => x"71715755",
+662 => x"83517582",
+663 => x"802913ff",
+664 => x"12525670",
+665 => x"8025f338",
+666 => x"837427bc",
+667 => x"38740876",
+668 => x"327009f7",
+669 => x"fbfdff12",
+670 => x"06f88482",
+671 => x"81800651",
+672 => x"5170802e",
+673 => x"98387451",
+674 => x"80527033",
+675 => x"5772772e",
+676 => x"b9388111",
+677 => x"81135351",
+678 => x"837227ee",
+679 => x"38fc1484",
+680 => x"16565473",
+681 => x"8326c638",
+682 => x"7452ff14",
+683 => x"5170ff2e",
+684 => x"97387133",
+685 => x"5472742e",
+686 => x"98388112",
+687 => x"ff125252",
+688 => x"70ff2e09",
+689 => x"8106eb38",
+690 => x"80517080",
+691 => x"0c883d0d",
+692 => x"0471800c",
+693 => x"883d0d04",
+694 => x"fa3d0d78",
+695 => x"7a7c7272",
+696 => x"72595755",
+697 => x"58565774",
+698 => x"7727b238",
+699 => x"75155176",
+700 => x"7127aa38",
+701 => x"707618ff",
+702 => x"18535353",
+703 => x"70ff2e96",
+704 => x"38ff12ff",
+705 => x"14545272",
+706 => x"337234ff",
+707 => x"115170ff",
+708 => x"2e098106",
+709 => x"ec387680",
+710 => x"0c883d0d",
+711 => x"048f7627",
+712 => x"80e63874",
+713 => x"77078306",
+714 => x"517080dc",
+715 => x"38767552",
+716 => x"53707084",
+717 => x"05520873",
+718 => x"70840555",
+719 => x"0c727170",
+720 => x"84055308",
+721 => x"71708405",
+722 => x"530c7170",
+723 => x"84055308",
+724 => x"71708405",
+725 => x"530c7170",
+726 => x"84055308",
+727 => x"71708405",
+728 => x"530cf015",
+729 => x"5553738f",
+730 => x"26c73883",
+731 => x"74279538",
+732 => x"70708405",
+733 => x"52087370",
+734 => x"8405550c",
+735 => x"fc145473",
+736 => x"8326ed38",
+737 => x"72715452",
+738 => x"ff145170",
+739 => x"ff2eff86",
+740 => x"38727081",
+741 => x"05543372",
+742 => x"70810554",
+743 => x"34ff1151",
+744 => x"ea39ef3d",
+745 => x"0d636567",
+746 => x"405d427b",
+747 => x"802e8582",
+748 => x"386151a9",
+749 => x"e73ff81c",
+750 => x"70841208",
+751 => x"70fc0670",
+752 => x"628b0570",
+753 => x"f8064159",
+754 => x"455c5f41",
+755 => x"57967427",
+756 => x"82c53880",
+757 => x"7b247e7c",
+758 => x"26075880",
+759 => x"5477742e",
+760 => x"09810682",
+761 => x"ab38787b",
+762 => x"2581fe38",
+763 => x"781780d7",
+764 => x"a00b8805",
+765 => x"085b5679",
+766 => x"762e84c5",
+767 => x"38841608",
+768 => x"70fe0617",
+769 => x"84110881",
+770 => x"06415555",
+771 => x"7e828d38",
+772 => x"74fc0658",
+773 => x"79762e84",
+774 => x"e3387818",
+775 => x"5f7e7b25",
+776 => x"81ff387c",
+777 => x"81065473",
+778 => x"82c13876",
+779 => x"77083184",
+780 => x"1108fc06",
+781 => x"56577580",
+782 => x"2e913879",
+783 => x"762e84f0",
+784 => x"38741819",
+785 => x"58777b25",
+786 => x"84913876",
+787 => x"802e829b",
+788 => x"38781556",
+789 => x"7a762482",
+790 => x"92388c17",
+791 => x"08881808",
+792 => x"718c120c",
+793 => x"88120c5e",
+794 => x"75598817",
+795 => x"61fc055b",
+796 => x"5679a426",
+797 => x"85ff387b",
+798 => x"76595593",
+799 => x"7a2780c9",
+800 => x"387b7084",
+801 => x"055d087c",
+802 => x"56760c74",
+803 => x"70840556",
+804 => x"088c180c",
+805 => x"9017589b",
+806 => x"7a27ae38",
+807 => x"74708405",
+808 => x"5608780c",
+809 => x"74708405",
+810 => x"56089418",
+811 => x"0c981758",
+812 => x"a37a2795",
+813 => x"38747084",
+814 => x"05560878",
+815 => x"0c747084",
+816 => x"0556089c",
+817 => x"180ca017",
+818 => x"58747084",
+819 => x"05560875",
+820 => x"5f787084",
+821 => x"055a0c77",
+822 => x"7e708405",
+823 => x"40087170",
+824 => x"8405530c",
+825 => x"7e08710c",
+826 => x"5d787b31",
+827 => x"56758f26",
+828 => x"80c93884",
+829 => x"17088106",
+830 => x"79078418",
+831 => x"0c781784",
+832 => x"11088107",
+833 => x"84120c5b",
+834 => x"6151a791",
+835 => x"3f881754",
+836 => x"73800c93",
+837 => x"3d0d0490",
+838 => x"5bfdb839",
+839 => x"7756fe83",
+840 => x"398c1608",
+841 => x"88170871",
+842 => x"8c120c88",
+843 => x"120c587e",
+844 => x"707c3157",
+845 => x"598f7627",
+846 => x"ffb9387a",
+847 => x"17841808",
+848 => x"81067c07",
+849 => x"84190c76",
+850 => x"81078412",
+851 => x"0c761184",
+852 => x"11088107",
+853 => x"84120c5b",
+854 => x"88055261",
+855 => x"518fda3f",
+856 => x"6151a6b9",
+857 => x"3f881754",
+858 => x"ffa6397d",
+859 => x"52615197",
+860 => x"d73f8008",
+861 => x"5a800880",
+862 => x"2e81ab38",
+863 => x"8008f805",
+864 => x"60840508",
+865 => x"fe066105",
+866 => x"58557477",
+867 => x"2e83f238",
+868 => x"fc195877",
+869 => x"a42681b0",
+870 => x"387b8008",
+871 => x"56579378",
+872 => x"2780dc38",
+873 => x"7b707084",
+874 => x"05520880",
+875 => x"08708405",
+876 => x"800c0c80",
+877 => x"08717084",
+878 => x"0553085d",
+879 => x"567b7670",
+880 => x"8405580c",
+881 => x"579b7827",
+882 => x"b6387670",
+883 => x"84055808",
+884 => x"75708405",
+885 => x"570c7670",
+886 => x"84055808",
+887 => x"75708405",
+888 => x"570ca378",
+889 => x"27993876",
+890 => x"70840558",
+891 => x"08757084",
+892 => x"05570c76",
+893 => x"70840558",
+894 => x"08757084",
+895 => x"05570c76",
+896 => x"70840558",
+897 => x"08775e75",
+898 => x"70840557",
+899 => x"0c747d70",
+900 => x"84055f08",
+901 => x"71708405",
+902 => x"530c7d08",
+903 => x"710c5f7b",
+904 => x"5261518e",
+905 => x"943f6151",
+906 => x"a4f33f79",
+907 => x"800c933d",
+908 => x"0d047d52",
+909 => x"61519690",
+910 => x"3f800880",
+911 => x"0c933d0d",
+912 => x"04841608",
+913 => x"55fbc939",
+914 => x"77537b52",
+915 => x"800851a2",
+916 => x"a53f7b52",
+917 => x"61518de1",
+918 => x"3fcc398c",
+919 => x"16088817",
+920 => x"08718c12",
+921 => x"0c88120c",
+922 => x"5d8c1708",
+923 => x"88180871",
+924 => x"8c120c88",
+925 => x"120c5977",
+926 => x"59fbef39",
+927 => x"7818901c",
+928 => x"40557e75",
+929 => x"24fb9c38",
+930 => x"7a177080",
+931 => x"d7a00b88",
+932 => x"050c757c",
+933 => x"31810784",
+934 => x"120c5684",
+935 => x"17088106",
+936 => x"7b078418",
+937 => x"0c6151a3",
+938 => x"f43f8817",
+939 => x"54fce139",
+940 => x"74181990",
+941 => x"1c5e5a7c",
+942 => x"7a24fb8f",
+943 => x"388c1708",
+944 => x"88180871",
+945 => x"8c120c88",
+946 => x"120c5e88",
+947 => x"1761fc05",
+948 => x"575975a4",
+949 => x"2681b638",
+950 => x"7b795955",
+951 => x"93762780",
+952 => x"c9387b70",
+953 => x"84055d08",
+954 => x"7c56790c",
+955 => x"74708405",
+956 => x"56088c18",
+957 => x"0c901758",
+958 => x"9b7627ae",
+959 => x"38747084",
+960 => x"05560878",
+961 => x"0c747084",
+962 => x"05560894",
+963 => x"180c9817",
+964 => x"58a37627",
+965 => x"95387470",
+966 => x"84055608",
+967 => x"780c7470",
+968 => x"84055608",
+969 => x"9c180ca0",
+970 => x"17587470",
+971 => x"84055608",
+972 => x"75417870",
+973 => x"84055a0c",
+974 => x"77607084",
+975 => x"05420871",
+976 => x"70840553",
+977 => x"0c600871",
+978 => x"0c5e7a17",
+979 => x"7080d7a0",
+980 => x"0b88050c",
+981 => x"7a7c3181",
+982 => x"0784120c",
+983 => x"58841708",
+984 => x"81067b07",
+985 => x"84180c61",
+986 => x"51a2b23f",
+987 => x"78547380",
+988 => x"0c933d0d",
+989 => x"0479537b",
+990 => x"5275519f",
+991 => x"f93ffae9",
+992 => x"39841508",
+993 => x"fc061960",
+994 => x"5859fadd",
+995 => x"3975537b",
+996 => x"5278519f",
+997 => x"e13f7a17",
+998 => x"7080d7a0",
+999 => x"0b88050c",
+1000 => x"7a7c3181",
+1001 => x"0784120c",
+1002 => x"58841708",
+1003 => x"81067b07",
+1004 => x"84180c61",
+1005 => x"51a1e63f",
+1006 => x"7854ffb2",
+1007 => x"39fa3d0d",
+1008 => x"7880cfe4",
+1009 => x"085455b8",
+1010 => x"1308802e",
+1011 => x"81af388c",
+1012 => x"15227083",
+1013 => x"ffff0670",
+1014 => x"832a8132",
+1015 => x"81065555",
+1016 => x"5672802e",
+1017 => x"80da3873",
+1018 => x"842a8132",
+1019 => x"810657ff",
+1020 => x"537680f2",
+1021 => x"3873822a",
+1022 => x"81065473",
+1023 => x"802eb938",
+1024 => x"b0150854",
+1025 => x"73802e9c",
+1026 => x"3880c015",
+1027 => x"5373732e",
+1028 => x"8f387352",
+1029 => x"80cfe408",
+1030 => x"518a9e3f",
+1031 => x"8c152256",
+1032 => x"76b0160c",
+1033 => x"75db0657",
+1034 => x"768c1623",
+1035 => x"800b8416",
+1036 => x"0c901508",
+1037 => x"750c7656",
+1038 => x"75880754",
+1039 => x"738c1623",
+1040 => x"90150880",
+1041 => x"2ebf388c",
+1042 => x"15227081",
+1043 => x"06555373",
+1044 => x"9c38720a",
+1045 => x"100a8106",
+1046 => x"56758538",
+1047 => x"94150854",
+1048 => x"7388160c",
+1049 => x"80537280",
+1050 => x"0c883d0d",
+1051 => x"04800b88",
+1052 => x"160c9415",
+1053 => x"08309816",
+1054 => x"0c8053ea",
+1055 => x"39725182",
+1056 => x"a63ffecb",
+1057 => x"3974518f",
+1058 => x"bc3f8c15",
+1059 => x"22708106",
+1060 => x"55537380",
+1061 => x"2effbb38",
+1062 => x"d439f83d",
+1063 => x"0d7a5776",
+1064 => x"802e8197",
+1065 => x"3880cfe4",
+1066 => x"0854b814",
+1067 => x"08802e80",
+1068 => x"eb388c17",
+1069 => x"2270902b",
+1070 => x"70902c70",
+1071 => x"832a8132",
+1072 => x"81065b5b",
+1073 => x"57557780",
+1074 => x"cb389017",
+1075 => x"08567580",
+1076 => x"2e80c138",
+1077 => x"76087631",
+1078 => x"76780c79",
+1079 => x"83065555",
+1080 => x"73853894",
+1081 => x"17085877",
+1082 => x"88180c80",
+1083 => x"7525a538",
+1084 => x"74537552",
+1085 => x"9c170851",
+1086 => x"a4170854",
+1087 => x"732d800b",
+1088 => x"80082580",
+1089 => x"c9388008",
+1090 => x"16758008",
+1091 => x"31565674",
+1092 => x"8024dd38",
+1093 => x"800b800c",
+1094 => x"8a3d0d04",
+1095 => x"73518187",
+1096 => x"3f8c1722",
+1097 => x"70902b70",
+1098 => x"902c7083",
+1099 => x"2a813281",
+1100 => x"065b5b57",
+1101 => x"5577dd38",
+1102 => x"ff9039a1",
+1103 => x"9a5280cf",
+1104 => x"e408518c",
+1105 => x"d03f8008",
+1106 => x"800c8a3d",
+1107 => x"0d048c17",
+1108 => x"2280c007",
+1109 => x"58778c18",
+1110 => x"23ff0b80",
+1111 => x"0c8a3d0d",
+1112 => x"04fa3d0d",
+1113 => x"797080dc",
+1114 => x"298c1154",
+1115 => x"7a535657",
+1116 => x"8fd63f80",
+1117 => x"08800855",
+1118 => x"56800880",
+1119 => x"2ea23880",
+1120 => x"088c0554",
+1121 => x"800b8008",
+1122 => x"0c768008",
+1123 => x"84050c73",
+1124 => x"80088805",
+1125 => x"0c745380",
+1126 => x"5273519c",
+1127 => x"f53f7554",
+1128 => x"73800c88",
+1129 => x"3d0d0470",
+1130 => x"707074a8",
+1131 => x"e60bbc12",
+1132 => x"0c53810b",
+1133 => x"b8140c80",
+1134 => x"0b84dc14",
+1135 => x"0c830b84",
+1136 => x"e0140c84",
+1137 => x"e81384e4",
+1138 => x"140c8413",
+1139 => x"08518070",
+1140 => x"720c7084",
+1141 => x"130c7088",
+1142 => x"130c5284",
+1143 => x"0b8c1223",
+1144 => x"718e1223",
+1145 => x"7190120c",
+1146 => x"7194120c",
+1147 => x"7198120c",
+1148 => x"709c120c",
+1149 => x"80c1d50b",
+1150 => x"a0120c80",
+1151 => x"c2a10ba4",
+1152 => x"120c80c3",
+1153 => x"9d0ba812",
+1154 => x"0c80c3ee",
+1155 => x"0bac120c",
+1156 => x"88130872",
+1157 => x"710c7284",
+1158 => x"120c7288",
+1159 => x"120c5189",
+1160 => x"0b8c1223",
+1161 => x"810b8e12",
+1162 => x"23719012",
+1163 => x"0c719412",
+1164 => x"0c719812",
+1165 => x"0c709c12",
+1166 => x"0c80c1d5",
+1167 => x"0ba0120c",
+1168 => x"80c2a10b",
+1169 => x"a4120c80",
+1170 => x"c39d0ba8",
+1171 => x"120c80c3",
+1172 => x"ee0bac12",
+1173 => x"0c8c1308",
+1174 => x"72710c72",
+1175 => x"84120c72",
+1176 => x"88120c51",
+1177 => x"8a0b8c12",
+1178 => x"23820b8e",
+1179 => x"12237190",
+1180 => x"120c7194",
+1181 => x"120c7198",
+1182 => x"120c709c",
+1183 => x"120c80c1",
+1184 => x"d50ba012",
+1185 => x"0c80c2a1",
+1186 => x"0ba4120c",
+1187 => x"80c39d0b",
+1188 => x"a8120c80",
+1189 => x"c3ee0bac",
+1190 => x"120c5050",
+1191 => x"5004f83d",
+1192 => x"0d7a80cf",
+1193 => x"e408b811",
+1194 => x"08575758",
+1195 => x"7481ec38",
+1196 => x"a8e60bbc",
+1197 => x"170c810b",
+1198 => x"b8170c74",
+1199 => x"84dc170c",
+1200 => x"830b84e0",
+1201 => x"170c84e8",
+1202 => x"1684e417",
+1203 => x"0c841608",
+1204 => x"75710c75",
+1205 => x"84120c75",
+1206 => x"88120c59",
+1207 => x"840b8c1a",
+1208 => x"23748e1a",
+1209 => x"2374901a",
+1210 => x"0c74941a",
+1211 => x"0c74981a",
+1212 => x"0c789c1a",
+1213 => x"0c80c1d5",
+1214 => x"0ba01a0c",
+1215 => x"80c2a10b",
+1216 => x"a41a0c80",
+1217 => x"c39d0ba8",
+1218 => x"1a0c80c3",
+1219 => x"ee0bac1a",
+1220 => x"0c881608",
+1221 => x"75710c75",
+1222 => x"84120c75",
+1223 => x"88120c57",
+1224 => x"890b8c18",
+1225 => x"23810b8e",
+1226 => x"18237490",
+1227 => x"180c7494",
+1228 => x"180c7498",
+1229 => x"180c769c",
+1230 => x"180c80c1",
+1231 => x"d50ba018",
+1232 => x"0c80c2a1",
+1233 => x"0ba4180c",
+1234 => x"80c39d0b",
+1235 => x"a8180c80",
+1236 => x"c3ee0bac",
+1237 => x"180c8c16",
+1238 => x"0875710c",
+1239 => x"7584120c",
+1240 => x"7588120c",
+1241 => x"548a0b8c",
+1242 => x"1523820b",
+1243 => x"8e152374",
+1244 => x"90150c74",
+1245 => x"94150c74",
+1246 => x"98150c73",
+1247 => x"9c150c80",
+1248 => x"c1d50ba0",
+1249 => x"150c80c2",
+1250 => x"a10ba415",
+1251 => x"0c80c39d",
+1252 => x"0ba8150c",
+1253 => x"80c3ee0b",
+1254 => x"ac150c84",
+1255 => x"dc168811",
+1256 => x"08841208",
+1257 => x"ff055757",
+1258 => x"57807524",
+1259 => x"9f388c16",
+1260 => x"2270902b",
+1261 => x"70902c51",
+1262 => x"55597380",
+1263 => x"2e80ed38",
+1264 => x"80dc16ff",
+1265 => x"16565674",
+1266 => x"8025e338",
+1267 => x"76085574",
+1268 => x"802e8f38",
+1269 => x"74881108",
+1270 => x"841208ff",
+1271 => x"05575757",
+1272 => x"c83982fc",
+1273 => x"5277518a",
+1274 => x"df3f8008",
+1275 => x"80085556",
+1276 => x"8008802e",
+1277 => x"a3388008",
+1278 => x"8c057580",
+1279 => x"080c5484",
+1280 => x"0b800884",
+1281 => x"050c7380",
+1282 => x"0888050c",
+1283 => x"82f05374",
+1284 => x"52735197",
+1285 => x"fd3f7554",
+1286 => x"7374780c",
+1287 => x"5573ffb4",
+1288 => x"388c780c",
+1289 => x"800b800c",
+1290 => x"8a3d0d04",
+1291 => x"810b8c17",
+1292 => x"2373760c",
+1293 => x"7388170c",
+1294 => x"7384170c",
+1295 => x"7390170c",
+1296 => x"7394170c",
+1297 => x"7398170c",
+1298 => x"ff0b8e17",
+1299 => x"2373b017",
+1300 => x"0c73b417",
+1301 => x"0c7380c4",
+1302 => x"170c7380",
+1303 => x"c8170c75",
+1304 => x"800c8a3d",
+1305 => x"0d047070",
+1306 => x"a19a5273",
+1307 => x"5186a63f",
+1308 => x"50500470",
+1309 => x"70a19a52",
+1310 => x"80cfe408",
+1311 => x"5186963f",
+1312 => x"505004fb",
+1313 => x"3d0d7770",
+1314 => x"52569890",
+1315 => x"3f80d7a0",
+1316 => x"0b880508",
+1317 => x"841108fc",
+1318 => x"06707b31",
+1319 => x"9fef05e0",
+1320 => x"8006e080",
+1321 => x"05525555",
+1322 => x"a0807524",
+1323 => x"94388052",
+1324 => x"755197ea",
+1325 => x"3f80d7a8",
+1326 => x"08145372",
+1327 => x"80082e8f",
+1328 => x"38755197",
+1329 => x"d83f8053",
+1330 => x"72800c87",
+1331 => x"3d0d0474",
+1332 => x"30527551",
+1333 => x"97c83f80",
+1334 => x"08ff2ea8",
+1335 => x"3880d7a0",
+1336 => x"0b880508",
+1337 => x"74763181",
+1338 => x"0784120c",
+1339 => x"5380d6e4",
+1340 => x"08753180",
+1341 => x"d6e40c75",
+1342 => x"5197a23f",
+1343 => x"810b800c",
+1344 => x"873d0d04",
+1345 => x"80527551",
+1346 => x"97943f80",
+1347 => x"d7a00b88",
+1348 => x"05088008",
+1349 => x"71315454",
+1350 => x"8f7325ff",
+1351 => x"a4388008",
+1352 => x"80d79408",
+1353 => x"3180d6e4",
+1354 => x"0c728107",
+1355 => x"84150c75",
+1356 => x"5196ea3f",
+1357 => x"8053ff90",
+1358 => x"39f73d0d",
+1359 => x"7b7d545a",
+1360 => x"72802e82",
+1361 => x"83387951",
+1362 => x"96d23ff8",
+1363 => x"13841108",
+1364 => x"70fe0670",
+1365 => x"13841108",
+1366 => x"fc065c57",
+1367 => x"58545780",
+1368 => x"d7a80874",
+1369 => x"2e82de38",
+1370 => x"7784150c",
+1371 => x"80738106",
+1372 => x"56597479",
+1373 => x"2e81d538",
+1374 => x"77148411",
+1375 => x"08810656",
+1376 => x"5374a038",
+1377 => x"77165678",
+1378 => x"81e63888",
+1379 => x"14085574",
+1380 => x"80d7a82e",
+1381 => x"82f9388c",
+1382 => x"1408708c",
+1383 => x"170c7588",
+1384 => x"120c5875",
+1385 => x"81078418",
+1386 => x"0c751776",
+1387 => x"710c5478",
+1388 => x"81913883",
+1389 => x"ff762781",
+1390 => x"c8387589",
+1391 => x"2a76832a",
+1392 => x"54547380",
+1393 => x"2ebf3875",
+1394 => x"862ab805",
+1395 => x"53847427",
+1396 => x"b43880db",
+1397 => x"14539474",
+1398 => x"27ab3875",
+1399 => x"8c2a80ee",
+1400 => x"055380d4",
+1401 => x"74279e38",
+1402 => x"758f2a80",
+1403 => x"f7055382",
+1404 => x"d4742791",
+1405 => x"3875922a",
+1406 => x"80fc0553",
+1407 => x"8ad47427",
+1408 => x"843880fe",
+1409 => x"53721010",
+1410 => x"1080d7a0",
+1411 => x"05881108",
+1412 => x"55557375",
+1413 => x"2e82bf38",
+1414 => x"841408fc",
+1415 => x"06597579",
+1416 => x"278d3888",
+1417 => x"14085473",
+1418 => x"752e0981",
+1419 => x"06ea388c",
+1420 => x"1408708c",
+1421 => x"190c7488",
+1422 => x"190c7788",
+1423 => x"120c5576",
+1424 => x"8c150c79",
+1425 => x"5194d63f",
+1426 => x"8b3d0d04",
+1427 => x"76087771",
+1428 => x"31587605",
+1429 => x"88180856",
+1430 => x"567480d7",
+1431 => x"a82e80e0",
+1432 => x"388c1708",
+1433 => x"708c170c",
+1434 => x"7588120c",
+1435 => x"53fe8939",
+1436 => x"8814088c",
+1437 => x"1508708c",
+1438 => x"130c5988",
+1439 => x"190cfea3",
+1440 => x"3975832a",
+1441 => x"70545480",
+1442 => x"74248198",
+1443 => x"3872822c",
+1444 => x"81712b80",
+1445 => x"d7a40807",
+1446 => x"80d7a00b",
+1447 => x"84050c74",
+1448 => x"10101080",
+1449 => x"d7a00588",
+1450 => x"1108718c",
+1451 => x"1b0c7088",
+1452 => x"1b0c7988",
+1453 => x"130c565a",
+1454 => x"55768c15",
+1455 => x"0cff8439",
+1456 => x"8159fdb4",
+1457 => x"39771673",
+1458 => x"81065455",
+1459 => x"72983876",
+1460 => x"08777131",
+1461 => x"5875058c",
+1462 => x"18088819",
+1463 => x"08718c12",
+1464 => x"0c88120c",
+1465 => x"55557481",
+1466 => x"0784180c",
+1467 => x"7680d7a0",
+1468 => x"0b88050c",
+1469 => x"80d79c08",
+1470 => x"7526fec7",
+1471 => x"3880d798",
+1472 => x"08527951",
+1473 => x"fafd3f79",
+1474 => x"5193923f",
+1475 => x"feba3981",
+1476 => x"778c170c",
+1477 => x"7788170c",
+1478 => x"758c190c",
+1479 => x"7588190c",
+1480 => x"59fd8039",
+1481 => x"83147082",
+1482 => x"2c81712b",
+1483 => x"80d7a408",
+1484 => x"0780d7a0",
+1485 => x"0b84050c",
+1486 => x"75101010",
+1487 => x"80d7a005",
+1488 => x"88110871",
+1489 => x"8c1c0c70",
+1490 => x"881c0c7a",
+1491 => x"88130c57",
+1492 => x"5b5653fe",
+1493 => x"e4398073",
+1494 => x"24a33872",
+1495 => x"822c8171",
+1496 => x"2b80d7a4",
+1497 => x"080780d7",
+1498 => x"a00b8405",
+1499 => x"0c58748c",
+1500 => x"180c7388",
+1501 => x"180c7688",
+1502 => x"160cfdc3",
+1503 => x"39831370",
+1504 => x"822c8171",
+1505 => x"2b80d7a4",
+1506 => x"080780d7",
+1507 => x"a00b8405",
+1508 => x"0c5953da",
+1509 => x"39f93d0d",
+1510 => x"797b5853",
+1511 => x"800b80cf",
+1512 => x"e4085356",
+1513 => x"72722ebc",
+1514 => x"3884dc13",
+1515 => x"5574762e",
+1516 => x"b3388815",
+1517 => x"08841608",
+1518 => x"ff055454",
+1519 => x"80732499",
+1520 => x"388c1422",
+1521 => x"70902b53",
+1522 => x"587180d4",
+1523 => x"3880dc14",
+1524 => x"ff145454",
+1525 => x"728025e9",
+1526 => x"38740855",
+1527 => x"74d43880",
+1528 => x"cfe40852",
+1529 => x"84dc1255",
+1530 => x"74802ead",
+1531 => x"38881508",
+1532 => x"841608ff",
+1533 => x"05545480",
+1534 => x"73249838",
+1535 => x"8c142270",
+1536 => x"902b5358",
+1537 => x"71ad3880",
+1538 => x"dc14ff14",
+1539 => x"54547280",
+1540 => x"25ea3874",
+1541 => x"085574d5",
+1542 => x"3875800c",
+1543 => x"893d0d04",
+1544 => x"7351762d",
+1545 => x"75800807",
+1546 => x"80dc15ff",
+1547 => x"15555556",
+1548 => x"ffa23973",
+1549 => x"51762d75",
+1550 => x"80080780",
+1551 => x"dc15ff15",
+1552 => x"555556ca",
+1553 => x"39ea3d0d",
+1554 => x"688c1122",
+1555 => x"700a100a",
+1556 => x"81065758",
+1557 => x"567480e4",
+1558 => x"388e1622",
+1559 => x"70902b70",
+1560 => x"902c5155",
+1561 => x"58807424",
+1562 => x"b138983d",
+1563 => x"c4055373",
+1564 => x"5280cfe4",
+1565 => x"08519481",
+1566 => x"3f800b80",
+1567 => x"08249738",
+1568 => x"7983e080",
+1569 => x"06547380",
+1570 => x"c0802e81",
+1571 => x"8f387382",
+1572 => x"80802e81",
+1573 => x"91388c16",
+1574 => x"22577690",
+1575 => x"80075473",
+1576 => x"8c172388",
+1577 => x"805280cf",
+1578 => x"e4085181",
+1579 => x"9b3f8008",
+1580 => x"9d388c16",
+1581 => x"22820755",
+1582 => x"748c1723",
+1583 => x"80c31670",
+1584 => x"770c9017",
+1585 => x"0c810b94",
+1586 => x"170c983d",
+1587 => x"0d0480cf",
+1588 => x"e408a8e6",
+1589 => x"0bbc120c",
+1590 => x"588c1622",
+1591 => x"81800754",
+1592 => x"738c1723",
+1593 => x"8008760c",
+1594 => x"80089017",
+1595 => x"0c88800b",
+1596 => x"94170c74",
+1597 => x"802ed338",
+1598 => x"8e162270",
+1599 => x"902b7090",
+1600 => x"2c535654",
+1601 => x"9afe3f80",
+1602 => x"08802eff",
+1603 => x"bd388c16",
+1604 => x"22810757",
+1605 => x"768c1723",
+1606 => x"983d0d04",
+1607 => x"810b8c17",
+1608 => x"225855fe",
+1609 => x"f539a816",
+1610 => x"0880c39d",
+1611 => x"2e098106",
+1612 => x"fee4388c",
+1613 => x"16228880",
+1614 => x"0754738c",
+1615 => x"17238880",
+1616 => x"0b80cc17",
+1617 => x"0cfedc39",
+1618 => x"f43d0d7e",
+1619 => x"608b1170",
+1620 => x"f8065b55",
+1621 => x"555d7296",
+1622 => x"26833890",
+1623 => x"58807824",
+1624 => x"74792607",
+1625 => x"55805474",
+1626 => x"742e0981",
+1627 => x"0680ca38",
+1628 => x"7c518ea8",
+1629 => x"3f7783f7",
+1630 => x"2680c538",
+1631 => x"77832a70",
+1632 => x"10101080",
+1633 => x"d7a0058c",
+1634 => x"11085858",
+1635 => x"5475772e",
+1636 => x"81f03884",
+1637 => x"1608fc06",
+1638 => x"8c170888",
+1639 => x"1808718c",
+1640 => x"120c8812",
+1641 => x"0c5b7605",
+1642 => x"84110881",
+1643 => x"0784120c",
+1644 => x"537c518d",
+1645 => x"e83f8816",
+1646 => x"5473800c",
+1647 => x"8e3d0d04",
+1648 => x"77892a78",
+1649 => x"832a5854",
+1650 => x"73802ebf",
+1651 => x"3877862a",
+1652 => x"b8055784",
+1653 => x"7427b438",
+1654 => x"80db1457",
+1655 => x"947427ab",
+1656 => x"38778c2a",
+1657 => x"80ee0557",
+1658 => x"80d47427",
+1659 => x"9e38778f",
+1660 => x"2a80f705",
+1661 => x"5782d474",
+1662 => x"27913877",
+1663 => x"922a80fc",
+1664 => x"05578ad4",
+1665 => x"74278438",
+1666 => x"80fe5776",
+1667 => x"10101080",
+1668 => x"d7a0058c",
+1669 => x"11085653",
+1670 => x"74732ea3",
+1671 => x"38841508",
+1672 => x"fc067079",
+1673 => x"31555673",
+1674 => x"8f2488e4",
+1675 => x"38738025",
+1676 => x"88e6388c",
+1677 => x"15085574",
+1678 => x"732e0981",
+1679 => x"06df3881",
+1680 => x"175980d7",
+1681 => x"b0085675",
+1682 => x"80d7a82e",
+1683 => x"82cc3884",
+1684 => x"1608fc06",
+1685 => x"70793155",
+1686 => x"55738f24",
+1687 => x"bb3880d7",
+1688 => x"a80b80d7",
+1689 => x"b40c80d7",
+1690 => x"a80b80d7",
+1691 => x"b00c8074",
+1692 => x"2480db38",
+1693 => x"74168411",
+1694 => x"08810784",
+1695 => x"120c53fe",
+1696 => x"b0398816",
+1697 => x"8c110857",
+1698 => x"5975792e",
+1699 => x"098106fe",
+1700 => x"82388214",
+1701 => x"59ffab39",
+1702 => x"77167881",
+1703 => x"0784180c",
+1704 => x"7080d7b4",
+1705 => x"0c7080d7",
+1706 => x"b00c80d7",
+1707 => x"a80b8c12",
+1708 => x"0c8c1108",
+1709 => x"88120c74",
+1710 => x"81078412",
+1711 => x"0c740574",
+1712 => x"710c5b7c",
+1713 => x"518bd63f",
+1714 => x"881654fd",
+1715 => x"ec3983ff",
+1716 => x"75278391",
+1717 => x"3874892a",
+1718 => x"75832a54",
+1719 => x"5473802e",
+1720 => x"bf387486",
+1721 => x"2ab80553",
+1722 => x"847427b4",
+1723 => x"3880db14",
+1724 => x"53947427",
+1725 => x"ab38748c",
+1726 => x"2a80ee05",
+1727 => x"5380d474",
+1728 => x"279e3874",
+1729 => x"8f2a80f7",
+1730 => x"055382d4",
+1731 => x"74279138",
+1732 => x"74922a80",
+1733 => x"fc05538a",
+1734 => x"d4742784",
+1735 => x"3880fe53",
+1736 => x"72101010",
+1737 => x"80d7a005",
+1738 => x"88110855",
+1739 => x"5773772e",
+1740 => x"868b3884",
+1741 => x"1408fc06",
+1742 => x"5b747b27",
+1743 => x"8d388814",
+1744 => x"08547377",
+1745 => x"2e098106",
+1746 => x"ea388c14",
+1747 => x"0880d7a0",
+1748 => x"0b840508",
+1749 => x"718c190c",
+1750 => x"7588190c",
+1751 => x"7788130c",
+1752 => x"5c57758c",
+1753 => x"150c7853",
+1754 => x"80792483",
+1755 => x"98387282",
+1756 => x"2c81712b",
+1757 => x"5656747b",
+1758 => x"2680ca38",
+1759 => x"7a750657",
+1760 => x"7682a338",
+1761 => x"78fc0684",
+1762 => x"05597410",
+1763 => x"707c0655",
+1764 => x"55738292",
+1765 => x"38841959",
+1766 => x"f13980d7",
+1767 => x"a00b8405",
+1768 => x"0879545b",
+1769 => x"788025c6",
+1770 => x"3882da39",
+1771 => x"74097b06",
+1772 => x"7080d7a0",
+1773 => x"0b84050c",
+1774 => x"5b741055",
+1775 => x"747b2685",
+1776 => x"387485bc",
+1777 => x"3880d7a0",
+1778 => x"0b880508",
+1779 => x"70841208",
+1780 => x"fc06707b",
+1781 => x"317b7226",
+1782 => x"8f722507",
+1783 => x"5d575c5c",
+1784 => x"5578802e",
+1785 => x"80d93879",
+1786 => x"1580d798",
+1787 => x"08199011",
+1788 => x"59545680",
+1789 => x"d79408ff",
+1790 => x"2e8838a0",
+1791 => x"8f13e080",
+1792 => x"06577652",
+1793 => x"7c518996",
+1794 => x"3f800854",
+1795 => x"8008ff2e",
+1796 => x"90388008",
+1797 => x"762782a7",
+1798 => x"387480d7",
+1799 => x"a02e829f",
+1800 => x"3880d7a0",
+1801 => x"0b880508",
+1802 => x"55841508",
+1803 => x"fc067079",
+1804 => x"31797226",
+1805 => x"8f722507",
+1806 => x"5d555a7a",
+1807 => x"83f23877",
+1808 => x"81078416",
+1809 => x"0c771570",
+1810 => x"80d7a00b",
+1811 => x"88050c74",
+1812 => x"81078412",
+1813 => x"0c567c51",
+1814 => x"88c33f88",
+1815 => x"15547380",
+1816 => x"0c8e3d0d",
+1817 => x"0474832a",
+1818 => x"70545480",
+1819 => x"7424819b",
+1820 => x"3872822c",
+1821 => x"81712b80",
+1822 => x"d7a40807",
+1823 => x"7080d7a0",
+1824 => x"0b84050c",
+1825 => x"75101010",
+1826 => x"80d7a005",
+1827 => x"88110871",
+1828 => x"8c1b0c70",
+1829 => x"881b0c79",
+1830 => x"88130c57",
+1831 => x"555c5575",
+1832 => x"8c150cfd",
+1833 => x"c1397879",
+1834 => x"10101080",
+1835 => x"d7a00570",
+1836 => x"565b5c8c",
+1837 => x"14085675",
+1838 => x"742ea338",
+1839 => x"841608fc",
+1840 => x"06707931",
+1841 => x"5853768f",
+1842 => x"2483f138",
+1843 => x"76802584",
+1844 => x"af388c16",
+1845 => x"08567574",
+1846 => x"2e098106",
+1847 => x"df388814",
+1848 => x"811a7083",
+1849 => x"06555a54",
+1850 => x"72c9387b",
+1851 => x"83065675",
+1852 => x"802efdb8",
+1853 => x"38ff1cf8",
+1854 => x"1b5b5c88",
+1855 => x"1a087a2e",
+1856 => x"ea38fdb5",
+1857 => x"39831953",
+1858 => x"fce43983",
+1859 => x"1470822c",
+1860 => x"81712b80",
+1861 => x"d7a40807",
+1862 => x"7080d7a0",
+1863 => x"0b84050c",
+1864 => x"76101010",
+1865 => x"80d7a005",
+1866 => x"88110871",
+1867 => x"8c1c0c70",
+1868 => x"881c0c7a",
+1869 => x"88130c58",
+1870 => x"535d5653",
+1871 => x"fee13980",
+1872 => x"d6e40817",
+1873 => x"59800876",
+1874 => x"2e818b38",
+1875 => x"80d79408",
+1876 => x"ff2e848e",
+1877 => x"38737631",
+1878 => x"1980d6e4",
+1879 => x"0c738706",
+1880 => x"70565372",
+1881 => x"802e8838",
+1882 => x"88733170",
+1883 => x"15555576",
+1884 => x"149fff06",
+1885 => x"a0807131",
+1886 => x"1670547e",
+1887 => x"53515386",
+1888 => x"9d3f8008",
+1889 => x"568008ff",
+1890 => x"2e819e38",
+1891 => x"80d6e408",
+1892 => x"137080d6",
+1893 => x"e40c7475",
+1894 => x"80d7a00b",
+1895 => x"88050c77",
+1896 => x"76311581",
+1897 => x"07555659",
+1898 => x"7a80d7a0",
+1899 => x"2e83c038",
+1900 => x"798f2682",
+1901 => x"ef38810b",
+1902 => x"84150c84",
+1903 => x"1508fc06",
+1904 => x"70793179",
+1905 => x"72268f72",
+1906 => x"25075d55",
+1907 => x"5a7a802e",
+1908 => x"fced3880",
+1909 => x"db398008",
+1910 => x"9fff0655",
+1911 => x"74feed38",
+1912 => x"7880d6e4",
+1913 => x"0c80d7a0",
+1914 => x"0b880508",
+1915 => x"7a188107",
+1916 => x"84120c55",
+1917 => x"80d79008",
+1918 => x"79278638",
+1919 => x"7880d790",
+1920 => x"0c80d78c",
+1921 => x"087927fc",
+1922 => x"a0387880",
+1923 => x"d78c0c84",
+1924 => x"1508fc06",
+1925 => x"70793179",
+1926 => x"72268f72",
+1927 => x"25075d55",
+1928 => x"5a7a802e",
+1929 => x"fc993888",
+1930 => x"39807457",
+1931 => x"53fedd39",
+1932 => x"7c5184e9",
+1933 => x"3f800b80",
+1934 => x"0c8e3d0d",
+1935 => x"04807324",
+1936 => x"a5387282",
+1937 => x"2c81712b",
+1938 => x"80d7a408",
+1939 => x"077080d7",
+1940 => x"a00b8405",
+1941 => x"0c5c5a76",
+1942 => x"8c170c73",
+1943 => x"88170c75",
+1944 => x"88180cf9",
+1945 => x"fd398313",
+1946 => x"70822c81",
+1947 => x"712b80d7",
+1948 => x"a4080770",
+1949 => x"80d7a00b",
+1950 => x"84050c5d",
+1951 => x"5b53d839",
+1952 => x"7a75065c",
+1953 => x"7bfc9f38",
+1954 => x"84197510",
+1955 => x"5659f139",
+1956 => x"ff178105",
+1957 => x"59f7ab39",
+1958 => x"8c150888",
+1959 => x"1608718c",
+1960 => x"120c8812",
+1961 => x"0c597515",
+1962 => x"84110881",
+1963 => x"0784120c",
+1964 => x"587c5183",
+1965 => x"e83f8815",
+1966 => x"54fba339",
+1967 => x"77167881",
+1968 => x"0784180c",
+1969 => x"8c170888",
+1970 => x"1808718c",
+1971 => x"120c8812",
+1972 => x"0c5c7080",
+1973 => x"d7b40c70",
+1974 => x"80d7b00c",
+1975 => x"80d7a80b",
+1976 => x"8c120c8c",
+1977 => x"11088812",
+1978 => x"0c778107",
+1979 => x"84120c77",
+1980 => x"0577710c",
+1981 => x"557c5183",
+1982 => x"a43f8816",
+1983 => x"54f5ba39",
+1984 => x"72168411",
+1985 => x"08810784",
+1986 => x"120c588c",
+1987 => x"16088817",
+1988 => x"08718c12",
+1989 => x"0c88120c",
+1990 => x"577c5183",
+1991 => x"803f8816",
+1992 => x"54f59639",
+1993 => x"7284150c",
+1994 => x"f41af806",
+1995 => x"70841d08",
+1996 => x"81060784",
+1997 => x"1d0c701c",
+1998 => x"5556850b",
+1999 => x"84150c85",
+2000 => x"0b88150c",
+2001 => x"8f7627fd",
+2002 => x"ab38881b",
+2003 => x"527c51eb",
+2004 => x"e83f80d7",
+2005 => x"a00b8805",
+2006 => x"0880d6e4",
+2007 => x"085a55fd",
+2008 => x"93397880",
+2009 => x"d6e40c73",
+2010 => x"80d7940c",
+2011 => x"fbef3972",
+2012 => x"84150cfc",
+2013 => x"ff39fb3d",
+2014 => x"0d77707a",
+2015 => x"7c585553",
+2016 => x"568f7527",
+2017 => x"80e63872",
+2018 => x"76078306",
+2019 => x"517080dc",
+2020 => x"38757352",
+2021 => x"54707084",
+2022 => x"05520874",
+2023 => x"70840556",
+2024 => x"0c737170",
+2025 => x"84055308",
+2026 => x"71708405",
+2027 => x"530c7170",
+2028 => x"84055308",
+2029 => x"71708405",
+2030 => x"530c7170",
+2031 => x"84055308",
+2032 => x"71708405",
+2033 => x"530cf016",
+2034 => x"5654748f",
+2035 => x"26c73883",
+2036 => x"75279538",
+2037 => x"70708405",
+2038 => x"52087470",
+2039 => x"8405560c",
+2040 => x"fc155574",
+2041 => x"8326ed38",
+2042 => x"73715452",
+2043 => x"ff155170",
+2044 => x"ff2e9838",
+2045 => x"72708105",
+2046 => x"54337270",
+2047 => x"81055434",
+2048 => x"ff115170",
+2049 => x"ff2e0981",
+2050 => x"06ea3875",
+2051 => x"800c873d",
+2052 => x"0d04fb3d",
+2053 => x"0d777a71",
+2054 => x"028c05a3",
+2055 => x"05335854",
+2056 => x"54568373",
+2057 => x"2780d438",
+2058 => x"75830651",
+2059 => x"7080cc38",
+2060 => x"74882b75",
+2061 => x"07707190",
+2062 => x"2b075551",
+2063 => x"8f7327a7",
+2064 => x"38737270",
+2065 => x"8405540c",
+2066 => x"71747170",
+2067 => x"8405530c",
+2068 => x"74717084",
+2069 => x"05530c74",
+2070 => x"71708405",
+2071 => x"530cf014",
+2072 => x"5452728f",
+2073 => x"26db3883",
+2074 => x"73279038",
+2075 => x"73727084",
+2076 => x"05540cfc",
+2077 => x"13537283",
+2078 => x"26f238ff",
+2079 => x"135170ff",
+2080 => x"2e933874",
+2081 => x"72708105",
+2082 => x"5434ff11",
+2083 => x"5170ff2e",
+2084 => x"098106ef",
+2085 => x"3875800c",
+2086 => x"873d0d04",
+2087 => x"04047070",
+2088 => x"7070800b",
+2089 => x"80dfe00c",
+2090 => x"765184f3",
+2091 => x"3f800853",
+2092 => x"8008ff2e",
+2093 => x"89387280",
+2094 => x"0c505050",
+2095 => x"500480df",
+2096 => x"e0085473",
+2097 => x"802eef38",
+2098 => x"7574710c",
+2099 => x"5272800c",
+2100 => x"50505050",
+2101 => x"04f93d0d",
+2102 => x"797c557b",
+2103 => x"548e1122",
+2104 => x"70902b70",
+2105 => x"902c5557",
+2106 => x"80cfe408",
+2107 => x"53585683",
+2108 => x"f63f8008",
+2109 => x"57800b80",
+2110 => x"08249338",
+2111 => x"80d01608",
+2112 => x"80080580",
+2113 => x"d0170c76",
+2114 => x"800c893d",
+2115 => x"0d048c16",
+2116 => x"2283dfff",
+2117 => x"0655748c",
+2118 => x"17237680",
+2119 => x"0c893d0d",
+2120 => x"04fa3d0d",
+2121 => x"788c1122",
+2122 => x"70882a70",
+2123 => x"81065157",
+2124 => x"585674a9",
+2125 => x"388c1622",
+2126 => x"83dfff06",
+2127 => x"55748c17",
+2128 => x"237a5479",
+2129 => x"538e1622",
+2130 => x"70902b70",
+2131 => x"902c5456",
+2132 => x"80cfe408",
+2133 => x"525681b2",
+2134 => x"3f883d0d",
+2135 => x"04825480",
+2136 => x"538e1622",
+2137 => x"70902b70",
+2138 => x"902c5456",
+2139 => x"80cfe408",
+2140 => x"525782bb",
+2141 => x"3f8c1622",
+2142 => x"83dfff06",
+2143 => x"55748c17",
+2144 => x"237a5479",
+2145 => x"538e1622",
+2146 => x"70902b70",
+2147 => x"902c5456",
+2148 => x"80cfe408",
+2149 => x"525680f2",
+2150 => x"3f883d0d",
+2151 => x"04f93d0d",
+2152 => x"797c557b",
+2153 => x"548e1122",
+2154 => x"70902b70",
+2155 => x"902c5557",
+2156 => x"80cfe408",
+2157 => x"53585681",
+2158 => x"f63f8008",
+2159 => x"578008ff",
+2160 => x"2e99388c",
+2161 => x"1622a080",
+2162 => x"0755748c",
+2163 => x"17238008",
+2164 => x"80d0170c",
+2165 => x"76800c89",
+2166 => x"3d0d048c",
+2167 => x"162283df",
+2168 => x"ff065574",
+2169 => x"8c172376",
+2170 => x"800c893d",
+2171 => x"0d047070",
+2172 => x"70748e11",
+2173 => x"2270902b",
+2174 => x"70902c55",
+2175 => x"51515380",
+2176 => x"cfe40851",
+2177 => x"bd3f5050",
+2178 => x"5004fb3d",
+2179 => x"0d800b80",
+2180 => x"dfe00c7a",
+2181 => x"53795278",
+2182 => x"5182ff3f",
+2183 => x"80085580",
+2184 => x"08ff2e88",
+2185 => x"3874800c",
+2186 => x"873d0d04",
+2187 => x"80dfe008",
+2188 => x"5675802e",
+2189 => x"f0387776",
+2190 => x"710c5474",
+2191 => x"800c873d",
+2192 => x"0d047070",
+2193 => x"7070800b",
+2194 => x"80dfe00c",
+2195 => x"765184cc",
+2196 => x"3f800853",
+2197 => x"8008ff2e",
+2198 => x"89387280",
+2199 => x"0c505050",
+2200 => x"500480df",
+2201 => x"e0085473",
+2202 => x"802eef38",
+2203 => x"7574710c",
+2204 => x"5272800c",
+2205 => x"50505050",
+2206 => x"04fc3d0d",
+2207 => x"800b80df",
+2208 => x"e00c7852",
+2209 => x"775187b3",
+2210 => x"3f800854",
+2211 => x"8008ff2e",
+2212 => x"88387380",
+2213 => x"0c863d0d",
+2214 => x"0480dfe0",
+2215 => x"08557480",
+2216 => x"2ef03876",
+2217 => x"75710c53",
+2218 => x"73800c86",
+2219 => x"3d0d04fb",
+2220 => x"3d0d800b",
+2221 => x"80dfe00c",
+2222 => x"7a537952",
+2223 => x"7851848e",
+2224 => x"3f800855",
+2225 => x"8008ff2e",
+2226 => x"88387480",
+2227 => x"0c873d0d",
+2228 => x"0480dfe0",
+2229 => x"08567580",
+2230 => x"2ef03877",
+2231 => x"76710c54",
+2232 => x"74800c87",
+2233 => x"3d0d04fb",
+2234 => x"3d0d800b",
+2235 => x"80dfe00c",
+2236 => x"7a537952",
+2237 => x"78518296",
+2238 => x"3f800855",
+2239 => x"8008ff2e",
+2240 => x"88387480",
+2241 => x"0c873d0d",
+2242 => x"0480dfe0",
+2243 => x"08567580",
+2244 => x"2ef03877",
+2245 => x"76710c54",
+2246 => x"74800c87",
+2247 => x"3d0d0470",
+2248 => x"707080df",
+2249 => x"d0088938",
+2250 => x"80dfe40b",
+2251 => x"80dfd00c",
+2252 => x"80dfd008",
+2253 => x"75115252",
+2254 => x"ff537087",
+2255 => x"fb808026",
+2256 => x"88387080",
+2257 => x"dfd00c71",
+2258 => x"5372800c",
+2259 => x"50505004",
+2260 => x"fd3d0d80",
+2261 => x"0b80cfd8",
+2262 => x"08545472",
+2263 => x"812e9b38",
+2264 => x"7380dfd4",
+2265 => x"0cc2bf3f",
+2266 => x"c1963f80",
+2267 => x"dfa85281",
+2268 => x"51c3fd3f",
+2269 => x"80085186",
+2270 => x"c23f7280",
+2271 => x"dfd40cc2",
+2272 => x"a53fc0fc",
+2273 => x"3f80dfa8",
+2274 => x"528151c3",
+2275 => x"e33f8008",
+2276 => x"5186a83f",
+2277 => x"00ff3900",
+2278 => x"ff39f53d",
+2279 => x"0d7e6080",
+2280 => x"dfd40870",
+2281 => x"5b585b5b",
+2282 => x"7580c238",
+2283 => x"777a25a1",
+2284 => x"38771b70",
+2285 => x"337081ff",
+2286 => x"06585859",
+2287 => x"758a2e98",
+2288 => x"387681ff",
+2289 => x"0651c1bd",
+2290 => x"3f811858",
+2291 => x"797824e1",
+2292 => x"3879800c",
+2293 => x"8d3d0d04",
+2294 => x"8d51c1a9",
+2295 => x"3f783370",
+2296 => x"81ff0652",
+2297 => x"57c19e3f",
+2298 => x"811858e0",
+2299 => x"3979557a",
+2300 => x"547d5385",
+2301 => x"528d3dfc",
+2302 => x"0551c0c6",
+2303 => x"3f800856",
+2304 => x"85b23f7b",
+2305 => x"80080c75",
+2306 => x"800c8d3d",
+2307 => x"0d04f63d",
+2308 => x"0d7d7f80",
+2309 => x"dfd40870",
+2310 => x"5b585a5a",
+2311 => x"7580c138",
+2312 => x"777925b3",
+2313 => x"38c0b93f",
+2314 => x"800881ff",
+2315 => x"06708d32",
+2316 => x"7030709f",
+2317 => x"2a515157",
+2318 => x"57768a2e",
+2319 => x"80c43875",
+2320 => x"802ebf38",
+2321 => x"771a5676",
+2322 => x"76347651",
+2323 => x"c0b73f81",
+2324 => x"18587878",
+2325 => x"24cf3877",
+2326 => x"5675800c",
+2327 => x"8c3d0d04",
+2328 => x"78557954",
+2329 => x"7c538452",
+2330 => x"8c3dfc05",
+2331 => x"51ffbfd2",
+2332 => x"3f800856",
+2333 => x"84be3f7a",
+2334 => x"80080c75",
+2335 => x"800c8c3d",
+2336 => x"0d04771a",
+2337 => x"598a7934",
+2338 => x"8118588d",
+2339 => x"51ffbff5",
+2340 => x"3f8a51ff",
+2341 => x"bfef3f77",
+2342 => x"56ffbe39",
+2343 => x"fb3d0d80",
+2344 => x"dfd40870",
+2345 => x"56547388",
+2346 => x"3874800c",
+2347 => x"873d0d04",
+2348 => x"77538352",
+2349 => x"873dfc05",
+2350 => x"51ffbf86",
+2351 => x"3f800854",
+2352 => x"83f23f75",
+2353 => x"80080c73",
+2354 => x"800c873d",
+2355 => x"0d04fa3d",
+2356 => x"0d80dfd4",
+2357 => x"08802ea3",
+2358 => x"387a5579",
+2359 => x"54785386",
+2360 => x"52883dfc",
+2361 => x"0551ffbe",
+2362 => x"d93f8008",
+2363 => x"5683c53f",
+2364 => x"7680080c",
+2365 => x"75800c88",
+2366 => x"3d0d0483",
+2367 => x"b73f9d0b",
+2368 => x"80080cff",
+2369 => x"0b800c88",
+2370 => x"3d0d04f7",
+2371 => x"3d0d7b7d",
+2372 => x"5b59bc53",
+2373 => x"80527951",
+2374 => x"f5f83f80",
+2375 => x"70565798",
+2376 => x"56741970",
+2377 => x"3370782b",
+2378 => x"79078118",
+2379 => x"f81a5a58",
+2380 => x"59555884",
+2381 => x"7524ea38",
+2382 => x"767a2384",
+2383 => x"19588070",
+2384 => x"56579856",
+2385 => x"74187033",
+2386 => x"70782b79",
+2387 => x"078118f8",
+2388 => x"1a5a5859",
+2389 => x"51548475",
+2390 => x"24ea3876",
+2391 => x"821b2388",
+2392 => x"19588070",
+2393 => x"56579856",
+2394 => x"74187033",
+2395 => x"70782b79",
+2396 => x"078118f8",
+2397 => x"1a5a5859",
+2398 => x"51548475",
+2399 => x"24ea3876",
+2400 => x"841b0c8c",
+2401 => x"19588070",
+2402 => x"56579856",
+2403 => x"74187033",
+2404 => x"70782b79",
+2405 => x"078118f8",
+2406 => x"1a5a5859",
+2407 => x"51548475",
+2408 => x"24ea3876",
+2409 => x"881b2390",
+2410 => x"19588070",
+2411 => x"56579856",
+2412 => x"74187033",
+2413 => x"70782b79",
+2414 => x"078118f8",
+2415 => x"1a5a5859",
+2416 => x"51548475",
+2417 => x"24ea3876",
+2418 => x"8a1b2394",
+2419 => x"19588070",
+2420 => x"56579856",
+2421 => x"74187033",
+2422 => x"70782b79",
+2423 => x"078118f8",
+2424 => x"1a5a5859",
+2425 => x"51548475",
+2426 => x"24ea3876",
+2427 => x"8c1b2398",
+2428 => x"19588070",
+2429 => x"56579856",
+2430 => x"74187033",
+2431 => x"70782b79",
+2432 => x"078118f8",
+2433 => x"1a5a5859",
+2434 => x"51548475",
+2435 => x"24ea3876",
+2436 => x"8e1b239c",
+2437 => x"19588070",
+2438 => x"5657b856",
+2439 => x"74187033",
+2440 => x"70782b79",
+2441 => x"078118f8",
+2442 => x"1a5a5859",
+2443 => x"5a548875",
+2444 => x"24ea3876",
+2445 => x"901b0c8b",
+2446 => x"3d0d04e9",
+2447 => x"3d0d6a80",
+2448 => x"dfd40857",
+2449 => x"57759338",
+2450 => x"80c0800b",
+2451 => x"84180c75",
+2452 => x"ac180c75",
+2453 => x"800c993d",
+2454 => x"0d04893d",
+2455 => x"70556a54",
+2456 => x"558a5299",
+2457 => x"3dffbc05",
+2458 => x"51ffbbd6",
+2459 => x"3f800877",
+2460 => x"53755256",
+2461 => x"fd953fbc",
+2462 => x"3f778008",
+2463 => x"0c75800c",
+2464 => x"993d0d04",
+2465 => x"fc3d0d81",
+2466 => x"5480dfd4",
+2467 => x"08883873",
+2468 => x"800c863d",
+2469 => x"0d047653",
+2470 => x"97b95286",
+2471 => x"3dfc0551",
+2472 => x"ffbb9f3f",
+2473 => x"8008548c",
+2474 => x"3f748008",
+2475 => x"0c73800c",
+2476 => x"863d0d04",
+2477 => x"80cfe408",
+2478 => x"800c04f7",
+2479 => x"3d0d7b80",
+2480 => x"cfe40882",
+2481 => x"c811085a",
+2482 => x"545a7780",
+2483 => x"2e80da38",
+2484 => x"81881884",
+2485 => x"1908ff05",
+2486 => x"81712b59",
+2487 => x"55598074",
+2488 => x"2480ea38",
+2489 => x"807424b5",
+2490 => x"3873822b",
+2491 => x"78118805",
+2492 => x"56568180",
+2493 => x"19087706",
+2494 => x"5372802e",
+2495 => x"b6387816",
+2496 => x"70085353",
+2497 => x"79517408",
+2498 => x"53722dff",
+2499 => x"14fc17fc",
+2500 => x"1779812c",
+2501 => x"5a575754",
+2502 => x"738025d6",
+2503 => x"38770858",
+2504 => x"77ffad38",
+2505 => x"80cfe408",
+2506 => x"53bc1308",
+2507 => x"a5387951",
+2508 => x"f8e23f74",
+2509 => x"0853722d",
+2510 => x"ff14fc17",
+2511 => x"fc177981",
+2512 => x"2c5a5757",
+2513 => x"54738025",
+2514 => x"ffa838d1",
+2515 => x"398057ff",
+2516 => x"93397251",
+2517 => x"bc130854",
+2518 => x"732d7951",
+2519 => x"f8b63f70",
+2520 => x"7080dfb0",
+2521 => x"0bfc0570",
+2522 => x"08525270",
+2523 => x"ff2e9138",
+2524 => x"702dfc12",
+2525 => x"70085252",
+2526 => x"70ff2e09",
+2527 => x"8106f138",
+2528 => x"50500404",
+2529 => x"ffbb8c3f",
+2530 => x"04000000",
+2531 => x"00000040",
+2532 => x"48656c6c",
+2533 => x"6f20776f",
+2534 => x"726c6420",
+2535 => x"310a0000",
+2536 => x"48656c6c",
+2537 => x"6f20776f",
+2538 => x"726c6420",
+2539 => x"320a0000",
+2540 => x"0a000000",
+2541 => x"43000000",
+2542 => x"64756d6d",
+2543 => x"792e6578",
+2544 => x"65000000",
+2545 => x"00ffffff",
+2546 => x"ff00ffff",
+2547 => x"ffff00ff",
+2548 => x"ffffff00",
+2549 => x"00000000",
+2550 => x"00000000",
+2551 => x"00000000",
+2552 => x"00002fb8",
+2553 => x"000027e8",
+2554 => x"00000000",
+2555 => x"00002a50",
+2556 => x"00002aac",
+2557 => x"00002b08",
+2558 => x"00000000",
+2559 => x"00000000",
+2560 => x"00000000",
+2561 => x"00000000",
+2562 => x"00000000",
+2563 => x"00000000",
+2564 => x"00000000",
+2565 => x"00000000",
+2566 => x"00000000",
+2567 => x"000027b4",
+2568 => x"00000000",
+2569 => x"00000000",
+2570 => x"00000000",
+2571 => x"00000000",
+2572 => x"00000000",
+2573 => x"00000000",
+2574 => x"00000000",
+2575 => x"00000000",
+2576 => x"00000000",
+2577 => x"00000000",
+2578 => x"00000000",
+2579 => x"00000000",
+2580 => x"00000000",
+2581 => x"00000000",
+2582 => x"00000000",
+2583 => x"00000000",
+2584 => x"00000000",
+2585 => x"00000000",
+2586 => x"00000000",
+2587 => x"00000000",
+2588 => x"00000000",
+2589 => x"00000000",
+2590 => x"00000000",
+2591 => x"00000000",
+2592 => x"00000000",
+2593 => x"00000000",
+2594 => x"00000000",
+2595 => x"00000000",
+2596 => x"00000001",
+2597 => x"330eabcd",
+2598 => x"1234e66d",
+2599 => x"deec0005",
+2600 => x"000b0000",
+2601 => x"00000000",
+2602 => x"00000000",
+2603 => x"00000000",
+2604 => x"00000000",
+2605 => x"00000000",
+2606 => x"00000000",
+2607 => x"00000000",
+2608 => x"00000000",
+2609 => x"00000000",
+2610 => x"00000000",
+2611 => x"00000000",
+2612 => x"00000000",
+2613 => x"00000000",
+2614 => x"00000000",
+2615 => x"00000000",
+2616 => x"00000000",
+2617 => x"00000000",
+2618 => x"00000000",
+2619 => x"00000000",
+2620 => x"00000000",
+2621 => x"00000000",
+2622 => x"00000000",
+2623 => x"00000000",
+2624 => x"00000000",
+2625 => x"00000000",
+2626 => x"00000000",
+2627 => x"00000000",
+2628 => x"00000000",
+2629 => x"00000000",
+2630 => x"00000000",
+2631 => x"00000000",
+2632 => x"00000000",
+2633 => x"00000000",
+2634 => x"00000000",
+2635 => x"00000000",
+2636 => x"00000000",
+2637 => x"00000000",
+2638 => x"00000000",
+2639 => x"00000000",
+2640 => x"00000000",
+2641 => x"00000000",
+2642 => x"00000000",
+2643 => x"00000000",
+2644 => x"00000000",
+2645 => x"00000000",
+2646 => x"00000000",
+2647 => x"00000000",
+2648 => x"00000000",
+2649 => x"00000000",
+2650 => x"00000000",
+2651 => x"00000000",
+2652 => x"00000000",
+2653 => x"00000000",
+2654 => x"00000000",
+2655 => x"00000000",
+2656 => x"00000000",
+2657 => x"00000000",
+2658 => x"00000000",
+2659 => x"00000000",
+2660 => x"00000000",
+2661 => x"00000000",
+2662 => x"00000000",
+2663 => x"00000000",
+2664 => x"00000000",
+2665 => x"00000000",
+2666 => x"00000000",
+2667 => x"00000000",
+2668 => x"00000000",
+2669 => x"00000000",
+2670 => x"00000000",
+2671 => x"00000000",
+2672 => x"00000000",
+2673 => x"00000000",
+2674 => x"00000000",
+2675 => x"00000000",
+2676 => x"00000000",
+2677 => x"00000000",
+2678 => x"00000000",
+2679 => x"00000000",
+2680 => x"00000000",
+2681 => x"00000000",
+2682 => x"00000000",
+2683 => x"00000000",
+2684 => x"00000000",
+2685 => x"00000000",
+2686 => x"00000000",
+2687 => x"00000000",
+2688 => x"00000000",
+2689 => x"00000000",
+2690 => x"00000000",
+2691 => x"00000000",
+2692 => x"00000000",
+2693 => x"00000000",
+2694 => x"00000000",
+2695 => x"00000000",
+2696 => x"00000000",
+2697 => x"00000000",
+2698 => x"00000000",
+2699 => x"00000000",
+2700 => x"00000000",
+2701 => x"00000000",
+2702 => x"00000000",
+2703 => x"00000000",
+2704 => x"00000000",
+2705 => x"00000000",
+2706 => x"00000000",
+2707 => x"00000000",
+2708 => x"00000000",
+2709 => x"00000000",
+2710 => x"00000000",
+2711 => x"00000000",
+2712 => x"00000000",
+2713 => x"00000000",
+2714 => x"00000000",
+2715 => x"00000000",
+2716 => x"00000000",
+2717 => x"00000000",
+2718 => x"00000000",
+2719 => x"00000000",
+2720 => x"00000000",
+2721 => x"00000000",
+2722 => x"00000000",
+2723 => x"00000000",
+2724 => x"00000000",
+2725 => x"00000000",
+2726 => x"00000000",
+2727 => x"00000000",
+2728 => x"00000000",
+2729 => x"00000000",
+2730 => x"00000000",
+2731 => x"00000000",
+2732 => x"00000000",
+2733 => x"00000000",
+2734 => x"00000000",
+2735 => x"00000000",
+2736 => x"00000000",
+2737 => x"00000000",
+2738 => x"00000000",
+2739 => x"00000000",
+2740 => x"00000000",
+2741 => x"00000000",
+2742 => x"00000000",
+2743 => x"00000000",
+2744 => x"00000000",
+2745 => x"00000000",
+2746 => x"00000000",
+2747 => x"00000000",
+2748 => x"00000000",
+2749 => x"00000000",
+2750 => x"00000000",
+2751 => x"00000000",
+2752 => x"00000000",
+2753 => x"00000000",
+2754 => x"00000000",
+2755 => x"00000000",
+2756 => x"00000000",
+2757 => x"00000000",
+2758 => x"00000000",
+2759 => x"00000000",
+2760 => x"00000000",
+2761 => x"00000000",
+2762 => x"00000000",
+2763 => x"00000000",
+2764 => x"00000000",
+2765 => x"00000000",
+2766 => x"00000000",
+2767 => x"00000000",
+2768 => x"00000000",
+2769 => x"00000000",
+2770 => x"00000000",
+2771 => x"00000000",
+2772 => x"00000000",
+2773 => x"00000000",
+2774 => x"00000000",
+2775 => x"00000000",
+2776 => x"00000000",
+2777 => x"00000000",
+2778 => x"00000000",
+2779 => x"00000000",
+2780 => x"00000000",
+2781 => x"00000000",
+2782 => x"00000000",
+2783 => x"00000000",
+2784 => x"00000000",
+2785 => x"00000000",
+2786 => x"00000000",
+2787 => x"00000000",
+2788 => x"00000000",
+2789 => x"ffffffff",
+2790 => x"00000000",
+2791 => x"00020000",
+2792 => x"00000000",
+2793 => x"00000000",
+2794 => x"00002ba0",
+2795 => x"00002ba0",
+2796 => x"00002ba8",
+2797 => x"00002ba8",
+2798 => x"00002bb0",
+2799 => x"00002bb0",
+2800 => x"00002bb8",
+2801 => x"00002bb8",
+2802 => x"00002bc0",
+2803 => x"00002bc0",
+2804 => x"00002bc8",
+2805 => x"00002bc8",
+2806 => x"00002bd0",
+2807 => x"00002bd0",
+2808 => x"00002bd8",
+2809 => x"00002bd8",
+2810 => x"00002be0",
+2811 => x"00002be0",
+2812 => x"00002be8",
+2813 => x"00002be8",
+2814 => x"00002bf0",
+2815 => x"00002bf0",
+2816 => x"00002bf8",
+2817 => x"00002bf8",
+2818 => x"00002c00",
+2819 => x"00002c00",
+2820 => x"00002c08",
+2821 => x"00002c08",
+2822 => x"00002c10",
+2823 => x"00002c10",
+2824 => x"00002c18",
+2825 => x"00002c18",
+2826 => x"00002c20",
+2827 => x"00002c20",
+2828 => x"00002c28",
+2829 => x"00002c28",
+2830 => x"00002c30",
+2831 => x"00002c30",
+2832 => x"00002c38",
+2833 => x"00002c38",
+2834 => x"00002c40",
+2835 => x"00002c40",
+2836 => x"00002c48",
+2837 => x"00002c48",
+2838 => x"00002c50",
+2839 => x"00002c50",
+2840 => x"00002c58",
+2841 => x"00002c58",
+2842 => x"00002c60",
+2843 => x"00002c60",
+2844 => x"00002c68",
+2845 => x"00002c68",
+2846 => x"00002c70",
+2847 => x"00002c70",
+2848 => x"00002c78",
+2849 => x"00002c78",
+2850 => x"00002c80",
+2851 => x"00002c80",
+2852 => x"00002c88",
+2853 => x"00002c88",
+2854 => x"00002c90",
+2855 => x"00002c90",
+2856 => x"00002c98",
+2857 => x"00002c98",
+2858 => x"00002ca0",
+2859 => x"00002ca0",
+2860 => x"00002ca8",
+2861 => x"00002ca8",
+2862 => x"00002cb0",
+2863 => x"00002cb0",
+2864 => x"00002cb8",
+2865 => x"00002cb8",
+2866 => x"00002cc0",
+2867 => x"00002cc0",
+2868 => x"00002cc8",
+2869 => x"00002cc8",
+2870 => x"00002cd0",
+2871 => x"00002cd0",
+2872 => x"00002cd8",
+2873 => x"00002cd8",
+2874 => x"00002ce0",
+2875 => x"00002ce0",
+2876 => x"00002ce8",
+2877 => x"00002ce8",
+2878 => x"00002cf0",
+2879 => x"00002cf0",
+2880 => x"00002cf8",
+2881 => x"00002cf8",
+2882 => x"00002d00",
+2883 => x"00002d00",
+2884 => x"00002d08",
+2885 => x"00002d08",
+2886 => x"00002d10",
+2887 => x"00002d10",
+2888 => x"00002d18",
+2889 => x"00002d18",
+2890 => x"00002d20",
+2891 => x"00002d20",
+2892 => x"00002d28",
+2893 => x"00002d28",
+2894 => x"00002d30",
+2895 => x"00002d30",
+2896 => x"00002d38",
+2897 => x"00002d38",
+2898 => x"00002d40",
+2899 => x"00002d40",
+2900 => x"00002d48",
+2901 => x"00002d48",
+2902 => x"00002d50",
+2903 => x"00002d50",
+2904 => x"00002d58",
+2905 => x"00002d58",
+2906 => x"00002d60",
+2907 => x"00002d60",
+2908 => x"00002d68",
+2909 => x"00002d68",
+2910 => x"00002d70",
+2911 => x"00002d70",
+2912 => x"00002d78",
+2913 => x"00002d78",
+2914 => x"00002d80",
+2915 => x"00002d80",
+2916 => x"00002d88",
+2917 => x"00002d88",
+2918 => x"00002d90",
+2919 => x"00002d90",
+2920 => x"00002d98",
+2921 => x"00002d98",
+2922 => x"00002da0",
+2923 => x"00002da0",
+2924 => x"00002da8",
+2925 => x"00002da8",
+2926 => x"00002db0",
+2927 => x"00002db0",
+2928 => x"00002db8",
+2929 => x"00002db8",
+2930 => x"00002dc0",
+2931 => x"00002dc0",
+2932 => x"00002dc8",
+2933 => x"00002dc8",
+2934 => x"00002dd0",
+2935 => x"00002dd0",
+2936 => x"00002dd8",
+2937 => x"00002dd8",
+2938 => x"00002de0",
+2939 => x"00002de0",
+2940 => x"00002de8",
+2941 => x"00002de8",
+2942 => x"00002df0",
+2943 => x"00002df0",
+2944 => x"00002df8",
+2945 => x"00002df8",
+2946 => x"00002e00",
+2947 => x"00002e00",
+2948 => x"00002e08",
+2949 => x"00002e08",
+2950 => x"00002e10",
+2951 => x"00002e10",
+2952 => x"00002e18",
+2953 => x"00002e18",
+2954 => x"00002e20",
+2955 => x"00002e20",
+2956 => x"00002e28",
+2957 => x"00002e28",
+2958 => x"00002e30",
+2959 => x"00002e30",
+2960 => x"00002e38",
+2961 => x"00002e38",
+2962 => x"00002e40",
+2963 => x"00002e40",
+2964 => x"00002e48",
+2965 => x"00002e48",
+2966 => x"00002e50",
+2967 => x"00002e50",
+2968 => x"00002e58",
+2969 => x"00002e58",
+2970 => x"00002e60",
+2971 => x"00002e60",
+2972 => x"00002e68",
+2973 => x"00002e68",
+2974 => x"00002e70",
+2975 => x"00002e70",
+2976 => x"00002e78",
+2977 => x"00002e78",
+2978 => x"00002e80",
+2979 => x"00002e80",
+2980 => x"00002e88",
+2981 => x"00002e88",
+2982 => x"00002e90",
+2983 => x"00002e90",
+2984 => x"00002e98",
+2985 => x"00002e98",
+2986 => x"00002ea0",
+2987 => x"00002ea0",
+2988 => x"00002ea8",
+2989 => x"00002ea8",
+2990 => x"00002eb0",
+2991 => x"00002eb0",
+2992 => x"00002eb8",
+2993 => x"00002eb8",
+2994 => x"00002ec0",
+2995 => x"00002ec0",
+2996 => x"00002ec8",
+2997 => x"00002ec8",
+2998 => x"00002ed0",
+2999 => x"00002ed0",
+3000 => x"00002ed8",
+3001 => x"00002ed8",
+3002 => x"00002ee0",
+3003 => x"00002ee0",
+3004 => x"00002ee8",
+3005 => x"00002ee8",
+3006 => x"00002ef0",
+3007 => x"00002ef0",
+3008 => x"00002ef8",
+3009 => x"00002ef8",
+3010 => x"00002f00",
+3011 => x"00002f00",
+3012 => x"00002f08",
+3013 => x"00002f08",
+3014 => x"00002f10",
+3015 => x"00002f10",
+3016 => x"00002f18",
+3017 => x"00002f18",
+3018 => x"00002f20",
+3019 => x"00002f20",
+3020 => x"00002f28",
+3021 => x"00002f28",
+3022 => x"00002f30",
+3023 => x"00002f30",
+3024 => x"00002f38",
+3025 => x"00002f38",
+3026 => x"00002f40",
+3027 => x"00002f40",
+3028 => x"00002f48",
+3029 => x"00002f48",
+3030 => x"00002f50",
+3031 => x"00002f50",
+3032 => x"00002f58",
+3033 => x"00002f58",
+3034 => x"00002f60",
+3035 => x"00002f60",
+3036 => x"00002f68",
+3037 => x"00002f68",
+3038 => x"00002f70",
+3039 => x"00002f70",
+3040 => x"00002f78",
+3041 => x"00002f78",
+3042 => x"00002f80",
+3043 => x"00002f80",
+3044 => x"00002f88",
+3045 => x"00002f88",
+3046 => x"00002f90",
+3047 => x"00002f90",
+3048 => x"00002f98",
+3049 => x"00002f98",
+3050 => x"000027b8",
+3051 => x"ffffffff",
+3052 => x"00000000",
+3053 => x"ffffffff",
+3054 => x"00000000",
+ others => x"00000000"
+);
+
+begin
+
+process (clk)
+begin
+ if (clk'event and clk = '1') then
+ if (memAWriteEnable = '1') and (memBWriteEnable = '1') and (memAAddr=memBAddr) and (memAWrite/=memBWrite) then
+ report "write collision" severity failure;
+ end if;
+
+ if (memAWriteEnable = '1') then
+ ram(to_integer(unsigned(memAAddr))) := memAWrite;
+ memARead <= memAWrite;
+ else
+ memARead <= ram(to_integer(unsigned(memAAddr)));
+ end if;
+ end if;
+end process;
+
+process (clk)
+begin
+ if (clk'event and clk = '1') then
+ if (memBWriteEnable = '1') then
+ ram(to_integer(unsigned(memBAddr))) := memBWrite;
+ memBRead <= memBWrite;
+ else
+ memBRead <= ram(to_integer(unsigned(memBAddr)));
+ end if;
+ end if;
+end process;
+
+
+
+
+end dualport_ram_arch;
Index: zpu/example/interrupt.vhd
===================================================================
--- zpu/example/interrupt.vhd (nonexistent)
+++ zpu/example/interrupt.vhd (revision 93)
@@ -0,0 +1,3156 @@
+-- ZPU
+--
+-- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+--
+-- The FreeBSD license
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+--
+-- 1. Redistributions of source code must retain the above copyright
+-- notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above
+-- copyright notice, this list of conditions and the following
+-- disclaimer in the documentation and/or other materials
+-- provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
+-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+-- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+-- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+-- The views and conclusions contained in the software and documentation
+-- are those of the authors and should not be interpreted as representing
+-- official policies, either expressed or implied, of the ZPU Project.
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+
+library work;
+use work.zpu_config.all;
+use work.zpupkg.all;
+
+entity dualport_ram is
+port (clk : in std_logic;
+ memAWriteEnable : in std_logic;
+ memAAddr : in std_logic_vector(maxAddrBitBRAM downto minAddrBit);
+ memAWrite : in std_logic_vector(wordSize-1 downto 0);
+ memARead : out std_logic_vector(wordSize-1 downto 0);
+ memBWriteEnable : in std_logic;
+ memBAddr : in std_logic_vector(maxAddrBitBRAM downto minAddrBit);
+ memBWrite : in std_logic_vector(wordSize-1 downto 0);
+ memBRead : out std_logic_vector(wordSize-1 downto 0));
+end dualport_ram;
+
+architecture dualport_ram_arch of dualport_ram is
+
+
+type ram_type is array(natural range 0 to ((2**(maxAddrBitBRAM+1))/4)-1) of std_logic_vector(wordSize-1 downto 0);
+
+shared variable ram : ram_type :=
+(
+0 => x"0b0b0b0b",
+1 => x"82700b0b",
+2 => x"80cfe00c",
+3 => x"3a0b0b80",
+4 => x"c6e00400",
+5 => x"00000000",
+6 => x"00000000",
+7 => x"00000000",
+8 => x"80088408",
+9 => x"88080b0b",
+10 => x"0b8af02d",
+11 => x"880c840c",
+12 => x"800c0400",
+13 => x"00000000",
+14 => x"00000000",
+15 => x"00000000",
+16 => x"71fd0608",
+17 => x"72830609",
+18 => x"81058205",
+19 => x"832b2a83",
+20 => x"ffff0652",
+21 => x"04000000",
+22 => x"00000000",
+23 => x"00000000",
+24 => x"71fd0608",
+25 => x"83ffff73",
+26 => x"83060981",
+27 => x"05820583",
+28 => x"2b2b0906",
+29 => x"7383ffff",
+30 => x"0b0b0b0b",
+31 => x"83a70400",
+32 => x"72098105",
+33 => x"72057373",
+34 => x"09060906",
+35 => x"73097306",
+36 => x"070a8106",
+37 => x"53510400",
+38 => x"00000000",
+39 => x"00000000",
+40 => x"72722473",
+41 => x"732e0753",
+42 => x"51040000",
+43 => x"00000000",
+44 => x"00000000",
+45 => x"00000000",
+46 => x"00000000",
+47 => x"00000000",
+48 => x"71737109",
+49 => x"71068106",
+50 => x"30720a10",
+51 => x"0a720a10",
+52 => x"0a31050a",
+53 => x"81065151",
+54 => x"53510400",
+55 => x"00000000",
+56 => x"72722673",
+57 => x"732e0753",
+58 => x"51040000",
+59 => x"00000000",
+60 => x"00000000",
+61 => x"00000000",
+62 => x"00000000",
+63 => x"00000000",
+64 => x"00000000",
+65 => x"00000000",
+66 => x"00000000",
+67 => x"00000000",
+68 => x"00000000",
+69 => x"00000000",
+70 => x"00000000",
+71 => x"00000000",
+72 => x"0b0b0b88",
+73 => x"c4040000",
+74 => x"00000000",
+75 => x"00000000",
+76 => x"00000000",
+77 => x"00000000",
+78 => x"00000000",
+79 => x"00000000",
+80 => x"720a722b",
+81 => x"0a535104",
+82 => x"00000000",
+83 => x"00000000",
+84 => x"00000000",
+85 => x"00000000",
+86 => x"00000000",
+87 => x"00000000",
+88 => x"72729f06",
+89 => x"0981050b",
+90 => x"0b0b88a7",
+91 => x"05040000",
+92 => x"00000000",
+93 => x"00000000",
+94 => x"00000000",
+95 => x"00000000",
+96 => x"72722aff",
+97 => x"739f062a",
+98 => x"0974090a",
+99 => x"8106ff05",
+100 => x"06075351",
+101 => x"04000000",
+102 => x"00000000",
+103 => x"00000000",
+104 => x"71715351",
+105 => x"020d0406",
+106 => x"73830609",
+107 => x"81058205",
+108 => x"832b0b2b",
+109 => x"0772fc06",
+110 => x"0c515104",
+111 => x"00000000",
+112 => x"72098105",
+113 => x"72050970",
+114 => x"81050906",
+115 => x"0a810653",
+116 => x"51040000",
+117 => x"00000000",
+118 => x"00000000",
+119 => x"00000000",
+120 => x"72098105",
+121 => x"72050970",
+122 => x"81050906",
+123 => x"0a098106",
+124 => x"53510400",
+125 => x"00000000",
+126 => x"00000000",
+127 => x"00000000",
+128 => x"71098105",
+129 => x"52040000",
+130 => x"00000000",
+131 => x"00000000",
+132 => x"00000000",
+133 => x"00000000",
+134 => x"00000000",
+135 => x"00000000",
+136 => x"72720981",
+137 => x"05055351",
+138 => x"04000000",
+139 => x"00000000",
+140 => x"00000000",
+141 => x"00000000",
+142 => x"00000000",
+143 => x"00000000",
+144 => x"72097206",
+145 => x"73730906",
+146 => x"07535104",
+147 => x"00000000",
+148 => x"00000000",
+149 => x"00000000",
+150 => x"00000000",
+151 => x"00000000",
+152 => x"71fc0608",
+153 => x"72830609",
+154 => x"81058305",
+155 => x"1010102a",
+156 => x"81ff0652",
+157 => x"04000000",
+158 => x"00000000",
+159 => x"00000000",
+160 => x"71fc0608",
+161 => x"0b0b80cf",
+162 => x"cc738306",
+163 => x"10100508",
+164 => x"060b0b0b",
+165 => x"88aa0400",
+166 => x"00000000",
+167 => x"00000000",
+168 => x"80088408",
+169 => x"88087575",
+170 => x"0b0b0b8b",
+171 => x"ab2d5050",
+172 => x"80085688",
+173 => x"0c840c80",
+174 => x"0c510400",
+175 => x"00000000",
+176 => x"80088408",
+177 => x"88087575",
+178 => x"0b0b0b8b",
+179 => x"ef2d5050",
+180 => x"80085688",
+181 => x"0c840c80",
+182 => x"0c510400",
+183 => x"00000000",
+184 => x"72097081",
+185 => x"0509060a",
+186 => x"8106ff05",
+187 => x"70547106",
+188 => x"73097274",
+189 => x"05ff0506",
+190 => x"07515151",
+191 => x"04000000",
+192 => x"72097081",
+193 => x"0509060a",
+194 => x"098106ff",
+195 => x"05705471",
+196 => x"06730972",
+197 => x"7405ff05",
+198 => x"06075151",
+199 => x"51040000",
+200 => x"05ff0504",
+201 => x"00000000",
+202 => x"00000000",
+203 => x"00000000",
+204 => x"00000000",
+205 => x"00000000",
+206 => x"00000000",
+207 => x"00000000",
+208 => x"810b0b0b",
+209 => x"80cfdc0c",
+210 => x"51040000",
+211 => x"00000000",
+212 => x"00000000",
+213 => x"00000000",
+214 => x"00000000",
+215 => x"00000000",
+216 => x"71810552",
+217 => x"04000000",
+218 => x"00000000",
+219 => x"00000000",
+220 => x"00000000",
+221 => x"00000000",
+222 => x"00000000",
+223 => x"00000000",
+224 => x"00000000",
+225 => x"00000000",
+226 => x"00000000",
+227 => x"00000000",
+228 => x"00000000",
+229 => x"00000000",
+230 => x"00000000",
+231 => x"00000000",
+232 => x"02840572",
+233 => x"10100552",
+234 => x"04000000",
+235 => x"00000000",
+236 => x"00000000",
+237 => x"00000000",
+238 => x"00000000",
+239 => x"00000000",
+240 => x"00000000",
+241 => x"00000000",
+242 => x"00000000",
+243 => x"00000000",
+244 => x"00000000",
+245 => x"00000000",
+246 => x"00000000",
+247 => x"00000000",
+248 => x"717105ff",
+249 => x"05715351",
+250 => x"020d0400",
+251 => x"00000000",
+252 => x"00000000",
+253 => x"00000000",
+254 => x"00000000",
+255 => x"00000000",
+256 => x"82c53f80",
+257 => x"c6e63f04",
+258 => x"10101010",
+259 => x"10101010",
+260 => x"10101010",
+261 => x"10101010",
+262 => x"10101010",
+263 => x"10101010",
+264 => x"10101010",
+265 => x"10101053",
+266 => x"51047381",
+267 => x"ff067383",
+268 => x"06098105",
+269 => x"83051010",
+270 => x"102b0772",
+271 => x"fc060c51",
+272 => x"51043c04",
+273 => x"72728072",
+274 => x"8106ff05",
+275 => x"09720605",
+276 => x"71105272",
+277 => x"0a100a53",
+278 => x"72ed3851",
+279 => x"51535104",
+280 => x"fe3d0d0b",
+281 => x"0b80dfc8",
+282 => x"08538413",
+283 => x"0870882a",
+284 => x"70810651",
+285 => x"52527080",
+286 => x"2ef03871",
+287 => x"81ff0680",
+288 => x"0c843d0d",
+289 => x"04ff3d0d",
+290 => x"0b0b80df",
+291 => x"c8085271",
+292 => x"0870882a",
+293 => x"81327081",
+294 => x"06515151",
+295 => x"70f13873",
+296 => x"720c833d",
+297 => x"0d0480cf",
+298 => x"dc08802e",
+299 => x"a43880cf",
+300 => x"e008822e",
+301 => x"bd388380",
+302 => x"800b0b0b",
+303 => x"80dfc80c",
+304 => x"82a0800b",
+305 => x"80dfcc0c",
+306 => x"8290800b",
+307 => x"80dfd00c",
+308 => x"04f88080",
+309 => x"80a40b0b",
+310 => x"0b80dfc8",
+311 => x"0cf88080",
+312 => x"82800b80",
+313 => x"dfcc0cf8",
+314 => x"80808480",
+315 => x"0b80dfd0",
+316 => x"0c0480c0",
+317 => x"a8808c0b",
+318 => x"0b0b80df",
+319 => x"c80c80c0",
+320 => x"a880940b",
+321 => x"80dfcc0c",
+322 => x"0b0b80cf",
+323 => x"980b80df",
+324 => x"d00c0470",
+325 => x"7080dfd4",
+326 => x"335170a7",
+327 => x"3880cfe8",
+328 => x"08700852",
+329 => x"5270802e",
+330 => x"94388412",
+331 => x"80cfe80c",
+332 => x"702d80cf",
+333 => x"e8087008",
+334 => x"525270ee",
+335 => x"38810b80",
+336 => x"dfd43450",
+337 => x"50040470",
+338 => x"0b0b80df",
+339 => x"c408802e",
+340 => x"8e380b0b",
+341 => x"0b0b800b",
+342 => x"802e0981",
+343 => x"06833850",
+344 => x"040b0b80",
+345 => x"dfc4510b",
+346 => x"0b0bf594",
+347 => x"3f500404",
+348 => x"803d0d80",
+349 => x"dfe00881",
+350 => x"1180dfe0",
+351 => x"0c51823d",
+352 => x"0d04fe3d",
+353 => x"0d80dfe0",
+354 => x"085380df",
+355 => x"e0085272",
+356 => x"722e8f38",
+357 => x"80cf9c51",
+358 => x"82b03f80",
+359 => x"dfe00853",
+360 => x"e93980cf",
+361 => x"ac5182a2",
+362 => x"3fe039fb",
+363 => x"3d0d7779",
+364 => x"55558056",
+365 => x"757524ab",
+366 => x"38807424",
+367 => x"9d388053",
+368 => x"73527451",
+369 => x"80e13f80",
+370 => x"08547580",
+371 => x"2e853880",
+372 => x"08305473",
+373 => x"800c873d",
+374 => x"0d047330",
+375 => x"76813257",
+376 => x"54dc3974",
+377 => x"30558156",
+378 => x"738025d2",
+379 => x"38ec39fa",
+380 => x"3d0d787a",
+381 => x"57558057",
+382 => x"767524a4",
+383 => x"38759f2c",
+384 => x"54815375",
+385 => x"74327431",
+386 => x"5274519b",
+387 => x"3f800854",
+388 => x"76802e85",
+389 => x"38800830",
+390 => x"5473800c",
+391 => x"883d0d04",
+392 => x"74305581",
+393 => x"57d739fc",
+394 => x"3d0d7678",
+395 => x"53548153",
+396 => x"80747326",
+397 => x"52557280",
+398 => x"2e983870",
+399 => x"802eab38",
+400 => x"807224a6",
+401 => x"38711073",
+402 => x"10757226",
+403 => x"53545272",
+404 => x"ea387351",
+405 => x"78833874",
+406 => x"5170800c",
+407 => x"863d0d04",
+408 => x"720a100a",
+409 => x"720a100a",
+410 => x"53537280",
+411 => x"2ee43871",
+412 => x"7426ed38",
+413 => x"73723175",
+414 => x"7407740a",
+415 => x"100a740a",
+416 => x"100a5555",
+417 => x"5654e339",
+418 => x"f73d0d7c",
+419 => x"70525380",
+420 => x"fd3f7254",
+421 => x"8008550b",
+422 => x"0b80cfb8",
+423 => x"56815780",
+424 => x"0881055a",
+425 => x"8b3de411",
+426 => x"59538259",
+427 => x"f413527b",
+428 => x"88110852",
+429 => x"5381b43f",
+430 => x"80083070",
+431 => x"8008079f",
+432 => x"2c8a0780",
+433 => x"0c538b3d",
+434 => x"0d04f63d",
+435 => x"0d7c80cf",
+436 => x"ec087153",
+437 => x"5553b73f",
+438 => x"72558008",
+439 => x"560b0b80",
+440 => x"cfb85781",
+441 => x"58800881",
+442 => x"055b8c3d",
+443 => x"e4115a53",
+444 => x"825af413",
+445 => x"52881408",
+446 => x"5180f03f",
+447 => x"80083070",
+448 => x"8008079f",
+449 => x"2c8a0780",
+450 => x"0c548c3d",
+451 => x"0d047070",
+452 => x"70707570",
+453 => x"71830653",
+454 => x"555270b4",
+455 => x"38717008",
+456 => x"7009f7fb",
+457 => x"fdff1206",
+458 => x"f8848281",
+459 => x"80065452",
+460 => x"53719b38",
+461 => x"84137008",
+462 => x"7009f7fb",
+463 => x"fdff1206",
+464 => x"f8848281",
+465 => x"80065452",
+466 => x"5371802e",
+467 => x"e7387252",
+468 => x"71335372",
+469 => x"802e8a38",
+470 => x"81127033",
+471 => x"545272f8",
+472 => x"38717431",
+473 => x"800c5050",
+474 => x"505004f2",
+475 => x"3d0d6062",
+476 => x"88110870",
+477 => x"58565f5a",
+478 => x"73802e81",
+479 => x"8c388c1a",
+480 => x"2270832a",
+481 => x"81328106",
+482 => x"56587486",
+483 => x"38901a08",
+484 => x"91387951",
+485 => x"90b73fff",
+486 => x"55800880",
+487 => x"ec388c1a",
+488 => x"22587d08",
+489 => x"55807883",
+490 => x"ffff0670",
+491 => x"0a100a81",
+492 => x"06415c57",
+493 => x"7e772e80",
+494 => x"d7387690",
+495 => x"38740884",
+496 => x"16088817",
+497 => x"57585676",
+498 => x"802ef238",
+499 => x"76548880",
+500 => x"77278438",
+501 => x"88805473",
+502 => x"5375529c",
+503 => x"1a0851a4",
+504 => x"1a085877",
+505 => x"2d800b80",
+506 => x"082582e0",
+507 => x"38800816",
+508 => x"77800831",
+509 => x"7f880508",
+510 => x"80083170",
+511 => x"6188050c",
+512 => x"5b585678",
+513 => x"ffb43880",
+514 => x"5574800c",
+515 => x"903d0d04",
+516 => x"7a813281",
+517 => x"06774056",
+518 => x"75802e81",
+519 => x"bd387690",
+520 => x"38740884",
+521 => x"16088817",
+522 => x"57585976",
+523 => x"802ef238",
+524 => x"881a0878",
+525 => x"83ffff06",
+526 => x"70892a81",
+527 => x"06565956",
+528 => x"73802e82",
+529 => x"f8387577",
+530 => x"278b3877",
+531 => x"872a8106",
+532 => x"5c7b82b5",
+533 => x"38767627",
+534 => x"83387656",
+535 => x"75537852",
+536 => x"79085185",
+537 => x"833f881a",
+538 => x"08763188",
+539 => x"1b0c7908",
+540 => x"167a0c76",
+541 => x"56751977",
+542 => x"77317f88",
+543 => x"05087831",
+544 => x"70618805",
+545 => x"0c415859",
+546 => x"7e802efe",
+547 => x"fa388c1a",
+548 => x"2258ff8a",
+549 => x"39787954",
+550 => x"7c537b52",
+551 => x"5684c93f",
+552 => x"881a0879",
+553 => x"31881b0c",
+554 => x"7908197a",
+555 => x"0c7c7631",
+556 => x"5d7c8e38",
+557 => x"79518ff2",
+558 => x"3f800881",
+559 => x"8f388008",
+560 => x"5f751c77",
+561 => x"77317f88",
+562 => x"05087831",
+563 => x"70618805",
+564 => x"0c5d585c",
+565 => x"7a802efe",
+566 => x"ae387681",
+567 => x"83387408",
+568 => x"84160888",
+569 => x"1757585c",
+570 => x"76802ef2",
+571 => x"3876538a",
+572 => x"527b5182",
+573 => x"d33f8008",
+574 => x"7c318105",
+575 => x"5d800884",
+576 => x"3881175d",
+577 => x"815f7c59",
+578 => x"767d2783",
+579 => x"38765994",
+580 => x"1a08881b",
+581 => x"08115758",
+582 => x"807a085c",
+583 => x"54901a08",
+584 => x"7b278338",
+585 => x"81547579",
+586 => x"25843873",
+587 => x"ba387779",
+588 => x"24fee238",
+589 => x"77537b52",
+590 => x"9c1a0851",
+591 => x"a41a0859",
+592 => x"782d8008",
+593 => x"56800880",
+594 => x"24fee238",
+595 => x"8c1a2280",
+596 => x"c0075e7d",
+597 => x"8c1b23ff",
+598 => x"5574800c",
+599 => x"903d0d04",
+600 => x"7effa338",
+601 => x"ff873975",
+602 => x"537b527a",
+603 => x"5182f93f",
+604 => x"7908167a",
+605 => x"0c79518e",
+606 => x"b13f8008",
+607 => x"cf387c76",
+608 => x"315d7cfe",
+609 => x"bc38feac",
+610 => x"39901a08",
+611 => x"7a087131",
+612 => x"78117056",
+613 => x"5a575280",
+614 => x"cfec0851",
+615 => x"84943f80",
+616 => x"08802eff",
+617 => x"a7388008",
+618 => x"901b0c80",
+619 => x"08167a0c",
+620 => x"77941b0c",
+621 => x"76881b0c",
+622 => x"7656fd99",
+623 => x"39790858",
+624 => x"901a0878",
+625 => x"27833881",
+626 => x"54757727",
+627 => x"843873b3",
+628 => x"38941a08",
+629 => x"54737726",
+630 => x"80d33873",
+631 => x"5378529c",
+632 => x"1a0851a4",
+633 => x"1a085877",
+634 => x"2d800856",
+635 => x"80088024",
+636 => x"fd83388c",
+637 => x"1a2280c0",
+638 => x"075e7d8c",
+639 => x"1b23ff55",
+640 => x"fed73975",
+641 => x"53785277",
+642 => x"5181dd3f",
+643 => x"7908167a",
+644 => x"0c79518d",
+645 => x"953f8008",
+646 => x"802efcd9",
+647 => x"388c1a22",
+648 => x"80c0075e",
+649 => x"7d8c1b23",
+650 => x"ff55fead",
+651 => x"39767754",
+652 => x"79537852",
+653 => x"5681b13f",
+654 => x"881a0877",
+655 => x"31881b0c",
+656 => x"7908177a",
+657 => x"0cfcae39",
+658 => x"fa3d0d7a",
+659 => x"79028805",
+660 => x"a7053355",
+661 => x"53548374",
+662 => x"2780df38",
+663 => x"71830651",
+664 => x"7080d738",
+665 => x"71715755",
+666 => x"83517582",
+667 => x"802913ff",
+668 => x"12525670",
+669 => x"8025f338",
+670 => x"837427bc",
+671 => x"38740876",
+672 => x"327009f7",
+673 => x"fbfdff12",
+674 => x"06f88482",
+675 => x"81800651",
+676 => x"5170802e",
+677 => x"98387451",
+678 => x"80527033",
+679 => x"5772772e",
+680 => x"b9388111",
+681 => x"81135351",
+682 => x"837227ee",
+683 => x"38fc1484",
+684 => x"16565473",
+685 => x"8326c638",
+686 => x"7452ff14",
+687 => x"5170ff2e",
+688 => x"97387133",
+689 => x"5472742e",
+690 => x"98388112",
+691 => x"ff125252",
+692 => x"70ff2e09",
+693 => x"8106eb38",
+694 => x"80517080",
+695 => x"0c883d0d",
+696 => x"0471800c",
+697 => x"883d0d04",
+698 => x"fa3d0d78",
+699 => x"7a7c7272",
+700 => x"72595755",
+701 => x"58565774",
+702 => x"7727b238",
+703 => x"75155176",
+704 => x"7127aa38",
+705 => x"707618ff",
+706 => x"18535353",
+707 => x"70ff2e96",
+708 => x"38ff12ff",
+709 => x"14545272",
+710 => x"337234ff",
+711 => x"115170ff",
+712 => x"2e098106",
+713 => x"ec387680",
+714 => x"0c883d0d",
+715 => x"048f7627",
+716 => x"80e63874",
+717 => x"77078306",
+718 => x"517080dc",
+719 => x"38767552",
+720 => x"53707084",
+721 => x"05520873",
+722 => x"70840555",
+723 => x"0c727170",
+724 => x"84055308",
+725 => x"71708405",
+726 => x"530c7170",
+727 => x"84055308",
+728 => x"71708405",
+729 => x"530c7170",
+730 => x"84055308",
+731 => x"71708405",
+732 => x"530cf015",
+733 => x"5553738f",
+734 => x"26c73883",
+735 => x"74279538",
+736 => x"70708405",
+737 => x"52087370",
+738 => x"8405550c",
+739 => x"fc145473",
+740 => x"8326ed38",
+741 => x"72715452",
+742 => x"ff145170",
+743 => x"ff2eff86",
+744 => x"38727081",
+745 => x"05543372",
+746 => x"70810554",
+747 => x"34ff1151",
+748 => x"ea39ef3d",
+749 => x"0d636567",
+750 => x"405d427b",
+751 => x"802e8582",
+752 => x"386151a9",
+753 => x"e73ff81c",
+754 => x"70841208",
+755 => x"70fc0670",
+756 => x"628b0570",
+757 => x"f8064159",
+758 => x"455c5f41",
+759 => x"57967427",
+760 => x"82c53880",
+761 => x"7b247e7c",
+762 => x"26075880",
+763 => x"5477742e",
+764 => x"09810682",
+765 => x"ab38787b",
+766 => x"2581fe38",
+767 => x"781780d7",
+768 => x"a80b8805",
+769 => x"085b5679",
+770 => x"762e84c5",
+771 => x"38841608",
+772 => x"70fe0617",
+773 => x"84110881",
+774 => x"06415555",
+775 => x"7e828d38",
+776 => x"74fc0658",
+777 => x"79762e84",
+778 => x"e3387818",
+779 => x"5f7e7b25",
+780 => x"81ff387c",
+781 => x"81065473",
+782 => x"82c13876",
+783 => x"77083184",
+784 => x"1108fc06",
+785 => x"56577580",
+786 => x"2e913879",
+787 => x"762e84f0",
+788 => x"38741819",
+789 => x"58777b25",
+790 => x"84913876",
+791 => x"802e829b",
+792 => x"38781556",
+793 => x"7a762482",
+794 => x"92388c17",
+795 => x"08881808",
+796 => x"718c120c",
+797 => x"88120c5e",
+798 => x"75598817",
+799 => x"61fc055b",
+800 => x"5679a426",
+801 => x"85ff387b",
+802 => x"76595593",
+803 => x"7a2780c9",
+804 => x"387b7084",
+805 => x"055d087c",
+806 => x"56760c74",
+807 => x"70840556",
+808 => x"088c180c",
+809 => x"9017589b",
+810 => x"7a27ae38",
+811 => x"74708405",
+812 => x"5608780c",
+813 => x"74708405",
+814 => x"56089418",
+815 => x"0c981758",
+816 => x"a37a2795",
+817 => x"38747084",
+818 => x"05560878",
+819 => x"0c747084",
+820 => x"0556089c",
+821 => x"180ca017",
+822 => x"58747084",
+823 => x"05560875",
+824 => x"5f787084",
+825 => x"055a0c77",
+826 => x"7e708405",
+827 => x"40087170",
+828 => x"8405530c",
+829 => x"7e08710c",
+830 => x"5d787b31",
+831 => x"56758f26",
+832 => x"80c93884",
+833 => x"17088106",
+834 => x"79078418",
+835 => x"0c781784",
+836 => x"11088107",
+837 => x"84120c5b",
+838 => x"6151a791",
+839 => x"3f881754",
+840 => x"73800c93",
+841 => x"3d0d0490",
+842 => x"5bfdb839",
+843 => x"7756fe83",
+844 => x"398c1608",
+845 => x"88170871",
+846 => x"8c120c88",
+847 => x"120c587e",
+848 => x"707c3157",
+849 => x"598f7627",
+850 => x"ffb9387a",
+851 => x"17841808",
+852 => x"81067c07",
+853 => x"84190c76",
+854 => x"81078412",
+855 => x"0c761184",
+856 => x"11088107",
+857 => x"84120c5b",
+858 => x"88055261",
+859 => x"518fda3f",
+860 => x"6151a6b9",
+861 => x"3f881754",
+862 => x"ffa6397d",
+863 => x"52615197",
+864 => x"d73f8008",
+865 => x"5a800880",
+866 => x"2e81ab38",
+867 => x"8008f805",
+868 => x"60840508",
+869 => x"fe066105",
+870 => x"58557477",
+871 => x"2e83f238",
+872 => x"fc195877",
+873 => x"a42681b0",
+874 => x"387b8008",
+875 => x"56579378",
+876 => x"2780dc38",
+877 => x"7b707084",
+878 => x"05520880",
+879 => x"08708405",
+880 => x"800c0c80",
+881 => x"08717084",
+882 => x"0553085d",
+883 => x"567b7670",
+884 => x"8405580c",
+885 => x"579b7827",
+886 => x"b6387670",
+887 => x"84055808",
+888 => x"75708405",
+889 => x"570c7670",
+890 => x"84055808",
+891 => x"75708405",
+892 => x"570ca378",
+893 => x"27993876",
+894 => x"70840558",
+895 => x"08757084",
+896 => x"05570c76",
+897 => x"70840558",
+898 => x"08757084",
+899 => x"05570c76",
+900 => x"70840558",
+901 => x"08775e75",
+902 => x"70840557",
+903 => x"0c747d70",
+904 => x"84055f08",
+905 => x"71708405",
+906 => x"530c7d08",
+907 => x"710c5f7b",
+908 => x"5261518e",
+909 => x"943f6151",
+910 => x"a4f33f79",
+911 => x"800c933d",
+912 => x"0d047d52",
+913 => x"61519690",
+914 => x"3f800880",
+915 => x"0c933d0d",
+916 => x"04841608",
+917 => x"55fbc939",
+918 => x"77537b52",
+919 => x"800851a2",
+920 => x"a53f7b52",
+921 => x"61518de1",
+922 => x"3fcc398c",
+923 => x"16088817",
+924 => x"08718c12",
+925 => x"0c88120c",
+926 => x"5d8c1708",
+927 => x"88180871",
+928 => x"8c120c88",
+929 => x"120c5977",
+930 => x"59fbef39",
+931 => x"7818901c",
+932 => x"40557e75",
+933 => x"24fb9c38",
+934 => x"7a177080",
+935 => x"d7a80b88",
+936 => x"050c757c",
+937 => x"31810784",
+938 => x"120c5684",
+939 => x"17088106",
+940 => x"7b078418",
+941 => x"0c6151a3",
+942 => x"f43f8817",
+943 => x"54fce139",
+944 => x"74181990",
+945 => x"1c5e5a7c",
+946 => x"7a24fb8f",
+947 => x"388c1708",
+948 => x"88180871",
+949 => x"8c120c88",
+950 => x"120c5e88",
+951 => x"1761fc05",
+952 => x"575975a4",
+953 => x"2681b638",
+954 => x"7b795955",
+955 => x"93762780",
+956 => x"c9387b70",
+957 => x"84055d08",
+958 => x"7c56790c",
+959 => x"74708405",
+960 => x"56088c18",
+961 => x"0c901758",
+962 => x"9b7627ae",
+963 => x"38747084",
+964 => x"05560878",
+965 => x"0c747084",
+966 => x"05560894",
+967 => x"180c9817",
+968 => x"58a37627",
+969 => x"95387470",
+970 => x"84055608",
+971 => x"780c7470",
+972 => x"84055608",
+973 => x"9c180ca0",
+974 => x"17587470",
+975 => x"84055608",
+976 => x"75417870",
+977 => x"84055a0c",
+978 => x"77607084",
+979 => x"05420871",
+980 => x"70840553",
+981 => x"0c600871",
+982 => x"0c5e7a17",
+983 => x"7080d7a8",
+984 => x"0b88050c",
+985 => x"7a7c3181",
+986 => x"0784120c",
+987 => x"58841708",
+988 => x"81067b07",
+989 => x"84180c61",
+990 => x"51a2b23f",
+991 => x"78547380",
+992 => x"0c933d0d",
+993 => x"0479537b",
+994 => x"5275519f",
+995 => x"f93ffae9",
+996 => x"39841508",
+997 => x"fc061960",
+998 => x"5859fadd",
+999 => x"3975537b",
+1000 => x"5278519f",
+1001 => x"e13f7a17",
+1002 => x"7080d7a8",
+1003 => x"0b88050c",
+1004 => x"7a7c3181",
+1005 => x"0784120c",
+1006 => x"58841708",
+1007 => x"81067b07",
+1008 => x"84180c61",
+1009 => x"51a1e63f",
+1010 => x"7854ffb2",
+1011 => x"39fa3d0d",
+1012 => x"7880cfec",
+1013 => x"085455b8",
+1014 => x"1308802e",
+1015 => x"81af388c",
+1016 => x"15227083",
+1017 => x"ffff0670",
+1018 => x"832a8132",
+1019 => x"81065555",
+1020 => x"5672802e",
+1021 => x"80da3873",
+1022 => x"842a8132",
+1023 => x"810657ff",
+1024 => x"537680f2",
+1025 => x"3873822a",
+1026 => x"81065473",
+1027 => x"802eb938",
+1028 => x"b0150854",
+1029 => x"73802e9c",
+1030 => x"3880c015",
+1031 => x"5373732e",
+1032 => x"8f387352",
+1033 => x"80cfec08",
+1034 => x"518a9e3f",
+1035 => x"8c152256",
+1036 => x"76b0160c",
+1037 => x"75db0657",
+1038 => x"768c1623",
+1039 => x"800b8416",
+1040 => x"0c901508",
+1041 => x"750c7656",
+1042 => x"75880754",
+1043 => x"738c1623",
+1044 => x"90150880",
+1045 => x"2ebf388c",
+1046 => x"15227081",
+1047 => x"06555373",
+1048 => x"9c38720a",
+1049 => x"100a8106",
+1050 => x"56758538",
+1051 => x"94150854",
+1052 => x"7388160c",
+1053 => x"80537280",
+1054 => x"0c883d0d",
+1055 => x"04800b88",
+1056 => x"160c9415",
+1057 => x"08309816",
+1058 => x"0c8053ea",
+1059 => x"39725182",
+1060 => x"a63ffecb",
+1061 => x"3974518f",
+1062 => x"bc3f8c15",
+1063 => x"22708106",
+1064 => x"55537380",
+1065 => x"2effbb38",
+1066 => x"d439f83d",
+1067 => x"0d7a5776",
+1068 => x"802e8197",
+1069 => x"3880cfec",
+1070 => x"0854b814",
+1071 => x"08802e80",
+1072 => x"eb388c17",
+1073 => x"2270902b",
+1074 => x"70902c70",
+1075 => x"832a8132",
+1076 => x"81065b5b",
+1077 => x"57557780",
+1078 => x"cb389017",
+1079 => x"08567580",
+1080 => x"2e80c138",
+1081 => x"76087631",
+1082 => x"76780c79",
+1083 => x"83065555",
+1084 => x"73853894",
+1085 => x"17085877",
+1086 => x"88180c80",
+1087 => x"7525a538",
+1088 => x"74537552",
+1089 => x"9c170851",
+1090 => x"a4170854",
+1091 => x"732d800b",
+1092 => x"80082580",
+1093 => x"c9388008",
+1094 => x"16758008",
+1095 => x"31565674",
+1096 => x"8024dd38",
+1097 => x"800b800c",
+1098 => x"8a3d0d04",
+1099 => x"73518187",
+1100 => x"3f8c1722",
+1101 => x"70902b70",
+1102 => x"902c7083",
+1103 => x"2a813281",
+1104 => x"065b5b57",
+1105 => x"5577dd38",
+1106 => x"ff9039a1",
+1107 => x"aa5280cf",
+1108 => x"ec08518c",
+1109 => x"d03f8008",
+1110 => x"800c8a3d",
+1111 => x"0d048c17",
+1112 => x"2280c007",
+1113 => x"58778c18",
+1114 => x"23ff0b80",
+1115 => x"0c8a3d0d",
+1116 => x"04fa3d0d",
+1117 => x"797080dc",
+1118 => x"298c1154",
+1119 => x"7a535657",
+1120 => x"8fd63f80",
+1121 => x"08800855",
+1122 => x"56800880",
+1123 => x"2ea23880",
+1124 => x"088c0554",
+1125 => x"800b8008",
+1126 => x"0c768008",
+1127 => x"84050c73",
+1128 => x"80088805",
+1129 => x"0c745380",
+1130 => x"5273519c",
+1131 => x"f53f7554",
+1132 => x"73800c88",
+1133 => x"3d0d0470",
+1134 => x"707074a8",
+1135 => x"f60bbc12",
+1136 => x"0c53810b",
+1137 => x"b8140c80",
+1138 => x"0b84dc14",
+1139 => x"0c830b84",
+1140 => x"e0140c84",
+1141 => x"e81384e4",
+1142 => x"140c8413",
+1143 => x"08518070",
+1144 => x"720c7084",
+1145 => x"130c7088",
+1146 => x"130c5284",
+1147 => x"0b8c1223",
+1148 => x"718e1223",
+1149 => x"7190120c",
+1150 => x"7194120c",
+1151 => x"7198120c",
+1152 => x"709c120c",
+1153 => x"80c1e50b",
+1154 => x"a0120c80",
+1155 => x"c2b10ba4",
+1156 => x"120c80c3",
+1157 => x"ad0ba812",
+1158 => x"0c80c3fe",
+1159 => x"0bac120c",
+1160 => x"88130872",
+1161 => x"710c7284",
+1162 => x"120c7288",
+1163 => x"120c5189",
+1164 => x"0b8c1223",
+1165 => x"810b8e12",
+1166 => x"23719012",
+1167 => x"0c719412",
+1168 => x"0c719812",
+1169 => x"0c709c12",
+1170 => x"0c80c1e5",
+1171 => x"0ba0120c",
+1172 => x"80c2b10b",
+1173 => x"a4120c80",
+1174 => x"c3ad0ba8",
+1175 => x"120c80c3",
+1176 => x"fe0bac12",
+1177 => x"0c8c1308",
+1178 => x"72710c72",
+1179 => x"84120c72",
+1180 => x"88120c51",
+1181 => x"8a0b8c12",
+1182 => x"23820b8e",
+1183 => x"12237190",
+1184 => x"120c7194",
+1185 => x"120c7198",
+1186 => x"120c709c",
+1187 => x"120c80c1",
+1188 => x"e50ba012",
+1189 => x"0c80c2b1",
+1190 => x"0ba4120c",
+1191 => x"80c3ad0b",
+1192 => x"a8120c80",
+1193 => x"c3fe0bac",
+1194 => x"120c5050",
+1195 => x"5004f83d",
+1196 => x"0d7a80cf",
+1197 => x"ec08b811",
+1198 => x"08575758",
+1199 => x"7481ec38",
+1200 => x"a8f60bbc",
+1201 => x"170c810b",
+1202 => x"b8170c74",
+1203 => x"84dc170c",
+1204 => x"830b84e0",
+1205 => x"170c84e8",
+1206 => x"1684e417",
+1207 => x"0c841608",
+1208 => x"75710c75",
+1209 => x"84120c75",
+1210 => x"88120c59",
+1211 => x"840b8c1a",
+1212 => x"23748e1a",
+1213 => x"2374901a",
+1214 => x"0c74941a",
+1215 => x"0c74981a",
+1216 => x"0c789c1a",
+1217 => x"0c80c1e5",
+1218 => x"0ba01a0c",
+1219 => x"80c2b10b",
+1220 => x"a41a0c80",
+1221 => x"c3ad0ba8",
+1222 => x"1a0c80c3",
+1223 => x"fe0bac1a",
+1224 => x"0c881608",
+1225 => x"75710c75",
+1226 => x"84120c75",
+1227 => x"88120c57",
+1228 => x"890b8c18",
+1229 => x"23810b8e",
+1230 => x"18237490",
+1231 => x"180c7494",
+1232 => x"180c7498",
+1233 => x"180c769c",
+1234 => x"180c80c1",
+1235 => x"e50ba018",
+1236 => x"0c80c2b1",
+1237 => x"0ba4180c",
+1238 => x"80c3ad0b",
+1239 => x"a8180c80",
+1240 => x"c3fe0bac",
+1241 => x"180c8c16",
+1242 => x"0875710c",
+1243 => x"7584120c",
+1244 => x"7588120c",
+1245 => x"548a0b8c",
+1246 => x"1523820b",
+1247 => x"8e152374",
+1248 => x"90150c74",
+1249 => x"94150c74",
+1250 => x"98150c73",
+1251 => x"9c150c80",
+1252 => x"c1e50ba0",
+1253 => x"150c80c2",
+1254 => x"b10ba415",
+1255 => x"0c80c3ad",
+1256 => x"0ba8150c",
+1257 => x"80c3fe0b",
+1258 => x"ac150c84",
+1259 => x"dc168811",
+1260 => x"08841208",
+1261 => x"ff055757",
+1262 => x"57807524",
+1263 => x"9f388c16",
+1264 => x"2270902b",
+1265 => x"70902c51",
+1266 => x"55597380",
+1267 => x"2e80ed38",
+1268 => x"80dc16ff",
+1269 => x"16565674",
+1270 => x"8025e338",
+1271 => x"76085574",
+1272 => x"802e8f38",
+1273 => x"74881108",
+1274 => x"841208ff",
+1275 => x"05575757",
+1276 => x"c83982fc",
+1277 => x"5277518a",
+1278 => x"df3f8008",
+1279 => x"80085556",
+1280 => x"8008802e",
+1281 => x"a3388008",
+1282 => x"8c057580",
+1283 => x"080c5484",
+1284 => x"0b800884",
+1285 => x"050c7380",
+1286 => x"0888050c",
+1287 => x"82f05374",
+1288 => x"52735197",
+1289 => x"fd3f7554",
+1290 => x"7374780c",
+1291 => x"5573ffb4",
+1292 => x"388c780c",
+1293 => x"800b800c",
+1294 => x"8a3d0d04",
+1295 => x"810b8c17",
+1296 => x"2373760c",
+1297 => x"7388170c",
+1298 => x"7384170c",
+1299 => x"7390170c",
+1300 => x"7394170c",
+1301 => x"7398170c",
+1302 => x"ff0b8e17",
+1303 => x"2373b017",
+1304 => x"0c73b417",
+1305 => x"0c7380c4",
+1306 => x"170c7380",
+1307 => x"c8170c75",
+1308 => x"800c8a3d",
+1309 => x"0d047070",
+1310 => x"a1aa5273",
+1311 => x"5186a63f",
+1312 => x"50500470",
+1313 => x"70a1aa52",
+1314 => x"80cfec08",
+1315 => x"5186963f",
+1316 => x"505004fb",
+1317 => x"3d0d7770",
+1318 => x"52569890",
+1319 => x"3f80d7a8",
+1320 => x"0b880508",
+1321 => x"841108fc",
+1322 => x"06707b31",
+1323 => x"9fef05e0",
+1324 => x"8006e080",
+1325 => x"05525555",
+1326 => x"a0807524",
+1327 => x"94388052",
+1328 => x"755197ea",
+1329 => x"3f80d7b0",
+1330 => x"08145372",
+1331 => x"80082e8f",
+1332 => x"38755197",
+1333 => x"d83f8053",
+1334 => x"72800c87",
+1335 => x"3d0d0474",
+1336 => x"30527551",
+1337 => x"97c83f80",
+1338 => x"08ff2ea8",
+1339 => x"3880d7a8",
+1340 => x"0b880508",
+1341 => x"74763181",
+1342 => x"0784120c",
+1343 => x"5380d6ec",
+1344 => x"08753180",
+1345 => x"d6ec0c75",
+1346 => x"5197a23f",
+1347 => x"810b800c",
+1348 => x"873d0d04",
+1349 => x"80527551",
+1350 => x"97943f80",
+1351 => x"d7a80b88",
+1352 => x"05088008",
+1353 => x"71315454",
+1354 => x"8f7325ff",
+1355 => x"a4388008",
+1356 => x"80d79c08",
+1357 => x"3180d6ec",
+1358 => x"0c728107",
+1359 => x"84150c75",
+1360 => x"5196ea3f",
+1361 => x"8053ff90",
+1362 => x"39f73d0d",
+1363 => x"7b7d545a",
+1364 => x"72802e82",
+1365 => x"83387951",
+1366 => x"96d23ff8",
+1367 => x"13841108",
+1368 => x"70fe0670",
+1369 => x"13841108",
+1370 => x"fc065c57",
+1371 => x"58545780",
+1372 => x"d7b00874",
+1373 => x"2e82de38",
+1374 => x"7784150c",
+1375 => x"80738106",
+1376 => x"56597479",
+1377 => x"2e81d538",
+1378 => x"77148411",
+1379 => x"08810656",
+1380 => x"5374a038",
+1381 => x"77165678",
+1382 => x"81e63888",
+1383 => x"14085574",
+1384 => x"80d7b02e",
+1385 => x"82f9388c",
+1386 => x"1408708c",
+1387 => x"170c7588",
+1388 => x"120c5875",
+1389 => x"81078418",
+1390 => x"0c751776",
+1391 => x"710c5478",
+1392 => x"81913883",
+1393 => x"ff762781",
+1394 => x"c8387589",
+1395 => x"2a76832a",
+1396 => x"54547380",
+1397 => x"2ebf3875",
+1398 => x"862ab805",
+1399 => x"53847427",
+1400 => x"b43880db",
+1401 => x"14539474",
+1402 => x"27ab3875",
+1403 => x"8c2a80ee",
+1404 => x"055380d4",
+1405 => x"74279e38",
+1406 => x"758f2a80",
+1407 => x"f7055382",
+1408 => x"d4742791",
+1409 => x"3875922a",
+1410 => x"80fc0553",
+1411 => x"8ad47427",
+1412 => x"843880fe",
+1413 => x"53721010",
+1414 => x"1080d7a8",
+1415 => x"05881108",
+1416 => x"55557375",
+1417 => x"2e82bf38",
+1418 => x"841408fc",
+1419 => x"06597579",
+1420 => x"278d3888",
+1421 => x"14085473",
+1422 => x"752e0981",
+1423 => x"06ea388c",
+1424 => x"1408708c",
+1425 => x"190c7488",
+1426 => x"190c7788",
+1427 => x"120c5576",
+1428 => x"8c150c79",
+1429 => x"5194d63f",
+1430 => x"8b3d0d04",
+1431 => x"76087771",
+1432 => x"31587605",
+1433 => x"88180856",
+1434 => x"567480d7",
+1435 => x"b02e80e0",
+1436 => x"388c1708",
+1437 => x"708c170c",
+1438 => x"7588120c",
+1439 => x"53fe8939",
+1440 => x"8814088c",
+1441 => x"1508708c",
+1442 => x"130c5988",
+1443 => x"190cfea3",
+1444 => x"3975832a",
+1445 => x"70545480",
+1446 => x"74248198",
+1447 => x"3872822c",
+1448 => x"81712b80",
+1449 => x"d7ac0807",
+1450 => x"80d7a80b",
+1451 => x"84050c74",
+1452 => x"10101080",
+1453 => x"d7a80588",
+1454 => x"1108718c",
+1455 => x"1b0c7088",
+1456 => x"1b0c7988",
+1457 => x"130c565a",
+1458 => x"55768c15",
+1459 => x"0cff8439",
+1460 => x"8159fdb4",
+1461 => x"39771673",
+1462 => x"81065455",
+1463 => x"72983876",
+1464 => x"08777131",
+1465 => x"5875058c",
+1466 => x"18088819",
+1467 => x"08718c12",
+1468 => x"0c88120c",
+1469 => x"55557481",
+1470 => x"0784180c",
+1471 => x"7680d7a8",
+1472 => x"0b88050c",
+1473 => x"80d7a408",
+1474 => x"7526fec7",
+1475 => x"3880d7a0",
+1476 => x"08527951",
+1477 => x"fafd3f79",
+1478 => x"5193923f",
+1479 => x"feba3981",
+1480 => x"778c170c",
+1481 => x"7788170c",
+1482 => x"758c190c",
+1483 => x"7588190c",
+1484 => x"59fd8039",
+1485 => x"83147082",
+1486 => x"2c81712b",
+1487 => x"80d7ac08",
+1488 => x"0780d7a8",
+1489 => x"0b84050c",
+1490 => x"75101010",
+1491 => x"80d7a805",
+1492 => x"88110871",
+1493 => x"8c1c0c70",
+1494 => x"881c0c7a",
+1495 => x"88130c57",
+1496 => x"5b5653fe",
+1497 => x"e4398073",
+1498 => x"24a33872",
+1499 => x"822c8171",
+1500 => x"2b80d7ac",
+1501 => x"080780d7",
+1502 => x"a80b8405",
+1503 => x"0c58748c",
+1504 => x"180c7388",
+1505 => x"180c7688",
+1506 => x"160cfdc3",
+1507 => x"39831370",
+1508 => x"822c8171",
+1509 => x"2b80d7ac",
+1510 => x"080780d7",
+1511 => x"a80b8405",
+1512 => x"0c5953da",
+1513 => x"39f93d0d",
+1514 => x"797b5853",
+1515 => x"800b80cf",
+1516 => x"ec085356",
+1517 => x"72722ebc",
+1518 => x"3884dc13",
+1519 => x"5574762e",
+1520 => x"b3388815",
+1521 => x"08841608",
+1522 => x"ff055454",
+1523 => x"80732499",
+1524 => x"388c1422",
+1525 => x"70902b53",
+1526 => x"587180d4",
+1527 => x"3880dc14",
+1528 => x"ff145454",
+1529 => x"728025e9",
+1530 => x"38740855",
+1531 => x"74d43880",
+1532 => x"cfec0852",
+1533 => x"84dc1255",
+1534 => x"74802ead",
+1535 => x"38881508",
+1536 => x"841608ff",
+1537 => x"05545480",
+1538 => x"73249838",
+1539 => x"8c142270",
+1540 => x"902b5358",
+1541 => x"71ad3880",
+1542 => x"dc14ff14",
+1543 => x"54547280",
+1544 => x"25ea3874",
+1545 => x"085574d5",
+1546 => x"3875800c",
+1547 => x"893d0d04",
+1548 => x"7351762d",
+1549 => x"75800807",
+1550 => x"80dc15ff",
+1551 => x"15555556",
+1552 => x"ffa23973",
+1553 => x"51762d75",
+1554 => x"80080780",
+1555 => x"dc15ff15",
+1556 => x"555556ca",
+1557 => x"39ea3d0d",
+1558 => x"688c1122",
+1559 => x"700a100a",
+1560 => x"81065758",
+1561 => x"567480e4",
+1562 => x"388e1622",
+1563 => x"70902b70",
+1564 => x"902c5155",
+1565 => x"58807424",
+1566 => x"b138983d",
+1567 => x"c4055373",
+1568 => x"5280cfec",
+1569 => x"08519481",
+1570 => x"3f800b80",
+1571 => x"08249738",
+1572 => x"7983e080",
+1573 => x"06547380",
+1574 => x"c0802e81",
+1575 => x"8f387382",
+1576 => x"80802e81",
+1577 => x"91388c16",
+1578 => x"22577690",
+1579 => x"80075473",
+1580 => x"8c172388",
+1581 => x"805280cf",
+1582 => x"ec085181",
+1583 => x"9b3f8008",
+1584 => x"9d388c16",
+1585 => x"22820755",
+1586 => x"748c1723",
+1587 => x"80c31670",
+1588 => x"770c9017",
+1589 => x"0c810b94",
+1590 => x"170c983d",
+1591 => x"0d0480cf",
+1592 => x"ec08a8f6",
+1593 => x"0bbc120c",
+1594 => x"588c1622",
+1595 => x"81800754",
+1596 => x"738c1723",
+1597 => x"8008760c",
+1598 => x"80089017",
+1599 => x"0c88800b",
+1600 => x"94170c74",
+1601 => x"802ed338",
+1602 => x"8e162270",
+1603 => x"902b7090",
+1604 => x"2c535654",
+1605 => x"9afb3f80",
+1606 => x"08802eff",
+1607 => x"bd388c16",
+1608 => x"22810757",
+1609 => x"768c1723",
+1610 => x"983d0d04",
+1611 => x"810b8c17",
+1612 => x"225855fe",
+1613 => x"f539a816",
+1614 => x"0880c3ad",
+1615 => x"2e098106",
+1616 => x"fee4388c",
+1617 => x"16228880",
+1618 => x"0754738c",
+1619 => x"17238880",
+1620 => x"0b80cc17",
+1621 => x"0cfedc39",
+1622 => x"f43d0d7e",
+1623 => x"608b1170",
+1624 => x"f8065b55",
+1625 => x"555d7296",
+1626 => x"26833890",
+1627 => x"58807824",
+1628 => x"74792607",
+1629 => x"55805474",
+1630 => x"742e0981",
+1631 => x"0680ca38",
+1632 => x"7c518ea8",
+1633 => x"3f7783f7",
+1634 => x"2680c538",
+1635 => x"77832a70",
+1636 => x"10101080",
+1637 => x"d7a8058c",
+1638 => x"11085858",
+1639 => x"5475772e",
+1640 => x"81f03884",
+1641 => x"1608fc06",
+1642 => x"8c170888",
+1643 => x"1808718c",
+1644 => x"120c8812",
+1645 => x"0c5b7605",
+1646 => x"84110881",
+1647 => x"0784120c",
+1648 => x"537c518d",
+1649 => x"e83f8816",
+1650 => x"5473800c",
+1651 => x"8e3d0d04",
+1652 => x"77892a78",
+1653 => x"832a5854",
+1654 => x"73802ebf",
+1655 => x"3877862a",
+1656 => x"b8055784",
+1657 => x"7427b438",
+1658 => x"80db1457",
+1659 => x"947427ab",
+1660 => x"38778c2a",
+1661 => x"80ee0557",
+1662 => x"80d47427",
+1663 => x"9e38778f",
+1664 => x"2a80f705",
+1665 => x"5782d474",
+1666 => x"27913877",
+1667 => x"922a80fc",
+1668 => x"05578ad4",
+1669 => x"74278438",
+1670 => x"80fe5776",
+1671 => x"10101080",
+1672 => x"d7a8058c",
+1673 => x"11085653",
+1674 => x"74732ea3",
+1675 => x"38841508",
+1676 => x"fc067079",
+1677 => x"31555673",
+1678 => x"8f2488e4",
+1679 => x"38738025",
+1680 => x"88e6388c",
+1681 => x"15085574",
+1682 => x"732e0981",
+1683 => x"06df3881",
+1684 => x"175980d7",
+1685 => x"b8085675",
+1686 => x"80d7b02e",
+1687 => x"82cc3884",
+1688 => x"1608fc06",
+1689 => x"70793155",
+1690 => x"55738f24",
+1691 => x"bb3880d7",
+1692 => x"b00b80d7",
+1693 => x"bc0c80d7",
+1694 => x"b00b80d7",
+1695 => x"b80c8074",
+1696 => x"2480db38",
+1697 => x"74168411",
+1698 => x"08810784",
+1699 => x"120c53fe",
+1700 => x"b0398816",
+1701 => x"8c110857",
+1702 => x"5975792e",
+1703 => x"098106fe",
+1704 => x"82388214",
+1705 => x"59ffab39",
+1706 => x"77167881",
+1707 => x"0784180c",
+1708 => x"7080d7bc",
+1709 => x"0c7080d7",
+1710 => x"b80c80d7",
+1711 => x"b00b8c12",
+1712 => x"0c8c1108",
+1713 => x"88120c74",
+1714 => x"81078412",
+1715 => x"0c740574",
+1716 => x"710c5b7c",
+1717 => x"518bd63f",
+1718 => x"881654fd",
+1719 => x"ec3983ff",
+1720 => x"75278391",
+1721 => x"3874892a",
+1722 => x"75832a54",
+1723 => x"5473802e",
+1724 => x"bf387486",
+1725 => x"2ab80553",
+1726 => x"847427b4",
+1727 => x"3880db14",
+1728 => x"53947427",
+1729 => x"ab38748c",
+1730 => x"2a80ee05",
+1731 => x"5380d474",
+1732 => x"279e3874",
+1733 => x"8f2a80f7",
+1734 => x"055382d4",
+1735 => x"74279138",
+1736 => x"74922a80",
+1737 => x"fc05538a",
+1738 => x"d4742784",
+1739 => x"3880fe53",
+1740 => x"72101010",
+1741 => x"80d7a805",
+1742 => x"88110855",
+1743 => x"5773772e",
+1744 => x"868b3884",
+1745 => x"1408fc06",
+1746 => x"5b747b27",
+1747 => x"8d388814",
+1748 => x"08547377",
+1749 => x"2e098106",
+1750 => x"ea388c14",
+1751 => x"0880d7a8",
+1752 => x"0b840508",
+1753 => x"718c190c",
+1754 => x"7588190c",
+1755 => x"7788130c",
+1756 => x"5c57758c",
+1757 => x"150c7853",
+1758 => x"80792483",
+1759 => x"98387282",
+1760 => x"2c81712b",
+1761 => x"5656747b",
+1762 => x"2680ca38",
+1763 => x"7a750657",
+1764 => x"7682a338",
+1765 => x"78fc0684",
+1766 => x"05597410",
+1767 => x"707c0655",
+1768 => x"55738292",
+1769 => x"38841959",
+1770 => x"f13980d7",
+1771 => x"a80b8405",
+1772 => x"0879545b",
+1773 => x"788025c6",
+1774 => x"3882da39",
+1775 => x"74097b06",
+1776 => x"7080d7a8",
+1777 => x"0b84050c",
+1778 => x"5b741055",
+1779 => x"747b2685",
+1780 => x"387485bc",
+1781 => x"3880d7a8",
+1782 => x"0b880508",
+1783 => x"70841208",
+1784 => x"fc06707b",
+1785 => x"317b7226",
+1786 => x"8f722507",
+1787 => x"5d575c5c",
+1788 => x"5578802e",
+1789 => x"80d93879",
+1790 => x"1580d7a0",
+1791 => x"08199011",
+1792 => x"59545680",
+1793 => x"d79c08ff",
+1794 => x"2e8838a0",
+1795 => x"8f13e080",
+1796 => x"06577652",
+1797 => x"7c518996",
+1798 => x"3f800854",
+1799 => x"8008ff2e",
+1800 => x"90388008",
+1801 => x"762782a7",
+1802 => x"387480d7",
+1803 => x"a82e829f",
+1804 => x"3880d7a8",
+1805 => x"0b880508",
+1806 => x"55841508",
+1807 => x"fc067079",
+1808 => x"31797226",
+1809 => x"8f722507",
+1810 => x"5d555a7a",
+1811 => x"83f23877",
+1812 => x"81078416",
+1813 => x"0c771570",
+1814 => x"80d7a80b",
+1815 => x"88050c74",
+1816 => x"81078412",
+1817 => x"0c567c51",
+1818 => x"88c33f88",
+1819 => x"15547380",
+1820 => x"0c8e3d0d",
+1821 => x"0474832a",
+1822 => x"70545480",
+1823 => x"7424819b",
+1824 => x"3872822c",
+1825 => x"81712b80",
+1826 => x"d7ac0807",
+1827 => x"7080d7a8",
+1828 => x"0b84050c",
+1829 => x"75101010",
+1830 => x"80d7a805",
+1831 => x"88110871",
+1832 => x"8c1b0c70",
+1833 => x"881b0c79",
+1834 => x"88130c57",
+1835 => x"555c5575",
+1836 => x"8c150cfd",
+1837 => x"c1397879",
+1838 => x"10101080",
+1839 => x"d7a80570",
+1840 => x"565b5c8c",
+1841 => x"14085675",
+1842 => x"742ea338",
+1843 => x"841608fc",
+1844 => x"06707931",
+1845 => x"5853768f",
+1846 => x"2483f138",
+1847 => x"76802584",
+1848 => x"af388c16",
+1849 => x"08567574",
+1850 => x"2e098106",
+1851 => x"df388814",
+1852 => x"811a7083",
+1853 => x"06555a54",
+1854 => x"72c9387b",
+1855 => x"83065675",
+1856 => x"802efdb8",
+1857 => x"38ff1cf8",
+1858 => x"1b5b5c88",
+1859 => x"1a087a2e",
+1860 => x"ea38fdb5",
+1861 => x"39831953",
+1862 => x"fce43983",
+1863 => x"1470822c",
+1864 => x"81712b80",
+1865 => x"d7ac0807",
+1866 => x"7080d7a8",
+1867 => x"0b84050c",
+1868 => x"76101010",
+1869 => x"80d7a805",
+1870 => x"88110871",
+1871 => x"8c1c0c70",
+1872 => x"881c0c7a",
+1873 => x"88130c58",
+1874 => x"535d5653",
+1875 => x"fee13980",
+1876 => x"d6ec0817",
+1877 => x"59800876",
+1878 => x"2e818b38",
+1879 => x"80d79c08",
+1880 => x"ff2e848e",
+1881 => x"38737631",
+1882 => x"1980d6ec",
+1883 => x"0c738706",
+1884 => x"70565372",
+1885 => x"802e8838",
+1886 => x"88733170",
+1887 => x"15555576",
+1888 => x"149fff06",
+1889 => x"a0807131",
+1890 => x"1670547e",
+1891 => x"53515386",
+1892 => x"9d3f8008",
+1893 => x"568008ff",
+1894 => x"2e819e38",
+1895 => x"80d6ec08",
+1896 => x"137080d6",
+1897 => x"ec0c7475",
+1898 => x"80d7a80b",
+1899 => x"88050c77",
+1900 => x"76311581",
+1901 => x"07555659",
+1902 => x"7a80d7a8",
+1903 => x"2e83c038",
+1904 => x"798f2682",
+1905 => x"ef38810b",
+1906 => x"84150c84",
+1907 => x"1508fc06",
+1908 => x"70793179",
+1909 => x"72268f72",
+1910 => x"25075d55",
+1911 => x"5a7a802e",
+1912 => x"fced3880",
+1913 => x"db398008",
+1914 => x"9fff0655",
+1915 => x"74feed38",
+1916 => x"7880d6ec",
+1917 => x"0c80d7a8",
+1918 => x"0b880508",
+1919 => x"7a188107",
+1920 => x"84120c55",
+1921 => x"80d79808",
+1922 => x"79278638",
+1923 => x"7880d798",
+1924 => x"0c80d794",
+1925 => x"087927fc",
+1926 => x"a0387880",
+1927 => x"d7940c84",
+1928 => x"1508fc06",
+1929 => x"70793179",
+1930 => x"72268f72",
+1931 => x"25075d55",
+1932 => x"5a7a802e",
+1933 => x"fc993888",
+1934 => x"39807457",
+1935 => x"53fedd39",
+1936 => x"7c5184e9",
+1937 => x"3f800b80",
+1938 => x"0c8e3d0d",
+1939 => x"04807324",
+1940 => x"a5387282",
+1941 => x"2c81712b",
+1942 => x"80d7ac08",
+1943 => x"077080d7",
+1944 => x"a80b8405",
+1945 => x"0c5c5a76",
+1946 => x"8c170c73",
+1947 => x"88170c75",
+1948 => x"88180cf9",
+1949 => x"fd398313",
+1950 => x"70822c81",
+1951 => x"712b80d7",
+1952 => x"ac080770",
+1953 => x"80d7a80b",
+1954 => x"84050c5d",
+1955 => x"5b53d839",
+1956 => x"7a75065c",
+1957 => x"7bfc9f38",
+1958 => x"84197510",
+1959 => x"5659f139",
+1960 => x"ff178105",
+1961 => x"59f7ab39",
+1962 => x"8c150888",
+1963 => x"1608718c",
+1964 => x"120c8812",
+1965 => x"0c597515",
+1966 => x"84110881",
+1967 => x"0784120c",
+1968 => x"587c5183",
+1969 => x"e83f8815",
+1970 => x"54fba339",
+1971 => x"77167881",
+1972 => x"0784180c",
+1973 => x"8c170888",
+1974 => x"1808718c",
+1975 => x"120c8812",
+1976 => x"0c5c7080",
+1977 => x"d7bc0c70",
+1978 => x"80d7b80c",
+1979 => x"80d7b00b",
+1980 => x"8c120c8c",
+1981 => x"11088812",
+1982 => x"0c778107",
+1983 => x"84120c77",
+1984 => x"0577710c",
+1985 => x"557c5183",
+1986 => x"a43f8816",
+1987 => x"54f5ba39",
+1988 => x"72168411",
+1989 => x"08810784",
+1990 => x"120c588c",
+1991 => x"16088817",
+1992 => x"08718c12",
+1993 => x"0c88120c",
+1994 => x"577c5183",
+1995 => x"803f8816",
+1996 => x"54f59639",
+1997 => x"7284150c",
+1998 => x"f41af806",
+1999 => x"70841d08",
+2000 => x"81060784",
+2001 => x"1d0c701c",
+2002 => x"5556850b",
+2003 => x"84150c85",
+2004 => x"0b88150c",
+2005 => x"8f7627fd",
+2006 => x"ab38881b",
+2007 => x"527c51eb",
+2008 => x"e83f80d7",
+2009 => x"a80b8805",
+2010 => x"0880d6ec",
+2011 => x"085a55fd",
+2012 => x"93397880",
+2013 => x"d6ec0c73",
+2014 => x"80d79c0c",
+2015 => x"fbef3972",
+2016 => x"84150cfc",
+2017 => x"ff39fb3d",
+2018 => x"0d77707a",
+2019 => x"7c585553",
+2020 => x"568f7527",
+2021 => x"80e63872",
+2022 => x"76078306",
+2023 => x"517080dc",
+2024 => x"38757352",
+2025 => x"54707084",
+2026 => x"05520874",
+2027 => x"70840556",
+2028 => x"0c737170",
+2029 => x"84055308",
+2030 => x"71708405",
+2031 => x"530c7170",
+2032 => x"84055308",
+2033 => x"71708405",
+2034 => x"530c7170",
+2035 => x"84055308",
+2036 => x"71708405",
+2037 => x"530cf016",
+2038 => x"5654748f",
+2039 => x"26c73883",
+2040 => x"75279538",
+2041 => x"70708405",
+2042 => x"52087470",
+2043 => x"8405560c",
+2044 => x"fc155574",
+2045 => x"8326ed38",
+2046 => x"73715452",
+2047 => x"ff155170",
+2048 => x"ff2e9838",
+2049 => x"72708105",
+2050 => x"54337270",
+2051 => x"81055434",
+2052 => x"ff115170",
+2053 => x"ff2e0981",
+2054 => x"06ea3875",
+2055 => x"800c873d",
+2056 => x"0d04fb3d",
+2057 => x"0d777a71",
+2058 => x"028c05a3",
+2059 => x"05335854",
+2060 => x"54568373",
+2061 => x"2780d438",
+2062 => x"75830651",
+2063 => x"7080cc38",
+2064 => x"74882b75",
+2065 => x"07707190",
+2066 => x"2b075551",
+2067 => x"8f7327a7",
+2068 => x"38737270",
+2069 => x"8405540c",
+2070 => x"71747170",
+2071 => x"8405530c",
+2072 => x"74717084",
+2073 => x"05530c74",
+2074 => x"71708405",
+2075 => x"530cf014",
+2076 => x"5452728f",
+2077 => x"26db3883",
+2078 => x"73279038",
+2079 => x"73727084",
+2080 => x"05540cfc",
+2081 => x"13537283",
+2082 => x"26f238ff",
+2083 => x"135170ff",
+2084 => x"2e933874",
+2085 => x"72708105",
+2086 => x"5434ff11",
+2087 => x"5170ff2e",
+2088 => x"098106ef",
+2089 => x"3875800c",
+2090 => x"873d0d04",
+2091 => x"04047070",
+2092 => x"7070800b",
+2093 => x"80dfe40c",
+2094 => x"765184f3",
+2095 => x"3f800853",
+2096 => x"8008ff2e",
+2097 => x"89387280",
+2098 => x"0c505050",
+2099 => x"500480df",
+2100 => x"e4085473",
+2101 => x"802eef38",
+2102 => x"7574710c",
+2103 => x"5272800c",
+2104 => x"50505050",
+2105 => x"04f93d0d",
+2106 => x"797c557b",
+2107 => x"548e1122",
+2108 => x"70902b70",
+2109 => x"902c5557",
+2110 => x"80cfec08",
+2111 => x"53585683",
+2112 => x"f63f8008",
+2113 => x"57800b80",
+2114 => x"08249338",
+2115 => x"80d01608",
+2116 => x"80080580",
+2117 => x"d0170c76",
+2118 => x"800c893d",
+2119 => x"0d048c16",
+2120 => x"2283dfff",
+2121 => x"0655748c",
+2122 => x"17237680",
+2123 => x"0c893d0d",
+2124 => x"04fa3d0d",
+2125 => x"788c1122",
+2126 => x"70882a70",
+2127 => x"81065157",
+2128 => x"585674a9",
+2129 => x"388c1622",
+2130 => x"83dfff06",
+2131 => x"55748c17",
+2132 => x"237a5479",
+2133 => x"538e1622",
+2134 => x"70902b70",
+2135 => x"902c5456",
+2136 => x"80cfec08",
+2137 => x"525681b2",
+2138 => x"3f883d0d",
+2139 => x"04825480",
+2140 => x"538e1622",
+2141 => x"70902b70",
+2142 => x"902c5456",
+2143 => x"80cfec08",
+2144 => x"525782bb",
+2145 => x"3f8c1622",
+2146 => x"83dfff06",
+2147 => x"55748c17",
+2148 => x"237a5479",
+2149 => x"538e1622",
+2150 => x"70902b70",
+2151 => x"902c5456",
+2152 => x"80cfec08",
+2153 => x"525680f2",
+2154 => x"3f883d0d",
+2155 => x"04f93d0d",
+2156 => x"797c557b",
+2157 => x"548e1122",
+2158 => x"70902b70",
+2159 => x"902c5557",
+2160 => x"80cfec08",
+2161 => x"53585681",
+2162 => x"f63f8008",
+2163 => x"578008ff",
+2164 => x"2e99388c",
+2165 => x"1622a080",
+2166 => x"0755748c",
+2167 => x"17238008",
+2168 => x"80d0170c",
+2169 => x"76800c89",
+2170 => x"3d0d048c",
+2171 => x"162283df",
+2172 => x"ff065574",
+2173 => x"8c172376",
+2174 => x"800c893d",
+2175 => x"0d047070",
+2176 => x"70748e11",
+2177 => x"2270902b",
+2178 => x"70902c55",
+2179 => x"51515380",
+2180 => x"cfec0851",
+2181 => x"bd3f5050",
+2182 => x"5004fb3d",
+2183 => x"0d800b80",
+2184 => x"dfe40c7a",
+2185 => x"53795278",
+2186 => x"5182fc3f",
+2187 => x"80085580",
+2188 => x"08ff2e88",
+2189 => x"3874800c",
+2190 => x"873d0d04",
+2191 => x"80dfe408",
+2192 => x"5675802e",
+2193 => x"f0387776",
+2194 => x"710c5474",
+2195 => x"800c873d",
+2196 => x"0d047070",
+2197 => x"7070800b",
+2198 => x"80dfe40c",
+2199 => x"765184c9",
+2200 => x"3f800853",
+2201 => x"8008ff2e",
+2202 => x"89387280",
+2203 => x"0c505050",
+2204 => x"500480df",
+2205 => x"e4085473",
+2206 => x"802eef38",
+2207 => x"7574710c",
+2208 => x"5272800c",
+2209 => x"50505050",
+2210 => x"04fc3d0d",
+2211 => x"800b80df",
+2212 => x"e40c7852",
+2213 => x"775187b0",
+2214 => x"3f800854",
+2215 => x"8008ff2e",
+2216 => x"88387380",
+2217 => x"0c863d0d",
+2218 => x"0480dfe4",
+2219 => x"08557480",
+2220 => x"2ef03876",
+2221 => x"75710c53",
+2222 => x"73800c86",
+2223 => x"3d0d04fb",
+2224 => x"3d0d800b",
+2225 => x"80dfe40c",
+2226 => x"7a537952",
+2227 => x"7851848b",
+2228 => x"3f800855",
+2229 => x"8008ff2e",
+2230 => x"88387480",
+2231 => x"0c873d0d",
+2232 => x"0480dfe4",
+2233 => x"08567580",
+2234 => x"2ef03877",
+2235 => x"76710c54",
+2236 => x"74800c87",
+2237 => x"3d0d04fb",
+2238 => x"3d0d800b",
+2239 => x"80dfe40c",
+2240 => x"7a537952",
+2241 => x"78518293",
+2242 => x"3f800855",
+2243 => x"8008ff2e",
+2244 => x"88387480",
+2245 => x"0c873d0d",
+2246 => x"0480dfe4",
+2247 => x"08567580",
+2248 => x"2ef03877",
+2249 => x"76710c54",
+2250 => x"74800c87",
+2251 => x"3d0d0470",
+2252 => x"707080df",
+2253 => x"d8088938",
+2254 => x"80dfe80b",
+2255 => x"80dfd80c",
+2256 => x"80dfd808",
+2257 => x"75115252",
+2258 => x"ff537087",
+2259 => x"fb808026",
+2260 => x"88387080",
+2261 => x"dfd80c71",
+2262 => x"5372800c",
+2263 => x"50505004",
+2264 => x"fd3d0d80",
+2265 => x"0b80cfe0",
+2266 => x"08545472",
+2267 => x"812e9b38",
+2268 => x"7380dfdc",
+2269 => x"0cc2af3f",
+2270 => x"c1863f80",
+2271 => x"dfb05281",
+2272 => x"51c3ff3f",
+2273 => x"80085186",
+2274 => x"bf3f7280",
+2275 => x"dfdc0cc2",
+2276 => x"953fc0ec",
+2277 => x"3f80dfb0",
+2278 => x"528151c3",
+2279 => x"e53f8008",
+2280 => x"5186a53f",
+2281 => x"00ff39f5",
+2282 => x"3d0d7e60",
+2283 => x"80dfdc08",
+2284 => x"705b585b",
+2285 => x"5b7580c2",
+2286 => x"38777a25",
+2287 => x"a138771b",
+2288 => x"70337081",
+2289 => x"ff065858",
+2290 => x"59758a2e",
+2291 => x"98387681",
+2292 => x"ff0651c1",
+2293 => x"b03f8118",
+2294 => x"58797824",
+2295 => x"e1387980",
+2296 => x"0c8d3d0d",
+2297 => x"048d51c1",
+2298 => x"9c3f7833",
+2299 => x"7081ff06",
+2300 => x"5257c191",
+2301 => x"3f811858",
+2302 => x"e0397955",
+2303 => x"7a547d53",
+2304 => x"85528d3d",
+2305 => x"fc0551c0",
+2306 => x"b93f8008",
+2307 => x"5685b23f",
+2308 => x"7b80080c",
+2309 => x"75800c8d",
+2310 => x"3d0d04f6",
+2311 => x"3d0d7d7f",
+2312 => x"80dfdc08",
+2313 => x"705b585a",
+2314 => x"5a7580c1",
+2315 => x"38777925",
+2316 => x"b338c0ac",
+2317 => x"3f800881",
+2318 => x"ff06708d",
+2319 => x"32703070",
+2320 => x"9f2a5151",
+2321 => x"5757768a",
+2322 => x"2e80c438",
+2323 => x"75802ebf",
+2324 => x"38771a56",
+2325 => x"76763476",
+2326 => x"51c0aa3f",
+2327 => x"81185878",
+2328 => x"7824cf38",
+2329 => x"77567580",
+2330 => x"0c8c3d0d",
+2331 => x"04785579",
+2332 => x"547c5384",
+2333 => x"528c3dfc",
+2334 => x"0551ffbf",
+2335 => x"c53f8008",
+2336 => x"5684be3f",
+2337 => x"7a80080c",
+2338 => x"75800c8c",
+2339 => x"3d0d0477",
+2340 => x"1a598a79",
+2341 => x"34811858",
+2342 => x"8d51ffbf",
+2343 => x"e83f8a51",
+2344 => x"ffbfe23f",
+2345 => x"7756ffbe",
+2346 => x"39fb3d0d",
+2347 => x"80dfdc08",
+2348 => x"70565473",
+2349 => x"88387480",
+2350 => x"0c873d0d",
+2351 => x"04775383",
+2352 => x"52873dfc",
+2353 => x"0551ffbe",
+2354 => x"f93f8008",
+2355 => x"5483f23f",
+2356 => x"7580080c",
+2357 => x"73800c87",
+2358 => x"3d0d04fa",
+2359 => x"3d0d80df",
+2360 => x"dc08802e",
+2361 => x"a3387a55",
+2362 => x"79547853",
+2363 => x"8652883d",
+2364 => x"fc0551ff",
+2365 => x"becc3f80",
+2366 => x"085683c5",
+2367 => x"3f768008",
+2368 => x"0c75800c",
+2369 => x"883d0d04",
+2370 => x"83b73f9d",
+2371 => x"0b80080c",
+2372 => x"ff0b800c",
+2373 => x"883d0d04",
+2374 => x"f73d0d7b",
+2375 => x"7d5b59bc",
+2376 => x"53805279",
+2377 => x"51f5fb3f",
+2378 => x"80705657",
+2379 => x"98567419",
+2380 => x"70337078",
+2381 => x"2b790781",
+2382 => x"18f81a5a",
+2383 => x"58595558",
+2384 => x"847524ea",
+2385 => x"38767a23",
+2386 => x"84195880",
+2387 => x"70565798",
+2388 => x"56741870",
+2389 => x"3370782b",
+2390 => x"79078118",
+2391 => x"f81a5a58",
+2392 => x"59515484",
+2393 => x"7524ea38",
+2394 => x"76821b23",
+2395 => x"88195880",
+2396 => x"70565798",
+2397 => x"56741870",
+2398 => x"3370782b",
+2399 => x"79078118",
+2400 => x"f81a5a58",
+2401 => x"59515484",
+2402 => x"7524ea38",
+2403 => x"76841b0c",
+2404 => x"8c195880",
+2405 => x"70565798",
+2406 => x"56741870",
+2407 => x"3370782b",
+2408 => x"79078118",
+2409 => x"f81a5a58",
+2410 => x"59515484",
+2411 => x"7524ea38",
+2412 => x"76881b23",
+2413 => x"90195880",
+2414 => x"70565798",
+2415 => x"56741870",
+2416 => x"3370782b",
+2417 => x"79078118",
+2418 => x"f81a5a58",
+2419 => x"59515484",
+2420 => x"7524ea38",
+2421 => x"768a1b23",
+2422 => x"94195880",
+2423 => x"70565798",
+2424 => x"56741870",
+2425 => x"3370782b",
+2426 => x"79078118",
+2427 => x"f81a5a58",
+2428 => x"59515484",
+2429 => x"7524ea38",
+2430 => x"768c1b23",
+2431 => x"98195880",
+2432 => x"70565798",
+2433 => x"56741870",
+2434 => x"3370782b",
+2435 => x"79078118",
+2436 => x"f81a5a58",
+2437 => x"59515484",
+2438 => x"7524ea38",
+2439 => x"768e1b23",
+2440 => x"9c195880",
+2441 => x"705657b8",
+2442 => x"56741870",
+2443 => x"3370782b",
+2444 => x"79078118",
+2445 => x"f81a5a58",
+2446 => x"595a5488",
+2447 => x"7524ea38",
+2448 => x"76901b0c",
+2449 => x"8b3d0d04",
+2450 => x"e93d0d6a",
+2451 => x"80dfdc08",
+2452 => x"57577593",
+2453 => x"3880c080",
+2454 => x"0b84180c",
+2455 => x"75ac180c",
+2456 => x"75800c99",
+2457 => x"3d0d0489",
+2458 => x"3d70556a",
+2459 => x"54558a52",
+2460 => x"993dffbc",
+2461 => x"0551ffbb",
+2462 => x"c93f8008",
+2463 => x"77537552",
+2464 => x"56fd953f",
+2465 => x"bc3f7780",
+2466 => x"080c7580",
+2467 => x"0c993d0d",
+2468 => x"04fc3d0d",
+2469 => x"815480df",
+2470 => x"dc088838",
+2471 => x"73800c86",
+2472 => x"3d0d0476",
+2473 => x"5397b952",
+2474 => x"863dfc05",
+2475 => x"51ffbb92",
+2476 => x"3f800854",
+2477 => x"8c3f7480",
+2478 => x"080c7380",
+2479 => x"0c863d0d",
+2480 => x"0480cfec",
+2481 => x"08800c04",
+2482 => x"f73d0d7b",
+2483 => x"80cfec08",
+2484 => x"82c81108",
+2485 => x"5a545a77",
+2486 => x"802e80da",
+2487 => x"38818818",
+2488 => x"841908ff",
+2489 => x"0581712b",
+2490 => x"59555980",
+2491 => x"742480ea",
+2492 => x"38807424",
+2493 => x"b5387382",
+2494 => x"2b781188",
+2495 => x"05565681",
+2496 => x"80190877",
+2497 => x"06537280",
+2498 => x"2eb63878",
+2499 => x"16700853",
+2500 => x"53795174",
+2501 => x"0853722d",
+2502 => x"ff14fc17",
+2503 => x"fc177981",
+2504 => x"2c5a5757",
+2505 => x"54738025",
+2506 => x"d6387708",
+2507 => x"5877ffad",
+2508 => x"3880cfec",
+2509 => x"0853bc13",
+2510 => x"08a53879",
+2511 => x"51f8e53f",
+2512 => x"74085372",
+2513 => x"2dff14fc",
+2514 => x"17fc1779",
+2515 => x"812c5a57",
+2516 => x"57547380",
+2517 => x"25ffa838",
+2518 => x"d1398057",
+2519 => x"ff933972",
+2520 => x"51bc1308",
+2521 => x"54732d79",
+2522 => x"51f8b93f",
+2523 => x"707080df",
+2524 => x"b80bfc05",
+2525 => x"70085252",
+2526 => x"70ff2e91",
+2527 => x"38702dfc",
+2528 => x"12700852",
+2529 => x"5270ff2e",
+2530 => x"098106f1",
+2531 => x"38505004",
+2532 => x"04ffbaff",
+2533 => x"3f040000",
+2534 => x"00000040",
+2535 => x"476f7420",
+2536 => x"696e7465",
+2537 => x"72727570",
+2538 => x"740a0000",
+2539 => x"4e6f2069",
+2540 => x"6e746572",
+2541 => x"72757074",
+2542 => x"0a000000",
+2543 => x"43000000",
+2544 => x"64756d6d",
+2545 => x"792e6578",
+2546 => x"65000000",
+2547 => x"00ffffff",
+2548 => x"ff00ffff",
+2549 => x"ffff00ff",
+2550 => x"ffffff00",
+2551 => x"00000000",
+2552 => x"00000000",
+2553 => x"00000000",
+2554 => x"00002fc0",
+2555 => x"000027f0",
+2556 => x"00000000",
+2557 => x"00002a58",
+2558 => x"00002ab4",
+2559 => x"00002b10",
+2560 => x"00000000",
+2561 => x"00000000",
+2562 => x"00000000",
+2563 => x"00000000",
+2564 => x"00000000",
+2565 => x"00000000",
+2566 => x"00000000",
+2567 => x"00000000",
+2568 => x"00000000",
+2569 => x"000027bc",
+2570 => x"00000000",
+2571 => x"00000000",
+2572 => x"00000000",
+2573 => x"00000000",
+2574 => x"00000000",
+2575 => x"00000000",
+2576 => x"00000000",
+2577 => x"00000000",
+2578 => x"00000000",
+2579 => x"00000000",
+2580 => x"00000000",
+2581 => x"00000000",
+2582 => x"00000000",
+2583 => x"00000000",
+2584 => x"00000000",
+2585 => x"00000000",
+2586 => x"00000000",
+2587 => x"00000000",
+2588 => x"00000000",
+2589 => x"00000000",
+2590 => x"00000000",
+2591 => x"00000000",
+2592 => x"00000000",
+2593 => x"00000000",
+2594 => x"00000000",
+2595 => x"00000000",
+2596 => x"00000000",
+2597 => x"00000000",
+2598 => x"00000001",
+2599 => x"330eabcd",
+2600 => x"1234e66d",
+2601 => x"deec0005",
+2602 => x"000b0000",
+2603 => x"00000000",
+2604 => x"00000000",
+2605 => x"00000000",
+2606 => x"00000000",
+2607 => x"00000000",
+2608 => x"00000000",
+2609 => x"00000000",
+2610 => x"00000000",
+2611 => x"00000000",
+2612 => x"00000000",
+2613 => x"00000000",
+2614 => x"00000000",
+2615 => x"00000000",
+2616 => x"00000000",
+2617 => x"00000000",
+2618 => x"00000000",
+2619 => x"00000000",
+2620 => x"00000000",
+2621 => x"00000000",
+2622 => x"00000000",
+2623 => x"00000000",
+2624 => x"00000000",
+2625 => x"00000000",
+2626 => x"00000000",
+2627 => x"00000000",
+2628 => x"00000000",
+2629 => x"00000000",
+2630 => x"00000000",
+2631 => x"00000000",
+2632 => x"00000000",
+2633 => x"00000000",
+2634 => x"00000000",
+2635 => x"00000000",
+2636 => x"00000000",
+2637 => x"00000000",
+2638 => x"00000000",
+2639 => x"00000000",
+2640 => x"00000000",
+2641 => x"00000000",
+2642 => x"00000000",
+2643 => x"00000000",
+2644 => x"00000000",
+2645 => x"00000000",
+2646 => x"00000000",
+2647 => x"00000000",
+2648 => x"00000000",
+2649 => x"00000000",
+2650 => x"00000000",
+2651 => x"00000000",
+2652 => x"00000000",
+2653 => x"00000000",
+2654 => x"00000000",
+2655 => x"00000000",
+2656 => x"00000000",
+2657 => x"00000000",
+2658 => x"00000000",
+2659 => x"00000000",
+2660 => x"00000000",
+2661 => x"00000000",
+2662 => x"00000000",
+2663 => x"00000000",
+2664 => x"00000000",
+2665 => x"00000000",
+2666 => x"00000000",
+2667 => x"00000000",
+2668 => x"00000000",
+2669 => x"00000000",
+2670 => x"00000000",
+2671 => x"00000000",
+2672 => x"00000000",
+2673 => x"00000000",
+2674 => x"00000000",
+2675 => x"00000000",
+2676 => x"00000000",
+2677 => x"00000000",
+2678 => x"00000000",
+2679 => x"00000000",
+2680 => x"00000000",
+2681 => x"00000000",
+2682 => x"00000000",
+2683 => x"00000000",
+2684 => x"00000000",
+2685 => x"00000000",
+2686 => x"00000000",
+2687 => x"00000000",
+2688 => x"00000000",
+2689 => x"00000000",
+2690 => x"00000000",
+2691 => x"00000000",
+2692 => x"00000000",
+2693 => x"00000000",
+2694 => x"00000000",
+2695 => x"00000000",
+2696 => x"00000000",
+2697 => x"00000000",
+2698 => x"00000000",
+2699 => x"00000000",
+2700 => x"00000000",
+2701 => x"00000000",
+2702 => x"00000000",
+2703 => x"00000000",
+2704 => x"00000000",
+2705 => x"00000000",
+2706 => x"00000000",
+2707 => x"00000000",
+2708 => x"00000000",
+2709 => x"00000000",
+2710 => x"00000000",
+2711 => x"00000000",
+2712 => x"00000000",
+2713 => x"00000000",
+2714 => x"00000000",
+2715 => x"00000000",
+2716 => x"00000000",
+2717 => x"00000000",
+2718 => x"00000000",
+2719 => x"00000000",
+2720 => x"00000000",
+2721 => x"00000000",
+2722 => x"00000000",
+2723 => x"00000000",
+2724 => x"00000000",
+2725 => x"00000000",
+2726 => x"00000000",
+2727 => x"00000000",
+2728 => x"00000000",
+2729 => x"00000000",
+2730 => x"00000000",
+2731 => x"00000000",
+2732 => x"00000000",
+2733 => x"00000000",
+2734 => x"00000000",
+2735 => x"00000000",
+2736 => x"00000000",
+2737 => x"00000000",
+2738 => x"00000000",
+2739 => x"00000000",
+2740 => x"00000000",
+2741 => x"00000000",
+2742 => x"00000000",
+2743 => x"00000000",
+2744 => x"00000000",
+2745 => x"00000000",
+2746 => x"00000000",
+2747 => x"00000000",
+2748 => x"00000000",
+2749 => x"00000000",
+2750 => x"00000000",
+2751 => x"00000000",
+2752 => x"00000000",
+2753 => x"00000000",
+2754 => x"00000000",
+2755 => x"00000000",
+2756 => x"00000000",
+2757 => x"00000000",
+2758 => x"00000000",
+2759 => x"00000000",
+2760 => x"00000000",
+2761 => x"00000000",
+2762 => x"00000000",
+2763 => x"00000000",
+2764 => x"00000000",
+2765 => x"00000000",
+2766 => x"00000000",
+2767 => x"00000000",
+2768 => x"00000000",
+2769 => x"00000000",
+2770 => x"00000000",
+2771 => x"00000000",
+2772 => x"00000000",
+2773 => x"00000000",
+2774 => x"00000000",
+2775 => x"00000000",
+2776 => x"00000000",
+2777 => x"00000000",
+2778 => x"00000000",
+2779 => x"00000000",
+2780 => x"00000000",
+2781 => x"00000000",
+2782 => x"00000000",
+2783 => x"00000000",
+2784 => x"00000000",
+2785 => x"00000000",
+2786 => x"00000000",
+2787 => x"00000000",
+2788 => x"00000000",
+2789 => x"00000000",
+2790 => x"00000000",
+2791 => x"ffffffff",
+2792 => x"00000000",
+2793 => x"00020000",
+2794 => x"00000000",
+2795 => x"00000000",
+2796 => x"00002ba8",
+2797 => x"00002ba8",
+2798 => x"00002bb0",
+2799 => x"00002bb0",
+2800 => x"00002bb8",
+2801 => x"00002bb8",
+2802 => x"00002bc0",
+2803 => x"00002bc0",
+2804 => x"00002bc8",
+2805 => x"00002bc8",
+2806 => x"00002bd0",
+2807 => x"00002bd0",
+2808 => x"00002bd8",
+2809 => x"00002bd8",
+2810 => x"00002be0",
+2811 => x"00002be0",
+2812 => x"00002be8",
+2813 => x"00002be8",
+2814 => x"00002bf0",
+2815 => x"00002bf0",
+2816 => x"00002bf8",
+2817 => x"00002bf8",
+2818 => x"00002c00",
+2819 => x"00002c00",
+2820 => x"00002c08",
+2821 => x"00002c08",
+2822 => x"00002c10",
+2823 => x"00002c10",
+2824 => x"00002c18",
+2825 => x"00002c18",
+2826 => x"00002c20",
+2827 => x"00002c20",
+2828 => x"00002c28",
+2829 => x"00002c28",
+2830 => x"00002c30",
+2831 => x"00002c30",
+2832 => x"00002c38",
+2833 => x"00002c38",
+2834 => x"00002c40",
+2835 => x"00002c40",
+2836 => x"00002c48",
+2837 => x"00002c48",
+2838 => x"00002c50",
+2839 => x"00002c50",
+2840 => x"00002c58",
+2841 => x"00002c58",
+2842 => x"00002c60",
+2843 => x"00002c60",
+2844 => x"00002c68",
+2845 => x"00002c68",
+2846 => x"00002c70",
+2847 => x"00002c70",
+2848 => x"00002c78",
+2849 => x"00002c78",
+2850 => x"00002c80",
+2851 => x"00002c80",
+2852 => x"00002c88",
+2853 => x"00002c88",
+2854 => x"00002c90",
+2855 => x"00002c90",
+2856 => x"00002c98",
+2857 => x"00002c98",
+2858 => x"00002ca0",
+2859 => x"00002ca0",
+2860 => x"00002ca8",
+2861 => x"00002ca8",
+2862 => x"00002cb0",
+2863 => x"00002cb0",
+2864 => x"00002cb8",
+2865 => x"00002cb8",
+2866 => x"00002cc0",
+2867 => x"00002cc0",
+2868 => x"00002cc8",
+2869 => x"00002cc8",
+2870 => x"00002cd0",
+2871 => x"00002cd0",
+2872 => x"00002cd8",
+2873 => x"00002cd8",
+2874 => x"00002ce0",
+2875 => x"00002ce0",
+2876 => x"00002ce8",
+2877 => x"00002ce8",
+2878 => x"00002cf0",
+2879 => x"00002cf0",
+2880 => x"00002cf8",
+2881 => x"00002cf8",
+2882 => x"00002d00",
+2883 => x"00002d00",
+2884 => x"00002d08",
+2885 => x"00002d08",
+2886 => x"00002d10",
+2887 => x"00002d10",
+2888 => x"00002d18",
+2889 => x"00002d18",
+2890 => x"00002d20",
+2891 => x"00002d20",
+2892 => x"00002d28",
+2893 => x"00002d28",
+2894 => x"00002d30",
+2895 => x"00002d30",
+2896 => x"00002d38",
+2897 => x"00002d38",
+2898 => x"00002d40",
+2899 => x"00002d40",
+2900 => x"00002d48",
+2901 => x"00002d48",
+2902 => x"00002d50",
+2903 => x"00002d50",
+2904 => x"00002d58",
+2905 => x"00002d58",
+2906 => x"00002d60",
+2907 => x"00002d60",
+2908 => x"00002d68",
+2909 => x"00002d68",
+2910 => x"00002d70",
+2911 => x"00002d70",
+2912 => x"00002d78",
+2913 => x"00002d78",
+2914 => x"00002d80",
+2915 => x"00002d80",
+2916 => x"00002d88",
+2917 => x"00002d88",
+2918 => x"00002d90",
+2919 => x"00002d90",
+2920 => x"00002d98",
+2921 => x"00002d98",
+2922 => x"00002da0",
+2923 => x"00002da0",
+2924 => x"00002da8",
+2925 => x"00002da8",
+2926 => x"00002db0",
+2927 => x"00002db0",
+2928 => x"00002db8",
+2929 => x"00002db8",
+2930 => x"00002dc0",
+2931 => x"00002dc0",
+2932 => x"00002dc8",
+2933 => x"00002dc8",
+2934 => x"00002dd0",
+2935 => x"00002dd0",
+2936 => x"00002dd8",
+2937 => x"00002dd8",
+2938 => x"00002de0",
+2939 => x"00002de0",
+2940 => x"00002de8",
+2941 => x"00002de8",
+2942 => x"00002df0",
+2943 => x"00002df0",
+2944 => x"00002df8",
+2945 => x"00002df8",
+2946 => x"00002e00",
+2947 => x"00002e00",
+2948 => x"00002e08",
+2949 => x"00002e08",
+2950 => x"00002e10",
+2951 => x"00002e10",
+2952 => x"00002e18",
+2953 => x"00002e18",
+2954 => x"00002e20",
+2955 => x"00002e20",
+2956 => x"00002e28",
+2957 => x"00002e28",
+2958 => x"00002e30",
+2959 => x"00002e30",
+2960 => x"00002e38",
+2961 => x"00002e38",
+2962 => x"00002e40",
+2963 => x"00002e40",
+2964 => x"00002e48",
+2965 => x"00002e48",
+2966 => x"00002e50",
+2967 => x"00002e50",
+2968 => x"00002e58",
+2969 => x"00002e58",
+2970 => x"00002e60",
+2971 => x"00002e60",
+2972 => x"00002e68",
+2973 => x"00002e68",
+2974 => x"00002e70",
+2975 => x"00002e70",
+2976 => x"00002e78",
+2977 => x"00002e78",
+2978 => x"00002e80",
+2979 => x"00002e80",
+2980 => x"00002e88",
+2981 => x"00002e88",
+2982 => x"00002e90",
+2983 => x"00002e90",
+2984 => x"00002e98",
+2985 => x"00002e98",
+2986 => x"00002ea0",
+2987 => x"00002ea0",
+2988 => x"00002ea8",
+2989 => x"00002ea8",
+2990 => x"00002eb0",
+2991 => x"00002eb0",
+2992 => x"00002eb8",
+2993 => x"00002eb8",
+2994 => x"00002ec0",
+2995 => x"00002ec0",
+2996 => x"00002ec8",
+2997 => x"00002ec8",
+2998 => x"00002ed0",
+2999 => x"00002ed0",
+3000 => x"00002ed8",
+3001 => x"00002ed8",
+3002 => x"00002ee0",
+3003 => x"00002ee0",
+3004 => x"00002ee8",
+3005 => x"00002ee8",
+3006 => x"00002ef0",
+3007 => x"00002ef0",
+3008 => x"00002ef8",
+3009 => x"00002ef8",
+3010 => x"00002f00",
+3011 => x"00002f00",
+3012 => x"00002f08",
+3013 => x"00002f08",
+3014 => x"00002f10",
+3015 => x"00002f10",
+3016 => x"00002f18",
+3017 => x"00002f18",
+3018 => x"00002f20",
+3019 => x"00002f20",
+3020 => x"00002f28",
+3021 => x"00002f28",
+3022 => x"00002f30",
+3023 => x"00002f30",
+3024 => x"00002f38",
+3025 => x"00002f38",
+3026 => x"00002f40",
+3027 => x"00002f40",
+3028 => x"00002f48",
+3029 => x"00002f48",
+3030 => x"00002f50",
+3031 => x"00002f50",
+3032 => x"00002f58",
+3033 => x"00002f58",
+3034 => x"00002f60",
+3035 => x"00002f60",
+3036 => x"00002f68",
+3037 => x"00002f68",
+3038 => x"00002f70",
+3039 => x"00002f70",
+3040 => x"00002f78",
+3041 => x"00002f78",
+3042 => x"00002f80",
+3043 => x"00002f80",
+3044 => x"00002f88",
+3045 => x"00002f88",
+3046 => x"00002f90",
+3047 => x"00002f90",
+3048 => x"00002f98",
+3049 => x"00002f98",
+3050 => x"00002fa0",
+3051 => x"00002fa0",
+3052 => x"000027c0",
+3053 => x"ffffffff",
+3054 => x"00000000",
+3055 => x"ffffffff",
+3056 => x"00000000",
+ others => x"00000000"
+);
+
+begin
+
+process (clk)
+begin
+ if (clk'event and clk = '1') then
+ if (memAWriteEnable = '1') and (memBWriteEnable = '1') and (memAAddr=memBAddr) and (memAWrite/=memBWrite) then
+ report "write collision" severity failure;
+ end if;
+
+ if (memAWriteEnable = '1') then
+ ram(to_integer(unsigned(memAAddr))) := memAWrite;
+ memARead <= memAWrite;
+ else
+ memARead <= ram(to_integer(unsigned(memAAddr)));
+ end if;
+ end if;
+end process;
+
+process (clk)
+begin
+ if (clk'event and clk = '1') then
+ if (memBWriteEnable = '1') then
+ ram(to_integer(unsigned(memBAddr))) := memBWrite;
+ memBRead <= memBWrite;
+ else
+ memBRead <= ram(to_integer(unsigned(memBAddr)));
+ end if;
+ end if;
+end process;
+
+
+
+
+end dualport_ram_arch;
Index: zpu/example/.cvsignore
===================================================================
--- zpu/example/.cvsignore (nonexistent)
+++ zpu/example/.cvsignore (revision 93)
@@ -0,0 +1,3 @@
+work
+vsim.wlf
+install
Index: zpu/example/bram_dmips.vhd
===================================================================
--- zpu/example/bram_dmips.vhd (nonexistent)
+++ zpu/example/bram_dmips.vhd (revision 93)
@@ -0,0 +1,3356 @@
+-- ZPU
+--
+-- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+--
+-- The FreeBSD license
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+--
+-- 1. Redistributions of source code must retain the above copyright
+-- notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above
+-- copyright notice, this list of conditions and the following
+-- disclaimer in the documentation and/or other materials
+-- provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
+-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+-- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+-- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+-- The views and conclusions contained in the software and documentation
+-- are those of the authors and should not be interpreted as representing
+-- official policies, either expressed or implied, of the ZPU Project.
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+
+library work;
+use work.zpu_config.all;
+use work.zpupkg.all;
+
+entity dualport_ram is
+port (clk : in std_logic;
+ memAWriteEnable : in std_logic;
+ memAAddr : in std_logic_vector(maxAddrBitBRAM downto minAddrBit);
+ memAWrite : in std_logic_vector(wordSize-1 downto 0);
+ memARead : out std_logic_vector(wordSize-1 downto 0);
+ memBWriteEnable : in std_logic;
+ memBAddr : in std_logic_vector(maxAddrBitBRAM downto minAddrBit);
+ memBWrite : in std_logic_vector(wordSize-1 downto 0);
+ memBRead : out std_logic_vector(wordSize-1 downto 0));
+end dualport_ram;
+
+architecture dualport_ram_arch of dualport_ram is
+
+
+type ram_type is array(natural range 0 to ((2**(maxAddrBitBRAM+1))/4)-1) of std_logic_vector(wordSize-1 downto 0);
+
+shared variable ram : ram_type :=
+(
+ 0 => x"0b0b0b0b",
+ 1 => x"82700b0b",
+ 2 => x"80d5f40c",
+ 3 => x"3a0b0b80",
+ 4 => x"c4fb0400",
+ 5 => x"00000000",
+ 6 => x"00000000",
+ 7 => x"00000000",
+ 8 => x"80088408",
+ 9 => x"88080b0b",
+ 10 => x"80c5c22d",
+ 11 => x"880c840c",
+ 12 => x"800c0400",
+ 13 => x"00000000",
+ 14 => x"00000000",
+ 15 => x"00000000",
+ 16 => x"71fd0608",
+ 17 => x"72830609",
+ 18 => x"81058205",
+ 19 => x"832b2a83",
+ 20 => x"ffff0652",
+ 21 => x"04000000",
+ 22 => x"00000000",
+ 23 => x"00000000",
+ 24 => x"71fd0608",
+ 25 => x"83ffff73",
+ 26 => x"83060981",
+ 27 => x"05820583",
+ 28 => x"2b2b0906",
+ 29 => x"7383ffff",
+ 30 => x"0b0b0b0b",
+ 31 => x"83a70400",
+ 32 => x"72098105",
+ 33 => x"72057373",
+ 34 => x"09060906",
+ 35 => x"73097306",
+ 36 => x"070a8106",
+ 37 => x"53510400",
+ 38 => x"00000000",
+ 39 => x"00000000",
+ 40 => x"72722473",
+ 41 => x"732e0753",
+ 42 => x"51040000",
+ 43 => x"00000000",
+ 44 => x"00000000",
+ 45 => x"00000000",
+ 46 => x"00000000",
+ 47 => x"00000000",
+ 48 => x"71737109",
+ 49 => x"71068106",
+ 50 => x"30720a10",
+ 51 => x"0a720a10",
+ 52 => x"0a31050a",
+ 53 => x"81065151",
+ 54 => x"53510400",
+ 55 => x"00000000",
+ 56 => x"72722673",
+ 57 => x"732e0753",
+ 58 => x"51040000",
+ 59 => x"00000000",
+ 60 => x"00000000",
+ 61 => x"00000000",
+ 62 => x"00000000",
+ 63 => x"00000000",
+ 64 => x"00000000",
+ 65 => x"00000000",
+ 66 => x"00000000",
+ 67 => x"00000000",
+ 68 => x"00000000",
+ 69 => x"00000000",
+ 70 => x"00000000",
+ 71 => x"00000000",
+ 72 => x"0b0b0b88",
+ 73 => x"c3040000",
+ 74 => x"00000000",
+ 75 => x"00000000",
+ 76 => x"00000000",
+ 77 => x"00000000",
+ 78 => x"00000000",
+ 79 => x"00000000",
+ 80 => x"720a722b",
+ 81 => x"0a535104",
+ 82 => x"00000000",
+ 83 => x"00000000",
+ 84 => x"00000000",
+ 85 => x"00000000",
+ 86 => x"00000000",
+ 87 => x"00000000",
+ 88 => x"72729f06",
+ 89 => x"0981050b",
+ 90 => x"0b0b88a6",
+ 91 => x"05040000",
+ 92 => x"00000000",
+ 93 => x"00000000",
+ 94 => x"00000000",
+ 95 => x"00000000",
+ 96 => x"72722aff",
+ 97 => x"739f062a",
+ 98 => x"0974090a",
+ 99 => x"8106ff05",
+ 100 => x"06075351",
+ 101 => x"04000000",
+ 102 => x"00000000",
+ 103 => x"00000000",
+ 104 => x"71715351",
+ 105 => x"020d0406",
+ 106 => x"73830609",
+ 107 => x"81058205",
+ 108 => x"832b0b2b",
+ 109 => x"0772fc06",
+ 110 => x"0c515104",
+ 111 => x"00000000",
+ 112 => x"72098105",
+ 113 => x"72050970",
+ 114 => x"81050906",
+ 115 => x"0a810653",
+ 116 => x"51040000",
+ 117 => x"00000000",
+ 118 => x"00000000",
+ 119 => x"00000000",
+ 120 => x"72098105",
+ 121 => x"72050970",
+ 122 => x"81050906",
+ 123 => x"0a098106",
+ 124 => x"53510400",
+ 125 => x"00000000",
+ 126 => x"00000000",
+ 127 => x"00000000",
+ 128 => x"71098105",
+ 129 => x"52040000",
+ 130 => x"00000000",
+ 131 => x"00000000",
+ 132 => x"00000000",
+ 133 => x"00000000",
+ 134 => x"00000000",
+ 135 => x"00000000",
+ 136 => x"72720981",
+ 137 => x"05055351",
+ 138 => x"04000000",
+ 139 => x"00000000",
+ 140 => x"00000000",
+ 141 => x"00000000",
+ 142 => x"00000000",
+ 143 => x"00000000",
+ 144 => x"72097206",
+ 145 => x"73730906",
+ 146 => x"07535104",
+ 147 => x"00000000",
+ 148 => x"00000000",
+ 149 => x"00000000",
+ 150 => x"00000000",
+ 151 => x"00000000",
+ 152 => x"71fc0608",
+ 153 => x"72830609",
+ 154 => x"81058305",
+ 155 => x"1010102a",
+ 156 => x"81ff0652",
+ 157 => x"04000000",
+ 158 => x"00000000",
+ 159 => x"00000000",
+ 160 => x"71fc0608",
+ 161 => x"0b0b80d5",
+ 162 => x"e0738306",
+ 163 => x"10100508",
+ 164 => x"060b0b0b",
+ 165 => x"88a90400",
+ 166 => x"00000000",
+ 167 => x"00000000",
+ 168 => x"80088408",
+ 169 => x"88087575",
+ 170 => x"0b0b0bad",
+ 171 => x"aa2d5050",
+ 172 => x"80085688",
+ 173 => x"0c840c80",
+ 174 => x"0c510400",
+ 175 => x"00000000",
+ 176 => x"80088408",
+ 177 => x"88087575",
+ 178 => x"0b0b0bad",
+ 179 => x"ee2d5050",
+ 180 => x"80085688",
+ 181 => x"0c840c80",
+ 182 => x"0c510400",
+ 183 => x"00000000",
+ 184 => x"72097081",
+ 185 => x"0509060a",
+ 186 => x"8106ff05",
+ 187 => x"70547106",
+ 188 => x"73097274",
+ 189 => x"05ff0506",
+ 190 => x"07515151",
+ 191 => x"04000000",
+ 192 => x"72097081",
+ 193 => x"0509060a",
+ 194 => x"098106ff",
+ 195 => x"05705471",
+ 196 => x"06730972",
+ 197 => x"7405ff05",
+ 198 => x"06075151",
+ 199 => x"51040000",
+ 200 => x"05ff0504",
+ 201 => x"00000000",
+ 202 => x"00000000",
+ 203 => x"00000000",
+ 204 => x"00000000",
+ 205 => x"00000000",
+ 206 => x"00000000",
+ 207 => x"00000000",
+ 208 => x"810b0b0b",
+ 209 => x"80d5f00c",
+ 210 => x"51040000",
+ 211 => x"00000000",
+ 212 => x"00000000",
+ 213 => x"00000000",
+ 214 => x"00000000",
+ 215 => x"00000000",
+ 216 => x"71810552",
+ 217 => x"04000000",
+ 218 => x"00000000",
+ 219 => x"00000000",
+ 220 => x"00000000",
+ 221 => x"00000000",
+ 222 => x"00000000",
+ 223 => x"00000000",
+ 224 => x"00000000",
+ 225 => x"00000000",
+ 226 => x"00000000",
+ 227 => x"00000000",
+ 228 => x"00000000",
+ 229 => x"00000000",
+ 230 => x"00000000",
+ 231 => x"00000000",
+ 232 => x"02840572",
+ 233 => x"10100552",
+ 234 => x"04000000",
+ 235 => x"00000000",
+ 236 => x"00000000",
+ 237 => x"00000000",
+ 238 => x"00000000",
+ 239 => x"00000000",
+ 240 => x"00000000",
+ 241 => x"00000000",
+ 242 => x"00000000",
+ 243 => x"00000000",
+ 244 => x"00000000",
+ 245 => x"00000000",
+ 246 => x"00000000",
+ 247 => x"00000000",
+ 248 => x"717105ff",
+ 249 => x"05715351",
+ 250 => x"020d0400",
+ 251 => x"00000000",
+ 252 => x"00000000",
+ 253 => x"00000000",
+ 254 => x"00000000",
+ 255 => x"00000000",
+ 256 => x"82fd3fbf",
+ 257 => x"a03f0410",
+ 258 => x"10101010",
+ 259 => x"10101010",
+ 260 => x"10101010",
+ 261 => x"10101010",
+ 262 => x"10101010",
+ 263 => x"10101010",
+ 264 => x"10101010",
+ 265 => x"10105351",
+ 266 => x"047381ff",
+ 267 => x"06738306",
+ 268 => x"09810583",
+ 269 => x"05101010",
+ 270 => x"2b0772fc",
+ 271 => x"060c5151",
+ 272 => x"043c0472",
+ 273 => x"72807281",
+ 274 => x"06ff0509",
+ 275 => x"72060571",
+ 276 => x"1052720a",
+ 277 => x"100a5372",
+ 278 => x"ed385151",
+ 279 => x"535104ff",
+ 280 => x"3d0d0b0b",
+ 281 => x"80e5e408",
+ 282 => x"52710870",
+ 283 => x"882a8132",
+ 284 => x"70810651",
+ 285 => x"515170f1",
+ 286 => x"3873720c",
+ 287 => x"833d0d04",
+ 288 => x"80d5f008",
+ 289 => x"802ea438",
+ 290 => x"80d5f408",
+ 291 => x"822ebd38",
+ 292 => x"8380800b",
+ 293 => x"0b0b80e5",
+ 294 => x"e40c82a0",
+ 295 => x"800b80e5",
+ 296 => x"e80c8290",
+ 297 => x"800b80e5",
+ 298 => x"ec0c04f8",
+ 299 => x"808080a4",
+ 300 => x"0b0b0b80",
+ 301 => x"e5e40cf8",
+ 302 => x"80808280",
+ 303 => x"0b80e5e8",
+ 304 => x"0cf88080",
+ 305 => x"84800b80",
+ 306 => x"e5ec0c04",
+ 307 => x"80c0a880",
+ 308 => x"8c0b0b0b",
+ 309 => x"80e5e40c",
+ 310 => x"80c0a880",
+ 311 => x"940b80e5",
+ 312 => x"e80c0b0b",
+ 313 => x"80c7d00b",
+ 314 => x"80e5ec0c",
+ 315 => x"04f23d0d",
+ 316 => x"6080e5e8",
+ 317 => x"08565d82",
+ 318 => x"750c8059",
+ 319 => x"805a800b",
+ 320 => x"8f3d5d5b",
+ 321 => x"7a101015",
+ 322 => x"70087108",
+ 323 => x"719f2c7e",
+ 324 => x"852b5855",
+ 325 => x"557d5359",
+ 326 => x"5799993f",
+ 327 => x"7d7f7a72",
+ 328 => x"077c7207",
+ 329 => x"71716081",
+ 330 => x"05415f5d",
+ 331 => x"5b595755",
+ 332 => x"817b278f",
+ 333 => x"38767d0c",
+ 334 => x"77841e0c",
+ 335 => x"7c800c90",
+ 336 => x"3d0d0480",
+ 337 => x"e5e80855",
+ 338 => x"ffba3970",
+ 339 => x"7080e5f0",
+ 340 => x"335170a7",
+ 341 => x"3880d5fc",
+ 342 => x"08700852",
+ 343 => x"5270802e",
+ 344 => x"94388412",
+ 345 => x"80d5fc0c",
+ 346 => x"702d80d5",
+ 347 => x"fc087008",
+ 348 => x"525270ee",
+ 349 => x"38810b80",
+ 350 => x"e5f03450",
+ 351 => x"50040470",
+ 352 => x"0b0b80e5",
+ 353 => x"e008802e",
+ 354 => x"8e380b0b",
+ 355 => x"0b0b800b",
+ 356 => x"802e0981",
+ 357 => x"06833850",
+ 358 => x"040b0b80",
+ 359 => x"e5e0510b",
+ 360 => x"0b0bf4dc",
+ 361 => x"3f500404",
+ 362 => x"ff3d0d02",
+ 363 => x"8f053352",
+ 364 => x"718a2e8a",
+ 365 => x"387151fd",
+ 366 => x"a63f833d",
+ 367 => x"0d048d51",
+ 368 => x"fd9d3f71",
+ 369 => x"51fd983f",
+ 370 => x"833d0d04",
+ 371 => x"ce3d0db5",
+ 372 => x"3d707084",
+ 373 => x"0552088b",
+ 374 => x"a85c56a5",
+ 375 => x"3d5e5c80",
+ 376 => x"75708105",
+ 377 => x"5733765b",
+ 378 => x"55587378",
+ 379 => x"2e80c138",
+ 380 => x"8e3d5b73",
+ 381 => x"a52e0981",
+ 382 => x"0680c538",
+ 383 => x"78708105",
+ 384 => x"5a335473",
+ 385 => x"80e42e81",
+ 386 => x"b6387380",
+ 387 => x"e42480c6",
+ 388 => x"387380e3",
+ 389 => x"2ea13880",
+ 390 => x"52a55179",
+ 391 => x"2d805273",
+ 392 => x"51792d82",
+ 393 => x"18587870",
+ 394 => x"81055a33",
+ 395 => x"5473c438",
+ 396 => x"77800cb4",
+ 397 => x"3d0d047b",
+ 398 => x"841d8312",
+ 399 => x"33565d57",
+ 400 => x"80527351",
+ 401 => x"792d8118",
+ 402 => x"79708105",
+ 403 => x"5b335558",
+ 404 => x"73ffa038",
+ 405 => x"db397380",
+ 406 => x"f32e0981",
+ 407 => x"06ffb838",
+ 408 => x"7b841d71",
+ 409 => x"08595d56",
+ 410 => x"80773355",
+ 411 => x"5673762e",
+ 412 => x"8d388116",
+ 413 => x"70187033",
+ 414 => x"57555674",
+ 415 => x"f538ff16",
+ 416 => x"55807625",
+ 417 => x"ffa03876",
+ 418 => x"70810558",
+ 419 => x"33548052",
+ 420 => x"7351792d",
+ 421 => x"811875ff",
+ 422 => x"17575758",
+ 423 => x"807625ff",
+ 424 => x"85387670",
+ 425 => x"81055833",
+ 426 => x"54805273",
+ 427 => x"51792d81",
+ 428 => x"1875ff17",
+ 429 => x"57575875",
+ 430 => x"8024cc38",
+ 431 => x"fee8397b",
+ 432 => x"841d7108",
+ 433 => x"70719f2c",
+ 434 => x"5953595d",
+ 435 => x"56807524",
+ 436 => x"81913875",
+ 437 => x"7d7c5856",
+ 438 => x"54805773",
+ 439 => x"772e0981",
+ 440 => x"06b638b0",
+ 441 => x"7b3402b5",
+ 442 => x"05567a76",
+ 443 => x"2e9738ff",
+ 444 => x"16567533",
+ 445 => x"75708105",
+ 446 => x"57348117",
+ 447 => x"577a762e",
+ 448 => x"098106eb",
+ 449 => x"38807534",
+ 450 => x"767dff12",
+ 451 => x"57585675",
+ 452 => x"8024fef3",
+ 453 => x"38fe8f39",
+ 454 => x"8a527351",
+ 455 => x"9fd03f80",
+ 456 => x"0880c7d4",
+ 457 => x"05337670",
+ 458 => x"81055834",
+ 459 => x"8a527351",
+ 460 => x"9ef83f80",
+ 461 => x"08548008",
+ 462 => x"802effae",
+ 463 => x"388a5273",
+ 464 => x"519fab3f",
+ 465 => x"800880c7",
+ 466 => x"d4053376",
+ 467 => x"70810558",
+ 468 => x"348a5273",
+ 469 => x"519ed33f",
+ 470 => x"80085480",
+ 471 => x"08ffb938",
+ 472 => x"ff883974",
+ 473 => x"527653b4",
+ 474 => x"3dffb805",
+ 475 => x"51949a3f",
+ 476 => x"a33d0856",
+ 477 => x"fedd3980",
+ 478 => x"3d0d80c1",
+ 479 => x"0b81b4bc",
+ 480 => x"34800b81",
+ 481 => x"b6980c70",
+ 482 => x"800c823d",
+ 483 => x"0d04ff3d",
+ 484 => x"0d800b81",
+ 485 => x"b4bc3352",
+ 486 => x"527080c1",
+ 487 => x"2e993871",
+ 488 => x"81b69808",
+ 489 => x"0781b698",
+ 490 => x"0c80c20b",
+ 491 => x"81b4c034",
+ 492 => x"70800c83",
+ 493 => x"3d0d0481",
+ 494 => x"0b81b698",
+ 495 => x"080781b6",
+ 496 => x"980c80c2",
+ 497 => x"0b81b4c0",
+ 498 => x"3470800c",
+ 499 => x"833d0d04",
+ 500 => x"fd3d0d75",
+ 501 => x"70088a05",
+ 502 => x"535381b4",
+ 503 => x"bc335170",
+ 504 => x"80c12e8b",
+ 505 => x"3873f338",
+ 506 => x"70800c85",
+ 507 => x"3d0d04ff",
+ 508 => x"127081b4",
+ 509 => x"b8083174",
+ 510 => x"0c800c85",
+ 511 => x"3d0d04fc",
+ 512 => x"3d0d81b4",
+ 513 => x"c4085574",
+ 514 => x"802e8c38",
+ 515 => x"76750871",
+ 516 => x"0c81b4c4",
+ 517 => x"0856548c",
+ 518 => x"155381b4",
+ 519 => x"b808528a",
+ 520 => x"518fd43f",
+ 521 => x"73800c86",
+ 522 => x"3d0d04fb",
+ 523 => x"3d0d7770",
+ 524 => x"085656b0",
+ 525 => x"5381b4c4",
+ 526 => x"08527451",
+ 527 => x"ab943f85",
+ 528 => x"0b8c170c",
+ 529 => x"850b8c16",
+ 530 => x"0c750875",
+ 531 => x"0c81b4c4",
+ 532 => x"08547380",
+ 533 => x"2e8a3873",
+ 534 => x"08750c81",
+ 535 => x"b4c40854",
+ 536 => x"8c145381",
+ 537 => x"b4b80852",
+ 538 => x"8a518f8b",
+ 539 => x"3f841508",
+ 540 => x"ad38860b",
+ 541 => x"8c160c88",
+ 542 => x"15528816",
+ 543 => x"08518e97",
+ 544 => x"3f81b4c4",
+ 545 => x"08700876",
+ 546 => x"0c548c15",
+ 547 => x"7054548a",
+ 548 => x"52730851",
+ 549 => x"8ee13f73",
+ 550 => x"800c873d",
+ 551 => x"0d047508",
+ 552 => x"54b05373",
+ 553 => x"527551aa",
+ 554 => x"a93f7380",
+ 555 => x"0c873d0d",
+ 556 => x"04d93d0d",
+ 557 => x"b0519dcf",
+ 558 => x"3f800881",
+ 559 => x"b4b40cb0",
+ 560 => x"519dc43f",
+ 561 => x"800881b4",
+ 562 => x"c40c81b4",
+ 563 => x"b4088008",
+ 564 => x"0c800b80",
+ 565 => x"0884050c",
+ 566 => x"820b8008",
+ 567 => x"88050ca8",
+ 568 => x"0b80088c",
+ 569 => x"050c9f53",
+ 570 => x"80c7e052",
+ 571 => x"80089005",
+ 572 => x"51a9df3f",
+ 573 => x"a13d5e9f",
+ 574 => x"5380c880",
+ 575 => x"527d51a9",
+ 576 => x"d13f8a0b",
+ 577 => x"80f2f80c",
+ 578 => x"80d2a451",
+ 579 => x"f9be3f80",
+ 580 => x"c8a051f9",
+ 581 => x"b73f80d2",
+ 582 => x"a451f9b0",
+ 583 => x"3f80d684",
+ 584 => x"08802e89",
+ 585 => x"d33880c8",
+ 586 => x"d051f9a0",
+ 587 => x"3f80d2a4",
+ 588 => x"51f9993f",
+ 589 => x"80d68008",
+ 590 => x"5280c8fc",
+ 591 => x"51f98d3f",
+ 592 => x"80e69451",
+ 593 => x"b2ff3f81",
+ 594 => x"0b9a3d5e",
+ 595 => x"5b800b80",
+ 596 => x"d6800825",
+ 597 => x"82d43890",
+ 598 => x"3d5f80c1",
+ 599 => x"0b81b4bc",
+ 600 => x"34810b81",
+ 601 => x"b6980c80",
+ 602 => x"c20b81b4",
+ 603 => x"c0348240",
+ 604 => x"835a9f53",
+ 605 => x"80c9ac52",
+ 606 => x"7c51a8d6",
+ 607 => x"3f814180",
+ 608 => x"7d537e52",
+ 609 => x"568e943f",
+ 610 => x"8008762e",
+ 611 => x"09810683",
+ 612 => x"38815675",
+ 613 => x"81b6980c",
+ 614 => x"7f705856",
+ 615 => x"758325a2",
+ 616 => x"38751010",
+ 617 => x"16fd0542",
+ 618 => x"a93dffa4",
+ 619 => x"05538352",
+ 620 => x"76518cc3",
+ 621 => x"3f7f8105",
+ 622 => x"70417058",
+ 623 => x"56837624",
+ 624 => x"e0386154",
+ 625 => x"755380e6",
+ 626 => x"9c5281b4",
+ 627 => x"d0518cb7",
+ 628 => x"3f81b4c4",
+ 629 => x"08700858",
+ 630 => x"58b05377",
+ 631 => x"527651a7",
+ 632 => x"f13f850b",
+ 633 => x"8c190c85",
+ 634 => x"0b8c180c",
+ 635 => x"7708770c",
+ 636 => x"81b4c408",
+ 637 => x"5675802e",
+ 638 => x"8a387508",
+ 639 => x"770c81b4",
+ 640 => x"c408568c",
+ 641 => x"165381b4",
+ 642 => x"b808528a",
+ 643 => x"518be83f",
+ 644 => x"84170887",
+ 645 => x"ea38860b",
+ 646 => x"8c180c88",
+ 647 => x"17528818",
+ 648 => x"08518af3",
+ 649 => x"3f81b4c4",
+ 650 => x"08700878",
+ 651 => x"0c568c17",
+ 652 => x"7054598a",
+ 653 => x"52780851",
+ 654 => x"8bbd3f80",
+ 655 => x"c10b81b4",
+ 656 => x"c0335757",
+ 657 => x"767626a2",
+ 658 => x"3880c352",
+ 659 => x"76518ca1",
+ 660 => x"3f800861",
+ 661 => x"2e89e438",
+ 662 => x"81177081",
+ 663 => x"ff0681b4",
+ 664 => x"c0335858",
+ 665 => x"58757727",
+ 666 => x"e0387960",
+ 667 => x"29627054",
+ 668 => x"71535b59",
+ 669 => x"98b43f80",
+ 670 => x"0840787a",
+ 671 => x"31708729",
+ 672 => x"80083180",
+ 673 => x"088a0581",
+ 674 => x"b4bc3381",
+ 675 => x"b4b8085e",
+ 676 => x"5b525a56",
+ 677 => x"7780c12e",
+ 678 => x"89ce387b",
+ 679 => x"f738811b",
+ 680 => x"5b80d680",
+ 681 => x"087b25fd",
+ 682 => x"b13881b4",
+ 683 => x"ac51b095",
+ 684 => x"3f80c9cc",
+ 685 => x"51f6953f",
+ 686 => x"80d2a451",
+ 687 => x"f68e3f80",
+ 688 => x"c9dc51f6",
+ 689 => x"873f80d2",
+ 690 => x"a451f680",
+ 691 => x"3f81b4b8",
+ 692 => x"085280ca",
+ 693 => x"9451f5f4",
+ 694 => x"3f855280",
+ 695 => x"cab051f5",
+ 696 => x"eb3f81b6",
+ 697 => x"98085280",
+ 698 => x"cacc51f5",
+ 699 => x"df3f8152",
+ 700 => x"80cab051",
+ 701 => x"f5d63f81",
+ 702 => x"b4bc3352",
+ 703 => x"80cae851",
+ 704 => x"f5ca3f80",
+ 705 => x"c15280cb",
+ 706 => x"8451f5c0",
+ 707 => x"3f81b4c0",
+ 708 => x"335280cb",
+ 709 => x"a051f5b4",
+ 710 => x"3f80c252",
+ 711 => x"80cb8451",
+ 712 => x"f5aa3f81",
+ 713 => x"b4f00852",
+ 714 => x"80cbbc51",
+ 715 => x"f59e3f87",
+ 716 => x"5280cab0",
+ 717 => x"51f5953f",
+ 718 => x"80f2f808",
+ 719 => x"5280cbd8",
+ 720 => x"51f5893f",
+ 721 => x"80cbf451",
+ 722 => x"f5823f80",
+ 723 => x"cca051f4",
+ 724 => x"fb3f81b4",
+ 725 => x"c4087008",
+ 726 => x"535a80cc",
+ 727 => x"ac51f4ec",
+ 728 => x"3f80ccc8",
+ 729 => x"51f4e53f",
+ 730 => x"81b4c408",
+ 731 => x"84110853",
+ 732 => x"5680ccfc",
+ 733 => x"51f4d53f",
+ 734 => x"805280ca",
+ 735 => x"b051f4cc",
+ 736 => x"3f81b4c4",
+ 737 => x"08881108",
+ 738 => x"535880cd",
+ 739 => x"9851f4bc",
+ 740 => x"3f825280",
+ 741 => x"cab051f4",
+ 742 => x"b33f81b4",
+ 743 => x"c4088c11",
+ 744 => x"08535780",
+ 745 => x"cdb451f4",
+ 746 => x"a33f9152",
+ 747 => x"80cab051",
+ 748 => x"f49a3f81",
+ 749 => x"b4c40890",
+ 750 => x"055280cd",
+ 751 => x"d051f48c",
+ 752 => x"3f80cdec",
+ 753 => x"51f4853f",
+ 754 => x"80cea451",
+ 755 => x"f3fe3f81",
+ 756 => x"b4b40870",
+ 757 => x"08535f80",
+ 758 => x"ccac51f3",
+ 759 => x"ef3f80ce",
+ 760 => x"b851f3e8",
+ 761 => x"3f81b4b4",
+ 762 => x"08841108",
+ 763 => x"535b80cc",
+ 764 => x"fc51f3d8",
+ 765 => x"3f805280",
+ 766 => x"cab051f3",
+ 767 => x"cf3f81b4",
+ 768 => x"b4088811",
+ 769 => x"08535c80",
+ 770 => x"cd9851f3",
+ 771 => x"bf3f8152",
+ 772 => x"80cab051",
+ 773 => x"f3b63f81",
+ 774 => x"b4b4088c",
+ 775 => x"1108535a",
+ 776 => x"80cdb451",
+ 777 => x"f3a63f92",
+ 778 => x"5280cab0",
+ 779 => x"51f39d3f",
+ 780 => x"81b4b408",
+ 781 => x"90055280",
+ 782 => x"cdd051f3",
+ 783 => x"8f3f80cd",
+ 784 => x"ec51f388",
+ 785 => x"3f7f5280",
+ 786 => x"cef851f2",
+ 787 => x"ff3f8552",
+ 788 => x"80cab051",
+ 789 => x"f2f63f78",
+ 790 => x"5280cf94",
+ 791 => x"51f2ed3f",
+ 792 => x"8d5280ca",
+ 793 => x"b051f2e4",
+ 794 => x"3f615280",
+ 795 => x"cfb051f2",
+ 796 => x"db3f8752",
+ 797 => x"80cab051",
+ 798 => x"f2d23f60",
+ 799 => x"5280cfcc",
+ 800 => x"51f2c93f",
+ 801 => x"815280ca",
+ 802 => x"b051f2c0",
+ 803 => x"3f7d5280",
+ 804 => x"cfe851f2",
+ 805 => x"b73f80d0",
+ 806 => x"8451f2b0",
+ 807 => x"3f7c5280",
+ 808 => x"d0bc51f2",
+ 809 => x"a73f80d0",
+ 810 => x"d851f2a0",
+ 811 => x"3f80d2a4",
+ 812 => x"51f2993f",
+ 813 => x"81b4ac08",
+ 814 => x"81b4b008",
+ 815 => x"80e69408",
+ 816 => x"80e69808",
+ 817 => x"72713170",
+ 818 => x"74267574",
+ 819 => x"31707231",
+ 820 => x"80e68c0c",
+ 821 => x"444480e6",
+ 822 => x"900c80e6",
+ 823 => x"90085680",
+ 824 => x"d190555c",
+ 825 => x"595758f1",
+ 826 => x"e33f80e6",
+ 827 => x"8c085680",
+ 828 => x"762582a3",
+ 829 => x"3880d680",
+ 830 => x"0870719f",
+ 831 => x"2c9a3d53",
+ 832 => x"565680e6",
+ 833 => x"8c0880e6",
+ 834 => x"90084153",
+ 835 => x"7f547052",
+ 836 => x"5a89eb3f",
+ 837 => x"66685f80",
+ 838 => x"e5fc0c7d",
+ 839 => x"80e6800c",
+ 840 => x"80d68008",
+ 841 => x"709f2c58",
+ 842 => x"568058bd",
+ 843 => x"84c07855",
+ 844 => x"55765275",
+ 845 => x"53795187",
+ 846 => x"d13f953d",
+ 847 => x"80e68c08",
+ 848 => x"80e69008",
+ 849 => x"41557f56",
+ 850 => x"67694053",
+ 851 => x"7e547052",
+ 852 => x"5c89ab3f",
+ 853 => x"64665e80",
+ 854 => x"e6840c7c",
+ 855 => x"80e6880c",
+ 856 => x"80d68008",
+ 857 => x"709f2c40",
+ 858 => x"58805783",
+ 859 => x"dceb9480",
+ 860 => x"7755557e",
+ 861 => x"5277537b",
+ 862 => x"51878f3f",
+ 863 => x"64665d5b",
+ 864 => x"805e8ddd",
+ 865 => x"7e555580",
+ 866 => x"e68c0880",
+ 867 => x"e6900859",
+ 868 => x"52775379",
+ 869 => x"5186f33f",
+ 870 => x"66684054",
+ 871 => x"7e557a52",
+ 872 => x"7b53a93d",
+ 873 => x"ffa80551",
+ 874 => x"88d43f62",
+ 875 => x"645e81b4",
+ 876 => x"c80c7c81",
+ 877 => x"b4cc0c80",
+ 878 => x"d1a051f0",
+ 879 => x"8f3f80e6",
+ 880 => x"80085280",
+ 881 => x"d1d051f0",
+ 882 => x"833f80d1",
+ 883 => x"d851effc",
+ 884 => x"3f80e688",
+ 885 => x"085280d1",
+ 886 => x"d051eff0",
+ 887 => x"3f81b4cc",
+ 888 => x"085280d2",
+ 889 => x"8851efe4",
+ 890 => x"3f80d2a4",
+ 891 => x"51efdd3f",
+ 892 => x"800b800c",
+ 893 => x"a93d0d04",
+ 894 => x"80d2a851",
+ 895 => x"f6ac3977",
+ 896 => x"0857b053",
+ 897 => x"76527751",
+ 898 => x"9fc83f80",
+ 899 => x"c10b81b4",
+ 900 => x"c0335757",
+ 901 => x"f8ae3975",
+ 902 => x"8a3880e6",
+ 903 => x"90088126",
+ 904 => x"fdd33880",
+ 905 => x"d2d851ef",
+ 906 => x"a33f80d3",
+ 907 => x"9051ef9c",
+ 908 => x"3f80d2a4",
+ 909 => x"51ef953f",
+ 910 => x"80d68008",
+ 911 => x"70719f2c",
+ 912 => x"9a3d5356",
+ 913 => x"5680e68c",
+ 914 => x"0880e690",
+ 915 => x"0841537f",
+ 916 => x"5470525a",
+ 917 => x"87a83f66",
+ 918 => x"685f80e5",
+ 919 => x"fc0c7d80",
+ 920 => x"e6800c80",
+ 921 => x"d6800870",
+ 922 => x"9f2c5856",
+ 923 => x"8058bd84",
+ 924 => x"c0785555",
+ 925 => x"76527553",
+ 926 => x"7951858e",
+ 927 => x"3f953d80",
+ 928 => x"e68c0880",
+ 929 => x"e6900841",
+ 930 => x"557f5667",
+ 931 => x"6940537e",
+ 932 => x"5470525c",
+ 933 => x"86e83f64",
+ 934 => x"665e80e6",
+ 935 => x"840c7c80",
+ 936 => x"e6880c80",
+ 937 => x"d6800870",
+ 938 => x"9f2c4058",
+ 939 => x"805783dc",
+ 940 => x"eb948077",
+ 941 => x"55557e52",
+ 942 => x"77537b51",
+ 943 => x"84cc3f64",
+ 944 => x"665d5b80",
+ 945 => x"5e8ddd7e",
+ 946 => x"555580e6",
+ 947 => x"8c0880e6",
+ 948 => x"90085952",
+ 949 => x"77537951",
+ 950 => x"84b03f66",
+ 951 => x"6840547e",
+ 952 => x"557a527b",
+ 953 => x"53a93dff",
+ 954 => x"a8055186",
+ 955 => x"913f6264",
+ 956 => x"5e81b4c8",
+ 957 => x"0c7c81b4",
+ 958 => x"cc0c80d1",
+ 959 => x"a051edcc",
+ 960 => x"3f80e680",
+ 961 => x"085280d1",
+ 962 => x"d051edc0",
+ 963 => x"3f80d1d8",
+ 964 => x"51edb93f",
+ 965 => x"80e68808",
+ 966 => x"5280d1d0",
+ 967 => x"51edad3f",
+ 968 => x"81b4cc08",
+ 969 => x"5280d288",
+ 970 => x"51eda13f",
+ 971 => x"80d2a451",
+ 972 => x"ed9a3f80",
+ 973 => x"0b800ca9",
+ 974 => x"3d0d04a9",
+ 975 => x"3dffa005",
+ 976 => x"52805180",
+ 977 => x"d23f9f53",
+ 978 => x"80d3b052",
+ 979 => x"7c519d82",
+ 980 => x"3f7a7b81",
+ 981 => x"b4b80c81",
+ 982 => x"187081ff",
+ 983 => x"0681b4c0",
+ 984 => x"33595959",
+ 985 => x"5af5fe39",
+ 986 => x"ff16707b",
+ 987 => x"31600c5c",
+ 988 => x"800b811c",
+ 989 => x"5c5c80d6",
+ 990 => x"80087b25",
+ 991 => x"f3dc38f6",
+ 992 => x"a939ff3d",
+ 993 => x"0d738232",
+ 994 => x"70307072",
+ 995 => x"07802580",
+ 996 => x"0c525283",
+ 997 => x"3d0d04fe",
+ 998 => x"3d0d7476",
+ 999 => x"71535452",
+ 1000 => x"71822e83",
+ 1001 => x"38835171",
+ 1002 => x"812e9a38",
+ 1003 => x"8172269f",
+ 1004 => x"3871822e",
+ 1005 => x"b8387184",
+ 1006 => x"2ea93870",
+ 1007 => x"730c7080",
+ 1008 => x"0c843d0d",
+ 1009 => x"0480e40b",
+ 1010 => x"81b4b808",
+ 1011 => x"258b3880",
+ 1012 => x"730c7080",
+ 1013 => x"0c843d0d",
+ 1014 => x"0483730c",
+ 1015 => x"70800c84",
+ 1016 => x"3d0d0482",
+ 1017 => x"730c7080",
+ 1018 => x"0c843d0d",
+ 1019 => x"0481730c",
+ 1020 => x"70800c84",
+ 1021 => x"3d0d0480",
+ 1022 => x"3d0d7474",
+ 1023 => x"14820571",
+ 1024 => x"0c800c82",
+ 1025 => x"3d0d04f7",
+ 1026 => x"3d0d7b7d",
+ 1027 => x"7f618512",
+ 1028 => x"70822b75",
+ 1029 => x"11707471",
+ 1030 => x"70840553",
+ 1031 => x"0c5a5a5d",
+ 1032 => x"5b760c79",
+ 1033 => x"80f8180c",
+ 1034 => x"79861252",
+ 1035 => x"57585a5a",
+ 1036 => x"76762499",
+ 1037 => x"3876b329",
+ 1038 => x"822b7911",
+ 1039 => x"51537673",
+ 1040 => x"70840555",
+ 1041 => x"0c811454",
+ 1042 => x"757425f2",
+ 1043 => x"387681cc",
+ 1044 => x"2919fc11",
+ 1045 => x"088105fc",
+ 1046 => x"120c7a19",
+ 1047 => x"70089fa0",
+ 1048 => x"130c5856",
+ 1049 => x"850b81b4",
+ 1050 => x"b80c7580",
+ 1051 => x"0c8b3d0d",
+ 1052 => x"04fe3d0d",
+ 1053 => x"02930533",
+ 1054 => x"51800284",
+ 1055 => x"05970533",
+ 1056 => x"54527073",
+ 1057 => x"2e883871",
+ 1058 => x"800c843d",
+ 1059 => x"0d047081",
+ 1060 => x"b4bc3481",
+ 1061 => x"0b800c84",
+ 1062 => x"3d0d04f8",
+ 1063 => x"3d0d7a7c",
+ 1064 => x"5956820b",
+ 1065 => x"83195555",
+ 1066 => x"74167033",
+ 1067 => x"75335b51",
+ 1068 => x"5372792e",
+ 1069 => x"80c63880",
+ 1070 => x"c10b8116",
+ 1071 => x"81165656",
+ 1072 => x"57827525",
+ 1073 => x"e338ffa9",
+ 1074 => x"177081ff",
+ 1075 => x"06555973",
+ 1076 => x"82268338",
+ 1077 => x"87558153",
+ 1078 => x"7680d22e",
+ 1079 => x"98387752",
+ 1080 => x"75519bc3",
+ 1081 => x"3f805372",
+ 1082 => x"80082589",
+ 1083 => x"38871581",
+ 1084 => x"b4b80c81",
+ 1085 => x"5372800c",
+ 1086 => x"8a3d0d04",
+ 1087 => x"7281b4bc",
+ 1088 => x"34827525",
+ 1089 => x"ffa238ff",
+ 1090 => x"bd39ef3d",
+ 1091 => x"0d636567",
+ 1092 => x"5b427943",
+ 1093 => x"67695940",
+ 1094 => x"77415a80",
+ 1095 => x"5d805e61",
+ 1096 => x"7083ffff",
+ 1097 => x"0671902a",
+ 1098 => x"627083ff",
+ 1099 => x"ff067190",
+ 1100 => x"2a747229",
+ 1101 => x"74732975",
+ 1102 => x"73297774",
+ 1103 => x"2973902a",
+ 1104 => x"05721151",
+ 1105 => x"5856535f",
+ 1106 => x"5a575a58",
+ 1107 => x"55587373",
+ 1108 => x"27863884",
+ 1109 => x"80801656",
+ 1110 => x"73902a16",
+ 1111 => x"5b7883ff",
+ 1112 => x"ff067484",
+ 1113 => x"80802905",
+ 1114 => x"5c7a7c5a",
+ 1115 => x"5d785e77",
+ 1116 => x"7f296178",
+ 1117 => x"29057d05",
+ 1118 => x"5d7c7e56",
+ 1119 => x"7a0c7484",
+ 1120 => x"1b0c7980",
+ 1121 => x"0c933d0d",
+ 1122 => x"04f93d0d",
+ 1123 => x"797b7d54",
+ 1124 => x"58725977",
+ 1125 => x"30797030",
+ 1126 => x"7072079f",
+ 1127 => x"2a737131",
+ 1128 => x"5a525977",
+ 1129 => x"7956730c",
+ 1130 => x"53738413",
+ 1131 => x"0c54800c",
+ 1132 => x"893d0d04",
+ 1133 => x"f93d0d79",
+ 1134 => x"7b7d7f56",
+ 1135 => x"54525472",
+ 1136 => x"802ea038",
+ 1137 => x"70577158",
+ 1138 => x"a0733152",
+ 1139 => x"807225a1",
+ 1140 => x"38777074",
+ 1141 => x"2b577073",
+ 1142 => x"2a78752b",
+ 1143 => x"07565174",
+ 1144 => x"76535170",
+ 1145 => x"740c7184",
+ 1146 => x"150c7380",
+ 1147 => x"0c893d0d",
+ 1148 => x"04805677",
+ 1149 => x"72302b55",
+ 1150 => x"74765351",
+ 1151 => x"e639e43d",
+ 1152 => x"0d6ea13d",
+ 1153 => x"08a33d08",
+ 1154 => x"59575f80",
+ 1155 => x"764d774e",
+ 1156 => x"a33d08a5",
+ 1157 => x"3d08574b",
+ 1158 => x"754c5e7d",
+ 1159 => x"6c2486fb",
+ 1160 => x"38806a24",
+ 1161 => x"878f3869",
+ 1162 => x"6b58566b",
+ 1163 => x"6d5d467b",
+ 1164 => x"47754476",
+ 1165 => x"45646468",
+ 1166 => x"685c5c56",
+ 1167 => x"567481e7",
+ 1168 => x"38787627",
+ 1169 => x"82c73875",
+ 1170 => x"81ff2683",
+ 1171 => x"2b5583ff",
+ 1172 => x"ff76278c",
+ 1173 => x"389055fe",
+ 1174 => x"800a7627",
+ 1175 => x"83389855",
+ 1176 => x"75752a80",
+ 1177 => x"d3d00570",
+ 1178 => x"33a07731",
+ 1179 => x"71315755",
+ 1180 => x"5774802e",
+ 1181 => x"95387575",
+ 1182 => x"2ba07631",
+ 1183 => x"7a772b7c",
+ 1184 => x"722a077c",
+ 1185 => x"782b5d5b",
+ 1186 => x"59567590",
+ 1187 => x"2a7683ff",
+ 1188 => x"ff067154",
+ 1189 => x"7a535957",
+ 1190 => x"88803f80",
+ 1191 => x"085b87ea",
+ 1192 => x"3f800880",
+ 1193 => x"0879297c",
+ 1194 => x"902b7c90",
+ 1195 => x"2a075656",
+ 1196 => x"59737527",
+ 1197 => x"94388008",
+ 1198 => x"ff057615",
+ 1199 => x"55597574",
+ 1200 => x"26873874",
+ 1201 => x"742687b9",
+ 1202 => x"38765273",
+ 1203 => x"75315187",
+ 1204 => x"c93f8008",
+ 1205 => x"5587b33f",
+ 1206 => x"80088008",
+ 1207 => x"79297b83",
+ 1208 => x"ffff0677",
+ 1209 => x"902b0756",
+ 1210 => x"59577378",
+ 1211 => x"27963880",
+ 1212 => x"08ff0576",
+ 1213 => x"15555775",
+ 1214 => x"74268938",
+ 1215 => x"77742677",
+ 1216 => x"71315856",
+ 1217 => x"78902b77",
+ 1218 => x"0758805b",
+ 1219 => x"7a407741",
+ 1220 => x"7f615654",
+ 1221 => x"7d80d938",
+ 1222 => x"737f0c74",
+ 1223 => x"7f84050c",
+ 1224 => x"7e800c9e",
+ 1225 => x"3d0d0480",
+ 1226 => x"705c5874",
+ 1227 => x"7926dd38",
+ 1228 => x"7481ff26",
+ 1229 => x"832b5774",
+ 1230 => x"83ffff26",
+ 1231 => x"82a53874",
+ 1232 => x"772a80d3",
+ 1233 => x"d0057033",
+ 1234 => x"a0793171",
+ 1235 => x"31595c5d",
+ 1236 => x"7682b338",
+ 1237 => x"76547479",
+ 1238 => x"27833881",
+ 1239 => x"54797627",
+ 1240 => x"74075981",
+ 1241 => x"5878ffa2",
+ 1242 => x"38765880",
+ 1243 => x"5bff9d39",
+ 1244 => x"73527453",
+ 1245 => x"9e3de805",
+ 1246 => x"51fc8e3f",
+ 1247 => x"6769567f",
+ 1248 => x"0c747f84",
+ 1249 => x"050c7e80",
+ 1250 => x"0c9e3d0d",
+ 1251 => x"0475802e",
+ 1252 => x"81c43875",
+ 1253 => x"81ff2683",
+ 1254 => x"2b5583ff",
+ 1255 => x"ff76278c",
+ 1256 => x"389055fe",
+ 1257 => x"800a7627",
+ 1258 => x"83389855",
+ 1259 => x"75752a80",
+ 1260 => x"d3d00570",
+ 1261 => x"33a07731",
+ 1262 => x"7131575e",
+ 1263 => x"54748491",
+ 1264 => x"38787631",
+ 1265 => x"54817690",
+ 1266 => x"2a7783ff",
+ 1267 => x"ff065f5d",
+ 1268 => x"5b7b5273",
+ 1269 => x"5185c33f",
+ 1270 => x"80085785",
+ 1271 => x"ad3f8008",
+ 1272 => x"80087e29",
+ 1273 => x"78902b7c",
+ 1274 => x"902a0756",
+ 1275 => x"56597375",
+ 1276 => x"27943880",
+ 1277 => x"08ff0576",
+ 1278 => x"15555975",
+ 1279 => x"74268738",
+ 1280 => x"74742684",
+ 1281 => x"f3387b52",
+ 1282 => x"73753151",
+ 1283 => x"858c3f80",
+ 1284 => x"085584f6",
+ 1285 => x"3f800880",
+ 1286 => x"087e297b",
+ 1287 => x"83ffff06",
+ 1288 => x"77902b07",
+ 1289 => x"56595773",
+ 1290 => x"78279638",
+ 1291 => x"8008ff05",
+ 1292 => x"76155557",
+ 1293 => x"75742689",
+ 1294 => x"38777426",
+ 1295 => x"77713158",
+ 1296 => x"5a78902b",
+ 1297 => x"77077b41",
+ 1298 => x"417f6156",
+ 1299 => x"547d802e",
+ 1300 => x"fdc638fe",
+ 1301 => x"9b397552",
+ 1302 => x"815184ae",
+ 1303 => x"3f800856",
+ 1304 => x"feb13990",
+ 1305 => x"57fe800a",
+ 1306 => x"7527fdd3",
+ 1307 => x"38987571",
+ 1308 => x"2a80d3d0",
+ 1309 => x"057033a0",
+ 1310 => x"73317131",
+ 1311 => x"535d5e57",
+ 1312 => x"76802efd",
+ 1313 => x"cf38a077",
+ 1314 => x"3175782b",
+ 1315 => x"77722a07",
+ 1316 => x"77792b7b",
+ 1317 => x"7a2b7d74",
+ 1318 => x"2a077d7b",
+ 1319 => x"2b73902a",
+ 1320 => x"7483ffff",
+ 1321 => x"0671597f",
+ 1322 => x"772a585e",
+ 1323 => x"5c415f58",
+ 1324 => x"5c5483e6",
+ 1325 => x"3f800854",
+ 1326 => x"83d03f80",
+ 1327 => x"08800879",
+ 1328 => x"2975902b",
+ 1329 => x"7e902a07",
+ 1330 => x"56565973",
+ 1331 => x"75279938",
+ 1332 => x"8008ff05",
+ 1333 => x"7b155559",
+ 1334 => x"7a74268c",
+ 1335 => x"38737527",
+ 1336 => x"8738ff19",
+ 1337 => x"7b155559",
+ 1338 => x"76527375",
+ 1339 => x"315183aa",
+ 1340 => x"3f800855",
+ 1341 => x"83943f80",
+ 1342 => x"08800879",
+ 1343 => x"297d83ff",
+ 1344 => x"ff067790",
+ 1345 => x"2b075659",
+ 1346 => x"57737827",
+ 1347 => x"99388008",
+ 1348 => x"ff057b15",
+ 1349 => x"55577a74",
+ 1350 => x"268c3873",
+ 1351 => x"78278738",
+ 1352 => x"ff177b15",
+ 1353 => x"55577378",
+ 1354 => x"3179902b",
+ 1355 => x"78077083",
+ 1356 => x"ffff0671",
+ 1357 => x"902a7983",
+ 1358 => x"ffff067a",
+ 1359 => x"902a7372",
+ 1360 => x"29737329",
+ 1361 => x"74732976",
+ 1362 => x"74297390",
+ 1363 => x"2a057205",
+ 1364 => x"5755435f",
+ 1365 => x"5b585a57",
+ 1366 => x"595a747c",
+ 1367 => x"27863884",
+ 1368 => x"80801757",
+ 1369 => x"74902a17",
+ 1370 => x"7983ffff",
+ 1371 => x"06768480",
+ 1372 => x"80290557",
+ 1373 => x"57767a26",
+ 1374 => x"9a38767a",
+ 1375 => x"32703070",
+ 1376 => x"72078025",
+ 1377 => x"565a5b7c",
+ 1378 => x"7627fafe",
+ 1379 => x"3873802e",
+ 1380 => x"faf838ff",
+ 1381 => x"1858805b",
+ 1382 => x"faf239ff",
+ 1383 => x"76537754",
+ 1384 => x"9f3de805",
+ 1385 => x"525ef7e1",
+ 1386 => x"3f676957",
+ 1387 => x"4c754d69",
+ 1388 => x"8025f8f3",
+ 1389 => x"387d096a",
+ 1390 => x"6c5c537a",
+ 1391 => x"549f3de8",
+ 1392 => x"05525ef7",
+ 1393 => x"c43f6769",
+ 1394 => x"714c704d",
+ 1395 => x"5856f8db",
+ 1396 => x"39a07531",
+ 1397 => x"76762b7a",
+ 1398 => x"772b7c73",
+ 1399 => x"2a077c78",
+ 1400 => x"2b72902a",
+ 1401 => x"7383ffff",
+ 1402 => x"0671587e",
+ 1403 => x"762a5742",
+ 1404 => x"405d5d57",
+ 1405 => x"5881a33f",
+ 1406 => x"80085781",
+ 1407 => x"8d3f8008",
+ 1408 => x"80087e29",
+ 1409 => x"78902b7d",
+ 1410 => x"902a0756",
+ 1411 => x"56597375",
+ 1412 => x"27993880",
+ 1413 => x"08ff0576",
+ 1414 => x"15555975",
+ 1415 => x"74268c38",
+ 1416 => x"73752787",
+ 1417 => x"38ff1976",
+ 1418 => x"1555597b",
+ 1419 => x"52737531",
+ 1420 => x"5180e73f",
+ 1421 => x"80085580",
+ 1422 => x"d13f8008",
+ 1423 => x"80087e29",
+ 1424 => x"7c83ffff",
+ 1425 => x"06707890",
+ 1426 => x"2b075156",
+ 1427 => x"58587377",
+ 1428 => x"27993880",
+ 1429 => x"08ff0576",
+ 1430 => x"15555875",
+ 1431 => x"74268c38",
+ 1432 => x"73772787",
+ 1433 => x"38ff1876",
+ 1434 => x"15555878",
+ 1435 => x"902b7807",
+ 1436 => x"74783155",
+ 1437 => x"5bfada39",
+ 1438 => x"ff197615",
+ 1439 => x"5559fb86",
+ 1440 => x"39ff1976",
+ 1441 => x"155559f8",
+ 1442 => x"c0397070",
+ 1443 => x"70805375",
+ 1444 => x"52745181",
+ 1445 => x"913f5050",
+ 1446 => x"50047070",
+ 1447 => x"70815375",
+ 1448 => x"52745181",
+ 1449 => x"813f5050",
+ 1450 => x"5004fb3d",
+ 1451 => x"0d777955",
+ 1452 => x"55805675",
+ 1453 => x"7524ab38",
+ 1454 => x"8074249d",
+ 1455 => x"38805373",
+ 1456 => x"52745180",
+ 1457 => x"e13f8008",
+ 1458 => x"5475802e",
+ 1459 => x"85388008",
+ 1460 => x"30547380",
+ 1461 => x"0c873d0d",
+ 1462 => x"04733076",
+ 1463 => x"81325754",
+ 1464 => x"dc397430",
+ 1465 => x"55815673",
+ 1466 => x"8025d238",
+ 1467 => x"ec39fa3d",
+ 1468 => x"0d787a57",
+ 1469 => x"55805776",
+ 1470 => x"7524a438",
+ 1471 => x"759f2c54",
+ 1472 => x"81537574",
+ 1473 => x"32743152",
+ 1474 => x"74519b3f",
+ 1475 => x"80085476",
+ 1476 => x"802e8538",
+ 1477 => x"80083054",
+ 1478 => x"73800c88",
+ 1479 => x"3d0d0474",
+ 1480 => x"30558157",
+ 1481 => x"d739fc3d",
+ 1482 => x"0d767853",
+ 1483 => x"54815380",
+ 1484 => x"74732652",
+ 1485 => x"5572802e",
+ 1486 => x"98387080",
+ 1487 => x"2eab3880",
+ 1488 => x"7224a638",
+ 1489 => x"71107310",
+ 1490 => x"75722653",
+ 1491 => x"545272ea",
+ 1492 => x"38735178",
+ 1493 => x"83387451",
+ 1494 => x"70800c86",
+ 1495 => x"3d0d0472",
+ 1496 => x"0a100a72",
+ 1497 => x"0a100a53",
+ 1498 => x"5372802e",
+ 1499 => x"e4387174",
+ 1500 => x"26ed3873",
+ 1501 => x"72317574",
+ 1502 => x"07740a10",
+ 1503 => x"0a740a10",
+ 1504 => x"0a555556",
+ 1505 => x"54e33970",
+ 1506 => x"70735280",
+ 1507 => x"decc0851",
+ 1508 => x"933f5050",
+ 1509 => x"04707073",
+ 1510 => x"5280decc",
+ 1511 => x"085190ce",
+ 1512 => x"3f505004",
+ 1513 => x"f43d0d7e",
+ 1514 => x"608b1170",
+ 1515 => x"f8065b55",
+ 1516 => x"555d7296",
+ 1517 => x"26833890",
+ 1518 => x"58807824",
+ 1519 => x"74792607",
+ 1520 => x"55805474",
+ 1521 => x"742e0981",
+ 1522 => x"0680ca38",
+ 1523 => x"7c518d9e",
+ 1524 => x"3f7783f7",
+ 1525 => x"2680c538",
+ 1526 => x"77832a70",
+ 1527 => x"10101080",
+ 1528 => x"d6c4058c",
+ 1529 => x"11085858",
+ 1530 => x"5475772e",
+ 1531 => x"81f03884",
+ 1532 => x"1608fc06",
+ 1533 => x"8c170888",
+ 1534 => x"1808718c",
+ 1535 => x"120c8812",
+ 1536 => x"0c5b7605",
+ 1537 => x"84110881",
+ 1538 => x"0784120c",
+ 1539 => x"537c518c",
+ 1540 => x"de3f8816",
+ 1541 => x"5473800c",
+ 1542 => x"8e3d0d04",
+ 1543 => x"77892a78",
+ 1544 => x"832a5854",
+ 1545 => x"73802ebf",
+ 1546 => x"3877862a",
+ 1547 => x"b8055784",
+ 1548 => x"7427b438",
+ 1549 => x"80db1457",
+ 1550 => x"947427ab",
+ 1551 => x"38778c2a",
+ 1552 => x"80ee0557",
+ 1553 => x"80d47427",
+ 1554 => x"9e38778f",
+ 1555 => x"2a80f705",
+ 1556 => x"5782d474",
+ 1557 => x"27913877",
+ 1558 => x"922a80fc",
+ 1559 => x"05578ad4",
+ 1560 => x"74278438",
+ 1561 => x"80fe5776",
+ 1562 => x"10101080",
+ 1563 => x"d6c4058c",
+ 1564 => x"11085653",
+ 1565 => x"74732ea3",
+ 1566 => x"38841508",
+ 1567 => x"fc067079",
+ 1568 => x"31555673",
+ 1569 => x"8f2488e4",
+ 1570 => x"38738025",
+ 1571 => x"88e6388c",
+ 1572 => x"15085574",
+ 1573 => x"732e0981",
+ 1574 => x"06df3881",
+ 1575 => x"175980d6",
+ 1576 => x"d4085675",
+ 1577 => x"80d6cc2e",
+ 1578 => x"82cc3884",
+ 1579 => x"1608fc06",
+ 1580 => x"70793155",
+ 1581 => x"55738f24",
+ 1582 => x"bb3880d6",
+ 1583 => x"cc0b80d6",
+ 1584 => x"d80c80d6",
+ 1585 => x"cc0b80d6",
+ 1586 => x"d40c8074",
+ 1587 => x"2480db38",
+ 1588 => x"74168411",
+ 1589 => x"08810784",
+ 1590 => x"120c53fe",
+ 1591 => x"b0398816",
+ 1592 => x"8c110857",
+ 1593 => x"5975792e",
+ 1594 => x"098106fe",
+ 1595 => x"82388214",
+ 1596 => x"59ffab39",
+ 1597 => x"77167881",
+ 1598 => x"0784180c",
+ 1599 => x"7080d6d8",
+ 1600 => x"0c7080d6",
+ 1601 => x"d40c80d6",
+ 1602 => x"cc0b8c12",
+ 1603 => x"0c8c1108",
+ 1604 => x"88120c74",
+ 1605 => x"81078412",
+ 1606 => x"0c740574",
+ 1607 => x"710c5b7c",
+ 1608 => x"518acc3f",
+ 1609 => x"881654fd",
+ 1610 => x"ec3983ff",
+ 1611 => x"75278391",
+ 1612 => x"3874892a",
+ 1613 => x"75832a54",
+ 1614 => x"5473802e",
+ 1615 => x"bf387486",
+ 1616 => x"2ab80553",
+ 1617 => x"847427b4",
+ 1618 => x"3880db14",
+ 1619 => x"53947427",
+ 1620 => x"ab38748c",
+ 1621 => x"2a80ee05",
+ 1622 => x"5380d474",
+ 1623 => x"279e3874",
+ 1624 => x"8f2a80f7",
+ 1625 => x"055382d4",
+ 1626 => x"74279138",
+ 1627 => x"74922a80",
+ 1628 => x"fc05538a",
+ 1629 => x"d4742784",
+ 1630 => x"3880fe53",
+ 1631 => x"72101010",
+ 1632 => x"80d6c405",
+ 1633 => x"88110855",
+ 1634 => x"5773772e",
+ 1635 => x"868b3884",
+ 1636 => x"1408fc06",
+ 1637 => x"5b747b27",
+ 1638 => x"8d388814",
+ 1639 => x"08547377",
+ 1640 => x"2e098106",
+ 1641 => x"ea388c14",
+ 1642 => x"0880d6c4",
+ 1643 => x"0b840508",
+ 1644 => x"718c190c",
+ 1645 => x"7588190c",
+ 1646 => x"7788130c",
+ 1647 => x"5c57758c",
+ 1648 => x"150c7853",
+ 1649 => x"80792483",
+ 1650 => x"98387282",
+ 1651 => x"2c81712b",
+ 1652 => x"5656747b",
+ 1653 => x"2680ca38",
+ 1654 => x"7a750657",
+ 1655 => x"7682a338",
+ 1656 => x"78fc0684",
+ 1657 => x"05597410",
+ 1658 => x"707c0655",
+ 1659 => x"55738292",
+ 1660 => x"38841959",
+ 1661 => x"f13980d6",
+ 1662 => x"c40b8405",
+ 1663 => x"0879545b",
+ 1664 => x"788025c6",
+ 1665 => x"3882da39",
+ 1666 => x"74097b06",
+ 1667 => x"7080d6c4",
+ 1668 => x"0b84050c",
+ 1669 => x"5b741055",
+ 1670 => x"747b2685",
+ 1671 => x"387485bc",
+ 1672 => x"3880d6c4",
+ 1673 => x"0b880508",
+ 1674 => x"70841208",
+ 1675 => x"fc06707b",
+ 1676 => x"317b7226",
+ 1677 => x"8f722507",
+ 1678 => x"5d575c5c",
+ 1679 => x"5578802e",
+ 1680 => x"80d93879",
+ 1681 => x"1580d6bc",
+ 1682 => x"08199011",
+ 1683 => x"59545680",
+ 1684 => x"d6b808ff",
+ 1685 => x"2e8838a0",
+ 1686 => x"8f13e080",
+ 1687 => x"06577652",
+ 1688 => x"7c51888c",
+ 1689 => x"3f800854",
+ 1690 => x"8008ff2e",
+ 1691 => x"90388008",
+ 1692 => x"762782a7",
+ 1693 => x"387480d6",
+ 1694 => x"c42e829f",
+ 1695 => x"3880d6c4",
+ 1696 => x"0b880508",
+ 1697 => x"55841508",
+ 1698 => x"fc067079",
+ 1699 => x"31797226",
+ 1700 => x"8f722507",
+ 1701 => x"5d555a7a",
+ 1702 => x"83f23877",
+ 1703 => x"81078416",
+ 1704 => x"0c771570",
+ 1705 => x"80d6c40b",
+ 1706 => x"88050c74",
+ 1707 => x"81078412",
+ 1708 => x"0c567c51",
+ 1709 => x"87b93f88",
+ 1710 => x"15547380",
+ 1711 => x"0c8e3d0d",
+ 1712 => x"0474832a",
+ 1713 => x"70545480",
+ 1714 => x"7424819b",
+ 1715 => x"3872822c",
+ 1716 => x"81712b80",
+ 1717 => x"d6c80807",
+ 1718 => x"7080d6c4",
+ 1719 => x"0b84050c",
+ 1720 => x"75101010",
+ 1721 => x"80d6c405",
+ 1722 => x"88110871",
+ 1723 => x"8c1b0c70",
+ 1724 => x"881b0c79",
+ 1725 => x"88130c57",
+ 1726 => x"555c5575",
+ 1727 => x"8c150cfd",
+ 1728 => x"c1397879",
+ 1729 => x"10101080",
+ 1730 => x"d6c40570",
+ 1731 => x"565b5c8c",
+ 1732 => x"14085675",
+ 1733 => x"742ea338",
+ 1734 => x"841608fc",
+ 1735 => x"06707931",
+ 1736 => x"5853768f",
+ 1737 => x"2483f138",
+ 1738 => x"76802584",
+ 1739 => x"af388c16",
+ 1740 => x"08567574",
+ 1741 => x"2e098106",
+ 1742 => x"df388814",
+ 1743 => x"811a7083",
+ 1744 => x"06555a54",
+ 1745 => x"72c9387b",
+ 1746 => x"83065675",
+ 1747 => x"802efdb8",
+ 1748 => x"38ff1cf8",
+ 1749 => x"1b5b5c88",
+ 1750 => x"1a087a2e",
+ 1751 => x"ea38fdb5",
+ 1752 => x"39831953",
+ 1753 => x"fce43983",
+ 1754 => x"1470822c",
+ 1755 => x"81712b80",
+ 1756 => x"d6c80807",
+ 1757 => x"7080d6c4",
+ 1758 => x"0b84050c",
+ 1759 => x"76101010",
+ 1760 => x"80d6c405",
+ 1761 => x"88110871",
+ 1762 => x"8c1c0c70",
+ 1763 => x"881c0c7a",
+ 1764 => x"88130c58",
+ 1765 => x"535d5653",
+ 1766 => x"fee13980",
+ 1767 => x"d6880817",
+ 1768 => x"59800876",
+ 1769 => x"2e818b38",
+ 1770 => x"80d6b808",
+ 1771 => x"ff2e848e",
+ 1772 => x"38737631",
+ 1773 => x"1980d688",
+ 1774 => x"0c738706",
+ 1775 => x"70565372",
+ 1776 => x"802e8838",
+ 1777 => x"88733170",
+ 1778 => x"15555576",
+ 1779 => x"149fff06",
+ 1780 => x"a0807131",
+ 1781 => x"1670547e",
+ 1782 => x"53515385",
+ 1783 => x"933f8008",
+ 1784 => x"568008ff",
+ 1785 => x"2e819e38",
+ 1786 => x"80d68808",
+ 1787 => x"137080d6",
+ 1788 => x"880c7475",
+ 1789 => x"80d6c40b",
+ 1790 => x"88050c77",
+ 1791 => x"76311581",
+ 1792 => x"07555659",
+ 1793 => x"7a80d6c4",
+ 1794 => x"2e83c038",
+ 1795 => x"798f2682",
+ 1796 => x"ef38810b",
+ 1797 => x"84150c84",
+ 1798 => x"1508fc06",
+ 1799 => x"70793179",
+ 1800 => x"72268f72",
+ 1801 => x"25075d55",
+ 1802 => x"5a7a802e",
+ 1803 => x"fced3880",
+ 1804 => x"db398008",
+ 1805 => x"9fff0655",
+ 1806 => x"74feed38",
+ 1807 => x"7880d688",
+ 1808 => x"0c80d6c4",
+ 1809 => x"0b880508",
+ 1810 => x"7a188107",
+ 1811 => x"84120c55",
+ 1812 => x"80d6b408",
+ 1813 => x"79278638",
+ 1814 => x"7880d6b4",
+ 1815 => x"0c80d6b0",
+ 1816 => x"087927fc",
+ 1817 => x"a0387880",
+ 1818 => x"d6b00c84",
+ 1819 => x"1508fc06",
+ 1820 => x"70793179",
+ 1821 => x"72268f72",
+ 1822 => x"25075d55",
+ 1823 => x"5a7a802e",
+ 1824 => x"fc993888",
+ 1825 => x"39807457",
+ 1826 => x"53fedd39",
+ 1827 => x"7c5183df",
+ 1828 => x"3f800b80",
+ 1829 => x"0c8e3d0d",
+ 1830 => x"04807324",
+ 1831 => x"a5387282",
+ 1832 => x"2c81712b",
+ 1833 => x"80d6c808",
+ 1834 => x"077080d6",
+ 1835 => x"c40b8405",
+ 1836 => x"0c5c5a76",
+ 1837 => x"8c170c73",
+ 1838 => x"88170c75",
+ 1839 => x"88180cf9",
+ 1840 => x"fd398313",
+ 1841 => x"70822c81",
+ 1842 => x"712b80d6",
+ 1843 => x"c8080770",
+ 1844 => x"80d6c40b",
+ 1845 => x"84050c5d",
+ 1846 => x"5b53d839",
+ 1847 => x"7a75065c",
+ 1848 => x"7bfc9f38",
+ 1849 => x"84197510",
+ 1850 => x"5659f139",
+ 1851 => x"ff178105",
+ 1852 => x"59f7ab39",
+ 1853 => x"8c150888",
+ 1854 => x"1608718c",
+ 1855 => x"120c8812",
+ 1856 => x"0c597515",
+ 1857 => x"84110881",
+ 1858 => x"0784120c",
+ 1859 => x"587c5182",
+ 1860 => x"de3f8815",
+ 1861 => x"54fba339",
+ 1862 => x"77167881",
+ 1863 => x"0784180c",
+ 1864 => x"8c170888",
+ 1865 => x"1808718c",
+ 1866 => x"120c8812",
+ 1867 => x"0c5c7080",
+ 1868 => x"d6d80c70",
+ 1869 => x"80d6d40c",
+ 1870 => x"80d6cc0b",
+ 1871 => x"8c120c8c",
+ 1872 => x"11088812",
+ 1873 => x"0c778107",
+ 1874 => x"84120c77",
+ 1875 => x"0577710c",
+ 1876 => x"557c5182",
+ 1877 => x"9a3f8816",
+ 1878 => x"54f5ba39",
+ 1879 => x"72168411",
+ 1880 => x"08810784",
+ 1881 => x"120c588c",
+ 1882 => x"16088817",
+ 1883 => x"08718c12",
+ 1884 => x"0c88120c",
+ 1885 => x"577c5181",
+ 1886 => x"f63f8816",
+ 1887 => x"54f59639",
+ 1888 => x"7284150c",
+ 1889 => x"f41af806",
+ 1890 => x"70841d08",
+ 1891 => x"81060784",
+ 1892 => x"1d0c701c",
+ 1893 => x"5556850b",
+ 1894 => x"84150c85",
+ 1895 => x"0b88150c",
+ 1896 => x"8f7627fd",
+ 1897 => x"ab38881b",
+ 1898 => x"527c5184",
+ 1899 => x"c13f80d6",
+ 1900 => x"c40b8805",
+ 1901 => x"0880d688",
+ 1902 => x"085a55fd",
+ 1903 => x"93397880",
+ 1904 => x"d6880c73",
+ 1905 => x"80d6b80c",
+ 1906 => x"fbef3972",
+ 1907 => x"84150cfc",
+ 1908 => x"ff39fb3d",
+ 1909 => x"0d77707a",
+ 1910 => x"7c585553",
+ 1911 => x"568f7527",
+ 1912 => x"80e63872",
+ 1913 => x"76078306",
+ 1914 => x"517080dc",
+ 1915 => x"38757352",
+ 1916 => x"54707084",
+ 1917 => x"05520874",
+ 1918 => x"70840556",
+ 1919 => x"0c737170",
+ 1920 => x"84055308",
+ 1921 => x"71708405",
+ 1922 => x"530c7170",
+ 1923 => x"84055308",
+ 1924 => x"71708405",
+ 1925 => x"530c7170",
+ 1926 => x"84055308",
+ 1927 => x"71708405",
+ 1928 => x"530cf016",
+ 1929 => x"5654748f",
+ 1930 => x"26c73883",
+ 1931 => x"75279538",
+ 1932 => x"70708405",
+ 1933 => x"52087470",
+ 1934 => x"8405560c",
+ 1935 => x"fc155574",
+ 1936 => x"8326ed38",
+ 1937 => x"73715452",
+ 1938 => x"ff155170",
+ 1939 => x"ff2e9838",
+ 1940 => x"72708105",
+ 1941 => x"54337270",
+ 1942 => x"81055434",
+ 1943 => x"ff115170",
+ 1944 => x"ff2e0981",
+ 1945 => x"06ea3875",
+ 1946 => x"800c873d",
+ 1947 => x"0d040404",
+ 1948 => x"70707070",
+ 1949 => x"800b81b6",
+ 1950 => x"9c0c7651",
+ 1951 => x"87cc3f80",
+ 1952 => x"08538008",
+ 1953 => x"ff2e8938",
+ 1954 => x"72800c50",
+ 1955 => x"50505004",
+ 1956 => x"81b69c08",
+ 1957 => x"5473802e",
+ 1958 => x"ef387574",
+ 1959 => x"710c5272",
+ 1960 => x"800c5050",
+ 1961 => x"505004fb",
+ 1962 => x"3d0d7779",
+ 1963 => x"70720783",
+ 1964 => x"06535452",
+ 1965 => x"70933871",
+ 1966 => x"73730854",
+ 1967 => x"56547173",
+ 1968 => x"082e80c4",
+ 1969 => x"38737554",
+ 1970 => x"52713370",
+ 1971 => x"81ff0652",
+ 1972 => x"5470802e",
+ 1973 => x"9d387233",
+ 1974 => x"5570752e",
+ 1975 => x"09810695",
+ 1976 => x"38811281",
+ 1977 => x"14713370",
+ 1978 => x"81ff0654",
+ 1979 => x"56545270",
+ 1980 => x"e5387233",
+ 1981 => x"557381ff",
+ 1982 => x"067581ff",
+ 1983 => x"06717131",
+ 1984 => x"800c5552",
+ 1985 => x"873d0d04",
+ 1986 => x"7109f7fb",
+ 1987 => x"fdff1306",
+ 1988 => x"f8848281",
+ 1989 => x"80065271",
+ 1990 => x"97388414",
+ 1991 => x"84167108",
+ 1992 => x"54565471",
+ 1993 => x"75082ee0",
+ 1994 => x"38737554",
+ 1995 => x"52ff9a39",
+ 1996 => x"800b800c",
+ 1997 => x"873d0d04",
+ 1998 => x"fb3d0d77",
+ 1999 => x"705256fe",
+ 2000 => x"ad3f80d6",
+ 2001 => x"c40b8805",
+ 2002 => x"08841108",
+ 2003 => x"fc06707b",
+ 2004 => x"319fef05",
+ 2005 => x"e08006e0",
+ 2006 => x"80055255",
+ 2007 => x"55a08075",
+ 2008 => x"24943880",
+ 2009 => x"527551fe",
+ 2010 => x"873f80d6",
+ 2011 => x"cc081453",
+ 2012 => x"7280082e",
+ 2013 => x"8f387551",
+ 2014 => x"fdf53f80",
+ 2015 => x"5372800c",
+ 2016 => x"873d0d04",
+ 2017 => x"74305275",
+ 2018 => x"51fde53f",
+ 2019 => x"8008ff2e",
+ 2020 => x"a83880d6",
+ 2021 => x"c40b8805",
+ 2022 => x"08747631",
+ 2023 => x"81078412",
+ 2024 => x"0c5380d6",
+ 2025 => x"88087531",
+ 2026 => x"80d6880c",
+ 2027 => x"7551fdbf",
+ 2028 => x"3f810b80",
+ 2029 => x"0c873d0d",
+ 2030 => x"04805275",
+ 2031 => x"51fdb13f",
+ 2032 => x"80d6c40b",
+ 2033 => x"88050880",
+ 2034 => x"08713154",
+ 2035 => x"548f7325",
+ 2036 => x"ffa43880",
+ 2037 => x"0880d6b8",
+ 2038 => x"083180d6",
+ 2039 => x"880c7281",
+ 2040 => x"0784150c",
+ 2041 => x"7551fd87",
+ 2042 => x"3f8053ff",
+ 2043 => x"9039f73d",
+ 2044 => x"0d7b7d54",
+ 2045 => x"5a72802e",
+ 2046 => x"82833879",
+ 2047 => x"51fcef3f",
+ 2048 => x"f8138411",
+ 2049 => x"0870fe06",
+ 2050 => x"70138411",
+ 2051 => x"08fc065c",
+ 2052 => x"57585457",
+ 2053 => x"80d6cc08",
+ 2054 => x"742e82de",
+ 2055 => x"38778415",
+ 2056 => x"0c807381",
+ 2057 => x"06565974",
+ 2058 => x"792e81d5",
+ 2059 => x"38771484",
+ 2060 => x"11088106",
+ 2061 => x"565374a0",
+ 2062 => x"38771656",
+ 2063 => x"7881e638",
+ 2064 => x"88140855",
+ 2065 => x"7480d6cc",
+ 2066 => x"2e82f938",
+ 2067 => x"8c140870",
+ 2068 => x"8c170c75",
+ 2069 => x"88120c58",
+ 2070 => x"75810784",
+ 2071 => x"180c7517",
+ 2072 => x"76710c54",
+ 2073 => x"78819138",
+ 2074 => x"83ff7627",
+ 2075 => x"81c83875",
+ 2076 => x"892a7683",
+ 2077 => x"2a545473",
+ 2078 => x"802ebf38",
+ 2079 => x"75862ab8",
+ 2080 => x"05538474",
+ 2081 => x"27b43880",
+ 2082 => x"db145394",
+ 2083 => x"7427ab38",
+ 2084 => x"758c2a80",
+ 2085 => x"ee055380",
+ 2086 => x"d474279e",
+ 2087 => x"38758f2a",
+ 2088 => x"80f70553",
+ 2089 => x"82d47427",
+ 2090 => x"91387592",
+ 2091 => x"2a80fc05",
+ 2092 => x"538ad474",
+ 2093 => x"27843880",
+ 2094 => x"fe537210",
+ 2095 => x"101080d6",
+ 2096 => x"c4058811",
+ 2097 => x"08555573",
+ 2098 => x"752e82bf",
+ 2099 => x"38841408",
+ 2100 => x"fc065975",
+ 2101 => x"79278d38",
+ 2102 => x"88140854",
+ 2103 => x"73752e09",
+ 2104 => x"8106ea38",
+ 2105 => x"8c140870",
+ 2106 => x"8c190c74",
+ 2107 => x"88190c77",
+ 2108 => x"88120c55",
+ 2109 => x"768c150c",
+ 2110 => x"7951faf3",
+ 2111 => x"3f8b3d0d",
+ 2112 => x"04760877",
+ 2113 => x"71315876",
+ 2114 => x"05881808",
+ 2115 => x"56567480",
+ 2116 => x"d6cc2e80",
+ 2117 => x"e0388c17",
+ 2118 => x"08708c17",
+ 2119 => x"0c758812",
+ 2120 => x"0c53fe89",
+ 2121 => x"39881408",
+ 2122 => x"8c150870",
+ 2123 => x"8c130c59",
+ 2124 => x"88190cfe",
+ 2125 => x"a3397583",
+ 2126 => x"2a705454",
+ 2127 => x"80742481",
+ 2128 => x"98387282",
+ 2129 => x"2c81712b",
+ 2130 => x"80d6c808",
+ 2131 => x"0780d6c4",
+ 2132 => x"0b84050c",
+ 2133 => x"74101010",
+ 2134 => x"80d6c405",
+ 2135 => x"88110871",
+ 2136 => x"8c1b0c70",
+ 2137 => x"881b0c79",
+ 2138 => x"88130c56",
+ 2139 => x"5a55768c",
+ 2140 => x"150cff84",
+ 2141 => x"398159fd",
+ 2142 => x"b4397716",
+ 2143 => x"73810654",
+ 2144 => x"55729838",
+ 2145 => x"76087771",
+ 2146 => x"31587505",
+ 2147 => x"8c180888",
+ 2148 => x"1908718c",
+ 2149 => x"120c8812",
+ 2150 => x"0c555574",
+ 2151 => x"81078418",
+ 2152 => x"0c7680d6",
+ 2153 => x"c40b8805",
+ 2154 => x"0c80d6c0",
+ 2155 => x"087526fe",
+ 2156 => x"c73880d6",
+ 2157 => x"bc085279",
+ 2158 => x"51fafd3f",
+ 2159 => x"7951f9af",
+ 2160 => x"3ffeba39",
+ 2161 => x"81778c17",
+ 2162 => x"0c778817",
+ 2163 => x"0c758c19",
+ 2164 => x"0c758819",
+ 2165 => x"0c59fd80",
+ 2166 => x"39831470",
+ 2167 => x"822c8171",
+ 2168 => x"2b80d6c8",
+ 2169 => x"080780d6",
+ 2170 => x"c40b8405",
+ 2171 => x"0c751010",
+ 2172 => x"1080d6c4",
+ 2173 => x"05881108",
+ 2174 => x"718c1c0c",
+ 2175 => x"70881c0c",
+ 2176 => x"7a88130c",
+ 2177 => x"575b5653",
+ 2178 => x"fee43980",
+ 2179 => x"7324a338",
+ 2180 => x"72822c81",
+ 2181 => x"712b80d6",
+ 2182 => x"c8080780",
+ 2183 => x"d6c40b84",
+ 2184 => x"050c5874",
+ 2185 => x"8c180c73",
+ 2186 => x"88180c76",
+ 2187 => x"88160cfd",
+ 2188 => x"c3398313",
+ 2189 => x"70822c81",
+ 2190 => x"712b80d6",
+ 2191 => x"c8080780",
+ 2192 => x"d6c40b84",
+ 2193 => x"050c5953",
+ 2194 => x"da397070",
+ 2195 => x"7080e5f4",
+ 2196 => x"08893881",
+ 2197 => x"b6a00b80",
+ 2198 => x"e5f40c80",
+ 2199 => x"e5f40875",
+ 2200 => x"115252ff",
+ 2201 => x"537087fb",
+ 2202 => x"80802688",
+ 2203 => x"387080e5",
+ 2204 => x"f40c7153",
+ 2205 => x"72800c50",
+ 2206 => x"505004fd",
+ 2207 => x"3d0d800b",
+ 2208 => x"80d5f408",
+ 2209 => x"54547281",
+ 2210 => x"2e9b3873",
+ 2211 => x"80e5f80c",
+ 2212 => x"c3ee3fc2",
+ 2213 => x"eb3f80e5",
+ 2214 => x"cc528151",
+ 2215 => x"cc933f80",
+ 2216 => x"085180dd",
+ 2217 => x"3f7280e5",
+ 2218 => x"f80cc3d4",
+ 2219 => x"3fc2d13f",
+ 2220 => x"80e5cc52",
+ 2221 => x"8151cbf9",
+ 2222 => x"3f800851",
+ 2223 => x"80c33f00",
+ 2224 => x"ff3900ff",
+ 2225 => x"39f43d0d",
+ 2226 => x"7e80e5ec",
+ 2227 => x"08700870",
+ 2228 => x"81ff0692",
+ 2229 => x"3df80555",
+ 2230 => x"515a5759",
+ 2231 => x"c48f3f80",
+ 2232 => x"5477557b",
+ 2233 => x"7d585276",
+ 2234 => x"538e3df0",
+ 2235 => x"0551de8e",
+ 2236 => x"3f797b58",
+ 2237 => x"790c7684",
+ 2238 => x"1a0c7880",
+ 2239 => x"0c8e3d0d",
+ 2240 => x"04f73d0d",
+ 2241 => x"7b80decc",
+ 2242 => x"0882c811",
+ 2243 => x"085a545a",
+ 2244 => x"77802e80",
+ 2245 => x"da388188",
+ 2246 => x"18841908",
+ 2247 => x"ff058171",
+ 2248 => x"2b595559",
+ 2249 => x"80742480",
+ 2250 => x"ea388074",
+ 2251 => x"24b53873",
+ 2252 => x"822b7811",
+ 2253 => x"88055656",
+ 2254 => x"81801908",
+ 2255 => x"77065372",
+ 2256 => x"802eb638",
+ 2257 => x"78167008",
+ 2258 => x"53537951",
+ 2259 => x"74085372",
+ 2260 => x"2dff14fc",
+ 2261 => x"17fc1779",
+ 2262 => x"812c5a57",
+ 2263 => x"57547380",
+ 2264 => x"25d63877",
+ 2265 => x"085877ff",
+ 2266 => x"ad3880de",
+ 2267 => x"cc0853bc",
+ 2268 => x"1308a538",
+ 2269 => x"7951fec7",
+ 2270 => x"3f740853",
+ 2271 => x"722dff14",
+ 2272 => x"fc17fc17",
+ 2273 => x"79812c5a",
+ 2274 => x"57575473",
+ 2275 => x"8025ffa8",
+ 2276 => x"38d13980",
+ 2277 => x"57ff9339",
+ 2278 => x"7251bc13",
+ 2279 => x"0854732d",
+ 2280 => x"7951fe9b",
+ 2281 => x"3f707080",
+ 2282 => x"e5d40bfc",
+ 2283 => x"05700852",
+ 2284 => x"5270ff2e",
+ 2285 => x"9138702d",
+ 2286 => x"fc127008",
+ 2287 => x"525270ff",
+ 2288 => x"2e098106",
+ 2289 => x"f1385050",
+ 2290 => x"0404c2ff",
+ 2291 => x"3f040000",
+ 2292 => x"00000040",
+ 2293 => x"30313233",
+ 2294 => x"34353637",
+ 2295 => x"38390000",
+ 2296 => x"44485259",
+ 2297 => x"53544f4e",
+ 2298 => x"45205052",
+ 2299 => x"4f475241",
+ 2300 => x"4d2c2053",
+ 2301 => x"4f4d4520",
+ 2302 => x"53545249",
+ 2303 => x"4e470000",
+ 2304 => x"44485259",
+ 2305 => x"53544f4e",
+ 2306 => x"45205052",
+ 2307 => x"4f475241",
+ 2308 => x"4d2c2031",
+ 2309 => x"27535420",
+ 2310 => x"53545249",
+ 2311 => x"4e470000",
+ 2312 => x"44687279",
+ 2313 => x"73746f6e",
+ 2314 => x"65204265",
+ 2315 => x"6e63686d",
+ 2316 => x"61726b2c",
+ 2317 => x"20566572",
+ 2318 => x"73696f6e",
+ 2319 => x"20322e31",
+ 2320 => x"20284c61",
+ 2321 => x"6e677561",
+ 2322 => x"67653a20",
+ 2323 => x"43290a00",
+ 2324 => x"50726f67",
+ 2325 => x"72616d20",
+ 2326 => x"636f6d70",
+ 2327 => x"696c6564",
+ 2328 => x"20776974",
+ 2329 => x"68202772",
+ 2330 => x"65676973",
+ 2331 => x"74657227",
+ 2332 => x"20617474",
+ 2333 => x"72696275",
+ 2334 => x"74650a00",
+ 2335 => x"45786563",
+ 2336 => x"7574696f",
+ 2337 => x"6e207374",
+ 2338 => x"61727473",
+ 2339 => x"2c202564",
+ 2340 => x"2072756e",
+ 2341 => x"73207468",
+ 2342 => x"726f7567",
+ 2343 => x"68204468",
+ 2344 => x"72797374",
+ 2345 => x"6f6e650a",
+ 2346 => x"00000000",
+ 2347 => x"44485259",
+ 2348 => x"53544f4e",
+ 2349 => x"45205052",
+ 2350 => x"4f475241",
+ 2351 => x"4d2c2032",
+ 2352 => x"274e4420",
+ 2353 => x"53545249",
+ 2354 => x"4e470000",
+ 2355 => x"45786563",
+ 2356 => x"7574696f",
+ 2357 => x"6e20656e",
+ 2358 => x"64730a00",
+ 2359 => x"46696e61",
+ 2360 => x"6c207661",
+ 2361 => x"6c756573",
+ 2362 => x"206f6620",
+ 2363 => x"74686520",
+ 2364 => x"76617269",
+ 2365 => x"61626c65",
+ 2366 => x"73207573",
+ 2367 => x"65642069",
+ 2368 => x"6e207468",
+ 2369 => x"65206265",
+ 2370 => x"6e63686d",
+ 2371 => x"61726b3a",
+ 2372 => x"0a000000",
+ 2373 => x"496e745f",
+ 2374 => x"476c6f62",
+ 2375 => x"3a202020",
+ 2376 => x"20202020",
+ 2377 => x"20202020",
+ 2378 => x"2025640a",
+ 2379 => x"00000000",
+ 2380 => x"20202020",
+ 2381 => x"20202020",
+ 2382 => x"73686f75",
+ 2383 => x"6c642062",
+ 2384 => x"653a2020",
+ 2385 => x"2025640a",
+ 2386 => x"00000000",
+ 2387 => x"426f6f6c",
+ 2388 => x"5f476c6f",
+ 2389 => x"623a2020",
+ 2390 => x"20202020",
+ 2391 => x"20202020",
+ 2392 => x"2025640a",
+ 2393 => x"00000000",
+ 2394 => x"43685f31",
+ 2395 => x"5f476c6f",
+ 2396 => x"623a2020",
+ 2397 => x"20202020",
+ 2398 => x"20202020",
+ 2399 => x"2025630a",
+ 2400 => x"00000000",
+ 2401 => x"20202020",
+ 2402 => x"20202020",
+ 2403 => x"73686f75",
+ 2404 => x"6c642062",
+ 2405 => x"653a2020",
+ 2406 => x"2025630a",
+ 2407 => x"00000000",
+ 2408 => x"43685f32",
+ 2409 => x"5f476c6f",
+ 2410 => x"623a2020",
+ 2411 => x"20202020",
+ 2412 => x"20202020",
+ 2413 => x"2025630a",
+ 2414 => x"00000000",
+ 2415 => x"4172725f",
+ 2416 => x"315f476c",
+ 2417 => x"6f625b38",
+ 2418 => x"5d3a2020",
+ 2419 => x"20202020",
+ 2420 => x"2025640a",
+ 2421 => x"00000000",
+ 2422 => x"4172725f",
+ 2423 => x"325f476c",
+ 2424 => x"6f625b38",
+ 2425 => x"5d5b375d",
+ 2426 => x"3a202020",
+ 2427 => x"2025640a",
+ 2428 => x"00000000",
+ 2429 => x"20202020",
+ 2430 => x"20202020",
+ 2431 => x"73686f75",
+ 2432 => x"6c642062",
+ 2433 => x"653a2020",
+ 2434 => x"204e756d",
+ 2435 => x"6265725f",
+ 2436 => x"4f665f52",
+ 2437 => x"756e7320",
+ 2438 => x"2b203130",
+ 2439 => x"0a000000",
+ 2440 => x"5074725f",
+ 2441 => x"476c6f62",
+ 2442 => x"2d3e0a00",
+ 2443 => x"20205074",
+ 2444 => x"725f436f",
+ 2445 => x"6d703a20",
+ 2446 => x"20202020",
+ 2447 => x"20202020",
+ 2448 => x"2025640a",
+ 2449 => x"00000000",
+ 2450 => x"20202020",
+ 2451 => x"20202020",
+ 2452 => x"73686f75",
+ 2453 => x"6c642062",
+ 2454 => x"653a2020",
+ 2455 => x"2028696d",
+ 2456 => x"706c656d",
+ 2457 => x"656e7461",
+ 2458 => x"74696f6e",
+ 2459 => x"2d646570",
+ 2460 => x"656e6465",
+ 2461 => x"6e74290a",
+ 2462 => x"00000000",
+ 2463 => x"20204469",
+ 2464 => x"7363723a",
+ 2465 => x"20202020",
+ 2466 => x"20202020",
+ 2467 => x"20202020",
+ 2468 => x"2025640a",
+ 2469 => x"00000000",
+ 2470 => x"2020456e",
+ 2471 => x"756d5f43",
+ 2472 => x"6f6d703a",
+ 2473 => x"20202020",
+ 2474 => x"20202020",
+ 2475 => x"2025640a",
+ 2476 => x"00000000",
+ 2477 => x"2020496e",
+ 2478 => x"745f436f",
+ 2479 => x"6d703a20",
+ 2480 => x"20202020",
+ 2481 => x"20202020",
+ 2482 => x"2025640a",
+ 2483 => x"00000000",
+ 2484 => x"20205374",
+ 2485 => x"725f436f",
+ 2486 => x"6d703a20",
+ 2487 => x"20202020",
+ 2488 => x"20202020",
+ 2489 => x"2025730a",
+ 2490 => x"00000000",
+ 2491 => x"20202020",
+ 2492 => x"20202020",
+ 2493 => x"73686f75",
+ 2494 => x"6c642062",
+ 2495 => x"653a2020",
+ 2496 => x"20444852",
+ 2497 => x"5953544f",
+ 2498 => x"4e452050",
+ 2499 => x"524f4752",
+ 2500 => x"414d2c20",
+ 2501 => x"534f4d45",
+ 2502 => x"20535452",
+ 2503 => x"494e470a",
+ 2504 => x"00000000",
+ 2505 => x"4e657874",
+ 2506 => x"5f507472",
+ 2507 => x"5f476c6f",
+ 2508 => x"622d3e0a",
+ 2509 => x"00000000",
+ 2510 => x"20202020",
+ 2511 => x"20202020",
+ 2512 => x"73686f75",
+ 2513 => x"6c642062",
+ 2514 => x"653a2020",
+ 2515 => x"2028696d",
+ 2516 => x"706c656d",
+ 2517 => x"656e7461",
+ 2518 => x"74696f6e",
+ 2519 => x"2d646570",
+ 2520 => x"656e6465",
+ 2521 => x"6e74292c",
+ 2522 => x"2073616d",
+ 2523 => x"65206173",
+ 2524 => x"2061626f",
+ 2525 => x"76650a00",
+ 2526 => x"496e745f",
+ 2527 => x"315f4c6f",
+ 2528 => x"633a2020",
+ 2529 => x"20202020",
+ 2530 => x"20202020",
+ 2531 => x"2025640a",
+ 2532 => x"00000000",
+ 2533 => x"496e745f",
+ 2534 => x"325f4c6f",
+ 2535 => x"633a2020",
+ 2536 => x"20202020",
+ 2537 => x"20202020",
+ 2538 => x"2025640a",
+ 2539 => x"00000000",
+ 2540 => x"496e745f",
+ 2541 => x"335f4c6f",
+ 2542 => x"633a2020",
+ 2543 => x"20202020",
+ 2544 => x"20202020",
+ 2545 => x"2025640a",
+ 2546 => x"00000000",
+ 2547 => x"456e756d",
+ 2548 => x"5f4c6f63",
+ 2549 => x"3a202020",
+ 2550 => x"20202020",
+ 2551 => x"20202020",
+ 2552 => x"2025640a",
+ 2553 => x"00000000",
+ 2554 => x"5374725f",
+ 2555 => x"315f4c6f",
+ 2556 => x"633a2020",
+ 2557 => x"20202020",
+ 2558 => x"20202020",
+ 2559 => x"2025730a",
+ 2560 => x"00000000",
+ 2561 => x"20202020",
+ 2562 => x"20202020",
+ 2563 => x"73686f75",
+ 2564 => x"6c642062",
+ 2565 => x"653a2020",
+ 2566 => x"20444852",
+ 2567 => x"5953544f",
+ 2568 => x"4e452050",
+ 2569 => x"524f4752",
+ 2570 => x"414d2c20",
+ 2571 => x"31275354",
+ 2572 => x"20535452",
+ 2573 => x"494e470a",
+ 2574 => x"00000000",
+ 2575 => x"5374725f",
+ 2576 => x"325f4c6f",
+ 2577 => x"633a2020",
+ 2578 => x"20202020",
+ 2579 => x"20202020",
+ 2580 => x"2025730a",
+ 2581 => x"00000000",
+ 2582 => x"20202020",
+ 2583 => x"20202020",
+ 2584 => x"73686f75",
+ 2585 => x"6c642062",
+ 2586 => x"653a2020",
+ 2587 => x"20444852",
+ 2588 => x"5953544f",
+ 2589 => x"4e452050",
+ 2590 => x"524f4752",
+ 2591 => x"414d2c20",
+ 2592 => x"32274e44",
+ 2593 => x"20535452",
+ 2594 => x"494e470a",
+ 2595 => x"00000000",
+ 2596 => x"55736572",
+ 2597 => x"2074696d",
+ 2598 => x"653a2025",
+ 2599 => x"640a0000",
+ 2600 => x"4d696372",
+ 2601 => x"6f736563",
+ 2602 => x"6f6e6473",
+ 2603 => x"20666f72",
+ 2604 => x"206f6e65",
+ 2605 => x"2072756e",
+ 2606 => x"20746872",
+ 2607 => x"6f756768",
+ 2608 => x"20446872",
+ 2609 => x"7973746f",
+ 2610 => x"6e653a20",
+ 2611 => x"00000000",
+ 2612 => x"2564200a",
+ 2613 => x"00000000",
+ 2614 => x"44687279",
+ 2615 => x"73746f6e",
+ 2616 => x"65732070",
+ 2617 => x"65722053",
+ 2618 => x"65636f6e",
+ 2619 => x"643a2020",
+ 2620 => x"20202020",
+ 2621 => x"20202020",
+ 2622 => x"20202020",
+ 2623 => x"20202020",
+ 2624 => x"20202020",
+ 2625 => x"00000000",
+ 2626 => x"56415820",
+ 2627 => x"4d495053",
+ 2628 => x"20726174",
+ 2629 => x"696e6720",
+ 2630 => x"2a203130",
+ 2631 => x"3030203d",
+ 2632 => x"20256420",
+ 2633 => x"0a000000",
+ 2634 => x"50726f67",
+ 2635 => x"72616d20",
+ 2636 => x"636f6d70",
+ 2637 => x"696c6564",
+ 2638 => x"20776974",
+ 2639 => x"686f7574",
+ 2640 => x"20277265",
+ 2641 => x"67697374",
+ 2642 => x"65722720",
+ 2643 => x"61747472",
+ 2644 => x"69627574",
+ 2645 => x"650a0000",
+ 2646 => x"4d656173",
+ 2647 => x"75726564",
+ 2648 => x"2074696d",
+ 2649 => x"6520746f",
+ 2650 => x"6f20736d",
+ 2651 => x"616c6c20",
+ 2652 => x"746f206f",
+ 2653 => x"62746169",
+ 2654 => x"6e206d65",
+ 2655 => x"616e696e",
+ 2656 => x"6766756c",
+ 2657 => x"20726573",
+ 2658 => x"756c7473",
+ 2659 => x"0a000000",
+ 2660 => x"506c6561",
+ 2661 => x"73652069",
+ 2662 => x"6e637265",
+ 2663 => x"61736520",
+ 2664 => x"6e756d62",
+ 2665 => x"6572206f",
+ 2666 => x"66207275",
+ 2667 => x"6e730a00",
+ 2668 => x"44485259",
+ 2669 => x"53544f4e",
+ 2670 => x"45205052",
+ 2671 => x"4f475241",
+ 2672 => x"4d2c2033",
+ 2673 => x"27524420",
+ 2674 => x"53545249",
+ 2675 => x"4e470000",
+ 2676 => x"00010202",
+ 2677 => x"03030303",
+ 2678 => x"04040404",
+ 2679 => x"04040404",
+ 2680 => x"05050505",
+ 2681 => x"05050505",
+ 2682 => x"05050505",
+ 2683 => x"05050505",
+ 2684 => x"06060606",
+ 2685 => x"06060606",
+ 2686 => x"06060606",
+ 2687 => x"06060606",
+ 2688 => x"06060606",
+ 2689 => x"06060606",
+ 2690 => x"06060606",
+ 2691 => x"06060606",
+ 2692 => x"07070707",
+ 2693 => x"07070707",
+ 2694 => x"07070707",
+ 2695 => x"07070707",
+ 2696 => x"07070707",
+ 2697 => x"07070707",
+ 2698 => x"07070707",
+ 2699 => x"07070707",
+ 2700 => x"07070707",
+ 2701 => x"07070707",
+ 2702 => x"07070707",
+ 2703 => x"07070707",
+ 2704 => x"07070707",
+ 2705 => x"07070707",
+ 2706 => x"07070707",
+ 2707 => x"07070707",
+ 2708 => x"08080808",
+ 2709 => x"08080808",
+ 2710 => x"08080808",
+ 2711 => x"08080808",
+ 2712 => x"08080808",
+ 2713 => x"08080808",
+ 2714 => x"08080808",
+ 2715 => x"08080808",
+ 2716 => x"08080808",
+ 2717 => x"08080808",
+ 2718 => x"08080808",
+ 2719 => x"08080808",
+ 2720 => x"08080808",
+ 2721 => x"08080808",
+ 2722 => x"08080808",
+ 2723 => x"08080808",
+ 2724 => x"08080808",
+ 2725 => x"08080808",
+ 2726 => x"08080808",
+ 2727 => x"08080808",
+ 2728 => x"08080808",
+ 2729 => x"08080808",
+ 2730 => x"08080808",
+ 2731 => x"08080808",
+ 2732 => x"08080808",
+ 2733 => x"08080808",
+ 2734 => x"08080808",
+ 2735 => x"08080808",
+ 2736 => x"08080808",
+ 2737 => x"08080808",
+ 2738 => x"08080808",
+ 2739 => x"08080808",
+ 2740 => x"43000000",
+ 2741 => x"64756d6d",
+ 2742 => x"792e6578",
+ 2743 => x"65000000",
+ 2744 => x"00ffffff",
+ 2745 => x"ff00ffff",
+ 2746 => x"ffff00ff",
+ 2747 => x"ffffff00",
+ 2748 => x"00000000",
+ 2749 => x"00000000",
+ 2750 => x"00000000",
+ 2751 => x"000032dc",
+ 2752 => x"0000c350",
+ 2753 => x"00000000",
+ 2754 => x"00000000",
+ 2755 => x"00000000",
+ 2756 => x"00000000",
+ 2757 => x"00000000",
+ 2758 => x"00000000",
+ 2759 => x"00000000",
+ 2760 => x"00000000",
+ 2761 => x"00000000",
+ 2762 => x"00000000",
+ 2763 => x"00000000",
+ 2764 => x"00000000",
+ 2765 => x"00000000",
+ 2766 => x"ffffffff",
+ 2767 => x"00000000",
+ 2768 => x"00020000",
+ 2769 => x"00000000",
+ 2770 => x"00000000",
+ 2771 => x"00002b44",
+ 2772 => x"00002b44",
+ 2773 => x"00002b4c",
+ 2774 => x"00002b4c",
+ 2775 => x"00002b54",
+ 2776 => x"00002b54",
+ 2777 => x"00002b5c",
+ 2778 => x"00002b5c",
+ 2779 => x"00002b64",
+ 2780 => x"00002b64",
+ 2781 => x"00002b6c",
+ 2782 => x"00002b6c",
+ 2783 => x"00002b74",
+ 2784 => x"00002b74",
+ 2785 => x"00002b7c",
+ 2786 => x"00002b7c",
+ 2787 => x"00002b84",
+ 2788 => x"00002b84",
+ 2789 => x"00002b8c",
+ 2790 => x"00002b8c",
+ 2791 => x"00002b94",
+ 2792 => x"00002b94",
+ 2793 => x"00002b9c",
+ 2794 => x"00002b9c",
+ 2795 => x"00002ba4",
+ 2796 => x"00002ba4",
+ 2797 => x"00002bac",
+ 2798 => x"00002bac",
+ 2799 => x"00002bb4",
+ 2800 => x"00002bb4",
+ 2801 => x"00002bbc",
+ 2802 => x"00002bbc",
+ 2803 => x"00002bc4",
+ 2804 => x"00002bc4",
+ 2805 => x"00002bcc",
+ 2806 => x"00002bcc",
+ 2807 => x"00002bd4",
+ 2808 => x"00002bd4",
+ 2809 => x"00002bdc",
+ 2810 => x"00002bdc",
+ 2811 => x"00002be4",
+ 2812 => x"00002be4",
+ 2813 => x"00002bec",
+ 2814 => x"00002bec",
+ 2815 => x"00002bf4",
+ 2816 => x"00002bf4",
+ 2817 => x"00002bfc",
+ 2818 => x"00002bfc",
+ 2819 => x"00002c04",
+ 2820 => x"00002c04",
+ 2821 => x"00002c0c",
+ 2822 => x"00002c0c",
+ 2823 => x"00002c14",
+ 2824 => x"00002c14",
+ 2825 => x"00002c1c",
+ 2826 => x"00002c1c",
+ 2827 => x"00002c24",
+ 2828 => x"00002c24",
+ 2829 => x"00002c2c",
+ 2830 => x"00002c2c",
+ 2831 => x"00002c34",
+ 2832 => x"00002c34",
+ 2833 => x"00002c3c",
+ 2834 => x"00002c3c",
+ 2835 => x"00002c44",
+ 2836 => x"00002c44",
+ 2837 => x"00002c4c",
+ 2838 => x"00002c4c",
+ 2839 => x"00002c54",
+ 2840 => x"00002c54",
+ 2841 => x"00002c5c",
+ 2842 => x"00002c5c",
+ 2843 => x"00002c64",
+ 2844 => x"00002c64",
+ 2845 => x"00002c6c",
+ 2846 => x"00002c6c",
+ 2847 => x"00002c74",
+ 2848 => x"00002c74",
+ 2849 => x"00002c7c",
+ 2850 => x"00002c7c",
+ 2851 => x"00002c84",
+ 2852 => x"00002c84",
+ 2853 => x"00002c8c",
+ 2854 => x"00002c8c",
+ 2855 => x"00002c94",
+ 2856 => x"00002c94",
+ 2857 => x"00002c9c",
+ 2858 => x"00002c9c",
+ 2859 => x"00002ca4",
+ 2860 => x"00002ca4",
+ 2861 => x"00002cac",
+ 2862 => x"00002cac",
+ 2863 => x"00002cb4",
+ 2864 => x"00002cb4",
+ 2865 => x"00002cbc",
+ 2866 => x"00002cbc",
+ 2867 => x"00002cc4",
+ 2868 => x"00002cc4",
+ 2869 => x"00002ccc",
+ 2870 => x"00002ccc",
+ 2871 => x"00002cd4",
+ 2872 => x"00002cd4",
+ 2873 => x"00002cdc",
+ 2874 => x"00002cdc",
+ 2875 => x"00002ce4",
+ 2876 => x"00002ce4",
+ 2877 => x"00002cec",
+ 2878 => x"00002cec",
+ 2879 => x"00002cf4",
+ 2880 => x"00002cf4",
+ 2881 => x"00002cfc",
+ 2882 => x"00002cfc",
+ 2883 => x"00002d04",
+ 2884 => x"00002d04",
+ 2885 => x"00002d0c",
+ 2886 => x"00002d0c",
+ 2887 => x"00002d14",
+ 2888 => x"00002d14",
+ 2889 => x"00002d1c",
+ 2890 => x"00002d1c",
+ 2891 => x"00002d24",
+ 2892 => x"00002d24",
+ 2893 => x"00002d2c",
+ 2894 => x"00002d2c",
+ 2895 => x"00002d34",
+ 2896 => x"00002d34",
+ 2897 => x"00002d3c",
+ 2898 => x"00002d3c",
+ 2899 => x"00002d44",
+ 2900 => x"00002d44",
+ 2901 => x"00002d4c",
+ 2902 => x"00002d4c",
+ 2903 => x"00002d54",
+ 2904 => x"00002d54",
+ 2905 => x"00002d5c",
+ 2906 => x"00002d5c",
+ 2907 => x"00002d64",
+ 2908 => x"00002d64",
+ 2909 => x"00002d6c",
+ 2910 => x"00002d6c",
+ 2911 => x"00002d74",
+ 2912 => x"00002d74",
+ 2913 => x"00002d7c",
+ 2914 => x"00002d7c",
+ 2915 => x"00002d84",
+ 2916 => x"00002d84",
+ 2917 => x"00002d8c",
+ 2918 => x"00002d8c",
+ 2919 => x"00002d94",
+ 2920 => x"00002d94",
+ 2921 => x"00002d9c",
+ 2922 => x"00002d9c",
+ 2923 => x"00002da4",
+ 2924 => x"00002da4",
+ 2925 => x"00002dac",
+ 2926 => x"00002dac",
+ 2927 => x"00002db4",
+ 2928 => x"00002db4",
+ 2929 => x"00002dbc",
+ 2930 => x"00002dbc",
+ 2931 => x"00002dc4",
+ 2932 => x"00002dc4",
+ 2933 => x"00002dcc",
+ 2934 => x"00002dcc",
+ 2935 => x"00002dd4",
+ 2936 => x"00002dd4",
+ 2937 => x"00002ddc",
+ 2938 => x"00002ddc",
+ 2939 => x"00002de4",
+ 2940 => x"00002de4",
+ 2941 => x"00002dec",
+ 2942 => x"00002dec",
+ 2943 => x"00002df4",
+ 2944 => x"00002df4",
+ 2945 => x"00002dfc",
+ 2946 => x"00002dfc",
+ 2947 => x"00002e04",
+ 2948 => x"00002e04",
+ 2949 => x"00002e0c",
+ 2950 => x"00002e0c",
+ 2951 => x"00002e14",
+ 2952 => x"00002e14",
+ 2953 => x"00002e1c",
+ 2954 => x"00002e1c",
+ 2955 => x"00002e24",
+ 2956 => x"00002e24",
+ 2957 => x"00002e2c",
+ 2958 => x"00002e2c",
+ 2959 => x"00002e34",
+ 2960 => x"00002e34",
+ 2961 => x"00002e3c",
+ 2962 => x"00002e3c",
+ 2963 => x"00002e44",
+ 2964 => x"00002e44",
+ 2965 => x"00002e4c",
+ 2966 => x"00002e4c",
+ 2967 => x"00002e54",
+ 2968 => x"00002e54",
+ 2969 => x"00002e5c",
+ 2970 => x"00002e5c",
+ 2971 => x"00002e64",
+ 2972 => x"00002e64",
+ 2973 => x"00002e6c",
+ 2974 => x"00002e6c",
+ 2975 => x"00002e74",
+ 2976 => x"00002e74",
+ 2977 => x"00002e7c",
+ 2978 => x"00002e7c",
+ 2979 => x"00002e84",
+ 2980 => x"00002e84",
+ 2981 => x"00002e8c",
+ 2982 => x"00002e8c",
+ 2983 => x"00002e94",
+ 2984 => x"00002e94",
+ 2985 => x"00002e9c",
+ 2986 => x"00002e9c",
+ 2987 => x"00002ea4",
+ 2988 => x"00002ea4",
+ 2989 => x"00002eac",
+ 2990 => x"00002eac",
+ 2991 => x"00002eb4",
+ 2992 => x"00002eb4",
+ 2993 => x"00002ebc",
+ 2994 => x"00002ebc",
+ 2995 => x"00002ec4",
+ 2996 => x"00002ec4",
+ 2997 => x"00002ecc",
+ 2998 => x"00002ecc",
+ 2999 => x"00002ed4",
+ 3000 => x"00002ed4",
+ 3001 => x"00002edc",
+ 3002 => x"00002edc",
+ 3003 => x"00002ee4",
+ 3004 => x"00002ee4",
+ 3005 => x"00002eec",
+ 3006 => x"00002eec",
+ 3007 => x"00002ef4",
+ 3008 => x"00002ef4",
+ 3009 => x"00002efc",
+ 3010 => x"00002efc",
+ 3011 => x"00002f04",
+ 3012 => x"00002f04",
+ 3013 => x"00002f0c",
+ 3014 => x"00002f0c",
+ 3015 => x"00002f14",
+ 3016 => x"00002f14",
+ 3017 => x"00002f1c",
+ 3018 => x"00002f1c",
+ 3019 => x"00002f24",
+ 3020 => x"00002f24",
+ 3021 => x"00002f2c",
+ 3022 => x"00002f2c",
+ 3023 => x"00002f34",
+ 3024 => x"00002f34",
+ 3025 => x"00002f3c",
+ 3026 => x"00002f3c",
+ 3027 => x"00002f50",
+ 3028 => x"00000000",
+ 3029 => x"000031b8",
+ 3030 => x"00003214",
+ 3031 => x"00003270",
+ 3032 => x"00000000",
+ 3033 => x"00000000",
+ 3034 => x"00000000",
+ 3035 => x"00000000",
+ 3036 => x"00000000",
+ 3037 => x"00000000",
+ 3038 => x"00000000",
+ 3039 => x"00000000",
+ 3040 => x"00000000",
+ 3041 => x"00002ad0",
+ 3042 => x"00000000",
+ 3043 => x"00000000",
+ 3044 => x"00000000",
+ 3045 => x"00000000",
+ 3046 => x"00000000",
+ 3047 => x"00000000",
+ 3048 => x"00000000",
+ 3049 => x"00000000",
+ 3050 => x"00000000",
+ 3051 => x"00000000",
+ 3052 => x"00000000",
+ 3053 => x"00000000",
+ 3054 => x"00000000",
+ 3055 => x"00000000",
+ 3056 => x"00000000",
+ 3057 => x"00000000",
+ 3058 => x"00000000",
+ 3059 => x"00000000",
+ 3060 => x"00000000",
+ 3061 => x"00000000",
+ 3062 => x"00000000",
+ 3063 => x"00000000",
+ 3064 => x"00000000",
+ 3065 => x"00000000",
+ 3066 => x"00000000",
+ 3067 => x"00000000",
+ 3068 => x"00000000",
+ 3069 => x"00000000",
+ 3070 => x"00000001",
+ 3071 => x"330eabcd",
+ 3072 => x"1234e66d",
+ 3073 => x"deec0005",
+ 3074 => x"000b0000",
+ 3075 => x"00000000",
+ 3076 => x"00000000",
+ 3077 => x"00000000",
+ 3078 => x"00000000",
+ 3079 => x"00000000",
+ 3080 => x"00000000",
+ 3081 => x"00000000",
+ 3082 => x"00000000",
+ 3083 => x"00000000",
+ 3084 => x"00000000",
+ 3085 => x"00000000",
+ 3086 => x"00000000",
+ 3087 => x"00000000",
+ 3088 => x"00000000",
+ 3089 => x"00000000",
+ 3090 => x"00000000",
+ 3091 => x"00000000",
+ 3092 => x"00000000",
+ 3093 => x"00000000",
+ 3094 => x"00000000",
+ 3095 => x"00000000",
+ 3096 => x"00000000",
+ 3097 => x"00000000",
+ 3098 => x"00000000",
+ 3099 => x"00000000",
+ 3100 => x"00000000",
+ 3101 => x"00000000",
+ 3102 => x"00000000",
+ 3103 => x"00000000",
+ 3104 => x"00000000",
+ 3105 => x"00000000",
+ 3106 => x"00000000",
+ 3107 => x"00000000",
+ 3108 => x"00000000",
+ 3109 => x"00000000",
+ 3110 => x"00000000",
+ 3111 => x"00000000",
+ 3112 => x"00000000",
+ 3113 => x"00000000",
+ 3114 => x"00000000",
+ 3115 => x"00000000",
+ 3116 => x"00000000",
+ 3117 => x"00000000",
+ 3118 => x"00000000",
+ 3119 => x"00000000",
+ 3120 => x"00000000",
+ 3121 => x"00000000",
+ 3122 => x"00000000",
+ 3123 => x"00000000",
+ 3124 => x"00000000",
+ 3125 => x"00000000",
+ 3126 => x"00000000",
+ 3127 => x"00000000",
+ 3128 => x"00000000",
+ 3129 => x"00000000",
+ 3130 => x"00000000",
+ 3131 => x"00000000",
+ 3132 => x"00000000",
+ 3133 => x"00000000",
+ 3134 => x"00000000",
+ 3135 => x"00000000",
+ 3136 => x"00000000",
+ 3137 => x"00000000",
+ 3138 => x"00000000",
+ 3139 => x"00000000",
+ 3140 => x"00000000",
+ 3141 => x"00000000",
+ 3142 => x"00000000",
+ 3143 => x"00000000",
+ 3144 => x"00000000",
+ 3145 => x"00000000",
+ 3146 => x"00000000",
+ 3147 => x"00000000",
+ 3148 => x"00000000",
+ 3149 => x"00000000",
+ 3150 => x"00000000",
+ 3151 => x"00000000",
+ 3152 => x"00000000",
+ 3153 => x"00000000",
+ 3154 => x"00000000",
+ 3155 => x"00000000",
+ 3156 => x"00000000",
+ 3157 => x"00000000",
+ 3158 => x"00000000",
+ 3159 => x"00000000",
+ 3160 => x"00000000",
+ 3161 => x"00000000",
+ 3162 => x"00000000",
+ 3163 => x"00000000",
+ 3164 => x"00000000",
+ 3165 => x"00000000",
+ 3166 => x"00000000",
+ 3167 => x"00000000",
+ 3168 => x"00000000",
+ 3169 => x"00000000",
+ 3170 => x"00000000",
+ 3171 => x"00000000",
+ 3172 => x"00000000",
+ 3173 => x"00000000",
+ 3174 => x"00000000",
+ 3175 => x"00000000",
+ 3176 => x"00000000",
+ 3177 => x"00000000",
+ 3178 => x"00000000",
+ 3179 => x"00000000",
+ 3180 => x"00000000",
+ 3181 => x"00000000",
+ 3182 => x"00000000",
+ 3183 => x"00000000",
+ 3184 => x"00000000",
+ 3185 => x"00000000",
+ 3186 => x"00000000",
+ 3187 => x"00000000",
+ 3188 => x"00000000",
+ 3189 => x"00000000",
+ 3190 => x"00000000",
+ 3191 => x"00000000",
+ 3192 => x"00000000",
+ 3193 => x"00000000",
+ 3194 => x"00000000",
+ 3195 => x"00000000",
+ 3196 => x"00000000",
+ 3197 => x"00000000",
+ 3198 => x"00000000",
+ 3199 => x"00000000",
+ 3200 => x"00000000",
+ 3201 => x"00000000",
+ 3202 => x"00000000",
+ 3203 => x"00000000",
+ 3204 => x"00000000",
+ 3205 => x"00000000",
+ 3206 => x"00000000",
+ 3207 => x"00000000",
+ 3208 => x"00000000",
+ 3209 => x"00000000",
+ 3210 => x"00000000",
+ 3211 => x"00000000",
+ 3212 => x"00000000",
+ 3213 => x"00000000",
+ 3214 => x"00000000",
+ 3215 => x"00000000",
+ 3216 => x"00000000",
+ 3217 => x"00000000",
+ 3218 => x"00000000",
+ 3219 => x"00000000",
+ 3220 => x"00000000",
+ 3221 => x"00000000",
+ 3222 => x"00000000",
+ 3223 => x"00000000",
+ 3224 => x"00000000",
+ 3225 => x"00000000",
+ 3226 => x"00000000",
+ 3227 => x"00000000",
+ 3228 => x"00000000",
+ 3229 => x"00000000",
+ 3230 => x"00000000",
+ 3231 => x"00000000",
+ 3232 => x"00000000",
+ 3233 => x"00000000",
+ 3234 => x"00000000",
+ 3235 => x"00000000",
+ 3236 => x"00000000",
+ 3237 => x"00000000",
+ 3238 => x"00000000",
+ 3239 => x"00000000",
+ 3240 => x"00000000",
+ 3241 => x"00000000",
+ 3242 => x"00000000",
+ 3243 => x"00000000",
+ 3244 => x"00000000",
+ 3245 => x"00000000",
+ 3246 => x"00000000",
+ 3247 => x"00000000",
+ 3248 => x"00000000",
+ 3249 => x"00000000",
+ 3250 => x"00000000",
+ 3251 => x"00002ad4",
+ 3252 => x"ffffffff",
+ 3253 => x"00000000",
+ 3254 => x"ffffffff",
+ 3255 => x"00000000",
+ 3256 => x"00000000",
+ others => x"00000000"
+);
+
+begin
+
+process (clk)
+begin
+ if (clk'event and clk = '1') then
+ if (memAWriteEnable = '1') and (memBWriteEnable = '1') and (memAAddr=memBAddr) and (memAWrite/=memBWrite) then
+ report "write collision" severity failure;
+ end if;
+
+ if (memAWriteEnable = '1') then
+ ram(to_integer(unsigned(memAAddr))) := memAWrite;
+ memARead <= memAWrite;
+ else
+ memARead <= ram(to_integer(unsigned(memAAddr)));
+ end if;
+ end if;
+end process;
+
+process (clk)
+begin
+ if (clk'event and clk = '1') then
+ if (memBWriteEnable = '1') then
+ ram(to_integer(unsigned(memBAddr))) := memBWrite;
+ memBRead <= memBWrite;
+ else
+ memBRead <= ram(to_integer(unsigned(memBAddr)));
+ end if;
+ end if;
+end process;
+
+
+
+
+end dualport_ram_arch;
Index: zpu/readme.txt
===================================================================
--- zpu/readme.txt (nonexistent)
+++ zpu/readme.txt (revision 93)
@@ -0,0 +1,11 @@
+In example folder you'll find a simple hello world example
+of the ZPU that you can run in ModelSim.
+
+Read "example/simzpu_small.do" for more information on
+how to run the simulation.
+
+The ZPU and it's tools are under git version control,
+which opencores.org does not yet support.
+
+See http://opensource.zylin.com/zpu.htm for details
+on how to get the full source.