IRQ-Basic – eine Erweiterung für Sprite-Fans
Dieses Programm ist ein Leckerbissen für jeden, der gern Spiele programmiert. Neben mehr als 20 Sprite-Befehlen stehen Ihnen Befehle zur Verfügung, die die Programmierung des Video- und Sound-Chips erheblich erleichtern.
IRQ-Basic (Listing 1) unterstützt mit über 70 Befehlen alle Möglichkeiten des C 64. Es stellt dem Programmierer zwei Bildschirmfenster zur Verfügung, deren Größe er selbst bestimmen kann. Alle Betriebsarten des Video-Prozessors, zwei verschiedene Zeichensätze und Groß-/Kleinschrift lassen sich miteinander mischen. Die zwei Zeichensätze sind vollständig. Sie enthalten alle Grafikzeichen für Groß-/Kleinschreibung und können frei programmiert werden (zum Beispiel Multicolor-Zeichen).
Besonders die Sprite-Programmierung wird unterstützt. Diese ist mit fast 20 Befehlen vertreten und läßt keine Wünsche offen.
Die Register des SID lassen sich, soweit sie durch diese Befehle angesprochen werden, ab Adresse $8041 auslesen.
Für den Programmierer stehen außerdem noch eine Reihe von Programmierhilfen zur Verfügung. Die Funktionen NORM, ?F@, HLP und RST sind in dieser Reihenfolge über die Funktionstasten F1, F3, F5 und F7 erreichbar.
Einzelheiten zum Programm
Das Programm ist für den C 64 ohne besondere Peripherie geschrieben worden. Lediglich der Befehl ?F@ benötigt ein Diskettenlaufwerk. Ist dieses nicht vorhanden, wird »?DEVICE NOT PRESENT ERROR« gemeldet. Alle anderen Befehle arbeiten auch mit der Datasette zusammen. Vorsicht! Das Programm (Listing 1) ist in gepackter Form veröffentlicht.
Es wird mit dem MSE eingegeben und gespeichert. Möchten Sie mit »IRQ-Basic« arbeiten, ist das Programm mit LOAD"IRQ-Basic",8 zu laden und durch RUN zu starten.
Die beiden Zeichensätze tragen die Nummern eins und zwei. Diese Nummer ist bei den Befehlen »U«-Mode und »D«-Mode mit anzugeben. Die Voreinstellung beträgt für beide Zeichenfenster »1«. Also gilt Zeichensatz »2«.
Zur Sprite-Programmierung muß man wissen, daß die Spritepointer für Text und Grafik verschieden sind. Für Text beginnen Sie bei $CFF8, für HiRes bei $87F8. Auch der zur Verfügung stehende Speicherplatz für Sprite-Daten ist unterschiedlich. Er beträgt im Textmodus (MODI 0 bis 2) rund 3000 Byte (von $C000 bis $CC00) und im HiRes-Modus 384 Byte ($9E80 bis $A000; Block 122 bis 127). Wird der Text mit dem HiRes-Modus gemischt, kann auch noch ein Teil des Farb-RAMs ($8400 bis $8800) für Sprites genutzt werden.
Wird der HiRes-Modus gewählt, muß gleichzeitig Zeichensatz »2« (also Nummer 1!) gewählt werden, da sich das RAM für den hochauflösenden Bildschirm sonst verschieben kann.
Hier noch einige Anmerkungen zu den bisher wenig behandelten Modi des VIC:
Modusnummer 1:
Normale Zeichensatzdarstellung im Multicolor-Modus:
Ausschlaggebend ist Bit 3 im Farb-RAM. Ist es gesetzt, so ist das Zeichen ein Multicolor-Zeichen. Wenn nicht, sieht es normal aus. Bei einem Multicolor-Zeichen werden jeweils zwei Punkte zu einem zusammengefaßt, wobei die möglichen Bit-Muster über die Farbe des Punktes entscheiden:
| TYP: | 00: | Farbe im Register für die Hintergrundfarbe 0 |
| 01: | Farbe im Register für die Hintergrundfarbe 1 | |
| 10: | Farbe im Register für die Hintergrundfarbe 2 | |
| 11: | Übrige Farb-RAM-Bits stellen Farbe |
Modusnummer 2:
Extended Color Mode:
Hierbei wird die Hintergrundfarbe des Zeichens von den Bits 6 und 7 des Video-RAMs bestimmt. Die Bitkombinationen sind die gleichen wie bei Typ 1, lediglich bei der letzten (11) stammt die Farbe aus dem Register »3« für die Hintergrundfarbe.
Modusnummer 4:
Hochauflösende Farbgrafik:
In dieser Betriebsart hat der Bildschirm nur eine Auflösung von 160*200 Punkten. Auch hier entscheidet die jeweilige Bitkombination wieder über die Herkunft der Punktfarbe. Für diesen Modus existiert ein eigener Befehl zum Setzen eines Punktes. Dieser Befehl heißt CSET. Neben der x- und y-Koordinate muß noch die Herkunft der Farbe angegeben werden.
Hierbei bedeutet:
0: Farbe aus dem Register 0 für die Hintergrundfarbe (also kein Punkt sichtbar)
1: Video-RAM High-Nibble stellt Farbe
2: Video-RAM Low-Nibble stellt Farbe
3: Farb-RAM stellt Farbe.
| Speicheraufteilung: | |
|---|---|
| $0400 bis 07FF: | Programmvariable für die Befehle SSPRITE und BSPRITE. |
| $0800 bis 7FFF: | Basic-Speicher |
| $8000 bis 83FF: | Programm erster Teil (Tabellen, Variable und so weiter) |
| $8400 bis 87F7: | HiRes-Farb-RAM. Achtung: Durch den Befehl GCOL werden die Spritepointer gelöscht. Also zuerst diesen Befehl ausführen und dann die Blockpointer setzen! |
| $87F8 bis 87FF: | Spritepointer für HiRes. |
| $8800 bis 9E4E: | Programm zweiter Teil |
| $9E4F bis 9FFF: | Frei (für Sprites). |
| $A000 bis BFFF: | Grafik-RAM |
| $C000 bis CBFF: | Frei |
| $CC00 bis CFF7: | Bildschirm-RAM |
| $CFF8 bis CFFF: | Spriteblockpointer für Text. |
| $D000 bis DFFF: | I/O |
| $E000 bis EFFF: | Im RAM : Zeichensatz 1 |
| $F000 bis FFFF: | Im RAM : Zeichensatz 2 |
| $E000 bis FFFF: | Betriebssystem |
| Benutzte Vektoren: | |
|---|---|
| $0037/0038: | Speichergrenze ($8000) |
| $0304/0305: | Text in Token ($936C) |
| $0306/0307: | Token im Klartext (List) ($9587) |
| $0308/0309: | Befehl ausführen ($95E3) |
| $0314/0315: | Hardware IRQ ($96BC) |
| $0316/0317: | Break Interrupt ($98BD) |
| $0330/0331: | LOAD ($9C6E) |
| $0332/0333: | SAVE ($9C8A) |
Die Basic-Befehle von IRQ-Basic werden als Zwei-Byte-Token verschlüsselt, wobei das erste Byte jeweils eine Identifizierung ist und das zweite die Befehlsnummer plus $80 darstellt. IRQ-Basic benutzt zwei Identifizierungen (F0 und F1). Insgesamt existieren drei Routinen zur Umwandlung in Tokens. Die erste benutzt als Kennung $F0 und beginnt ab $936C. Die zweite benutzt $F1 als Kennung und beginnt ab $941F. Außerdem gibt es noch eine dritte ab $94E0, die weitgehend mit der RAM-Routine identisch ist und alle Standardbefehle umwandelt. Die Befehlsworte sind ab $810C zu finden, die Adressen ab $8240. Diese Tabellen bestehen jeweils aus zwei Teilen, die unmittelbar aufeinander folgen.
Das Kernstück des Programms ist die Interrupt-Routine. Sie beginnt bei $96BC und hat die Aufgabe, alle Interruptarten voneinander zu trennen. Interrupts werden von folgenden Bausteinen ausgelöst:
VIC:
a) Rasterzeilen-Interrupt (zur Erstellung der Bildschirmfenster).
b) Berührung zweier Sprites (Befehl SSPRITE)
c) Berührung Sprite mit Hintergrund (Befehl BSPRITE).
CIA:
a) Timer-Interrupt (Befehl VIB)
b) Alarm (Befehl ALARM)
Weiterhin müssen im Interrupt noch die Tastaturabfrage, das Cursor-Blinken, sowie die Funktions-Tasten-Abfrage erledigt werden. Diese Funktionen werden auf Rasterzeilen- und Timer-Interrupt aufgeteilt.
RESET und NMI werden über die Modulkennung CBM 80 ab $8004 gesteuert. Der Befehl CBASIC zerstört einfach diese Kennung und löst einen RESET aus. Der NMI zeigt zu Beginn auf eine Start-Routine ab $9821, die diesen Vektor auf den eigentlichen ProgrammNMI ab $98B5 umlenkt. Anschließend wird zum Programm-RESET verzweigt. Dadurch wird erreicht, daß das Programm nach dem Laden einfach durch Klopfen auf die RESTORE-Taste gestartet werden kann. Der Programm-RESET beginnt ab Adresse $9938.
| VIC: | |
|---|---|
| a) Grafik | |
| GLD"Name",g: | ($9A6C) lädt Grafik vom Gerät G nach $A000. |
| GSV"Name",g: | ($9A77) speichert Grafik auf Gerät G. |
| GCLR: | ($9164) löscht Grafik-RAM. |
| GCOL (Hintergrund, Punktfarbe): | ($917D) setzt Farbe für Grafik. |
| HSET x,y: | ($91C2) setzt Grafikpunkte. |
| BLOT x,y: | ($923D) löscht Grafikpunkte. |
| CSET x,y,c: | ($927A) setzt Farbgrafikpunkt. c=Farbe 0 bis 3 0=kein Punkt 1=Video-RAM High-Nibble 2=Video-RAM Low-Nibble 3=Farb-RAM |
| COFF x,y: | ($9333) löscht Farbgrafikpunkt. |
| INV: | ($9CA4) invertiert Grafik ab $A000. |
| b) Blockgrafik: | |
| FIL (Bildschirm-Code, x1, y1, x2, y2, Farbe): | (9B4F) füllt Rechteck mit Zeichen des Bildschirm-Codes und der Farbe c, wobei x1 und y1 die Koordinaten der linken oberen Ecke und x2 und y2 die der rechten unteren Ecke sind. |
| CUR (x,y): | ($9BD8) setzt Cursor an Position x, y. |
| BGR (c1, c2, c3): | ($924A) Farben der Backround-Register 1 bis 3. |
| c) Sprites: | |
| NMOVE (Snr): | (8BAF) bewegt Sprites der Nummern »Snr« nach Norden Beispiel: NMOVE (0, 4, 7) bewegt Sprites 0, 4, 7 in Richtung Nord. Ebenso: SMOVE (Snr): (8BE3) Richtung: Süd. |
| EMOVE (Snr): | ($8C14) Richtung: Ost. |
| WMOVE (Snr): | ($8C69) Richtung: West. |
| SSET (Spritenummer, x, y): | ($8CB3) setzt ein Sprite an die Position x y. |
| SELS (Snr): | ($8D02) schaltet Sprite ein. Beispiel: SELS (0, 6) schaltet Sprites 0 und 6 ein. OSEL (Snr) schaltet Sprites aus. |
| MULT (Snr): | ($8D63) selektiert Multicolor-Sprites. |
| OMULT (Snr): | (8D8A) selektiert Normalsprites. |
| SCOL (Snr) c: | ($8DB6) setzt Farbe für ein Sprite. |
| MCOL c1, c2: | ($8DD4) setzt Multicolor-Farben für alle Sprites. |
| SYSP (Snr): | ($8DEA) vergrößert Sprite in y-Richtung. |
| OYSP (Snr): | ($8E14) Gegenbefehl zu SYSP. |
| SXSP (Snr): | ($8E40) vergrößert Sprite in x-Richtung. Gegenbefehl: OXSP ($8E64) |
| SPRIOR (Snr): | ($8E90) setzt Sprite hinter den Hintergrund. Gegenbefehl: OPRIOR (Snr) ($8EB4) |
| SSPRITE (Snr1, Snr2) Z: | ($8953) Bei Kollision mindestens zweier Sprites wird das laufende Programm unterbrochen und ab Zeile »Z« fortgesetzt. Alle Variablen bleiben dabei erhalten. Es wird also ein Sprung zur Zeile »Z« ausgelöst (vergleiche »GOTO«). |
| BSPRITE (Snr) Z: | ($89B5) Dieser Befehl ähnelt dem Befehl SSPRITE. Das laufende Programm wird unterbrochen, wenn das Sprite der Nummer »Snr« mit dem Hintergrund zusammenstößt. Es wird dann mit Zeile »Z« fortgefahren. |
| d) Sonstiges: | |
| FUCOL (C): | ($8304) setzt die Farbe »C« als Rahmenfarbe des oberen Bildschirm-Fensters. |
| FDCOL (c): | ($8316) setzt Farbe »C« als Rahmenfarbe des unteren Bildschirm-Fensters. |
| BUCOL (C): | ($8328) setzt Farbe »C« als Farbe des Bildschirm-Interrupts des oberen Bildschirm-Fensters. |
| BDCOL (C): | ($833A) Farbe des Hintergrundes des unteren Bildschirm-Fensters. |
| UMODE (M, Znr): | ($8803) setzt Modus im oberen Bildschirm-Fenster. Dabei bedeutet M: 0: Normaler Textmodus 1: Normale Zeichendarstellung im Mehrfarbenmodus 2: Erweiterter Farbmodus 3: Hochauflösende Grafik mit 320x200 Punkten 4: Hochauflösende Farbgrafik mit 160x200 Punkten Znr gibt die Nummer des aktuellen Zeichensatzes an. 0: Zeichensatz 1 1: Zeichensatz 2 |
| DMODE (M, Znr): | ($88AE) wie UMODE, jedoch für den unteren Bildschirmteil. |
| UGS: | ($9A90) setzt Großschrift im oberen Bildschirmteil. |
| UKS: | ($9AA2) setzt Kleinschrift im oberen Bildschirmteil. |
| DGS: | ($9A99) setzt Großschrift im unteren Bildschirmteil. |
| DKS: | ($9AAB) setzt Kleinschrift im unteren Bildschirmteil. |
| SID: | |
| NOISE (st, par, w, an, ab, ha, ak, l): | ($8F65) Tonerzeugung: st: Stimme 1 bis 3; par: Frequenzparameter (siehe Tabelle im Commodore-Handbuch; w: Wellenform; an: Anschlag 0 bis 15; ab: Abschwellen 0 bis 15; ha: Halten 0 bis 15; ak: Ausklingen 0 bis 15; l: Lautstärke 0 bis 15; Beispiel: NOISE (1, 7493, 33, 0, 0, 15, 0, 15) erzeugt Dauerton von 440Hz auf Stimme 1 |
| PULS (st, pl): | ($9025) setzt Tastenverhältnis für Stimme 1 bis 3 für Wellenform puls. |
| FFILT (ft): | ($906D) setzt Filtereckfrequenz. |
| OFILT (st): | ($9092) Gegenbefehl zu SFILT (st). |
| RESON (r): | ($90B6) setzt Resonanz 0 bis 15. |
| VIB (st, vb): | ($90DF) verändert die Frequenz der Stimme st um vb-Einheiten bei jedem zweiten Timer-IRQ. Der Ton beginnt zu schwanken (Geräusche). |
| SFILT (st): | ($9145) leitet Stimme über Filter. |
| SFK (fa): | ($9A0A) selektiert Filterart 0 bis 15. Bit 0: Tiefpaß Bit 1: Bandpaß Bit 2: Hochpaß Bit 3: Stimme 3 aus |
| FRQ (st, par): | ($9A2E) setzt Frequenz für eine Stimme. |
| CIA 2 (Uhr): | |
| TIME (hh, mm, ss): | ($8A19) setzt Echtzeituhr. Für Stunden, Minuten und Sekunden sind keine Variable zugelassen. |
| TODON: | ($8B07) blendet die Zeit links oben in der aktuellen Cursorfarbe ein. Gegenbefehl: OFFTOD: ($8B13) |
| TODBRK: | ($8B21) hält Uhr an. Gegenbefehl: TODCONT: ($8B2B) läßt Uhr wieder weiter laufen. |
| RTIME: | ($8B35) druckt Uhrzeit an Cursorposition aus. |
| ALARM (hh, mm, ss) Z: | ($8ABC) stellt die Alarmzeit. Für hh, mm und ss sind Variable unzulässig! Bei Erreichen der Alarmzeit wird das laufende Programm ab Zeile Z fortgesetzt. |
| Floppy 1541: | |
| ?F@: | ($8EDA) druckt Floppy-Fehlerkanal an der Cursorposition aus. |
| Zeichensätze: | |
| CDEF (BC, D1, D2....D8): | ($834C) definiert Zeichen mit Bildschirm-Code BC im Zeichensatz 2 ab $F000. |
| CHANGE: | ($8383) vertauscht beide Zeichensätze miteinander. Dabei geht eine eventuell vorhandene Grafik ab $A000 verloren! |
| CHAR: | ($9ABC) erneuert Zeichensatz 2 ab $F000. |
| LZS"Name", g: | ($9BCD) lädt Zeichensatz ab $F000. |
| SZS"Name", g: | ($9BF6) speichert Zeichensatz ab $F000. Da dieser zuerst nach $A000 kopiert werden muß, geht eine eventuell vorhandene Grafik verloren. |
| Sonstige: | |
| HLP: | ($9E04) listet alle neuen Befehle auf. |
| RST: | ($FCE2) System-Reset. |
| CBASIC: | ($8EF9) Rückkehr ins Commodore-Basic. |
| RENEW: | ($8F48) Gegenbefehl zu NEW. |
| SCL: | ($E8EA) Scrolling des Bildschirms. |
| NORM: | ($8F04) setzt Normalmodi und Farben. |
| RAST (RA): | ($82E7) Bildschirmeinteilung (Rasterzeile 0 bis 249). Normaleinstellung ist 0. |
| IRQ: | ($9AB4) setzt sämtliche IRQ-Arten zurück. Die Befehle ALARM, SSPRITE, BSPRITE werden rückgängig gemacht. |
IRQ-Basic ist relativ einfach zu erweitern. Wenn man die Speichergrenze noch etwas herabsetzt und die Tabellen für Befehlswörter und Adressen in den freien Bereich verlegt, können noch eine Menge Befehle hinzugefügt werden (zum Beispiel LINE, CIRCLE und so weiter). Die Befehle HSET, CSET, BLOT und COFF sind so programmiert, daß sie sich ohne weiteres auch in Maschinensprache ansprechen lassen.
(U. Schwickerath/ah)PROGRAMM : IRQ-BASIC 0801 211A ----------------------------------- 0801 : 0E 08 CA A8 9E 32 30 36 84 0809 : 35 20 46 43 43 00 00 00 7D 0811 : A0 00 B9 69 07 99 00 CD 26 0819 : B9 69 08 99 00 CE B9 69 EC 0821 : 09 99 00 CF C8 D0 EB 4C 4C 0829 : C2 CD 78 A0 FF 84 FB A9 6B 0831 : C6 85 FC A9 36 85 01 8D DD 0839 : 20 D0 C8 A5 2D D0 02 C6 97 0841 : 2E C6 2D A6 2E E0 0A D0 A6 0849 : 04 C9 65 F0 0F B1 2D 91 00 0851 : FB A5 FB D0 02 C6 FC C6 10 0859 : FB 4C D3 CD A2 08 A9 01 3C 0861 : 86 2E 85 2D 84 FF 20 50 6F 0869 : CE C9 F3 D0 27 20 50 CE 85 0871 : AA 86 FA C9 04 B0 04 A9 7F 0879 : F3 D0 03 20 50 CE A0 00 97 0881 : 91 2D C8 C6 FA D0 F9 98 03 0889 : 18 65 2D 85 2D 90 02 E6 7D 0891 : 2E 4C 34 CE A0 00 91 2D 77 0899 : E6 2D F0 F3 A9 7A A2 26 16 08A1 : E4 2E D0 C2 C5 2D D0 BE AF 08A9 : A9 37 85 01 A9 FE 8D 20 78 08B1 : D0 58 20 59 A6 4C AE A7 B7 08B9 : A2 FF 86 F7 86 F8 E8 A9 22 08C1 : 01 85 FE A9 7F 85 FD C6 23 08C9 : FF 10 10 E6 FB D0 02 E6 CD 08D1 : FC A9 07 85 FF A0 00 B1 7D 08D9 : FB 85 F9 06 F9 B0 0A A4 6D 08E1 : FE A5 FD 39 F7 00 99 F7 2E 08E9 : 00 8A 0A A8 A5 F7 38 F9 B5 08F1 : E2 CE A5 F8 F9 E3 CE 90 DE 08F9 : 0E E0 0C F0 0A E8 38 66 2E 0901 : FD B0 C4 C6 FE F0 BC 8A E0 0909 : F0 0F A5 F7 38 F9 E0 CE 5E 0911 : 85 F7 A5 F8 F9 E1 CE 85 0F 0919 : F8 A4 FE F0 07 A5 F8 85 CE 0921 : F7 88 84 F8 A5 FD 4A 90 31 0929 : 07 46 F8 66 F7 4C BE CE D9 0931 : BD D2 CE 65 F7 A8 B9 00 63 0939 : CF 60 00 00 00 00 02 06 4D 0941 : 12 2E 58 93 C0 DE F0 FC B4 0949 : FC FC 00 00 00 00 00 00 C4 0951 : 00 20 00 40 00 70 00 A8 3E 0959 : 00 D2 80 EF C0 FA 80 FE C4 0961 : A0 FF 00 00 00 00 00 00 01 0969 : 80 20 8D 00 4C A9 D0 AE 0F 0971 : 85 AD F0 FB A0 01 FD 02 96 0979 : B7 48 9E B0 18 FC FF 29 CE 0981 : 8E C9 E0 A5 60 C8 03 23 7F 0989 : FA 10 8A 08 D4 BD EA 04 1E 0991 : DD 9D 49 0A 15 4F 30 B2 C2 0999 : F3 F7 14 99 0F 28 1F 53 15 09A1 : FE 17 2C 68 91 E6 09 CC 51 09A9 : 0B 05 27 8C 0D 06 38 7A 69 09B1 : B9 43 AA 94 D2 24 90 93 01 09B9 : D1 E8 41 52 58 73 CA A2 2B 09C1 : AC 26 69 84 86 E9 07 11 61 09C9 : 12 40 82 B1 EE 0C 3A 3C 83 09D1 : 45 65 98 9A CD 0E 13 25 26 09D9 : 2D 44 4A 2B 46 4D 54 59 F3 09E1 : 88 1A 1B 22 42 50 55 6D 58 09E9 : 83 8B A7 C5 47 4E 7F A6 07 09F1 : 78 A8 C0 C6 D3 EB EF 2A 77 09F9 : 31 89 97 F5 F8 1E 36 3F 6B 0A01 : 81 8F 9C F9 19 21 37 5C E0 0A09 : 79 96 A3 DA ED F1 16 56 85 0A11 : 5A 5B E1 1C 3E 70 7E 92 9B 0A19 : 95 A4 AB D8 DB E2 E4 E5 3A 0A21 : F2 F6 1D 32 4B 63 6C 87 AD 0A29 : 9B BF D6 DE E7 EC 33 39 5A 0A31 : 3B 57 5F BB BC C4 CB CE 26 0A39 : DC E3 34 35 67 7B A1 B3 FB 0A41 : B4 B5 D5 D7 DF 3D 5D 64 66 0A49 : 71 77 7C B6 B8 BA BE C1 4C 0A51 : C2 C3 CF F4 2E 2F 51 61 EC 0A59 : 62 66 6B 6E 6F 72 74 76 E0 0A61 : 9F AF C7 D9 BA 93 FE 3A BE 0A69 : A7 1F 35 47 83 DC 29 4A 2E 0A71 : 7B 45 A4 A5 F8 34 F0 8F 81 0A79 : 82 B6 95 2F 4F 4F EA 1F FB 0A81 : A2 B3 84 B3 B4 FC 31 FA 82 0A89 : FE 69 BE 07 65 C0 AD F2 C5 0A91 : 36 DF E7 FE 5B 8C 0A 8A E8 0A99 : AB B2 F1 A1 EC F8 D0 F6 16 0AA1 : 65 29 57 66 6C 98 E3 AD B4 0AA9 : 0D 69 4A 5F C7 EC 7F F2 B1 0AB1 : E1 95 19 C5 C5 EE 33 55 A7 0AB9 : AC 2C CA AA F2 EB 57 06 7B 0AC1 : 7A D1 0B 77 AD BF 0D 57 91 0AC9 : 5A 49 68 EB 6E 83 63 D6 9E 0AD1 : BE 2D 76 B6 38 6A FA DA 13 0AD9 : C2 D6 6B 69 07 A3 D6 B3 5F 0AE1 : 2F 8F AD E2 87 1B AD EB 7F 0AE9 : 17 C0 5E 6C 7D 69 79 58 3F 0AF1 : 8F 0A 52 AB CA ED 72 55 20 0AF9 : D6 BC E1 3C C9 C9 AA BB 3A 0B01 : 1A A9 BD B1 11 C3 F0 7F 87 0B09 : 40 8D 0C DF F8 DE 72 33 C5 0B11 : 2C 68 61 8F 70 44 6A A6 DC 0B19 : F6 EF AF 87 C1 FD 1F 38 DD 0B21 : E6 E6 70 46 C7 87 63 C2 2B 0B29 : DA 70 44 4B 7D F7 F3 68 EE 0B31 : 70 B8 5B 4E 88 DE 60 7E 9C 0B39 : 91 E4 70 C7 94 6C DA 18 9A 0B41 : 6D 8D 8E 1B 7F 7E 86 1F C0 0B49 : CF B4 CD CC E1 36 22 5C 90 0B51 : DC CB 19 5C 0E 56 1D 3B 63 0B59 : 9E 06 F7 0E 9D CF 23 95 CA 0B61 : 87 4E E7 91 BD C3 A7 73 BB 0B69 : 87 BD DA 75 F0 DB CC E8 27 0B71 : F4 39 FC AE 0D 3D EF 3F 10 0B79 : 7B C1 A7 BD E7 D8 D8 F2 05 0B81 : 73 68 70 B9 FC 8B 1E 4E BD 0B89 : 6D 0E 17 3F 85 43 83 CF CB 0B91 : CC 36 66 6E E3 85 4F 7B 7E 0B99 : 4F F2 D3 E0 70 38 54 FF 8C 0BA1 : 1F 0A 9E F7 91 9B F9 38 BA 0BA9 : 54 F7 B8 74 FA 32 B3 78 B6 0BB1 : 54 38 3C FE 8F 06 9F A5 03 0BB9 : CF B1 E0 D3 F4 B9 FB 4E BD 0BC1 : 0D 3F 4B 9F F7 F8 34 FD 49 0BC9 : 2E 7D 8D 8E D2 55 8E D0 9F 0BD1 : DD 8A 76 3B 4B 9E 0F 28 2F 0BD9 : D2 A9 F0 79 46 95 63 87 99 0BE1 : 4E E7 83 87 4E E6 C7 87 3F 0BE9 : 62 85 3E 1D 8A 16 39 D6 2D 0BF1 : 28 53 CE B1 42 C7 93 9B 94 0BF9 : 42 9E 35 3E 4E 6D 0A 78 09 0C01 : DE 17 03 AD 87 C8 CC B1 37 0C09 : A1 FE 7D 1A 79 BB 8C DD 2F 0C11 : A7 47 69 FC 7A 34 E8 58 F3 0C19 : F3 F9 3C A3 76 38 1C 0A 3A 0C21 : 06 95 4F 81 40 D2 B3 76 4C 0C29 : 96 34 FF 2F A5 43 FC AC 81 0C31 : 78 14 0D 2B A1 86 6C 6E 39 0C39 : 86 1D 3B 96 EC 76 92 B9 30 0C41 : 06 A7 2B 91 D0 C6 29 70 E1 0C49 : EC 76 92 B0 E9 F0 3A FC 34 0C51 : AE 87 63 81 9B 95 CA F9 51 0C59 : FB 1D 03 7E 3D EF 43 B1 37 0C61 : D0 B1 FB 1B DF 9F B1 63 F5 0C69 : C0 FC 99 B6 32 AC 70 EE 0D 0C71 : 5B 32 14 33 72 B0 DB CC 07 0C79 : C6 E0 50 B9 37 A7 D8 B1 72 0C81 : F4 FB 18 7C AC 6A 1D 1F D9 0C89 : B0 5B 7D 74 4E 65 2E 65 68 0C91 : E7 33 EE F3 3E 7E 64 8E D2 0C99 : 63 3C 44 F8 99 BD DF DD 0D 0CA1 : DD 75 23 F0 C8 BF E6 EB 1E 0CA9 : 39 A3 CD ED F3 7F 47 35 A8 0CB1 : 1E 6F C1 CD DD 5E DA DE AB 0CB9 : D4 DE AE 4F 98 9F F4 27 3A 0CC1 : 74 9F BC 9D 82 6A 49 BA FE 0CC9 : 7D E1 3E FA 1F 78 8F BF 99 0CD1 : 6B EF FF BE EF DF 44 F1 FE 0CD9 : 3A 1E 27 F4 F8 98 F9 1F 05 0CE1 : 4E 45 B6 47 EF C8 FB 39 10 0CE9 : 1B DB 6F A2 DB FB 2D BF F4 0CF1 : C6 DB 67 ED 50 F6 BC BF 6B 0CF9 : 6B E6 C9 F1 36 FB CD BF 82 0D01 : EC DB FF DB 6F B6 DB FF 72 0D09 : EF 6F 89 B7 B8 DB FA AE BD 0D11 : F5 39 71 1C 7E DD BF E1 1C 0D19 : DB F4 7E B5 CF D6 EF BE B5 0D21 : B7 F1 FA DE 6F 8A 52 8B 17 0D29 : 86 A0 15 45 E1 19 BA 9A F4 0D31 : AD 89 46 32 22 E1 A8 11 71 0D39 : 9C D7 71 5F 45 01 AB 45 9F 0D41 : 38 A0 4B 80 85 30 CD D4 67 0D49 : CC 18 C8 8B 86 A4 3A D3 E3 0D51 : 01 28 80 D5 A3 0A 60 C6 DB 0D59 : 44 5C 35 21 D6 98 09 74 7C 0D61 : 03 56 8C 29 83 19 11 70 FE 0D69 : D4 87 5A 60 26 C4 06 AD 9F 0D71 : 18 53 06 32 22 E1 A9 0E EF 0D79 : B4 C0 4B E0 1A B4 61 4C E2 0D81 : 18 C8 8B 86 8E 54 9D EA 89 0D89 : 15 75 7E AE 95 DB AB F5 A1 0D91 : 74 AE DD 5F AB A5 77 05 8F 0D99 : DB AD 32 89 3B 3C 92 45 73 0DA1 : 01 61 11 70 D4 85 8B 6C 26 0DA9 : AD BA BF 96 28 21 B0 1A F8 0DB1 : B4 61 5A 7A 7D 43 FE 94 13 0DB9 : 97 39 52 55 26 0F 01 27 59 0DC1 : 67 51 2B 25 8B A3 5D AF EB 0DC9 : 55 BD 7B 16 CA DA DB 31 F4 0DD1 : 0D 0A A5 ED DD DB D9 68 FF 0DD9 : 21 F6 CF E4 A4 BE 74 21 5A 0DE1 : CF 2B FF 41 45 E1 0E 87 18 0DE9 : 30 DC 6C 91 CF 2E 06 A4 A4 0DF1 : 28 F5 70 B9 DA E6 F0 BA 85 0DF9 : 7A E6 CD 9E 5B 53 96 D0 7A 0E01 : B9 07 FA 89 C5 40 DE 1C 40 0E09 : C1 F2 CA 6F B5 CE D9 7A 12 0E11 : 63 C3 BD 36 FE F4 7F 65 EC 0E19 : E9 82 F6 D2 AA 6A F5 4F D0 0E21 : 17 AA 78 BD 53 C5 EA 9E AF 0E29 : 2E 66 EA 46 32 22 E1 A8 1B 0E31 : D0 0A A5 7C 0B B7 3B 09 6D 0E39 : 0F D7 53 C1 7E CA 94 1F 10 0E41 : C4 53 CA 3F DE 26 E4 0F 1A 0E49 : EF 12 B8 0E E8 91 C0 FE 4D 0E51 : D9 3B 60 6C 8E 21 F8 C4 CD 0E59 : DC 81 E1 92 B8 0F B3 24 DC 0E61 : 70 3E 29 3B 60 6C 8E 21 88 0E69 : F8 C4 DC 81 FD E2 57 01 81 0E71 : F6 64 8E 07 C5 27 6C 0D 7F 0E79 : 91 C4 3F A8 4D C8 1E 19 17 0E81 : 2B 80 FB 32 47 03 E2 93 71 0E89 : B6 06 C8 E2 1F EF 13 72 73 0E91 : 07 86 4A E0 3B A2 47 03 76 0E99 : FB 64 ED 84 C1 61 11 70 1E 0EA1 : D4 85 35 48 51 73 74 7D 0C 0EA9 : 9D A1 F0 09 1C 0D 56 89 0B 0EB1 : 9B A9 89 36 D0 63 22 2E 57 0EB9 : 1A 99 00 AA 57 C0 BB 73 47 0EC1 : D9 90 FD 75 3C 17 EC A9 94 0EC9 : 41 FC 45 3C A3 FD E2 6A EC 0ED1 : C0 FE F1 35 80 77 44 DD C4 0ED9 : 01 FD B2 6F C0 DB 2E E9 EB 0EE1 : F8 C4 D5 81 E1 93 58 07 0B 0EE9 : D9 93 74 07 C5 26 FC 0D 25 0EF1 : B2 EE 9F 8C 4D 58 1F DE 66 0EF9 : 26 B0 0F B3 26 E8 0F 8A AD 0F01 : 4D F8 1B 65 DD 3F A8 4D 53 0F09 : 58 1E 19 35 80 7D 99 37 26 0F11 : 40 7C 52 6F C0 DB 2E E9 89 0F19 : FE F1 35 60 78 64 D6 01 71 0F21 : DD 13 74 07 F6 C9 BF 01 45 0F29 : 61 11 70 D4 85 2E D0 92 FC 0F31 : E6 E2 D0 F8 04 DD 01 AA 64 0F39 : D1 33 75 23 19 13 95 25 30 0F41 : 52 76 2E 1A 81 25 CF 46 AA 0F49 : 5D 98 5D AA 92 A7 B4 58 89 0F51 : B9 58 2A 7D D1 AB 46 FD 00 0F59 : 5D 2B B7 47 9B B5 76 93 8B 0F61 : B8 35 89 31 06 92 56 43 11 0F69 : 21 31 AB 6A 0D 62 C5 B6 C3 0F71 : 56 DD 58 34 AD 95 83 64 B1 0F79 : 95 28 2C 25 58 9D 80 5C FF 0F81 : 32 4B 00 84 39 E5 37 95 B4 0F89 : DD 33 75 36 83 19 13 95 9C 0F91 : 25 52 76 2E 1A 81 25 CF 25 0F99 : 66 5D 98 5D AA 92 A7 B4 C7 0FA1 : 58 B9 58 2A 7D D1 AB 46 D3 0FA9 : FD 5D 2B B7 47 BF DA BB 6C 0FB1 : 49 DC 1A C4 98 83 49 2B A9 0FB9 : 21 90 98 D5 B5 06 B1 62 1A 0FC1 : DB 2B 6E AC 1A 56 CA C1 66 0FC9 : B2 4A 94 16 12 AC 4E C0 C9 0FD1 : 2E 26 92 C0 21 0E 79 4D D2 0FD9 : FE 1D D3 37 53 FF E7 98 48 0FE1 : E3 19 14 F7 33 AE 00 9B 35 0FE9 : 99 C7 2A 4A A4 ED 3A E9 B0 0FF1 : CF 7A 44 AE 9C 2E 1A 80 89 0FF9 : E9 CF 9D 02 F9 CF B1 02 5A 1001 : 8B 9F 4E 43 AB B5 6E DD 36 1009 : 92 EA 70 B0 88 F9 65 C0 B2 1011 : D4 D4 3F BF 73 F8 AA A6 0E 1019 : D1 49 51 CF 2E 06 A6 A1 CE 1021 : FD 17 3A 47 5B 55 49 46 33 1029 : 70 E7 94 58 47 03 53 50 37 1031 : FE FD CD 6D 54 DA 29 2A 64 1039 : 39 E5 C0 D4 D4 3F A2 E7 D1 1041 : BA EB 6A A9 2E 27 1C A4 96 1049 : 93 38 DC E9 06 6E A4 F1 B7 1051 : D2 77 23 03 53 47 10 D9 6B 1059 : 92 07 3C A6 AB 44 E0 92 D8 1061 : B2 30 35 3B 1C 43 7F 39 2C 1069 : 06 F0 A3 0C 64 53 DC CE 44 1071 : B8 02 6E 67 1C A9 2A 93 92 1079 : B4 EB A7 5C 01 2B A7 0F BE 1081 : CD 20 7C B2 F4 EB 35 0A 6B 1089 : F4 E9 6A 1D 8C 84 C6 AD 13 1091 : A8 35 84 F5 C2 0D 22 78 C2 1099 : 40 9D 80 5C 2E 4B 00 4E 2D 10A1 : 4C E4 EB A7 3D E9 12 BA 30 10A9 : 74 24 EC 02 E2 49 2C 02 D8 10B1 : 10 F9 D1 8F 26 83 CD E5 A6 10B9 : 80 12 C0 21 0F 9D 19 3B 4F 10C1 : A9 C4 BA 9D 08 7C E8 C9 CA 10C9 : C9 9C 49 33 A1 19 E7 15 46 10D1 : 3B A9 CF 41 0B 53 E6 0E 00 10D9 : 33 C3 F0 47 19 E1 F6 43 16 10E1 : 8C F1 3B A9 CD BD 8F 55 1D 10E9 : 37 7C EB 4D 50 38 CF 2D 63 10F1 : 5E D7 3A D3 54 0E 33 C3 4E 10F9 : EC 87 19 E2 74 67 36 F7 97 1101 : A5 55 37 7C EB 4D 50 38 89 1109 : CF 2D 5E D7 3A D3 54 0E B1 1111 : 33 C3 EC 87 19 E2 77 13 FF 1119 : 9B 7B D2 AA 9B BE 75 A6 4F 1121 : A8 1C 67 96 AF 6B 9D 69 24 1129 : AA 07 19 E2 72 67 42 3F E3 1131 : 24 DE BF 34 CD D4 DA 46 B6 1139 : 76 31 91 17 0D 48 7F 25 EA 1141 : CF 6A 8E 27 D9 5D 09 6B 51 1149 : A0 A6 AD 62 9D EE 56 0A B3 1151 : 97 E2 C2 26 A9 E6 9B 3C 87 1159 : A7 5E 7A E8 1B F1 F3 4C 95 1161 : DD 4D A6 CB 04 63 22 2E 48 1169 : 1A 90 FE 4B 9E D5 1C 4B 94 1171 : 25 D0 96 BA 0A 6E 56 29 BB 1179 : DE E5 60 A9 8C 2C 22 6B 21 1181 : 7E 69 DE 4F 5D 03 77 FC 1B 1189 : D3 37 53 37 8A F0 63 22 B6 1191 : 2E 1A 90 FE 4B 9E D5 1C 09 1199 : 4B 22 A1 2C A8 3F 78 A6 97 11A1 : AD 62 9D EE 56 0A 97 E2 9E 11A9 : C2 26 B3 BD 36 79 46 9D A6 11B1 : EA 11 0D 54 BF 32 45 1C CD 11B9 : 43 D9 4F 2A 06 DF DE C8 6E 11C1 : DF 62 4B B3 0D E4 74 21 27 11C9 : 4B B3 0B E8 E8 12 3A 10 F6 11D1 : 8C DD 4E 93 68 03 19 11 77 11D9 : 70 D4 87 F2 5C F6 A8 E2 D9 11E1 : 7D 92 A1 2C A8 3F 2A 9A F8 11E9 : B5 8A 77 B9 58 2A 5F 8B 64 11F1 : 08 9B E9 BD 36 79 46 9D 7C 11F9 : EA 1C 59 14 71 0E BC F2 2B 1201 : A0 60 BD 97 66 14 1E 6F 92 1209 : 23 A0 48 E8 42 33 75 26 8B 1211 : F1 B9 83 19 11 70 D4 87 DA 1219 : F2 5C F6 89 14 05 84 47 32 1221 : B2 D4 1A CF 72 92 4E F4 9D 1229 : EC 6A 15 1A B4 53 8A 14 0B 1231 : 71 20 BB 9E 54 20 AB 3D E4 1239 : 74 1D 41 61 FA E8 44 3A 35 1241 : F6 87 2A 56 52 37 D8 90 B4 1249 : 6C B7 D9 1D 53 70 EF 4C BC 1251 : DD 4A 1E 77 E5 18 C8 9C 45 1259 : A9 2A 2E 1A 81 25 CF DB 1E 1261 : 90 B1 65 D9 85 F5 24 09 09 1269 : 49 03 BD 58 B9 58 2A 5F 74 1271 : 8B 08 9A E0 86 CF 29 9B 86 1279 : A9 B7 5C C3 19 13 95 25 58 1281 : 45 C3 50 24 B9 FB 72 16 B2 1289 : 2C BB 30 A0 F3 79 49 02 E7 1291 : 52 40 EF 56 2E 56 0A 9D C3 1299 : 81 61 13 6C 88 66 EA 4D 1F 12A1 : 89 18 63 22 2E 1A 81 25 57 12A9 : CA 92 EC C2 FB D6 40 9E 04 12B1 : B2 07 B4 58 B9 58 2A 44 AF 12B9 : 35 5A 23 9E 53 7F D4 9F 7C 12C1 : DC F0 C3 19 11 70 D4 09 23 12C9 : 2E 5F CB B3 0A 0F 37 9E 43 12D1 : B2 04 F5 90 3D A2 C5 CA AA 12D9 : C1 52 21 AA D1 1C F2 98 5C 12E1 : 84 D8 CA F3 8C DD 48 C6 69 12E9 : 44 5C 35 02 4B 9A A5 DF C9 12F1 : 45 01 AB 44 5C 35 21 18 4E 12F9 : A1 3E F1 08 50 44 C3 BF EC 1301 : 9E 2E 1A 7D BB 40 58 44 94 1309 : 5C 34 FB 4A 84 2A 9F DB 97 1311 : C5 18 C8 8B 86 A0 49 73 FF 1319 : F5 E5 D9 85 F5 9A 04 B3 D3 1321 : 40 EF 56 2E 56 0A 97 E2 8E 1329 : C2 26 F3 C8 6C F2 CC 43 2C 1331 : 60 66 EA 46 32 22 E1 A8 55 1339 : 12 5C D5 2F 2E CC 28 3C 37 1341 : DE 59 A0 4B 34 0E F5 62 AE 1349 : E5 60 A9 7E 2C 22 6B 37 88 1351 : C6 CF 29 9B A9 74 A7 D7 49 1359 : 18 C8 8B 86 A0 49 72 A4 F0 1361 : BB 30 BE F9 50 27 CA 81 90 1369 : DE AC 5C AC 15 3F 30 B0 B7 1371 : 89 B0 DF 5A 7F 38 E3 19 11 1379 : 11 70 D4 09 2E 6E 65 D9 B8 1381 : 85 07 9B CF 95 02 7C A8 17 1389 : 1D EA C5 CA C1 53 FB 45 17 1391 : 84 4D FA 9F 19 BA 93 67 F3 1399 : 97 32 60 8C 64 45 C3 50 13 13A1 : 24 B9 F3 E5 D9 85 F7 19 37 13A9 : 02 71 90 3B D5 8B 95 82 04 13B1 : A7 F2 16 11 36 4B E3 54 6F 13B9 : BE 18 C8 8B 86 A0 49 72 9E 13C1 : FE 5D 98 50 79 BC E3 20 EB 13C9 : 4E 32 07 7A B1 72 B0 54 5C 13D1 : C2 16 11 33 4F 91 F4 F0 80 13D9 : 4F 25 2F EF 1E FE 79 FF 44 13E1 : F0 96 10 F9 8F 06 0B C1 38 13E9 : C6 78 FE F9 0F 90 7D D7 05 13F1 : 90 AE AD 30 4E 52 5D 81 3A 13F9 : BE 07 70 7A D3 0E 52 5C 56 1401 : 02 76 00 F7 A4 4B 00 39 54 1409 : 49 44 09 74 04 D8 81 2F B1 1411 : 80 F7 64 D4 32 7E 31 37 8B 1419 : 20 4D 58 1E 19 2B 80 9A DC 1421 : C0 3E CC 91 C0 9B A0 3E 4D 1429 : 29 3B 60 4D F8 42 36 FC 26 1431 : 16 5E 0D A5 B6 FC 7E E4 85 1439 : 18 31 52 FF 68 3C 77 5A 79 1441 : 66 52 DE 1B CA E9 99 BA C3 1449 : 9B 4C 4D 80 C6 44 50 D7 ED 1451 : 29 F1 C0 9A E7 61 A0 FA F8 1459 : 28 48 A2 EB 97 14 28 BA FC 1461 : E5 C5 02 45 01 61 11 EC 8B 1469 : B5 06 B3 49 14 2B 73 02 A4 1471 : B4 B2 A0 D2 AD E4 05 6A EC 1479 : F2 9F 63 80 B0 88 B8 6A 2B 1481 : 04 77 3F DB 22 AA 6D 12 DD 1489 : 6E C0 58 44 5C 35 02 3B E4 1491 : 9F 72 43 AE 5E EC 34 91 51 1499 : 42 B7 80 15 B7 72 85 84 A8 14A1 : 45 C3 50 23 B9 BD 91 55 BB 14A9 : 36 89 37 60 2C 22 2E 1A 3E 14B1 : 81 1D CE CA 43 AE 5E EC CB 14B9 : 34 91 42 B7 A0 15 B7 F2 B5 14C1 : 85 84 45 C3 50 23 B9 E3 1F 14C9 : C8 BE E1 81 38 60 47 52 E1 14D1 : 86 AD 14 F1 C3 49 14 2B 9E 14D9 : 76 81 5B 36 54 24 FC 14 30 14E1 : AD 2C 8D F0 3B 33 75 28 99 14E9 : 77 F6 83 19 11 43 5C A7 CB 14F1 : C7 02 6B 9D 86 83 E8 A1 B3 14F9 : 22 8B AE 5C 50 A2 EB 97 11 1501 : 14 09 14 05 84 46 42 63 8A 1509 : 56 D4 1A 4F E3 B9 DC 23 00 1511 : 14 27 EF 42 7C 49 50 6B 27 1519 : 27 E1 84 F6 65 0D 5A 30 B9 1521 : 8C DD 4F DA 8E A8 C6 44 9D 1529 : 64 26 35 6D 41 A4 FE 4B 67 1531 : 9E CC 1A C2 52 94 4F 48 AC 1539 : 20 D2 27 A3 28 9F 7C 0D 8C 1541 : 56 8E 64 CF EF 18 C8 8A E9 1549 : 1A E5 37 10 2E DC BF D0 90 1551 : 97 66 14 1E 6F 33 80 99 AA 1559 : C0 4B 39 46 AB 44 CD D4 94 1561 : C7 76 A0 C6 44 5C 35 02 64 1569 : 3B 95 24 55 4D A2 48 A0 6F 1571 : 9E 70 3D AE BE 8A 04 CE 5A 1579 : 02 59 CA 35 5A 26 6E A6 5F 1581 : 8E FA 98 C6 44 50 D7 29 04 1589 : F1 C0 9A E7 61 A0 FA 28 D5 1591 : 0B 08 8B 86 A4 23 14 27 56 1599 : FA 80 35 68 A7 60 17 11 2A 15A1 : C9 60 10 93 BA 9C F4 10 95 15A9 : AF 3A E4 2D C9 EF 88 BD 0E 15B1 : C9 F6 44 66 E5 3B A9 CD 4E 15B9 : BD 8F 55 37 7C EB 4D 50 77 15C1 : 48 97 36 AF 6B 9D 69 AA F7 15C9 : 0D 87 B6 36 A3 6D D3 78 F4 15D1 : 66 EA 4C DD 4D AE 26 D8 10 15D9 : 63 22 28 6B 94 F8 E0 5D 14 15E1 : B9 D8 68 4B B3 0B EC E0 93 15E9 : 26 70 12 CE 51 AA D1 33 BE 15F1 : 75 27 2A 4A 9D 64 9D AC 9A 15F9 : 5D 11 DB 5B 2B 0D 05 6D 4B 1601 : DD E8 21 F2 42 98 31 91 CA 1609 : 17 0D 40 8E E7 CE 90 48 50 1611 : A0 2C 22 2E 1A 81 1D CD D3 1619 : CC 8A A9 B4 5D 72 E2 81 23 1621 : 22 80 D5 A2 B1 4F A7 4A 16 1629 : CB 4E C2 71 43 46 6D B3 7E 1631 : 10 D0 56 DE CB 41 0F 92 43 1639 : 11 9B A9 A6 33 0E 54 BB C3 1641 : C3 F8 6D 87 B2 D4 08 6E 9B 1649 : 7E DC 1A 4F D7 C8 92 87 C3 1651 : C3 06 B1 FE B5 CF D9 90 C6 1659 : DB DD 56 25 AE FB 7C F6 08 1661 : CB AB 85 FA 80 91 43 0A 78 1669 : D4 09 8E 12 1D 72 E2 81 9C 1671 : 22 81 CB CB C7 02 63 84 E3 1679 : 1A C7 BD FA 4C 1D 67 5B 47 1681 : 5A 49 59 27 14 1D 6D 58 4C 1689 : 49 84 F1 C3 6B 64 95 94 62 1691 : 1A C7 BA AA 1A AE AE 15 8F 1699 : 98 2C 53 70 F2 6A 17 84 12 16A1 : 7B B3 78 D0 2A D1 99 32 2A 16A9 : 61 C1 2E F1 BA F6 C6 6E 10 16B1 : A6 E6 64 C1 8C 88 B8 6A E0 16B9 : 04 77 2A 3E E3 A0 2C 22 03 16C1 : 2E 1A 81 1D CF E7 7D 15 5D 16C9 : 01 61 11 70 D4 08 EE 7E 13 16D1 : C3 EC 74 0D 56 89 9B A9 3D 16D9 : DC 58 01 CA 97 78 5C 35 94 16E1 : 01 67 3D A3 95 2A 5A 8A 83 16E9 : C1 61 11 70 D4 08 6E 7F F3 16F1 : 93 EB 40 16 11 17 0D 40 CB 16F9 : 9A E7 19 F6 F0 2F EB 34 4D 1701 : B4 93 B4 06 DE EA B1 2D D3 1709 : 77 DB E7 B6 5D 5C 2F D4 5E 1711 : 04 8A 18 56 A0 4C 70 90 7B 1719 : EB 97 14 09 14 0E 5E 5E DE 1721 : 38 13 1C 20 D6 3D EF D2 AB 1729 : 60 EB 3A DA D2 4A C9 38 80 1731 : A0 EB 6A C2 4C 27 8E 1B 28 1739 : 5B 24 AC A0 D6 3D D5 50 35 1741 : D5 6F 92 AC C4 39 52 A5 B3 1749 : 2E B4 12 AC A2 48 A1 77 CD 1751 : 58 95 62 3B C0 97 3C 37 9C 1759 : 75 8B 14 DC 3C 95 8A 6E AC 1761 : 1E 4D AD A9 91 E7 65 C3 3C 1769 : AD 55 73 5B E2 D5 5F 94 8D 1771 : CD D4 CC 98 70 4B BC 3F C1 1779 : 86 D8 5C 35 01 67 3F 6C 4A 1781 : E5 4A 96 A2 B0 58 44 5C 1D 1789 : 35 02 1B 9F CC FA D0 34 CA 1791 : 62 1B 47 DA EB AF 8F DE E6 1799 : 8F 77 41 E7 71 8B 4D 5B 90 17A1 : 16 CC 5B AF 08 AB 3C D3 61 17A9 : DD 74 F0 66 3E BC 03 6D 7A 17B1 : 3C 5D 0B 7B AC B8 72 CA BE 17B9 : CA 9B 37 FC 75 3C AC 0F C8 17C1 : 1B 63 E1 A9 DA 7E 0A 7B FC 17C9 : 10 F0 B6 3E 1C 78 D0 F0 71 17D1 : B6 3E 1A 1C 54 6B C2 59 0F 17D9 : 59 D2 5E 05 69 59 CB D8 16 17E1 : 5E 02 C5 D3 DD 3E AF 03 C1 17E9 : 6C BC 5B 7B A4 6B C0 DE 60 17F1 : CE 4E 92 F0 11 AF 0E 26 BC 17F9 : 86 5C 39 65 66 B4 AC A1 AA 1801 : F2 1D 94 BF 5C C9 93 0D 1B 1809 : 61 8A 33 1E 1B D9 98 52 C7 1811 : 8E DF 6D 5A 56 72 F6 17 38 1819 : 81 2C AC E9 2F 02 B4 AC 48 1821 : BF E3 A8 77 E5 43 B2 6B 05 1829 : 0C 5C BD 25 E0 1D 4A D2 3D 1831 : B3 0E 0D D4 CB 80 AD 2B 97 1839 : 30 EF 6F 01 62 BE AF 03 3E 1841 : 7B 39 2B 3C D3 DD 74 F0 8B 1849 : 66 3E BC 03 7E 0F 17 42 9F 1851 : DE EB 2E 1C B2 B2 A6 CD 2B 1859 : FF 1D 4F 2B 03 C6 2E B9 B3 1861 : 4E D3 F0 53 D8 87 84 5D D6 1869 : 74 78 D0 F0 8B AE 43 8A BC 1871 : 8D 78 4B 2B 3A 4B C0 AD CF 1879 : 2B 39 7B 0B C0 58 BA 7B 32 1881 : A7 D5 E0 6E 17 8B 6F 74 8D 1889 : 8D 78 1B B9 8B A4 BC 04 29 1891 : 6B C3 89 A1 97 0E 59 59 76 1899 : AD 2B 28 7C 87 65 2F D7 86 18A1 : 32 64 C3 40 C5 17 D3 CD FE 18A9 : EF E4 EB 4A 3B 7D B5 69 98 18B1 : 59 CB D8 5E 04 B2 B3 A4 E0 18B9 : BC 0A D2 B2 FF 8E A1 DF 40 18C1 : 95 0E C9 A0 62 E5 E9 2F 3F 18C9 : 00 FE 85 69 59 87 06 E9 95 18D1 : D5 C0 56 95 98 77 B7 80 74 18D9 : B1 5F 57 81 BB 98 A9 D7 17 18E1 : 86 5C 3A D5 57 96 56 4C FB 18E9 : 39 3D 3C 15 A6 E9 EB A5 27 18F1 : 95 98 F5 84 AF 07 B6 4F 8D 18F9 : D4 53 EC A7 5E 13 1F BC 1B 1901 : 53 D7 CB 43 ED 3F 15 3C 41 1909 : 94 A4 BF E3 A9 E9 63 D7 83 1911 : 7B 1B C7 FE 12 13 4F 5A 97 1919 : 86 ED FD 46 44 D7 FB 3C 49 1921 : 8F 97 4F FD 4B 17 4F 75 A5 1929 : C4 D4 60 E8 43 CB 96 56 26 1931 : 70 3C 67 0B 29 DF 3F 04 91 1939 : 2A 2E EE BD CF EA CB 87 80 1941 : 5A AA F8 4A AE A7 83 81 B1 1949 : A9 D9 29 35 FD 04 19 4A C9 1951 : BB 03 53 CA 43 DA 4A 4C 89 1959 : B2 B2 A7 F2 E7 C9 53 DF 86 1961 : 87 5A AA F9 68 29 D3 C1 A2 1969 : B7 BA 87 85 3D 68 F1 B0 50 1971 : 9C 2C 87 EE 96 56 63 FF 8D 1979 : 85 6B 0B F5 FF 59 DE 25 C6 1981 : 83 08 D5 4B F4 E3 AA FD FC 1989 : E2 95 78 F5 D5 15 4B BF C5 1991 : 51 4D 53 FF 41 4A F3 63 5B 1999 : F3 A1 EB FF 06 06 A7 A5 D2 19A1 : 89 A7 A1 0D 67 9A 0A 49 0E 19A9 : 87 85 B1 F0 E3 C6 A8 EF 74 19B1 : A1 E1 6C 7C 3A 8B B1 E8 86 19B9 : 7B A8 77 C6 ED 74 E1 EB 21 19C1 : FF 06 06 A7 A5 89 A7 A1 C2 19C9 : 0D 67 9A 0A 49 87 84 5D 0F 19D1 : 74 78 D5 1D F4 3C 22 EB 2C 19D9 : AA 20 0F 43 DD 43 BE 1F F1 19E1 : C5 CC 7E A2 94 93 10 43 AD 19E9 : D1 4F C8 04 2B 13 E3 82 F4 19F1 : 1A C1 F2 CA 6F B5 CE 1D 1C 19F9 : CF 98 64 79 C6 F2 3C C3 D9 1A01 : 79 5E 61 BB DE 60 E7 97 39 1A09 : 03 52 14 7A B8 59 9A E6 18 1A11 : F0 B5 BA E6 CD 9E 5D 12 D3 1A19 : A7 E0 20 F8 41 F7 80 86 3A 1A21 : A1 DA 4A DF AB A5 76 79 73 1A29 : AE B6 AE D2 76 B1 75 EA D9 1A31 : A9 1D 2A C8 7A F5 52 A4 F6 1A39 : 3E 6F 54 C8 F3 8D D9 E6 3E 1A41 : 43 D7 AA A7 7F C4 D7 AA E2 1A49 : 6C CF 33 44 AF BC 80 4E 72 1A51 : C1 07 D6 08 24 AE A1 DD 46 1A59 : FA BA 57 67 BF 75 B5 76 DE 1A61 : 93 B5 8B AF 55 48 E9 56 94 1A69 : 43 D7 AA 95 21 F3 7A A6 DE 1A71 : 47 9C 6E CF 32 1E BD 55 52 1A79 : 3B FE 26 BD 53 7F 67 98 75 1A81 : 72 93 8E 09 FA E0 A4 74 B4 1A89 : AB 13 F0 81 2A 43 E6 F5 6E 1A91 : 4C 8F 38 DF 6B 9C 9F 84 D2 1A99 : 0A 77 C9 FA E0 A5 B9 53 F9 1AA1 : F1 D0 27 8E 85 47 8E 9D 9E 1AA9 : F4 E7 B3 54 AE 4E C0 1E A5 1AB1 : AE A5 D9 DE 13 8E 06 F0 24 1AB9 : E6 1B 66 E1 B7 B3 54 AE CA 1AC1 : B5 4E C0 1E B2 A7 9E 77 63 1AC9 : 84 10 42 DE D5 B7 AC A9 E3 1AD1 : AC 4E C0 1E CD 52 EC EF 9B 1AD9 : 09 E4 01 A7 73 0D E1 CC 4A 1AE1 : B5 7A BA 9D FA 7A C4 37 3B 1AE9 : 17 01 91 F7 4E 52 6B 10 29 1AF1 : 4E E8 08 28 27 7C 04 F2 07 1AF9 : 10 4F 56 0F 7A 44 D5 A0 8B 1B01 : 9E B0 09 E8 A0 9E E8 08 09 1B09 : E9 04 CB 39 EB B4 99 4F 78 1B11 : 7E 0F 62 5D B2 42 CE 37 42 1B19 : 7D 5A 9D C0 13 58 82 74 2A 1B21 : 40 82 82 7B 10 27 90 82 34 1B29 : 7B 90 7B D2 26 AD 04 EB DD 1B31 : 80 9E 8A 09 C7 02 3A 41 BC 1B39 : 32 CE 7A ED 26 53 ED 83 EA 1B41 : D8 97 6C 90 B3 8D CE 9E 32 1B49 : 6F 12 7A 7E 02 09 D8 20 3C 1B51 : 9D 80 3D 92 A4 41 93 6C 4B 1B59 : 9D 80 3D D6 A9 FE E9 D8 4C 1B61 : 03 DF AE 4B 00 4F 30 08 B4 1B69 : 59 49 F2 00 8B CA 4D B0 C9 1B71 : 26 AA 52 74 00 92 65 27 88 1B79 : 4C 09 B9 94 9F 24 09 5D 45 1B81 : 28 DC E9 E9 D8 05 C6 B4 09 1B89 : 96 00 9E 60 60 79 FE A0 E2 1B91 : 10 B2 93 E4 06 A4 A4 5E 51 1B99 : 52 6D 86 07 9F E5 01 35 BC 1BA1 : 52 93 A0 1A 92 92 4C A4 60 1BA9 : E9 86 07 9F FD 00 4D CC 3A 1BB1 : A4 F9 21 A9 29 2B A5 1A 86 1BB9 : 7C F2 E8 FE F7 CC 86 8E E5 1BC1 : D9 F4 40 35 CF 8A 72 93 0D 1BC9 : F6 32 34 98 1F 35 81 75 85 1BD1 : F1 75 1B 3A E4 8A 03 EE 17 1BD9 : 5B 5A E7 1B E0 77 5D 28 4E 1BE1 : DE CC C2 4D B9 3E C8 97 5F 1BE9 : 77 29 D1 9C DB DE 95 54 B0 1BF1 : DD F3 AD 35 41 2F EE 6D FE 1BF9 : 5E D7 3A D3 54 13 55 72 64 1C01 : 7D 91 24 DC A7 71 39 B7 46 1C09 : BD 2A A9 BB E7 5A 6A 82 BD 1C11 : 5C 5C DA BD AE 75 A6 A8 8C 1C19 : 25 1B 93 73 76 D3 0F 1C 9A 1C21 : DA BB 64 F5 0C E8 DD 4F CF 1C29 : 79 FC 74 10 8C 9C 99 D0 F5 1C31 : B4 97 80 8D 78 68 71 32 78 1C39 : E1 CB 2B 35 A5 65 FF 1D 31 1C41 : 0F F5 BD BC 07 D5 E1 08 08 1C49 : 7F 17 C8 3E AB C4 2B 86 E8 1C51 : 93 03 E6 B0 2E BE 21 FF 93 1C59 : 4D B7 D2 CA C6 FF CD 91 56 1C61 : CA 4B 00 20 81 3C 80 27 1F 1C69 : 1C 06 6F 88 7F A7 47 24 10 1C71 : 93 62 3E BB 88 7F AB 47 FE 1C79 : DB 25 FC 47 DA A8 87 FC 1A 1C81 : FA 3E D9 24 C4 7D 71 10 B3 1C89 : FF 8B 47 CC 25 64 47 D4 F5 1C91 : A2 1E 5E 8E D8 9E 8C 47 EF 1C99 : D6 71 16 2E 9D 83 CD 4A 35 1CA1 : C8 E5 1F FE DB 13 C2 02 69 1CA9 : 7A E0 B6 9F 49 7D 38 92 BB 1CB1 : 67 1C A4 F1 D0 3F D4 35 52 1CB9 : 9B 68 4F BD 14 07 CD 60 85 1CC1 : 79 2C 0D 26 07 D4 79 9C 8F 1CC9 : 36 3F 08 FD 7F CE 3F E9 A0 1CD1 : B6 1F E9 B6 1F E8 AD D1 FC 1CD9 : 57 6E 6D 47 E7 4C B3 9E 98 1CE1 : BB 21 67 1F 66 47 48 1E E9 1CE9 : E4 9C 46 4F F7 3A 89 2E 6B 1CF1 : 72 A4 AA 4C 1D 04 9D 9E 8F 1CF9 : 02 56 4B 17 5E AD B3 10 1E 1D01 : D0 F1 AD DD DB D9 41 B2 E8 1D09 : 7E A2 1D A3 A0 93 B3 95 35 1D11 : 25 52 61 62 EB D5 B6 62 11 1D19 : 1A 1E 35 BB BB 7B 24 2A 84 1D21 : 97 3F 92 92 F9 C7 04 B0 9E 1D29 : 0E 54 BC 98 3B FF 72 D0 C3 1D31 : 64 FB 87 45 60 1F 03 DD E4 1D39 : 83 E4 E0 7C 5B FC 48 38 25 1D41 : 1F 15 A0 EE 25 9E 12 DF 40 1D49 : 08 F8 1E E9 ED D6 01 F0 0E 1D51 : 3D D3 94 96 08 13 C0 41 0E 1D59 : 3F 01 04 EC 10 36 F7 A6 97 1D61 : 35 13 20 DC A1 75 D7 DC A2 1D69 : 21 AA 3D 72 5B 83 6B 66 C9 1D71 : 1B FE 66 0C 64 45 C3 50 47 1D79 : 23 B9 B3 7D 14 06 AD 14 66 1D81 : E2 85 54 DA 37 DC 30 27 00 1D89 : 0C 08 EA 54 23 37 52 31 76 1D91 : 91 14 35 CA 77 D0 2E DC 43 1D99 : FA 1A 0F A2 84 8A 2E B9 81 1DA1 : 71 42 8B AE 5C 50 24 50 65 1DA9 : 16 11 19 09 8D 5B 43 56 1D 1DB1 : 8A 31 42 0D 64 F2 CA 9F 4E 1DB9 : 98 10 69 4F 5E 54 FE 40 A3 1DC1 : 42 19 5E A9 CB 88 B2 C6 B6 1DC9 : FE 0F 06 57 AB A2 55 BA 56 1DD1 : DA 85 4E B2 4E CE AA 58 0E 1DD9 : 5D 75 C7 DE 79 6E BC 24 05 1DE1 : E3 83 D6 09 1C 21 27 BA 39 1DE9 : 07 AC 13 74 10 93 8E 17 A0 1DF1 : 0C 92 38 42 4F 74 17 0C AA 1DF9 : 93 74 10 8E 52 58 01 B5 F4 1E01 : 95 A7 FB 9D 44 97 39 52 A7 1E09 : 55 26 0E 82 4E CE A2 56 D8 1E11 : 4B 17 5E AD B3 10 D0 F1 18 1E19 : AD DD DB D9 21 54 B9 FC 7C 1E21 : 94 97 CE 84 52 D7 97 92 2C 1E29 : 5E A1 56 2C 32 A8 57 4B CF 1E31 : EB 57 B5 5F 21 7F EE 5E A8 1E39 : 02 F2 59 A8 67 39 90 67 71 1E41 : AA CA 0C F7 EC 8C 46 E2 64 1E49 : 7B 11 36 D1 3A D1 32 E2 D5 1E51 : 27 8E 14 71 25 FC 3B 74 03 1E59 : 95 97 F1 6D D2 76 7B 97 E2 1E61 : 5B 57 69 3B 4E 28 3A DA EE 1E69 : AA 92 A7 2E D5 DA 4E D3 21 1E71 : B4 05 8B 6C A9 F6 3B 57 06 1E79 : 69 3B 4D E8 5B 2B 08 63 E6 1E81 : 22 2E 1A 7D 68 02 C2 22 D6 1E89 : E1 A8 15 EE 6D 5F 6E C0 EF 1E91 : 58 44 5C 35 03 C7 73 EA DB 1E99 : 3E D2 80 B0 88 B8 6A 05 78 1EA1 : 7B 9E 8B EB C0 16 11 17 FB 1EA9 : 0D 40 F1 DC E6 3E AF 01 0F 1EB1 : 61 11 70 D3 E7 A0 3F 0F D0 1EB9 : 8B B0 BC 0D 85 78 27 BB 9D 1EC1 : 02 45 04 F4 A0 4C 70 17 62 1EC9 : 5F 5B 61 14 13 8A 1B 8B BA 1ED1 : C0 43 E3 4F 76 04 8A 1B FD 1ED9 : 0C 70 4F 1C 37 15 E0 87 23 1EE1 : AB 08 CD D4 8C AF 54 E5 02 1EE9 : C4 59 43 7F 07 83 19 11 2E 1EF1 : 70 D4 0A F7 39 7A 8E C0 70 1EF9 : B0 88 B8 6A 07 8E E7 F3 D5 1F01 : 6A 3E C0 D5 A2 6F A7 E2 7F 1F09 : 39 52 55 26 0E A2 4E CE 52 1F11 : B2 56 5D 43 FE 94 97 58 52 1F19 : BA F5 6D 98 86 87 8D 6F F6 1F21 : 65 6E ED 0A A5 CF E4 A4 30 1F29 : BE 70 CA F5 74 4A B3 9D 34 1F31 : 42 A7 59 27 67 F0 52 5C 82 1F39 : EA A5 84 3E F3 C3 F9 29 76 1F41 : 2F 0A 59 59 A8 88 6F 67 52 1F49 : 24 D3 F2 5F 57 84 B2 B3 CB 1F51 : 51 10 DE 5E 4C 33 4F C9 5D 1F59 : 96 56 6A 22 1B B9 8A 6E 80 1F61 : 4E 2B EA F0 96 56 6A 22 27 1F69 : 1A D3 16 19 B9 38 AD 9C 63 1F71 : A4 E2 A0 4B E9 C7 98 B7 C6 1F79 : 73 A8 4A 51 2F 6B 22 67 A3 1F81 : 5A 8C 1F F5 36 AE 79 CA FC 1F89 : 4B E9 C4 E2 A1 D4 3C C5 93 1F91 : BB 97 B5 91 09 4A 26 70 14 1F99 : F9 FD F1 B5 73 FA EB 9C BC 1FA1 : A9 2A 75 92 77 A2 2B 17 76 1FA9 : 5E AD 07 96 CA C3 42 AE A4 1FB1 : DD DE 82 1F 1D BA F0 A6 3B 1FB9 : 93 8A 85 ED F4 EA F8 44 C3 1FC1 : E2 A0 7F FB AD E2 92 A2 D4 1FC9 : 25 EF 72 21 E4 2D E2 93 11 1FD1 : E6 88 3E 0C F8 43 56 8A 25 1FD9 : 75 E1 B8 D2 86 45 C2 77 54 1FE1 : 81 B8 DD 86 42 F0 93 AF 60 1FE9 : 0D 26 94 09 A5 0B DA F0 50 1FF1 : 4E F0 34 9B B0 26 EC 2F 86 1FF9 : 6F 02 11 22 84 9B 52 63 27 2001 : 83 ED D8 5E E9 43 A8 30 38 2009 : 36 D9 C8 EE C3 49 A5 04 61 2011 : E4 CE 4F 1C 1B 4E 28 57 27 2019 : C2 BD FB 91 0F BD 5A 79 26 2021 : 34 B1 2F 6F 22 42 6E 0E F2 2029 : DD FC 45 22 1B F8 7A 16 AA 2031 : AD BF 49 4D D3 FD 42 94 19 2039 : 9F FD 4A 59 BF E2 28 26 95 2041 : CA F4 2D 5D 67 42 1F 2E DE 2049 : 79 BE 89 E3 F5 4F 37 D1 5A 2051 : 3C 76 13 CD F4 4F 83 29 71 2059 : 0D 89 A6 F8 90 65 21 F9 A0 2061 : 8D F0 3B 83 29 0F FD 1B DF 2069 : CE 7C 76 C9 FD 6C 9E E4 D4 2071 : 9D 46 4F 11 2E BC 28 3F 0F 2079 : 91 B2 62 E2 DA 9B DF C9 F6 2081 : 83 F9 1B 7F 11 CB 39 15 36 2089 : 4B BF D5 64 15 CF 9F B8 75 2091 : C5 C5 53 2E 0C A4 3E 1B E9 2099 : 57 F1 14 EB 3F 9A A5 17 F9 20A1 : F7 6A 6C 45 F4 F3 7B F9 62 20A9 : 23 37 C4 37 BF 92 7F 08 1E 20B1 : 9F D6 C9 FA E4 EA 32 7B F2 20B9 : E2 79 6C 9E 22 5D 73 7B 19 20C1 : F9 30 65 21 7C 67 D3 CD 3E 20C9 : 95 E8 0F EE 78 6A 8F 68 5E 20D1 : B6 B6 A6 CA F4 16 2E 9F DD 20D9 : BD 85 B1 F0 EA 3D 65 2F 70 20E1 : C7 19 E4 34 2A 97 58 A7 05 20E9 : 04 BB D8 45 D7 54 5C 29 8D 20F1 : 7E 38 CF 21 A1 54 BC 27 A1 20F9 : BD 21 C6 78 71 1C 67 83 A4 2101 : 69 D5 83 DE A8 EC C7 FB 1A 2109 : 09 DC 02 9A AD 4D C6 E3 7C 2111 : 58 86 44 43 5E F7 8D EC DC 2119 : CC CC