Transision from 4x TLE5205 to 2x VNH2SP30
authorErik Andresen <erik@vontaene.de>
Sat, 16 Apr 2016 17:45:07 +0000 (19:45 +0200)
committerErik Andresen <erik@vontaene.de>
Sat, 16 Apr 2016 17:45:07 +0000 (19:45 +0200)
avr/motor_ctrl/main.c
avr/motor_ctrl/main.hex

index e8c3d3f4346d9a6f1dbe1d305d9537ebed753127..9c6413cd8c414ca0563e18212e7e6a31a4601f72 100644 (file)
  * 0x02 Motor 1 PWM LSB
  * 0x03 Motor 2 PWM MSB
  * 0x04 Motor 2 PWM LSB
  * 0x02 Motor 1 PWM LSB
  * 0x03 Motor 2 PWM MSB
  * 0x04 Motor 2 PWM LSB
- * 0x05 Motor 3 PWM MSB
- * 0x06 Motor 3 PWM LSB
- * 0x07 Motor 4 PWM MSB
- * 0x08 Motor 4 PWM LSB
  * free
  * 0x10 Hall 1 MSB
  * 0x11 Hall 1 LSB
  * free
  * 0x10 Hall 1 MSB
  * 0x11 Hall 1 LSB
  * 0x21 Motor 1 speed wish LSB
  * 0x22 Motor 2 speed wish MSB
  * 0x23 Motor 2 speed wish LSB
  * 0x21 Motor 1 speed wish LSB
  * 0x22 Motor 2 speed wish MSB
  * 0x23 Motor 2 speed wish LSB
- * 0x24 Motor 3 speed wish MSB
- * 0x25 Motor 3 speed wish LSB
- * 0x26 Motor 4 speed wish MSB
- * 0x27 Motor 4 speed wish LSB
  * 0x28 Left speed wish (m/s) MSB
  * 0x29 Left speed wish (m/s)
  * 0x2A Left speed wish (m/s)
  * 0x28 Left speed wish (m/s) MSB
  * 0x29 Left speed wish (m/s)
  * 0x2A Left speed wish (m/s)
  * 0x31 Motor 1 speed LSB
  * 0x32 Motor 2 speed MSB
  * 0x33 Motor 2 speed LSB
  * 0x31 Motor 1 speed LSB
  * 0x32 Motor 2 speed MSB
  * 0x33 Motor 2 speed LSB
- * 0x34 Motor 3 speed MSB
- * 0x35 Motor 3 speed LSB
- * 0x36 Motor 4 speed MSB
- * 0x37 Motor 4 speed LSB
  * 0x38 Speed (m/s) MSB
  * 0x39 Speed (m/s)
  * 0x3A Speed (m/s)
  * 0x38 Speed (m/s) MSB
  * 0x39 Speed (m/s)
  * 0x3A Speed (m/s)
  * free
  * 0x90 Motor 1 switch
  * 0x91 Motor 2 switch
  * free
  * 0x90 Motor 1 switch
  * 0x91 Motor 2 switch
- * 0x92 Motor 3 switch
- * 0x93 Motor 4 switch
- * 0x94 Front Handicap
- * 0x95 Aft Handicap
  * free
  * 0xA0 Reset reason
  * free
  * 0xA0 Reset reason
- * 0xA1 TLE Error status
+ * 0xA1 Error status
  * 0xA2 count test
  * free
  * 0xff Bootloader
  * 0xA2 count test
  * free
  * 0xff Bootloader
@@ -131,37 +115,29 @@ static volatile uint8_t ireg=0;
 static volatile uint8_t bootloader=0;
 static volatile int16_t motor1=0; // -255..+255
 static volatile int16_t motor2=0;
 static volatile uint8_t bootloader=0;
 static volatile int16_t motor1=0; // -255..+255
 static volatile int16_t motor2=0;
-static volatile int16_t motor3=0;
-static volatile int16_t motor4=0;
 static volatile int16_t pos1=0; // step
 static volatile int16_t pos2=0;
 static volatile int16_t pos3=0;
 static volatile int16_t pos4=0;
 static volatile enum mode motor1_mode=MOTOR_MANUAL;
 static volatile enum mode motor2_mode=MOTOR_MANUAL;
 static volatile int16_t pos1=0; // step
 static volatile int16_t pos2=0;
 static volatile int16_t pos3=0;
 static volatile int16_t pos4=0;
 static volatile enum mode motor1_mode=MOTOR_MANUAL;
 static volatile enum mode motor2_mode=MOTOR_MANUAL;
-static volatile enum mode motor3_mode=MOTOR_MANUAL;
-static volatile enum mode motor4_mode=MOTOR_MANUAL;
 static volatile uint8_t motor1_switch=0;
 static volatile uint8_t motor1_switch=0;
-static volatile uint8_t motor2_switch=0;
-static volatile uint8_t motor3_switch=0;
-static volatile uint8_t motor4_switch=0;
+static volatile uint8_t motor2_switch=1;
 static volatile int16_t speed1_wish=0; // step/s
 static volatile int16_t speed2_wish=0;
 static volatile int16_t speed1_wish=0; // step/s
 static volatile int16_t speed2_wish=0;
-static volatile int16_t speed3_wish=0;
-static volatile int16_t speed4_wish=0;
 static volatile uint8_t run_update=0;
 static volatile int16_t speed1=0; // step/s
 static volatile int16_t speed2=0;
 static volatile int16_t speed3=0;
 static volatile int16_t speed4=0;
 static volatile uint8_t run_update=0;
 static volatile int16_t speed1=0; // step/s
 static volatile int16_t speed2=0;
 static volatile int16_t speed3=0;
 static volatile int16_t speed4=0;
+static volatile int16_t speed_l=0;
+static volatile int16_t speed_r=0;
 static volatile ufloat_t pos_x={0.0};
 static volatile ufloat_t pos_y={0.0};
 static volatile ufloat_t angle={0.0};
 static volatile float cur_speed_lin=0;
 static volatile float cur_speed_rot=0;
 static volatile uint8_t count_test=0;
 static volatile ufloat_t pos_x={0.0};
 static volatile ufloat_t pos_y={0.0};
 static volatile ufloat_t angle={0.0};
 static volatile float cur_speed_lin=0;
 static volatile float cur_speed_rot=0;
 static volatile uint8_t count_test=0;
-static volatile uint8_t front_handicap=0;
-static volatile uint8_t aft_handicap=0;
 static volatile uint8_t error_state=0;
 
 ISR(TWI_vect)
 static volatile uint8_t error_state=0;
 
 ISR(TWI_vect)
@@ -202,24 +178,6 @@ ISR(TWI_vect)
                                        motor2_mode = MOTOR_MANUAL;
                                        TWI_ACK;
                                        break;
                                        motor2_mode = MOTOR_MANUAL;
                                        TWI_ACK;
                                        break;
-                               case 0x05: // Motor 3 MSB
-                                       tmp = TWDR;
-                                       TWI_ACK;
-                                       break;
-                               case 0x06: // Motor 3 LSB
-                                       motor3 = tmp<<8 | TWDR;
-                                       motor3_mode = MOTOR_MANUAL;
-                                       TWI_ACK;
-                                       break;
-                               case 0x07: // Motor 4 MSB
-                                       tmp = TWDR;
-                                       TWI_ACK;
-                                       break;
-                               case 0x08: // Motor 4 LSB
-                                       motor4 = tmp<<8 | TWDR;
-                                       motor4_mode = MOTOR_MANUAL;
-                                       TWI_ACK;
-                                       break;
                                case 0x20: // Motor 1 speed wish MSB
                                        tmp = TWDR;
                                        TWI_ACK;
                                case 0x20: // Motor 1 speed wish MSB
                                        tmp = TWDR;
                                        TWI_ACK;
@@ -238,24 +196,6 @@ ISR(TWI_vect)
                                        motor2_mode = MOTOR_PID;
                                        TWI_ACK;
                                        break;
                                        motor2_mode = MOTOR_PID;
                                        TWI_ACK;
                                        break;
-                               case 0x24: // Motor 3 speed wish MSB
-                                       tmp = TWDR;
-                                       TWI_ACK;
-                                       break;
-                               case 0x25: // Motor 3 speed wish LSB
-                                       speed3_wish = tmp<<8 | TWDR;
-                                       motor3_mode = MOTOR_PID;
-                                       TWI_ACK;
-                                       break;
-                               case 0x26: // Motor 4 speed wish MSB
-                                       tmp = TWDR;
-                                       TWI_ACK;
-                                       break;
-                               case 0x27: // Motor 4 speed wish LSB
-                                       speed4_wish = tmp<<8 | TWDR;
-                                       motor4_mode = MOTOR_PID;
-                                       TWI_ACK;
-                                       break;
                                case 0x28: // Left speed wish MSB
                                        tmp_speed.i = TWDR;
                                        TWI_ACK;
                                case 0x28: // Left speed wish MSB
                                        tmp_speed.i = TWDR;
                                        TWI_ACK;
@@ -339,24 +279,6 @@ ISR(TWI_vect)
                                        motor2_switch = TWDR;
                                        TWI_ACK;
                                        break;
                                        motor2_switch = TWDR;
                                        TWI_ACK;
                                        break;
-                               case 0x92: // Motor 3 switch
-                                       motor3_switch = TWDR;
-                                       TWI_ACK;
-                                       break;
-                               case 0x93: // Motor 4 switch
-                                       motor4_switch = TWDR;
-                                       TWI_ACK;
-                                       break;
-                               case 0x94: // Front Handicap
-                                       front_handicap = TWDR;
-                                       cmd_vel.bUpdate = 1;
-                                       TWI_ACK;
-                                       break;
-                               case 0x95: // Aft Handicap
-                                       aft_handicap = TWDR;
-                                       cmd_vel.bUpdate = 1;
-                                       TWI_ACK;
-                                       break;
                                case 0xff: // bootloader
                                        bootloader = TWDR;
                                default:
                                case 0xff: // bootloader
                                        bootloader = TWDR;
                                default:
@@ -375,14 +297,6 @@ ISR(TWI_vect)
                                        TWDR = OCR1B;
                                        TWI_ACK;
                                        break;
                                        TWDR = OCR1B;
                                        TWI_ACK;
                                        break;
-                               case 0x06: // Motor 3 PWM
-                                       TWDR = OCR2;
-                                       TWI_ACK;
-                                       break;
-                               case 0x08: // Motor 4 PWM
-                                       TWDR = OCR0;
-                                       TWI_ACK;
-                                       break;
                                case 0x10: // Hall 1 MSB
                                        tmp16 = pos1;
                                        TWDR = tmp16>>8;
                                case 0x10: // Hall 1 MSB
                                        tmp16 = pos1;
                                        TWDR = tmp16>>8;
@@ -435,22 +349,6 @@ ISR(TWI_vect)
                                        TWDR = speed2_wish;
                                        TWI_ACK;
                                        break;
                                        TWDR = speed2_wish;
                                        TWI_ACK;
                                        break;
-                               case 0x24: // Motor 3 speed wish MSB
-                                       TWDR = speed3_wish>>8;
-                                       TWI_ACK;
-                                       break;
-                               case 0x25: // Motor 3 speed wish LSB
-                                       TWDR = speed3_wish;
-                                       TWI_ACK;
-                                       break;
-                               case 0x26: // Motor 4 speed wish MSB
-                                       TWDR = speed4_wish>>8;
-                                       TWI_ACK;
-                                       break;
-                               case 0x27: // Motor 4 speed wish LSB
-                                       TWDR = speed4_wish;
-                                       TWI_ACK;
-                                       break;
                                case 0x30: // Motor 1 speed MSB
                                        TWDR = speed1>>8;
                                        TWI_ACK;
                                case 0x30: // Motor 1 speed MSB
                                        TWDR = speed1>>8;
                                        TWI_ACK;
@@ -602,8 +500,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
        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;
        }
 }
 
        }
 }
 
@@ -621,7 +519,7 @@ static void update_hall2(void) {
        diff = oldstatus - new;                         // difference last - new
        if (diff & 0x1) {                               // bit 0 = value (1)
                oldstatus = new;                                        // store new as next last
        diff = oldstatus - new;                         // difference last - new
        if (diff & 0x1) {                               // bit 0 = value (1)
                oldstatus = new;                                        // store new as next last
-               if (motor2_switch) pos2 -= (diff & 2) - 1;              // bit 1 = direction (+/-)
+               if (motor1_switch) pos2 -= (diff & 2) - 1;              // bit 1 = direction (+/-)
                else pos2 += (diff & 2) - 1;
        }
 }
                else pos2 += (diff & 2) - 1;
        }
 }
@@ -640,8 +538,8 @@ static void update_hall3(void) {
        diff = oldstatus - new;                         // difference last - new
        if (diff & 0x1) {                               // bit 0 = value (1)
                oldstatus = new;                                        // store new as next last
        diff = oldstatus - new;                         // difference last - new
        if (diff & 0x1) {                               // bit 0 = value (1)
                oldstatus = new;                                        // store new as next last
-               if (motor3_switch) pos3 -= (diff & 2) - 1;              // bit 1 = direction (+/-)
-               else pos3 += (diff & 2) - 1;
+               if (motor2_switch) pos3 += (diff & 2) - 1;              // bit 1 = direction (+/-)
+               else pos3 -= (diff & 2) - 1;
        }
 }
 
        }
 }
 
@@ -659,8 +557,8 @@ static void update_hall4(void) {
        diff = oldstatus - new;                         // difference last - new
        if (diff & 0x1) {                               // bit 0 = value (1)
                oldstatus = new;                                        // store new as next last
        diff = oldstatus - new;                         // difference last - new
        if (diff & 0x1) {                               // bit 0 = value (1)
                oldstatus = new;                                        // store new as next last
-               if (motor4_switch) pos4 += (diff & 2) - 1;              // bit 1 = direction (+/-)
-               else pos4 -= (diff & 2) - 1;
+               if (motor2_switch) pos4 -= (diff & 2) - 1;              // bit 1 = direction (+/-)
+               else pos4 += (diff & 2) - 1;
        }
 }
 
        }
 }
 
@@ -668,10 +566,8 @@ static void update_hall4(void) {
 static void update_motor(void) {
        static int16_t m1_old=SHRT_MIN;
        static int16_t m2_old=SHRT_MIN;
 static void update_motor(void) {
        static int16_t m1_old=SHRT_MIN;
        static int16_t m2_old=SHRT_MIN;
-       static int16_t m3_old=SHRT_MIN;
-       static int16_t m4_old=SHRT_MIN;
 
 
-       error_state = ~((PIND & 0x40)>>3 | (PINB & 0x07)) & 0xf;
+       error_state = ~(PINB & 0x03);
 
        if (motor1_mode == MOTOR_PID && bit_is_set(error_state, 0)) {
                // if error and running: stop
 
        if (motor1_mode == MOTOR_PID && bit_is_set(error_state, 0)) {
                // if error and running: stop
@@ -687,28 +583,15 @@ static void update_motor(void) {
                else if (motor2 > 0) motor2 = 255;
                else if (motor2 < 0) motor2 = -255;
        }
                else if (motor2 > 0) motor2 = 255;
                else if (motor2 < 0) motor2 = -255;
        }
-       if (motor3_mode == MOTOR_PID && bit_is_set(error_state, 2)) {
-               // if error and running: stop
-               if (m3_old != 0) motor3 = 0;
-               // if we start motor in error state: start with full power
-               else if (motor3 > 0) motor3 = 255;
-               else if (motor3 < 0) motor3 = -255;
-       }
-       if (motor4_mode == MOTOR_PID && bit_is_set(error_state, 3)) {
-               // if error and running: stop
-               if (m4_old != 0) motor4 = 0;
-               // if we start motor in error state: start with full power
-               else if (motor4 > 0) motor4 = 255;
-               else if (motor4 < 0) motor4 = -255;
-       }
 
        if (m1_old != motor1) { // update only when changed
                if (motor1 == 0) {
                        // stop
 
        if (m1_old != motor1) { // update only when changed
                if (motor1 == 0) {
                        // stop
-                       PORTC |= (1 << 3) | (1 << 2);
+                       PORTC &= ~(1 << 3) & ~(1 << 2);
                } else if ((!motor1_switch && motor1 > 0) || (motor1_switch && motor1 < 0)) {
                        // forward
                } else if ((!motor1_switch && motor1 > 0) || (motor1_switch && motor1 < 0)) {
                        // forward
-                       PORTC &= ~(1 << 3) & ~(1 << 2);
+                       PORTC |=  (1 << 2);
+                       PORTC &= ~(1 << 3);
                } else { // motor1 < 0
                        // backward
                        PORTC &= ~(1 << 2);
                } else { // motor1 < 0
                        // backward
                        PORTC &= ~(1 << 2);
@@ -722,10 +605,11 @@ static void update_motor(void) {
        if (m2_old != motor2) { // update only when changed
                if (motor2 == 0) {
                        // stop
        if (m2_old != motor2) { // update only when changed
                if (motor2 == 0) {
                        // stop
-                       PORTC |= (1 << 5) | (1 << 4);
+                       PORTC &= ~(1 << 5) & ~(1 << 4);
                } else if ((!motor2_switch && motor2 > 0) || (motor2_switch && motor2 < 0)) {
                        // forward
                } else if ((!motor2_switch && motor2 > 0) || (motor2_switch && motor2 < 0)) {
                        // forward
-                       PORTC &= ~(1 << 5) & ~(1 << 4);
+                       PORTC |=  (1 << 4);
+                       PORTC &= ~(1 << 5);
                } else { // motor2 < 0
                        // backward
                        PORTC &= ~(1 << 4);
                } else { // motor2 < 0
                        // backward
                        PORTC &= ~(1 << 4);
@@ -735,40 +619,6 @@ static void update_motor(void) {
                m2_old = motor2;
                OCR1B = abs(motor2);
        }
                m2_old = motor2;
                OCR1B = abs(motor2);
        }
-
-       if (m3_old != motor3) { // update only when changed
-               if (motor3 == 0) {
-                       // stop
-                       PORTC |= (1 << 7) | (1 << 6);
-               } else if ((!motor3_switch && motor3 > 0) || (motor3_switch && motor3 < 0)) {
-                       // forward
-                       PORTC &= ~(1 << 7) & ~(1 << 6);
-               } else { // motor3 < 0
-                       // backward
-                       PORTC &= ~(1 << 6);
-                       PORTC |=  (1 << 7);
-               }
-
-               m3_old = motor3;
-               OCR2 = abs(motor3);
-       }
-
-       if (m4_old != motor4) { // update only when changed
-               if (motor4 == 0) {
-                       // stop
-                       PORTD |= (1 << 3) | (1 << 2);
-               } else if ((!motor4_switch && motor4 > 0) || (motor4_switch && motor4 < 0)) {
-                       // forward
-                       PORTD &= ~(1 << 3) & ~(1 << 2);
-               } else { // motor4 < 0
-                       // backward
-                       PORTD &= ~(1 << 2);
-                       PORTD |=  (1 << 3);
-               }
-
-               m4_old = motor4;
-               OCR0 = abs(motor4);
-       }
 }
 
 
 }
 
 
@@ -783,7 +633,6 @@ static void update_pos(void) {
        int16_t pos4_diff;
        float diff_left_m, diff_right_m, angle_diff, translation;
        float pos_x_new, pos_y_new, angle_new;
        int16_t pos4_diff;
        float diff_left_m, diff_right_m, angle_diff, translation;
        float pos_x_new, pos_y_new, angle_new;
-       int16_t speed_l, speed_r;
        float tmp_speed_lin, tmp_speed_rot;
        int16_t cur_pos1, cur_pos2, cur_pos3, cur_pos4;
        int16_t new_speed1, new_speed2, new_speed3, new_speed4;
        float tmp_speed_lin, tmp_speed_rot;
        int16_t cur_pos1, cur_pos2, cur_pos3, cur_pos4;
        int16_t new_speed1, new_speed2, new_speed3, new_speed4;
@@ -846,12 +695,8 @@ static void update_pos(void) {
 static void update_pid(void) {
        static int16_t eold1=0;
        static int16_t eold2=0;
 static void update_pid(void) {
        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 esum1=0;
        static int32_t esum2=0;
-       static int32_t esum3=0;
-       static int32_t esum4=0;
 
        if (motor1_mode == MOTOR_PID) {
                if (speed1_wish == 0) {
 
        if (motor1_mode == MOTOR_PID) {
                if (speed1_wish == 0) {
@@ -859,7 +704,7 @@ static void update_pid(void) {
                        eold1 = 0;
                        esum1 = 0;
                } else {
                        eold1 = 0;
                        esum1 = 0;
                } else {
-                       int16_t e = speed1_wish - speed1;
+                       int16_t e = speed1_wish - speed_l;
                        esum1+=e;
                        motor1 = KP*e + KI*PID_T*esum1 + KD/PID_T*(e - eold1);
                        eold1 = e;
                        esum1+=e;
                        motor1 = KP*e + KI*PID_T*esum1 + KD/PID_T*(e - eold1);
                        eold1 = e;
@@ -874,7 +719,7 @@ static void update_pid(void) {
                        eold2 = 0;
                        esum2 = 0;
                } else {
                        eold2 = 0;
                        esum2 = 0;
                } else {
-                       int16_t e = speed2_wish - speed2;
+                       int16_t e = speed2_wish - speed_r;
                        esum2+=e;
                        motor2 = KP*e + KI*PID_T*esum2 + KD/PID_T*(e - eold2);
                        eold2 = e;
                        esum2+=e;
                        motor2 = KP*e + KI*PID_T*esum2 + KD/PID_T*(e - eold2);
                        eold2 = e;
@@ -883,36 +728,6 @@ static void update_pid(void) {
                        else if (motor2 < -255) motor2 = -255;
                }
        }
                        else if (motor2 < -255) motor2 = -255;
                }
        }
-       if (motor3_mode == MOTOR_PID) {
-               if (speed3_wish == 0) {
-                       motor3 = 0;
-                       eold3 = 0;
-                       esum3 = 0;
-               } else {
-                       int16_t e = speed3_wish - speed3;
-                       esum3+=e;
-                       motor3 = KP*e + KI*PID_T*esum3 + KD/PID_T*(e - eold3);
-                       eold3 = e;
-
-                        if (motor3 > 255) motor3 = 255;
-                       else if (motor3 < -255) motor3 = -255;
-               }
-       }
-       if (motor4_mode == MOTOR_PID) {
-               if (speed4_wish == 0) {
-                       motor4 = 0;
-                       eold4 = 0;
-                       esum4 = 0;
-               } else {
-                       int16_t e = speed4_wish - speed4;
-                       esum4+=e;
-                       motor4 = KP*e + KI*PID_T*esum4 + KD/PID_T*(e - eold4);
-                       eold4 = e;
-
-                        if (motor4 > 255) motor4 = 255;
-                       else if (motor4 < -255) motor4 = -255;
-               }
-       }
 }
 
 
 }
 
 
@@ -931,9 +746,6 @@ int main(void) {
        DDRB = (1 << 3);
        DDRC = (1 << 7) | (1 << 6) | (1 << 5) | (1 << 4) | (1 << 3) | (1 << 2);
        DDRD = (1 << 7) | (1 << 5) | (1 << 4) | (1 << 3) | (1 << 2);
        DDRB = (1 << 3);
        DDRC = (1 << 7) | (1 << 6) | (1 << 5) | (1 << 4) | (1 << 3) | (1 << 2);
        DDRD = (1 << 7) | (1 << 5) | (1 << 4) | (1 << 3) | (1 << 2);
-       // Pullup TLEs EF
-       PORTB = (1 << 0) | (1 << 1) | (1 << 2);
-       PORTD = (1 << 6);
 
        bootloader = 0x00;
        setup_uart(9600);
 
        bootloader = 0x00;
        setup_uart(9600);
@@ -944,25 +756,13 @@ int main(void) {
        TWI_RESET;
 
        // Motor 1 & 2
        TWI_RESET;
 
        // Motor 1 & 2
-       // Timer 1: Fast PWM inverting mode, Top=256 => 15.625kHz
+       // Timer 1: Fast PWM non-inverting mode, Top=256 => 15.625kHz
        // Prescaler=1
        // Prescaler=1
-       TCCR1A = (1 << COM1A1) | (1 << COM1B1) | (1 << COM1A0) | (1 << COM1B0) | (1 << WGM10);
+       TCCR1A = (1 << COM1A1) | (1 << COM1B1) | (1 << WGM10);
        TCCR1B = (1 << WGM12) | (1 << CS10);
        OCR1A = 0;
        OCR1B = 0;
 
        TCCR1B = (1 << WGM12) | (1 << CS10);
        OCR1A = 0;
        OCR1B = 0;
 
-       // Motor 3
-       // Timer 2: Fast PWM inverting mode, Top=256
-       // Prescaler=1
-       TCCR2 = (1 << WGM21) | (1 << WGM20) | (1 << COM21) | (1 << COM20) | (1 << CS20);
-       OCR2 = 0;
-
-       // Motor 4
-       // Timer 0: Fast PWM inverting mode, Top=256
-       // Prescaler=1
-       TCCR0 = (1 << WGM01) | (1 << WGM00) | (1 << COM01) | (1 << COM00) | (1 << CS00);
-       OCR0 = 0;
-
        printf("\r\nStart\r\n");
 
        set_sleep_mode(SLEEP_MODE_IDLE);
        printf("\r\nStart\r\n");
 
        set_sleep_mode(SLEEP_MODE_IDLE);
@@ -999,24 +799,10 @@ int main(void) {
                        speed_wish_left*=STEP_PER_M_LEFT;
                        speed_wish_right*=STEP_PER_M_RIGHT;
 
                        speed_wish_left*=STEP_PER_M_LEFT;
                        speed_wish_right*=STEP_PER_M_RIGHT;
 
-                       if (aft_handicap > 0) {
-                               speed1_wish = speed_wish_left * (100-aft_handicap)/100.0;
-                               speed4_wish = speed_wish_right * (100-aft_handicap)/100.0;
-                       } else {
-                               speed1_wish = speed_wish_left;
-                               speed4_wish = speed_wish_right;
-                       }
-                       if (front_handicap > 0) {
-                               speed2_wish = speed_wish_left * (100-front_handicap)/100.0;
-                               speed3_wish = speed_wish_right * (100-front_handicap)/100.0;
-                       } else {
-                               speed2_wish = speed_wish_left;
-                               speed3_wish = speed_wish_right;
-                       }
+                       speed1_wish = speed_wish_left;
+                       speed2_wish = speed_wish_right;
                        motor1_mode = MOTOR_PID;
                        motor2_mode = MOTOR_PID;
                        motor1_mode = MOTOR_PID;
                        motor2_mode = MOTOR_PID;
-                       motor3_mode = MOTOR_PID;
-                       motor4_mode = MOTOR_PID;
                }
 
                if (run_update >= 156) { // ~100Hz
                }
 
                if (run_update >= 156) { // ~100Hz
index 0cebf4249d1b8f94659f856b1ee0926a9171de03..7cc68a78418cfa6ccda622c8b247e1cacf9120be 100644 (file)
 :100000000C9445000C9462000C9462000C94620005\r
 :100010000C9462000C9462000C9462000C946200D8\r
 :100000000C9445000C9462000C9462000C94620005\r
 :100010000C9462000C9462000C9462000C946200D8\r
-:100020000C9462000C9448040C9462000C946200DE\r
-:100030000C9462000C9433050C9462000C946200E2\r
+:100020000C9462000C94DF030C9462000C94620048\r
+:100030000C9462000C94CA040C9462000C9462004C\r
 :100040000C9462000C9462000C9462000C946400A6\r
 :100050000C94620005A84CCDB2D44EB93836A90232\r
 :100060000C50B9918688083CA6AAAA2ABE000000B6\r
 :10007000803F45464765666700202B2D2E30313284\r
 :100080003334353637383968000011241FBECFE5C8\r
 :100040000C9462000C9462000C9462000C946400A6\r
 :100050000C94620005A84CCDB2D44EB93836A90232\r
 :100060000C50B9918688083CA6AAAA2ABE000000B6\r
 :10007000803F45464765666700202B2D2E30313284\r
 :100080003334353637383968000011241FBECFE5C8\r
-:10009000D8E0DEBFCDBF10E0A0E6B0E0E6E6F8E2D3\r
-:1000A00002C005900D92A837B107D9F721E0A8E763\r
-:1000B000B0E001C01D92A836B207E1F70E94290600\r
-:1000C0000C9431140C9400001F920F920FB60F92F3\r
-:1000D00011242F933F934F935F936F937F938F934D\r
-:1000E0009F93AF93BF93EF93FF9381B1887F803845\r
-:1000F00081F040F4803609F0B5C385EC86BF1092DC\r
-:10010000E900B5C3883A09F4B9C1883B09F4B6C11E\r
-:10011000A9C38091E9008A3209F44BC108F047C0B5\r
-:10012000803209F402C138F5843009F4C1C060F4AA\r
-:10013000813009F4FAC008F4A6C0823009F4ACC0DA\r
-:10014000833009F4F2C086C3863009F4BDC008F4D8\r
-:10015000ECC0873009F4E9C0883009F07BC383B173\r
-:100160002091A60090E0922B9093E1008093E00014\r
-:100170001092D40067C3853209F4CAC060F4823299\r
-:1001800009F4D3C008F4ACC0833209F4B6C0843299\r
-:1001900009F4CBC05FC3873209F4CBC008F4C5C0F3\r
-:1001A000883209F401C1893209F403C153C384358B\r
-:1001B00009F416C1E8F58F3209F4C8C060F48C3236\r
-:1001C00009F4F2C008F4C2C08D3209F4F2C08E32D4\r
-:1001D00009F4EFC03FC3813509F4EBC020F480354A\r
-:1001E00009F4E2C037C3823509F4E3C0833509F06E\r
-:1001F00031C323B18091A2009091A300A091A400EB\r
-:10020000B091A500BA2FA92F982F8827822B809311\r
-:10021000A2009093A300A093A400B093A5008093A4\r
-:10022000EA009093EB00A093EC00B093ED000AC3BA\r
-:10023000813909F410C178F4863509F4D6C008F480\r
-:10024000D4C0873509F4E8C0803909F003C383B10D\r
-:100250008093D300F7C2843909F405C150F4823980\r
-:1002600009F4FDC0833909F0F5C283B18093D00051\r
-:10027000E9C2853909F4FBC08F3F09F0EBC283B1B5\r
-:100280008093E800E7C283B18093E9008091E900A0\r
-:1002900081508093E900D6C283B12091A60090E0FE\r
-:1002A000922B9093E7008093E6001092D700CAC289\r
-:1002B00083B12091A60090E0922B9093E50080936B\r
-:1002C000E4001092D600BEC283B12091A60090E057\r
-:1002D000922B9093E3008093E2001092D500B2C27B\r
-:1002E00083B12091A60090E0922B9093CF00809351\r
-:1002F000CE0081E08093D700A5C283B12091A600F3\r
-:1003000090E0922B9093CD008093CC0081E049C087\r
-:1003100083B12091A60090E0922B9093CB00809324\r
-:10032000CA0081E08093D5008DC283B18093A6007E\r
-:1003300089C283B12091A60090E0922B9093C900CE\r
-:100340008093C80081E08093D4007CC223B1809167\r
-:10035000A2009091A300A091A400B091A500BA2F93\r
-:10036000A92F982F8827BC01CD01622B6093A20092\r
-:100370007093A3008093A4009093A50023E33BE532\r
-:1003800042E855E40E948F100E94630F7093CF00E3\r
-:100390006093CE007093CD006093CC0081E0809399\r
-:1003A000D7008093D6004EC283B190E0A0E0B0E0C9\r
-:1003B0000EC023B18091A2009091A300A091A4004F\r
-:1003C000B091A500BA2FA92F982F8827822B809350\r
-:1003D000A2009093A300A093A400B093A50032C202\r
-:1003E00083B190E0A0E0B0E00EC023B180919E0008\r
-:1003F00090919F00A091A000B091A100BA2FA92FC9\r
-:10040000982F8827822B80939E0090939F00A09323\r
-:10041000A000B093A10016C223B180919E009091DC\r
-:100420009F00A091A000B091A100BA2FA92F982FF2\r
-:100430008827822B80939E0090939F00A093A0001A\r
-:10044000B093A1008093EE009093EF00A093F00092\r
-:10045000B093F1000FC083B18093D200F3C183B198\r
-:100460008093D100EFC183B18093A90003C083B111\r
-:100470008093A80081E08093F200E4C18091E900BC\r
-:10048000853309F447C108F06BC0803209F415C107\r
-:1004900080F5813109F40EC1C0F4863009F4F2C050\r
-:1004A00048F4823009F4EBC0843009F0D2C188B539\r
-:1004B00099B5C7C1883009F4E7C0803109F0C9C1D6\r
-:1004C0008091DE009091DF00E5C0843109F4E8C03E\r
-:1004D00038F4823109F4DAC0833109F4EBC0B9C1D0\r
-:1004E000863109F4E2C008F4E5C0873109F4E2C0BE\r
-:1004F000B0C1863209F4F5C0D0F4833209F4E7C004\r
-:1005000058F4813209F4DEC0823209F0A2C1809130\r
-:10051000CC009091CD00C2C0843209F4DDC0853298\r
-:1005200009F097C18091CA009091CB008AC18133B4\r
-:1005300009F4E1C058F4873209F4D8C0803309F0D7\r
-:1005400088C18091C5009091C600A8C0833309F48A\r
-:10055000D7C008F0DAC08091C3009091C4009EC05B\r
-:10056000823409F425C108F043C08B3309F4F6C086\r
-:10057000F0F4883309F4D8C058F4863309F4CFC0B6\r
-:10058000873309F066C18091BF009091C00059C1C6\r
-:10059000893309F4DAC08A3309F05BC18091A20083\r
-:1005A0009091A300A091A400B091A5003AC18E3310\r
-:1005B00009F4ECC078F48C3309F4D3C08D3309F01E\r
-:1005C00048C180919E0090919F00A091A000B091A1\r
-:1005D000A10023C1803409F4E2C008F427C180914E\r
-:1005E000BB009091BC00A091BD00B091BE0015C1B0\r
-:1005F000883409F401C110F5853409F4EBC078F4AE\r
-:10060000833409F4DEC0843409F023C18091B7003B\r
-:100610009091B800A091B900B091BA00B2C08634F0\r
-:1006200009F4E1C0873409F014C18091B7009091BA\r
-:10063000B800A091B900B091BA0003C18B3409F49D\r
-:10064000F5C078F4893409F4E0C08A3409F001C1B6\r
-:100650008091B3009091B400A091B500B091B60024\r
-:10066000E0C0813A09F4EBC0823A09F4EDC0803A67\r
-:1006700009F0EFC084B78F7083B914BEE3C08AB5A8\r
-:100680009BB5DFC083B5DDC08CB7DBC08091DC00DB\r
-:100690009091DD0090939D0080939C0093B9D2C00F\r
-:1006A0008091DA009091DB00F5CF8091D800909195\r
-:1006B000D900F0CF80919C00C4C08091CE00909171\r
-:1006C000CF00ECCF8091CE009091CF00BAC0809146\r
-:1006D000CC009091CD00B5C08091CA009091CB0024\r
-:1006E000DDCF8091C8009091C900D8CF8091C8001B\r
-:1006F0009091C900A6C08091C5009091C600A1C08C\r
-:100700008091C3009091C4009CC08091C1009091E1\r
-:10071000C200C4CF8091C1009091C20092C080916C\r
-:10072000BF009091C000BACF8091AF009091B0000F\r
-:10073000A091B100B091B2008093A2009093A30069\r
-:10074000A093A400B093A5001CC08091A20090913A\r
-:10075000A300A091A400B091A5005FC08091A20069\r
-:1007600070C08091AB009091AC00A091AD00B091B1\r
-:10077000AE0080939E0090939F00A093A000B09342\r
-:10078000A1008B2F9927AA27BB275BC080919E00D1\r
-:1007900090919F00A091A000B091A10042C08091D3\r
-:1007A000BB009091BC00A091BD00B091BE00E9CF0C\r
-:1007B0008091BB009091BC00A091BD00B091BE00A3\r
-:1007C00030C08091BB009091BC00A091BD00B09161\r
-:1007D000BE0037C08091B7009091B800A091B900D9\r
-:1007E000B091BA001AC08091B7009091B800A09162\r
-:1007F000B900B091BA0015C08091B3009091B400D7\r
-:10080000A091B500B091B600BCCF8091B30090919B\r
-:10081000B400A091B500B091B600CD01AA27BB27C6\r
-:1008200010C0892F9A2FAB2FBB270BC08091B3002C\r
-:100830009091B400A091B500B091B60002C0809133\r
-:10084000A70083B985EC07C08091AA0083B985EC25\r
-:1008500086BF13B885E886BF8091E9008F5F8093DB\r
-:10086000E90005C086B78B7E86BF85EC86BFFF9109\r
-:10087000EF91BF91AF919F918F917F916F915F9118\r
-:100880004F913F912F910F900FBE0F901F90189591\r
-:100890001F920F920FB60F9211242F933F934F93F5\r
-:1008A0005F936F937F938F939F9389B380FF02C071\r
-:1008B00093E001C090E081FF02C081E09827809121\r
-:1008C0009B00891B80FF22C090939B002091D30046\r
-:1008D000982F9270222351F02091DE003091DF009A\r
-:1008E000892F90E00197820F931F0CC04091DE008A\r
-:1008F0005091DF0021E030E0B901691B7109CB01A3\r
-:10090000840F951F9093DF008093DE0089B382955A\r
-:100910008F7080FF02C093E001C090E081FF02C0B1\r
-:1009200081E0982780919A00891B80FF22C09093D4\r
-:100930009A002091D200982F9270222369F0409162\r
-:10094000DC005091DD0021E030E0B901691B710944\r
-:10095000CB01840F951F09C02091DC003091DD0090\r
-:10096000892F90E00197820F931F9093DD00809371\r
-:10097000DC0089B38695869580FF02C093E001C0B4\r
-:1009800090E081FF02C081E0982780919900891B47\r
-:1009900080FF22C0909399002091D100982F9270EF\r
-:1009A000222369F04091DA005091DB0021E030E031\r
-:1009B000B901691B7109CB01840F951F09C02091F2\r
-:1009C000DA003091DB00892F90E00197820F931FAE\r
-:1009D0009093DB008093DA0089B3829586958695A3\r
-:1009E000837080FF02C093E001C090E0827011F03C\r
-:1009F00081E0982780919800891B80FF22C0909306\r
-:100A000098002091D000982F9270222351F02091CD\r
-:100A1000D8003091D900892F90E00197820F931F61\r
-:100A20000CC04091D8005091D90021E030E0B901CC\r
-:100A3000691B7109CB01840F951F9093D900809396\r
-:100A4000D8008091C7008F5F8093C7009F918F91DE\r
-:100A50007F916F915F914F913F912F910F900FBEBA\r
-:100A60000F901F9018951F920F920FB60F9211249E\r
-:100A70008F939F93EF93FF935F9B16C0E091F500D8\r
-:100A8000F091F6008CB1808381E0EA35F80730F40C\r
-:100A90003196F093F600E093F50006C087EF90E002\r
-:100AA0009093F6008093F500FF91EF919F918F91C5\r
-:100AB0000F900FBE0F901F9018959C018AB188610E\r
-:100AC0008AB9579A80B5866080BDC901A0E0B0E0C0\r
-:100AD0009C01AD0184E0220F331F441F551F8A95EE\r
-:100AE000D1F760E079E08DE390E00E944D11DA01EA\r
-:100AF000C9010197A109B109892F9A2FAB2FBB27F3\r
-:100B0000A7FDBA9580BD215029B987EF90E0909359\r
-:100B1000F4008093F3009093F6008093F50008951D\r
-:100B20005D9BFECFFC0180818CB90895CF93DF934C\r
-:100B30001F92CDB7DEB78983CE0101960E94900542\r
-:100B400080E090E00F90DF91CF910895CF93DF93F5\r
-:100B5000EC01CE012196FC012081222319F00E9494\r
-:100B60009005F7CFDF91CF9108955F9BFECF8CB1B9\r
-:100B700090E008950C94B5056AEB75E086E995E080\r
-:100B80000C94D011CF93DF93FC01E253FF4FA0816F\r
-:100B9000B181EC01C453DF4F28813981A217B3071B\r
-:100BA000A1F05D9B12C02C912CB920813181AC0148\r
-:100BB00045535F4F2417350718F42F5F3F4F03C08D\r
-:100BC0009C0128593F4F31832083E091F300F0913D\r
-:100BD000F4002091F5003091F6002E173F07B1F197\r
-:100BE000EC01CC59DF4FA881B98120812C93688119\r
-:100BF00079819C012B523F4FD9013C91DB012C9113\r
-:100C0000321307C0AC014C525F4FDA012C912F5FB9\r
-:100C10002C939C012D593F4F6217730728F4DB0179\r
-:100C20001196B983A88302C099838883B1E0EA351D\r
-:100C3000FB0730F43196F093F400E093F30006C024\r
-:100C400087EF90E09093F4008093F300DF91CF91D1\r
-:100C50000895CF93DF93CDB7DEB76E970FB6F894B4\r
-:100C6000DEBF0FBECDBF88E087BB8CEF84BB8CEBB3\r
-:100C700081BB87E088BB80E482BB1092E80080E8FB\r
-:100C800095E20E945D050E94BC0580E582B986B7A9\r
-:100C90008B7E86BF85EC86BF81EF8FBD89E08EBDE0\r
-:100CA0001BBC1ABC19BC18BC89E785BD13BC83BF2B\r
-:100CB0001CBE8EE690E00E94531285B78F7885BFE8\r
-:100CC00084E089BF78942224239433243A94809139\r
-:100CD000E9008F3F41F48091E800853A21F4F894CF\r
-:100CE000E0E0F8E109958091F200882309F4E7C07B\r
-:100CF000F8948090EA009090EB00A090EC00B09007\r
-:100D0000ED006091EE007091EF008091F000909105\r
-:100D1000F1001092F20078942BED3FE049E450E4AA\r
-:100D20000E948F1027EB3BE04DEB5EE30E948F109B\r
-:100D300020E030E040E05FE30E948F10A5019401C5\r
-:100D40000E947B0E6B017C01A5019401C501B401D9\r
-:100D50000E947B0EA70196010E947A0E23E33BE5D9\r
-:100D600042E855E40E948F104B015C0123E33BE510\r
-:100D700042E855E4C701B6010E948F106B017C0167\r
-:100D80008091A8008823B9F18091A80064E670E002\r
-:100D9000681B7109072E000C880B990B0E949B0F92\r
-:100DA0009B01AC01C501B4010E948F1020E030E02E\r
-:100DB00048EC52E40E94F10E0E94630F7093CF0042\r
-:100DC0006093CE008091A80064E670E0681B710912\r
-:100DD000072E000C880B990B0E949B0F9B01AC0106\r
-:100DE000C701B6010E948F1020E030E048EC52E4C9\r
-:100DF0000E94F10E0AC0C501B4010E94630F7093F6\r
-:100E0000CF006093CE00C701B6010E94630F7093BC\r
-:100E1000C9006093C8008091A9008823B9F180912E\r
-:100E2000A90064E670E0681B7109072E000C880BAE\r
-:100E3000990B0E949B0F9B01AC01C501B4010E945C\r
-:100E40008F1020E030E048EC52E40E94F10E0E9446\r
-:100E5000630F7093CD006093CC008091A90064E68D\r
-:100E600070E0681B7109072E000C880B990B0E941B\r
-:100E70009B0F9B01AC01C701B6010E948F1020E0BF\r
-:100E800030E048EC52E40E94F10E0AC0C501B40102\r
-:100E90000E94630F7093CD006093CC00C701B60130\r
-:100EA0000E94630F7093CB006093CA00F1E0F0934F\r
-:100EB000D700F093D600F093D500F093D400809142\r
-:100EC000C7008C3908F4E8C51092C700F894209147\r
-:100ED000DE003091DF003A8329834091DC0050919D\r
-:100EE000DD005C834B838091DA009091DB009E8370\r
-:100EF0008D83E091D800F091D900F887EF83789442\r
-:100F000080919600909197005901A81AB90A809192\r
-:100F10009400909195008A01081B190B8091920012\r
-:100F200090919300ED80FE80E81AF90A809190007C\r
-:100F3000909191006F01C81AD90AB5010B2C000CD1\r
-:100F4000880B990B0E949B0F2AE037ED43E25CE38C\r
-:100F50000E94F10E0E94630F69877A878B879C87B6\r
-:100F6000B801012E000C880B990B0E949B0F2AE000\r
-:100F700037ED43E25CE30E94F10E0E94630F6D8740\r
-:100F80007E878F87988BB7010F2C000C880B990BED\r
-:100F90000E949B0F2AE037ED43E25CE30E94F10ED2\r
-:100FA0000E94630F698B7A8B8B8B9C8BB6010D2C07\r
-:100FB000000C880B990B0E949B0F2AE037ED43E24F\r
-:100FC0005CE30E94F10E0E94630F6D8B7E8B8F8B12\r
-:100FD000988FB501600F711F072E000C880B990BBD\r
-:100FE0000E949B0F23E33BE542E056E40E94F10E92\r
-:100FF0004B015C01B7016C0D7D1D072E000C880BA9\r
-:10100000990B0E949B0F23E33BE542E056E40E94CC\r
-:10101000F10E2B013C01C090B300D090B400E090E1\r
-:10102000B500F090B600A50194010E947A0E27EB5E\r
-:101030003BE04DEB5EE30E94F10E9B01AC01C7016A\r
-:10104000B6010E947B0E6B017C012BED3FE049EC69\r
-:1010500050E40E948A1018164CF42BED3FE049EC46\r
-:1010600050E4C701B6010E947A0E12C02BED3FE09A\r
-:1010700049EC50ECC701B6010E94E70E87FF0AC099\r
-:101080002BED3FE049EC50E4C701B6010E947B0E16\r
-:101090006B017C01A3019201C501B4010E947B0E8A\r
-:1010A00020E030E040E05FE30E948F104B015C01E4\r
-:1010B0004090BB005090BC006090BD007090BE009E\r
-:1010C000C701B6010E94EC0EA50194010E948F1089\r
-:1010D0009B01AC01C301B2010E947B0E698F7A8F24\r
-:1010E0008B8F9C8F4090B7005090B8006090B900F3\r
-:1010F0007090BA00C701B6010E94FC10A5019401CE\r
-:101100000E948F109B01AC01C301B2010E947B0EB3\r
-:101110002B013C010D851E8529853A85020F131F81\r
-:1011200017FF02C00F5F1F4F159507954D895E8908\r
-:1011300089899A89480F591F57FF02C04F5F5F4F37\r
-:10114000FA01F595E795FE8FED8FBF01600F711FD6\r
-:10115000072E000C880B990B0E949B0F23E33BE5A5\r
-:1011600042E056E40E94F10E4B015C016D8D7E8DD4\r
-:10117000601B710B072E000C880B990B0E949B0FB4\r
-:1011800029E935E347E955E40E94F10EF894C0924D\r
-:10119000B300D092B400E092B500F092B600298D71\r
-:1011A0003A8D4B8D5C8D2093BB003093BC004093F7\r
-:1011B000BD005093BE004092B7005092B8006092BC\r
-:1011C000B9007092BA0049855A855093C600409381\r
-:1011D000C500ED85FE85F093C400E093C300298926\r
-:1011E0003A893093C2002093C1004D895E895093A3\r
-:1011F000C0004093BF008092AF009092B000A092D8\r
-:10120000B100B092B2006093AB007093AC008093D9\r
-:10121000AD009093AE00789489819A819093970065\r
-:1012200080939600EB81FC81F0939500E09394000D\r
-:101230002D813E8130939300209392004F815885F9\r
-:1012400050939100409390008091D700813009F035\r
-:1012500094C08091CE009091CF00892B89F4109298\r
-:10126000E7001092E60010928F0010928E0010920C\r
-:101270008A0010928B0010928C0010928D007DC01D\r
-:101280002091CE003091CF008091C5009091C60092\r
-:101290008901081B190BB801012E000C880B990B52\r
-:1012A000C0908A00D0908B00E0908C00F0908D0070\r
-:1012B000C60ED71EE81EF91EC0928A00D0928B007F\r
-:1012C000E0928C00F0928D000E949B0F2CEE31E595\r
-:1012D00048E35DE30E948F104B015C01C701B6013A\r
-:1012E0000E949B0F2EE830E44CEB5CE30E948F10D1\r
-:1012F0009B01AC01C501B4010E947B0E6B017C0116\r
-:1013000080918E0090918F00B801681B790B072E99\r
-:10131000000C880B990B0E949B0F2AE037ED43E2EB\r
-:101320005DE30E948F109B01AC01C701B6010E94D2\r
-:101330007B0E0E94630F7093E7006093E6001093AA\r
-:101340008F0000938E008091E6009091E7008F3F20\r
-:10135000910541F03CF08FEF90E09093E70080938F\r
-:10136000E6000BC08091E6009091E70081309F4F2E\r
-:1013700024F43092E7002092E6008091D60081307C\r
-:1013800009F094C08091CC009091CD00892B89F414\r
-:101390001092E5001092E4001092890010928800EB\r
-:1013A000109284001092850010928600109287009F\r
-:1013B0007DC02091CC003091CD008091C3009091F0\r
-:1013C000C4008901081B190BB801012E000C880B01\r
-:1013D000990BC0908400D0908500E0908600F0903A\r
-:1013E0008700C60ED71EE81EF91EC0928400D09258\r
-:1013F0008500E0928600F09287000E949B0F2CEE01\r
-:1014000031E548E35DE30E948F104B015C01C701A9\r
-:10141000B6010E949B0F2EE830E44CEB5CE30E9487\r
-:101420008F109B01AC01C501B4010E947B0E6B01C2\r
-:101430007C018091880090918900B801681B790B2C\r
-:10144000072E000C880B990B0E949B0F2AE037EDAA\r
-:1014500043E25DE30E948F109B01AC01C701B6011E\r
-:101460000E947B0E0E94630F7093E5006093E4007E\r
-:1014700010938900009388008091E4009091E5002A\r
-:101480008F3F910541F03CF02FEF30E03093E500C5\r
-:101490002093E4000BC08091E4009091E50081303E\r
-:1014A0009F4F24F43092E5002092E4008091D50013\r
-:1014B000813009F094C08091CA009091CB00892BB3\r
-:1014C00089F41092E3001092E200109283001092CF\r
-:1014D000820010927E0010927F0010928000109285\r
-:1014E00081007DC02091CA003091CB008091C10065\r
-:1014F0009091C2008901081B190BB801012E000C44\r
-:10150000880B990BC0907E00D0907F00E090800007\r
-:10151000F0908100C60ED71EE81EF91EC0927E0014\r
-:10152000D0927F00E0928000F09281000E949B0F99\r
-:101530002CEE31E548E35DE30E948F104B015C0126\r
-:10154000C701B6010E949B0F2EE830E44CEB5CE330\r
-:101550000E948F109B01AC01C501B4010E947B0E5B\r
-:101560006B017C018091820090918300B801681B1F\r
-:10157000790B072E000C880B990B0E949B0F2AE019\r
-:1015800037ED43E25DE30E948F109B01AC01C70180\r
-:10159000B6010E947B0E0E94630F7093E30060937C\r
-:1015A000E20010938300009382008091E20090910A\r
-:1015B000E3008F3F910541F03CF04FEF50E0509336\r
-:1015C000E3004093E2000BC08091E2009091E300C1\r
-:1015D00081309F4F24F43092E3002092E20080910A\r
-:1015E000D400813009F094C08091C8009091C90066\r
-:1015F000892B89F41092E1001092E00010927D0096\r
-:1016000010927C00109278001092790010927A006B\r
-:1016100010927B007DC02091C8003091C90080915C\r
-:10162000BF009091C0008901081B190BB801012E61\r
-:10163000000C880B990BC0907800D0907900E09056\r
-:101640007A00F0907B00C60ED71EE81EF91EC092ED\r
-:101650007800D0927900E0927A00F0927B000E94AC\r
-:101660009B0F2CEE31E548E35DE30E948F104B01A8\r
-:101670005C01C701B6010E949B0F2EE830E44CEBE1\r
-:101680005CE30E948F109B01AC01C501B4010E9474\r
-:101690007B0E6B017C0180917C0090917D00B801F4\r
-:1016A000681B790B072E000C880B990B0E949B0F6F\r
-:1016B0002AE037ED43E25DE30E948F109B01AC010D\r
-:1016C000C701B6010E947B0E0E94630F7093E10078\r
-:1016D0006093E00010937D0000937C008091E00017\r
-:1016E0009091E1008F3F910541F03CF08FEF90E049\r
-:1016F0009093E1008093E0000BC08091E000909116\r
-:10170000E10081309F4F24F43092E1002092E0000C\r
-:1017100090B326B39074892F90E033E09595879528\r
-:101720003A95E1F7922F9770892B80958F7080936F\r
-:10173000A7002091D700809166009091670021302A\r
-:1017400019F52091A70020FF1FC0009729F01092E3\r
-:10175000E7001092E60018C02091E6003091E70003\r
-:10176000121613063CF42FEF30E03093E70020937D\r
-:10177000E6000AC02091E6003091E70037FF04C080\r
-:101780003092E7002092E6002091D600213039F512\r
-:101790002091A70021FF23C02091640030916500B3\r
-:1017A000232B29F01092E5001092E40018C020913C\r
-:1017B000E4003091E500121613063CF44FEF50E0C0\r
-:1017C0005093E5004093E4000AC02091E40030917A\r
-:1017D000E50037FF04C03092E5002092E40020913C\r
-:1017E000D500213039F52091A70022FF23C0209198\r
-:1017F000620030916300232B29F01092E3001092D5\r
-:10180000E20018C02091E2003091E30012161306A6\r
-:101810003CF4EFEFF0E0F093E300E093E2000AC065\r
-:101820002091E2003091E30037FF04C03092E300E2\r
-:101830002092E2002091D400213039F52091A700B8\r
-:1018400023FF23C02091600030916100232B29F0F9\r
-:101850001092E1001092E00018C02091E000309159\r
-:10186000E100121613063CF42FEF30E03093E10054\r
-:101870002093E0000AC02091E0003091E10037FFA2\r
-:1018800004C03092E1002092E0002091E600309107\r
-:10189000E70082179307B9F18091E6009091E70085\r
-:1018A000892B19F485B38C6017C08091D300811106\r
-:1018B00007C08091E6009091E7001816190654F0D1\r
-:1018C0008091D300882351F08091E6009091E70049\r
-:1018D00097FF04C085B3837F85BB02C0AA98AB9AEB\r
-:1018E0008091E6009091E7009093670080936600F6\r
-:1018F0008091E6009091E70097FF03C09195819554\r
-:1019000091099BBD8ABD8091E4009091E5002091F2\r
-:1019100064003091650028173907B9F18091E4001F\r
-:101920009091E500892B19F485B3806317C08091ED\r
-:10193000D200811107C08091E4009091E500181653\r
-:10194000190654F08091D200882351F08091E40070\r
-:101950009091E50097FF04C085B38F7C85BB02C0E2\r
-:10196000AC98AD9A8091E4009091E5009093650069\r
-:10197000809364008091E4009091E50097FF03C09C\r
-:1019800091958195910999BD88BD8091E2009091D2\r
-:10199000E300209162003091630028173907B1F10C\r
-:1019A0008091E2009091E300892B19F485B3806C5B\r
-:1019B00017C08091D100811107C08091E200909101\r
-:1019C000E3001816190654F08091D100882351F0D5\r
-:1019D0008091E2009091E30097FF04C085B38F737C\r
-:1019E00085BB02C0AE98AF9A8091E2009091E3006F\r
-:1019F00090936300809362008091E2009091E300F5\r
-:101A000097FF03C091958195910983BD8091E00076\r
-:101A10009091E10020916000309161002817390712\r
-:101A2000B1F18091E0009091E100892B19F482B32B\r
-:101A30008C6017C08091D000811107C08091E000B8\r
-:101A40009091E1001816190654F08091D000882377\r
-:101A500051F08091E0009091E10097FF04C082B3C3\r
-:101A6000837F82BB02C09298939A8091E00090910C\r
-:101A7000E10090936100809360008091E00090917C\r
-:101A8000E10097FF03C09195819591098CBF8091EA\r
-:101A9000AA008F5F8093AA0085B7806885BF88956C\r
-:101AA00085B78F7785BF13C9ACE0B0E0EAE5FDE00C\r
-:101AB0000C9470116C015B017A01FC011782168293\r
-:101AC000838181FF0EC1CE0101964C01F601038195\r
-:101AD000F50103FD159103FF11915F01112309F435\r
-:101AE000FCC0153249F403FD159103FF11915F010C\r
-:101AF000153211F020E01BC0B601812F90E00E944A\r
-:101B00001B1237017301E2CF112309F4E6C0612FE4\r
-:101B100070E089E790E02C870E94C5112C85892B05\r
-:101B200049F0F50103FD159103FF11915F0127FFB6\r
-:101B3000EBCF09C0133229F01C3609F0D5C020685C\r
-:101B4000F0CF20E1EECF022F112309F4C6C0612FA0\r
-:101B500070E082E790E02C870E94C5112C85892BCC\r
-:101B600041F03701F4E06F0E711CB6018FE390E095\r
-:101B700011C0133639F0133781F0133519F5022FE0\r
-:101B800001600BC0370182E0680E711CB601F701DD\r
-:101B9000808191810E941B12B5CF3701F2E06F0E58\r
-:101BA000711CF701E080F180F70100FD859100FFD5\r
-:101BB00081917F01882309F4A5CFB60190E00E94AE\r
-:101BC0001B12F2CF143611F0193629F5370127FF11\r
-:101BD00009C0F4E06F0E711CF70160817181828190\r
-:101BE00093810AC0F2E06F0E711CF7016081718170\r
-:101BF000072E000C880B990B022F0F7E97FF08C051\r
-:101C000090958095709561957F4F8F4F9F4F0064A1\r
-:101C10002AE030E033C0103799F040F41835B1F0C5\r
-:101C20001F3609F05AC028E030E014C0153719F00B\r
-:101C3000183741F052C0022F0F7E2AE030E00AC070\r
-:101C4000022F0061046220E130E004C0022F046032\r
-:101C500020E132E0370107FF09C0F4E06F0E711C8C\r
-:101C6000F701608171818281938108C0F2E06F0E7B\r
-:101C7000711CF7016081718180E090E0A4010E94F5\r
-:101C80008312182F181906FF05C0B6018DE290E0E7\r
-:101C90000E941B1204FF15C0FE01E10FF11D80819F\r
-:101CA000803379F0B60180E390E00E941B1202FFBE\r
-:101CB00008C00072802F90E0B601885A9F4F0E94A2\r
-:101CC0001B121150F401E10FF11D8081B60190E06B\r
-:101CD0000E941B121111F5CF15CFF6018681978155\r
-:101CE00005C08FEF9FEF02C0022F31CF2C96EEE0A0\r
-:101CF0000C948C115058BB27AA270E94920E0C946A\r
-:101D00003C100E94031038F00E940A1020F039F4B1\r
-:101D10009F3F19F426F40C9400100EF4E095E7FBB5\r
-:101D20000C94FA0FE92F0E94611058F3BA1762075A\r
-:101D300073078407950720F079F4A6F50C948310B7\r
-:101D40000EF4E0950B2EBA2FA02D0B01B9019001D6\r
-:101D50000C01CA01A0011124FF27591B99F0593F1A\r
-:101D600050F4503E68F11A16F040A22F232F342F62\r
-:101D70004427585FF3CF469537952795A795F040B0\r
-:101D80005395C9F77EF41F16BA0B620B730B840BC5\r
-:101D9000BAF09150A1F0FF0FBB1F661F771F881F7D\r
-:101DA000C2F70EC0BA0F621F731F841F48F48795D5\r
-:101DB00077956795B795F7959E3F08F0B0CF9395C7\r
-:101DC000880F08F09927EE0F9795879508950E9440\r
-:101DD000D60F08F481E008950E941310E3950C9447\r
-:101DE0004D100E94050F0C943C100E940A1058F0F0\r
-:101DF0000E94031040F029F45F3F29F00C94FA0F81\r
-:101E000051110C9484100C9400100E94611068F31E\r
-:101E10009923B1F3552391F3951B550BBB27AA27A3\r
-:101E200062177307840738F09F5F5F4F220F331FDD\r
-:101E3000441FAA1FA9F335D00E2E3AF0E0E832D0A5\r
-:101E400091505040E695001CCAF72BD0FE2F29D0A8\r
-:101E5000660F771F881FBB1F261737074807AB077A\r
-:101E6000B0E809F0BB0B802DBF01FF2793585F4FEF\r
-:101E70003AF09E3F510578F00C94FA0F0C948410C0\r
-:101E80005F3FE4F3983ED4F3869577956795B795D1\r
-:101E9000F7959F5FC9F7880F911D9695879597F9DC\r
-:101EA0000895E1E0660F771F881FBB1F6217730755\r
-:101EB0008407BA0720F0621B730B840BBA0BEE1F6A\r
-:101EC00088F7E09508950E946A0F6894B1110C9408\r
-:101ED000841008950E94691088F09F5798F0B92FD8\r
-:101EE0009927B751B0F0E1F0660F771F881F991F4F\r
-:101EF0001AF0BA95C9F714C0B13091F00E9483105E\r
-:101F0000B1E008950C948310672F782F8827B85F6D\r
-:101F100039F0B93FCCF3869577956795B395D9F7A6\r
-:101F20003EF490958095709561957F4F8F4F9F4FB0\r
-:101F30000895E89409C097FB3EF4909580957095BC\r
-:101F400061957F4F8F4F9F4F9923A9F0F92F96E905\r
-:101F5000BB279395F695879577956795B795F1117A\r
-:101F6000F8CFFAF4BB0F11F460FF1BC06F5F7F4F17\r
-:101F70008F4F9F4F16C0882311F096E911C0772329\r
-:101F800021F09EE8872F762F05C0662371F096E832\r
-:101F9000862F70E060E02AF09A95660F771F881F01\r
-:101FA000DAF7880F9695879597F90895990F0008A5\r
-:101FB000550FAA0BE0E8FEEF16161706E807F9071B\r
-:101FC000C0F012161306E407F50798F0621B730BB6\r
-:101FD000840B950B39F40A2661F0232B242B252B37\r
-:101FE00021F408950A2609F4A140A6958FEF811DDA\r
-:101FF000811D089597F99F6780E870E060E008957B\r
-:102000009FEF80EC089500240A9416161706180610\r
-:102010000906089500240A941216130614060506EC\r
-:1020200008950C9400100E946910D8F3E894E0E041\r
-:10203000BB279F57F0F02AED3FE049EC06C0EE0FBA\r
-:10204000BB0F661F771F881F28F0B23A620773071D\r
-:10205000840728F0B25A620B730B840BE3959A95B0\r
-:1020600072F7803830F49A95BB0F661F771F881F70\r
-:10207000D2F790480C940611092E0394000C11F429\r
-:10208000882352F0BB0F40F4BF2B11F460FF04C053\r
-:102090006F5F7F4F8F4F9F4F0895EF93E0FF07C013\r
-:1020A000A2EA2AED3FE049EC5FEB0E94920E0E940B\r
-:1020B0003C100F90039401FC9058E4E5F0E00C9480\r
-:1020C000121157FD9058440F551F59F05F3F71F0A2\r
-:1020D0004795880F97FB991F61F09F3F79F087958F\r
-:1020E0000895121613061406551FF2CF4695F1DF18\r
-:1020F00008C0161617061806991FF1CF86957105A8\r
-:10210000610508940895E894BB2766277727CB01DB\r
-:1021100097F908950E94D60F08F48FEF08950E9452\r
-:10212000A2100C943C100E94031038F00E940A1078\r
-:1021300020F0952311F00C94FA0F0C940010112448\r
-:102140000C9484100E94611070F3959FC1F3950F59\r
-:1021500050E0551F629FF001729FBB27F00DB11D2B\r
-:10216000639FAA27F00DB11DAA1F649F6627B00DBB\r
-:10217000A11D661F829F2227B00DA11D621F739FA4\r
-:10218000B00DA11D621F839FA00D611D221F749FB2\r
-:102190003327A00D611D231F849F600D211D822FF9\r
-:1021A000762F6A2F11249F5750409AF0F1F0882320\r
-:1021B0004AF0EE0FFF1FBB1F661F771F881F91504D\r
-:1021C0005040A9F79E3F510580F00C94FA0F0C94F3\r
-:1021D00084105F3FE4F3983ED4F386957795679536\r
-:1021E000B795F795E7959F5FC1F7FE2B880F911D77\r
-:1021F0009695879597F908959F930E9413100F90D5\r
-:1022000007FCEE5F0C944D109F3F31F0915020F48D\r
-:10221000879577956795B795880F911D96958795C2\r
-:1022200097F908959F938F937F936F93FF93EF9305\r
-:102230009B01AC010E948F10EF91FF910E9426112B\r
-:102240002F913F914F915F910C948F10DF93CF931B\r
-:102250001F930F93FF92EF92DF927B018C016894A2\r
-:1022600006C0DA2EEF010E94A210FE01E894A591AB\r
-:102270002591359145915591A6F3EF010E94920E5B\r
-:10228000FE019701A801DA9469F7DF90EF90FF90C3\r
-:102290000F911F91CF91DF910895052E97FB1EF4AA\r
-:1022A00000940E94641157FD07D00E94A31107FCFF\r
-:1022B00003D04EF40C9464115095409530952195BF\r
-:1022C0003F4F4F4F5F4F0895909580957095619562\r
-:1022D0007F4F8F4F9F4F08952F923F924F925F9263\r
-:1022E0006F927F928F929F92AF92BF92CF92DF9226\r
-:1022F000EF92FF920F931F93CF93DF93CDB7DEB78B\r
-:10230000CA1BDB0B0FB6F894DEBF0FBECDBF09941E\r
-:102310002A88398848885F846E847D848C849B8475\r
-:10232000AA84B984C884DF80EE80FD800C811B8183\r
-:10233000AA81B981CE0FD11D0FB6F894DEBF0FBEB2\r
-:10234000CDBFED010895A1E21A2EAA1BBB1BFD0112\r
-:102350000DC0AA1FBB1FEE1FFF1FA217B307E40784\r
-:10236000F50720F0A21BB30BE40BF50B661F771FDC\r
-:10237000881F991F1A9469F76095709580959095BC\r
-:102380009B01AC01BD01CF010895FC01059006162B\r
-:1023900021F00020D9F7C00108953197CF010895A9\r
-:1023A0000F931F93CF93DF93009731F4611571055D\r
-:1023B00019F480E090E03AC08B01EC016EE070E02F\r
-:1023C00081E090E00E94E112FC01892B91F380E80A\r
-:1023D00083830115110571F01387028781E88383D8\r
-:1023E00080915E0190915F01892B21F4F0935F0150\r
-:1023F000E0935E012097C9F0D187C0878381826016\r
-:1024000083838091600190916101892B71F4F09335\r
-:102410006101E09360018091620190916301892BD9\r
-:1024200021F4F0936301E0936201CF01DF91CF913A\r
-:102430001F910F9108950F931F93CF93DF93FB018B\r
-:10244000238121FD03C08FEF9FEF28C022FF16C01C\r
-:1024500046815781248135814217530744F4A08176\r
-:10246000B1819D012F5F3F4F318320838C93268163\r
-:1024700037812F5F3F4F3783268310C0EB01092F31\r
-:10248000182F0084F185E02D0995892BE1F68E81C6\r
-:102490009F8101969F838E83812F902FDF91CF9113\r
-:1024A0001F910F9108950F931F93CF93DF93E091A6\r
-:1024B0006001F0916101238121FF1BC08C01D0E0FC\r
-:1024C000C0E0F80181918F0160916001709161011C\r
-:1024D000DB011896ED91FC911997882331F009954D\r
-:1024E000892B79F3DFEFCFEFECCF8AE00995892BC9\r
-:1024F00019F08FEF9FEF02C08D2F9C2FDF91CF91AE\r
-:102500001F910F910895FA01AA27283051F1203127\r
-:1025100081F1E8946F936E7F6E5F7F4F8F4F9F4F77\r
-:10252000AF4FB1E03ED0B4E03CD0670F781F891FB9\r
-:102530009A1FA11D680F791F8A1F911DA11D6A0F87\r
-:10254000711D811D911DA11D20D009F468943F913A\r
-:102550002AE0269F11243019305D3193DEF6CF0139\r
-:102560000895462F4770405D4193B3E00FD0C9F7FF\r
-:10257000F6CF462F4F70405D4A3318F0495D31FD6C\r
-:102580004052419302D0A9F7EACFB4E0A6959795BF\r
-:10259000879577956795BA95C9F700976105710595\r
-:1025A00008959B01AC010A2E0694579547953795DF\r
-:1025B0002795BA95C9F7620F731F841F951FA01D39\r
-:1025C00008950F931F93CF93DF93869F8001879F7A\r
-:1025D000100D969F100D1124C8010E94FD12EC01F0\r
-:1025E000009729F0A80160E070E00E942A14CE0153\r
-:1025F000DF91CF911F910F910895CF93DF93823098\r
-:10260000910510F482E090E0E0916601F09167019D\r
-:1026100020E030E0C0E0D0E0309711F140815181FE\r
-:1026200048175907C0F04817590761F48281938110\r
-:10263000209719F09B838A832BC090936701809326\r
-:10264000660126C02115310519F04217530718F409\r
-:102650009A01BE01DF01EF010280F381E02DDCCFA2\r
-:102660002115310509F1281B390B2430310590F46F\r
-:1026700012968D919C9113976115710521F0FB01C4\r
-:102680009383828304C09093670180936601FD0168\r
-:10269000329644C0FD01E20FF31F819391932250C3\r
-:1026A00031092D933C933AC020916401309165012A\r
-:1026B000232B41F420916A0030916B003093650127\r
-:1026C0002093640120916800309169002115310543\r
-:1026D00041F42DB73EB740916C0050916D00241B22\r
-:1026E000350BE0916401F0916501E217F307A0F466\r
-:1026F0002E1B3F0B2817390778F0AC014E5F5F4F58\r
-:102700002417350748F04E0F5F1F50936501409323\r
-:1027100064018193919302C0E0E0F0E0CF01DF918A\r
-:10272000CF9108950F931F93CF93DF93009709F4F0\r
-:102730008CC0FC01329713821282009166011091C5\r
-:1027400067010115110581F420813181820F931FEA\r
-:1027500020916401309165012817390779F5F093CC\r
-:102760006501E093640171C0D80140E050E0AE170C\r
-:10277000BF0750F412962D913C911397AD0121158E\r
-:10278000310509F1D901F3CF9D01DA0133832283A9\r
-:1027900060817181860F971F8217930769F4EC019E\r
-:1027A00028813981260F371F2E5F3F4F31832083C9\r
-:1027B0008A819B8193838283452B29F4F09367015F\r
-:1027C000E093660142C01396FC93EE931297ED01DD\r
-:1027D000499159919E01240F351FE217F30771F4B7\r
-:1027E00080819181840F951F029611969C938E9300\r
-:1027F0008281938113969C938E931297E0E0F0E090\r
-:10280000D80112968D919C911397009719F0F801B9\r
-:102810008C01F6CF8D919C9198012E5F3F4F820FD6\r
-:10282000931F20916401309165012817390769F4DD\r
-:10283000309729F4109267011092660102C013824A\r
-:1028400012821093650100936401DF91CF911F9173\r
-:102850000F910895DC0101C06D9341505040E0F7A5\r
-:062860000895F894FFCF7B\r
-:1028660000800080008000800000680120000D0AC2\r
-:0828760053746172740D00003F\r
+:10009000D8E0DEBFCDBF10E0A0E6B0E0EEE3F2E2D4\r
+:1000A00002C005900D92A437B107D9F721E0A4E76B\r
+:1000B000B0E001C01D92AD34B207E1F70E94C00567\r
+:1000C0000C941D110C9400001F920F920FB60F920A\r
+:1000D00011240F931F932F933F934F935F936F932D\r
+:1000E0007F938F939F93AF93BF93EF93FF9381B1D0\r
+:1000F000887F803881F040F4803609F048C385EC71\r
+:1001000086BF1092CE0048C3883A09F46EC1883B7E\r
+:1001100009F46BC13CC38091CE008C3209F4E9C074\r
+:10012000D8F5813209F48CC0A0F4823009F470C093\r
+:1001300038F4882309F463C0813009F48EC01FC3EA\r
+:10014000843009F471C008F488C0803209F485C095\r
+:1001500016C3883209F4CDC088F4823209F47DC018\r
+:10016000833209F00CC383B12091960090E0922B6A\r
+:100170009093BB008093BA0081E0A7C040919200A9\r
+:100180005091930060919400709195008A3209F427\r
+:1001900068C008F466C074C0833509F4C6C0A0F412\r
+:1001A0008F3209F495C038F48D3209F4A7C08E322D\r
+:1001B00009F4A4C0E4C2813509F4A0C008F09EC0CF\r
+:1001C000803509F496C0DBC2873509F4E4C050F4E9\r
+:1001D000853509F4C9C008F0C7C083B190E0A0E03C\r
+:1001E000B0E0D0C0813909F4F8C08F3F09F4F9C0FC\r
+:1001F000803909F0C4C283B18093BE00BDC283B10F\r
+:100200008093CE008091CE0081508093CE00B4C206\r
+:1002100083B12091960090E0922B9093CC00809334\r
+:10022000CB001092C000A8C283B12091960090E04C\r
+:10023000922B9093CA008093C9001092BF009CC279\r
+:1002400083B12091960090E0922B9093BD00809313\r
+:10025000BC0081E08093C0008FC283B18093960080\r
+:100260008BC283B1762F652F542F4427482B4093A0\r
+:1002700092005093930060939400709395007CC219\r
+:1002800083B1762F652F542F44278A019B01082BB9\r
+:10029000C901B80160939200709393008093940019\r
+:1002A0009093950023E33BE542E855E40E947B0DE3\r
+:1002B0000E944F0C7093BD006093BC007093BB0014\r
+:1002C0006093BA0081E08093C0008093BF0054C265\r
+:1002D00023B18091920090919300A0919400B091ED\r
+:1002E0009500BA2FA92F982F8827BC01CD01622B2A\r
+:1002F000D1CF83B190E0A0E0B0E00EC023B18091F7\r
+:10030000920090919300A0919400B0919500BA2F23\r
+:10031000A92F982F8827822B809392009093930087\r
+:10032000A0939400B093950027C223B180919200CE\r
+:1003300090919300A0919400B0919500BA2FA92FAD\r
+:10034000982F8827822B8093920090939300A093FC\r
+:100350009400B09395008093CF009093D000A09329\r
+:10036000D100B093D20008C223B180918E00909149\r
+:100370008F00A0919000B0919100BA2FA92F982FD3\r
+:100380008827822B80938E0090938F00A0939000FB\r
+:10039000B0939100F1C123B180918E0090918F00B4\r
+:1003A000A0919000B0919100BA2FA92F982F882783\r
+:1003B000822B80938E0090938F00A0939000B09337\r
+:1003C00091008093D3009093D400A093D500B09374\r
+:1003D000D60081E08093D700CFC183B180936400C1\r
+:1003E000CBC183B18093CD00CAC18091CE00883348\r
+:1003F00009F426C108F067C0803209F4F9C058F545\r
+:10040000823109F4E3C088F4843009F4D7C030F4B1\r
+:10041000823009F0B3C18AB59BB5ADC1803109F412\r
+:10042000D0C0813109F4E1C0A9C1853109F4DDC032\r
+:1004300058F4833109F4D9C0843109F09FC1809107\r
+:10044000C3009091C400C6C0863109F4C9C0873189\r
+:1004500009F4CBC093C1823309F4DEC0D0F48332F7\r
+:1004600009F4D0C058F4813209F4C7C0823209F0CF\r
+:1004700085C18091BA009091BB00B0C0803309F46F\r
+:10048000C6C0813309F07AC18091B7009091B8005D\r
+:1004900072C1853309F4CAC058F4833309F4C1C06A\r
+:1004A000843309F06BC18091B3009091B40096C081\r
+:1004B000863309F4C0C0873309F060C18091B10070\r
+:1004C0009091B20058C1833409F408C1D0F58D333E\r
+:1004D00009F4E9C0E0F48A3309F4CCC008F4C1C0DF\r
+:1004E0008B3309F4D0C08C3309F048C18091990056\r
+:1004F00090919A00A0919B00B0919C0080938E00F7\r
+:1005000090938F00A0939000B0939100C7C0803467\r
+:1005100009F4BCC038F48E3309F4CEC08F3309F42B\r
+:100520001AC12CC1813409F4D0C0823409F026C12B\r
+:100530008091A9009091AA00A091AB00B091AC006D\r
+:1005400005C1893409F4EEC010F5863409F4D8C029\r
+:1005500078F4843409F4CBC0853409F00FC180915C\r
+:10056000A5009091A600A091A700B091A800E2C0BC\r
+:10057000873409F4CEC0883409F000C18091A1000D\r
+:100580009091A200A091A300B091A40087C0803AEE\r
+:1005900009F4EAC038F48A3409F4D0C08B3409F481\r
+:1005A000DAC0ECC0813A09F4E4C0823A09F0E6C04E\r
+:1005B0008091980083B985EC86BFE0C088B599B575\r
+:1005C000DAC08091C7009091C80004C08091C50036\r
+:1005D0009091C60090938D0080938C0093B9CCC00D\r
+:1005E0008091C1009091C200F5CF80918C00C3C072\r
+:1005F0008091BC009091BD00F1CF8091BC009091A2\r
+:10060000BD00B9C08091BA009091BB00B4C0809188\r
+:10061000B7009091B800E2CF8091B5009091B600FC\r
+:10062000DDCF8091B5009091B600A5C08091B30058\r
+:100630009091B400A0C08091B1009091B200CECF53\r
+:1006400080919D0090919E00A0919F00B091A0008C\r
+:100650008093920090939300A0939400B0939500A0\r
+:100660001DC08091920090919300A0919400B09150\r
+:10067000950060C08091920090919300A0919400A9\r
+:10068000B091950063C08091920075C08091A900DF\r
+:100690009091AA00A091AB00B091AC008B2F99274C\r
+:1006A000AA27BB2768C080918E0090918F00A091EF\r
+:1006B0009000B09191003EC080918E0090918F008B\r
+:1006C000A0919000B091910041C08091A9009091BB\r
+:1006D000AA00A091AB00B091AC002CC08091A90001\r
+:1006E0009091AA00A091AB00B091AC0044C0809161\r
+:1006F000A5009091A600A091A700B091A800CECF30\r
+:100700008091A5009091A600A091A700B091A800AB\r
+:100710001DC08091A5009091A600A091A700B09166\r
+:10072000A80029C08091A1009091A200A091A300EF\r
+:10073000B091A400CD01AA27BB271DC08091A100C4\r
+:100740009091A200A091A300B091A400892F9A2FAC\r
+:10075000AB2FBB2710C08091A1009091A200A09167\r
+:10076000A300B091A40007C084B78F7083B914BEF2\r
+:1007700003C08091970083B985EC02C013B885E867\r
+:1007800086BF8091CE008F5F8093CE0005C086B774\r
+:100790008B7E86BF85EC86BFFF91EF91BF91AF91B5\r
+:1007A0009F918F917F916F915F914F913F912F9189\r
+:1007B0001F910F910F900FBE0F901F9018951F92D1\r
+:1007C0000F920FB60F9211242F933F934F935F9385\r
+:1007D0006F937F938F939F9389B380FF02C093E0C1\r
+:1007E00001C090E081FF02C081E0982780918B00DA\r
+:1007F000891B80FF22C090938B002091BE00982F10\r
+:100800009270222369F04091C7005091C80021E006\r
+:1008100030E0B901691B7109CB01840F951F09C034\r
+:100820002091C7003091C800892F90E00197820F76\r
+:10083000931F9093C8008093C70089B382958F70EF\r
+:1008400080FF02C093E001C090E081FF02C081E020\r
+:10085000982780918A00891B80FF22C090938A008C\r
+:100860002091BE00982F9270222369F04091C5001C\r
+:100870005091C60021E030E0B901691B7109CB013C\r
+:10088000840F951F09C02091C5003091C600892FA3\r
+:1008900090E00197820F931F9093C6008093C5004C\r
+:1008A00089B38695869580FF02C093E001C090E0F1\r
+:1008B00081FF02C081E0982780918900891B80FF19\r
+:1008C00022C09093890020916400982F9270222377\r
+:1008D00051F02091C3003091C400892F90E001971E\r
+:1008E000820F931F0CC04091C3005091C40021E0BF\r
+:1008F00030E0B901691B7109CB01840F951F9093FA\r
+:10090000C4008093C30089B38295869586958370D1\r
+:1009100080FF02C093E001C090E0827011F081E09E\r
+:10092000982780918800891B80FF22C090938800BF\r
+:1009300020916400982F9270222369F04091C100A9\r
+:100940005091C20021E030E0B901691B7109CB016F\r
+:10095000840F951F09C02091C1003091C200892FDA\r
+:1009600090E00197820F931F9093C2008093C10083\r
+:100970008091B9008F5F8093B9009F918F917F9193\r
+:100980006F915F914F913F912F910F900FBE0F90FC\r
+:100990001F9018951F920F920FB60F9211248F93EC\r
+:1009A0009F93EF93FF935F9B16C0E091DA00F09165\r
+:1009B000DB008CB1808381E0EF33F80730F43196AF\r
+:1009C000F093DB00E093DA0006C08CED90E09093AA\r
+:1009D000DB008093DA00FF91EF919F918F910F9050\r
+:1009E0000FBE0F901F9018959C018AB188618AB93B\r
+:1009F000579A80B5866080BDC901A0E0B0E09C0137\r
+:100A0000AD0184E0220F331F441F551F8A95D1F793\r
+:100A100060E079E08DE390E00E94390EDA01C901CF\r
+:100A20000197A109B109892F9A2FAB2FBB27A7FDE9\r
+:100A3000BA9580BD215029B98CED90E09093D900F2\r
+:100A40008093D8009093DB008093DA0008955D9B3B\r
+:100A5000FECFFC0180818CB90895CF93DF931F9264\r
+:100A6000CDB7DEB78983CE0101960E94270580E0CD\r
+:100A700090E00F90DF91CF910895CF93DF93EC0139\r
+:100A8000CE012196FC012081222319F00E94270526\r
+:100A9000F7CFDF91CF9108955F9BFECF8CB190E0AF\r
+:100AA00008950C944C0561E575E08DE295E00C9499\r
+:100AB000BC0ECF93DF93FC01E253FF4FA081B181C5\r
+:100AC000EC01C453DF4F28813981A217B307A1F08D\r
+:100AD0005D9B12C02C912CB920813181AC01455312\r
+:100AE0005F4F2417350718F42F5F3F4F03C09C0159\r
+:100AF00028593F4F31832083E091D800F091D900ED\r
+:100B00002091DA003091DB002E173F07B1F1EC01A4\r
+:100B1000CC59DF4FA881B98120812C9368817981DC\r
+:100B20009C012B523F4FD9013C91DB012C91321398\r
+:100B300007C0AC014C525F4FDA012C912F5F2C9310\r
+:100B40009C012D593F4F6217730728F4DB01119662\r
+:100B5000B983A88302C099838883B1E0EF33FB0790\r
+:100B600030F43196F093D900E093D80006C08CEDB4\r
+:100B700090E09093D9008093D800DF91CF910895B1\r
+:100B8000CF93DF93CDB7DEB76C970FB6F894DEBF87\r
+:100B90000FBECDBF88E087BB8CEF84BB8CEB81BBE5\r
+:100BA0001092CD0080E895E20E94F4040E94530563\r
+:100BB00080E582B986B78B7E86BF85EC86BF81EAE9\r
+:100BC0008FBD89E08EBD1BBC1ABC19BC18BC8BE65E\r
+:100BD00090E00E943F0F85B78F7885BF84E089BF82\r
+:100BE00078942224239433243A940FEF10E08091D8\r
+:100BF000CE008F3F41F48091CD00853A21F4F894E6\r
+:100C0000E0E0F8E109958091D700882309F455C008\r
+:100C1000F894C090CF00D090D000E090D100F09038\r
+:100C2000D2006091D3007091D4008091D500909152\r
+:100C3000D6001092D70078942BED3FE049E450E4C1\r
+:100C40000E947B0D27EB3BE04DEB5EE30E947B0DAA\r
+:100C500020E030E040E05FE30E947B0DA7019601B9\r
+:100C60000E94670B4B015C01A7019601C701B60109\r
+:100C70000E94670BA50194010E94660B23E33BE5EC\r
+:100C800042E855E40E947B0D0E944F0C7093BD001A\r
+:100C90006093BC0023E33BE542E855E4C501B401A1\r
+:100CA0000E947B0D0E944F0C7093BB006093BA00B2\r
+:100CB000F1E0F093C000F093BF008091B9008C394F\r
+:100CC00008F4D6C31092B900F8942091C70030916F\r
+:100CD000C8003A8329834091C5005091C6005C83C7\r
+:100CE0004B838091C3009091C4009E838D83E091DB\r
+:100CF000C100F091C200FC8FEB8F78948091860048\r
+:100D0000909187007901E81AF90A80918400909106\r
+:100D100085006A01C81AD90A8091820090918300E7\r
+:100D20006D807E80681A790A8091800090918100A0\r
+:100D30002F01481A590AB7010F2C000C880B990B88\r
+:100D40000E94870C2AE037ED43E25CE30E94DD0B52\r
+:100D50000E944F0C6F83788789879A87B6010D2C84\r
+:100D6000000C880B990B0E94870C2AE037ED43E2B8\r
+:100D70005CE30E94DD0B0E944F0C6B877C878D87A4\r
+:100D80009E87B301072C000C880B990B0E94870CDF\r
+:100D90002AE037ED43E25CE30E94DD0B0E944F0C3A\r
+:100DA0006F87788B898B9A8BB201052C000C880B8E\r
+:100DB000990B0E94870C2AE037ED43E25CE30E9426\r
+:100DC000DD0B0E944F0C6B8B7C8B8D8B9E8BB70148\r
+:100DD0006C0D7D1D072E000C880B990B0E94870C53\r
+:100DE00023E33BE542E056E40E94DD0B4B015C014E\r
+:100DF000B301640D751D072E000C880B990B0E9422\r
+:100E0000870C23E33BE542E056E40E94DD0B2B0117\r
+:100E10003C01C090A100D090A200E090A300F0900F\r
+:100E2000A400A50194010E94660B27EB3BE04DEB6B\r
+:100E30005EE30E94DD0B9B01AC01C701B6010E947D\r
+:100E4000670B6B017C012BED3FE049EC50E40E9405\r
+:100E5000760D18164CF42BED3FE049EC50E4C70139\r
+:100E6000B6010E94660B12C02BED3FE049EC50EC3E\r
+:100E7000C701B6010E94D30B87FF0AC02BED3FE0EC\r
+:100E800049EC50E4C701B6010E94670B6B017C017D\r
+:100E9000A3019201C501B4010E94670B20E030E07C\r
+:100EA00040E05FE30E947B0D4B015C014090A90094\r
+:100EB0005090AA006090AB007090AC00C701B601E2\r
+:100EC0000E94D80BA50194010E947B0D9B01AC01EF\r
+:100ED000C301B2010E94670B6F8B788F898F9A8F45\r
+:100EE0004090A5005090A6006090A7007090A800C8\r
+:100EF000C701B6010E94E80DA50194010E947B0D77\r
+:100F00009B01AC01C301B2010E94670B2B013C01A4\r
+:100F10008B859C852F813885820F931F97FD0196C5\r
+:100F2000959587959093B0008093AF008B899C89AD\r
+:100F30004F855889840F951F97FD01969595879544\r
+:100F40009093AE008093AD006091AF007091B000BF\r
+:100F50008091AD009091AE00680F791F072E000CB4\r
+:100F6000880B990B0E94870C23E33BE542E056E493\r
+:100F70000E94DD0B4B015C016091AD007091AE00F1\r
+:100F80008091AF009091B000681B790B072E000C88\r
+:100F9000880B990B0E94870C29E935E347E955E452\r
+:100FA0000E94DD0BF894C092A100D092A200E092C2\r
+:100FB000A300F092A4002F89388D498D5A8D20937B\r
+:100FC000A9003093AA004093AB005093AC0040922C\r
+:100FD000A5005092A6006092A7007092A8004F81D1\r
+:100FE00058855093B8004093B700EB85FC85F0938B\r
+:100FF000B600E093B5002F8538893093B400209374\r
+:10100000B3004B895C895093B2004093B100809249\r
+:101010009D0090929E00A0929F00B092A0006093CD\r
+:10102000990070939A0080939B0090939C00789411\r
+:1010300089819A819093870080938600EB81FC815F\r
+:10104000F0938500E09384002D813E8130938300EE\r
+:10105000209382004B8D5C8D5093810040938000E3\r
+:101060008091C000813009F091C08091BC009091C6\r
+:10107000BD00892B89F41092CC001092CB00109205\r
+:101080007F0010927E0010927A0010927B001092E6\r
+:101090007C0010927D007AC0E090BC00F090BD0012\r
+:1010A0008091AF009091B000E81AF90AB7010F2CB7\r
+:1010B000000C880B990B80907A0090907B00A09098\r
+:1010C0007C00B0907D00860E971EA81EB91E8092EF\r
+:1010D0007A0090927B00A0927C00B0927D000E94EA\r
+:1010E000870C2CEE31E548E35DE30E947B0D2B017C\r
+:1010F0003C01C501B4010E94870C2EE830E44CEBA2\r
+:101100005CE30E947B0D9B01AC01C301B2010E9414\r
+:10111000670B4B015C0180917E0090917F00B701CD\r
+:10112000681B790B072E000C880B990B0E94870C0B\r
+:101130002AE037ED43E25DE30E947B0D9B01AC01A9\r
+:10114000C501B4010E94670B0E944F0C7093CC0044\r
+:101150006093CB00F0927F00E0927E008091CB0004\r
+:101160009091CC008F3F910531F02CF01093CC0082\r
+:101170000093CB000BC08091CB009091CC008130CC\r
+:101180009F4F24F43092CC002092CB008091BF007E\r
+:10119000813009F091C08091BA009091BB00892BF9\r
+:1011A00089F41092CA001092C9001092790010922E\r
+:1011B00078001092740010927500109276001092D0\r
+:1011C00077007AC0E090BA00F090BB008091AD004B\r
+:1011D0009091AE00E81AF90AB7010F2C000C880BA9\r
+:1011E000990B8090740090907500A0907600B0905C\r
+:1011F0007700860E971EA81EB91E809274009092EA\r
+:101200007500A0927600B09277000E94870C2CEEB9\r
+:1012100031E548E35DE30E947B0D2B013C01C501F4\r
+:10122000B4010E94870C2EE830E44CEB5CE30E9492\r
+:101230007B0D9B01AC01C301B2010E94670B4B0106\r
+:101240005C018091780090917900B701681B790B5F\r
+:10125000072E000C880B990B0E94870C2AE037EDB3\r
+:1012600043E25DE30E947B0D9B01AC01C501B4012B\r
+:101270000E94670B0E944F0C7093CA006093C900D4\r
+:10128000F0927900E09278008091C9009091CA00B4\r
+:101290008F3F910531F02CF01093CA000093C900E4\r
+:1012A0000BC08091C9009091CA0081309F4F24F4F7\r
+:1012B0003092CA002092C90086B3837080958093D3\r
+:1012C00097002091C00080916200909163002130CE\r
+:1012D00009F52091970020FF1DC0009729F010927A\r
+:1012E000CC001092CB0016C02091CB003091CC00E6\r
+:1012F000121613062CF41093CC000093CB000AC0F6\r
+:101300002091CB003091CC0037FF04C03092CC004C\r
+:101310002092CB002091BF00213029F52091970029\r
+:1013200021FF21C02091600030916100232B29F022\r
+:101330001092CA001092C90016C02091C9003091C5\r
+:10134000CA00121613062CF41093CA000093C900A9\r
+:101350000AC02091C9003091CA0037FF04C0309202\r
+:10136000CA002092C9002091CB003091CC00821796\r
+:101370009307B9F18091CB009091CC00892B21F497\r
+:1013800085B3837F85BB1AC08091BE00811107C0E1\r
+:101390008091CB009091CC001816190654F08091E2\r
+:1013A000BE00882349F08091CB009091CC0097FF3C\r
+:1013B00003C0AA9AAB9802C0AA98AB9A8091CB00BE\r
+:1013C0009091CC0090936300809362008091CB0059\r
+:1013D0009091CC0097FF03C09195819591099BBD99\r
+:1013E0008ABD8091C9009091CA002091600030911F\r
+:1013F000610028173907B9F18091C9009091CA009E\r
+:10140000892B21F485B38F7C85BB1AC08091640041\r
+:10141000811107C08091C9009091CA001816190661\r
+:1014200054F080916400882349F08091C900909124\r
+:10143000CA0097FF03C0AC9AAD9802C0AC98AD9AB1\r
+:101440008091C9009091CA009093610080936000E0\r
+:101450008091C9009091CA0097FF03C09195819532\r
+:10146000910999BD88BD809198008F5F8093980005\r
+:1014700085B7806885BF889585B78F7785BFB7CBDF\r
+:10148000ACE0B0E0E6E4FAE00C945C0E6C015B01C9\r
+:101490007A01FC0117821682838181FF0EC1CE0181\r
+:1014A00001964C01F6010381F50103FD159103FF3F\r
+:1014B00011915F01112309F4FCC0153249F403FDB9\r
+:1014C000159103FF11915F01153211F020E01BC04F\r
+:1014D000B601812F90E00E94070F37017301E2CF20\r
+:1014E000112309F4E6C0612F70E089E790E02C87B2\r
+:1014F0000E94B10E2C85892B49F0F50103FD159151\r
+:1015000003FF11915F0127FFEBCF09C0133229F0D0\r
+:101510001C3609F0D5C02068F0CF20E1EECF022FB5\r
+:10152000112309F4C6C0612F70E082E790E02C8798\r
+:101530000E94B10E2C85892B41F03701F4E06F0E2B\r
+:10154000711CB6018FE390E011C0133639F01337E8\r
+:1015500081F0133519F5022F01600BC0370182E0CD\r
+:10156000680E711CB601F701808191810E94070FFE\r
+:10157000B5CF3701F2E06F0E711CF701E080F1800A\r
+:10158000F70100FD859100FF81917F01882309F417\r
+:10159000A5CFB60190E00E94070FF2CF143611F0EC\r
+:1015A000193629F5370127FF09C0F4E06F0E711CC9\r
+:1015B000F70160817181828193810AC0F2E06F0E30\r
+:1015C000711CF70160817181072E000C880B990B4B\r
+:1015D000022F0F7E97FF08C09095809570956195BA\r
+:1015E0007F4F8F4F9F4F00642AE030E033C01037A9\r
+:1015F00099F040F41835B1F01F3609F05AC028E0D0\r
+:1016000030E014C0153719F0183741F052C0022FDE\r
+:101610000F7E2AE030E00AC0022F0061046220E160\r
+:1016200030E004C0022F046020E132E0370107FF00\r
+:1016300009C0F4E06F0E711CF70160817181828135\r
+:10164000938108C0F2E06F0E711CF7016081718117\r
+:1016500080E090E0A4010E946F0F182F181906FF78\r
+:1016600005C0B6018DE290E00E94070F04FF15C08F\r
+:10167000FE01E10FF11D8081803379F0B60180E336\r
+:1016800090E00E94070F02FF08C00072802F90E0D8\r
+:10169000B601885A9F4F0E94070F1150F401E10FC5\r
+:1016A000F11D8081B60190E00E94070F1111F5CF66\r
+:1016B00015CFF6018681978105C08FEF9FEF02C09D\r
+:1016C000022F31CF2C96EEE00C94780E5058BB27A9\r
+:1016D000AA270E947E0B0C94280D0E94EF0C38F074\r
+:1016E0000E94F60C20F039F49F3F19F426F40C9474\r
+:1016F000EC0C0EF4E095E7FB0C94E60CE92F0E944D\r
+:101700004D0D58F3BA17620773078407950720F049\r
+:1017100079F4A6F50C946F0D0EF4E0950B2EBA2F0C\r
+:10172000A02D0B01B90190010C01CA01A0011124E7\r
+:10173000FF27591B99F0593F50F4503E68F11A1693\r
+:10174000F040A22F232F342F4427585FF3CF469524\r
+:1017500037952795A795F0405395C9F77EF41F1646\r
+:10176000BA0B620B730B840BBAF09150A1F0FF0F10\r
+:10177000BB1F661F771F881FC2F70EC0BA0F621FFC\r
+:10178000731F841F48F4879577956795B795F795EC\r
+:101790009E3F08F0B0CF9395880F08F09927EE0F81\r
+:1017A0009795879508950E94C20C08F481E00895EA\r
+:1017B0000E94FF0CE3950C94390D0E94F10B0C94E0\r
+:1017C000280D0E94F60C58F00E94EF0C40F029F40E\r
+:1017D0005F3F29F00C94E60C51110C94700D0C94A1\r
+:1017E000EC0C0E944D0D68F39923B1F3552391F34E\r
+:1017F000951B550BBB27AA2762177307840738F080\r
+:101800009F5F5F4F220F331F441FAA1FA9F335D0DC\r
+:101810000E2E3AF0E0E832D091505040E695001C90\r
+:10182000CAF72BD0FE2F29D0660F771F881FBB1F4A\r
+:10183000261737074807AB07B0E809F0BB0B802D28\r
+:10184000BF01FF2793585F4F3AF09E3F510578F054\r
+:101850000C94E60C0C94700D5F3FE4F3983ED4F3C7\r
+:10186000869577956795B795F7959F5FC9F7880F28\r
+:10187000911D9695879597F90895E1E0660F771F7A\r
+:10188000881FBB1F621773078407BA0720F0621B0B\r
+:10189000730B840BBA0BEE1F88F7E09508950E9436\r
+:1018A000560C6894B1110C94700D08950E94550D5A\r
+:1018B00088F09F5798F0B92F9927B751B0F0E1F011\r
+:1018C000660F771F881F991F1AF0BA95C9F714C0C1\r
+:1018D000B13091F00E946F0DB1E008950C946F0D3E\r
+:1018E000672F782F8827B85F39F0B93FCCF38695FA\r
+:1018F00077956795B395D9F73EF490958095709557\r
+:1019000061957F4F8F4F9F4F0895E89409C097FBD3\r
+:101910003EF490958095709561957F4F8F4F9F4FC6\r
+:101920009923A9F0F92F96E9BB279395F69587950A\r
+:1019300077956795B795F111F8CFFAF4BB0F11F4CD\r
+:1019400060FF1BC06F5F7F4F8F4F9F4F16C0882374\r
+:1019500011F096E911C0772321F09EE8872F762FAA\r
+:1019600005C0662371F096E8862F70E060E02AF0EB\r
+:101970009A95660F771F881FDAF7880F96958795D7\r
+:1019800097F90895990F0008550FAA0BE0E8FEEFAC\r
+:1019900016161706E807F907C0F012161306E40733\r
+:1019A000F50798F0621B730B840B950B39F40A262C\r
+:1019B00061F0232B242B252B21F408950A2609F40A\r
+:1019C000A140A6958FEF811D811D089597F99F670E\r
+:1019D00080E870E060E008959FEF80EC08950024B7\r
+:1019E0000A941616170618060906089500240A9484\r
+:1019F000121613061406050608950C94EC0C0E94AA\r
+:101A0000550DD8F3E894E0E0BB279F57F0F02AED9E\r
+:101A10003FE049EC06C0EE0FBB0F661F771F881F23\r
+:101A200028F0B23A62077307840728F0B25A620BB3\r
+:101A3000730B840BE3959A9572F7803830F49A957E\r
+:101A4000BB0F661F771F881FD2F790480C94F20DCA\r
+:101A5000092E0394000C11F4882352F0BB0F40F4BC\r
+:101A6000BF2B11F460FF04C06F5F7F4F8F4F9F4FFC\r
+:101A70000895EF93E0FF07C0A2EA2AED3FE049ECAA\r
+:101A80005FEB0E947E0B0E94280D0F90039401FCD7\r
+:101A90009058E4E5F0E00C94FE0D57FD9058440F8B\r
+:101AA000551F59F05F3F71F04795880F97FB991FBD\r
+:101AB00061F09F3F79F0879508951216130614067A\r
+:101AC000551FF2CF4695F1DF08C016161706180607\r
+:101AD000991FF1CF86957105610508940895E894E2\r
+:101AE000BB2766277727CB0197F908950E94C20C80\r
+:101AF00008F48FEF08950E948E0D0C94280D0E941B\r
+:101B0000EF0C38F00E94F60C20F0952311F00C94A5\r
+:101B1000E60C0C94EC0C11240C94700D0E944D0DED\r
+:101B200070F3959FC1F3950F50E0551F629FF00130\r
+:101B3000729FBB27F00DB11D639FAA27F00DB11D49\r
+:101B4000AA1F649F6627B00DA11D661F829F2227D2\r
+:101B5000B00DA11D621F739FB00DA11D621F839F59\r
+:101B6000A00D611D221F749F3327A00D611D231F2F\r
+:101B7000849F600D211D822F762F6A2F11249F577D\r
+:101B800050409AF0F1F088234AF0EE0FFF1FBB1F80\r
+:101B9000661F771F881F91505040A9F79E3F51053F\r
+:101BA00080F00C94E60C0C94700D5F3FE4F3983ECB\r
+:101BB000D4F3869577956795B795F795E7959F5FE9\r
+:101BC000C1F7FE2B880F911D9695879597F908957B\r
+:101BD0009F930E94FF0C0F9007FCEE5F0C94390D51\r
+:101BE0009F3F31F0915020F4879577956795B79591\r
+:101BF000880F911D9695879597F908959F938F93D8\r
+:101C00007F936F93FF93EF939B01AC010E947B0D39\r
+:101C1000EF91FF910E94120E2F913F914F915F9192\r
+:101C20000C947B0DDF93CF931F930F93FF92EF9252\r
+:101C3000DF927B018C01689406C0DA2EEF010E94CE\r
+:101C40008E0DFE01E894A591259135914591559110\r
+:101C5000A6F3EF010E947E0BFE019701A801DA9422\r
+:101C600069F7DF90EF90FF900F911F91CF91DF9177\r
+:101C70000895052E97FB1EF400940E94500E57FD08\r
+:101C800007D00E948F0E07FC03D04EF40C94500E28\r
+:101C900050954095309521953F4F4F4F5F4F089598\r
+:101CA00090958095709561957F4F8F4F9F4F0895C8\r
+:101CB0002F923F924F925F926F927F928F929F925C\r
+:101CC000AF92BF92CF92DF92EF92FF920F931F934A\r
+:101CD000CF93DF93CDB7DEB7CA1BDB0B0FB6F894FB\r
+:101CE000DEBF0FBECDBF09942A88398848885F843B\r
+:101CF0006E847D848C849B84AA84B984C884DF80AC\r
+:101D0000EE80FD800C811B81AA81B981CE0FD11D8F\r
+:101D10000FB6F894DEBF0FBECDBFED010895A1E26E\r
+:101D20001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F55\r
+:101D3000FF1FA217B307E407F50720F0A21BB30BA0\r
+:101D4000E40BF50B661F771F881F991F1A9469F71C\r
+:101D500060957095809590959B01AC01BD01CF0178\r
+:101D60000895FC010590061621F00020D9F7C00166\r
+:101D700008953197CF0108950F931F93CF93DF9369\r
+:101D8000009731F46115710519F480E090E03AC0D4\r
+:101D90008B01EC016EE070E081E090E00E94CD0FDD\r
+:101DA000FC01892B91F380E883830115110571F003\r
+:101DB0001387028781E883838091430190914401D6\r
+:101DC000892B21F4F0934401E09343012097C9F05B\r
+:101DD000D187C08783818260838380914501909100\r
+:101DE0004601892B71F4F0934601E09345018091FF\r
+:101DF000470190914801892B21F4F0934801E09329\r
+:101E00004701CF01DF91CF911F910F9108950F935B\r
+:101E10001F93CF93DF93FB01238121FD03C08FEF3D\r
+:101E20009FEF28C022FF16C046815781248135814B\r
+:101E30004217530744F4A081B1819D012F5F3F4FAA\r
+:101E4000318320838C93268137812F5F3F4F3783E7\r
+:101E5000268310C0EB01092F182F0084F185E02D97\r
+:101E60000995892BE1F68E819F8101969F838E8350\r
+:101E7000812F902FDF91CF911F910F9108950F9394\r
+:101E80001F93CF93DF93E0914501F09146012381A9\r
+:101E900021FF1BC08C01D0E0C0E0F80181918F01CF\r
+:101EA0006091450170914601DB011896ED91FC911E\r
+:101EB0001997882331F00995892B79F3DFEFCFEF5C\r
+:101EC000ECCF8AE00995892B19F08FEF9FEF02C0C4\r
+:101ED0008D2F9C2FDF91CF911F910F910895FA01C3\r
+:101EE000AA27283051F1203181F1E8946F936E7F59\r
+:101EF0006E5F7F4F8F4F9F4FAF4FB1E03ED0B4E04A\r
+:101F00003CD0670F781F891F9A1FA11D680F791F8A\r
+:101F10008A1F911DA11D6A0F711D811D911DA11D9B\r
+:101F200020D009F468943F912AE0269F11243019AB\r
+:101F3000305D3193DEF6CF010895462F4770405D46\r
+:101F40004193B3E00FD0C9F7F6CF462F4F70405DF5\r
+:101F50004A3318F0495D31FD4052419302D0A9F750\r
+:101F6000EACFB4E0A6959795879577956795BA954A\r
+:101F7000C9F700976105710508959B01AC010A2E10\r
+:101F800006945795479537952795BA95C9F7620FE7\r
+:101F9000731F841F951FA01D08950F931F93CF9348\r
+:101FA000DF93869F8001879F100D969F100D11244F\r
+:101FB000C8010E94E90FEC01009729F0A80160E038\r
+:101FC00070E00E941611CE01DF91CF911F910F9109\r
+:101FD0000895CF93DF938230910510F482E090E072\r
+:101FE000E0914B01F0914C0120E030E0C0E0D0E006\r
+:101FF000309711F14081518148175907C0F04817B7\r
+:10200000590761F482819381209719F09B838A8319\r
+:102010002BC090934C0180934B0126C021153105B4\r
+:1020200019F04217530718F49A01BE01DF01EF01BE\r
+:102030000280F381E02DDCCF2115310509F1281B49\r
+:10204000390B2430310590F412968D919C911397A1\r
+:102050006115710521F0FB019383828304C0909385\r
+:102060004C0180934B01FD01329644C0FD01E20F0B\r
+:10207000F31F81939193225031092D933C933AC0E1\r
+:102080002091490130914A01232B41F420916700AE\r
+:102090003091680030934A012093490120916500F6\r
+:1020A000309166002115310541F42DB73EB74091BE\r
+:1020B000690050916A00241B350BE0914901F091B1\r
+:1020C0004A01E217F307A0F42E1B3F0B281739072C\r
+:1020D00078F0AC014E5F5F4F2417350748F04E0F84\r
+:1020E0005F1F50934A01409349018193919302C02D\r
+:1020F000E0E0F0E0CF01DF91CF9108950F931F93BF\r
+:10210000CF93DF93009709F48CC0FC0132971382C0\r
+:10211000128200914B0110914C010115110581F4BF\r
+:1021200020813181820F931F2091490130914A0112\r
+:102130002817390779F5F0934A01E093490171C0F6\r
+:10214000D80140E050E0AE17BF0750F412962D9131\r
+:102150003C911397AD012115310509F1D901F3CF58\r
+:102160009D01DA013383228360817181860F971F7D\r
+:102170008217930769F4EC0128813981260F371FF4\r
+:102180002E5F3F4F318320838A819B81938382839B\r
+:10219000452B29F4F0934C01E0934B0142C0139678\r
+:1021A000FC93EE931297ED01499159919E01240FF2\r
+:1021B000351FE217F30771F480819181840F951F19\r
+:1021C000029611969C938E938281938113969C9391\r
+:1021D0008E931297E0E0F0E0D80112968D919C91D9\r
+:1021E0001397009719F0F8018C01F6CF8D919C910F\r
+:1021F00098012E5F3F4F820F931F2091490130912C\r
+:102200004A012817390769F4309729F410924C01D4\r
+:1022100010924B0102C01382128210934A01009364\r
+:102220004901DF91CF911F910F910895DC0101C009\r
+:0E2230006D9341505040E0F70895F894FFCFB1\r
+:10223E00008000800100004D0120000D0A537461E2\r
+:04224E0072740D0099\r
 :00000001FF\r
 :00000001FF\r