No changes between revisions
/Designs/Data_loggers/GMCOUNT/SW/GMC01A.c
0,0 → 1,551
#include <16F876A.h>
#device adc=10
 
#FUSES NOWDT //No Watch Dog Timer
#FUSES NOLVP,NOPROTECT,XT,NOBROWNOUT
#use delay(clock=4000000)
//#define EEPROM_SCL PIN_C3
//#define EEPROM_SDA PIN_C4
#use rs232(baud=9600,xmit=PIN_C6,disable_ints)
//#use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3)
 
 
#define LCD_RS PIN_C7 // rizeni registru LCD displeje <lcd.c>
#define LCD_E PIN_B7 // enable LCD displeje <lcd.c>
#define LCD_D0 PIN_B3 // data LCD <lcd.c>
#define LCD_D1 PIN_B2
#define LCD_D2 PIN_B1
#define LCD_D3 PIN_B0
#define PWM_OUT PIN_C2 // kontrast LCD - menic
#define LCD_ENABLE PIN_A1
 
#define GM_PIN PIN_A4 // vstup od GMT
#define HV_ENABLE PIN_A3 // start 400V
#define CHARGE PIN_A2 // nabijeni baterie
 
#define KBD_K4 0 //tlacitko na PIN_B7 neexistuje <kbd.c>
#define TL3 0x10 //tlacitko PIN_B4 -ostatni default, viz <kbd.c>
#define TL2 0x20 //tlacitko PIN_B5 <kbd.c>
#define TL1 0x40 //tlacitko PIN_B6 <kbd.c>
 
#define KBD_CALMTIME 1 //x*40ms - doba na zakmity tlacitek <kbd.c>
#define KEYDELAY 30 //x*40ms - doba podrzeni tlacitka do opakovani
#define KEYREPEAT 6 //x*40ms - doba opakovani stiskleho tlacitka
#define LOG_PERIOD 30 //perioda logovani v min
#define TIME_TO_SLEEP 19 //x*16s - doba do uspani, pokud zadny stisk a HV nebezi
 
#define MAX_EEPROM 255 //max velikost vnitrni ee pameti
#define EE_LOG_SWITCH 1 //misto v ee, kam se uklada zpusob logovani
#define EE_LOG_OFFSET 0 //misto v ee, kde je ulozen offset dalsiho volneho mista
 
#define ECHO_MAX_CYCLE 700 //ryhlost hlavni smyèky za 40ms /cca 20kHz/ (700)
#define ECHO_PIN1 PIN_C4 //piezo
#define ECHO_PIN2 PIN_C5 //piezo
 
#define TEST_V_BATT 0x0f //maska minut pro test baterie
#define BATT_ENABLE 525 //1024/ADC*1.5+0.18 ADC=525 .. Ubat=3.1V; jeli Ubat nizsi pak sleep
 
#include <lcd.c>
#include <kbd.c>
 
int8 ms7RTC,sRTC,mRTC,hRTC,dRTC,mdRTC,yRTC; //promenne RTC
int1 vypocet,refresh,counters,sleep,log,piezo; //povoleni vypoctu,zobrazeni,citani,uspani,logovani,cvak pieza
int16 avg,bkg,min,max,dif; //hlavni zobrazované promìnne
int32 gmcount,mincount; //citac trubice GM,citac minut od startu
int8 timer_n,timer_s; //citace pulzù do 40ms, v celych 40ms, v predchozi 40ms
int32 gmcount_p; //pocet pulzu od zapnuti v predchozi cele minute
int32 gmcount_sm; //pocet pulzu od zapnuti precteno v cele minute
int8 s25tik,sTIK; //tiky pro casovani trubice 25tiku do sekundy, 60s do min
int8 key_timer,save_key,keyp; //pomocny citac pro tlacitka,ulozeni stiskleho tlacitka,provedeni akce stiskleho tl.
int8 menu_A,menu_B; //vektor pro pohyb v menu na LCD
int8 log_interval; //minutovy citac do dalsiho logu
int8 log_switch; //prepinac zpusobu logovani
int8 ee_offset; //kam v ee ulozit dalsi zaznam
int8 echo_switch,echo_tik; //povolení echa,poèet tiku za 40ms
int16 echo_timer,echo_cycle; //èitaè rychlosti smyèky pro echo,cvaknuti v cyklu
int8 pwm; //kontrast
int8 tik_to_sleep; //casovac pro uspani
float analog; //napeti baterie
int1 test_batt; //test napeti baterie
int1 test; //pokus
int8 timertest; //pokus
 
#priority timer2,timer1,rb
 
#int_TIMER2 //nastaven presne na 40ms,cte casovac timer0 GMT
TIMER2_isr()
{
kbd_ticktimer();
if (key_timer) key_timer--;
if (!counters) {set_timer0(0);s25TIK=0;sTIK=0;return;}
if (echo_switch) echo_switch=2;
timer_n=get_timer0();
s25TIK++;
if (timer_n!=timer_s) //nastala zmena v citaci,pak proved pricteni puslu
{
if (timer_n < timer_s) {timer_s=256-timer_s+timer_n;gmcount=gmcount+timer_s;} //test preteceni casovace
else {timer_s=timer_n-timer_s;gmcount=gmcount+timer_s;}
echo_tik=timer_s;
timer_s=timer_n;
if (menu_A==1 && menu_B==0) refresh=true;
}
else echo_tik=0;
if (s25TIK==25) //cela sekunda
{
s25TIK=0;
sTIK++;
if (menu_A==1 && menu_B==5) refresh=true;
if (sTIK==60) //cela minuta
{
sTIK=0;
mincount++;
vypocet=true;
gmcount_sm=gmcount;
}
}
}
 
#int_RB
RB_isr()
{
kbd_pullkbd();
tik_to_sleep = TIME_TO_SLEEP;
}
 
int8 modulo(int8 h,int8 m) //pomocna fce pro modulo x
{
if (h<m) return (h);
return(h-m);
}
 
void clear_lcd()
{
printf(lcd_putc,"\f");
}
 
void set_date() //citac datumu
{
dRTC++;
switch (mdRTC)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: if(dRTC>=32) {dRTC=1;mdRTC++;if(mdRTC==13) {mdRTC =1;yRTC=modulo(yRTC++,100);}} break;
case 4:
case 6:
case 9:
case 11: if(dRTC>=31) {dRTC=1;mdRTC++;} break;
case 2: if (dRTC >= 30) {dRTC=1;mdRTC++;break;}
if (dRTC ==29) {if (!(yRTC & 0x03)) break;dRTC=1;mdRTC++;}
}
 
}
 
 
 
#int_TIMER1 // RTC
TIMER1_isr()
{
sRTC=sRTC+16;
if (sRTC >= 60)
{
mRTC++;sRTC=modulo(sRTC,60); //1min
if (mRTC>=60) {hRTC++;mRTC=0;} //1hod
if ((mRTC & TEST_V_BATT) == TEST_V_BATT) test_batt=true;
if (hRTC>=24) {hRTC=0;set_date();} //1den
}
refresh=true;
if (tik_to_sleep) tik_to_sleep--;
}
 
void ee_head() //ulozeni hlavicky do ee cas,datum,zpusob logovani
{ //v ee 100hhhhh /hodiny/,l0mmmmmm /log + minuty/,000ddddd /den/,yyyymmmm /rok-7,mesic/
int8 data;
log=true;
if (!log_switch) return;
if (ee_offset>5) {
data=read_eeprom(ee_offset-4);
if (bit_test(data,7)) ee_offset=ee_offset-4;
}
if (ee_offset>=(MAX_EEPROM-5)) {log=false;return;}
log_interval=0;
data=hRTC;
bit_set(data,7);
write_eeprom(ee_offset++,data);
data=mRTC;
if (bit_test(log_switch,0)) bit_set(data,7);
write_eeprom(ee_offset++,data);
write_eeprom(ee_offset++,dRTC);
data=((yRTC-7) << 4)|mdRTC;
write_eeprom(ee_offset++,data);
}
 
 
 
void menu_proces(int8 key) //menu zobrazene na LCD pri citani
{
switch (key)
{
case TL1: menu_A=2;refresh=true;clear_lcd();return;
case TL2: if (log) log=false;
else ee_head();
break;
case TL3: menu_B=modulo(++menu_B,6);break;
}
printf(lcd_putc,"\rdif=%lu ",dif);
lcd_gotoxy(11,1);
if (log) printf(lcd_putc,"L"); //pokud se loguje, zobraz L
else printf(lcd_putc," ");
if (bkg) printf(lcd_putc,"B"); //pokud jiz je BKG,zobraz B
lcd_gotoxy(14,1);
printf(lcd_putc,"%3u\n",(int8)(MAX_EEPROM-ee_offset)/2); //zbivajici misto v ee
 
switch (menu_B)
{
case 0: printf(lcd_putc,"n=%lu",gmcount);break;
case 1: printf(lcd_putc,"min=%Lu",min);break;
case 2: printf(lcd_putc,"max=%lu",max);break;
case 3: printf(lcd_putc,"avg=%lu",avg);break;
case 4: printf(lcd_putc,"bkg=%lu",bkg);break;
case 5: printf(lcd_putc,"ontime=%lu:%02d ",mincount,sTIK);break;
}
}
 
void send_data() //posle data z ee na rs232 9600 8N1
{
int8 i;
int16 data;
int8 *adr;
for (i=2;i<ee_offset;i)
{
adr=&data;
*adr=read_eeprom(i++);
if (bit_test(*adr,7)) //test, zda se nejedna o hlavicku v ee
{
bit_clear(*adr,7);
printf("\r\n%d:",*adr);
*adr=read_eeprom(i++);
printf("%02d ",(0x3f&*adr));
adr++;*adr=read_eeprom(i++);
printf("%d/",*adr);
*adr=read_eeprom(i++);
printf("%02d/",*adr&0x0f);
*adr=(*adr>>4)+7;
printf("%02d ",*adr);
adr--;
if (bit_test(*adr,7)) printf("1min");
else {*adr=LOG_PERIOD;printf("%umin",*adr);}
 
}
else{
data=data<<8;
*adr=read_eeprom(i++);
printf("\r\n%lu",data);
}
 
}
}
 
void display(int8 key) //zobrazeni na LCD - zakladni menu
{
int8 mon,year; //pomocne promenne
if (key) clear_lcd();
keyp=0;
refresh=false;
if (menu_A>1) { //zmena pri stisku tl spolecna pro vetsinu menu_A
 
if (key==TL3) {menu_A++;if (menu_A>11) menu_A=2;} //TL3 pak rolluj v menu_A
if ( ( menu_A != 10 ) && ( menu_A != 6 ) && (menu_A != 11) )
{
if (key==TL1)
{
if (counters) menu_A=1;
else menu_A=0;
key=0;
}
else printf(lcd_putc,"\r\nesc cr roll\r");
}
}
 
switch (menu_A) //hlavni menu
{
case 0: min=0xffff; //zakladni menu po resetu, nastaveni promennych
max=gmcount=gmcount_sm=gmcount_p=timer_s=timer_n=mincount=dif=avg=bkg=0;
vypocet=sleep=counters=log=echo_switch=false;
test_batt = true;
log_switch=read_eeprom(EE_LOG_SWITCH);
ee_offset=read_eeprom(EE_LOG_OFFSET);
output_high(HV_ENABLE);
printf(lcd_putc,"\r%d:%02d %d.%d.%02d \nmenu off start",hRTC,mRTC,dRTC,mdRTC,yRTC);
switch (key)
{
case TL1: menu_A=2;break;
case TL2: menu_A=menu_B=0;sleep=true;break;
case TL3: menu_A=1;menu_B=0;
output_low(HV_ENABLE);
printf(lcd_putc,"\fSTART HV 400V");
delay_ms(2000);
counters=true;
break;
}
if (key) {refresh=true;clear_lcd();}
break;
case 1: menu_proces(key);break; //skok na menu zobrazujici vypoctene a nacitane promenne
case 3: if (key==TL2) {log_switch=modulo(++log_switch,3);write_eeprom(EE_LOG_SWITCH,log_switch);log=false;}
switch (log_switch)
{
case 0: printf(lcd_putc,"log \176 rs232");break;
case 1: printf(lcd_putc,"log \176 eeprom 1m");break;
case 2: mon=LOG_PERIOD;printf(lcd_putc,"log \176 eeprom %um",mon);break;
//case 3: printf(lcd_putc,"log \176 off ");break;
}
break;
case 9: printf(lcd_putc,"OFF (stand by)");
if (key==TL2) {menu_A=menu_B=0;sleep=true;output_high(HV_ENABLE);}
break;
case 8: if (key==TL2) if (echo_switch) echo_switch=0;else echo_switch=1;
 
if (echo_switch) printf(lcd_putc,"echo on");
else printf(lcd_putc,"echo off");
break;
case 4: if (key==TL2) send_data();
printf(lcd_putc,"send log \176 rs232");
break;
case 5: if (key==TL2) {log=false;ee_offset=2;write_eeprom(EE_LOG_OFFSET,2);}
printf(lcd_putc,"erase eeprom %3u",(int8)(MAX_EEPROM-ee_offset)/2);
break;
case 2: printf(lcd_putc,"STOP & clear");
if (key==TL2) {menu_A=0;menu_B=0;refresh=true;}
break;
case 7: printf(lcd_putc,"batterie ");
//if (!input(CHARGE)) {printf(lcd_putc,"charge");break;}
if ( key == TL2 || counters )
{
if ( !counters ) {output_low(HV_ENABLE);delay_ms(30);}
analog = (float) (read_adc());
analog = 1024/analog*1.5 + 0.18;
if ( !counters ) output_float(HV_ENABLE);
printf(lcd_putc,"%1.2fV",analog);
}
break;
case 6: if (key == TL2) {pwm++;if (pwm > 10) pwm --;}
if (key == TL1) {pwm--;if (pwm < 2) pwm ++;}
set_pwm1_duty(pwm);
printf(lcd_putc,"contrast: %d\n - + roll",pwm);
break;
case 10: if (key==TL2) {set_timer1(0);sRTC=0;mRTC=modulo(++mRTC,60);}
if (key==TL1) hRTC=modulo(++hRTC,24);
printf(lcd_putc,"\rtime %2d:%02d\nhod min roll",hRTC,mRTC);
break;
case 11: if (key==TL1) {mon=mdRTC;year=yRTC;set_date();mdRTC=mon;year=yRTC;}
if (key==TL2) {mon=dRTC;year=yRTC;dRTC=32;set_date();year=yRTC;}
if (key==0x30) {mon=mdRTC;yRTC++;dRTC--;set_date();}
printf(lcd_putc,"\rdate %2d.%02d.%02d\nday mon roll",dRTC,mdRTC,yRTC);
break;
}
}
 
void counters_fce()
{
int8 *adr;
if (vypocet) //1x za minutu se provede vypocet a log
{
dif=gmcount_sm-gmcount_p;
gmcount_p=gmcount_sm;
avg=gmcount_sm/mincount;
if (dif>max) max=dif;
if (dif<min) min=dif;
if (mincount==5) bkg=gmcount_sm/5;
vypocet=false;
refresh=true;
 
if (log)
{
//if (log_switch && (ee_offset>(MAX_EEPROM-2))) {log=false;return;}
switch (log_switch)
{
case 0: printf("\n\r%d:%02d %2d/%02d/%02d dif=%lu",hRTC,mRTC,dRTC,mdRTC,yRTC,dif);break;
case 2: if (log_interval) break;
case 1: adr=&dif;adr++;bit_clear(*adr,7);
write_eeprom(ee_offset++,*adr);
write_eeprom(ee_offset++,*(--adr));
write_eeprom(EE_LOG_OFFSET,ee_offset);
if (ee_offset > (MAX_EEPROM-2)) log=false;
break;
}
log_interval=modulo(++log_interval,LOG_PERIOD);
}
}
}
 
void echo_fce()
{
int8 a,c;
int16 b;
if (!echo_tik || !counters) return;
//if (echo_switch==2) {echo_switch=1;echo_cycle=ECHO_MAX_CYCLE/echo_tik;echo_timer=0;}
if (echo_tik == 1)
{
for (a=0;a<2;a++) {output_high(ECHO_PIN1);delay_us(160);output_low(ECHO_PIN1);delay_us(160);}
echo_tik=0;
}
else /*if ((echo_timer == echo_cycle) || (!echo_timer))*/
{
echo_switch=1;
c=echo_tik;
if (echo_tik <40) {a=40/c;b=0;}
if ((echo_tik >=40) && (echo_tik < 60)) {a=0;b=40000/c;}
if (echo_tik >=60) {a=0;b=160;}
while (echo_tik && (echo_switch==1) && !kbd_press())
{
echo_timer=0;
output_high(ECHO_PIN1);
delay_us(160);
output_low(ECHO_PIN1);
piezo=~piezo;
delay_us(b);
delay_ms(a);
}
 
//output_bit(ECHO_PIN2,piezo);
}
echo_timer++;
}
 
void pin_set_sleep()
{
#use fast_IO(A)
set_tris_A(0x15);
output_A(0x2a);
#use standard_IO(A)
#use fast_IO(B)
set_tris_B(0x70);
output_B(0x8f);
#use standard_IO(B)
#use fast_IO(C)
set_tris_C(0x2);
output_C(0x84);
#use standard_IO(C)
}
 
void sleep_fce()
{
/*if (!input(CHARGE)) // pokud se nabiji, pak nespi
{
printf(lcd_putc,"\fcharged batt");
tik_to_sleep = 0;
while (!tik_to_sleep) if (input(CHARGE)) return;
kbd_getc();
sleep = false;
}
else */
{
//setup_timer_0(RTCC_DIV_1|RTCC_INTERNAL);
//setup_timer_1(T1_DISABLED);
//setup_timer_2(T2_DIV_BY_16,249,10);
counters=false;
printf(lcd_putc,"\fchrrr");
delay_ms(1000);
setup_adc_ports(ADC_OFF);
setup_ccp1(CCP_OFF);
//SET_TRIS_A(0xFF);
//SET_TRIS_B(0xFF);
//SET_TRIS_C(0xFF);
pin_set_sleep();
do {sleep();delay_cycles(1);} while ( kbd_state!=0x20 /*&& input(CHARGE)*/ );
#use fast_IO(B)
set_tris_B(0x70);
output_B(0);
#use standard_IO(B)
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_DIV_16);
set_adc_channel(0);
//setup_timer_0(RTCC_DIV_1|RTCC_EXT_L_TO_H);
//setup_timer_2(T2_DIV_BY_16,249,10);
//setup_ccp1(CCP_PWM);
menu_A=menu_B=0;
setup_ccp1(CCP_PWM);
set_PWM1_duty(pwm);
delay_ms(200);
output_low(LCD_ENABLE);
output_high(HV_ENABLE);
lcd_init();
//printf(lcd_putc,"\fhello");
delay_ms(1000);kbd_getc();
keyp=0;
sleep=false;
refresh=true;
}
}
 
 
void main()
{
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_DIV_16);
set_adc_channel(0);
setup_timer_0(RTCC_DIV_1|RTCC_EXT_L_TO_H);
setup_timer_1(T1_EXTERNAL|T1_DIV_BY_8|T1_CLK_OUT);
setup_timer_2(T2_DIV_BY_16,249,10);
setup_ccp1(CCP_PWM);
set_PWM1_duty(0x5);
 
enable_interrupts(INT_TIMER2);
enable_interrupts(INT_RB);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
 
output_low(LCD_ENABLE);
KBD_init();
LCD_init();
pwm=5;
sRTC=0;
mRTC=0;
hRTC=0;
dRTC=18;
mdRTC=10;
yRTC=07;
 
menu_A=menu_B=0;
refresh=true;
keyp=0;
 
 
while (TRUE)
{
if (refresh) display(keyp); //povoleni zobrazeni(menu + fce tlacitek)
if (counters) { tik_to_sleep = TIME_TO_SLEEP;counters_fce();} //povoleni citacu,vypoctu a logovani
else if (! tik_to_sleep) sleep = true; //necita a zadny stisk tlacitek do TIME_TO_SLEEP pak sleep
if (echo_switch) echo_fce();
if (kbd_press()) //test stisku tlacitek,repeat, delay
{
if (!save_key) {save_key=kbd_getc();keyp=save_key;refresh=true;key_timer=KEYDELAY;} //delay key
if (!key_timer) {refresh=true;keyp=save_key;key_timer=KEYREPEAT;} //repeat key
}
else key_timer=save_key=keyp=0;
//echo (piezo)
if (test_batt && counters) //test napeti baterie
{
if (read_adc() > BATT_ENABLE)
{
printf(lcd_putc,"\flow batt");
delay_ms(2000);
sleep = true;
}
test_batt=false;
}
if (sleep) sleep_fce(); //sleep
//if (!timertest) {timertest=30;output_bit(PIN_C3,test);test=~test;}
//timertest--;
}
 
}
/Designs/Data_loggers/GMCOUNT/SW/GMC01A.hex
0,0 → 1,768
:1000000018308A0000280000FF00030E8301A100C1
:100010000A08A0008A010408A2007708A300780853
:10002000A4007908A5007A08A6007B08A70083131E
:1000300083128C308400801C1F288C1842288C303E
:100040008400001C25280C183F288B1D29280B181C
:100050003C28220884002308F7002408F80025081B
:10006000F9002608FA002708FB0020088A00210E64
:100070008300FF0E7F0E09008A110A12F32A8A11EB
:100080000A12672B8A110A125F2A0A108A100A11B3
:10009000820728340C34013406340A108A100A11FD
:1000A00082070C3400340A108A100A1182070D34BA
:1000B0006434693466343D3425346C34753400342A
:1000C0000A108A100A1182074C3400340A108A1070
:1000D0000A118207203400340A108A100A1182079C
:1000E000423400340A108A100A1182076D346934D0
:1000F0006E343D3425344C34753400340A108A1083
:100100000A1182076D34613478343D3425346C34FF
:10011000753400340A108A100A118207613476346B
:1001200067343D3425346C34753400340A108A1039
:100130000A11820762346B3467343D3425346C34E1
:10014000753400340A108A100A1182076F346E3435
:10015000743469346D3465343D3425346C3475340D
:100160003A342534303432346434203400340A10C4
:100170008A100A11820731346D3469346E340034C8
:100180000A108A100A1182070D340A346534733458
:1001900063342034203420346334723420342034E7
:1001A0002034203472346F346C346C340D340034A9
:1001B0000A108A100A11DF3E03188A0A82000D34E1
:1001C000253464343A3425343034323464342034C1
:1001D0002034253464342E34253464342E342534CC
:1001E0003034323464340A346D3465346E347534EA
:1001F000203420346F346634663420342034733431
:10020000743461347234743400340A148A100A115C
:1002100082070C345334543441345234543420342F
:100220004834563420343434303430345634003486
:100230000A148A100A1182076C346F346734203430
:100240007E342034723473343234333432340034F4
:100250000A148A100A1182076C346F346734203410
:100260007E34203465346534703472346F346D34C8
:10027000203431346D3400340A148A100A11820794
:100280006C346F34673420347E3420346534653404
:10029000703472346F346D342034253475346D34D9
:1002A00000340A148A100A1182074F344634463447
:1002B000203428347334743461346E34643420341C
:1002C00062347934293400340A148A100A118207FE
:1002D0006534633468346F34203420346F346E34C2
:1002E00000340A148A100A118207653463346834B2
:1002F0006F34203420346F346634663400340A148A
:100300008A100A118207733465346E3464342034E1
:100310006C346F34673420347E3420347234733458
:1003200032343334323400340A148A100A1182070A
:100330006534723461347334653420346534653423
:10034000703472346F346D34203425343334753462
:1003500000340A148A100A118207533454344F347B
:10036000503420342634203463346C3465346134A2
:10037000723400340A148A100A118207623461341C
:100380007434743465347234693465342034003420
:100390000A148A100A11820763346F346E3474347D
:1003A00072346134733474343A3420342534643410
:1003B0000A3420342D342B3472346F346C346C3462
:1003C00000340A148A100A1182070D347434693417
:1003D0006D34653420342534323464343A34253471
:1003E0003034323464340A3468346F3464346D34F5
:1003F00069346E3472346F346C346C3400340A10E7
:100400008A140A1182070D346434613474346534FB
:1004100020342534323464342E34253430343234AC
:1004200064342E3425343034323464340A34643441
:10043000613479346D346F346E3472346F346C34AB
:100440006C3400340A108A140A1182070A340D34FD
:10045000253464343A34253430343234643420342E
:100460002534323464342F34253430343234643417
:100470002F342534303432346434203464346934D5
:1004800066343D3425346C34753400340A108A14D3
:100490000A1182070C346334683472347234723453
:1004A00000340A108A140A1182070C346C346F3439
:1004B0007734203462346134743474340034AB08DB
:1004C000031D6D2A0608FF3A7039AA00FF30AB0001
:1004D000AC08031D6D2A2A08AC002B0F702A712A64
:1004E000AB03AD08031D772AAE0803197B2A2D083C
:1004F0000319AE03AD03D508031DD5033619842AAD
:100500008101D301D401EF2ADD080319892A0230C1
:10051000DD000108C900D30A4A0849020319CC2AA0
:100520004A0849020318B22A4A08003C8316D1003F
:100530000130D2000030031C0130D202831249087E
:10054000831651078312CA00C10700300318013017
:10055000C207003003180130C30700300318013010
:10056000C407C22A4A084902CA00C107003003185A
:100570000130C207003003180130C30700300318F0
:100580000130C4074A08DE004908CA00580BCB2ACC
:10059000D9080319B614CD2ADE015308193C031DEE
:1005A000EF2AD301D40A580BD92A5908053C03195C
:1005B000B61454083C3C031DEF2AD4010130C50792
:1005C0000318C60A0319C70A0319C80A36144408CF
:1005D000D2004308D1004208D0004108CF008C105F
:1005E0008A110A1229280608FF3A70398316D100A9
:1005F00083122A08831651020319062B0130831235
:10060000AB00831651088312AA008316133083129D
:10061000E4000B108A110A1229288316530852028B
:100620000318152B5208F800182B53085202F80033
:1006300083120034B30A01303402F43E0318562BFF
:100640000C3E572B33081F3C03183A2B0130B300E4
:10065000B40A34080D3C031D3A2B0130B4003508B0
:10066000B50A8316D100D2006430D30083120D2363
:100670007808B500562B33081E3C0318422B013076
:10068000B300B40A562B33081D3C03184B2B013022
:10069000B300B40A562B33081D3C031D562B3508F6
:1006A00003390319562B0130B300B40A00340A147D
:1006B0008A140A118207222B432B222B3B2B222B3D
:1006C0003B2B222B222B3B2B222B3B2B222B103084
:1006D000B00730083B3C0318882BB10A300883165A
:1006E000D2003C30D30083120D237808B0003108CB
:1006F0003B3C03187D2BB20AB10131080F390F3C86
:10070000031936173208173C0318882BB2011A2335
:10071000B614E408031DE4030C108A110A122928F8
:100720008316811383120608AA00AA01FF30AB00CA
:10073000AC018A150A165028A73084000008031956
:10074000B02B0130F800F701F70BA42BF80BA32B0B
:100750004A30F700F70BAA2B00000000800BA12BFA
:10076000003483162D18B82B83128611BA2B8316EA
:100770008312861583168611AD18C22B83120611BB
:10078000C42B831683120615831606112D19CC2B44
:1007900083128610CE2B831683128614831686103E
:1007A000AD19D62B83120610D82B8316831206148C
:1007B0008316061083128617831686130000831291
:1007C000861383168613831200348316AB08031D29
:1007D000ED2B83128713EF2B831683128717A91330
:1007E000290883168700AC0E2C08AD008312B123B4
:1007F0008316AC0E2C08AD008312B1230D30F70028
:10080000F70B002C0034C8308316A70083129C23FA
:100810008713A9132908831687008312861383166A
:1008200086138312EA016A08023C031C232C02305F
:100830008316A70083129C2303308316AD00831216
:10084000B123EA0A132C0D30F700F70B252C0230E8
:100850008316AD008312B1230D30F700F70B2E2C59
:10086000EA016A08023C031C472C6A084520EB0099
:100870008316AB0183126B088316AC008312E52349
:1008800002308316A70083129C23EA0A312C00341D
:10089000013083162702A9002808023C031D522CB0
:1008A0004030A90729088038AA00AB012A08AC000B
:1008B0008312E5230034831626080C3A83120319A9
:1008C000682C063A0319742C073A03197C2C832CE4
:1008D0008316AB010130AC008312E523023083168E
:1008E000A70083129C23912C01308316A7000230AD
:1008F000A80083124824912C01308316A700A80079
:1009000083124824912C831626081F3C031C8A2C32
:100910000730A6050130AB002608AC008312E523A2
:10092000912C0034EE016E084D20003803199E2CE6
:10093000EE0A8316A60083125B24932C00348316E0
:100940002508F80124020318A82C2408F700B42C69
:10095000F7010830A600A40DF70D2508770203184B
:10096000F700F80DA60BAB2C831200342030701E5C
:100970003030F1006F08F700EF1FC52CF709F70AB8
:100980007708EF002D30F100F0176F088316A400F0
:100990006430A50083129F247708EF003030780779
:1009A000F2006F088316A4000A30A50083129F246A
:1009B00030307707F40030307807F3007108F70023
:1009C000F01DE42CF01F7011701AF12CF01F0C2D8B
:1009D00070190C2D7708F200F0180C2D7708F30031
:1009E0000C2D30307202031D0C2D7708F2002030E0
:1009F000F100F01DFF2C7011F014F01FF0103030DA
:100A00007302031D0C2D7708F3002030F200F01D57
:100A1000FF2CF010F01F7010701D132D710883163D
:100A2000A60083125B24F01C1A2D72088316A60000
:100A300083125B24701C212D73088316A600831279
:100A40005B2474088316A60083125B240034040818
:100A5000F600700EF038F200F207E23EF300323E8C
:100A6000F50070080F39F307F307F507E93EF400C6
:100A7000F407F4076F0E0F39F407F507F40DF50DC1
:100A8000F509F50D6F080F39F507F20D0730F10084
:100A90000A30F507F403031C492DF407F303031C84
:100AA0004D2DF307F203031C512DF207F103031C34
:100AB000552D713084000730760576138407753024
:100AC0000402031976170008F700031D6F2D761B2B
:100AD0006F2D761A7D2DF6196F2D2030722DF6159B
:100AE00076123030F707F0010408EF00770883161C
:100AF000A60083125B246F088400840A761F5F2D92
:100B00000034780870088316A4006430A5008312AE
:100B10009F247708F00078083030031D962DF11CD3
:100B20009F2DF1199F2D711A2030992DF1117112FD
:100B30007114F80778088316A60083125B247008E6
:100B40008316A4000A30A50083129F247708F000C2
:100B500078083030031DB22DF119B82D711CB82D55
:100B6000711A2030F80778088316A60083125B24D8
:100B70003030F00770088316A60083125B2400341F
:100B8000F701F801F901FA018316AE01AF01B001D6
:100B9000B1012D082C042B042A040319FF2D203049
:100BA000B2000310A60DA70DA80DA90DAE0DAF0D37
:100BB000B00DB10D2D083102031DE82D2C083002B7
:100BC000031DE82D2B082F02031DE82D2A082E02F5
:100BD000031CF92D2A08AE022B08031C2B0FAF02B1
:100BE0002C08031C2C0FB0022D08031C2D0FB10282
:100BF0000314F70DF80DF90DFA0DB20BD12D00000D
:100C0000AE3084008312003404088316A0003B3009
:100C1000A5009A30A400CA30A300A2010A30A100A6
:100C20007208A9007108A8007008A70083126F0855
:100C30008316A6002508AD002408AC002308AB00ED
:100C40002208AA008312C0250008EF00840A0008C9
:100C5000F000840A0008F100840A0008F200FD3068
:100C60008407F708031D4B2E83162108013A031D44
:100C70003B2E83124B2E200803194D2E0F392102D3
:100C80000319442E0318542EA01B542E201B4D2E46
:100C900020304E2E83128316A0013030F7077708DC
:100CA000A60083125B2483162508A9002408A80047
:100CB0002308A7002208A600AD01AC01AB010A3051
:100CC000AA008312C0257A088316A5007908A4001B
:100CD0007808A3007708A200A10B102E831200341D
:100CE0000B088316A70083128B1329132908831678
:100CF0008700831207130830F8000000000000008E
:100D0000F817932EF8138316A60C831203180717EF
:100D1000031C07137817932E7813F80B832E00000B
:100D20000000000007171C308400840B952E000083
:100D30000000F81B822E781B8C2E8316A71FA32E73
:100D400083128B178316831200342030741E3030C8
:100D50008316A0007308F700F31FB52EF709F70AF2
:100D60007708F3002D30A000F4177308A400643056
:100D7000A50083129F247708F3003030780783168C
:100D8000A1007308A4000A30A50083129F2430300C
:100D900077078316A30030307807A2002008F700F9
:100DA000F41DD42EF41F7411741AE12EF41FFC2EBE
:100DB0007419FC2E7708A100F418FC2E7708A20005
:100DC000FC2E30302102031DFC2E7708A1002030BC
:100DD000A000F41DEF2E7411F414F41FF410303041
:100DE0002202031DFC2E7708A2002030A100F41D72
:100DF000EF2EF410F41F7410741D032F2008A600AA
:100E0000831270268316F41C0A2F2108A600831271
:100E100070268316741C112F2208A60083127026D8
:100E200083162308A60083127026003478087208FF
:100E30008316A4006430A50083129F247708F20073
:100E400078083030031D2B2FF31C342FF319342F67
:100E5000731A20302E2FF31173127314F8077808C9
:100E60008316A6008312702672088316A4000A3027
:100E7000A50083129F247708F20078083030031D04
:100E8000472FF3194D2F731C4D2F731A2030F8077D
:100E900078088316A600831270263030F207720895
:100EA0008316A600831270268A110A16042B0408E2
:100EB0008316A500720EF038A100A107E23EA20041
:100EC000323EA40072080F39A207A207A407E93E28
:100ED000A300A307A307710E0F39A307A407A30D4F
:100EE000A40DA409A40D71080F39A407A10D0730A2
:100EF000A0000A30A407A303031C7A2FA307A203B0
:100F0000031C7E2FA207A103031C822FA107A003AD
:100F1000031C862FA0308400073025052513840785
:100F2000A4300402031925170008F700031DA02FA1
:100F3000251BA02F251AAE2FA519A02F2030A32FD7
:100F4000A51525123030F707F2010408F1007708E3
:100F5000A60083127026710884008316840A251F58
:100F6000902F831200348E30F7006E08F8006D0861
:100F7000F900FA01F808031DC72F7908F800F901F4
:100F80000830F702F808031DC72FF701CF2F031011
:100F9000F81BCE2FF90DF80DF703C72FF81300003B
:100FA0008A110A16DE2B83162608B63CA600FA0123
:100FB0002708AA00A7170310A70CA80CA90CFA0C65
:100FC000F90CF80CF70CA60BDB2FAA1FF22FF70970
:100FD000F809F909FA09F70A0319F80A0319F90ACD
:100FE0000319FA0A83128A150A12FE2C2C08EA0049
:0C0FF000EA08031DAC016A08F800003498
:101000006D08403A03190B28603A03191228303A48
:101010000319C228D5280230D800B6148A119224A8
:101020008A15182A361E16283612C1283616DB08ED
:101030000319C1285C08053C03182E2804305C0203
:10104000EF0003178D0083168C130C1483120C0809
:101050000313EE00EE1F2E280430DC025C08F93C7E
:10106000031834283612C128DA013208EE00EE17D0
:101070005C08DC0AEF0003178D0003136E080317EA
:101080008C0083168C130C15831203130B08F700C6
:101090008B138316031755308D00AA308D008C14E6
:1010A0008C1850280C117708831203138B04310815
:1010B000EE005B18EE175C08DC0AEF0003178D00EA
:1010C00003136E0803178C0083168C130C15831200
:1010D00003130B08F7008B138316031755308D008D
:1010E000AA308D008C148C1873280C117708831289
:1010F00003138B045C08DC0AEF0003178D00031355
:10110000330803178C0083168C130C1583120313FA
:101110000B08F7008B138316031755308D00AA3088
:101120008D008C148C1892280C11770883120313ED
:101130008B0407303502F700F70EF030F70577081B
:101140003404EE005C08DC0AEF0003178D00031383
:101150006E0803178C0083168C130C15831203136F
:101160000B08F7008B138316031755308D00AA3038
:101170008D008C148C18BA280C1177088312031375
:101180008B04D528D90AA8018B1BA8178B135908E3
:101190008316D2000630D3008A1183120D238A15DC
:1011A000A81B8B177808D900D528EE016E088A1184
:1011B00053208A15EE0AF7008316A6008A118312BF
:1011C0005B248A1505306E02031DD628103084007A
:1011D0004008F0003F08EF008A1127258A150330E8
:1011E000EF0020308316A6008A1183125B248A1533
:1011F000EF0BF1280B308316A7000130A8008A11ED
:10120000831248248A15361E1629EE016E088A11AB
:1012100060208A15003803191529EE0A8316A600E6
:101220008A1183125B248A1506292629EE016E088D
:101230008A1166208A15003803192629EE0A8316BA
:10124000A6008A1183125B248A15172939083A04EB
:1012500003193A29EE016E088A116C208A150038AC
:1012600003193A29EE0A8316A6008A1183125B2419
:101270008A152B290E308316A7000130A8008A1189
:10128000831248248A155C08FF3CF7000310770C92
:10129000EF00F0001330F1008A1181258A150A3021
:1012A0008316A6008A1183125B248A155908FA3E18
:1012B0000318182A063E1B2A6E308316A6008A11D0
:1012C00083125B248A153D308316A6008A1183128F
:1012D0005B248A15413084004408F2004308F10081
:1012E0004208F0004108EF008A1104268A15182AE6
:1012F000EE016E088A1172208A15EE0AF700831635
:10130000A6008A1183125B248A1504306E02031D25
:101310007929103084003C08F0003B08EF008A1166
:1013200027258A15182AEE016E088A117E208A1553
:10133000EE0AF7008316A6008A1183125B248A1531
:1013400004306E02031D9429103084003E08F00022
:101350003D08EF008A1127258A15182AEE016E082C
:101360008A118A208A15EE0AF7008316A6008A11D0
:1013700083125B248A1504306E02031DAF291030DE
:1013800084003808F0003708EF008A1127258A15F5
:10139000182AEE016E088A1196208A15EE0AF700C7
:1013A0008316A6008A1183125B248A1504306E020C
:1013B000031DCA29103084003A08F0003908EF00F4
:1013C0008A1127258A15182AEE016E088A11A22093
:1013D0008A15EE0AF7008316A6008A1183125B2491
:1013E0008A1507306E02031DE52941308400480844
:1013F000F2004708F1004608F0004508EF008A11A6
:1014000004268A153A308316A6008A1183125B24BB
:101410008A155408EF000130F0008A11B6248A15AD
:1014200020308316A6008A1183125B248A15182A9D
:101430008A110A16362E0A108A140A1182075C29AC
:1014400078299329AE29C929E4296D080319FD2AB1
:101450008316A4007108031D2F2A8312FD2AA402FB
:10146000031C392A7F30A407031C382A8312FD2A63
:10147000432A8130A40203183F2A8312FD2A031D48
:10148000432A8312FD2A2408F700F801F901FA0122
:10149000A30183126E088316A200A21783126F089D
:1014A0008316A1007008A0001930A4007408A002DF
:1014B00003186A2A0130A10203186A2AA20203183B
:1014C0006A2AA30203186A2AA30AA20AA10A7408B4
:1014D000A0079C2A7308A1020318852A0130A202E2
:1014E0000318852AA3020318852AA30AA20A7308EF
:1014F000A1077408A007031C9C2AA10A031D9C2AAB
:10150000A20A031D9C2AA30A9C2A72088038A20200
:1015100003189B2A0130A30203189B2AA30A72080E
:101520008038A2077308A107031C792AA20A031DA9
:10153000792AA30A792A7A14A40B9F2AAA2A0310CB
:10154000A00DA10DA20DA30D0310FA0DF90DF80DBC
:10155000A50D562A251CB22A0310F80CF90CFA0C1A
:10156000A50CB62AF70BB62A8312FD2AA51BDF2A83
:101570000310A00DA10DA20DA30D7408A002031865
:10158000CB2A0130A1020318CB2AA2020318CB2ACE
:10159000A302031CF02A7308A1020318D62A013003
:1015A000A2020318D62AA302031CF02A720880386C
:1015B000A2020318DF2A0130A302031CF02AFA0A50
:1015C000031DF02AF90A031DF02AF80A031DF02A68
:1015D000F70A031DED2A8312FD2AF80CF90CFA0C08
:1015E00083126E088316A4007208A406A41FFA2AA8
:1015F000F817022BF813022B8312F701F801F901F7
:10160000FA018316000083128A110A16F72B83163B
:1016100026080319782BAE002A080319782BAE0789
:101620000318192B7F30AE02031C782B0319782B7B
:101630001D2B8130AE070318782B2E08F700F80118
:10164000F901FA012708B200B2172808B1002908E9
:10165000B0001830AE00AF01301C462B2D08FA0741
:10166000031C382BF90A031D382BF80A0319AF178E
:101670002C08F907031C3F2BF80A0319AF172B0896
:10168000A800A8172808F8070318AF17AF0DF80C23
:10169000F90CFA0CB20CB10CB00C0310AE0B2B2BE6
:1016A0000130F7070318782BF81B5D2BB20DFA0DEC
:1016B000F90DF80DF7030319782BB21F6E2BFA0AF8
:1016C000031D6E2BF90A031D6E2BF80A031D6E2BEA
:1016D000F80CF90CFA0CF70A0319782B2708AF005D
:1016E0002B08AF06AF1F762BF8177C2BF8137C2B3B
:1016F000F701F801F901FA0100008312003480308B
:10170000831C852B8316A50683128316AA01AB01C1
:101710002108A9002508A90620080319702CA80093
:10172000F70024080319792CA8020319162C031CAE
:10173000D52B2508AE00AE172608AD002708AC0053
:10174000AB010310AE0CAD0CAC0CAB0CA80BA02B7A
:10175000A91FAD2B2A148D2C2A1028102A16A3306D
:101760008400A22C2A12A91BBF2B281CCA2BAE0C4A
:10177000AD0CAC0CAB0CF70A0319882CCA2BAE1BB2
:10178000CD2B0310AB0DAC0DAD0DAE0DF703031952
:10179000882CBF2B2A17352C2A132108A900A11F3A
:1017A000D32BAE17812CAE13812C2408A800F70090
:1017B0002008A8022108AE00AE172208AD002308B9
:1017C000AC00AB010310AE0CAD0CAC0CAB0CA80B19
:1017D000E12BA91FEE2BAA148D2CAA102810AA16F3
:1017E000A7308400A22CAA12A91B002C281C0B2CA9
:1017F000AE0CAD0CAC0CAB0CF70A0319882C0B2CFF
:10180000AE1B0E2C0310AB0DAC0DAD0DAE0DF703E2
:101810000319882C002CAA17352CAA132508A90017
:10182000A51F142CAE17812CAE13812C2508AE00F9
:10183000AE172608AD002708AC00A91F232CAE1355
:101840002A158D2C2A11AB012810A3308400A22C5C
:10185000A91B4B2C2108A900281C352CAE0CAD0C63
:10186000AC0CAB0CF70A0319882CAB1F462CAC0A46
:10187000031D462CAD0A031D462CAE0A031D462C43
:10188000AE0CAD0CAC0CF70A0319882C2A1BCC2B20
:10189000AA1B0D2C6A2C8030AE06AE1F532C8D2C4B
:1018A0002508A900602C2108A900AE08031D602CA2
:1018B000AD08031D602CAC08031D602CF701812CC2
:1018C000AE1B6A2C0310AB0DAC0DAD0DAE0DF70BBE
:1018D000602C882CA91F6E2CAE17812CAE13812C86
:1018E0002408F7002508AE002608AD002708AC0044
:1018F000812C2008F7002108AE002208AD00230843
:10190000AC002E08F8002D08F9002C08FA00C02CB5
:10191000F701F801F901FA01C02CAB01AC09AD09DE
:10192000AE09AB09AB0A031D9B2CAC0A031D9B2C13
:10193000AD0A0319AE0A2A18AC2BAA18ED2B2A19E6
:10194000222C502C0008AC07031CAC2CAD0A031D44
:10195000AC2CAE0A0319281484030008AD07031C3D
:10196000B42CAE0A0319281484030008801F803A9F
:10197000AE07031828142A1AB22BAA1AF32B282C04
:10198000000083128A110A16392C04088316A0005D
:101990007108A1000319ED2C7008A90083126F08CB
:1019A0008316A80083126E088316A70083126D08A1
:1019B0008316A600AD01AC012030AB008230AA0036
:1019C000831207237A08F0007908EF007808EE0008
:1019D0007708ED008316A10BCC2C7008A9008312A8
:1019E0006F088316A80083126E088316A70083125F
:1019F0006D088316A6008A118312D32F8A157A08E0
:101A0000F0007908EF007808EE007708ED00F01F8D
:101A1000182D8316A003A0168312ED09EE09EF0915
:101A2000F009ED0A0319EE0A0319EF0A0319F00A87
:101A30003B308316A5009A30A400CA30A300A2014F
:101A40000A30A10071080319A00A7008A9008312C6
:101A50006F088316A80083126E088316A7008312EE
:101A60006D088316A6002508AD002408AC002308E5
:101A7000AB002208AA008A118312C0258A1500082B
:101A8000ED00840A0008EE00840A0008EF00840AD2
:101A90000008F000FD308407F708031D662D710A69
:101AA00083162102031D562D8312662D200803196B
:101AB000692D0F39210203195F2D0318A92DA01BD1
:101AC000A92D201B692D2030A12D831220308316D3
:101AD000A005A01E7B2DA0127108031DA00377088E
:101AE000A0002D30A6008A1183125B248A1583166C
:101AF0002008F700A00171082102031D8D2D770831
:101B0000A0002E30A6008A1183125B248A1583164A
:101B10002008F7002030A00500303030A01EA12D95
:101B2000A0127108031DA0037708A0002D30A600A5
:101B30008A1183125B248A1583162008F700A001FE
:101B40003030F7077708A6008A1183125B248A15C4
:101B500083162508A9002408A8002308A700220846
:101B6000A600AD01AC01AB010A30AA008A118312B4
:101B7000C0258A157A088316A5007908A40078087C
:101B8000A3007708A200A10B252D83128A110A1643
:101B9000572C361C442F4B084F02BF005008C00082
:101BA0004C08031C4C0FC0025208CE005108CD0057
:101BB0005008CC004F08CB0052088316A9008312AE
:101BC00051088316A800831250088316A7008312B9
:101BD0004F088316A600831248088316AD008312AF
:101BE00047088316AC00831246088316AB008312A5
:101BF00045088316AA008A118312C0258A15780821
:101C0000B8007708B7003E084002031C112E031DE0
:101C10000D2E3F083D020318112E4008BE003F085C
:101C2000BD0040083C02031C1F2E031D1B2E3B0859
:101C30003F0203181F2E4008BC003F08BB004508A8
:101C4000053C031D482EC608031D482EC708031D6A
:101C5000482EC808031D482E52088316A900831277
:101C600051088316A800831250088316A700831218
:101C70004F088316A600AD01AC01AB010530AA00E8
:101C80008A118312C0258A157808BA007708B9002E
:101C90003610B614361E442F5B080319562E023A2E
:101CA0000319BF2E033A0319C22E322F0A308316AE
:101CB000A6008A11831270268A150D308316A6009D
:101CC0008A11831270268A153208F3001F30F4003F
:101CD0008A11A5268A153A308316A6008A11831226
:101CE00070268A153108F3000130F4008A11A52608
:101CF0008A1520308316A6008A11831270268A1551
:101D00003308F3001130F4008A11A5268A152F300C
:101D10008316A6008A11831270268A153408F300F0
:101D20000130F4008A11A5268A152F308316A600EB
:101D30008A11831270268A153508F3000130F400E9
:101D40008A11A5268A151730EB006B088A1122220A
:101D50008A15EB0AF7008316A6008A1183127026F3
:101D60008A151C306B02031DA52E1030840040081C
:101D7000F2003F08F1008A1157278A15322FDA083E
:101D8000031D322F3F30EA00EA0A6A0884008013FC
:101D90005C08DC0AEB006A0884000008EC006B08B1
:101DA00003178D0003136C0803178C0083168C1324
:101DB0000C15831203130B08F7008B1383160317FC
:101DC00055308D00AA308D008C148C18E52E0C1126
:101DD0007708831203138B045C08DC0AEB00EA0328
:101DE0006A0884000008EC006B0803178D000313D9
:101DF0006C0803178C0083168C130C1583120313C5
:101E00000B08F7008B138316031755308D00AA308B
:101E10008D008C148C180A2F0C1177088312031371
:101E20008B0403178D0103135C0803178C008316C2
:101E30008C130C15831203130B08F7008B138316F6
:101E4000031755308D00AA308D008C148C18262F66
:101E50000C117708831203138B045C08FD3C031CF0
:101E60003612322FDA0AA8018B1BA8178B135A08D7
:101E70008316D2001E30D3008A1183120D238A15D7
:101E8000A81B8B177808DA008A150A167428F8013F
:101E9000F901F701FA017108031D512F70080319A8
:101EA0006B2F1030F2000310EE0DEF0DF70DFA0D51
:101EB00071087A02031D5E2F70087702031C672FDA
:101EC0007008F702031CFA037108FA020314F80DF4
:101ED000F90DF20B532F00008A110A16962E2B0FC4
:101EE000722F762F0030F800792F792F2A08F8000A
:101EF000792F00341230EE02031C8C2F6E308400D8
:101F0000FC3080050310800C800C000803198C2F16
:0E1F10008A2F0000800B892F8A110A16CA2E14
:10200000EA08031906280A1292240A16D701B61004
:102010005808013C03183F286A08103C031D172884
:10202000D80A58080B3C031817280230D800580863
:102030000A3C03193F285808063C03193F28580852
:102040000B3C03193F286A08403C031D2F28361D0E
:102050002C280130D8002D28D801EA013F28ED01B5
:102060006D080A12C0200A16003803193F28ED0A2D
:102070008316A6000A1283125B240A163028580819
:10208000F43E0318362E0C3E392EFF30BC00BB0048
:10209000BA01B9013A08B8003908B7003808C000D9
:1020A0003708BF00C801C7014008C6003F08C50087
:1020B000C900CA00CE01CD01CC014A08CB004E08B0
:1020C000D2004D08D1004C08D0004B08CF00520878
:1020D000C4005108C3005008C2004F08C1004208A4
:1020E000BE004108BD00DD0136125D183616361AF5
:1020F0007B2836117C28361536198028B6118128A0
:10210000B615B619852836108628361436170130CC
:1021100003178D0083168C130C1483120C08031301
:10212000DB0003178D0183168C130C1483120C082B
:102130000313DC0083168511831285150D30831679
:10214000A6000A1283125B240A163208EF001F3021
:10215000F0000A12B6240A163A308316A6000A12B4
:1021600083125B240A163108EF000130F0000A12D6
:10217000B6240A1620308316A6000A1283125B24A6
:102180000A1620308316A6000A1283125B240A1650
:102190003308EF001F30F0000A12B6240A162E3062
:1021A0008316A6000A1283125B240A163408EF0075
:1021B0001F30F0000A12B6240A162E308316A6002D
:1021C0000A1283125B240A163508EF000130F00072
:1021D0000A12B6240A160330ED0020308316A6003A
:1021E0000A1283125B240A16ED0BED281430EE0060
:1021F0006E080A12D8200A16EE0AF7008316A60007
:102200000A1283125B240A1625306E02031DF82879
:102210006A08403A03191329603A03191629303A1B
:1022200003191B293F290230D8003F29D901590839
:10223000D800B6153F290130D800D9018316851181
:1022400083128511ED016D080A1205210A16003866
:1022500003193229ED0A8316A6000A1283125B24A1
:102260000A1623290830ED00FA308316A7000A1257
:1022700083129C230A16ED0B342936153F29EA08F0
:1022800003194629B6140A1292240A16362E6A0831
:10229000ED000A128A1500280A168A116A08203CE5
:1022A000031D8229DB0AA8018B1BA8178B135B086F
:1022B0008316D2000330D3000A1283120D230A16AC
:1022C000A81B8B177808DB00013003178D00031360
:1022D0005B0803178C0083168C130C1583120313F1
:1022E0000B08F7008B138316031755308D00AA30A7
:1022F0008D008C148C187A290C1177088312031323
:102300008B0436125B0803198C29013A03199D29A5
:10231000033A0319AE29D029ED016D080A121821DC
:102320000A16003803199C29ED0A8316A6000A1222
:1023300083125B240A168D29D029ED016D080A123B
:1023400028210A1600380319AD29ED0A8316A600C4
:102350000A1283125B240A169E29D0291E30EB0034
:10236000ED016D080A123C210A16ED0AF7008316EA
:10237000A6000A1283125B240A160D306D02031D9B
:10238000B1296B08F0001B30F1000A1281250A16F2
:102390006D308316A6000A1283125B240A16D02918
:1023A000362EED016D080A1251210A160038031964
:1023B000E129ED0A8316A6000A1283125B240A168D
:1023C000D2296A08203C031DED29D9015908D800FB
:1023D000B6158316851183128515362E6A08203CA2
:1023E000031DF929DD080319F729DD01F929013059
:1023F000DD00DD0803190D2AED016D080A126421C4
:102400000A16003803190C2AED0A8316A6000A12D0
:1024100083125B240A16FD291D2AED016D080A129C
:1024200071210A16003803191D2AED0A8316A60029
:102430000A1283125B240A160E2A362E6A08203CE2
:10244000031D462B0230ED005C086D020318462B7D
:102450006E30F000700884006D08ED0AF20003177A
:102460008D0083168C130C1483120C0880007008E6
:1024700084000008F100F11F1C2B700884008013F9
:10248000700884000008F1000D3083160313A600C5
:102490000A12831270260A160A308316A6000A1240
:1024A000831270260A167108F3001F30F4000A1216
:1024B000A5260A163A308316A6000A128312702641
:1024C0000A16700884006D08ED0AF20003178D00EB
:1024D00083168C130C1483120C088000700884007F
:1024E00000083F39F100F3000130F4000A12031331
:1024F000A5260A1620308316A6000A12831270261B
:102500000A16F00A700884006D08ED0AF20003173D
:102510008D0083168C130C1483120C088000700835
:1025200084000008F100F3001F30F4000A120313C6
:10253000A5260A162F308316A6000A1283127026CB
:102540000A16700884006D08ED0AF20003178D006A
:1025500083168C130C1483120C08800070088400FE
:1025600000080F39F200F3000130F4000A120313DF
:10257000A5260A162F308316A6000A12831270268B
:102580000A1670088400000EF7000F30F705770870
:10259000073EF4007008840074088000700884000E
:1025A0000008F100F3000130F4000A12A5260A1613
:1025B00020308316A6000A12831270260A16F00332
:1025C000700884000008F100F11FF72AF10171087A
:1025D0000A12B7200A1600380319F62AF10A8316E0
:1025E000A6000A12831270260A16E72A1A2B700810
:1025F00084001E308000700884000008F100F200A2
:102600001B30F3000A12162F0A166D308316A6002F
:102610000A12831270260A1669308316A6000A125F
:10262000831270260A166E308316A6000A128312D1
:1026300070260A16452B031703136E08EF00EE01F0
:10264000700884006D08ED0AF20003178D008316F0
:102650008C130C1483120C0880000D3083160313A6
:10266000A6000A12831270260A160A308316A600E4
:102670000A12831270260A16103084006F08F200C6
:102680006E08F1000A1257270A16242AED016D0878
:102690000A127F210A1600380319562BED0A8316F9
:1026A000A6000A1283125B240A16472B362E6A08EC
:1026B000203C031D772B36120230DC0003178D01FE
:1026C0008C0083168C130C15831203130B08F70070
:1026D0008B138316031755308D00AA308D008C1490
:1026E0008C18702B0C117708831203138B045C0871
:1026F000FF3CF7000310770CEE00EF016F080A12A1
:1027000094210A16EF0AF7008316A6000A12831214
:102710005B240A160D306F02031D7E2B6E08F0003D
:102720001330F1000A1281250A16362EED016D08CC
:102730000A12A9210A1600380319A62BED0A8316DE
:10274000A6000A1283125B240A16972B6A08203C03
:10275000031DAD2BD801D901B614362EED016D083D
:102760000A12BA210A1600380319BE2BED0A831685
:10277000A6000A1283125B240A16AF2B6A08203CBB
:102780000319C42B361D602C3619D12B83168511E5
:10279000831285111E308316A7000A1283129C2310
:1027A0000A161F151F19D22B1E08FA0083161E08C1
:1027B0008312ED001E08EE000A12B32F0A167A08E3
:1027C000E8007908E7007808E6007708E500F001FE
:1027D000EF01EE018930ED006808F4006708F300AE
:1027E0006608F2006508F1000A128A15252A0A1601
:1027F0008A117708ED007808EE007908EF007A0872
:10280000F0008316A90083126F088316A8008312B4
:102810006E088316A70083126D088316A600AD010B
:10282000AC014030AB007F30AA000A128A15831237
:1028300007230A168A117708F1007808F200790850
:10284000F3007A08F400831074088316A300730859
:10285000A2007208A1007108A000EC30A70051305E
:10286000A6003830A5007C30A4000A128A15831215
:102870007F2B0A168A117A08E8007908E7007808A1
:10288000E6007708E5003619482C83168515831273
:10289000893084006808F0006708EF006608EE00E1
:1028A0006508ED000230F1000A128A15C52C0A16DF
:1028B0008A1156308316A6000A1283125B240A1668
:1028C000362E6A08203C031D6A2CE30A63080A3C82
:1028D000031CE3036A08403C031D732CE3036308F5
:1028E000013C0318E30A63089500ED016D080A1224
:1028F000C8210A16ED0AF7008316A6000A128312F1
:102900005B240A160A306D02031D762C6308EF0063
:102910001F30F0000A12B6240A160A308316A600E9
:102920000A1283125B240A1620308316A6000A12AC
:1029300083125B240A162D308316A6000A12831216
:102940005B240A160530EE0020308316A6000A121A
:1029500083125B240A16EE0BA42C2B308316A600E0
:102960000A1283125B240A160430EF00203083160B
:10297000A6000A1283125B240A16EF0BB62C103045
:10298000F00070080A12C8210A16F00AF700831630
:10299000A6000A1283125B240A1614307002031D6B
:1029A000C12C362E6A08203C031DEB2C8F018E01B2
:1029B000B001B10AA8018B1BA8178B13310883162D
:1029C000D2003C30D3000A1283120D230A16A81B32
:1029D0008B177808B1006A08403C031D012DB20A2C
:1029E000A8018B1BA8178B1332088316D20018304E
:1029F000D3000A1283120D230A16A81B8B1778081E
:102A0000B200ED016D080A12E1210A16ED0AF70085
:102A10008316A6000A1283125B240A1606306D0282
:102A2000031D022D3208EF001130F0000A12B62407
:102A30000A163A308316A6000A1283125B240A167D
:102A40003108EF000130F0000A12B6240A160E30E9
:102A5000EE006E080A12E1210A16EE0AF70083164C
:102A6000A6000A1283125B240A1612306E02031D9E
:102A7000292D0330EF0020308316A6000A1283129E
:102A80005B240A16EF0B3B2D6D308316A6000A124D
:102A900083125B240A1669308316A6000A12831279
:102AA0005B240A166E308316A6000A1283125B247A
:102AB0000A160330F00020308316A6000A12831293
:102AC0005B240A16F00B5B2D1530F10071080A1219
:102AD000E1210A16F10AF7008316A6000A128312F2
:102AE0005B240A1619307102031D662D362E6A0802
:102AF000403C031D8C2D3408EB003508EC00A80188
:102B00008B1BA8178B130A121A230A16A81B8B17E4
:102B10006B08B4003508EC006A08203C031DA12DA9
:102B20003308EB003508EC002030B300A8018B1B04
:102B3000A8178B130A121A230A16A81B8B1735081D
:102B4000EC006A08303C031DB22D3408EB00B50AD6
:102B5000B303A8018B1BA8178B130A121A230A169A
:102B6000A81B8B17ED016D080A12FF210A16ED0A4A
:102B7000F7008316A6000A1283125B240A16063099
:102B80006D02031DB32D3308EF001130F0000A125F
:102B9000B6240A162E308316A6000A1283125B246E
:102BA0000A163408EF000130F0000A12B6240A16A3
:102BB0002E308316A6000A1283125B240A163508EB
:102BC000EF000130F0000A12B6240A161330EE00AE
:102BD0006E080A12FF210A16EE0AF7008316A600F5
:102BE0000A1283125B240A1617306E02031DE82DA9
:102BF0000330EF0020308316A6000A1283125B24F4
:102C00000A16EF0BFA2D6D308316A6000A128312F6
:102C10005B240A166F308316A6000A1283125B2407
:102C20000A166E308316A6000A1283125B240A1657
:102C30000330F00020308316A6000A1283125B24B2
:102C40000A16F00B1A2E1A30F10071080A12FF2131
:102C50000A16F10AF7008316A6000A1283125B24F3
:102C60000A161E307102031D252E362E8A150A16ED
:102C70006D280A108A140A15820745284729962BC1
:102C80004E291E2A572B612CAE2BEE29D129D22C8E
:102C9000772DDE08031D361DD72E5E0B6C2EEA0144
:102CA0006A08013C031C6A2E291229088316870032
:102CB000831207163530F700F70B5C2E291229080E
:102CC00083168700831207123530F700F70B662E44
:102CD000EA0A502EDE01D42E0130DD005E08EB0042
:102CE0005E08273C031C832E28308316A400831221
:102CF0006B088316A5000A1283129F240A1678080F
:102D0000EA00ED01EC015E08273C03189C2E5E08EA
:102D10003B3C031C9C2EEA019C30EF004030EE004F
:102D2000F1016B08F0000A128A15472F0A168A1162
:102D30007908ED007808EC005E083B3C0318A42EEF
:102D4000EA01ED01A030EC00DE080319D42E5D0B82
:102D5000D42E0A128A156F270A168A11F808031D45
:102D6000D42EE001DF01291229088316870083127F
:102D700007163530F700F70BBB2E291229088316EA
:102D80008700831207122030B6066C08EE000A1284
:102D90008A157A2F0A168A116A088316A7000A1262
:102DA00083129C230A16A42EDF0A0319E00A8A154F
:042DB0000A167E2859
:1030000084011F3083052913290883168700831242
:10301000071783161F149F141F159F1107309C005C
:10302000FF308312A90083161F109F141F159F15D0
:103030001F1783121F179F1383169F1783121F14C6
:103040000030F8001F08C73978049F008316010874
:10305000C73928388100BF30831290004830F8000B
:1030600006389200F930831692008312291129083C
:1030700083168700831207110C30970005309500E6
:1030800083168C1483128B1583160C14C030831294
:103090008B0483168510831285100A128A11902BD7
:1030A0000A168A150A128A1103240A168A1505308F
:1030B000E300B001B101B2011230B3000A30B40034
:1030C0000730B500D9015908D800B614D701B61C8D
:1030D0006E285708EA008A1100288A15361D7628BE
:1030E0001330E4000A12C92D0A167928E4080319DE
:1030F000B615DD0803197F288A11492E8A150A1290
:103100006F270A16F80803199C28D608031D932870
:103110000A128A11F6270A168A157808D600D700EF
:10312000B6141E30D500D508031D9B28B6145608CA
:10313000D7000630D500A028D7015708D600D50003
:10314000361FDC28361DDC281F151F19A5281E0870
:10315000FA0083161E088312EA007A08EB00013C8D
:103160000318DB28FF3A031DB9286A080D3C031831
:10317000DB28EA016A080A128A1151220A168A1506
:1031800000380319CD28EA0A8316A6000A128A110C
:1031900083125B240A168A15BA280830EA00FA302E
:1031A0008316A7000A128A1183129C230A168A1515
:1031B000EA0BCF28B6153613B61D75293611EA016C
:1031C0006A080A128A1146220A168A15003803195B
:1031D000F328EA0A8316A6000A128A1183125B24D6
:1031E0000A168A15E0280430EA00FA308316A70090
:1031F0000A128A1183129C230A168A15EA0BF528F3
:1032000083161F109F101F119F1183122915290863
:103210008316870083129701970115308316850066
:103220002A30831285007030831686008F30831217
:103230008600023083168700843083128700630083
:1032400000002A08203C031D1F29703083168600C9
:103250008312860183161F109F141F159F151F17B9
:1032600083121F179F1383169F1783121F1400309A
:10327000F8001F08C73978049F00D9015908D80001
:103280002911290883168700831207110C30970033
:1032900063089500C8308316A7000A128A118312AA
:1032A0009C230A168A1583168510831285108316AF
:1032B0008511831285150A128A1103240A168A15AC
:1032C0000430EA00FA308316A7000A128A1183122A
:1032D0009C230A168A15EA0B62290A128A11F6271C
:0E32E0000A168A15D701B611B61467286300C6
:02400E00393F38
:00000001FF
;PIC16F876A
/Designs/Data_loggers/GMCOUNT/SW/.
Property changes:
Added: svn:ignore
+*.err