avr fixes
authorErik Andresen <erik@vontaene.de>
Sun, 24 May 2015 09:03:34 +0000 (11:03 +0200)
committerErik Andresen <erik@vontaene.de>
Sun, 24 May 2015 09:03:34 +0000 (11:03 +0200)
avr/motor_ctrl/fuses.txt [new file with mode: 0644]
avr/motor_ctrl/main.c
avr/motor_ctrl/main.hex

diff --git a/avr/motor_ctrl/fuses.txt b/avr/motor_ctrl/fuses.txt
new file mode 100644 (file)
index 0000000..87a8a04
--- /dev/null
@@ -0,0 +1,5 @@
+http://palmavr.sourceforge.net/cgi-bin/fc.cgi
+
+avrdude -p atmega32 -P usb -c avrisp2 -U lfuse:r:-:i -U hfuse:r:-:i
+
+avrdude -p atmega32 -P usb -c avrisp2 -U lfuse:w:0x23:m -U hfuse:w:0xc9:m
index 0c07d13..09a8a72 100644 (file)
@@ -81,22 +81,11 @@ static volatile int16_t speed1_wish=0;
 static volatile int16_t speed2_wish=0;
 static volatile int16_t speed3_wish=0;
 static volatile int16_t speed4_wish=0;
-static volatile int16_t speed1=0;
-static volatile int16_t speed2=0;
-static volatile int16_t speed3=0;
-static volatile int16_t speed4=0;
-static volatile int16_t eold1=0;
-static volatile int16_t eold2=0;
-static volatile int16_t eold3=0;
-static volatile int16_t eold4=0;
-static volatile int32_t esum1=0;
-static volatile int32_t esum2=0;
-static volatile int32_t esum3=0;
-static volatile int32_t esum4=0;
-static volatile int16_t pos1_last=0;
-static volatile int16_t pos2_last=0;
-static volatile int16_t pos3_last=0;
-static volatile int16_t pos4_last=0;
+static volatile uint16_t run_pid=0;
+static int16_t speed1=0;
+static int16_t speed2=0;
+static int16_t speed3=0;
+static int16_t speed4=0;
 
 ISR(TWI_vect)
 {
@@ -323,8 +312,8 @@ static void update_hall1(void) {
        diff = oldstatus - new;                         // difference last - new
        if (diff & 0x1) {                               // bit 0 = value (1)
                oldstatus = new;                                        // store new as next last
-               if (motor1_switch) pos1 -= (diff & 2) - 1;              // bit 1 = direction (+/-)
-               else pos1 += (diff & 2) - 1;
+               if (motor1_switch) pos1 += (diff & 2) - 1;              // bit 1 = direction (+/-)
+               else pos1 -= (diff & 2) - 1;
        }
 }
 
@@ -462,13 +451,20 @@ static void update_motor(void) {
 }
 
 
-ISR(TIMER0_OVF_vect) {
-       update_hall1();
-       update_hall2();
-       update_hall3();
-       update_hall4();
+void update_pid(void) {
+       static int16_t pos1_last=0;
+       static int16_t pos2_last=0;
+       static int16_t pos3_last=0;
+       static int16_t pos4_last=0;
+       static int16_t eold1=0;
+       static int16_t eold2=0;
+       static int16_t eold3=0;
+       static int16_t eold4=0;
+       static int32_t esum1=0;
+       static int32_t esum2=0;
+       static int32_t esum3=0;
+       static int32_t esum4=0;
 
-       // PID control
        if (motor1_mode == MOTOR_PID) {
                speed1 = (pos1 - pos1_last)/TIMER0_T;
 
@@ -540,6 +536,16 @@ ISR(TIMER0_OVF_vect) {
 }
 
 
+ISR(TIMER1_OVF_vect) {
+       update_hall1();
+       update_hall2();
+       update_hall3();
+       update_hall4();
+       
+       run_pid++;
+}
+
+
 int main(void) {
        // Outputs
        DDRB = (1 << 3);
@@ -555,23 +561,23 @@ int main(void) {
        TWI_RESET;
 
        // Motor 1 & 2
-       // Timer 1: Fast PWM inverting mode, Top=256 => 15.625Hz
+       // Timer 1: Fast PWM inverting mode, Top=256 => 15.625kHz
        // Prescaler=1
-       TCCR1A = (1 << COM1A1) | (1 << COM1B1) | (1 << WGM10);
+       TCCR1A = (1 << COM1A1) | (1 << COM1B1) | (1 << COM1A0) | (1 << COM1B0) | (1 << WGM10);
        TCCR1B = (1 << WGM12) | (1 << CS10);
        OCR1A = 0;
        OCR1B = 0;
 
        // Motor 3
-       // Timer 2: Fast PWM, Top=256 => 15.625Hz
+       // Timer 2: Fast PWM inverting mode, Top=256 => 15.625kHz
        // Prescaler=1
-       TCCR2 = (1 << WGM21) | (1 << WGM20) | (1 << COM21) | (1 << CS20);
+       TCCR2 = (1 << WGM21) | (1 << WGM20) | (1 << COM21) | (1 << COM20) | (1 << CS20);
        OCR2 = 0;
 
        // Motor 4
-       // Timer 0: Fast PWM, Top=256 => 15.625Hz
+       // Timer 0: Fast PWM inverting mode, Top=256 => 15.625kHz
        // Prescaler=1
-       TCCR0 = (1 << WGM01) | (1 << WGM00) | (1 << COM01) | (1 << CS00);
+       TCCR0 = (1 << WGM01) | (1 << WGM00) | (1 << COM01) | (1 << COM00) | (1 << CS00);
        OCR0 = 0;
 
        printf("\r\nStart\r\n");
@@ -593,6 +599,13 @@ int main(void) {
                                }
                                break;
                }
+               
+
+               if (run_pid >= 781) { // ~20Hz
+                       run_pid=0;
+                       update_pid();
+               }
+
                update_motor();
 
                sleep_mode();
index 6b1dece..1b859ba 100644 (file)
@@ -1,7 +1,7 @@
 :100000000C945C000C9479000C9479000C947900A9\r
 :100010000C9479000C9479000C9479000C9479007C\r
-:100020000C9479000C9479000C9479000C94E30101\r
-:100030000C9479000C9405060C9479000C947900CA\r
+:100020000C9479000C94F0040C9479000C947900F1\r
+:100030000C9479000C94CD050C9479000C94790003\r
 :100040000C9479000C9479000C9479000C947B004A\r
 :100050000C9479007901C9017C01C9017F01C901B2\r
 :100060008101C901C901C901C901C901C901C90188\r
 :100090009F01A401A901AE01B301B801BD01C201D4\r
 :1000A00045464765666700202B2D2E3031323334AC\r
 :1000B000353637383968000011241FBECFE5D8E047\r
-:1000C000DEBFCDBF10E0A0E6B0E0E6E4FCE102C098\r
+:1000C000DEBFCDBF10E0A0E6B0E0E0EFFBE102C094\r
 :1000D00005900D92A837B107D9F721E0A8E7B0E065\r
-:1000E00001C01D92AE33B207E1F70E94FA060C94EC\r
-:1000F000210E0C9400001F920F920FB60F92112444\r
+:1000E00001C01D92A034B207E1F70E94C2060C9431\r
+:1000F000F60D0C9400001F920F920FB60F92112470\r
 :100100002F938F939F93AF93BF93EF93FF9381B1FF\r
 :10011000887F803881F040F4803609F043C185EC57\r
-:1001200086BF1092C80043C1883A09F4D5C0883B05\r
-:1001300009F4D2C037C18091C800813209F495C05A\r
+:1001200086BF1092CA0043C1883A09F4D5C0883B03\r
+:1001300009F4D2C037C18091CA00813209F495C058\r
 :1001400068F5843009F479C060F4813009F4A7C0FF\r
 :1001500008F45EC0823009F464C0833009F49FC0A3\r
 :1001600019C1873009F49BC090F4853009F497C019\r
-:10017000863009F00FC183B120917E0090E0922B70\r
-:100180009093C2008093C1001092B40000C18830E7\r
+:10017000863009F00FC183B120919E0090E0922B50\r
+:100180009093C4008093C3001092B60000C18830E1\r
 :1001900009F45FC0803209F482C0FCC0873209F4E0\r
 :1001A00082C0F0F4843209F47AC098F4823209F4FF\r
-:1001B00076C0833209F0EEC083B120917E0090E0DA\r
-:1001C000922B9093AC008093AB0081E08093B500BC\r
+:1001B00076C0833209F0EEC083B120919E0090E0BA\r
+:1001C000922B9093AE008093AD0081E08093B700B6\r
 :1001D000DEC0853209F456C0863209F460C0DAC048\r
 :1001E000823909F471C050F4803909F469C0813949\r
-:1001F00009F0D0C083B18093B100C9C0833909F43C\r
-:1002000067C08F3F09F0C6C083B18093C700C2C0EA\r
-:1002100083B18093C8008091C80081508093C8004A\r
-:10022000B6C083B120917E0090E0922B9093C600DF\r
-:100230008093C5001092B600AAC083B120917E00C1\r
-:1002400090E0922B9093C4008093C3001092B5006D\r
-:100250009EC083B120917E0090E0922B9093C000CD\r
-:100260008093BF001092B30092C083B120917E00B2\r
-:1002700090E0922B9093AE008093AD0081E080934C\r
-:10028000B60085C083B120917E0090E0922B9093C0\r
-:10029000AA008093A90081E08093B40078C083B164\r
-:1002A00080937E0074C083B120917E0090E0922BF9\r
-:1002B0009093A8008093A70081E08093B30067C06B\r
-:1002C00083B18093B20063C083B18093B0005FC0FC\r
-:1002D00083B18093AF005BC08091C80090E0FC01C7\r
+:1001F00009F0D0C083B18093B300C9C0833909F43A\r
+:1002000067C08F3F09F0C6C083B18093C900C2C0E8\r
+:1002100083B18093CA008091CA0081508093CA0044\r
+:10022000B6C083B120919E0090E0922B9093C800BD\r
+:100230008093C7001092B800AAC083B120919E009D\r
+:1002400090E0922B9093C6008093C5001092B70067\r
+:100250009EC083B120919E0090E0922B9093C200AB\r
+:100260008093C1001092B50092C083B120919E008E\r
+:1002700090E0922B9093B0008093AF0081E0809348\r
+:10028000B80085C083B120919E0090E0922B90939E\r
+:10029000AC008093AB0081E08093B60078C083B15E\r
+:1002A00080939E0074C083B120919E0090E0922BB9\r
+:1002B0009093AA008093A90081E08093B50067C065\r
+:1002C00083B18093B40063C083B18093B2005FC0F8\r
+:1002D00083B18093B1005BC08091CA0090E0FC01C3\r
 :1002E0003297E632F10508F054C0E65DFF4F0C94FA\r
-:1002F0009C0B8AB59BB54AC088B599B547C083B5F4\r
-:1003000045C08CB743C08091BD009091BE0004C031\r
-:100310008091BB009091BC0090937D0080937C0005\r
-:1003200093B935C08091B9009091BA00F5CF809112\r
-:10033000B7009091B800F0CF80917C0027C08091E9\r
-:10034000AD009091AE00ECCF8091AD009091AE00E9\r
-:100350001DC08091AB009091AC00E2CF8091AB00CA\r
-:100360009091AC0013C08091A9009091AA00D8CFC1\r
-:100370008091A9009091AA0009C08091A700909156\r
-:10038000A800CECF8091A7009091A80083B985ECFA\r
-:1003900002C013B885E886BF8091C8008F5F809344\r
-:1003A000C80005C086B78B7E86BF85EC86BFFF91EF\r
+:1002F000710B8AB59BB54AC088B599B547C083B51F\r
+:1003000045C08CB743C08091BF009091C00004C02D\r
+:100310008091BD009091BE0090939D0080939C00C1\r
+:1003200093B935C08091BB009091BC00F5CF80910E\r
+:10033000B9009091BA00F0CF80919C0027C08091C5\r
+:10034000AF009091B000ECCF8091AF009091B000E1\r
+:100350001DC08091AD009091AE00E2CF8091AD00C4\r
+:100360009091AE0013C08091AB009091AC00D8CFBB\r
+:100370008091AB009091AC0009C08091A900909150\r
+:10038000AA00CECF8091A9009091AA0083B985ECF4\r
+:1003900002C013B885E886BF8091CA008F5F809342\r
+:1003A000CA0005C086B78B7E86BF85EC86BFFF91ED\r
 :1003B000EF91BF91AF919F918F912F910F900FBEB1\r
-:1003C0000F901F9018951F920F920FB60F92112445\r
-:1003D0004F925F926F927F928F929F92AF92BF9255\r
-:1003E000CF92DF92EF92FF920F931F932F933F9341\r
-:1003F0004F935F936F937F938F939F93AF93BF932D\r
-:10040000CF93DF93EF93FF9399B390FD02C080E009\r
-:1004100001C083E091FF02C091E0892720917B0019\r
-:10042000281B20FF1FC080937B008091B2002270A8\r
-:10043000882359F08091BD009091BE0041E050E0CA\r
-:10044000421B5109840F951F09C08091BD009091F6\r
-:10045000BE0030E021503109820F931F9093BE00FF\r
-:100460008093BD0099B39695969590FD02C080E06B\r
-:1004700001C083E091FF02C091E0892720917A00BA\r
-:10048000281B20FF1FC080937A008091B100422F6B\r
-:100490004270882349F08091BB009091BC00242FCA\r
-:1004A00030E02150310908C08091BB009091BC0020\r
-:1004B00021E030E0241B3109820F931F9093BC0090\r
-:1004C0008093BB0099B392959F7090FD02C080E02D\r
-:1004D00001C083E091FF02C091E08927209179005B\r
-:1004E000281B20FF1FC0809379008091B000422F0D\r
-:1004F0004270882349F08091B9009091BA00242F6E\r
-:1005000030E02150310908C08091B9009091BA00C3\r
-:1005100021E030E0241B3109820F931F9093BA0031\r
-:100520008093B90099B3929596959695937090FDA6\r
-:1005300002C080E001C083E0927011F091E0892751\r
-:1005400020917800281B20FF1FC0809378008091A5\r
-:10055000AF00422F4270882349F08091B7009091FC\r
-:10056000B800242F30E02150310908C08091B70035\r
-:100570009091B80021E030E0241B3109820F931FD5\r
-:100580009093B8008093B7008091B600813009F055\r
-:10059000C3C06091BD007091BE00809185009091B4\r
-:1005A0008600681B790B882777FD8095982F0E941D\r
-:1005B0008E0A2AE037ED43EA5CE30E94F3090E94C9\r
-:1005C0005B0A7093A6006093A5008091AD009091A6\r
-:1005D000AE00892B29F41092C6001092C50094C079\r
-:1005E000C091AD00D091AE008091A5009091A60081\r
-:1005F000C81BD90B8091930090919400A091950015\r
-:10060000B09196004E01AA2497FCA094BA2C880DB4\r
-:10061000991DAA1DBB1D8093930090939400A093F5\r
-:100620009500B09396006091C5007091C60040900F\r
-:100630009300509094006090950070909600009107\r
-:100640009D0010919E00882777FD8095982F0E942D\r
-:100650008E0A6B017C01C501B4010E948E0A20E064\r
-:1006600030E040E251E40E941A0B4B015C01C301EF\r
-:10067000B2010E948E0A20E030E0A9010E941A0B0C\r
-:100680009B01AC01C501B4010E948F094B015C01C3\r
-:10069000BE01601B710B882777FD8095982F0E9403\r
-:1006A0008E0A20E030E0A9010E941A0B9B01AC01E8\r
-:1006B000C501B4010E948F099B01AC01C701B601BD\r
-:1006C0000E948F090E945B0A7093C6006093C50068\r
-:1006D000D0939E00C0939D008091C5009091C6006C\r
-:1006E0008F3F910521F01CF08FEF90E009C08091C1\r
-:1006F000C5009091C60081309F4F34F481E09FEF98\r
-:100700009093C6008093C5008091BD009091BE007B\r
-:1007100090938600809385008091B500813009F028\r
-:10072000C3C06091BB007091BC0080918300909128\r
-:100730008400681B790B882777FD8095982F0E948D\r
-:100740008E0A2AE037ED43EA5CE30E94F3090E9437\r
-:100750005B0A7093A4006093A3008091AB0090911A\r
-:10076000AC00892B29F41092C4001092C30094C0ED\r
-:10077000C091AB00D091AC008091A3009091A400F7\r
-:10078000C81BD90B80918F0090919000A09191008F\r
-:10079000B09192004E01AA2497FCA094BA2C880D27\r
-:1007A000991DAA1DBB1D80938F0090939000A0936C\r
-:1007B0009100B09392006091C3007091C40040908A\r
-:1007C0008F00509090006090910070909200009186\r
-:1007D0009B0010919C00882777FD8095982F0E94A0\r
-:1007E0008E0A6B017C01C501B4010E948E0A20E0D3\r
-:1007F00030E040E251E40E941A0B4B015C01C3015E\r
-:10080000B2010E948E0A20E030E0A9010E941A0B7A\r
-:100810009B01AC01C501B4010E948F094B015C0131\r
-:10082000BE01601B710B882777FD8095982F0E9471\r
-:100830008E0A20E030E0A9010E941A0B9B01AC0156\r
-:10084000C501B4010E948F099B01AC01C701B6012B\r
-:100850000E948F090E945B0A7093C4006093C300DA\r
-:10086000D0939C00C0939B008091C3009091C400E2\r
-:100870008F3F910521F01CF08FEF90E009C080912F\r
-:10088000C3009091C40081309F4F34F481E09FEF0A\r
-:100890009093C4008093C3008091BB009091BC00F2\r
-:1008A00090938400809383008091B400813009F09C\r
-:1008B000C3C06091B9007091BA008091810090919D\r
-:1008C0008200681B790B882777FD8095982F0E94FE\r
-:1008D0008E0A2AE037ED43EA5CE30E94F3090E94A6\r
-:1008E0005B0A7093A2006093A1008091A90090918F\r
-:1008F000AA00892B29F41092C2001092C10094C062\r
-:10090000C091A900D091AA008091A1009091A2006D\r
-:10091000C81BD90B80918B0090918C00A0918D0009\r
-:10092000B0918E004E01AA2497FCA094BA2C880D99\r
-:10093000991DAA1DBB1D80938B0090938C00A093E2\r
-:100940008D00B0938E006091C1007091C200409004\r
-:100950008B0050908C0060908D0070908E00009104\r
-:10096000990010919A00882777FD8095982F0E9412\r
-:100970008E0A6B017C01C501B4010E948E0A20E041\r
-:1009800030E040E251E40E941A0B4B015C01C301CC\r
-:10099000B2010E948E0A20E030E0A9010E941A0BE9\r
-:1009A0009B01AC01C501B4010E948F094B015C01A0\r
-:1009B000BE01601B710B882777FD8095982F0E94E0\r
-:1009C0008E0A20E030E0A9010E941A0B9B01AC01C5\r
-:1009D000C501B4010E948F099B01AC01C701B6019A\r
-:1009E0000E948F090E945B0A7093C2006093C1004D\r
-:1009F000D0939A00C09399008091C1009091C20059\r
-:100A00008F3F910521F01CF08FEF90E009C080919D\r
-:100A1000C1009091C20081309F4F34F481E09FEF7C\r
-:100A20009093C2008093C1008091B9009091BA0068\r
-:100A300090938200809381008091B300813009F00F\r
-:100A4000C3C06091B7007091B80080917F00909111\r
-:100A50008000681B790B882777FD8095982F0E946E\r
-:100A60008E0A2AE037ED43EA5CE30E94F3090E9414\r
-:100A70005B0A7093A00060939F008091A700909103\r
-:100A8000A800892B29F41092C0001092BF0094C0D6\r
-:100A9000C091A700D091A80080919F009091A000E4\r
-:100AA000C81BD90B8091870090918800A091890084\r
-:100AB000B0918A004E01AA2497FCA094BA2C880D0C\r
-:100AC000991DAA1DBB1D8093870090938800A09359\r
-:100AD0008900B0938A006091BF007091C00040907F\r
-:100AE0008700509088006090890070908A00009183\r
-:100AF000970010919800882777FD8095982F0E9485\r
-:100B00008E0A6B017C01C501B4010E948E0A20E0AF\r
-:100B100030E040E251E40E941A0B4B015C01C3013A\r
-:100B2000B2010E948E0A20E030E0A9010E941A0B57\r
-:100B30009B01AC01C501B4010E948F094B015C010E\r
-:100B4000BE01601B710B882777FD8095982F0E944E\r
-:100B50008E0A20E030E0A9010E941A0B9B01AC0133\r
-:100B6000C501B4010E948F099B01AC01C701B60108\r
-:100B70000E948F090E945B0A7093C0006093BF00BF\r
-:100B8000D0939800C09397008091BF009091C000CF\r
-:100B90008F3F910521F01CF08FEF90E009C080910C\r
-:100BA000BF009091C00081309F4F34F481E09FEFEF\r
-:100BB0009093C0008093BF008091B7009091B800DF\r
-:100BC0009093800080937F00FF91EF91DF91CF9110\r
-:100BD000BF91AF919F918F917F916F915F914F9155\r
-:100BE0003F912F911F910F91FF90EF90DF90CF9049\r
-:100BF000BF90AF909F908F907F906F905F904F903D\r
-:100C00000F900FBE0F901F9018951F920F920FB666\r
-:100C10000F9211248F939F93EF93FF935F9B16C0C6\r
-:100C2000E091CB00F091CC008CB1808381E0E03387\r
-:100C3000F80730F43196F093CC00E093CB0006C077\r
-:100C40008DEC90E09093CC008093CB00FF91EF91DE\r
-:100C50009F918F910F900FBE0F901F9018959C0140\r
-:100C60008AB188618AB9579A80B5866080BD40E0B4\r
-:100C700050E084E0220F331F441F551F8A95D1F79F\r
-:100C800060E079E08DE390E00E947D0BDA01C9011C\r
-:100C90000197A109B109892F9A2FAB2FBB27A7FD77\r
-:100CA000BA9580BD215029B98DEC90E09093CA008F\r
-:100CB0008093C9009093CC008093CB0008955D9BF6\r
-:100CC000FECFFC0180818CB90895CF93DF931F92F2\r
-:100CD000CDB7DEB78983CE0101960E945F0680E022\r
-:100CE00090E00F90DF91CF910895CF93DF93EC01C7\r
-:100CF000CE012196FC012081222319F00E945F067B\r
-:100D0000F7CFDF91CF9108955F9BFECF8CB190E03C\r
-:100D100008950C94840669E876E085E696E00C94E4\r
-:100D2000CF0BCF93DF93FC01E253FF4FA081B18142\r
-:100D3000EC01C453DF4F28813981A217B307A1F01A\r
-:100D40005D9B12C02C912CB920813181AC0145539F\r
-:100D50005F4F2417350718F42F5F3F4F03C09C01E6\r
-:100D600028593F4F31832083E091C900F091CA0098\r
-:100D70002091CB003091CC002E173F07C1F1DC0150\r
-:100D8000AC59BF4FCD91DC911197208128836D9193\r
-:100D90007C9111979C012B523F4FE9013881EB0167\r
-:100DA0002881321307C09C012C523F4FE901488132\r
-:100DB0004F5F48839C012D593F4F6217730728F4FA\r
-:100DC000EB012196CD93DC9302C08D939C93D1E0EF\r
-:100DD000E033FD0730F43196F093CA00E093C90088\r
-:100DE00006C08DEC90E09093CA008093C900DF911B\r
-:100DF000CF91089588E087BB8CEF84BB8CEB81BBDF\r
-:100E00001092C70080E895E20E942F060E948B0690\r
-:100E100080E582B986B78B7E86BF85EC86BF81EA86\r
-:100E20008FBD89E08EBD1BBC1ABC19BC18BC89E6FD\r
-:100E300085BD13BC83BF1CBE8EE690E00E944C0CA7\r
-:100E400085B78F7885BF84E089BF7894C0E0D8E10A\r
-:100E50008091C8008F3F39F48091C700853A19F41A\r
-:100E6000F894FE0109958091C5009091C6002091EB\r
-:100E700066003091670028173907B9F18091C500E5\r
-:100E80009091C600892B19F485B38C6017C08091AE\r
-:100E9000B200811107C08091C5009091C60018165C\r
-:100EA000190654F08091B200882351F08091C5005A\r
-:100EB0009091C60097FF04C085B3837F85BB02C0B5\r
-:100EC000AA98AB9A8091C5009091C6009093670054\r
-:100ED000809366008091C5009091C60097FF03C083\r
-:100EE0009195819591099BBD8ABD8091C300909198\r
-:100EF000C400209164003091650028173907B9F1CA\r
-:100F00008091C3009091C400892B19F485B380634C\r
-:100F100017C08091B100811107C08091C3009091EA\r
-:100F2000C4001816190654F08091B100882351F0BE\r
-:100F30008091C3009091C40097FF04C085B38F7C5B\r
-:100F400085BB02C0AC98AD9A8091C3009091C4005B\r
-:100F500090936500809364008091C3009091C400D9\r
-:100F600097FF03C091958195910999BD88BD8091A6\r
-:100F7000C1009091C2002091620030916300281757\r
-:100F80003907B1F18091C1009091C200892B19F409\r
-:100F900085B3806C17C08091B000811107C080912B\r
-:100FA000C1009091C2001816190654F08091B0004B\r
-:100FB000882351F08091C1009091C20097FF04C036\r
-:100FC00085B38F7385BB02C0AE98AF9A8091C10084\r
-:100FD0009091C20090936300809362008091C10061\r
-:100FE0009091C20097FF03C091958195910983BDAF\r
-:100FF0008091BF009091C00020916000309161000D\r
-:1010000028173907B1F18091BF009091C000892B5A\r
-:1010100019F482B38C6017C08091AF00811107C0B2\r
-:101020008091BF009091C0001816190654F080916D\r
-:10103000AF00882351F08091BF009091C00097FFCE\r
-:1010400004C082B3837F82BB02C09298939A80913E\r
-:10105000BF009091C00090936100809360008091E8\r
-:10106000BF009091C00097FF03C0919581959109B1\r
-:101070008CBF85B7806885BF889585B78F7785BF1A\r
-:10108000E7CE6F927F929F92AF92BF92CF92DF9204\r
-:10109000EF92FF920F931F93CF93DF93CDB7DEB7FD\r
-:1010A0002C970FB6F894DEBF0FBECDBF8C017B012D\r
-:1010B0003A01FC0117821682838181FF19C1CE019A\r
-:1010C00001965C01F801D380F701D3FC2591D3FE92\r
-:1010D00021917F01222309F407C1253249F4D3FC71\r
-:1010E0002591D3FE21917F01253211F0912C1BC057\r
-:1010F000B801822F90E00E941A0C63013601E2CF02\r
-:10110000222309F4F1C0622F70E087EA90E02C8777\r
-:101110000E94C40B2C85892B49F0F701D3FC259143\r
-:10112000D3FE21917F0197FEEBCF0CC0233221F437\r
-:10113000F92DF0619F2EF1CF2C3639F4292D20683E\r
-:10114000922EEBCF222309F4CFC0622F70E080EA09\r
-:1011500090E02C870E94C40B2C85892B41F0630101\r
-:10116000F4E0CF0ED11CB8018FE390E012C023361B\r
-:1011700041F0233789F0233521F5F92DF1609F2EB9\r
-:101180000BC0630122E0C20ED11CB801F3018081C3\r
-:1011900091810E941A0CB2CF630122E0C20ED11CD1\r
-:1011A000F30160807180F30190FC859190FE819144\r
-:1011B0003F01882309F4A2CFB80190E00E941A0CE5\r
-:1011C000F2CF243611F0293639F5630197FE09C0B4\r
-:1011D000F4E0CF0ED11CF301608171818281938193\r
-:1011E0000AC0F2E0CF0ED11CF30160817181882723\r
-:1011F00077FD8095982FF92DFF7E9F2E97FF09C0D0\r
-:1012000090958095709561957F4F8F4F9F4FF064BB\r
-:101210009F2E2AE030E038C02037A1F040F4283576\r
-:10122000D1F02F3609F060C028E030E019C0253732\r
-:1012300019F0283751F058C0292D2F7E922E2AE020\r
-:1012400030E00EC0892D8061982E992D9462992EE0\r
-:1012500020E130E005C0E92DE4609E2E20E132E07F\r
-:10126000630197FE09C0F4E0CF0ED11CF301608149\r
-:1012700071818281938108C0F2E0CF0ED11CF3010D\r
-:101280006081718180E090E0A5010E94790C782E48\r
-:101290007A1896FE05C0B8018DE290E00E941A0C03\r
-:1012A00094FE16C0FE01E70DF11D8081803381F0B0\r
-:1012B000B80180E390E00E941A0C92FE09C0292D2B\r
-:1012C0002072822F90E0B801885A9F4F0E941A0C1A\r
-:1012D0007A94F501E70DF11D8081B80190E00E943C\r
-:1012E0001A0C7110F5CF0ACFF8018681978102C0E0\r
-:1012F0008FEF9FEF2C960FB6F894DEBF0FBECDBFD9\r
-:10130000DF91CF911F910F91FF90EF90DF90CF90E1\r
-:10131000BF90AF909F907F906F9008955058BB27DB\r
-:10132000AA270ED04DC13ED130F043D120F031F488\r
-:101330009F3F11F41EF433C10EF4E095E7FB29C181\r
-:10134000E92F4FD180F3BA17620773078407950717\r
-:1013500018F071F49EF567C10EF4E0950B2EBA2FCC\r
-:10136000A02D0B01B90190010C01CA01A0011124AB\r
-:10137000FF27591B99F0593F50F4503E68F11A1657\r
-:10138000F040A22F232F342F4427585FF3CF4695E8\r
-:1013900037952795A795F0405395C9F77EF41F160A\r
-:1013A000BA0B620B730B840BBAF09150A1F0FF0FD4\r
-:1013B000BB1F661F771F881FC2F70EC0BA0F621FC0\r
-:1013C000731F841F48F4879577956795B795F795B0\r
-:1013D0009E3F08F0B3CF9395880F08F09927EE0F42\r
-:1013E0009795879508950CD0EBC0E3D040F0DAD004\r
-:1013F00030F021F45F3F19F0CCC0511115C1CFC0BE\r
-:10140000F0D098F39923C9F35523B1F3951B550BED\r
-:10141000BB27AA2762177307840738F09F5F5F4FC7\r
-:10142000220F331F441FAA1FA9F333D00E2E3AF008\r
-:10143000E0E830D091505040E695001CCAF729D022\r
-:10144000FE2F27D0660F771F881FBB1F2617370771\r
-:101450004807AB07B0E809F0BB0B802DBF01FF27A1\r
-:1014600093585F4F2AF09E3F510568F092C0DCC050\r
-:101470005F3FECF3983EDCF3869577956795B795DB\r
-:10148000F7959F5FC9F7880F911D9695879597F9F6\r
-:101490000895E1E0660F771F881FBB1F621773076F\r
-:1014A0008407BA0720F0621B730B840BBA0BEE1F84\r
-:1014B00088F7E095089504D06894B111B5C00895F7\r
-:1014C00098D088F09F5790F0B92F9927B751A0F086\r
-:1014D000D1F0660F771F881F991F1AF0BA95C9F7C8\r
-:1014E00012C0B13081F09FD0B1E008959CC0672F49\r
-:1014F000782F8827B85F39F0B93FCCF38695779578\r
-:101500006795B395D9F73EF4909580957095619560\r
-:101510007F4F8F4F9F4F0895E89409C097FB3EF48B\r
-:1015200090958095709561957F4F8F4F9F4F992330\r
-:10153000A9F0F92F96E9BB279395F69587957795AE\r
-:101540006795B795F111F8CFFAF4BB0F11F460FF6E\r
-:101550001BC06F5F7F4F8F4F9F4F16C0882311F0C6\r
-:1015600096E911C0772321F09EE8872F762F05C0DA\r
-:10157000662371F096E8862F70E060E02AF09A9575\r
-:10158000660F771F881FDAF7880F9695879597F96A\r
-:10159000089597F99F6780E870E060E008959FEFF5\r
-:1015A00080EC089500240A941616170618060906FA\r
-:1015B000089500240A9412161306140605060895C9\r
-:1015C000092E0394000C11F4882352F0BB0F40F451\r
-:1015D000BF2B11F460FF04C06F5F7F4F8F4F9F4F91\r
-:1015E000089557FD9058440F551F59F05F3F71F013\r
-:1015F0004795880F97FB991F61F09F3F79F087957A\r
-:101600000895121613061406551FF2CF4695F1DF02\r
-:1016100008C0161617061806991FF1CF8695710592\r
-:10162000610508940895E894BB2766277727CB01C6\r
-:1016300097F908950BD0C4CFB5DF28F0BADF18F0C2\r
-:10164000952309F0A6CFABCF1124EECFCADFA0F3CC\r
-:10165000959FD1F3950F50E0551F629FF001729F47\r
-:10166000BB27F00DB11D639FAA27F00DB11DAA1F66\r
-:10167000649F6627B00DA11D661F829F2227B00DB3\r
-:10168000A11D621F739FB00DA11D621F839FA00D3E\r
-:10169000611D221F749F3327A00D611D231F849F8E\r
-:1016A000600D211D822F762F6A2F11249F575040E5\r
-:1016B0008AF0E1F088234AF0EE0FFF1FBB1F661F80\r
-:1016C000771F881F91505040A9F79E3F510570F039\r
-:1016D00060CFAACF5F3FECF3983EDCF38695779519\r
-:1016E0006795B795F795E7959F5FC1F7FE2B880F34\r
-:1016F000911D9695879597F90895052E97FB1EF4F1\r
-:1017000000940E94940B57FD07D00E94A20B07FC87\r
-:1017100003D04EF40C94940B509540953095219540\r
-:101720003F4F4F4F5F4F089590958095709561950D\r
-:101730007F4F8F4F9F4F0895EE0FFF1F0590F4913D\r
-:10174000E02D0994A1E21A2EAA1BBB1BFD010DC0BE\r
-:10175000AA1FBB1FEE1FFF1FA217B307E407F50761\r
-:1017600020F0A21BB30BE40BF50B661F771F881F3D\r
-:10177000991F1A9469F760957095809590959B01D3\r
-:10178000AC01BD01CF010895FC010590061621F0C2\r
-:101790000020D9F7C00108953197CF0108950F9324\r
-:1017A0001F93CF93DF93EC018B01009731F4611508\r
-:1017B000710519F480E090E038C06EE070E081E0DF\r
-:1017C00090E00E94D70CFC010097A1F380E883838E\r
-:1017D0000115110571F01387028781E883838091D9\r
-:1017E000340190913501892B21F4F0933501E09378\r
-:1017F00034012097C9F0D187C087838182608383B9\r
-:101800008091360190913701892B71F4F093370163\r
-:10181000E09336018091380190913901892B21F4B0\r
-:10182000F0933901E0933801CF01DF91CF911F91FF\r
-:101830000F9108950F931F93CF93DF93182F092FC4\r
-:10184000EB018B8181FD03C08FEF9FEF20C082FFF2\r
-:1018500010C04E815F812C813D81421753077CF47B\r
-:10186000E881F9819F012F5F3F4F398328831083DF\r
-:1018700006C0E885F985812F0995892B29F72E81E6\r
-:101880003F812F5F3F4F3F832E83812F902FDF912A\r
-:10189000CF911F910F9108950F931F93CF93DF93D3\r
-:1018A000E0913601F0913701238121FF1BC0EC014B\r
-:1018B00000E010E089916091360170913701DB0101\r
-:1018C0001896ED91FC911997882331F00995892B91\r
-:1018D00089F30FEF1FEFEECF8AE00995892B11F402\r
-:1018E000C80102C08FEF9FEFDF91CF911F910F9141\r
-:1018F0000895FA01AA27283051F1203181F1E894A6\r
-:101900006F936E7F6E5F7F4F8F4F9F4FAF4FB1E0F2\r
-:101910003ED0B4E03CD0670F781F891F9A1FA11DED\r
-:10192000680F791F8A1F911DA11D6A0F711D811DEE\r
-:10193000911DA11D20D009F468943F912AE0269FB3\r
-:1019400011243019305D3193DEF6CF010895462F12\r
-:101950004770405D4193B3E00FD0C9F7F6CF462FF3\r
-:101960004F70405D4A3318F0495D31FD405241935C\r
-:1019700002D0A9F7EACFB4E0A69597958795779519\r
-:101980006795BA95C9F700976105710508959B01A0\r
-:10199000AC010A2E06945795479537952795BA9529\r
-:1019A000C9F7620F731F841F951FA01D08950F9321\r
-:1019B0001F93CF93DF93869F8001879F100D969F83\r
-:1019C000100D1124C8010E94F30CEC01009729F0BE\r
-:1019D000A80160E070E00E941A0ECE01DF91CF9165\r
-:1019E0001F910F910895CF93DF938230910510F4EA\r
-:1019F00082E090E0E0913C01F0913D0120E030E098\r
-:101A0000A0E0B0E0309739F1408151814817590783\r
-:101A1000B8F04817590771F482819381109729F023\r
-:101A200013969C938E9312972CC090933D018093B4\r
-:101A30003C0127C02115310531F04217530718F03A\r
-:101A4000A901DB0101C0EF019A01BD01DF010280A4\r
-:101A5000F381E02DD7CF21153105F9F0281B390B83\r
-:101A60002430310580F48A819B816115710521F054\r
-:101A7000FB019383828304C090933D0180933C01DA\r
-:101A8000FE01329644C0FE01E20FF31F8193919351\r
-:101A900022503109398328833AC020913A0130918C\r
-:101AA0003B01232B41F420916A0030916B0030936D\r
-:101AB0003B0120933A012091680030916900211583\r
-:101AC000310541F42DB73EB740916C0050916D0047\r
-:101AD000241B350BE0913A01F0913B01E217F3072B\r
-:101AE000A0F42E1B3F0B2817390778F0AC014E5F8E\r
-:101AF0005F4F2417350748F04E0F5F1F50933B018F\r
-:101B000040933A018193919302C0E0E0F0E0CF016D\r
-:101B1000DF91CF910895CF93DF93009709F487C0A9\r
-:101B2000FC01329713821282C0913C01D0913D0199\r
-:101B3000209781F420813181280F391F80913A014B\r
-:101B400090913B018217930779F5F0933B01E09365\r
-:101B50003A016DC0DE0120E030E0AE17BF0750F45F\r
-:101B600012964D915C9113979D014115510509F114\r
-:101B7000DA01F3CFB383A28340815181840F951F93\r
-:101B80008A179B0771F48D919C911197840F951F73\r
-:101B900002969183808312968D919C9113979383E3\r
-:101BA00082832115310529F4F0933D01E0933C0136\r
-:101BB0003EC0D9011396FC93EE9312974D915D911F\r
-:101BC000A40FB51FEA17FB0779F480819181840F78\r
-:101BD000951F0296D90111969C938E9382819381D1\r
-:101BE00013969C938E931297E0E0F0E08A819B819C\r
-:101BF000009719F0FE01EC01F9CFCE010296288181\r
-:101C00003981820F931F20913A0130913B012817AF\r
-:101C1000390769F4309729F410923D0110923C0184\r
-:101C200002C013821282D0933B01C0933A01DF912C\r
-:101C3000CF910895DC0101C06D9341505040E0F711\r
-:061C40000895F894FFCFA7\r
-:101C4600008000800080008000003E0120000D0A18\r
-:081C560053746172740D00006B\r
+:1003C0000F901F9018954F925F926F927F928F922D\r
+:1003D0009F92AF92BF92CF92DF92EF92FF92CF9314\r
+:1003E000DF938091B800813009F0B7C06091BF0001\r
+:1003F0007091C00080919A0090919B00681B790BCE\r
+:10040000882777FD8095982F0E94630A2AE037EDB0\r
+:1004100043EA5CE30E94C8090E94300A7093A60078\r
+:100420006093A5002091AF003091B000232B29F4F8\r
+:100430001092C8001092C70088C0C091AF00D09140\r
+:10044000B000C61BD70B4E01AA2497FCA094BA2C6F\r
+:10045000C0909600D0909700E0909800F09099009E\r
+:10046000C80CD91CEA1CFB1CC0929600D0929700C5\r
+:10047000E0929800F09299006091C7007091C800D6\r
+:10048000882777FD8095982F0E94630A2B013C01F5\r
+:10049000C501B4010E94630A20E030E040E251E46B\r
+:1004A0000E94EF0A4B015C01C701B6010E94630A7A\r
+:1004B00020E030E0A9010E94EF0A9B01AC01C501D8\r
+:1004C000B4010E9464096B017C01809194009091B9\r
+:1004D0009500BE01681B790B882777FD8095982FC2\r
+:1004E0000E94630A20E030E0A9010E94EF0A9B010C\r
+:1004F000AC01C701B6010E9464099B01AC01C301B4\r
+:10050000B2010E9464090E94300A7093C80060938F\r
+:10051000C700D0939500C09394008091C70090913C\r
+:10052000C8008F3F910521F01CF08FEF90E009C0CB\r
+:100530008091C7009091C80081309F4F34F481E0D2\r
+:100540009FEF9093C8008093C7008091BF00909167\r
+:10055000C00090939B0080939A008091B7008130F7\r
+:1005600009F0B7C06091BD007091BE00809192000B\r
+:1005700090919300681B790B882777FD8095982FC1\r
+:100580000E94630A2AE037ED43EA5CE30E94C8094F\r
+:100590000E94300A7093A4006093A3002091AD00E4\r
+:1005A0003091AE00232B29F41092C6001092C500A2\r
+:1005B00088C0C091AD00D091AE00C61BD70B4E01D4\r
+:1005C000AA2497FCA094BA2CC0908E00D0908F00E3\r
+:1005D000E0909000F0909100C80CD91CEA1CFB1C24\r
+:1005E000C0928E00D0928F00E0929000F092910025\r
+:1005F0006091C5007091C600882777FD8095982F7F\r
+:100600000E94630A2B013C01C501B4010E94630AE8\r
+:1006100020E030E040E251E40E94EF0A4B015C012F\r
+:10062000C701B6010E94630A20E030E0A9010E94E0\r
+:10063000EF0A9B01AC01C501B4010E9464096B0182\r
+:100640007C0180918C0090918D00BE01681B790B1C\r
+:10065000882777FD8095982F0E94630A20E030E07C\r
+:10066000A9010E94EF0A9B01AC01C701B6010E94DB\r
+:1006700064099B01AC01C301B2010E9464090E949C\r
+:10068000300A7093C6006093C500D0938D00C0936C\r
+:100690008C008091C5009091C6008F3F910521F09C\r
+:1006A0001CF08FEF90E009C08091C5009091C600CA\r
+:1006B00081309F4F34F481E09FEF9093C600809388\r
+:1006C000C5008091BD009091BE00909393008093EF\r
+:1006D00092008091B600813009F0B7C06091BB00F4\r
+:1006E0007091BC0080918A0090918B00681B790BFF\r
+:1006F000882777FD8095982F0E94630A2AE037EDBE\r
+:1007000043EA5CE30E94C8090E94300A7093A20089\r
+:100710006093A1002091AB003091AC00232B29F411\r
+:100720001092C4001092C30088C0C091AB00D09159\r
+:10073000AC00C61BD70B4E01AA2497FCA094BA2C80\r
+:10074000C0908600D0908700E0908800F0908900EB\r
+:10075000C80CD91CEA1CFB1CC0928600D0928700F2\r
+:10076000E0928800F09289006091C3007091C4000B\r
+:10077000882777FD8095982F0E94630A2B013C0102\r
+:10078000C501B4010E94630A20E030E040E251E478\r
+:100790000E94EF0A4B015C01C701B6010E94630A87\r
+:1007A00020E030E0A9010E94EF0A9B01AC01C501E5\r
+:1007B000B4010E9464096B017C01809184009091D6\r
+:1007C0008500BE01681B790B882777FD8095982FDF\r
+:1007D0000E94630A20E030E0A9010E94EF0A9B0119\r
+:1007E000AC01C701B6010E9464099B01AC01C301C1\r
+:1007F000B2010E9464090E94300A7093C4006093A1\r
+:10080000C300D0938500C09384008091C300909171\r
+:10081000C4008F3F910521F01CF08FEF90E009C0DC\r
+:100820008091C3009091C40081309F4F34F481E0E7\r
+:100830009FEF9093C4008093C3008091BB00909180\r
+:10084000BC0090938B0080938A008091B50081302A\r
+:1008500009F0B7C06091B9007091BA008091820030\r
+:1008600090918300681B790B882777FD8095982FDE\r
+:100870000E94630A2AE037ED43EA5CE30E94C8095C\r
+:100880000E94300A7093A00060939F002091A900FD\r
+:100890003091AA00232B29F41092C2001092C100BB\r
+:1008A00088C0C091A900D091AA00C61BD70B4E01E9\r
+:1008B000AA2497FCA094BA2CC0907E00D0907F0010\r
+:1008C000E0908000F0908100C80CD91CEA1CFB1C51\r
+:1008D000C0927E00D0927F00E0928000F092810072\r
+:1008E0006091C1007091C200882777FD8095982F94\r
+:1008F0000E94630A2B013C01C501B4010E94630AF6\r
+:1009000020E030E040E251E40E94EF0A4B015C013C\r
+:10091000C701B6010E94630A20E030E0A9010E94ED\r
+:10092000EF0A9B01AC01C501B4010E9464096B018F\r
+:100930007C0180917C0090917D00BE01681B790B49\r
+:10094000882777FD8095982F0E94630A20E030E089\r
+:10095000A9010E94EF0A9B01AC01C701B6010E94E8\r
+:1009600064099B01AC01C301B2010E9464090E94A9\r
+:10097000300A7093C2006093C100D0937D00C09391\r
+:100980007C008091C1009091C2008F3F910521F0C1\r
+:100990001CF08FEF90E009C08091C1009091C200DF\r
+:1009A00081309F4F34F481E09FEF9093C200809399\r
+:1009B000C1008091B9009091BA0090938300809318\r
+:1009C0008200DF91CF91FF90EF90DF90CF90BF90AA\r
+:1009D000AF909F908F907F906F905F904F90089511\r
+:1009E0001F920F920FB60F9211242F933F934F93A4\r
+:1009F0008F939F9399B390FD02C080E001C083E084\r
+:100A000091FF02C091E0892720917B00281B20FFE5\r
+:100A10001FC080937B008091B400422F42708823D6\r
+:100A200049F08091BF009091C000242F30E0215008\r
+:100A3000310908C08091BF009091C00021E030E0F2\r
+:100A4000241B3109820F931F9093C0008093BF0035\r
+:100A500099B39695969590FD02C080E001C083E021\r
+:100A600091FF02C091E0892720917A00281B20FF86\r
+:100A70001FC080937A008091B300422F4270882378\r
+:100A800049F08091BD009091BE00242F30E02150AC\r
+:100A9000310908C08091BD009091BE0021E030E096\r
+:100AA000241B3109820F931F9093BE008093BD00D9\r
+:100AB00099B392959F7090FD02C080E001C083E0E1\r
+:100AC00091FF02C091E0892720917900281B20FF27\r
+:100AD0001FC0809379008091B200422F427088231A\r
+:100AE00049F08091BB009091BC00242F30E0215050\r
+:100AF000310908C08091BB009091BC0021E030E03A\r
+:100B0000241B3109820F931F9093BC008093BB007C\r
+:100B100099B3929596959695937090FD02C080E05A\r
+:100B200001C083E0927011F091E089272091780054\r
+:100B3000281B20FF1FC0809378008091B100422FB6\r
+:100B40004270882349F08091B9009091BA00242F17\r
+:100B500030E02150310908C08091B9009091BA006D\r
+:100B600021E030E0241B3109820F931F9093BA00DB\r
+:100B70008093B9008091A7009091A800019690936E\r
+:100B8000A8008093A7009F918F914F913F912F9143\r
+:100B90000F900FBE0F901F9018951F920F920FB6D7\r
+:100BA0000F9211248F939F93EF93FF935F9B16C037\r
+:100BB000E091CD00F091CE008CB1808381E0E233F2\r
+:100BC000F80730F43196F093CE00E093CD0006C0E4\r
+:100BD0008FEC90E09093CE008093CD00FF91EF9149\r
+:100BE0009F918F910F900FBE0F901F9018959C01B1\r
+:100BF0008AB188618AB9579A80B5866080BD40E025\r
+:100C000050E084E0220F331F441F551F8A95D1F70F\r
+:100C100060E072E18AE790E00E94520BDA01C901BC\r
+:100C20000197A109B109892F9A2FAB2FBB27A7FDE7\r
+:100C3000BA9580BD215029B98FEC90E09093CC00FB\r
+:100C40008093CB009093CE008093CD0008955D9B60\r
+:100C5000FECFFC0180818CB90895CF93DF931F9262\r
+:100C6000CDB7DEB78983CE0101960E94270680E0CA\r
+:100C700090E00F90DF91CF910895CF93DF93EC0137\r
+:100C8000CE012196FC012081222319F00E94270623\r
+:100C9000F7CFDF91CF9108955F9BFECF8CB190E0AD\r
+:100CA00008950C944C0661E576E08DE296E00C9494\r
+:100CB000A40BCF93DF93FC01E253FF4FA081B181DE\r
+:100CC000EC01C453DF4F28813981A217B307A1F08B\r
+:100CD0005D9B12C02C912CB920813181AC01455310\r
+:100CE0005F4F2417350718F42F5F3F4F03C09C0157\r
+:100CF00028593F4F31832083E091CB00F091CC0005\r
+:100D00002091CD003091CE002E173F07C1F1DC01BC\r
+:100D1000AC59BF4FCD91DC911197208128836D9103\r
+:100D20007C9111979C012B523F4FE9013881EB01D7\r
+:100D30002881321307C09C012C523F4FE9014881A2\r
+:100D40004F5F48839C012D593F4F6217730728F46A\r
+:100D5000EB012196CD93DC9302C08D939C93D1E05F\r
+:100D6000E233FD0730F43196F093CC00E093CB00F2\r
+:100D700006C08FEC90E09093CC008093CB00DF9185\r
+:100D8000CF91089588E087BB8CEF84BB8CEB81BB4F\r
+:100D90001092C90080E895E20E94F7050E94530670\r
+:100DA00080E582B986B78B7E86BF85EC86BF81EFF2\r
+:100DB0008FBD89E08EBD1BBC1ABC19BC18BC89E76D\r
+:100DC00085BD13BC83BF1CBE8EE690E00E94210C43\r
+:100DD00085B78F7885BF84E089BF7894C0E0D8E17B\r
+:100DE0008091CA008F3F39F48091C900853A19F487\r
+:100DF000F894FE0109958091A7009091A8008D308C\r
+:100E0000934030F01092A8001092A7000E94E301D6\r
+:100E10008091C7009091C8002091660030916700D2\r
+:100E200028173907B9F18091C7009091C800892B24\r
+:100E300019F485B38C6017C08091B400811107C08C\r
+:100E40008091C7009091C8001816190654F080913F\r
+:100E5000B400882351F08091C7009091C80097FF9B\r
+:100E600004C085B3837F85BB02C0AA98AB9A8091EA\r
+:100E7000C7009091C80090936700809366008091AE\r
+:100E8000C7009091C80097FF03C091958195910983\r
+:100E90009BBD8ABD8091C5009091C60020916400E1\r
+:100EA0003091650028173907B9F18091C5009091FC\r
+:100EB000C600892B19F485B3806317C08091B300F5\r
+:100EC000811107C08091C5009091C60018161906BF\r
+:100ED00054F08091B300882351F08091C500909127\r
+:100EE000C60097FF04C085B38F7C85BB02C0AC9859\r
+:100EF000AD9A8091C5009091C60090936500809353\r
+:100F000064008091C5009091C60097FF03C0919541\r
+:100F10008195910999BD88BD8091C3009091C400CD\r
+:100F2000209162003091630028173907B1F1809158\r
+:100F3000C3009091C400892B19F485B3806C17C04D\r
+:100F40008091B200811107C08091C3009091C400CC\r
+:100F50001816190654F08091B200882351F0809140\r
+:100F6000C3009091C40097FF04C085B38F7385BB05\r
+:100F700002C0AE98AF9A8091C3009091C400909344\r
+:100F80006300809362008091C3009091C40097FF3A\r
+:100F900003C091958195910983BD8091C100909185\r
+:100FA000C200209160003091610028173907B1F12B\r
+:100FB0008091C1009091C200892B19F482B38C609A\r
+:100FC00017C08091B100811107C08091C10090913C\r
+:100FD000C2001816190654F08091B100882351F010\r
+:100FE0008091C1009091C20097FF04C082B3837FBB\r
+:100FF00082BB02C09298939A8091C1009091C200E6\r
+:1010000090936100809360008091C1009091C20034\r
+:1010100097FF03C09195819591098CBF85B7806832\r
+:1010200085BF889585B78F7785BFDACE6F927F921F\r
+:101030009F92AF92BF92CF92DF92EF92FF920F9367\r
+:101040001F93CF93DF93CDB7DEB72C970FB6F894ED\r
+:10105000DEBF0FBECDBF8C017B013A01FC011782C0\r
+:101060001682838181FF19C1CE0101965C01F801CE\r
+:10107000D380F701D3FC2591D3FE21917F01222358\r
+:1010800009F407C1253249F4D3FC2591D3FE2191FF\r
+:101090007F01253211F0912C1BC0B801822F90E006\r
+:1010A0000E94EF0B63013601E2CF222309F4F1C065\r
+:1010B000622F70E087EA90E02C870E94990B2C85C4\r
+:1010C000892B49F0F701D3FC2591D3FE21917F01B3\r
+:1010D00097FEEBCF0CC0233221F4F92DF0619F2E47\r
+:1010E000F1CF2C3639F4292D2068922EEBCF222314\r
+:1010F00009F4CFC0622F70E080EA90E02C870E9454\r
+:10110000990B2C85892B41F06301F4E0CF0ED11CA3\r
+:10111000B8018FE390E012C0233641F0233789F005\r
+:10112000233521F5F92DF1609F2E0BC0630122E0DC\r
+:10113000C20ED11CB801F301808191810E94EF0B96\r
+:10114000B2CF630122E0C20ED11CF3016080718036\r
+:10115000F30190FC859190FE81913F01882309F471\r
+:10116000A2CFB80190E00E94EF0BF2CF243611F02D\r
+:10117000293639F5630197FE09C0F4E0CF0ED11C82\r
+:10118000F30160817181828193810AC0F2E0CF0E08\r
+:10119000D11CF30160817181882777FD8095982F9C\r
+:1011A000F92DFF7E9F2E97FF09C090958095709531\r
+:1011B00061957F4F8F4F9F4FF0649F2E2AE030E064\r
+:1011C00038C02037A1F040F42835D1F02F3609F08F\r
+:1011D00060C028E030E019C0253719F0283751F0F9\r
+:1011E00058C0292D2F7E922E2AE030E00EC0892D86\r
+:1011F0008061982E992D9462992E20E130E005C0EF\r
+:10120000E92DE4609E2E20E132E0630197FE09C0E3\r
+:10121000F4E0CF0ED11CF301608171818281938152\r
+:1012200008C0F2E0CF0ED11CF3016081718180E033\r
+:1012300090E0A5010E944E0C782E7A1896FE05C00B\r
+:10124000B8018DE290E00E94EF0B94FE16C0FE0103\r
+:10125000E70DF11D8081803381F0B80180E390E0DB\r
+:101260000E94EF0B92FE09C0292D2072822F90E080\r
+:10127000B801885A9F4F0E94EF0B7A94F501E70D51\r
+:10128000F11D8081B80190E00E94EF0B7110F5CF45\r
+:101290000ACFF8018681978102C08FEF9FEF2C96CD\r
+:1012A0000FB6F894DEBF0FBECDBFDF91CF911F9177\r
+:1012B0000F91FF90EF90DF90CF90BF90AF909F90F5\r
+:1012C0007F906F9008955058BB27AA270ED04DC12C\r
+:1012D0003ED130F043D120F031F49F3F11F41EF4A1\r
+:1012E00033C10EF4E095E7FB29C1E92F4FD180F31C\r
+:1012F000BA17620773078407950718F071F49EF513\r
+:1013000067C10EF4E0950B2EBA2FA02D0B01B90189\r
+:1013100090010C01CA01A0011124FF27591B99F06B\r
+:10132000593F50F4503E68F11A16F040A22F232F77\r
+:10133000342F4427585FF3CF469537952795A795C7\r
+:10134000F0405395C9F77EF41F16BA0B620B730B6E\r
+:10135000840BBAF09150A1F0FF0FBB1F661F771FDF\r
+:10136000881FC2F70EC0BA0F621F731F841F48F494\r
+:10137000879577956795B795F7959E3F08F0B3CF1A\r
+:101380009395880F08F09927EE0F97958795089504\r
+:101390000CD0EBC0E3D040F0DAD030F021F45F3F66\r
+:1013A00019F0CCC0511115C1CFC0F0D098F39923DA\r
+:1013B000C9F35523B1F3951B550BBB27AA27621719\r
+:1013C0007307840738F09F5F5F4F220F331F441F5E\r
+:1013D000AA1FA9F333D00E2E3AF0E0E830D0915096\r
+:1013E0005040E695001CCAF729D0FE2F27D0660F83\r
+:1013F000771F881FBB1F261737074807AB07B0E8C2\r
+:1014000009F0BB0B802DBF01FF2793585F4F2AF0D7\r
+:101410009E3F510568F092C0DCC05F3FECF3983E00\r
+:10142000DCF3869577956795B795F7959F5FC9F734\r
+:10143000880F911D9695879597F90895E1E0660FBD\r
+:10144000771F881FBB1F621773078407BA0720F036\r
+:10145000621B730B840BBA0BEE1F88F7E09508959F\r
+:1014600004D06894B111B5C0089598D088F09F5702\r
+:1014700090F0B92F9927B751A0F0D1F0660F771FE0\r
+:10148000881F991F1AF0BA95C9F712C0B13081F0C0\r
+:101490009FD0B1E008959CC0672F782F8827B85F50\r
+:1014A00039F0B93FCCF3869577956795B395D9F721\r
+:1014B0003EF490958095709561957F4F8F4F9F4F2B\r
+:1014C0000895E89409C097FB3EF490958095709537\r
+:1014D00061957F4F8F4F9F4F9923A9F0F92F96E980\r
+:1014E000BB279395F695879577956795B795F111F5\r
+:1014F000F8CFFAF4BB0F11F460FF1BC06F5F7F4F92\r
+:101500008F4F9F4F16C0882311F096E911C07723A3\r
+:1015100021F09EE8872F762F05C0662371F096E8AC\r
+:10152000862F70E060E02AF09A95660F771F881F7B\r
+:10153000DAF7880F9695879597F9089597F99F6739\r
+:1015400080E870E060E008959FEF80EC089500244B\r
+:101550000A941616170618060906089500240A9418\r
+:1015600012161306140605060895092E0394000C9E\r
+:1015700011F4882352F0BB0F40F4BF2B11F460FF2D\r
+:1015800004C06F5F7F4F8F4F9F4F089557FD905856\r
+:10159000440F551F59F05F3F71F04795880F97FB37\r
+:1015A000991F61F09F3F79F08795089512161306F1\r
+:1015B0001406551FF2CF4695F1DF08C01616170620\r
+:1015C0001806991FF1CF8695710561050894089555\r
+:1015D000E894BB2766277727CB0197F908950BD0AE\r
+:1015E000C4CFB5DF28F0BADF18F0952309F0A6CFF5\r
+:1015F000ABCF1124EECFCADFA0F3959FD1F3950FA7\r
+:1016000050E0551F629FF001729FBB27F00DB11D86\r
+:10161000639FAA27F00DB11DAA1F649F6627B00D16\r
+:10162000A11D661F829F2227B00DA11D621F739FFF\r
+:10163000B00DA11D621F839FA00D611D221F749F0D\r
+:101640003327A00D611D231F849F600D211D822F54\r
+:10165000762F6A2F11249F5750408AF0E1F088239B\r
+:101660004AF0EE0FFF1FBB1F661F771F881F9150A8\r
+:101670005040A9F79E3F510570F060CFAACF5F3F61\r
+:10168000ECF3983EDCF3869577956795B795F795DB\r
+:10169000E7959F5FC1F7FE2B880F911D9695879563\r
+:1016A00097F90895052E97FB1EF400940E94690B8C\r
+:1016B00057FD07D00E94770B07FC03D04EF40C9423\r
+:1016C000690B50954095309521953F4F4F4F5F4F97\r
+:1016D000089590958095709561957F4F8F4F9F4F9E\r
+:1016E0000895EE0FFF1F0590F491E02D0994A1E2FB\r
+:1016F0001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F8C\r
+:10170000FF1FA217B307E407F50720F0A21BB30BD6\r
+:10171000E40BF50B661F771F881F991F1A9469F752\r
+:1017200060957095809590959B01AC01BD01CF01AE\r
+:101730000895FC010590061621F00020D9F7C0019C\r
+:1017400008953197CF0108950F931F93CF93DF939F\r
+:10175000EC018B01009731F46115710519F480E0FB\r
+:1017600090E038C06EE070E081E090E00E94AC0C48\r
+:10177000FC010097A1F380E883830115110571F046\r
+:101780001387028781E88383809136019091370126\r
+:10179000892B21F4F0933701E09336012097C9F0AB\r
+:1017A000D187C08783818260838380913801909143\r
+:1017B0003901892B71F4F0933901E093380180915C\r
+:1017C0003A0190913B01892B21F4F0933B01E09386\r
+:1017D0003A01CF01DF91CF911F910F9108950F939F\r
+:1017E0001F93CF93DF93182F092FEB018B8181FD7E\r
+:1017F00003C08FEF9FEF20C082FF10C04E815F813A\r
+:101800002C813D81421753077CF4E881F9819F01C7\r
+:101810002F5F3F4F39832883108306C0E885F98501\r
+:10182000812F0995892B29F72E813F812F5F3F4F0B\r
+:101830003F832E83812F902FDF91CF911F910F91A6\r
+:1018400008950F931F93CF93DF93E0913801F091A8\r
+:101850003901238121FF1BC0EC0100E010E08991D8\r
+:101860006091380170913901DB011896ED91FC917E\r
+:101870001997882331F00995892B89F30FEF1FEF12\r
+:10188000EECF8AE00995892B11F4C80102C08FEFD1\r
+:101890009FEFDF91CF911F910F910895FA01AA2731\r
+:1018A000283051F1203181F1E8946F936E7F6E5FA3\r
+:1018B0007F4F8F4F9F4FAF4FB1E03ED0B4E03CD051\r
+:1018C000670F781F891F9A1FA11D680F791F8A1F34\r
+:1018D000911DA11D6A0F711D811D911DA11D20D09B\r
+:1018E00009F468943F912AE0269F11243019305D55\r
+:1018F0003193DEF6CF010895462F4770405D419346\r
+:10190000B3E00FD0C9F7F6CF462F4F70405D4A3392\r
+:1019100018F0495D31FD4052419302D0A9F7EACF5A\r
+:10192000B4E0A6959795879577956795BA95C9F789\r
+:1019300000976105710508959B01AC010A2E06947C\r
+:101940005795479537952795BA95C9F7620F731F35\r
+:10195000841F951FA01D08950F931F93CF93DF93AE\r
+:10196000869F8001879F100D969F100D1124C8013E\r
+:101970000E94C80CEC01009729F0A80160E070E01B\r
+:101980000E94EF0DCE01DF91CF911F910F9108952D\r
+:10199000CF93DF938230910510F482E090E0E091E4\r
+:1019A0003E01F0913F0120E030E0A0E0B0E0309750\r
+:1019B00039F14081518148175907B8F04817590744\r
+:1019C00071F482819381109729F013969C938E93E2\r
+:1019D00012972CC090933F0180933E0127C02115A0\r
+:1019E000310531F04217530718F0A901DB0101C09E\r
+:1019F000EF019A01BD01DF010280F381E02DD7CF15\r
+:101A000021153105F9F0281B390B2430310580F4FC\r
+:101A10008A819B816115710521F0FB01938382838B\r
+:101A200004C090933F0180933E01FE01329644C072\r
+:101A3000FE01E20FF31F8193919322503109398304\r
+:101A400028833AC020913C0130913D01232B41F481\r
+:101A500020916A0030916B0030933D0120933C014E\r
+:101A600020916800309169002115310541F42DB7AE\r
+:101A70003EB740916C0050916D00241B350BE091F6\r
+:101A80003C01F0913D01E217F307A0F42E1B3F0B40\r
+:101A90002817390778F0AC014E5F5F4F24173507E0\r
+:101AA00048F04E0F5F1F50933D0140933C018193DE\r
+:101AB000919302C0E0E0F0E0CF01DF91CF91089573\r
+:101AC000CF93DF93009709F487C0FC01329713820C\r
+:101AD0001282C0913E01D0913F01209781F4208174\r
+:101AE0003181280F391F80913C0190913D0182176F\r
+:101AF000930779F5F0933D01E0933C016DC0DE0161\r
+:101B000020E030E0AE17BF0750F412964D915C9183\r
+:101B100013979D014115510509F1DA01F3CFB38304\r
+:101B2000A28340815181840F951F8A179B0771F40E\r
+:101B30008D919C911197840F951F029691838083BC\r
+:101B400012968D919C911397938382832115310571\r
+:101B500029F4F0933F01E0933E013EC0D901139672\r
+:101B6000FC93EE9312974D915D91A40FB51FEA1768\r
+:101B7000FB0779F480819181840F951F0296D9012A\r
+:101B800011969C938E938281938113969C938E934E\r
+:101B90001297E0E0F0E08A819B81009719F0FE0146\r
+:101BA000EC01F9CFCE01029628813981820F931F73\r
+:101BB00020913C0130913D012817390769F4309795\r
+:101BC00029F410923F0110923E0102C0138212824A\r
+:101BD000D0933D01C0933C01DF91CF910895DC018A\r
+:101BE00001C06D9341505040E0F70895F894FFCF45\r
+:101BF00000800080008000800000400120000D0A6D\r
+:081C000053746172740D0000C1\r
 :00000001FF\r