diff --git a/trunk/WDT.h b/trunk/WDT.h index b61970a..2e28e9d 100644 --- a/trunk/WDT.h +++ b/trunk/WDT.h @@ -14,7 +14,7 @@ #define WDT_Restart() WDTE = WDT_RESTART_MAGIC // 規定値以外を書くと例外でリセットがかかる -#define mcu_reset WDTE = 0xFF +#define mcu_wdt_reset WDTE = 0x0 #endif diff --git a/trunk/adc.c b/trunk/adc.c index f3496c2..fe96b7f 100644 --- a/trunk/adc.c +++ b/trunk/adc.c @@ -22,6 +22,9 @@ bit adc_updated; u8 adc_raw_vol; u8 adc_raw_dep; +u8 vol_written_ctr; + +bit vol_by_twl; typedef struct filter_work @@ -38,17 +41,16 @@ filter_work work_vr_3d = { u8 vol_data_ctr; +u8 vol_data_ctr_tmp; filter_work work_vr_vol = { - &vol_data_ctr + &vol_data_ctr_tmp }; -u8 vol_data; - - // ===================================================== // extern void nop8(); static void adc_filter( u8 new_val, filter_work* work ); +static u8 adc_scaling( u8 ); @@ -82,12 +84,41 @@ void tsk_adc( ) static u8 sndvol_codec; static u8 bt_temp_old; -#ifdef _DEBUG_PM_BOMB_VOL_ - if( system_status.pwr_state == ON ) +#if 0 +// debug { + static u16 loop; + static u8 dat_old; + static bit interval; +/* +// VOL書き頻度を半分にする + interval++; + if( !interval ) + { + return; + } +*/ + if( system_status.pwr_state == ON ) + { + loop++; + if( loop == 499 ){ +// vol_written_ctr = 0; + } + else if( loop == 500 ){ + vol_written_ctr = 0; + loop = 0; + } + else + { + vol_written_ctr = slider_to_codec[ vol_data_ctr ]; + } + } renge_task_immed_add( tski_vol_update ); } +//*/ #endif + + renge_task_immed_add( tski_vol_update ); // T = 2ms polling if( task_interval-- != 0 ) { @@ -105,24 +136,29 @@ void tsk_adc( ) if( system_status.pwr_state == ON ) { // 3D ///////////////////////////////////////// - adc_filter( adc_raw_dep, &work_vr_3d ); + adc_filter( adc_scaling( adc_raw_dep ), &work_vr_3d ); // Volume ///////////////////////////////////// - if(( vreg_ctr[ VREG_C_VOL_DIGITAL ] & 0x80 ) != 0 ) - { - // レジスタから強制セット - adc_raw_vol = ( vreg_ctr[ VREG_C_VOL_DIGITAL ] * 4 ); - } - { static u8 vol_old; - adc_filter( adc_raw_vol, &work_vr_vol ); + adc_filter( adc_scaling( adc_raw_vol ), &work_vr_vol ); // 結果は*work_vr_volから指されるvol_data_ctr 読みにくい... + vol_data_ctr = vol_data_ctr_tmp / 4; + + if(( vreg_ctr[ VREG_C_VOL_DIGITAL ] & REG_BIT_VOL_FORCE_REG ) != 0 ) + { + // レジスタから強制セット + vol_data_ctr = ( vreg_ctr[ VREG_C_VOL_DIGITAL ] & ~( REG_BIT_VOL_RESET | REG_BIT_VOL_FORCE_REG ) ); + } + if( vol_old != vol_data_ctr ) { vol_old = vol_data_ctr; - vol_data = vol_data_ctr; - renge_task_immed_add( tski_vol_update ); + vol_by_twl = 0; + vreg_ctr[ VREG_C_SND_VOL ] = vol_data_ctr; // 64段 + vol_written_ctr = slider_to_codec[ vol_data_ctr ]; + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = vol_data_ctr / 2; + // renge_task_immed_add( tski_vol_update ); 2ms後でいいでしょう... } } @@ -157,22 +193,28 @@ task_status_immed tski_vol_update() { u8 vol_scaled; u8 temp; + u8 i; - vol_scaled = ( vol_data / 4 ) & 0x3F; - // レジスタ更新 - vreg_twl[ REG_TWL_INT_ADRS_VOL ] = vol_data / ( 256 / 32 ); // ←adc値でよい - vreg_ctr[ VREG_C_SND_VOL ] = vol_scaled; // 64段 + // SPIでかくテスト todo +// return( ERR_FINISED ); - // codecに伝える - temp = slider_to_codec[ vol_scaled ]; - iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL, temp ); - // ベリファイ - if( iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL ) != temp ) + if( vol_by_twl ) { - iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL, temp ); - NOP(); + temp = slider_to_codec[ vreg_twl[ REG_TWL_INT_ADRS_VOL ] * 2 ]; + } + else + { + temp = vol_written_ctr; } + // debug todo + iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL ); + + // codecに伝える + iic_mcu_write_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL, temp ); + + // debug todo + iic_mcu_read_a_byte( IIC_SLA_CODEC, CODEC_REG_VOL ); #ifndef _MODEL_CTR_ iic_mcu_write_a_byte( IIC_SLA_DCP, 0, slider_to_codec[ ( 255 - vol_data ) / 4 ] ); @@ -338,6 +380,36 @@ u8 get_adc( u8 ch ) + +/* ======================================================== + VRの可動範囲を考えてスケーリング +======================================================== */ +#define ASOBI 10 +static u8 adc_scaling( u8 orig_val ) +{ + u16 temp; + + if( orig_val > ( 255 - ASOBI )) + { + return( 255 ); + } + + if( orig_val <= ASOBI ) + { + return( 0 ); + } + + orig_val -= ASOBI; + temp = (u16)( orig_val * 256 ) / ( 256 - ( 2 * ASOBI )); + + return( (u8)( temp & 0xFF ) ); +} + + + + + + /* ======================================================== 似非ヒステリシス V2 四捨五入的な動きします @@ -346,10 +418,7 @@ u8 get_adc( u8 ch ) static void adc_filter( u8 new_val, filter_work *work ) { u8 temp; - volatile u8 hoge; - -// if( abs( new_val - *( work -> value_used )) >= 2 ) if( abs( new_val - *( work -> value_used )) > 2 ) { // 大きく離れた @@ -371,16 +440,18 @@ static void adc_filter( u8 new_val, filter_work *work ) if( --( work -> kikan ) == 0 ) { - if( work -> diffs > (s8)( KIKAN * 0.8 ) ) + if( ( work -> diffs ) == KIKAN ) +// if( ( work -> diffs ) > (s8)( KIKAN * 0.8 ) ) { - *( work -> value_used ) += 1; + *( work -> value_used ) = *( work -> value_used ) + 1; } - else if( work -> diffs < (s8)( -1 * KIKAN * 0.8 ) ) + else if( ( work -> diffs ) == ( -1 * KIKAN ) ) +// else if( ( work -> diffs ) < (s8)( -1 * KIKAN * 0.8 ) ) { - *( work -> value_used ) -= 1; + *( work -> value_used ) = *( work -> value_used ) - 1; } - work -> kikan = KIKAN; work -> diffs = 0; + work -> kikan = KIKAN; } } } diff --git a/trunk/batt_params.h b/trunk/batt_params.h index cd67e7d..a00905b 100644 --- a/trunk/batt_params.h +++ b/trunk/batt_params.h @@ -7,43 +7,43 @@ const u8 BT_PARAM[][64] = { // ID = 0 GND マクセル { - 0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00, - 0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00, + 0x9E, 0x00, 0xAB, 0xD0, 0xB8, 0x20, 0xB8, 0xC0, + 0xB9, 0x50, 0xB9, 0xE0, 0xBB, 0x60, 0xBE, 0x30, - 0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0, - 0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0, + 0xBF, 0x20, 0xBF, 0xE0, 0xC0, 0x30, 0xC2, 0x20, + 0xC4, 0x50, 0xC9, 0x50, 0xCB, 0x00, 0xD0, 0xC0, - 0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00, - 0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0, + 0x01, 0x40, 0x00, 0xA0, 0x5B, 0xC0, 0x6A, 0x80, + 0x34, 0x20, 0x10, 0x00, 0x32, 0x20, 0x54, 0x60, - 0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0, - 0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00 + 0x03, 0x60, 0x5F, 0xC0, 0x1B, 0xC0, 0x15, 0x80, + 0x17, 0xA0, 0x02, 0x60, 0x15, 0xE0, 0x15, 0xE0, }, { // ID = 1 120 ohm (ダミーでマクセル) - 0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00, - 0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00, + 0x9E, 0x00, 0xAB, 0xD0, 0xB8, 0x20, 0xB8, 0xC0, + 0xB9, 0x50, 0xB9, 0xE0, 0xBB, 0x60, 0xBE, 0x30, - 0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0, - 0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0, + 0xBF, 0x20, 0xBF, 0xE0, 0xC0, 0x30, 0xC2, 0x20, + 0xC4, 0x50, 0xC9, 0x50, 0xCB, 0x00, 0xD0, 0xC0, - 0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00, - 0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0, + 0x01, 0x40, 0x00, 0xA0, 0x5B, 0xC0, 0x6A, 0x80, + 0x34, 0x20, 0x10, 0x00, 0x32, 0x20, 0x54, 0x60, - 0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0, - 0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00 + 0x03, 0x60, 0x5F, 0xC0, 0x1B, 0xC0, 0x15, 0x80, + 0x17, 0xA0, 0x02, 0x60, 0x15, 0xE0, 0x15, 0xE0, }, { // ID = 2 360 hom (ダミーでマクセル) - 0xAD, 0x30, 0xAE, 0x70, 0xB0, 0x00, 0xB3, 0x00, - 0xB4, 0x70, 0xB5, 0xA0, 0xB7, 0x80, 0xBA, 0x00, + 0x9E, 0x00, 0xAB, 0xD0, 0xB8, 0x20, 0xB8, 0xC0, + 0xB9, 0x50, 0xB9, 0xE0, 0xBB, 0x60, 0xBE, 0x30, - 0xBB, 0x90, 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0xF0, - 0xC3, 0x00, 0xC5, 0xC0, 0xC8, 0x00, 0xCA, 0xC0, + 0xBF, 0x20, 0xBF, 0xE0, 0xC0, 0x30, 0xC2, 0x20, + 0xC4, 0x50, 0xC9, 0x50, 0xCB, 0x00, 0xD0, 0xC0, - 0x04, 0x00, 0x12, 0x00, 0x0C, 0x10, 0x24, 0x00, - 0x10, 0xD0, 0x1B, 0xF0, 0x0A, 0xF0, 0x08, 0xE0, + 0x01, 0x40, 0x00, 0xA0, 0x5B, 0xC0, 0x6A, 0x80, + 0x34, 0x20, 0x10, 0x00, 0x32, 0x20, 0x54, 0x60, - 0x0C, 0xF0, 0x08, 0xC0, 0x08, 0xB0, 0x07, 0xF0, - 0x0B, 0x00, 0x05, 0xD0, 0x02, 0x00, 0x09, 0x00 + 0x03, 0x60, 0x5F, 0xC0, 0x1B, 0xC0, 0x15, 0x80, + 0x17, 0xA0, 0x02, 0x60, 0x15, 0xE0, 0x15, 0xE0, }, { // ID = 3 750 ohm (ダミーでパナ) 0x8C, 0x30, 0x9C, 0x10, 0xA5, 0xE0, 0xB0, 0x40, @@ -115,9 +115,9 @@ typedef struct _st_bt_comp // 電池残量補正パラメータ const st_bt_comp BT_COMP[] = { // rcomp R_co_up R_co_down - { 135, -256* 0.15, -256* 2.15 }, // maxell - { 135, -256* 0.15, -256* 2.15 }, // dummy(M ) - { 135, -256* 0.15, -256* 2.15 }, // dummy(M ) + { 85, -256* 1.15, -256* 4.35 }, // maxell + { 85, -256* 1.15, -256* 4.35 }, // dummy(M ) + { 85, -256* 1.15, -256* 4.35 }, // dummy(M ) { 171, -256* 1.00, -256* 2.60 }, // dummy( P) { 171, -256* 1.00, -256* 2.60 }, // dummy( P) { 171, -256* 1.00, -256* 2.60 }, // panasonic @@ -134,4 +134,12 @@ const u8 BT_VERIFY_L[] = { 0xFC, 0xFC, 0xFC, // maxell, dummy, dummy, 0x67, 0x67, 0x67, 0x67 // dummy, dummy, panaso, dummy }; + +const u8 BT_RCOMP_SCALE[] = { + 2, 2, 2, // maxell, dummy, dummy, + 1, 1, 1, 1 // dummy, dummy, panaso, dummy +}; + + + #endif diff --git a/trunk/bsr.hex b/trunk/bsr.hex index b9c1e42..ce6f1fb 100644 --- a/trunk/bsr.hex +++ b/trunk/bsr.hex @@ -1,253 +1,259 @@ -:02000000C8072F +:02000000B00C42 :02000200FFFFFE -:040010008A48904842 -:02001C00504A48 -:02002400BC4AD4 -:02002A00294B60 -:08003400394CF64B344C744DBD -:02004A009248DA -:02005A00CD488F -:02006200F84C58 +:04001000B448BA48EE +:02001C007A4A1E +:02002400E64AAA +:02002A00534B36 +:08003400634C204C5E4C954D1D +:02004A00BC48B0 +:02005A00F74865 +:02006200164D39 :0400C0007EFBFF853F :0A00C400FFFFFFFFFFFFFFFFFFFF3C :0A00CE00FFFFFFFFFFFFFFFFFFFF32 -:1000D800C72004FBF8FFCEABACC736F00071F4C6FE -:1000E800DE0671301CF9EF358EA89C038C035C90FA -:1000F800D1DD118C035C10D161E87110CEFB713039 -:100108001CF9EF16CC0200CC0100615902615901BB -:100118008C01D1DFF88C02D1DFF0FD8D01CC02001B -:10012800CC03008C034C09DE2B8C03318E04F60FB4 -:10013800C1317B9EFDC41189728C03318E04F64F48 -:1001480014896142DF03F6EF01E6600E029C02614A -:100158005903EFCF40F64FFF61F86159028C02D185 -:1001680061E8FDBB06FD6302EDDE001004C6D77131 -:100178007BFACEA010CEA180E5F300CEA408F5AAA4 -:10018800FFF5A9FFD78F1CF931350ACD0003CD0340 -:1001980007F40EEF07F400CD0306F40ECF1105FCAB -:1001A800F51005CF120511CE20FFCE23F0CE2EFC80 -:1001B800CD01C0F402CD0408F405F406CD0740F4DF -:1001C8000CF40FF521FFCE22E9CE24F3CE25F2CE92 -:1001D80026FCCE275FCE2CFFCE2FFFF53000F53161 -:1001E80000F53300F53400CF350002CF370019F59C -:1001F8003C00F53E00CF530006F55700F6BEE0BEC2 -:10020800E2BED0CBE4FFFFCBE6FFFFCBD4FFFFCEAF -:100218003831CE3970CF38050AF53905F537FF7111 -:1002280008F20090BFB401F5A5FFF5A6FF7158F0DC -:1002380000F530FF7128F0005087BF1801BF1A0180 -:10024800BF1C01BF1E017148F000F53002710801A2 -:1002580005F55005F5BCFFF5BDFFD7FDDC31FD3FC9 -:100268003AFDFA04717AFAFD1A28F51AF98F1CF981 -:100278003135135003C15084FDF102C0625C01D1D5 -:1002880061E8CF1AF902FDBC32FDA802FD414671B2 -:100298007221712BE7CEABACFD423A61EDEFF6D798 -:1002A80031020403F6EF01E660341CF9718C8971A0 -:1002B800899931120403F6EF01E660341CF9718C58 -:1002C80089719999D7D7C7F616FDFA04717BFA3167 -:1002D800422005714220EF0B717AFAA7F647DFEC4E -:1002E800E2EF04717AFAF2C6D7C7C1C1FBF8FF176B -:1002F800A1C1E0C18C0A70C18C0270FD1B031006FD -:10030800D2DF05F53FFBEF04CF3FFB028C017210F3 -:1003180004C6D7C7C1FBF8FFFDCE02D2DD03E2EF6A -:10032800618B70FD4D04D2DD077143205202EF52FC -:100338008C0870FD6204FDAE048B6C0170FD6204D4 -:10034800300400BF2401301740BF1C01300400BF37 -:1003580022018C0A91DF04F6BF2A01710BE2CE4418 -:10036800FF3182E202EFFAAC0C148E449961790CE9 -:1003780061690A8C0AD1DFDAFDD704710BE2714397 -:1003880020F2C0C6D7C7C1FBF8FFFDCE02D2DD03FD -:10039800E2EF37710AE68B70FD4D04D2DD07714339 -:1003A800205202EF258C0870FD62048C0A70FD62F1 -:1003B80004FDD7048B4CA4DF0D8C084C13DF078C8D -:1003C8000A4C2C61D800714320F2C0C6D7C7C1FBC4 -:1003D800F8FFFDCE02D2DD03E2EF67710AE6710B8A -:1003E800E28B70FD4D04D2DD077143205202EF52BB -:1003F800710BE231322039C73438FBAC0C16520489 -:100408008B99A5A792DFF9C63184BD02EFFA717AFC -:10041800BDCEB144CBB438FB8C0A318EBEB8CEBB4E -:1004280048714BE1714BE5710ABD8C089E44EF1190 -:10043800710BE68C089E448C0A9F3EFBAC0CBF3CBB -:10044800FBF2C0C6D7C716FD860417FD6204D2DDCD -:1004580006FDD704E2EF01F2C6D7C716710AE671A6 -:100468000BE2669E443182E20300EFF9F642040192 -:10047800DD09AF0401BF0C01E2EF01F2C6D7AF28D6 -:1004880001085CFB08BF2801FDCD02AF28015CFB19 -:10049800BF2801300400BF2A01301780BF1C01307B -:1004A8000400BF2201D7AF2401086C0408BF24014F -:1004B800AF28016C0F086C0B08BF2801FDCD02AFF7 -:1004C8002A01085CFB08BF2A01FDCD02ED86043035 -:1004D8000400BF2401F6BF2A01300B0BBF2801FD21 -:1004E800CD02300B0FBF2801FDCD02300F0FBF2802 -:1004F80001D731542001D7714220710BBD00007122 -:100508007BBD713A25713A236A0E03713205713B3E -:1005180025713203713B23500AFD083C7120F0001D -:10052800FDCD02F6BF26015024BF1401CB440014B0 -:10053800300F0FBF2801713320710BE2710AE6FDFD -:100548008604CE44FF3182E202EFFAFDD704AF04FD -:1005580001BF0C01714320715220D731442002EFB2 -:10056800FAFDAE04713A25713A235A0EFC7133052F -:10057800713B25713303713B237128F000715320BF -:10058800D7C72006FBF8FFFDA6075014C15008FD89 -:10059800EA06C0CC05048C054C14DE0C8C05318EA3 -:1005A800FD520B615905EFEECC05048C054C146126 -:1005B800C8ED6A068C05318EFD520BCC04008C0404 -:1005C8004C04DE79C73641057184C6DC703020F9E9 -:1005D800BC02F6BB31B2D10EC73641057184C6DC08 -:1005E80005CEABACEFEE713BD1AC02148F40059950 -:1005F80071505005617902617900F0E1614900DDCF -:1006080009C73641057184C6DECA5040C18C053120 -:100618008E31AD128C04318E318D03BDD831FFBDC2 -:10062800DADADAADD8FD1E0EC0D2DD0C5008C150A2 -:1006380014FDEA06C0FDDB0C615904EF818C05311D -:100648008EFD560BD2DD0C5008C15014FDEA06C0D1 -:10065800FDDB0CC73641057184C6DC06615905ED22 -:10066800B30571605005CC0200CC03008C034C0923 -:10067800DE248C03318E1249F61F728C03318E04EE -:10068800F64F14896142DF03F6EF01E6600E029C23 -:1006980002615903EFD68C02D1DF08FDDC0CFDEEB8 -:1006A8000DEF0C5008C15013FDEA06C0FDDB0C101D -:1006B80006C6D7FDA6075008C15014FDEA06C0FDBE -:1006C800DC0CEDEE0D3184BD02EFFA717BBDCBE49D -:1006D800FFFFCBE6FFFFCBD4FFFF717ABED7717B5C -:1006E800BED7C7C1200AFBF8FF8C0A318E31ADC1D5 -:1006F800317B9DD4C0BC048DD49C068C129C098C83 -:1007080012318E040C00128C09318EBDD813FDD124 -:100718000961C8EDA107CEABAC8C09318EFD4E0B3B -:10072800D2DD098C09318EFD520BEFEDCC08008C1F -:10073800084C04DE54F6BC023020F9BBAC04148C1F -:10074800069EFD118972AB146299AC04A1BC0461C8 -:100758007900617902F0E1614902DFE05040C18C23 -:1007680009318E31AD128C08318E318D03BDD831EF -:10077800FFBDDADADAADD8FD1E0EC0D2DD06FDE621 -:1007880006E2EF16615908EFA68C09318EFD560B6B -:10079800D2DFF6615909ED0707F2100CC6D7717B55 -:1007A8009D717BFAFDCD063020F9FD010CFD8C0B07 -:1007B800F2D7FDA607FDEE0DFDDB0CFDE606F2D730 -:1007C80061CF5100718C7109FECBF800FEFC7701F6 -:1007D80000F6BF00F953C0F693935820FEDFF941A5 -:1007E80000367A4D34FAFCEF05118B99A7A517440A -:1007F800B64DDFF53602F930FAFCEF04CC0000A75D -:1008080047DFF9410036E8203436FDEF05118B99B2 -:10081800A7A51744E820DFF53636FD3036FDEF048E -:10082800CC0000A747DFF9FCD80000EFFE61DD71BE -:100838007BFABEF0ADD8BEF200AEF661CDD7C3618B -:10084800DD717BFABEF0ADD8BEF200DBF6FFADDCA1 -:10085800BEF000AEF6BDD8AEF40312ADDABEF200BB -:10086800AEF661CD03BDDAC2D7C3F33174D90883BC -:10087800C1F626D8BDD8C031750683C312F623C287 -:10088800FD930893DF0312F623C2D7440000DD2648 -:1008980061DD717BFACFE80080BEF6F6BEF4BEF2E9 -:1008A800ADD8BEF0CFE800818FE8003103FAAEF092 -:1008B800F5E80061CDD7B1D7C3F33174D90883C146 -:1008C800F626D8BDD8C0317505C312F623C2FDE19E -:1008D8000893DF0312F623C2D7440000DD2761DD49 -:1008E800717BFACFE80080BEF6F6BEF4BEF2ADD852 -:1008F800BEF0CFE800818FE8003103FAAFE000F5E1 -:10090800E80061CDD7ADD8D7C3F33174DB0F83C10D -:10091800F626D8BDD861317026DABDDAC031750D3A -:1009280083C312F626DCBDDC61317023C2FD4909A0 -:1009380093DF0CF626D8BDD861317026DABDDAC24D -:10094800D7C161686BDC6BDDC0DD2F61DD717BFABF -:10095800CFE80080BEF4ADDCBEF6ADD8BEF0ADDAAF -:10096800BEF2CFE800818FE8003103FAAEF0BDD8BF -:10097800AEF2BDDAF5E80061CDD7F6BDD8BDDAD75D -:1009880006DABDDAADDC06D8BDD861D8A6DAD7D18B -:10099800DD17C1C3DAD89DD8ADDA311C61EEB4D801 -:1009A800DFF8BDDA13BDD8C2C0D7D1DD1BC1C3DAA9 -:1009B800DA9DDAADD8311E33311E3371F9B4DADF7E -:1009C800F4BDD813BDDAC2C0D746D8DD0771FF71B0 -:1009D80077D971C0D75BDB9DDB605BDA9DDAADDC74 -:1009E8005BD9085BD808BDD8D7C3C7F3728EFDC1E1 -:1009F80062314C41003600201161A072C09EFD6238 -:100A0800C6C2D7C3C7F3728EFDC1625C0F0C000F5C -:100A1800FE00314C4100360A201161800FFE007340 -:100A2800C09EFD63C6C2D7DF1D06DC44807FDF168B -:100A38007152DEEF32DF0F06D844807FDF08315471 -:100A4800DE3C3172DE3CC9DE0504FDA20AEF46C574 -:100A580014ADDEC1657BDB5C809DDEADDA71FB35F4 -:100A680071FB44807FDEC03544807FDEC86BD96B64 -:100A7800D86BDD6BDC0561C8DD1BADDA71FB317449 -:100A8800DE077174DBF181EF0C45ADD861F846DC07 -:100A980061E87177DBC0BDDEC4D78EFC708EFDC106 -:100AA800C5C3ADDE315E041A20320000C3C1D8DEF2 -:100AB800F1C1AEF8FCCC0A00C0C0C0C2C4C09EFDE3 -:100AC800609EFCD71489728A049EFDAA02141189BB -:100AD8004C40DD0E624C0430020061C8300100BF9A -:100AE80000F9D7C5C3C1ADDADAD831750914F623D0 -:100AF80012F661D8B125ED0A0BC5C3C1ADDADAD853 -:100B0800F4DB0361C8DD3B23559E31730A9501313F -:100B18001C61D8A13175F6618A4C80618ADC11DFCD -:100B28000633718C33DE0983DF0604010061D88542 -:100B38007174DB3561FB9DDB6571F99DDA63706467 -:060B4800BDD8C0C2C4D7F5 -:100B4E005208EF065203EF025206FEE600FE1B00AD -:100B5E00DC16089F03088F0408089F040862FE2411 -:100B6E0000089F0408EEBF00EEBA00C1C514410E86 -:100B7E0011D9D0FF118FD1FF312E45C4C0D7F2311C -:100B8E00A2C401E2D79DE261DD4C09DF12717BFA4E -:100B9E00C18F06089F45FDC0CF060800EE27003125 -:100BAE00F2FA04CF0608004C00DF05D50008DD166A -:100BBE0061DD717BFAD50608DD0ACDE31F61CD61DB -:100BCE00CDEE160061CDFED40061FFFE9A00FCF85A -:100BDE00FF0EFEB20061CDFED5004C09DF0EC18FB7 -:100BEE0006086F45FD9F0608C0EE0400CF060800FC -:100BFE00F8E3D75200EF025202FE3700CF44FD0059 -:100C0E00CF060800BF0408C716629F0008410011F6 -:100C1E008F4E239B4100118F4F239F0108C6510019 -:100C2E00FE62FFEF025205CF060800C1510CFE0A0C -:100C3E0000C0D7C1511DFE0200C0D761DD717BFA25 -:100C4E0070CEC0A59EC47CFF9EC4609EC461CDD7ED -:100C5E0061DD717BFAC18EC45C1BFED6FFCF060828 -:100C6E0001FED7FFC061CDD731F2FA1AC1AEE4BF93 -:100C7E0036FDAEE6BF38FDAED4BF3AFD30FFFFBE47 -:100C8E00E4BEE6BED4C0D731F2FA11C1AF36FDBE16 -:100C9E00E4AF38FDBEE6AF3AFDBED4C0D7C1BF3C0F -:100CAE00FD13BF3EFD15BF40FD17BF42FDC0D7AFC0 -:100CBE003CFDDB3EFDEB40FDFB42FDD7534B30527E -:100CCE005430324E323030475631323000FFC15040 -:100CDE00FEFEAB0061DD717BFACF060800FE0A0056 -:100CEE00FEA4FF61CDF8E3EECF00C7FB0408BF36CC -:100CFE00FD8FC0009C05C5C337040600BF38FD3507 -:100D0E0036400D300000522BFE6600C2C4C630EED7 -:100D1E000CB800300000B8022004AF38FDB8003027 -:100D2E000F00B802AF36FD61FF520AFE3AFFECF833 -:100D3E00FF0E717BFAC1C7FB04088C05C65C80FEF2 -:100D4E000200C0D761DD717BFA70CFC0FFA59FC0D6 -:100D5E00007CFF9FC000609FC00061CDD7618BFEFD -:100D6E00E2FF717BBE410011FB000017CEFC00615B -:100D7E00CB089EFDF31161C999A58392DFF7D7FECB -:100D8E00B1FED544FDDF23C1CF0308035109FEF4A4 -:100D9E00FDC0D2DF37FE3800A20408CF030807518A -:100DAE0009FEE1FDD2B20408DF22C7FB040831833D -:100DBE0002C6D7C6510AFECCFD624C1FDF06CF44D9 -:100DCE00FD01EF04CF44FD00C0EE5BFEC0EE55FE0C -:100DDE00C7C1FB04088B31196C0161589BC0C6D783 -:100DEE00717BFAFE4DFEAF0408040600C1143652A4 -:100DFE000D300000522DF3FE77FF8FC000FE2BFE4C -:100E0E0061CF5C807C8073C0041900CEFC0F61CB77 -:100E1E00C55404EF03C55417FE18FEC7360008BBB1 -:100E2E00629C0288089C03D1DD334C41DE2F70F1A9 -:100E3E00312DB161090033081C000851FF612A41B0 -:100E4E000E118FD0FF613B118FD1FF6138DC0E8BFD -:100E5E005C03DF0964C6C4FE2BFDEECAFDC6C4EEFC -:020E6E00C3FDC2 -:0A0FF60031333A34333A3230000050 +:1000D800C7C1FBF8FFCEABACC736F00071F4C6DC85 +:1000E80015CC0100CC00006159016159008BD1DFAA +:1000F800F98C01D1DFF1CC0000CC01008C014C0956 +:10010800DE468C01318E04F60FC1317B9EFDC41191 +:1001180089728C01318E04F64F14896142DF03F62F +:10012800EF01E6600D9B8C01318E12490021728C23 +:1001380001318E04F64F14896142DF03F6EF01E6C0 +:10014800600D9B615901EFB440F64FFF61F86159AA +:10015800008BD1DD06FDBE01FDF606CEABACC73681 +:10016800F00071F4C6DE0671301CF9EF2A8EA89CE7 +:10017800018C015C90D1DD118C015C10D161E871BA +:1001880010CEFB71301CF9EF0B8C015C01D161E8DA +:100198007120CEFBFDBE01FDB802EDDD00C0C6D763 +:1001A800717BFACEA010CEA180E5F300CEA408F5AD +:1001B800AAFFF5A9FFD78F1CF931350ACD0003CD69 +:1001C8000307F40EEF07F400CD0306F40ECF110574 +:1001D800FCF51005CF120511CE20FFCE23F0CE2E50 +:1001E800FCCD01C0F402CD0408F405F406CD0740A7 +:1001F800F40CF40FF521FFCE22E9CE24F3CE25F23C +:10020800CE26FCCE275FCE2CFFCE2FFFF53000F593 +:100218003100F53300F53400CF350002CF3700192F +:10022800F53C00F53E00CF530006F55700F6BEE05A +:10023800BEE2BED0CBE4FFFFCBE6FFFFCBD4FFFF8F +:10024800CE3831CE3970CF38050AF53905F537FF84 +:100258007108F20090BFB401F5A5FFF5A6FF71582B +:10026800F000F530FF7128F0005087BF1801BF1A61 +:1002780001BF1C01BF1E017148F000F53002710872 +:100288000105F55005F5BCFFF5BDFFD7C7C1C1FB9A +:10029800F8FFCEABAC8C02D1DD12616902305C0391 +:1002A800BBF6614900DDEE618900EFF51004C6D7A1 +:1002B800FDDF31FDA53AFD4105717AFAFD1628F5F5 +:1002C8001AF98F1CF93135175003C15084FD4A03C0 +:1002D800C0625C01D161E8CF1AF902CFD7FB64FD97 +:1002E800BF32FD0103FD6B46710222712BE7CEABD5 +:1002F800ACFDA83A61EDEFF6D731020403F6EF0141 +:10030800E660341CF9718C8971899931120403F6FD +:10031800EF01E660341CF9718C89719999D7D7C7B8 +:10032800F616FD4105717BFA31422005714220EF36 +:100338000B717AFAA7F647DFECE2EF04717AFAF26A +:10034800C6D7C7C1C1FBF8FF17A1C1E0C18C0A70AD +:10035800C18C0270FD74031006D2DF05F53FFBEF78 +:1003680004CF3FFB028C01721004C6D7C7C1FBF84B +:10037800FFFD2703D2DD03E2EF618B70FD9404D209 +:10038800DD077143205202EF528C0870FDA904FD6D +:10039800F5048B6C0170FDA904300400BF24013002 +:1003A8001740BF1C01300400BF22018C0A91DF04F2 +:1003B800F6BF2A01710BE2CE44FF3182E202EFFA66 +:1003C800AC0C148E449961790C61690A8C0AD1DFEE +:1003D800DAFD1E05710BE2714320F2C0C6D7C7C112 +:1003E800FBF8FFFD2703D2DD03E2EF25710AE68B58 +:1003F80070FD9404D2DD077143205202EF138C087C +:1004080070FDA9048C0A70FDA904FD1E0571432026 +:10041800F2C0C6D7C7C1FBF8FFFD2703D2DD03E250 +:10042800EF67710AE6710BE28B70FD9404D2DD0769 +:100438007143205202EF52710BE231322039C73436 +:1004480038FBAC0C1652048B99A5A792DFF9C6317C +:1004580084BD02EFFA717ABDCEB144CBB438FB8CBF +:100468000A318EBEB8CEBB48714BE1714BE5710ABB +:10047800BD8C089E44EF11710BE68C089E448C0AD3 +:100488009F3EFBAC0CBF3CFBF2C0C6D7C716FDCDE8 +:100498000417FDA904D2DD06FD1E05E2EF01F2C630 +:1004A800D7C716710AE6710BE2669E443182E203F1 +:1004B80000EFF9F6420401DD09AF0401BF0C01E2C7 +:1004C800EF01F2C6D7AF2801085CFB08BF2801FD81 +:1004D8002603AF28015CFBBF2801300400BF2A01B6 +:1004E800301780BF1C01300400BF2201D7AF2401A0 +:1004F800086C0408BF2401AF28016C0F086C0B08B6 +:10050800BF2801FD2603AF2A01085CFB08BF2A01AA +:10051800FD2603EDCD04300400BF2401F6BF2A01F7 +:10052800300B0BBF2801FD2603300B0FBF2801FD40 +:100538002603300F0FBF2801D731542001D771424D +:1005480020710BBD0000717BBD713A25713A236A99 +:100558000E03713205713B25713203713B23500A3A +:10056800FD94027120F000FD2603F6BF26015024F9 +:10057800BF1401CB440014300F0FBF280171332082 +:10058800710BE2710AE6FDCD04CE44FF3182E2022E +:10059800EFFAFD1E05AF0401BF0C01714320715233 +:1005A80020D731442002EFFAFDF504713A25713A5B +:1005B800235A0EFC713305713B25713303713B23BC +:1005C8007128F000715320D7C72006FBF8FFFD2CD7 +:1005D800095014C15008FD4A08C0CC05048C054CCC +:1005E80014DE0C8C05318EFD9209615905EFEECCB5 +:1005F80005048C054C1461C8EDA506CC04008C04D8 +:100608004C04DE6FC73641057184C6DC663020F9BC +:10061800BC02F6BB31B2D10EC73641057184C6DCC7 +:1006280005CEABACEFEE713BD1AC02148F4005990F +:1006380071505005617902617900F0E1614900DD8E +:1006480009C73641057184C6DECA5040C18C0531E0 +:100658008E31AD128C04318E318D03BDD831FFBD82 +:10066800DADADAADD8FD5E0CC0D261E8EFFE615986 +:1006780004EF8B715201711B227112028C05318EAD +:10068800FD9609D261E8EFFE711302715301C73676 +:1006980041057184C6DC06615905EDFA05716050A3 +:1006A80005CC0200CC03008C034C09DE248C0331FA +:1006B8008E1249F61F728C03318E04F64F1489612D +:1006C80042DF03F6EF01E6600E029C02615903EF78 +:1006D800D68C02D1DF08FD1C0BFD2E0CEF0C500848 +:1006E800C15013FD4A08C0FD1B0B1006C6D7C72012 +:1006F80004FBF8FF715B21CC0100F6BC02AC02449C +:100708000900DE3EAC0204F61F144100118972ACE8 +:10071800020C5114896142DF03F6EF01E6600E0115 +:100728009C01AC021249005172AC0204F67F148994 +:100738006142DF03F6EF01E6600E019C0161790278 +:10074800EFBB40F67FFF61F86159018C01D161F878 +:10075800ED0008CC0100717AFAFD410571130071B2 +:100768001B20710303710205E0C15003C15084FDD1 +:10077800E60310045013FD9402500FC1E0C15084E9 +:10078800FDE6031004CEABAC6159018C0191DD0686 +:100798008C014C03DF03E6EF01F66061FB71510148 +:1007A8008C014C0861F8CC010031320705A05EFCD1 +:1007B800EF03F55EFC405EFC11DC11F55EFCF0C158 +:1007C8005003C15084FDE6031004EF12E6BC02F6A4 +:1007D800614902DDB000000000617902EFF1CE3717 +:1007E80008CBE4FFFFCBE6FFF7CED4FFCF370008F6 +:1007F800F5120561FDF5ABFFFD2C09D2DD04E0FD26 +:100808004F095008C15014FD4A08C0D2DD055002F6 +:10081800FD4F09FD1C0BD2DD055003FD4F09FD2ED0 +:100828000C1004C6D73184BD02EFFA717BBDCBE44E +:10083800FFFFCBE6FFFFCBD4FFFF717ABED7717BFA +:10084800BED7C7C1200AFBF8FF8C0A318E31ADC173 +:10085800317B9DD4C0BC048DD49C06E0FD71098C0D +:10086800129C098C12318E040C00128C09318EBD39 +:10087800D813FDED0E61C8ED27095002FD7109CEB0 +:10088800ABAC8C09318EFD8E09D2DD0E5003FD71A3 +:10089800098C09318EFD9209EFE85004FD7109CCED +:1008A80008008C084C04DE5BCEABACF6BC023020F2 +:1008B800F9BBAC04148C069EFD118972AB146299C5 +:1008C800AC04A1BC04617900617902F0E1614902DC +:1008D800DFE05040C18C09318E31AD128C08318E69 +:1008E800318D03BDD831FFBDDADADAADD8FD5E0C43 +:1008F800C0D2DD0AFD46085005FD7109EFFE6159B9 +:1009080008EF9F5006FD71098C09318EFD9609D2BA +:10091800DD075007FD7109EFFE615909ED6B08F21B +:10092800100CC6D7C7717B9D717BFAFD2D0830204E +:10093800F9FD410AFDCC09C6D7FD2C09FD2E0CFD99 +:100948001B0BFD4608F2D7C716CEABAC7152015748 +:100958000067614EDE0C711B22711202711302874F +:10096800EFEF715301EFE2C6D7C716711B22711260 +:1009780002570067614EDE0971520171530187EF1A +:06098800F2711302C6D754 +:10098E005208EF065203EF025206FEE600FE1B006F +:10099E00DC16089F03088F0408089F040862FE24D3 +:1009AE0000089F0408EEBF00EEBA00C1C514410E48 +:1009BE0011D9D0FF118FD1FF312E45C4C0D7F231DE +:1009CE00A2C401E2D79DE261DD4C09DF12717BFA10 +:1009DE00C18F06089F49FDC0CF060800EE270031E3 +:1009EE00F2FA04CF0608004C00DF05D50008DD162C +:1009FE0061DD717BFAD50608DD0ACDE31F61CD619D +:100A0E00CDEE160061CDFED40061FFFE9A00FCF81B +:100A1E00FF0EFEB20061CDFED5004C09DF0EC18F78 +:100A2E0006086F49FD9F0608C0EE0400CF060800B9 +:100A3E00F8E3D75200EF025202FE3700CF48FD0016 +:100A4E00CF060800BF0408C716629F0008410011B8 +:100A5E008F4E239B4100118F4F239F0108C65100DB +:100A6E00FE62FFEF025205CF060800C1510CFE0ACE +:100A7E0000C0D7C1511DFE0200C0D761DD717BFAE7 +:100A8E0070CEC0A59EC47CFF9EC4609EC461CDD7AF +:100A9E0061DD717BFAC18EC45C1BFED6FFCF0608EA +:100AAE0001FED7FFC061CDD731F2FA1AC1AEE4BF55 +:100ABE003AFDAEE6BF3CFDAED4BF3EFD30FFFFBEFD +:100ACE00E4BEE6BED4C0D731F2FA11C1AF3AFDBED4 +:100ADE00E4AF3CFDBEE6AF3EFDBED4C0D7C1BF40C5 +:100AEE00FD13BF42FD15BF44FD17BF46FDC0D7AF76 +:100AFE0040FDDB42FDEB44FDFB46FDD7534B305230 +:100B0E005430324E323030475631323000FFC15001 +:100B1E00FEFEAB0061DD717BFACF060800FE0A0017 +:100B2E00FEA4FF61CDF8E3EECF00C7FB0408BF3A89 +:100B3E00FD8FC0009C05C5C337040600BF3CFD35C4 +:100B4E0036800B300000522BFE6600C2C4C6302E1B +:100B5E000BB800300000B8022004AF3CFDB80030E6 +:100B6E000F00B802AF3AFD61FF520AFE3AFFECF8F1 +:100B7E00FF0E717BFAC1C7FB04088C05C65C80FEB4 +:100B8E000200C0D761DD717BFA70CFC0FFA59FC098 +:100B9E00007CFF9FC000609FC00061CDD7618BFEBF +:100BAE00E2FF717BBE410011FB000017CEFC00611D +:100BBE00CB089EFDF31161C999A58392DFF7D7FE8D +:100BCE00B1FED548FDDF23C1CF0308035109FEF462 +:100BDE00FDC0D2DF37FE3800A20408CF030807514C +:100BEE0009FEE1FDD2B20408DF22C7FB04083183FF +:100BFE0002C6D7C6510AFECCFD624C1FDF06CF4897 +:100C0E00FD01EF04CF48FD00C0EE5BFEC0EE55FEC9 +:100C1E00C7C1FB04088B31196C0161589BC0C6D744 +:100C2E00717BFAFE4DFEAF0408040600C114369225 +:100C3E000B300000522DF3FE77FF8FC000FE2BFE0F +:100C4E0061CF5C807C8073C0041900CEFC0F61CB39 +:100C5E00C55404EF03C55417FE18FEC7360008BB73 +:100C6E00629C0288089C03D1DD334C41DE2F70F16B +:100C7E00312DB161090033081C000851FF612A4172 +:100C8E000E118FD0FF613B118FD1FF6138DC0E8BBF +:100C9E005C03DF0964C6C4FE2BFDEECAFDC6C4EEBE +:020CAE00C3FD84 +:100CB00061CF5100718C7109FECBF800FEFCA801D8 +:100CC00000F6BF00F953C0F693935820FEDFF941B8 +:100CD00000361A2034FEFCEF05118B99A7A51744A6 +:100CE0005620DFF53602F930FEFCEF04CC0000A7F9 +:100CF00047DFF94100365620343AFDEF05118B9954 +:100D0000A7A517445620DFF5363AFD303AFDEF042B +:100D1000CC0000A747DFF9FCD80000EFFE61DD71D1 +:100D20007BFABEF0ADD8BEF200AEF661CDD7C3619E +:100D3000DD717BFABEF0ADD8BEF200DBF6FFADDCB4 +:100D4000BEF000AEF6BDD8AEF40312ADDABEF200CE +:100D5000AEF661CD03BDDAC2D7C3F33174D90883CF +:100D6000C1F626D8BDD8C031750683C312F623C29A +:100D7000FD7B0D93DF0312F623C2D7440000DD266E +:100D800061DD717BFACFE80080BEF6F6BEF4BEF2FC +:100D9000ADD8BEF0CFE800818FE8003103FAAEF0A5 +:100DA000F5E80061CDD7B1D7C3F33174D90883C159 +:100DB000F626D8BDD8C0317505C312F623C2FDC9C9 +:100DC0000D93DF0312F623C2D7440000DD2761DD57 +:100DD000717BFACFE80080BEF6F6BEF4BEF2ADD865 +:100DE000BEF0CFE800818FE8003103FAAFE000F5F4 +:100DF000E80061CDD7ADD8D7C3F33174DB0F83C121 +:100E0000F626D8BDD861317026DABDDAC031750D4D +:100E100083C312F626DCBDDC61317023C2FD310EC6 +:100E200093DF0CF626D8BDD861317026DABDDAC260 +:100E3000D7C161686BDC6BDDC0DD2F61DD717BFAD2 +:100E4000CFE80080BEF4ADDCBEF6ADD8BEF0ADDAC2 +:100E5000BEF2CFE800818FE8003103FAAEF0BDD8D2 +:100E6000AEF2BDDAF5E80061CDD7F6BDD8BDDAD770 +:100E70008292DD2B61DD717BFACFE80080BEF0F657 +:100E8000BEF2BEF46208BEF6CFE800818FE8003102 +:100E900003FAAFE0006072AEF0F5E80061CDD76014 +:100EA00072F6B1D706DABDDAADDC06D8BDD861D8A6 +:100EB000A6DAD7D1DD17C1C3DAD89DD8ADDA311C97 +:100EC00061EEB4D8DFF8BDDA13BDD8C2C0D7D1DD2A +:100ED0001BC1C3DADA9DDAADD8311E33311E33714E +:100EE000F9B4DADFF4BDD813BDDAC2C0D746D8DD15 +:100EF0000771FF7177D971C0D746DADF08C1ADDC61 +:100F000046D8C0DD077177DB71FF71C0D75BDB9D11 +:100F1000DB605BDA9DDAADDC5BD9085BD808BDD855 +:100F2000D7C3C7F3728EFDC162314C410036002039 +:100F30001161A072C09EFD62C6C2D7C3C7F3728E94 +:100F4000FDC1625C0F0C000FFE00314C4100360AFF +:0F0F5000201161800FFE0073C09EFD63C6C2D7E3 +:0A0FF60031373A34363A3533000043 :0A20000000060C12181E242A3036C8 :10200A00001632486480961228446076920824406A -:10201A004040666D756C0000404066646976000059 -:10202A004040666164640000404066737562000067 -:10203A00404066636D70000061636F7300000000CA -:10204A006173696E000000006174616E0000000037 -:10205A006174616E32000000636F7300000000005B -:10206A0073696E000000000074616E0000000000D9 -:10207A00636F73680000000073696E6800000000F7 -:10208A0074616E680000000065787000000000004E -:10209A0066726578700000006C64657870000000F4 -:1020AA006C6F6700000000006C6F67313000000041 -:1020BA006D6F646600000000706F7700000000001A -:1020CA0073717274000000006365696C000000009F -:0E20DA00666C6F6F72000000666D6F64000030 -:0820E800317503F7332312D711 -:0A21000031333A34333A3230000034 +:10201A00FF000000555555550000D4FB000036FC62 +:10202A0000000000A53D5C386727D42D562FD42F19 +:10203A0016319D3E2F48823E893E4E4000000000E8 +:0C204A000000983AF82A23301299000098 +:08205600317503F7332312D7A3 +:0A21000031373A34363A3533000027 :10210A009E00ABD0B820B8C0B950B9E0BB60BE30B1 :10211A00BF20BFE0C030C220C450C950CB00D0C0DD :10212A00014000A05BC06A80342010003220546055 @@ -280,689 +286,688 @@ :1022DA00A7FBAB0000FF67FDAB0000FF67FDAB008B :1022EA0000FF67FDAB0000FF67FDFFFFFF6969693B :1022FA0069FCFCFC676767670202020101010100D1 -:10230A00000000007F7F7F7F7E7D7B7A79787675FB -:10231A00747371706F6E6C6B6A696766656462610B -:10232A00605F5D5C5B5A58575655535251504E4D3B -:10233A004C4B4948484746444342403F3E3D3B3A5E -:10234A0039383737080101020203030200FEFBF79E +:10230A00000000007F7E7D7C7A797877767574721A +:10231A0071706F6E6D6C6A69686766656462616028 +:10232A005F5E5D5C5A5958575655535251504F4E3D +:10233A004D4B4A494948474645434241403F3E3D45 +:10234A003B3A3938080101020203030200FEFBF797 :10235A00F3F0F0F3FA041225384D5F6E777A776E50 :10236A005F4D38251204FAF3F0F0F3F7FBFE000292 :10237A00030302020100000000001F003B005A0094 :10238A0078009700B500D400F300110130014E0126 -:10239A00C75007C15002C15084FD8D03100450126A -:1023AA00FD083C500FC15002C15084FD8D0310043A -:1023BA005003FD083C501FC15002C15084FD8D03DB -:1023CA0010045016FD083C5003C15084FDF102C0B0 +:10239A00C75007C15002C15084FDE6031004501211 +:1023AA00FD9402500FC15002C15084FDE60310048F +:1023BA005003FD9402501FC15002C15084FDE60330 +:1023CA0010045016FD94025003C15084FD4A03C004 :1023DA00625C01D1DD107170DBFB5002C15013FD4C -:1023EA00BB36C0E2EF01F2C6D7C75004C15084FD24 -:1023FA00F102C0625C03D1DD405014FD7B2434DB62 +:1023EA00C136C0E2EF01F2C6D7C75004C15084FD1E +:1023FA004A03C0625C03D1DD405014FD7B2434DB08 :10240A00FB895C9F998A0C7CFF50FF5C14D1DD220A :10241A008A0C7CFF5C147234DFFB89616A997162F1 :10242A00075600316207058666D1DFF771630771C7 -:10243A006B2734EEFB895CEB995002C15084FDF1A5 -:10244A0002C0D2DD225007C15002C15084FD8D0363 -:10245A0010045033FD083CF0C15002C15084FD8D78 -:10246A000310047178DBFBE0C15013FDBB36C0C614 +:10243A006B2734EEFB895CEB995002C15084FD4A4C +:10244A0003C0D2DD225007C15002C15084FDE60309 +:10245A0010045033FD9402F0C15002C15084FDE6CD +:10246A000310047178DBFBE0C15013FDC136C0C60E :10247A00D7C7C12004FBF8FFCC02005004C1508426 -:10248A00FDF102C0629C038C045C20D1DD0E8C033A +:10248A00FD4A03C0629C038C045C20D1DD0E8C03E0 :10249A006C019C038C026C209C02EF138C045C1070 :1024AA00D1DD0C8C035CFE9C038C026C109C028CAC :1024BA00045C08D1DD0E8C036C029C038C026C0850 :1024CA009C02EF138C045C04D1DD0C8C035CFD9C34 -:1024DA00038C026C049C028C03D1DD05501AFD08A2 -:1024EA003C8C0370C15004C15084FD8D0310048FCD +:1024DA00038C026C049C028C03D1DD05501AFD9416 +:1024EA00028C0370C15004C15084FDE60310048FAE :1024FA00DBFB5C9F728C03318E316D148C03318E41 :10250A00314D616D08616C5C606162629FDBFB8FBB :10251A00E7FB7CFF50FF5E02D1DD278FE7FB7CFFE4 :10252A005E027234DFFB89616A99716207CC01002D :10253A00316207086159018C01D1DFF471630771B7 :10254A006B27F21006C6D7C7D9CFFBC15006C150B8 -:10255A0084FD8D0310046276D9D0FBC15007C150A7 -:10256A0084FD8D0310046261666672C6D7FD51252B +:10255A0084FDE60310046276D9D0FBC15007C1504E +:10256A0084FDE60310046261666672C6D7FD5125D2 :10257A00F2D7C72004FBF8FF711300711B20710307 -:10258A0003710205E0C15003C15084FD8D0310049C -:10259A00E0FD083C5012FD083CF0C15005C15084D2 -:1025AA00FD8D031004500FC1E0C15084FD8D03104E -:1025BA0004500AFD083C7103055008FD083C501FF1 -:1025CA00C1E0C15084FD8D0310045012FD083C5037 -:1025DA0003C15084FDF102C0625C01D1DF03E2EF66 -:1025EA003C5003C1C15084FD8D0310047102037174 -:1025FA001A205064FD083CC717A116F7490A239B05 -:10260A00A3A75103614ADFF4C617A1C15003C15001 -:10261A0010C150A4FDD5031006F50AF9F21004C63C -:10262A00D75003C15084FDF102C0625C01D1DD19AB -:10263A005014FD7B24FDF323503CFD083CE0C150BF -:10264A0003C15084FD8D031004711300711B2071A6 -:10265A000303F0C15003C15084FD8D031004F2D767 -:10266A00C72004FBF8FFCC02008F0AF99C03501024 -:10267A00C150A4FDF102C0629F0AF9D53FFBDD04F7 -:10268A00F2ED48278C037F0AF95C08D1DD108F0A26 -:10269A00F95C08D1DF05CC0210EF03CC02208C03D1 -:1026AA007F0AF95C04D1DD168F0AF95C04D1DF08D0 -:1026BA008C026C049C02EF068C026C089C028FDA76 -:1026CA00FB5CF3728F0AF95C0C6162629FDAFB8F22 -:1026DA00E6FB7CFF50FF5E029C02D1DD1F34DEFB6D -:1026EA00896E0299716207CC01003162070861594B -:1026FA00018C01D1DFF4716307716B278F0AF95CD2 -:10270A0040D1DD095002C15012FDBB36C08F0AF913 -:10271A005C01D1DD08E0C15012FDBB36C0717AFA06 -:10272A008F0AF95C41D1DD15340AF9895CBE99D961 -:10273A000AF9C15010C150A4FD8D031004F210040F -:10274A00C6D7FD9A23F2D7FDF323F2D7C78FEEFB44 -:10275A007617FD7B24664FEEFBDFF2F5EEFBF2C641 -:10276A00D78FFBFCB0FBFCD161E8ED1928CFFBFC4D -:10277A0080710407E6613012F6712420611043DD8E -:10278A0032710407E661306061FB71212031242037 -:10279A00137130DBFB5002C15011FDBB36C0CF0BA9 -:1027AA00F902EF0F7138DBFBE0C15011FDBB36C0F7 -:1027BA00F50BF94002F94BDC0B4002F9B9DE057161 -:1027CA001220EF0F4002F93EDC064002F9BD61C853 -:1027DA007113203114200D310420093102070571CB -:1027EA003304EF03713204311205097140DBFB71C6 -:1027FA004202EF077148DBFB714302D50BF9DD0694 -:10280A00B00BF9714202401AF90361F8FDA82AD700 -:10281A00C72006FBF8FF716201717201E0FD083CF6 -:10282A008FFAFC9C015009FD7539629C05716301A0 -:10283A008C054CEADC06CFFAFC07EF4A8C054CC63D -:10284A00DC06CFFAFC06EF3E8C054C9FDC06CFFA7D -:10285A00FC05EF328C054C7CDC06CFFAFC04EF2633 -:10286A008C054C50DC06CFFAFC03EF1A8C054C227F -:10287A00DC06CFFAFC02EF0E8C054C06DC05E5FA05 -:10288A00FCEF03F5FAFC8FFAFC4E01DD4040FAFC3E -:10289A0007DE378FFAFC5006D604CA2214F7500610 -:1028AA0089A54804F9A390DFF7500AFD083C304097 -:1028BA0000BC0217040200C15002C15006C1506C8C -:1028CA00FDD5031006710220EF03710320300B2A95 -:1028DA00FD973A1006C6D7C72008FBF8FF5008FD37 -:1028EA007539629F02F9304A57BB17C15002C1506D -:1028FA003EC1506CFDD5031006D2DF217108DAFB08 -:10290A0040FAFC07DE05E51DF9EF324002F904DE64 -:10291A0006CF1DF903EF26CF1DF905EF207100DA66 -:10292A00FB4002F9F1DC06CF1DF902EF104002F973 -:10293A0004DE06CF1DF903EF04CF1DF904401DF98B -:10294A000161E8ED072A17040300C15004C1500CC5 -:10295A00C1506CFD1B03100630DA20BB17C15002B0 -:10296A00C1500EC1506CFDD5031006F690BB17C1BD -:10297A005002C1500CC1506CFDD5031006314420E1 -:10298A0002EFFA7132208FFAFCF0312E040A21C1CB -:10299A005040C1C1506CFDD503100650A5FD083C3E -:1029AA0030DA20BB17C15002C1500EC1506CFDD5A0 -:1029BA0003100650A5FD083C5004C1506CFDF102FD -:1029CA00C0629C07E9FAFC09FB224E0761C308E9C9 -:1029DA00FAFC09F4224E0717040300C15004C1503F -:1029EA000CC1506CFDD5031006F6BB17C15002C1CD -:1029FA00503EC1506CFDD5031006FD0B2A1008C6C7 -:102A0A00D7C7C1FBF8FF8F0CF94F02F961F8EDA4A3 -:102A1A002A8F02F99F0CF98F02F95070D61230737F -:102A2A0051230480001231FF318E039F0DF99FD686 -:102A3A00FBF6BB8F0DF97C804C95DC1B8F0DF931B1 -:102A4A008F241400BDD8AF06F9FD35081231FF31C5 -:102A5A008E03318FBBEF198F0DF9318F241400BD0E -:102A6A00D8AF08F9FD35081231FF318E03318FBB1B -:102A7A00D904F9F1610900BBBBBF62FC17C150025E -:102A8A00C1500CC1506CFDD5031006D2DF088F026D -:102A9A00F99F0CF9EF047100DAFBF2C0C6D7C72020 -:102AAA0004FBF8FF401DF902DF07CFD7FB63ED9A5D -:102ABA002B401DF903DF2817040200C15002C15040 -:102ACA0004C1506CFD1B031006D2DD06CFD7FB6391 -:102ADA00EF0A8C029FD7FB8C039FD8FBED9A2B8FB2 -:102AEA00DAFB5C01D161E8ED9A2B5002C1506CFD12 -:102AFA00F102C0629C02D53FFBDD117100DAFB7165 -:102B0A000320F5D7FBE6BF1EF9ED9A2B8C029FD95D -:102B1A00FB17040200C15002C15004C1506CFD1BD6 -:102B2A0003100640FAFC07DE2B8C02318E318D0829 -:102B3A000E03081C0012D9FAFCF10402231489318D -:102B4A008E33BDD813FD7108BB8C019FD7FB8B9FB9 -:102B5A00D8FBEF01003134040A31120506CFD7FB46 -:102B6A0064EF2D40D9FB9ADE05F5D7FBEF2240D959 -:102B7A00FB9CDE0C40D7FB06DC06CFD7FB05EF102B -:102B8A0040D9FBA0DE0A40D7FB0B61C8CFD7FB0AAE -:102B9A0040D7FB0BDE06400EF90BDE1640D7FB06CC -:102BAA00DE06400EF906DE0AD5D7FBDF0ED50EF992 -:102BBA00DD095020C15011FDBB36C0D5D7FBDF0956 -:102BCA00D50EF9DD04E6BF1EF98FD7FB9F0EF9D5A6 -:102BDA001AF961F8CF0EF96440D7FB0BDE03E6EF72 -:102BEA0001F6C15012C150A4FD8D0310041004C691 -:102BFA00D7303B10BF10F9300E00BF12F9D7F6429A -:102C0A0012F961F84210F9DD0EF64210F9B210F924 -:102C1A0061F8B212F9F2D7E2D77100010571785062 -:102C2A0005713AD5713BD1713ADD713BD98F1005E7 -:102C3A005CFC9F1005CF54054AE542057110420518 -:102C4A0071004205714850057130500571205005D8 -:102C5A00CF530505CF52050A713051057120510530 -:102C6A00713BD5717050058F11055CFC9F1105D71A -:102C7A007178500571080105D77140F000717830FC -:102C8A0002713AE6713BE2713BEA713BEE8F100545 -:102C9A005CFC9F1005CF34024AE552FF711A52714B -:102CAA000A52714830027130300271203002CF333B -:102CBA000205CF32020A71303102713BE67170307F -:102CCA00028F11055CFC9F110571603002D7717883 -:102CDA0030027148F000D7C788061666614FDD09D1 -:102CEA0067614EDE0396EF01866672C6D7C716176E -:102CFA0014AA0412A943DD29AA0412A923FDE82073 -:102D0A00C3AC02FDE82013C2BDD813FDD109DE0C05 -:102D1A001714AA0212AA0403BA04EF051714A9BACF -:102D2A0004AC041231FF319E03317F087208C6D702 -:102D3A00C77100F200304400BFB601300188BF906D -:102D4A0001300984BF9E01BF9C01BF9A01BF98014F -:102D5A00BF9601BF9401BF9201F53CFF30FE00BF50 -:102D6A00BE01F6BFBC01BFB80150EEBFBA01A1BF98 -:102D7A00B201C918FE007120120571481CF9401DE4 -:102D8A00F902DD0B36100571A461C871401CF97196 -:102D9A002812058F1CF9313507F5F5FBCB6CFF00BE -:102DAA00717320C6D730EF00BFB401F6BFBA017104 -:102DBA0008F200D7710321D9F5FBF1E7240000DD01 -:102DCA001423DD2E23DD2623DD2D23DD3B23DD40E9 -:102DDA0023DD46EF1D8F1AF9318FE7240300DD0842 -:102DEA0023DF39FDE82EEF34FD602EEF2FFDE82EAC -:102DFA00EF2AFD602EEF25F0C1AE6CFDE12CC0F389 -:102E0A0013BE6C716320EF14F6BE6C716220EF0C76 -:102E1A00CB6CFF00716320EF03FD922E8F1CF931FA -:102E2A004508716420715107EF06716420715101E0 -:102E3A00310421218F1CF9314510F6BE64BE6A3176 -:102E4A0064200390EF01F6BE6ED731642004F69039 -:102E5A00EF01F6BE6AD740D7FB06DE04FD922ED7F5 -:102E6A0040D7FB0BDE10F0C1AE6CFDE12CC0F313B2 -:102E7A00BE6C716220D7D9F4FBC1AE6CFDE12CC0E7 -:102E8A00F313BE6C716320D7710221F0C1AE6CFDE1 -:102E9A00E12CC0F313BE6CA0A4FB40A4FB40DC3DB4 -:102EAA00F5A4FBD9A5FBF1313F04FEFC14D9A5FB1F -:102EBA00F1BDD85008FDC008087208E6D2DD040149 -:102ECA0092DFFC896158D1DD05716220EF037163DD -:102EDA0020A0A5FB40A5FB2061C8F5A5FBD7D5A678 -:102EEA00FBDD04B0A6FBD7CFA6FB04D9A7FBF1F7FD -:102EFA0034020023DD0625DD0325DF1B40D7FB0B4B -:102F0A00DE09F6BFA8FB716220EF1CD9F4FBF1BF02 -:102F1A00A8FB716320EF1040D7FB0BDE057163201D -:102F2A00EF05E6A1BFA8FBAE6C42A8FBDD10AFA877 -:102F3A00FB426CFFDE05B26CFFEF03A26CFFAE6CC6 -:102F4A0042A8FB61F8A0A7FBD78FAAFBB0AAFBD1C6 -:102F5A00DF7431D4D107715BD1CFACFB02D5ACFBA6 -:102F6A00DD347140DAFBD9ABFBF1E734020023DD33 -:102F7A000625DD0325DF05F6BE66EF06D9F4FBF16B -:102F8A00BE66A0ABFB40ABFB20DF06F5ABFBB0ACEB -:102F9A00FBCFAAFB16D7CFAAFB1E7148DAFBD5F6E0 -:102FAA00FBDF04F6BE66D7D9F4FBF14266FFDD16F5 -:102FBA00D9F4FBF112AE6643DE05A266FFEF03B257 -:102FCA0066FFCFAAFB03D731042101D7401AF902C1 -:102FDA00DF19F6BE64BE6EBE6ABFB0FBBFB6FBBFEA -:102FEA00BCFBBFB4FBBFBAFBBFC0FB31742003ED0F -:102FFA00A630D5ADFB61E8EDA1308F40FB9FADFB5C -:10300A0040AEFB1FDC1F7100FAFB4042FBFFDD24D0 -:10301A00D5AFFBDD05B0AFFBEF1A8F42FB9FAFFBCD -:10302A00F5AEFBEF0F7108FAFBD9AEFBF1A1605CBC -:10303A001F9FAEFBE9AEFB0944FB5080D6BFB0FB35 -:10304A00E9AEFB0964FB5080D6BFB6FBE9AEFB09CB -:10305A0084FB5080D6BFBCFBAFB0FB22B4FB12D9B5 -:10306A0041FBF133BDD813FD7108BFB2FBAFB6FB0C -:10307A0022BAFB12D941FBF133BDD813FD7108BF47 -:10308A00B8FBAFBCFB22C0FB12D941FBF133BDD860 -:10309A0013FD7108BFBEFBB0ADFBEF3DF6BFB0FB41 -:1030AA00BFB6FBBFBCFBAFB4FB1231FF31AE03317D -:1030BA006F12F623BFB2FBAFBAFB1231FF31AE0378 -:1030CA00316F12F623BFB8FBAFC0FB1231FF31AE2E -:1030DA0003316F12F623BFBEFB8F1CF931451F3037 -:1030EA00BCFBFDF72CF313BE6430B0FBFDF72CF3E9 -:1030FA0013BE6E30B6FBFDF72CF313BE6AD730BC95 -:10310A00FBFDF72CF313BE6AD7C73112210BD5C2C8 -:10311A00FBDD06B0C2FBEDDA31711321D9F7FBF101 -:10312A00E7240000DD0F23DD1B23DD1123DD5723F8 -:10313A00DD2923DD3B5600F502FDEDC6315601F5CA -:10314A0002FDEF78D502FDDF075601E502FDEF0526 -:10315A005600F502FDCFC2FBFAEF61D502FDDF0B87 -:10316A005601E502FDCFC2FBFAEF51F5F7FBEF4C32 -:10317A00D502FDDF0B5600E502FDCFC2FBFAEF3C9C -:10318A00CFF7FB02EF36D927FCF1E7240000DD096F -:10319A0023DD2423DD0A23EF1E5600F502FDEF1C72 -:1031AA00D502FDDF075601E502FDEF055600F502DF -:1031BA00FDCFC2FBFAEF055601E502FD8F1CF9317E -:1031CA0045086661FB712104EF066661FB71010126 -:1031DA00C6D7C736F00071F4DC297170F000CE9DB5 -:1031EA0008CE9EC0CE9F80F594FFF593FFF592FF1F -:1031FA00E597FFE596FFCE9505CE9810CE9C7F7198 -:10320A0000CEFB711BE3712BE3711AE7712BE77197 -:10321A007A9D710A9E31929E02EFFA710B9E71237A -:10322A0021713321714321C6D7C73122211E712250 -:10323A0021710A9E31929E02EFFA34FCFB3692FF0C -:10324A0052078B99A5A792DFF9710B9EC6D7C7883B -:10325A00061631322115713221C734C4FB3092FF70 -:10326A001652078B99A5A792DFF9C666736718C429 -:10327A00FBC6D7C77123213134211E713321710A4C -:10328A009E31929E02EFFA3492FF36C4FB52078BAC -:10329A0099A5A792DFF9710B9E31442113717B9E88 -:1032AA008F04FC9E9A8F05FC9E9B713321717A9E36 -:1032BA00C6D7CFF4FBFFCFCFFB5CCFD0FB5FCFF0FD -:1032CA00FB20D7C7CFCCFB10CFCDFB20CFF1FB2003 -:1032DA00F5F5FBF5F6FBF5F7FBF5F8FB5600664C42 -:1032EA0064DE08723840FB0086EFF3C6D7C788064B -:1032FA001617F1E73402002361E3ED0B362361F878 -:10330A00EDDD33B12361E3EDE43324030061F8ED2D -:10331A00F33324070024070061D8ED0B36240B0091 -:10332A0061F8ED14342361F8ED5B342361F8ED287C -:10333A00342361F8EDD7352561F8EDF7352404001B -:10334A0061F8EDC434B124030061D8EDE8342400F7 -:10335A000061F8EDF5342361F8ED0B36252361E3BE -:10336A00ED05352361F8ED17352361F8ED2935238D -:10337A0061F8ED17352361F8ED3B352361F8ED4D22 -:10338A00352361F8ED5D352361F8ED66352361F883 -:10339A00ED72352361F8ED7E352361F8ED87352529 -:1033AA002361E3ED0B362561F8ED90352361F8EDE5 -:1033BA009C3524030061F8EDA835240A0061F8ED74 -:1033CA00B43524120061F8EDD1352361F8EDBF352B -:1033DA00ED0D36679FCEFBED1736307725FD973A10 -:1033EA0066736718CCFBED173640D1FB6ADF1440D1 -:1033FA00D2FB68DF0E674C6CDF09303F43FD973A1A -:10340A00713AD5679FD3FBED173667D1DD0630CE0B -:10341A003EFD973A34ECFB89616F99ED1736675C8C -:10342A0002D1DD08304C27FD973AEF0C675C01D1D9 -:10343A00DD06305127FD973A675C3CD1DD103056E6 -:10344A0027FD973A675C3C7266736218CCFBED17EE -:10345A003667D1DD625C01D1DD05300800EF01F687 -:10346A00609F23FC675C02D1DD03E6EF01F634239B -:10347A00FC89616899675C04D1DD04E6A1EF01F675 -:10348A003423FC89616899675C08D1DD0530200026 -:10349A00EF01F63423FC89616899675C10D1DD0578 -:1034AA00301000EF01F63423FC89616899675C20CB -:1034BA00D161E8716023FCED1736D514F9DF09678D -:1034CA009FF5FBA014F9EF134014F905DE0DD9148A -:1034DA00F9F1B1126748FEFCA014F9ED1736675CE2 -:1034EA000F7266736218CCFBED17364014F964DE6E -:1034FA000AE914F9671840FBA014F9675C7F318E5A -:10350A00C117F1243000FD5832C0ED1736675C3F11 -:10351A00318EC117F1243000FD5832C0ED173667DD -:10352A005C07318EC117F1243000FD5832C0ED1707 -:10353A0036675C1F318EC117F1243000FD5832C046 -:10354A00ED173667318EC117F1243000FD5832C0AD -:10355A00ED1736679E999F03FCED17367142216776 -:10356A005C7F9F04FCED1736714221675C3F9F0523 -:10357A00FCED1736675C3F9F06FCED1736675C1F4C -:10358A009F07FCED173630F53CFD973A679F0CFC18 -:10359A00EF7B30B03CFD973A679F0DFCEF6F30D25E -:1035AA003CFD973A679F10FCEF63675C01D161E8C5 -:1035BA00FD4146EF58401EFCC8DE52E91EFC671862 -:1035CA0070FAA01EFCEF46679F1EFCEF4067318E23 -:1035DA00247200DD07240500DD0AEF0B30BA07FD6F -:1035EA00973AEF03CEABAA679FEFFBEF20675CBF6A -:1035FA009FF1FB675C40D1DD1430DA38FD973AEF72 -:10360A000CEF0A664C52DE05736718CCFBC6D7C7A7 -:10361A0016664C30DC094C37DE05FD3332EF67663F -:10362A004C02DF1F8FCEFB5C03728F25FC5C0331DB -:10363A008E316D08616A08128F25FC5C80312A611F -:10364A0062EF49664C4FDF05FD6546EF3F664C6108 -:10365A00DF09E91EFC0970FA72EF31664C3DDF0A98 -:10366A00AE90BF20FCF920FCEF22664C3EDF05F944 -:10367A0021FCEF18664C7FDF0D30523FFD973A71FF -:10368A003AD5524AEF06667309CCFB72C6D7C716FB -:10369A0017F1241000240500DC07244C00DD0DEF8F -:1036AA000E667238CCFB00715221EF03A01EFCC6D5 -:1036BA00D7C7C1C1FBF8FF401AF903DD06401AF962 -:1036CA0004DF2F8C027309D4FB5E0AD1DF248C023B -:1036DA00318E04CCFB14896E0A99716207CC010001 -:1036EA00316207086159018C01D1DFF471630771F6 -:1036FA006B271004C6D7CF25FC03F523FCF527FC5E -:10370A00F529FCD7C788061617F1E734020025DD2C -:10371A005123DD2225DD3023DD0523DD3FEF4F5028 -:10372A0040C15012FDBB36C06731399F35FC30DAD3 -:10373A0038FD973AEF38675C03D161F87142226726 -:10374A005C839F25FCEF27675C039F27FC675C036C -:10375A004C0261F8711221FD1331EF12679F29FCA7 -:10376A00EF0C6791DF08E0C15012FDBB36C0C6D727 -:10377A00C71617F1E7240000DD7223DD6124030078 -:10378A00DD0C240200DD6024F900DD67EF6840D714 -:10379A00FB5BDC06CF26FC0FEF3240D7FB4CDC0686 -:1037AA00CF26FC0BEF2640D7FB33DC06CF26FC07DF -:1037BA00EF1A40D7FB0BDC06CF26FC03EF0E40D7EF -:1037CA00FB06DC05E526FCEF03F526FC31020705BE -:1037DA00308000EF01F6086F26FC7208EF1E8F2377 -:1037EA00FCF523FC72EF15F928FCEF107132225216 -:1037FA0035EF09F2EF0666730922FC72C6D7C716BF -:10380A0017F1E7240000DD38241000DD1C23DD1C3D -:10381A0023DD30240E00DD18241100DD1B240F00E7 -:10382A00DD12243000DD15EF1EE2EF1D5202EF1902 -:10383A005204EF155206EF115205EF0D5207EF0928 -:10384A00F2EF065203EF0252FFC6D7C7401AF90336 -:10385A00DF0630DA38FD973A8F0CFDB00CFDD1DF68 -:10386A006DCF0CFD073164214B716321401AF903B6 -:10387A00DF423604FDC7D933FCFDA639C08FF1FB00 -:10388A005C80D1DD0A8FF1FB5004D6609F32FC3692 -:10389A0008FDC7D932FCFDA639C08F39FC4F34FC6C -:1038AA00DD128F34FC9F39FC8F34FC9F35FC30DAF3 -:1038BA0038FD973A7150F000CE300BCF170006CE84 -:1038CA003106FDCD02717A30710BE3710BE7C6D771 -:1038DA00C7D935FCF112312F605C3F771331FF31C4 -:1038EA00DE03313F609F28FC679FD5FB73090E23D7 -:1038FA0076C75013C150A4FD8D0310045013C15054 -:10390A00A4FDF102C062614EDD0CC75013C150A480 -:10391A00FD8D03100400F2C6D7C7168B728C0161A5 -:10392A004ADE248B728C02614ADE188C01728C0288 -:10393A00614ADE068C01318EEF048C02318E0872E8 -:10394A0008EF268B72EF228B728C02614ADE048B9F -:10395A0072EF168C01728C026142DE068C01318E86 -:10396A00EF048C02318E087208C6D7C716710AE7AF -:10397A00710BE37150F000CE300BCF170006669E34 -:10398A0031FDCD02717A30710BE33182E302EFFA35 -:10399A008D1F7158F000710BE772C6D7C7C1C1FB02 -:1039AA00F8FFAC0A14A91489708C0261287061317D -:1039BA00FDE8201344020071FEDC16AC0A14A914B7 -:1039CA008C0299AC0A14CA0200AC0A14CA0310EF9A -:1039DA0060AC0A14A914894E02DE0AAC0A148A02DF -:1039EA00819A02EF13AC0A14A914894E0261D30812 -:1039FA00AC0A148A02919A02AC0A148A03919A03B5 -:103A0A00D1DF2EAC0A148A027C804C8DDC07A91403 -:103A1A00898199EF10AC0A148A027C804C74DE0505 -:103A2A00A914899199AC0A14CA0310AC0A14CA02DF -:103A3A00001004C6D7ED823A717BFAC7D544FC61FF -:103A4A00F83174212D717321717BFA717AFAD54498 -:103A5A00FC61E8B044FC717AFA5600664C0CDD123F -:103A6A0072F3311C790EFDCEFC0061CAFDE13A8683 -:103A7A00EFE9717AFAF2C6D7C75600664C0ADE0B2E -:103A8A00F0317E12F67846FC86EFF0C6D7C7C1C180 -:103A9A00FBF8FFCC01008C014C0ADE36717BFA8CF4 -:103AAA0001F0317E0446FC14A96168DF09AC02B951 -:103ABA00717AFAF2EF1D8C01F0317E127946FC61BF -:103ACA004902DF06717AFAE2EF09717AFA6159015D -:103ADA00EFC4E21004C6D7C72004FBF8FFF642463B -:103AEA00FC61F8EDD93B717BFA9C038C034C0ADE2E -:103AFA004F8C03F0317E0446FC14A96168DF05711E -:103B0A007AFAEF3C8C03F0317E127946FCE743DF08 -:103B1A0006717AFA00EF21717AFA8C0372F3311C7A -:103B2A007946FCCEFC0061CA629C02D1DF0A8C0392 -:103B3A00F0317E12E67846FC717BFA615903EFABED -:103B4A00CC0200CC01018C02F0317E0446FC14A99F -:103B5A006168DD7B8C02F0317E127946FCE743DF37 -:103B6A00688C014C0ADE628C01F0317E127946FCC7 -:103B7A00E743DD50717BFA8C01F0317E0446FC1478 -:103B8A00A96168DF1B616901717BFA8C01F0317EE2 -:103B9A0012F67846FC717AFA8C024E01DCE7EF2FB6 -:103BAA008C01F0317E0446FC14A9128C02F0317E9D -:103BBA00337846FC8C01F0317E12E67846FC615976 -:103BCA0002717AFA615901EF98615902ED503BCCC2 -:103BDA000200CC01008C014C0ADE1E8C01F0317E01 -:103BEA000446FC14A96168DF05CC0201EF068C02C9 -:103BFA00D161E800615901EFDCF21004C6D7C7C1F0 -:103C0A00C1FBF8FFCEABAC8C02D1DD126169023088 -:103C1A005C03BBF6614900DDEE618900EFF5100433 -:103C2A00C6D7C72006FBF8FF3411FCC55006C150A1 -:103C3A00A8C15030FD1B031006D2DD1DA05AFC405E -:103C4A005AFC08DE03E2EF5A340CFC895CFC99FD4D -:103C5A00F53C7110DAFBF2EF49F55AFC8F0CFC5C6B -:103C6A0001D1DD26401AF903DF205010C180FDBBC7 -:103C7A0036C0C736100571D4C6DE0F17C15006C14B -:103C8A0050A8C15030FD1B031006401AF901DD117E -:103C9A00401AF905DD0B8F0CFC5C02D161E8FD448A -:103CAA0043F21006C6D7D90DFCC15030FDF102C04F -:103CBA00629F10FC7130DDFB8FE5FB5C08D1DF06EB -:103CCA00716307716B27F2D7D910FCC1D90FFCC1F8 -:103CDA005030FD8D0310047130DDFB8FE5FB5C086D -:103CEA00D1DF06716307716B27F2D7C7200AFBF889 -:103CFA00FF500FC15030FDF102C0403FFB02DF0709 -:103D0A007110DAFBF2EF547118DAFBCC0700CC0819 -:103D1A0012CC09808F0CFC5C03D1DF08717AD5CCF8 -:103D2A000607EF06717BD5CC062F17040600C15093 -:103D3A0004C150A0C15030FDD5031006C736100586 -:103D4A0071D4C6DE15401AF903DF0F17C15006C138 -:103D5A0050A8C15030FD1B031006F2100AC6D7C77F -:103D6A008F1AF9318F24020061F8F55CFC8F26FD69 -:103D7A00B026FDD161E8ED443ECF26FD048F1AF945 -:103D8A00318FE723DD0B24020024030061C8ED44D0 -:103D9A003E405CFC02DF0AE0C15010FDBB36C0EFBA -:103DAA0013405CFCFADF0D5002C15010FDBB36C057 -:103DBA00E6BF1EF931340708711322F55CFCEF15D2 -:103DCA0031142205F55CFCEF0CA05CFCD55CFC61AF -:103DDA00F8CF5CFCFF8F1DF9318FE723DD07B12394 -:103DEA0061D30CEF1236100571C4712122EF0B71E9 -:103DFA000402712122EF037122223122221A405D2C -:103E0A00FC0361D8A05DFC405DFC02DF0E5004C1DA -:103E1A005010FDBB36C0EF03F55DFC314207184078 -:103E2A005EFC0361D8A05EFC405EFC02DF0C501011 -:103E3A00C1FDBB36C0EF03F55EFCC6D7C7401AF911 -:103E4A0002C6D7C72004FBF8FF401AF90361E8400D -:103E5A001AF9041004C6D7C78F0CFC5C03D1DD1114 -:103E6A0036100571D4DE0A302C3CFD973AD261F83F -:103E7A0000401AF903DF1B31220707306A26FD9733 -:103E8A003A003134220C7133225080C15012FDBBEA -:103E9A0036C0401AF903DD05F6BD1AEF25D5F8FB41 -:103EAA00DF09F6461ADD1BB61AEF17D9F4FBF146FD -:103EBA001ADD0FD9F4FB12AD1A43DE04A61AEF027B -:103ECA00B61AC6D78FECFB5C10D161E87152228F0B -:103EDA00ECFB5C0FD1DD6C8FECFB5C01D1DD05F5F1 -:103EEA001AF9EF5F8FECFB5C02D1DD15E0C15003DC -:103EFA00C15084FD8D031004711300711B207103DE -:103F0A00038FECFB5C08D1DD05710303EF1C8FEC1A -:103F1A00FB5C04D1DD14711300711B2031442203B0 -:103F2A007103033425FC895CFC995005FD083C713A -:103F3A0002035003C1C15084FD8D031004711A207D -:103F4A00714322F5ECFBF2D7C7364105718461D87B -:103F5A00ED01403641057194DE0771405005CEAB44 -:103F6A00AC31B2D104E2ED1040713BD18F14F9A00B -:103F7A0014F9318EE7240000DD1723DD1C23DD2729 -:103F8A0023DD2C23DD3823DD4423DD4923DD4EEFF9 -:103F9A00668F1DF99F4005EF58F0C15084FDF1026C -:103FAA00C0629F4005EF4A8FFAFC9F4005EF4250DE -:103FBA0008C1506CFDF102C0629F4005EF33500901 -:103FCA00C1506CFDF102C0629F4005EF248F62FC74 -:103FDA009F4005EF1C8F02F99F4005EF14F1710411 -:103FEA002061DC311970F171142061DC61689F4035 -:103FFA0005CEABACE2EF0F71605005714850057108 -:10400A003BD5F514F9F2C6D7C78F1AF9318FE724D1 -:10401A00000061F8EDD34123DD1B2361F8EDE44094 -:10402A002361F8ED71412361F8EDAE412361F8EDAA -:10403A003D42ED9D42D51BF9DF28D55CFCDD05F537 -:10404A002BFDEF03A02BFD402BFD65DC09F51AF9CA -:10405A00717221EDA042405CFC0A61D8EDA042E5F4 -:10406A001BF9711222F52BFDCFD1FB80F5EFFBFD79 -:10407A00FA04FD1A28FDE128401DF904DF097172CE -:10408A0021F51AF9EDA042FDA82AD5D7FBDF238F27 -:10409A00D9FB318EF7BDD813BDDAFDEB0AC9DCCDE9 -:1040AA00CC301C43FD570ADE09717221F51AF9ED6D -:1040BA00A042FD7C25D2DD09717221F51AF9EDA025 -:1040CA0042401BF901DF05F5F5FBEF04CFF5FB03D1 -:1040DA00CF1AF902FD5125EDA042CF350002CF37A4 -:1040EA00001DCF120510FD232CFD832C714A9DFD66 -:1040FA000037FDCD32F537FF712BE0F51BF97172F0 -:10410A0021CBE43FEFCBE6F6F0FDFA04713BD48F06 -:10411A001CF93135335004C15084FDF102C0625C90 -:10412A0003318E315D34DBFB896168995002C150DD -:10413A0084FDF102C0D2DD067170DBFBEF047178F9 -:10414A00DBFBFD1A28FDE128FD3A2D71381CF9CF59 -:10415A001AF9038FCEFB5C02D1DD095080C15010E1 -:10416A00FDBB36C0EDA042FDA24231A4E020712B76 -:10417A00E031020C05FD2C43EF145027C15005C154 -:10418A005084FD8D031004CF1AF904717221315441 -:10419A00220CA02AFD402AFDFF61F8FD2C43FD0FE9 -:1041AA0043EDA042FDA24231020C18F0C15005C1F4 -:1041BA005084FD8D0310045005FD083CFD2C43CFAF -:1041CA001AF903FD0F43EDA042CFF5FB03F5F6FB09 -:1041DA00717220F6426CFF61E8EDA042F5F8FBF639 -:1041EA00BF1EF9FDAF2DFD7A2CFDD82C714B9DF524 -:1041FA00DCFBF5DDFBF5DEFBF5DFFB31442002EFEE -:10420A00FACE3708CBE4BFFFCBE6FFF1CED4FFCF1F -:10421A00370009F51205F6BEE0BEE2BED0716A2784 -:10422A00FD2B26FDFB2BF52BFDCF1AF9057112226A -:10423A00F55CFC31040706FD082CD2DF1BFDFA04ED -:10424A00FD1A28405CFC0ADC06E51BF9E51AF9317F -:10425A00020743FDFB2BEF3EF51BF9717301713227 -:10426A000431120502EFFA71430231949E02EFFA09 -:10427A00FD6305712AE7CEA409F5F30061FD310457 -:10428A000703711322E5F300CEA408712BE7E51AA0 -:10429A00F9EF0300EFFDC6D7D564FCDF1E3102003B -:1042AA00195003C15084FDF102C0625C01D1DF07DD -:1042BA00F51AF9717221D7E564FCD74064FCF0DF86 -:1042CA00083104003FF564FCD74064FCC8DF0BF5F5 -:1042DA001AF9717221CF64FCF0D731020004A0648C -:1042EA00FCD7F0C15004C15084FD8D0310048FDB4C -:1042FA00FB5C9F9FDBFB7110ECFB30CE3EFD973AD7 -:10430A00CF64FCF0D7F6421EF9DD16A21EF98FF033 -:10431A00FB5040D612AF1EF943DC06F51AF971724A -:10432A0021D7715322F52AFD717207FDCD02FDCD09 -:10433A0002717307D7FD8905F2D7C7200CFBF8FF76 -:10434A008F12FCF0F911FCF303FDE82013BC048F73 -:10435A0014FCF0F913FCF303FDE82013BC028F16DA -:10436A00FCF0F915FCF303FDE82013BBAC04BDD83F -:10437A00F6BDDAAC04311EBDDCF6BDDEFD4608AD85 -:10438A00D8BDDCADDABDDEAC02BDD8F6BDDAAC0212 -:10439A00311EDADCC3DADEC3BDDCF6BDDEFD46085B -:1043AA00C0BDDEC0BDDCADDEFD8809ADD8BDDCAD6B -:1043BA00DABDDEABBDD8F6BDDAAB311EDADCC3DA64 -:1043CA00DEC3BDDCF6BDDEFD4608C0BDDEC0BDDC19 -:1043DA00ADDEFD8809DADAADD8FD6447C3C58FF2D0 -:1043EA00FC5C3FF0317E0472FC14C2C0B9A0F2FC3E -:1043FA00F6BC08BC0A9C078C074C2EDD3E8FF2FCEB -:10440A000E0770F161DC605C3FF0317E127972FC5C -:10441A00BDD8F6BDDA8C0773095023318FBDDC7025 -:10442A00BDDEFD4608AC08BDDCAC0AFD8809ADDA84 -:10443A00BC0AADD8BC08615907EFBCAC08BDD8AC02 -:10444A000ABDDAC9DC0004F6FD1009C9DCFFFFF673 -:10445A00FDDD09ADD8BF6CFCAF66FC426CFCDD1219 -:10446A00AF68FCBF6AFCAF66FCBF68FCAF6CFCBF00 -:10447A0066FCAF68FC426AFCDC50AF66FC4268FC32 -:10448A00DE48AF2CFD4266FCDE40406EFC16DC1FA7 -:10449A00406EFCA0DE168F6FFC4F6EFCDE0EAF6620 -:1044AA00FC2270FC44691061C8FD1D45F56EFCAF25 -:1044BA0066FC445146DC0BAF66FC241027BF2EFD78 -:1044CA00EF1930F82ABF2EFDEF11406EFCFFDD0315 -:1044DA00E6EF01F6346EFC89610899AF6AFC42681E -:1044EA00FCDC1BAF68FC4266FCDE13AF66FC422EA6 -:1044FA00FDDE0BF56FFCAF66FCBF70FCEF11406F81 -:10450A00FCFFDD03E6EF01F6346FFC8961089910C0 -:10451A000CC6D7C72008FBF8FFA017FCD517FCDF8D -:10452A001CA018FCD518FCDF14A019FCD519FCDF57 -:10453A000CCF17FCFFCF18FCFFCF19FCFF717BFAD9 -:10454A00710A9E31929E02EFFA8E98FDF1099C053E -:10455A008E949F30FD8E969F31FD8E979F32FD8EF1 -:10456A00939C048E929C03FDF64613BC068F33FD82 -:10457A004E05DF12AFF4FC614906DE41AC0622F4B7 -:10458A00FCFD1946EF378C05318EB112D933FDF196 -:10459A0043DF1F8C055C0391DF03E6EF01F6046D30 -:1045AA0001313D12010322F4FC610906BBFD1946E3 -:1045BA00EF0B8F33FD4E05DE04F6FD19468C059F81 -:1045CA0033FDAC06BFF4FC8FF3FC9C028C044F1C39 -:1045DA00FCDE138C034F1DFCDE0C6169028C024C5D -:1045EA00A861C8CC02A78C02F0317E0420F914A974 -:1045FA0044FFFFDF04E6B9EF128C02F0317E04209B -:10460A00F914A944FEFFDD03A9A1B91008C6D7C74A -:10461A00161744A90061C836A800A0F3FC40F3FCB1 -:10462A00A861C8F5F3FCF9F3FCF3311CF67820F91C -:10463A00B7F647DFE5C6D7C756A89666F0317E12A9 -:10464A00F6B17820F966D1DFF1F517FCF518FCF51B -:10465A0019FCF5F3FCC6D7716322D7C72004FBF80F -:10466A00FFD914F9F1E7240000DD1123DD1C23DD55 -:10467A002123DD2623DD2F23DD33EF388FF3FC9F43 -:10468A00F6FCA014F9F930FDEF5EA014F9F931FD3A -:10469A00EF56A014F9F932FDEF4EA014F98F33FD4D -:1046AA00FD0B0A72EF42A014F95255EF3BA014F920 -:1046BA0052AAEF34F9F6FCF3311C7920F9BB3162C6 -:1046CA0022058B9C03EF128C019C03D5F6FCDF06B6 -:1046DA00CFF6FCA7EF03B0F6FC718071672261DCAC -:1046EA0061FB7161228C03721004C6D7C72006FBD6 -:1046FA00F8FF8E98FDF1099C038E97FDF1099C0243 -:10470A008E96FDF1099C018E94FDF1099B710B9E19 -:10471A00717AFA8C02F0317E12798023BC048C0300 -:10472A005C03D1DF158C024C03DE0C8C024C02DFD9 -:10473A00098C014C1D61F86179048C01318EB161DB -:10474A000904BC04313D120103BC048C040D708CB5 -:10475A00051C00BC04121006C6D7C7C3C12008FB3B -:10476A00F8FFF661490A61F8614908DF07F7340082 -:10477A0000ED0148E6BC04F6BC06AC0ABC02AC0873 -:10478A00BBAC06614902AC0461F8614900DE28ACA1 -:10479A0004BDD8AC06BDDAE1FD9709ADDABC06ADB9 -:1047AA00D8BC04ABBDD8AC02BDDAE1FDB209ADDAC2 -:1047BA00BC02ADD8BBEFCAAC06BC02AC04BBAC08A9 -:1047CA00BDD8AC0ABDDAAC04BDDCAC06FD4909AC07 -:1047DA0004BDDCAC06FD8809E1FDB209ADDABC0610 -:1047EA00ADD8BC04AC06614902AC0461F861490069 -:1047FA00DCC5AC0214AB12100CC6D7C7D534FDDD2C -:10480A0005B034FDEF78CF34FD023114070671107C -:10481A00DBFBEF047118DBFB8FDBFB7FF8FC76D147 -:10482A00DD5C8FDBFB9FF8FC401AF903DF22665C34 -:10483A0010D1DD1C8FDBFB5C10D1DD0B5080C15029 -:10484A0011FDBB36C0EF095040C15011FDBB36C047 -:10485A00401AF903DD06401AF904DF22665C02D128 -:10486A00DD1C8FDBFB5C02D1DD0B5040C15010FD1B -:10487A00BB36C0EF095020C15010FDBB36C0C6D7A9 -:10488A00CF0BF90461FC61FCC1C3C5C7520C9292FB -:10489A0069D4FEC1DFF88EFD708EFCC1717AFA40D0 -:1048AA001AF903DF06306A26FD973AC09EFC609E1D -:1048BA00FD34D4FE5206C0B9A5A592DFF9C6C4C21A -:1048CA00C061FC61DF520C929269D4FEC1DFF88E9E -:1048DA00FD708EFCC1717AFAC736410571A4C6DC37 -:1048EA0041F5FCFC71485005716050053154212690 -:1048FA00716207715321D5DCFBDF0FD5DDFBDF0ABF -:10490A00D5DEFBDF05D5DFFBDD0C31620702EFFAEE -:10491A00716307716B27FD6146FD7D32F514F9ED70 -:10492A003C4AC73641057184C6DE0DF5FCFC714868 -:10493A005005FD7D32ED3C4AC73641057194C6DE0D -:10494A001540FCFC03DD0C40FCFC04DD0640FCFCCD -:10495A000161F8F5FCFCD9FCFCF1E7240000DD0854 -:10496A0023DD1323DD39EF6071405005E5FCFC714E -:10497A00505005ED3C4A8F40059F15F99F18F9D90B -:10498A0015F9FD1936629F17F94015F97FDD06CF33 -:10499A00FCFC02EF03F5FCFC71505005ED3C4AC7E4 -:1049AA003641057194C6DE1CC736410571C4C6DEA0 -:1049BA0006CFFCFC03EF11F5FCFC71485005716051 -:1049CA005005EF6ECFFCFC0440FCFC03DF0E8F1792 -:1049DA00F99F4005D915F9FD9836EF108F400576F5 -:1049EA00C7D915F9FDF732C071505005D918F9F138 -:1049FA00242900DD2D240400DD28242200DD2324BF -:104A0A001100DD0C240100DD19241E00DD14EF0C59 -:104A1A004015F960DF0CCF15F961EF06F514F9A01E -:104A2A0015F940FCFC03DF0AD915F9FD1936629F16 -:104A3A0017F9C09EFC609EFD34D4FE5206C0B9A58B -:104A4A00A592DFF961FCC1C3C5C7520C929269D421 -:104A5A00FEC1DFF88EFD708EFCC1F616717AFA710E -:104A6A004AE5717BBD51405F0401D1DD05A7F647D8 -:104A7A00DFF3300400BF2401F6BF2A01300B0BBF5D -:104A8A002801FDCD02300B0FBF2801FDCD02300FEA -:104A9A000FBF2801710AE6714320C09EFC609EFD8B -:104AAA0034D4FE5206C0B9A5A592DFF9C6C4C2C065 -:104ABA0061FCC1C3C5C7520C929269D4FEC1DFF82A -:104ACA008EFD708EFCC1717AFAD53EFBDD0EEB3C91 -:104ADA00FB899E44A23CFBB03EFBEF2B710AE630F9 -:104AEA000400BF2401F6BF2A01300B0BBF2801FDC9 -:104AFA00CD02300B0FBF2801FDCD02300F0FBF28AA -:104B0A0001713320714320C09EFC609EFD34D4FEA7 -:104B1A005206C0B9A5A592DFF9C6C4C2C061FC613C -:104B2A00EF520C929269D4FEC1DFF88EFD708EFCB2 -:104B3A00C12008FBF8FF71503002CEABACCC0100AB -:104B4A00F6BC0231B2E210617902F6614902DFF382 -:104B5A0071603002EDE04B8E519B713BE28B5C023F -:104B6A00D1DD1D8B5C08D1DF0971503002CC010008 -:104B7A00EFCE8C0770FD7A37629E50CC0102EFC0EF -:104B8A008B5C03D1DF408E509C05715030028C0142 -:104B9A00D1DF0E8C0570FD0838629C07CC0101EF4D -:104BAA00328C014C02DF0671603002EF29CF3402E9 -:104BBA005A716030028C0570C18C0770FD0E37C0C7 -:104BCA00CF34024AEF108B5C01D1DD0671603002EE -:104BDA00EF0400ED4A4B1008C09EFC609EFD34D4E1 -:104BEA00FE5206C0B9A5A592DFF961FCC18F06FC89 -:104BFA004F96FFDF328F07FC4F97FFDF2A8F08FCA3 -:104C0A004F98FFDF228FE5FB5C04D1DF1A7120DDAC -:104C1A00FB716307716B27401AF905DD06401AF923 -:104C2A000161F8CF1BF902C061FCA044FC61FCC120 -:104C3A00C3C5C7520C929269D4FEC1DFF88EFD70CB -:104C4A008EFCC1C1FBF8FF8D1F9C018E31318EE7AE -:104C5A00240600DD0823DD0F23DD25EF51717AFAE2 -:104C6A008C019F33FCEF47717AFA401DF902DF0786 -:104C7A008C019F32FCEF3751FF2E019F32FCEF2E41 -:104C8A00717AFA8C019F02F940EFFB74DF068FD12B -:104C9A00FB9F02F98FDAFB5C01D1DF12401AF9039C -:104CAA00DD06401AF904DF06300B2AFD973A403137 -:104CBA00FF09DE08A031FF710BE3EF197158F0000C -:104CCA007162214043FC02DF03F6EF05D943FCF190 -:104CDA00A1609F43FCC0C09EFC609EFD34D4FE527E -:104CEA0006C0B9A5A592DFF9C6C4C2C061FC61FFBE -:104CFA00520C929269D4FEC1DFF88EFD708EFCC10F -:104D0A00717AFA8F0CFC5C03D1DD19401AF903DDC4 -:104D1A0006401AF904DF0D36100571D4DE06302C70 -:104D2A003CFD973AC09EFC609EFD34D4FE5206C0FC -:104D3A00B9A5A592DFF961FC61FC61FC61FC61FC2B -:104D4A0061FC61FC61FC61FC61FC61FC61FC61FC71 -:104D5A0061FC61FC61FC61FC61FC61FC61FC61FC61 -:104D6A0061FC61FC61FC61FC61FC61FC61FC61FC51 -:104D7A00FF000000AAAAAAAA0000D4FB000034FC83 -:104D8A0000000000693D55386B27BE2D532FD12FE7 -:104D9A001331613E0548463E4D3E12400000000078 -:0C4DAA000000983AF82A2330129900000B -:0A4FF60031333A34333A3230000010 +:10258A0003710205E0C15003C15084FDE603100443 +:10259A005013FD9402F0C15005C15084FDE60310AA +:1025AA0004500FC1E0C15084FDE6031004500AFD37 +:1025BA0094027103055008FD9402501FC1E0C150F6 +:1025CA0084FDE60310045012FD94025003C15084A6 +:1025DA00FD4A03C0625C01D1DF03E2EF3C5003C154 +:1025EA00C15084FDE6031004710203711A2050647D +:1025FA00FD9402C717A116F7490A239BA3A7510303 +:10260A00614ADFF4C617A1C15003C15010C150A4DA +:10261A00FD1C041006F50AF9F21004C6D75003C1CE +:10262A005084FD4A03C0625C01D1DD195014FD7B60 +:10263A0024FDF323503CFD9402E0C15003C15084B1 +:10264A00FDE6031004711300711B20710303F0C12E +:10265A005003C15084FDE6031004F2D7C72004FBDF +:10266A00F8FFCC02008F0AF99C035010C150A4FD58 +:10267A004A03C0629F0AF9D53FFBDD04F2ED442705 +:10268A008C037F0AF95C08D1DD108F0AF95C08D146 +:10269A00DF05CC0210EF03CC02208C037F0AF95C21 +:1026AA0004D1DD168F0AF95C04D1DF088C026C04B0 +:1026BA009C02EF068C026C089C028FDAFB5CF372B8 +:1026CA008F0AF95C0C6162629FDAFB8FE6FB7CFF82 +:1026DA0050FF5E029C02D1DD1F34DEFB896E029937 +:1026EA00716207CC0100316207086159018C01D17E +:1026FA00DFF4716307716B278F0AF95C40D1DD093A +:10270A005002C15012FDC136C08F0AF95C01D1DDF9 +:10271A0008E0C15012FDC136C0717AFA8F0AF95C1D +:10272A0041D1DD15340AF9895CBE99D90AF9C1503B +:10273A0010C150A4FDE6031004F21004C6D7FD9A96 +:10274A0023F2D7FDF323F2D7C78FEEFB7617FD7B73 +:10275A0024664FEEFBDFF2F5EEFBF2C6D78FFFFCE5 +:10276A00B0FFFCD161E8ED1528CFFFFC80710407AA +:10277A00E6613012F6712420611043DD32710407DC +:10278A00E661306061FB712120312420137130DB56 +:10279A00FB5002C15011FDC136C0CF0BF902EF0F39 +:1027AA007138DBFBE0C15011FDC136C0F50BF940B1 +:1027BA0002F94BDC0B4002F9B9DE05711220EF0F6A +:1027CA004002F93EDC064002F9BD61C871132031AE +:1027DA0014200D3104200931020705713304EF0377 +:1027EA00713204311205097140DBFB714202EF07B5 +:1027FA007148DBFB714302D50BF9DD06B00BF971A9 +:10280A004202401AF90361F8FD982AD7C72004FB4F +:10281A00F8FF716201717201E0FD94025008FD9E99 +:10282A0039629F02F98FFEFC9C03FD51288FFEFC42 +:10283A004E03DD09FDAC28FDFB2971022030FB297E +:10284A00FDF73A1004C6D7C75009FD9E3962767162 +:10285A0063014CEADC06CFFEFC07EF44664CC6DC9B +:10286A0006CFFEFC06EF39664C9FDC06CFFEFC0560 +:10287A00EF2E664C7CDC06CFFEFC04EF23664C5040 +:10288A00DC06CFFEFC03EF18664C22DC06CFFEFC0A +:10289A0002EF0D664C06DC05E5FEFCEF03F5FEFCD7 +:1028AA00C6D7C72008FBF8FF8FFEFC5006D604CA1D +:1028BA002214F7500689A54804F9A390DFF7500AB5 +:1028CA00FD9402304000BB17C15002C15006C150EE +:1028DA006CFD1C041006304A57BB17C15002C15088 +:1028EA003EC1506CFD1C041006D2DF217108DAFBD0 +:1028FA0040FEFC07DE05E51DF9EF324002F904DE71 +:10290A0006CF1DF903EF26CF1DF905EF207100DA76 +:10291A00FB4002F9F1DC06CF1DF902EF104002F983 +:10292A0004DE06CF1DF903EF04CF1DF904401DF99B +:10293A000161E8EDF72917040300C15004C1500CE6 +:10294A00C1506CFD7403100630DA20BB17C1500267 +:10295A00C1500EC1506CFD1C041006F690BB17C185 +:10296A005002C1500CC1506CFD1C041006314420A9 +:10297A0002EFFA7132208FFEFCF0312E040A21C1D7 +:10298A005040C1C1506CFD1C04100650A5FD9402B4 +:10299A0030DA20BB17C15002C1500EC1506CFD1C69 +:1029AA0004100650A5FD94025004C1506CFD4A0360 +:1029BA00C0629C07E9FEFC09FB224E0761C30AE9D3 +:1029CA00FEFC09F4224E0761D80017040300C15027 +:1029DA0004C1500CC1506CFD1C041006F6BB17C193 +:1029EA005002C1503EC1506CFD1C0410061008C6AE +:1029FA00D7C7C1FBF8FF8F0CF94F02F961F8ED94C4 +:102A0A002A8F02F99F0CF98F02F95070D61230738F +:102A1A0051230480001231FF318E039F0DF99FD696 +:102A2A00FBF6BB8F0DF97C804C95DC1B8F0DF931C1 +:102A3A008F241400BDD8AF06F9FD1D0D1231FF31E8 +:102A4A008E03318FBBEF198F0DF9318F241400BD1E +:102A5A00D8AF08F9FD1D0D1231FF318E03318FBB3E +:102A6A00D904F9F1610900BBBBBF66FC17C150026A +:102A7A00C1500CC1506CFD1C041006D2DF088F0235 +:102A8A00F99F0CF9EF047100DAFBF2C0C6D7C72030 +:102A9A0008FBF8FF401DF902DF07CFD7FB63EDB053 +:102AAA002B401DF903DF2817040600C15002C1504C +:102ABA0004C1506CFD74031006D2DD06CFD7FB6348 +:102ACA00EF0A8C069FD7FB8C079FD8FBEDB02B171C +:102ADA00040600C15002C15004C1506CFD740310B9 +:102AEA0006D2DD117100DAFB710320F5D7FBE6BFD0 +:102AFA001EF9ED852B8C06318E318D080E07081CC8 +:102B0A0000BBD9FEFCF1040223148972ABFD700EDE +:102B1A00BB8C019C068B9C0717040400C15002C1A0 +:102B2A00C1506CFD74031006D2DF508C049FD9FB90 +:102B3A008C04318E318D080E05081C00BBBDD8F6F9 +:102B4A00BDDAC9DC01A0FDF90EDC05CC0364EF2B6C +:102B5A00ABBDD8F6BDDAC9DC819DFDF90EDC05CC2A +:102B6A00030AEF17ABBDD8F6BDDAC9DC019BFDF944 +:102B7A000EDC05CC0305EF03CC03003134040D3120 +:102B8A00120509CFD7FB64F5D8FBEF1A8C064E0362 +:102B9A00DE0C8C069FD7FB8C079FD8FBEF088C03B3 +:102BAA009FD7FBF5D8FB40D7FB0BDE06400EF90B8F +:102BBA00DE1640D7FB06DE06400EF906DE0AD5D73A +:102BCA00FBDF0ED50EF9DD095020C15011FDC136CB +:102BDA00C0D5D7FBDF09D50EF9DD04E6BF1EF98F94 +:102BEA00D7FB9F0EF9D51AF961F8CF0EF96440D7D1 +:102BFA00FB0BDE03E6EF01F6C15012C150A4FDE65D +:102C0A000310041008C6D7303B10BF10F9300E006D +:102C1A00BF12F9D7F64212F961F84210F9DD0EF641 +:102C2A004210F9B210F961F8B212F9F2D7E2D7718B +:102C3A0000010571785005713AD5713BD1713ADDC1 +:102C4A00713BD98F10055CFC9F1005CF54054AE5EE +:102C5A0042057110420571004205714850057130F4 +:102C6A00500571205005CF530505CF52050A713022 +:102C7A00510571205105713BD5717050058F1105B1 +:102C8A005CFC9F1105D77178500571080105D77151 +:102C9A0040F00071783002713AE6713BE2713BEA2A +:102CAA00713BEE8F10055CFC9F1005CF34024AE59C +:102CBA0052FF711A52710A52714830027130300251 +:102CCA0071203002CF330205CF32020A713031024D +:102CDA00713BE6717030028F11055CFC9F11057122 +:102CEA00603002D7717830027148F000D7C7880681 +:102CFA001666614FDD0967614EDE0396EF0186664F +:102D0A0072C6D7C7161714AA0412A943DD29AA0442 +:102D1A0012A923FD5620C3AC02FD562013C2BDD80A +:102D2A0013FDED0EDE0C1714AA0212AA0403BA044C +:102D3A00EF051714A9BA04AC041231FF319E03310E +:102D4A007F087208C6D7C77100F200304400BFB6C8 +:102D5A0001300188BF9001300984BF9E01BF9C01E8 +:102D6A00BF9A01BF9801BF9601BF9401BF9201F5B6 +:102D7A003CFF30FE00BFBE01F6BFBC01BFB8015028 +:102D8A00EEBFBA01A1BFB201C918FE007120120537 +:102D9A0071481CF9401DF902DD0B36100571A4615A +:102DAA00C871401CF9712812058F1CF9313507F5D5 +:102DBA00F5FBCB6CFF00717320C6D730EF00BFB4B0 +:102DCA0001F6BFBA017108F200D7710321D9F5FBE8 +:102DDA00F1E7240000DD1423DD1B23DD1323DD1AB4 +:102DEA0023DD2823DD2D23DD33EF0AFD632EEF2FAC +:102DFA00FDEB2EEF2AFD632EEF25F0C1AE6CFDF739 +:102E0A002CC0F313BE6C716320EF14F6BE6C7162B2 +:102E1A0020EF0CCB6CFF00716320EF03FD952E8F22 +:102E2A001CF9314508716420712104EF0671642090 +:102E3A00715101310421218F1CF9314510F6BE640C +:102E4A00BE6A3164200390EF01F6BE6ED73164206A +:102E5A0004F690EF01F6BE6AD740D7FB06DE04FD02 +:102E6A00952ED740D7FB0BDE10F0C1AE6CFDF72CC8 +:102E7A00C0F313BE6C716220D7D9F4FBC1AE6CFDEE +:102E8A00F72CC0F313BE6C716320D7710221F0C115 +:102E9A00AE6CFDF72CC0F313BE6CA0A4FB40A4FBE0 +:102EAA0040DC3DF5A4FBD9A5FBF1313F0402FD143A +:102EBA00D9A5FBF1BDD85008FDA80D087208E6D2C5 +:102ECA00DD040192DFFC896158D1DD05716220EFD2 +:102EDA0003716320A0A5FB40A5FB2061C8F5A5FBF3 +:102EEA00D7D5A6FBDD04B0A6FBD7CFA6FB04D9A78E +:102EFA00FBF1F734020023DD0625DD0325DF1B4045 +:102F0A00D7FB0BDE09F6BFA8FB716220EF1CD9F4D0 +:102F1A00FBF1BFA8FB716320EF1040D7FB0BDE0566 +:102F2A00716320EF05E6A1BFA8FBAE6C42A8FBDDEA +:102F3A0010AFA8FB426CFFDE05B26CFFEF03A26C78 +:102F4A00FFAE6C42A8FB61F8A0A7FBD78FAAFBB023 +:102F5A00AAFBD1DF7431D4D107715BD1CFACFB02AC +:102F6A00D5ACFBDD347140DAFBD9ABFBF1E73402B7 +:102F7A000023DD0625DD0325DF05F6BE66EF06D94B +:102F8A00F4FBF1BE66A0ABFB40ABFB20DF06F5AB62 +:102F9A00FBB0ACFBCFAAFB16D7CFAAFB1E7148DA4F +:102FAA00FBD5F6FBDF04F6BE66D7D9F4FBF1426621 +:102FBA00FFDD16D9F4FBF112AE6643DE05A266FF09 +:102FCA00EF03B266FFCFAAFB03D731042101D74032 +:102FDA001AF902DF19F6BE64BE6EBE6ABFB0FBBF45 +:102FEA00B6FBBFBCFBBFB4FBBFBAFBBFC0FB3174AF +:102FFA002003EDA930D5ADFB61E8EDA4308F40FB8D +:10300A009FADFB40AEFB1FDC1F7100FAFB4042FB89 +:10301A00FFDD24D5AFFBDD05B0AFFBEF1A8F42FB16 +:10302A009FAFFBF5AEFBEF0F7108FAFBD9AEFBF1D0 +:10303A00A1605C1F9FAEFBE9AEFB0944FB5080D642 +:10304A00BFB0FBE9AEFB0964FB5080D6BFB6FBE913 +:10305A00AEFB0984FB5080D6BFBCFBAFB0FB22B4E9 +:10306A00FB12D941FBF133BDD813FD590DBFB2FB99 +:10307A00AFB6FB22BAFB12D941FBF133BDD813FD1F +:10308A00590DBFB8FBAFBCFB22C0FB12D941FBF103 +:10309A0033BDD813FD590DBFBEFBB0ADFBEF3DF6F6 +:1030AA00BFB0FBBFB6FBBFBCFBAFB4FB1231FF31F5 +:1030BA00AE03316F12F623BFB2FBAFBAFB1231FF78 +:1030CA0031AE03316F12F623BFB8FBAFC0FB12312A +:1030DA00FF31AE03316F12F623BFBEFB8F1CF931ED +:1030EA00451F30BCFBFD0D2DF313BE6430B0FBFD54 +:1030FA000D2DF313BE6E30B6FBFD0D2DF313BE6A14 +:10310A00D730BCFBFD0D2DF313BE6AD7C731122190 +:10311A000BD5C2FBDD06B0C2FBEDDD31711321D93F +:10312A00F7FBF1E7240000DD0F23DD1B23DD11236C +:10313A00DD5723DD2923DD3B5600F506FDEDC931B8 +:10314A005601F506FDEF78D506FDDF075601E506BF +:10315A00FDEF055600F506FDCFC2FBFAEF61D50675 +:10316A00FDDF0B5601E506FDCFC2FBFAEF51F5F77D +:10317A00FBEF4CD506FDDF0B5600E506FDCFC2FB83 +:10318A00FAEF3CCFF7FB02EF36D927FCF1E7240030 +:10319A0000DD0923DD2423DD0A23EF1E5600F50690 +:1031AA00FDEF1CD506FDDF075601E506FDEF0556C6 +:1031BA0000F506FDCFC2FBFAEF055601E506FD8FC5 +:1031CA001CF93145086661FB715107EF066661FB20 +:1031DA00710101C6D7C736F00071F4DC297170F0AD +:1031EA0000CE9D08CE9EC0CE9F80F594FFF593FF3A +:1031FA00F592FFE597FFE596FFCE9505CE9810CE9E +:10320A009C7F7100CEFB711BE3712BE3711AE7718E +:10321A002BE7717A9D710A9E31929E02EFFA710B29 +:10322A009E712321713321714321C6D7C7312221CF +:10323A001E712221710A9E31929E02EFFA34FCFB22 +:10324A003692FF52078B99A5A792DFF9710B9EC69A +:10325A00D7C788061631322115713221C734C4FB0B +:10326A003092FF1652078B99A5A792DFF9C66673AB +:10327A006718C4FBC6D7C77123213134211E7133A5 +:10328A0021710A9E31929E02EFFA3492FF36C4FBF4 +:10329A0052078B99A5A792DFF9710B9E314421132E +:1032AA00717B9E8F04FC9E9A8F05FC9E9B71332135 +:1032BA00717A9EC6D7CFF4FBFFCFCFFB5CCFD0FB92 +:1032CA005FCFF0FB20D7C7CFCCFB10CFCDFB23CFEE +:1032DA00F1FB20F5F5FBF5F6FBF5F7FBF5F8FB56E8 +:1032EA0000664C64DE08723840FB0086EFF3C6D7EE +:1032FA00C788061617F1E73402002361E3ED113699 +:10330A002361F8EDE033B12361E3EDE733240300F1 +:10331A0061F8EDF63324070024070061D8ED113671 +:10332A00240B0061F8ED17342361F8ED5E34236154 +:10333A00F8ED2B342361F8EDDA352561F8EDFA352D +:10334A0024040061F8EDC734B124030061D8EDEB21 +:10335A003424000061F8EDF8342361F8ED113625C4 +:10336A002361E3ED08352361F8ED1A352361F8EDA1 +:10337A002C352361F8ED1A352361F8ED3E352361CA +:10338A00F8ED50352361F8ED60352361F8ED6935C4 +:10339A002361F8ED75352361F8ED81352361F8ED88 +:1033AA008A35252361E3ED11362561F8ED9335233E +:1033BA0061F8ED9F3524030061F8EDAB35240A006E +:1033CA0061F8EDB73524120061F8EDD4352361F8C0 +:1033DA00EDC235ED1336679FCEFBED1D36307725EE +:1033EA00FDF73A66736718CCFBED1D3640D1FB6AD0 +:1033FA00DF1440D2FB68DF0E674C6CDF093069438B +:10340A00FDF73A713AD5679FD3FBED1D3667D1DDDB +:10341A0006300A3FFDF73A34ECFB89616F99ED1DDE +:10342A0036675C02D1DD08304827FDF73AEF0C67B2 +:10343A005C01D1DD06304D27FDF73A675C3CD1DDF2 +:10344A0010305227FDF73A675C3C7266736218CCFB +:10345A00FBED1D3667D1DD625C01D1DD0530080068 +:10346A00EF01F6609F23FC675C02D1DD03E6EF0102 +:10347A00F63423FC89616899675C04D1DD04E6A10E +:10348A00EF01F63423FC89616899675C08D1DD0590 +:10349A00302000EF01F63423FC89616899675C10DB +:1034AA00D1DD05301000EF01F63423FC89616899FB +:1034BA00675C20D161E8716023FCED1D36D514F9F3 +:1034CA00DF09679FF5FBA014F9EF134014F905DE35 +:1034DA000DD914F9F1B112674802FDA014F9ED1DD6 +:1034EA0036675C0F7266736218CCFBED1D364014AA +:1034FA00F964DE0AE914F9671840FBA014F9675C5D +:10350A007F318EC117F1243000FD5B32C0ED1D36CC +:10351A00675C3F318EC117F1243000FD5B32C0ED8C +:10352A001D36675C07318EC117F1243000FD5B320E +:10353A00C0ED1D36675C1F318EC117F1243000FDC6 +:10354A005B32C0ED1D3667318EC117F1243000FDA4 +:10355A005B32C0ED1D36679E999F03FCED1D3671E7 +:10356A004221675C7F9F04FCED1D36714221675C36 +:10357A003F9F05FCED1D36675C3F9F06FCED1D363F +:10358A00675C1F9F07FCED1D3630313DFDF73A673A +:10359A009F0CFCEF7E30EC3CFDF73A679F0DFCEF89 +:1035AA0072300E3DFDF73A679F10FCEF66675C01CB +:1035BA00D161E8FD6B46EF5B401EFCC8DE55E91E93 +:1035CA00FC671870FAA01EFCEF49679F1EFCEF43C8 +:1035DA0067318E247200DD07240500DD0AEF0B3007 +:1035EA004109FDF73AEF03F5ABFF679FEFFBEF23C6 +:1035FA00675CBF9FF1FB675C40D1DD1771732130B7 +:10360A000A39FDF73AEF0CEF0A664C52DE0573678A +:10361A0018CCFBC6D7C716664C30DC094C37DE051A +:10362A00FD3632EF67664C02DF1F8FCEFB5C0372FA +:10363A008F25FC5C03318E316D08616A08128F2573 +:10364A00FC5C80312A6162EF49664C4FDF05FD8FD1 +:10365A0046EF3F664C61DF09E91EFC0970FA72EF1A +:10366A0031664C3DDF0AAE90BF20FCF920FCEF2208 +:10367A00664C3EDF05F921FCEF18664C7FDF0D3002 +:10368A008E3FFDF73A713AD5524AEF06667309CC76 +:10369A00FB72C6D7C71617F1241000240500DC07F1 +:1036AA00244C00DD0DEF0E667238CCFB00715221FE +:1036BA00EF03A01EFCC6D7C7C1C1FBF8FF401AF929 +:1036CA0003DD06401AF904DF2F8C027309D4FB5E6E +:1036DA000AD1DF248C02318E04CCFB14896E0A993C +:1036EA00716207CC0100316207086159018C01D16E +:1036FA00DFF4716307716B271004C6D7CF25FC036B +:10370A00F523FCF527FCF529FCD7C788061617F11F +:10371A00E734020025DD5223DD2325DD3123DD05D3 +:10372A0023DD40EF50717221679F28FC300A39FD72 +:10373A00F73A5040C15012FDC136C0EF38675C03FA +:10374A00D161F8715222675C839F25FCEF27675C81 +:10375A00039F27FC675C034C0261F8711221FD1676 +:10376A0031EF12679F29FCEF0C6791DF08E0C15027 +:10377A0012FDC136C0C6D7C71617F1E7240000DD0F +:10378A007223DD61240300DD0C240200DD6024F9CC +:10379A0000DD67EF6840D7FB5BDC06CF26FC0FEF46 +:1037AA003240D7FB4CDC06CF26FC0BEF2640D7FB7A +:1037BA0033DC06CF26FC07EF1A40D7FB0BDC06CF1B +:1037CA0026FC03EF0E40D7FB06DC05E526FCEF03DB +:1037DA00F526FC31020705308000EF01F6086F2656 +:1037EA00FC7208EF1E8F23FCF523FC72EF15F928F3 +:1037FA00FCEF107142225235EF09F2EF06667309A7 +:10380A0022FC72C6D7C71617F1E7240000DD382458 +:10381A001000DD1C23DD1C23DD30240E00DD1824FE +:10382A001100DD1B240F00DD12243000DD15EF1E10 +:10383A00E2EF1D5202EF195204EF155206EF115230 +:10384A0005EF0D5207EF09F2EF065203EF0252FF9E +:10385A00C6D7C7300A39FDF73A8F10FDB010FDD12F +:10386A0061E8ED0839CF10FD0731642177716321D2 +:10387A00401AF903DF6E3608FDC7D933FCFDCF398C +:10388A00618A70618AFDFE39C0360CFDC7D932FCE7 +:10389A00FDCF39618A70618AFDFE39C0D936FCF1E3 +:1038AA00312F609F35FC8FF1FB5C80D1DD088FF1F1 +:1038BA00FB5C3F9F35FC8F3AFC4F35FCDD268F358C +:1038CA00FC9F3AFC7173218F35FC9FD5FBE935FCCF +:1038DA00090E239F34FCD935FCF11231FE03311F46 +:1038EA00609F28FC7150F000CE300BCF170006CE37 +:1038FA003106FD2603717A30710BE3710BE7C6D7E7 +:10390A00C72004FBF8FF3174210E8F28FC5002D621 +:10391A0012490E239C02EF058F34FC9C025013C1FE +:10392A0050A4FD4A03C08C0270C15013C150A4FDBB +:10393A00E60310045013C150A4FD4A03C0F2100458 +:10394A00C6D7C7168B728C01614ADE248B728C0231 +:10395A00614ADE188C01728C02614ADE068C0131E2 +:10396A008EEF048C02318E087208EF268B72EF22DA +:10397A008B728C02614ADE048B72EF168C01728C98 +:10398A00026142DE068C01318EEF048C02318E0810 +:10399A007208C6D7C716710AE7710BE37150F000B7 +:1039AA00CE300BCF170006669E31FD2603717A30A2 +:1039BA00710BE33182E302EFFA8D1F7158F0007147 +:1039CA000BE772C6D7C7C1C1FBF8FF8C024CF6DC05 +:1039DA000452FFEF1B8C024C0BDE03F2EF128C0237 +:1039EA002C0A9C02318E318D52ECFD700EBB8B720B +:1039FA001004C6D7C7C1C1FBF8FFAC0A14A91489C1 +:103A0A00708C026128706131FD56201344030071E5 +:103A1A00FEDC16AC0A14A9148C0299AC0A14CA0268 +:103A2A0000AC0A14CA0310EF6EAC0A14A914894E2A +:103A3A0002DE0AAC0A148A02819A02EF13AC0A1453 +:103A4A00A914894E0261D308AC0A148A02919A0217 +:103A5A00AC0A148A03919A03D1DF3CAC0A148A0295 +:103A6A004C10DF10A91489318EA112AC0A14A914C2 +:103A7A006299EF17AC0A148A024CF0DF0EA9148976 +:103A8A00318EB112AC0A14A9146299AC0A14CA0292 +:103A9A0000AC0A14CA03101004C6D7EDE23A717BCF +:103AAA00FAC7D546FC61F831042227710322D546AC +:103ABA00FC61E8B046FC717AFA5600664C0CDD12DD +:103ACA0072F3311C7912FDCEFC0061CAFD413B86BE +:103ADA00EFE9717AFAF2C6D7C75600664C0ADE0BCE +:103AEA00F0317E12F67848FC86EFF0C6D7C7C1C11E +:103AFA00FBF8FFCC01008C014C0ADE36717BFA8C94 +:103B0A0001F0317E0448FC14A96168DF09AC02B9EE +:103B1A00717AFAF2EF1D8C01F0317E127948FC615C +:103B2A004902DF06717AFAE2EF09717AFA615901FC +:103B3A00EFC4E21004C6D7C72004FBF8FFF64248D8 +:103B4A00FC61F8ED393C717BFA9C038C034C0ADE6C +:103B5A004F8C03F0317E0448FC14A96168DF0571BB +:103B6A007AFAEF3C8C03F0317E127948FCE743DFA6 +:103B7A0006717AFA00EF21717AFA8C0372F3311C1A +:103B8A007948FCCEFC0061CA629C02D1DF0A8C0330 +:103B9A00F0317E12E67848FC717BFA615903EFAB8B +:103BAA00CC0200CC01018C02F0317E0448FC14A93D +:103BBA006168DD7B8C02F0317E127948FCE743DFD5 +:103BCA00688C014C0ADE628C01F0317E127948FC65 +:103BDA00E743DD50717BFA8C01F0317E0448FC1416 +:103BEA00A96168DF1B616901717BFA8C01F0317E82 +:103BFA0012F67848FC717AFA8C024E01DCE7EF2F54 +:103C0A008C01F0317E0448FC14A9128C02F0317E3A +:103C1A00337848FC8C01F0317E12E67848FC615911 +:103C2A0002717AFA615901EF98615902EDB03BCC01 +:103C3A000200CC01008C014C0ADE1E8C01F0317EA0 +:103C4A000448FC14A96168DF05CC0201EF068C0266 +:103C5A00D161E800615901EFDCF21004C6D7C72030 +:103C6A0006FBF8FF3411FCC55006C150A8C15030FC +:103C7A00FD74031006D2DD1DA05CFC405CFC08DE6E +:103C8A0003E2EF5A340CFC895CFC99FD313D71105A +:103C9A00DAFBF2EF49F55CFC8F0CFC5C01D1DD2606 +:103CAA00401AF903DF205010C180FDC136C0C73663 +:103CBA00100571D4C6DE0F17C15006C150A8C150F5 +:103CCA0030FD74031006401AF901DD11401AF90596 +:103CDA00DD0B8F0CFC5C02D161E8FD6E43F210062D +:103CEA00C6D7D90DFCC15030FD4A03C0629F10FCF3 +:103CFA007130DDFB8FE5FB5C08D1DF06716307716C +:103D0A006B27F2D7D910FCC1D90FFCC15030FDE6A0 +:103D1A000310047130DDFB8FE5FB5C08D1DF06710F +:103D2A006307716B27F2D7C7200AFBF8FF500FC150 +:103D3A005030FD4A03C0403FFB02DF077110DAFB37 +:103D4A00F2EF547118DAFBCC0700CC0812CC0980C8 +:103D5A008F0CFC5C03D1DF08717AD5CC0607EF061D +:103D6A00717BD5CC062F17040600C15004C150A0A0 +:103D7A00C15030FD1C041006C736100571D4C6DECA +:103D8A0015401AF903DF0F17C15006C150A8C150D8 +:103D9A0030FD74031006F2100AC6D7C78F1AF9311C +:103DAA008F24020061F8F560FC8F2AFDB02AFDD14C +:103DBA0061E8ED803ECF2AFD048F1AF9318FE7239F +:103DCA00DD0B24020024030061C8ED803E4060FC44 +:103DDA0002DF0AE0C15010FDC136C0EF134060FC9B +:103DEA00FADF0D5002C15010FDC136C0E6BF1EF900 +:103DFA0031340708712322F560FCEF1531242205BE +:103E0A00F560FCEF0CA060FCD560FC61F8CF60FCAB +:103E1A00FF8F1DF9318FE723DD07B12361D30CEF43 +:103E2A001236100571C4713122EF0B71040271311F +:103E3A0022EF037132223132221A4061FC0361D827 +:103E4A00A061FC4061FC02DF0E5004C15010FDC1AC +:103E5A0036C0EF03F561FC314207184062FC03618A +:103E6A00D8A062FC4062FC02DF0C5010C1FDC136D2 +:103E7A00C0EF03F562FCC6D7C7401AF902C6D7C716 +:103E8A002004FBF8FF401AF90361E8401AF904100C +:103E9A0004C6D7C78F0CFC5C03D1DD11361005713F +:103EAA00D4DE0A30683CFDF73AD261F800401AF9CC +:103EBA0003DF1B31220707306626FDF73A0031443B +:103ECA00220C7143225080C15012FDC136C0401AE3 +:103EDA00F903DD05F6BD1AEF25D5F8FBDF09F6462D +:103EEA001ADD1BB61AEF17D9F4FBF1461ADD0FD902 +:103EFA00F4FB12AD1A43DE04A61AEF02B61AC6D7AD +:103F0A008FECFB5C10D161E87162228FECFB5C0FD5 +:103F1A00D1DD6C8FECFB5C01D1DD05F51AF9EF5FA1 +:103F2A008FECFB5C02D1DD15E0C15003C15084FD6A +:103F3A00E6031004711300711B207103038FECFB5D +:103F4A005C08D1DD05710303EF1C8FECFB5C04D127 +:103F5A00DD14711300711B203154220371030334E1 +:103F6A0025FC895CFC995005FD94027102035003FB +:103F7A00C1C15084FDE6031004711A20715322F561 +:103F8A00ECFBF2D7C7364105718461D8ED3D403666 +:103F9A0041057194DE0771405005CEABAC31B2D108 +:103FAA0004E2ED4C40713BD18F14F9A014F9318E23 +:103FBA00E7240000DD1723DD1C23DD2723DD2C2366 +:103FCA00DD3823DD4423DD4923DD4EEF668F1DF9FD +:103FDA009F4005EF58F0C15084FD4A03C0629F40DC +:103FEA0005EF4A8FFEFC9F4005EF425008C1506C16 +:103FFA00FD4A03C0629F4005EF335009C1506CFD72 +:10400A004A03C0629F4005EF248F66FC9F4005EF7C +:10401A001C8F02F99F4005EF14F171042061DC3115 +:10402A001970F171142061DC61689F4005CEABAC58 +:10403A00E2EF0F7160500571485005713BD5F514D8 +:10404A00F9F2C6D7C78F1AF9318FE724000061F851 +:10405A00EDFD4123DD1B2361F8ED11412361F8EDEC +:10406A009B412361F8EDD8412361F8ED6742EDC722 +:10407A0042D51BF9DF28D560FCDD05F52FFDEF03DE +:10408A00A02FFD402FFD65DC09F51AF9710222ED1A +:10409A00CA424060FC0A61D8EDCA42E51BF97122A6 +:1040AA0022F52FFDF5EFFBFD4105FD1628401DF910 +:1040BA0004DF09710222F51AF9EDCA42FD982AD5E0 +:1040CA00D7FBDF1BD9D9FBF1BDD8F6BDDAC9DC00B5 +:1040DA009BFDF90EDE09710222F51AF9EDCA42FDBD +:1040EA007C25D2DD09710222F51AF9EDCA42401B7C +:1040FA00F901DF05F5F5FBEF04CFF5FB03CF1AF95C +:10410A0002FD5125EDCA42CF350002CF37001DCF3F +:10411A00120510FD392CFD992C714A9DFD0637FDBB +:10412A00D032F537FF712BE0F51BF9710222CBE48F +:10413A003FEFCBE6F6F0FD4105713BD48F1CF93118 +:10414A0035305004C15084FD4A03C0625C03318E8D +:10415A00315D34DBFB896168995002C15084FD4AA4 +:10416A0003C0D2DD067170DBFBEF047178DBFBFD67 +:10417A001628FD502D71381CF9CF1AF9038FCEFB82 +:10418A005C02D1DD095080C15010FDC136C0EDCAB4 +:10419A0042FDCC4231A4E020712BE031020C05FD36 +:1041AA005643EF145027C15005C15084FDE6031051 +:1041BA0004CF1AF9047102223164220CA02EFD40A8 +:1041CA002EFDFF61F8FD5643FD3943EDCA42FDCC91 +:1041DA004231020C18F0C15005C15084FDE60310AB +:1041EA00045005FD9402FD5643CF1AF903FD3943E5 +:1041FA00EDCA42CFF5FB03F5F6FB717220F6426C6D +:10420A00FF61E8EDCA42F5F8FBF6BF1EF9FDC52DC0 +:10421A00FD902CFDEE2C714B9DF5DCFBF5DDFBF5DD +:10422A00DEFBF5DFFB31442002EFFACE3708CBE4A0 +:10423A00BFFFCBE6FFF1CED4FFCF370009F5120559 +:10424A00F6BEE0BEE2BED0716A27FD2726FD112C1C +:10425A00F52FFDCF1AF905712222F560FC3104070A +:10426A0006FD1E2CD2DF1BFD4105FD16284060FC11 +:10427A000ADC06E51BF9E51AF931020743FD112CA0 +:10428A00EF3EF51BF971730171320431120502EF29 +:10429A00FA71430231949E02EFFAFDAA05712AE7E8 +:1042AA00CEA409F5F30061FD31040703712322E569 +:1042BA00F300CEA408712BE7E51AF9EF0300EFFD2E +:1042CA00C6D7D568FCDF1E310200195003C15084DD +:1042DA00FD4A03C0625C01D1DF07F51AF9710222B7 +:1042EA00D7E568FCD74068FCF0DF083104003FF5E9 +:1042FA0068FCD74068FCC8DF0BF51AF9710222CFB7 +:10430A0068FCF0D731020004A068FCD7F0C1500461 +:10431A00C15084FDE60310048FDBFB5C9F9FDBFB2F +:10432A007110ECFB300A3FFDF73ACF68FCF0D7F684 +:10433A00421EF9DD16A21EF98FF0FB5040D612AFCD +:10434A001EF943DC06F51AF9710222D7716322F5C8 +:10435A002EFD717207FD2603FD2603717307D7FD33 +:10436A00D005F2D7C7200CFBF8FF8F12FCF0F91129 +:10437A00FCF303FD562013BC048F14FCF0F913FC64 +:10438A00F303FD562013BC028F16FCF0F915FCF35B +:10439A0003FD562013BBAC04BDD8F6BDDAAC04311C +:1043AA001EBDDCF6BDDEFD2E0DADD8BDDCADDABD21 +:1043BA00DEAC02BDD8F6BDDAAC02311EDADCC3DAF5 +:1043CA00DEC3BDDCF6BDDEFD2E0DC0BDDEC0BDDC2C +:1043DA00ADDEFDA40EADD8BDDCADDABDDEABBDD819 +:1043EA00F6BDDAAB311EDADCC3DADEC3BDDCF6BDFC +:1043FA00DEFD2E0DC0BDDEC0BDDCADDEFDA40EDAD5 +:10440A00DAADD8FD8E47C3C58FF6FC5C3FF0317E2E +:10441A000476FC14C2C0B9A0F6FCF6BC08BC0A9C1F +:10442A00078C074C2EDD3E8FF6FC0E0770F161DC1F +:10443A00605C3FF0317E127976FCBDD8F6BDDA8C2D +:10444A000773095023318FBDDC70BDDEFD2E0DAC24 +:10445A0008BDDCAC0AFDA40EADDABC0AADD8BC08B6 +:10446A00615907EFBCAC08BDD8AC0ABDDAC9DC009B +:10447A0004F6FDF80DC9DCFFFFF6FD0D0FADD8BF40 +:10448A0070FCAF6AFC4270FCDD12AF6CFCBF6EFCC4 +:10449A00AF6AFCBF6CFCAF70FCBF6AFCAF6CFC423D +:1044AA006EFCDC50AF6AFC426CFCDE48AF30FD4269 +:1044BA006AFCDE404072FC16DC1F4072FCA0DE166D +:1044CA008F73FC4F72FCDE0EAF6AFC2274FC4469E7 +:1044DA001061C8FD4745F572FCAF6AFC445146DCE1 +:1044EA000BAF6AFC241027BF32FDEF1930F82ABF40 +:1044FA0032FDEF114072FCFFDD03E6EF01F6347284 +:10450A00FC89610899AF6EFC426CFCDC1BAF6CFC49 +:10451A00426AFCDE13AF6AFC4232FDDE0BF573FC25 +:10452A00AF6AFCBF74FCEF114073FCFFDD03E6EFDA +:10453A0001F63473FC89610899100CC6D7C72008A4 +:10454A00FBF8FFA017FCD517FCDF1CA018FCD51838 +:10455A00FCDF14A019FCD519FCDF0CCF17FCFFCF28 +:10456A0018FCFFCF19FCFF717BFA710A9E31929EEB +:10457A0002EFFA8E98FD210F9C058E949F34FD8ED2 +:10458A00969F35FD8E979F36FD8E939C048E929C46 +:10459A0003FD204713BC068F37FD4E05DF12AFF827 +:1045AA00FC614906DE41AC0622F8FCFD4346EF37C2 +:1045BA008C05318EB112D937FDF143DF1F8C055CB2 +:1045CA000391DF03E6EF01F6046D01313D120103A9 +:1045DA0022F8FC610906BBFD4346EF0B8F37FD4EFF +:1045EA0005DE04F6FD43468C059F37FDAC06BFF891 +:1045FA00FC8FF7FC9C028C044F1CFCDE138C034FCF +:10460A001DFCDE0C6169028C024CA861C8CC02A7B1 +:10461A008C02F0317E0420F914A944FFFFDF04E67E +:10462A00B9EF128C02F0317E0420F914A944FEFF7E +:10463A00DD03A9A1B91008C6D7C7161744A9006196 +:10464A00C836A800A0F7FC40F7FCA861C8F5F7FC3B +:10465A00F9F7FCF3311CF67820F9B7F647DFE5C61F +:10466A00D7C756A89666F0317E12F6B17820F96659 +:10467A00D1DFF1F517FCF518FCF519FCF5F7FCC6C6 +:10468A00D7717322D7C72004FBF8FFD914F9F1E7D1 +:10469A00240000DD1123DD1C23DD2123DD2623DD9B +:1046AA002F23DD33EF388FF7FC9FFAFCA014F9F9BA +:1046BA0034FDEF5EA014F9F935FDEF56A014F9F9AF +:1046CA0036FDEF4EA014F98F37FDFD3B0F72EF4216 +:1046DA00A014F95255EF3BA014F952AAEF34F9FA93 +:1046EA00FCF3311C7920F9BB317222058B9C03EF54 +:1046FA00128C019C03D5FAFCDF06CFFAFCA7EF0364 +:10470A00B0FAFC718071772261DC61FB7171228CD5 +:10471A0003721004C6D7C72006FBF8FF8E98FD2146 +:10472A000F9C038E97FD210F9C028E96FD210F9CF4 +:10473A00018E94FD210F9B710B9E717AFA8C02F007 +:10474A00317E12798023BC048C035C03D1DF158C83 +:10475A00024C03DE0C8C024C02DF098C014C1D61F9 +:10476A00F86179048C01318EB1610904BC04313DD0 +:10477A00120103BC048C040D708C051C00BC0412CD +:10478A001006C6D7C7C3C12008FBF8FFF661490A5D +:10479A0061F8614908DF07F7340000ED2B48E6BCF1 +:1047AA0004F6BC06AC0ABC02AC08BBAC0661490202 +:1047BA00AC0461F8614900DE28AC04BDD8AC06BD82 +:1047CA00DAE1FDB30EADDABC06ADD8BC04ABBDD898 +:1047DA00AC02BDDAE1FDCE0EADDABC02ADD8BBEF5C +:1047EA00CAAC06BC02AC04BBAC08BDD8AC0ABDDA84 +:1047FA00AC04BDDCAC06FD310EAC04BDDCAC06FD80 +:10480A00A40EE1FDCE0EADDABC06ADD8BC04AC06F2 +:10481A00614902AC0461F8614900DCC5AC0214AB21 +:10482A0012100CC6D7C7D538FDDD05B038FDEF78B4 +:10483A00CF38FD02311407067110DBFBEF04711843 +:10484A00DBFB8FDBFB7FFCFC76D1DD5C8FDBFB9F28 +:10485A00FCFC401AF903DF22665C10D1DD1C8FDBF9 +:10486A00FB5C10D1DD0B5080C15011FDC136C0EF89 +:10487A00095040C15011FDC136C0401AF903DD0686 +:10488A00401AF904DF22665C02D1DD1C8FDBFB5C77 +:10489A0002D1DD0B5040C15010FDC136C0EF0950A6 +:0A48AA0020C15010FDC136C0C6D772 +:1048B400CF0BF90461FC61FCC1C3C5C7520C9292D1 +:1048C40069D4FEC1DFF88EFD708EFCC1717AFA40A6 +:1048D4001AF903DF06306626FDF73AC09EFC609E97 +:1048E400FD34D4FE5206C0B9A5A592DFF9C6C4C2F0 +:1048F400C061FC61DF520C929269D4FEC1DFF88E74 +:10490400FD708EFCC1717AFAC736410571A4C6DC0C +:1049140041F500FD71485005716050053154212660 +:10492400716207715321D5DCFBDF0FD5DDFBDF0A94 +:10493400D5DEFBDF05D5DFFBDD0C31620702EFFAC4 +:10494400716307716B27FD8B46FD8032F514F9ED19 +:10495400664AC73641057184C6DE0DF500FD71480F +:104964005005FD8032ED664AC73641057194C6DEB6 +:10497400154000FD03DD0C4000FD04DD064000FD94 +:104984000161F8F500FDD900FDF1E7240000DD0820 +:1049940023DD1323DD39EF6071405005E500FD711F +:1049A400505005ED664A8F40059F15F99F18F9D9B7 +:1049B40015F9FD1F36629F17F94015F97FDD06CF03 +:1049C40000FD02EF03F500FD71505005ED664AC786 +:1049D4003641057194C6DE1CC736410571C4C6DE76 +:1049E40006CF00FD03EF11F500FD7148500571601D +:1049F4005005EF6ECF00FD044000FD03DF0E8F175E +:104A0400F99F4005D915F9FD9E36EF108F400576C4 +:104A1400C7D915F9FDFA32C071505005D918F9F10A +:104A2400242900DD2D240400DD28242200DD232494 +:104A34001100DD0C240100DD19241E00DD14EF0C2F +:104A44004015F960DF0CCF15F961EF06F514F9A0F4 +:104A540015F94000FD03DF0AD915F9FD1F36629FE1 +:104A640017F9C09EFC609EFD34D4FE5206C0B9A561 +:104A7400A592DFF961FCC1C3C5C7520C929269D4F7 +:104A8400FEC1DFF88EFD708EFCC1F616717AFA71E4 +:104A94004AE5717BBD51405F0401D1DD05A7F647AE +:104AA400DFF3300400BF2401F6BF2A01300B0BBF33 +:104AB4002801FD2603300B0FBF2801FD2603300F0C +:104AC4000FBF2801710AE6714320C09EFC609EFD61 +:104AD40034D4FE5206C0B9A5A592DFF9C6C4C2C03B +:104AE40061FCC1C3C5C7520C929269D4FEC1DFF800 +:104AF4008EFD708EFCC1717AFAD53EFBDD0EEB3C67 +:104B0400FB899E44A23CFBB03EFBEF2B710AE630CE +:104B14000400BF2401F6BF2A01300B0BBF2801FD9E +:104B24002603300B0FBF2801FD2603300F0FBF28CB +:104B340001713320714320C09EFC609EFD34D4FE7D +:104B44005206C0B9A5A592DFF9C6C4C2C061FC6112 +:104B5400EF520C929269D4FEC1DFF88EFD708EFC88 +:104B6400C12008FBF8FF71503002CEABACCC010081 +:104B7400F6BC0231B2E210617902F6614902DFF358 +:104B840071603002ED0A4C8E519B713BE28B5C02EA +:104B9400D1DD1D8B5C08D1DF0971503002CC0100DE +:104BA400EFCE8C0770FD8137629E50CC0102EFC0BE +:104BB4008B5C03D1DF408E509C05715030028C0118 +:104BC400D1DF0E8C0570FD0F38629C07CC0101EF1C +:104BD400328C014C02DF0671603002EF29CF3402BF +:104BE4005A716030028C0570C18C0770FD1437C097 +:104BF400CF34024AEF108B5C01D1DD0671603002C4 +:104C0400EF0400ED744B1008C09EFC609EFD34D48C +:104C1400FE5206C0B9A5A592DFF961FCC18F06FC5E +:104C24004F96FFDF328F07FC4F97FFDF2A8F08FC78 +:104C34004F98FFDF228FE5FB5C04D1DF1A7120DD82 +:104C4400FB716307716B27401AF905DD06401AF9F9 +:104C54000161F8CF1BF902C061FCA046FC61FCC1F4 +:104C6400C3C5C7520C929269D4FEC1DFF88EFD70A1 +:104C74008EFCC1C1FBF8FF8D1F9C018E31318EE784 +:104C8400240600DD0823DD0F23DD25EF45717AFAC4 +:104C94008C019F33FCEF3B717AFA401DF902DF0768 +:104CA4008C019F32FCEF2B51FF2E019F32FCEF222F +:104CB400717AFA8C019F02F98FDAFB5C01D1DF1261 +:104CC400401AF903DD06401AF904DF0630FB29FD1A +:104CD400F73A4031FF09DE08A031FF710BE3EF1909 +:104CE4007158F0007162214044FC02DF03F6EF05C5 +:104CF400D944FCF1A1609F44FCC0C09EFC609EFDB1 +:104D040034D4FE5206C0B9A5A592DFF9C6C4C2C008 +:104D140061FC61FF520C929269D4FEC1DFF88EFDF2 +:104D2400708EFCC1717AFA8F0CFC5C03D1DD1940E2 +:104D34001AF903DD06401AF904DF0D36100571D4A3 +:104D4400DE0630683CFDF73AC09EFC609EFD34D41C +:104D5400FE5206C0B9A5A592DFF961FC61FC00EF23 +:104D6400FD61FC61FC61FC61FC61FC61FC61FC6156 +:104D7400FC61FC61FC61FC61FC61FC61FC61FC6147 +:104D8400FC61FC61FC61FC61FC61FC61FC61FC6137 +:074D9400FC61FC61FC61FC05 +:0A4FF60031373A34363A3533000003 :00000001FF  \ No newline at end of file diff --git a/trunk/bsr.lmf b/trunk/bsr.lmf index 09c4699..b8c1a58 100644 Binary files a/trunk/bsr.lmf and b/trunk/bsr.lmf differ diff --git a/trunk/bsr_k0r.map b/trunk/bsr_k0r.map index dba1e71..1955671 100644 --- a/trunk/bsr_k0r.map +++ b/trunk/bsr_k0r.map @@ -1,7 +1,7 @@ -78K0R Linker W1.31 Date:30 Jun 2010 Page: 1 +78K0R Linker W1.31 Date: 6 Jul 2010 Page: 1 Command: -yC:\Program Files\NEC Electronics Tools\DEV -_msgoff -obsr.l mf ..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10 @@ -23,9 +23,9 @@ Direc-file:bsr_mcu.dr *** Link information *** - 67 output segment(s) - 3B86H byte(s) real data - 5270 symbol(s) defined + 66 output segment(s) + 3BC8H byte(s) real data + 5417 symbol(s) defined *** Memory map *** @@ -90,54 +90,51 @@ Direc-file:bsr_mcu.dr 000C4H 00000H ?CSEGSI 000C4H 0000AH CSEG ?OCDSTAD 000CEH 0000AH CSEG - LDR_CODE 000D8H 006F0H CSEG - LDR_CODE loader 000D8H 0018BH - LDR_CODE main 00263H 0006AH - LDR_CODE WDT 002CDH 00000H - LDR_CODE i2c_mcu 002CDH 002BCH + LDR_CODE 000D8H 008B6H CSEG + LDR_CODE loader 000D8H 001E0H + LDR_CODE main 002B8H 0006EH + LDR_CODE WDT 00326H 00000H + LDR_CODE i2c_mcu 00326H 002AAH LDR_CODE self_flash - 00589H 0023FH - @@LCODE 007C8H 00386H CSEG - @@LCODE @cstart 007C8H 0006DH - @@LCODE @imul 00835H 00011H - @@LCODE @lumul 00846H 0002BH - @@LCODE @isdiv 00871H 00022H - @@LCODE @iudiv 00893H 0002DH - @@LCODE @isrem 008C0H 00021H - @@LCODE @iurem 008E1H 0002FH - @@LCODE @lsdiv 00910H 00039H - @@LCODE @ludiv 00949H 0003FH - @@LCODE @ladd 00988H 0000FH - @@LCODE @llsh 00997H 0001BH - @@LCODE @lursh 009B2H 0001FH - @@LCODE @iscmp 009D1H 0000CH - @@LCODE @lband 009DDH 00014H - @@LCODE @bcdtob 009F1H 0001AH - @@LCODE @bbcd 00A0BH 00024H - @@LCODE m_fcmp 00A2FH 00073H - @@LCODE m_fcom5 00AA2H 0002AH - @@LCODE m_fcom6 00ACCH 0001FH - @@LCODE m_lstof 00AEBH 00016H - @@LCODE m_lutof 00B01H 0004DH - FSL_CODE 00B4EH 00322H CSEG + 005D0H 003BEH + FSL_CODE 0098EH 00322H CSEG FSL_CODE fsl_block_cmd - 00B4EH 0002BH + 0098EH 0002BH FSL_CODE fsl_block_check - 00B79H 00013H + 009B9H 00013H FSL_CODE fsl_common - 00B8CH 0014FH + 009CCH 0014FH FSL_CODE fsl_reset - 00CDBH 00001H + 00B1BH 00001H FSL_CODE fsl_si_ibf - 00CDCH 00064H + 00B1CH 00064H FSL_CODE fsl_phySwap - 00D40H 0004DH + 00B80H 0004DH FSL_CODE fsl_si_common - 00D8DH 00061H - FSL_CODE fsl_swap 00DEEH 00030H + 00BCDH 00061H + FSL_CODE fsl_swap 00C2EH 00030H FSL_CODE fsl_write - 00E1EH 00052H -* gap * 00E70H 00186H + 00C5EH 00052H + @@LCODE 00CB0H 002AFH CSEG + @@LCODE @cstart 00CB0H 0006DH + @@LCODE @imul 00D1DH 00011H + @@LCODE @lumul 00D2EH 0002BH + @@LCODE @isdiv 00D59H 00022H + @@LCODE @iudiv 00D7BH 0002DH + @@LCODE @isrem 00DA8H 00021H + @@LCODE @iurem 00DC9H 0002FH + @@LCODE @lsdiv 00DF8H 00039H + @@LCODE @ludiv 00E31H 0003FH + @@LCODE @divuw 00E70H 00034H + @@LCODE @ladd 00EA4H 0000FH + @@LCODE @llsh 00EB3H 0001BH + @@LCODE @lursh 00ECEH 0001FH + @@LCODE @iscmp 00EEDH 0000CH + @@LCODE @lscmp 00EF9H 00014H + @@LCODE @lband 00F0DH 00014H + @@LCODE @bcdtob 00F21H 0001AH + @@LCODE @bbcd 00F3BH 00024H +* gap * 00F5FH 00097H MGC_LOAD 00FF6H 0000AH CSEG AT MGC_LOAD magic 00FF6H 0000AH @@ -189,125 +186,154 @@ Direc-file:bsr_mcu.dr @@CNSTL @bcdtob 02000H 0000AH @@CNSTL 0200AH 00010H CSEG PAGE64KP @@CNSTL @bbcd 0200AH 00010H - @@CNSTL 0201AH 000CEH CSEG PAGE64KP - @@CNSTL m_fcom5 0201AH 000CEH - @@R_INIS 020E8H 00000H CSEG UNIT64KP - @@R_INIS @cstart 020E8H 00000H - @@R_INIS loader 020E8H 00000H - @@R_INIS pm 020E8H 00000H - @@R_INIS i2c_ctr 020E8H 00000H - @@R_INIS main 020E8H 00000H - @@R_INIS magic 020E8H 00000H - @@R_INIS WDT 020E8H 00000H - @@R_INIS i2c_mcu 020E8H 00000H - @@R_INIS i2c_twl 020E8H 00000H - @@R_INIS led 020E8H 00000H - @@R_INIS rtc 020E8H 00000H - @@R_INIS vreg_ctr 020E8H 00000H - @@R_INIS vreg_twl 020E8H 00000H - @@R_INIS adc 020E8H 00000H - @@R_INIS renge 020E8H 00000H - @@R_INIS accero 020E8H 00000H + @@R_INIT 0201AH 0003CH CSEG UNIT64KP + @@R_INIT @cstart 0201AH 00000H + @@R_INIT loader 0201AH 00000H + @@R_INIT pm 0201AH 00002H + @@R_INIT i2c_ctr 0201CH 00002H + @@R_INIT main 0201EH 00000H + @@R_INIT magic 0201EH 00000H + @@R_INIT WDT 0201EH 00000H + @@R_INIT i2c_mcu 0201EH 00000H + @@R_INIT i2c_twl 0201EH 00000H + @@R_INIT led 0201EH 00006H + @@R_INIT rtc 02024H 00000H + @@R_INIT vreg_ctr 02024H 00000H + @@R_INIT vreg_twl 02024H 00000H + @@R_INIT adc 02024H 0000AH + @@R_INIT renge 0202EH 00018H + @@R_INIT accero 02046H 00000H + @@R_INIT self_flash + 02046H 00000H + @@R_INIT sw 02046H 00002H + @@R_INIT task_debug + 02048H 00002H + @@R_INIT task_misc + 0204AH 00000H + @@R_INIT task_sys 0204AH 00002H + @@R_INIT pedo_alg_thre_det2 + 0204CH 00008H + @@R_INIT ini_VECT 02054H 00000H + @@R_INIT task_status + 02054H 00002H + @@R_INIT @rom 02056H 00000H + @@R_INIS 02056H 00000H CSEG UNIT64KP + @@R_INIS @cstart 02056H 00000H + @@R_INIS loader 02056H 00000H + @@R_INIS pm 02056H 00000H + @@R_INIS i2c_ctr 02056H 00000H + @@R_INIS main 02056H 00000H + @@R_INIS magic 02056H 00000H + @@R_INIS WDT 02056H 00000H + @@R_INIS i2c_mcu 02056H 00000H + @@R_INIS i2c_twl 02056H 00000H + @@R_INIS led 02056H 00000H + @@R_INIS rtc 02056H 00000H + @@R_INIS vreg_ctr 02056H 00000H + @@R_INIS vreg_twl 02056H 00000H + @@R_INIS adc 02056H 00000H + @@R_INIS renge 02056H 00000H + @@R_INIS accero 02056H 00000H @@R_INIS self_flash - 020E8H 00000H - @@R_INIS sw 020E8H 00000H + 02056H 00000H + @@R_INIS sw 02056H 00000H @@R_INIS task_debug - 020E8H 00000H + 02056H 00000H @@R_INIS task_misc - 020E8H 00000H - @@R_INIS task_sys 020E8H 00000H + 02056H 00000H + @@R_INIS task_sys 02056H 00000H @@R_INIS pedo_alg_thre_det2 - 020E8H 00000H - @@R_INIS ini_VECT 020E8H 00000H + 02056H 00000H + @@R_INIS ini_VECT 02056H 00000H @@R_INIS task_status - 020E8H 00000H - @@R_INIS @rom 020E8H 00000H - @@CALT 020E8H 00000H CSEG - @@CALT @cstart 020E8H 00000H - @@CALT loader 020E8H 00000H - @@CALT pm 020E8H 00000H - @@CALT i2c_ctr 020E8H 00000H - @@CALT main 020E8H 00000H - @@CALT magic 020E8H 00000H - @@CALT WDT 020E8H 00000H - @@CALT i2c_mcu 020E8H 00000H - @@CALT i2c_twl 020E8H 00000H - @@CALT led 020E8H 00000H - @@CALT rtc 020E8H 00000H - @@CALT vreg_ctr 020E8H 00000H - @@CALT vreg_twl 020E8H 00000H - @@CALT adc 020E8H 00000H - @@CALT renge 020E8H 00000H - @@CALT accero 020E8H 00000H + 02056H 00000H + @@R_INIS @rom 02056H 00000H + @@CALT 02056H 00000H CSEG + @@CALT @cstart 02056H 00000H + @@CALT loader 02056H 00000H + @@CALT pm 02056H 00000H + @@CALT i2c_ctr 02056H 00000H + @@CALT main 02056H 00000H + @@CALT magic 02056H 00000H + @@CALT WDT 02056H 00000H + @@CALT i2c_mcu 02056H 00000H + @@CALT i2c_twl 02056H 00000H + @@CALT led 02056H 00000H + @@CALT rtc 02056H 00000H + @@CALT vreg_ctr 02056H 00000H + @@CALT vreg_twl 02056H 00000H + @@CALT adc 02056H 00000H + @@CALT renge 02056H 00000H + @@CALT accero 02056H 00000H @@CALT self_flash - 020E8H 00000H - @@CALT sw 020E8H 00000H + 02056H 00000H + @@CALT sw 02056H 00000H @@CALT task_debug - 020E8H 00000H + 02056H 00000H @@CALT task_misc - 020E8H 00000H - @@CALT task_sys 020E8H 00000H + 02056H 00000H + @@CALT task_sys 02056H 00000H @@CALT pedo_alg_thre_det2 - 020E8H 00000H - @@CALT ini_VECT 020E8H 00000H + 02056H 00000H + @@CALT ini_VECT 02056H 00000H @@CALT task_status - 020E8H 00000H - @@RLINIT 020E8H 00000H CSEG UNIT64KP - @@RLINIT loader 020E8H 00000H - @@RLINIT pm 020E8H 00000H - @@RLINIT i2c_ctr 020E8H 00000H - @@RLINIT main 020E8H 00000H - @@RLINIT magic 020E8H 00000H - @@RLINIT WDT 020E8H 00000H - @@RLINIT i2c_mcu 020E8H 00000H - @@RLINIT i2c_twl 020E8H 00000H - @@RLINIT led 020E8H 00000H - @@RLINIT rtc 020E8H 00000H - @@RLINIT vreg_ctr 020E8H 00000H - @@RLINIT vreg_twl 020E8H 00000H - @@RLINIT adc 020E8H 00000H - @@RLINIT renge 020E8H 00000H - @@RLINIT accero 020E8H 00000H + 02056H 00000H + @@RLINIT 02056H 00000H CSEG UNIT64KP + @@RLINIT loader 02056H 00000H + @@RLINIT pm 02056H 00000H + @@RLINIT i2c_ctr 02056H 00000H + @@RLINIT main 02056H 00000H + @@RLINIT magic 02056H 00000H + @@RLINIT WDT 02056H 00000H + @@RLINIT i2c_mcu 02056H 00000H + @@RLINIT i2c_twl 02056H 00000H + @@RLINIT led 02056H 00000H + @@RLINIT rtc 02056H 00000H + @@RLINIT vreg_ctr 02056H 00000H + @@RLINIT vreg_twl 02056H 00000H + @@RLINIT adc 02056H 00000H + @@RLINIT renge 02056H 00000H + @@RLINIT accero 02056H 00000H @@RLINIT self_flash - 020E8H 00000H - @@RLINIT sw 020E8H 00000H + 02056H 00000H + @@RLINIT sw 02056H 00000H @@RLINIT task_debug - 020E8H 00000H + 02056H 00000H @@RLINIT task_misc - 020E8H 00000H - @@RLINIT task_sys 020E8H 00000H + 02056H 00000H + @@RLINIT task_sys 02056H 00000H @@RLINIT pedo_alg_thre_det2 - 020E8H 00000H - @@RLINIT ini_VECT 020E8H 00000H + 02056H 00000H + @@RLINIT ini_VECT 02056H 00000H @@RLINIT task_status - 020E8H 00000H - @@RLINIT @rom 020E8H 00000H - @@CODEL 020E8H 00000H CSEG - @@CODEL pm 020E8H 00000H - @@CODEL i2c_ctr 020E8H 00000H - @@CODEL magic 020E8H 00000H - @@CODEL i2c_twl 020E8H 00000H - @@CODEL led 020E8H 00000H - @@CODEL rtc 020E8H 00000H - @@CODEL vreg_ctr 020E8H 00000H - @@CODEL vreg_twl 020E8H 00000H - @@CODEL adc 020E8H 00000H - @@CODEL renge 020E8H 00000H - @@CODEL accero 020E8H 00000H - @@CODEL sw 020E8H 00000H + 02056H 00000H + @@RLINIT @rom 02056H 00000H + @@CODEL 02056H 00000H CSEG + @@CODEL pm 02056H 00000H + @@CODEL i2c_ctr 02056H 00000H + @@CODEL magic 02056H 00000H + @@CODEL i2c_twl 02056H 00000H + @@CODEL led 02056H 00000H + @@CODEL rtc 02056H 00000H + @@CODEL vreg_ctr 02056H 00000H + @@CODEL vreg_twl 02056H 00000H + @@CODEL adc 02056H 00000H + @@CODEL renge 02056H 00000H + @@CODEL accero 02056H 00000H + @@CODEL sw 02056H 00000H @@CODEL task_debug - 020E8H 00000H + 02056H 00000H @@CODEL task_misc - 020E8H 00000H - @@CODEL task_sys 020E8H 00000H + 02056H 00000H + @@CODEL task_sys 02056H 00000H @@CODEL pedo_alg_thre_det2 - 020E8H 00000H - @@CODEL ini_VECT 020E8H 00000H + 02056H 00000H + @@CODEL ini_VECT 02056H 00000H @@CODEL task_status - 020E8H 00000H - @@LCODEL 020E8H 00008H CSEG - @@LCODEL abs 020E8H 00008H -* gap * 020F0H 00010H + 02056H 00000H + @@LCODEL 02056H 00008H CSEG + @@LCODEL abs 02056H 00008H +* gap * 0205EH 000A2H MGC_MIMI 02100H 0000AH CSEG AT MGC_MIMI magic 02100H 0000AH @@CNST 0210AH 00290H CSEG @@ -340,88 +366,57 @@ Direc-file:bsr_mcu.dr @@CNST ini_VECT 0239AH 00000H @@CNST task_status 0239AH 00000H - ROM_CODE 0239AH 024F0H CSEG - ROM_CODE pm 0239AH 00889H - ROM_CODE i2c_ctr 02C23H 00060H - ROM_CODE i2c_twl 02C83H 0005EH - ROM_CODE led 02CE1H 004FBH - ROM_CODE rtc 031DCH 000E0H - ROM_CODE vreg_ctr 032BCH 00444H - ROM_CODE vreg_twl 03700H 00155H - ROM_CODE adc 03855H 001EAH - ROM_CODE renge 03A3FH 001EDH - ROM_CODE accero 03C2CH 0013DH - ROM_CODE sw 03D69H 000DDH + ROM_CODE 0239AH 0251AH CSEG + ROM_CODE pm 0239AH 0089FH + ROM_CODE i2c_ctr 02C39H 00060H + ROM_CODE i2c_twl 02C99H 0005EH + ROM_CODE led 02CF7H 004E8H + ROM_CODE rtc 031DFH 000E0H + ROM_CODE vreg_ctr 032BFH 00447H + ROM_CODE vreg_twl 03706H 00156H + ROM_CODE adc 0385CH 00249H + ROM_CODE renge 03AA5H 001C3H + ROM_CODE accero 03C68H 0013DH + ROM_CODE sw 03DA5H 000DDH ROM_CODE task_debug - 03E46H 0001BH + 03E82H 0001BH ROM_CODE task_misc - 03E61H 001B1H - ROM_CODE task_sys 04012H 00332H + 03E9DH 001B1H + ROM_CODE task_sys 0404EH 00320H ROM_CODE pedo_alg_thre_det2 - 04344H 004C1H + 0436EH 004C1H ROM_CODE task_status - 04805H 00085H - @@BASE 0488AH 004F0H CSEG BASE - @@BASE loader 0488AH 00000H - @@BASE pm 0488AH 00043H - @@BASE i2c_ctr 048CDH 00183H - @@BASE main 04A50H 00000H - @@BASE magic 04A50H 00000H - @@BASE WDT 04A50H 00000H - @@BASE i2c_mcu 04A50H 000D9H - @@BASE i2c_twl 04B29H 000CDH - @@BASE led 04BF6H 00000H - @@BASE rtc 04BF6H 00043H - @@BASE vreg_ctr 04C39H 00000H - @@BASE vreg_twl 04C39H 00000H - @@BASE adc 04C39H 000BFH - @@BASE renge 04CF8H 00000H - @@BASE accero 04CF8H 0004AH + 0482FH 00085H + @@BASE 048B4H 004E7H CSEG BASE + @@BASE loader 048B4H 00000H + @@BASE pm 048B4H 00043H + @@BASE i2c_ctr 048F7H 00183H + @@BASE main 04A7AH 00000H + @@BASE magic 04A7AH 00000H + @@BASE WDT 04A7AH 00000H + @@BASE i2c_mcu 04A7AH 000D9H + @@BASE i2c_twl 04B53H 000CDH + @@BASE led 04C20H 00000H + @@BASE rtc 04C20H 00043H + @@BASE vreg_ctr 04C63H 00000H + @@BASE vreg_twl 04C63H 00000H + @@BASE adc 04C63H 000B3H + @@BASE renge 04D16H 00000H + @@BASE accero 04D16H 0004AH @@BASE self_flash - 04D42H 00000H - @@BASE sw 04D42H 00000H + 04D60H 00000H + @@BASE sw 04D60H 00000H @@BASE task_debug - 04D42H 00000H + 04D60H 00000H @@BASE task_misc - 04D42H 00000H - @@BASE task_sys 04D42H 00000H + 04D60H 00000H + @@BASE task_sys 04D60H 00000H @@BASE pedo_alg_thre_det2 - 04D42H 00000H - @@BASE ini_VECT 04D42H 00038H + 04D60H 00000H + @@BASE ini_VECT 04D60H 0003BH @@BASE task_status - 04D7AH 00000H - @@R_INIT 04D7AH 0003CH CSEG UNIT64KP - @@R_INIT @cstart 04D7AH 00000H - @@R_INIT loader 04D7AH 00000H - @@R_INIT pm 04D7AH 00002H - @@R_INIT i2c_ctr 04D7CH 00002H - @@R_INIT main 04D7EH 00000H - @@R_INIT magic 04D7EH 00000H - @@R_INIT WDT 04D7EH 00000H - @@R_INIT i2c_mcu 04D7EH 00000H - @@R_INIT i2c_twl 04D7EH 00000H - @@R_INIT led 04D7EH 00006H - @@R_INIT rtc 04D84H 00000H - @@R_INIT vreg_ctr 04D84H 00000H - @@R_INIT vreg_twl 04D84H 00000H - @@R_INIT adc 04D84H 0000AH - @@R_INIT renge 04D8EH 00018H - @@R_INIT accero 04DA6H 00000H - @@R_INIT self_flash - 04DA6H 00000H - @@R_INIT sw 04DA6H 00002H - @@R_INIT task_debug - 04DA8H 00002H - @@R_INIT task_misc - 04DAAH 00000H - @@R_INIT task_sys 04DAAH 00002H - @@R_INIT pedo_alg_thre_det2 - 04DACH 00008H - @@R_INIT ini_VECT 04DB4H 00000H - @@R_INIT task_status - 04DB4H 00002H - @@R_INIT @rom 04DB6H 00000H -* gap * 04DB6H 00240H + 04D9BH 00000H +* gap * 04D9BH 0025BH MGC_TAIL 04FF6H 0000AH CSEG AT MGC_TAIL magic 04FF6H 0000AH @@ -429,7 +424,7 @@ Direc-file:bsr_mcu.dr BASE ADDRESS=FF900H SIZE=00500H OUTPUT INPUT INPUT BASE SIZE SEGMENT SEGMENT MODULE ADDRESS - @@DATA FF900H 003FAH DSEG BASEP + @@DATA FF900H 003FEH DSEG BASEP @@DATA @cstart FF900H 00002H @@DATA loader FF902H 00000H @@DATA pm FF902H 00012H @@ -443,180 +438,180 @@ Direc-file:bsr_mcu.dr @@DATA rtc FFBC4H 00008H @@DATA vreg_ctr FFBCCH 00056H @@DATA vreg_twl FFC22H 00010H - @@DATA adc FFC32H 00012H - @@DATA renge FFC44H 00016H - @@DATA accero FFC5AH 00002H + @@DATA adc FFC32H 00014H + @@DATA renge FFC46H 00016H + @@DATA accero FFC5CH 00002H @@DATA self_flash - FFC5CH 00000H - @@DATA sw FFC5CH 00004H + FFC5EH 00002H + @@DATA sw FFC60H 00004H @@DATA task_debug - FFC60H 00002H + FFC64H 00002H @@DATA task_misc - FFC62H 00002H - @@DATA task_sys FFC64H 00002H + FFC66H 00002H + @@DATA task_sys FFC68H 00002H @@DATA pedo_alg_thre_det2 - FFC66H 00092H - @@DATA ini_VECT FFCF8H 00000H + FFC6AH 00092H + @@DATA ini_VECT FFCFCH 00000H @@DATA task_status - FFCF8H 00002H - @@DATA @rom FFCFAH 00000H - @@INIT FFCFAH 0003CH DSEG BASEP - @@INIT @cstart FFCFAH 00000H - @@INIT loader FFCFAH 00000H - @@INIT pm FFCFAH 00002H - @@INIT i2c_ctr FFCFCH 00002H - @@INIT main FFCFEH 00000H - @@INIT magic FFCFEH 00000H - @@INIT WDT FFCFEH 00000H - @@INIT i2c_mcu FFCFEH 00000H - @@INIT i2c_twl FFCFEH 00000H - @@INIT led FFCFEH 00006H - @@INIT rtc FFD04H 00000H - @@INIT vreg_ctr FFD04H 00000H - @@INIT vreg_twl FFD04H 00000H - @@INIT adc FFD04H 0000AH - @@INIT renge FFD0EH 00018H - @@INIT accero FFD26H 00000H + FFCFCH 00002H + @@DATA @rom FFCFEH 00000H + @@INIT FFCFEH 0003CH DSEG BASEP + @@INIT @cstart FFCFEH 00000H + @@INIT loader FFCFEH 00000H + @@INIT pm FFCFEH 00002H + @@INIT i2c_ctr FFD00H 00002H + @@INIT main FFD02H 00000H + @@INIT magic FFD02H 00000H + @@INIT WDT FFD02H 00000H + @@INIT i2c_mcu FFD02H 00000H + @@INIT i2c_twl FFD02H 00000H + @@INIT led FFD02H 00006H + @@INIT rtc FFD08H 00000H + @@INIT vreg_ctr FFD08H 00000H + @@INIT vreg_twl FFD08H 00000H + @@INIT adc FFD08H 0000AH + @@INIT renge FFD12H 00018H + @@INIT accero FFD2AH 00000H @@INIT self_flash - FFD26H 00000H - @@INIT sw FFD26H 00002H - @@INIT task_debug - FFD28H 00002H - @@INIT task_misc FFD2AH 00000H - @@INIT task_sys FFD2AH 00002H + @@INIT sw FFD2AH 00002H + @@INIT task_debug + FFD2CH 00002H + @@INIT task_misc + FFD2EH 00000H + @@INIT task_sys FFD2EH 00002H @@INIT pedo_alg_thre_det2 - FFD2CH 00008H - @@INIT ini_VECT FFD34H 00000H + FFD30H 00008H + @@INIT ini_VECT FFD38H 00000H @@INIT task_status - FFD34H 00002H - @@INIT @rom FFD36H 00000H - @@INIS FFD36H 00000H DSEG UNITP - @@INIS @cstart FFD36H 00000H - @@INIS loader FFD36H 00000H - @@INIS pm FFD36H 00000H - @@INIS i2c_ctr FFD36H 00000H - @@INIS main FFD36H 00000H - @@INIS magic FFD36H 00000H - @@INIS WDT FFD36H 00000H - @@INIS i2c_mcu FFD36H 00000H - @@INIS i2c_twl FFD36H 00000H - @@INIS led FFD36H 00000H - @@INIS rtc FFD36H 00000H - @@INIS vreg_ctr FFD36H 00000H - @@INIS vreg_twl FFD36H 00000H - @@INIS adc FFD36H 00000H - @@INIS renge FFD36H 00000H - @@INIS accero FFD36H 00000H + FFD38H 00002H + @@INIT @rom FFD3AH 00000H + @@INIS FFD3AH 00000H DSEG UNITP + @@INIS @cstart FFD3AH 00000H + @@INIS loader FFD3AH 00000H + @@INIS pm FFD3AH 00000H + @@INIS i2c_ctr FFD3AH 00000H + @@INIS main FFD3AH 00000H + @@INIS magic FFD3AH 00000H + @@INIS WDT FFD3AH 00000H + @@INIS i2c_mcu FFD3AH 00000H + @@INIS i2c_twl FFD3AH 00000H + @@INIS led FFD3AH 00000H + @@INIS rtc FFD3AH 00000H + @@INIS vreg_ctr FFD3AH 00000H + @@INIS vreg_twl FFD3AH 00000H + @@INIS adc FFD3AH 00000H + @@INIS renge FFD3AH 00000H + @@INIS accero FFD3AH 00000H @@INIS self_flash - FFD36H 00000H - @@INIS sw FFD36H 00000H + FFD3AH 00000H + @@INIS sw FFD3AH 00000H @@INIS task_debug - FFD36H 00000H + FFD3AH 00000H @@INIS task_misc - FFD36H 00000H - @@INIS task_sys FFD36H 00000H + FFD3AH 00000H + @@INIS task_sys FFD3AH 00000H @@INIS pedo_alg_thre_det2 - FFD36H 00000H - @@INIS ini_VECT FFD36H 00000H + FFD3AH 00000H + @@INIS ini_VECT FFD3AH 00000H @@INIS task_status - FFD36H 00000H - @@INIS @rom FFD36H 00000H - @@DATS FFD36H 00000H DSEG UNITP - @@DATS @cstart FFD36H 00000H - @@DATS loader FFD36H 00000H - @@DATS pm FFD36H 00000H - @@DATS i2c_ctr FFD36H 00000H - @@DATS main FFD36H 00000H - @@DATS magic FFD36H 00000H - @@DATS WDT FFD36H 00000H - @@DATS i2c_mcu FFD36H 00000H - @@DATS i2c_twl FFD36H 00000H - @@DATS led FFD36H 00000H - @@DATS rtc FFD36H 00000H - @@DATS vreg_ctr FFD36H 00000H - @@DATS vreg_twl FFD36H 00000H - @@DATS adc FFD36H 00000H - @@DATS renge FFD36H 00000H - @@DATS accero FFD36H 00000H + FFD3AH 00000H + @@INIS @rom FFD3AH 00000H + @@DATS FFD3AH 00000H DSEG UNITP + @@DATS @cstart FFD3AH 00000H + @@DATS loader FFD3AH 00000H + @@DATS pm FFD3AH 00000H + @@DATS i2c_ctr FFD3AH 00000H + @@DATS main FFD3AH 00000H + @@DATS magic FFD3AH 00000H + @@DATS WDT FFD3AH 00000H + @@DATS i2c_mcu FFD3AH 00000H + @@DATS i2c_twl FFD3AH 00000H + @@DATS led FFD3AH 00000H + @@DATS rtc FFD3AH 00000H + @@DATS vreg_ctr FFD3AH 00000H + @@DATS vreg_twl FFD3AH 00000H + @@DATS adc FFD3AH 00000H + @@DATS renge FFD3AH 00000H + @@DATS accero FFD3AH 00000H @@DATS self_flash - FFD36H 00000H - @@DATS sw FFD36H 00000H + FFD3AH 00000H + @@DATS sw FFD3AH 00000H @@DATS task_debug - FFD36H 00000H + FFD3AH 00000H @@DATS task_misc - FFD36H 00000H - @@DATS task_sys FFD36H 00000H + FFD3AH 00000H + @@DATS task_sys FFD3AH 00000H @@DATS pedo_alg_thre_det2 - FFD36H 00000H - @@DATS ini_VECT FFD36H 00000H + FFD3AH 00000H + @@DATS ini_VECT FFD3AH 00000H @@DATS task_status - FFD36H 00000H - @@DATS @rom FFD36H 00000H - FSL_DATA FFD36H 00010H DSEG UNITP + FFD3AH 00000H + @@DATS @rom FFD3AH 00000H + FSL_DATA FFD3AH 00010H DSEG UNITP FSL_DATA fsl_common - FFD36H 00010H - @@INITL FFD46H 00000H DSEG UNIT64KP - @@INITL loader FFD46H 00000H - @@INITL pm FFD46H 00000H - @@INITL i2c_ctr FFD46H 00000H - @@INITL main FFD46H 00000H - @@INITL magic FFD46H 00000H - @@INITL WDT FFD46H 00000H - @@INITL i2c_mcu FFD46H 00000H - @@INITL i2c_twl FFD46H 00000H - @@INITL led FFD46H 00000H - @@INITL rtc FFD46H 00000H - @@INITL vreg_ctr FFD46H 00000H - @@INITL vreg_twl FFD46H 00000H - @@INITL adc FFD46H 00000H - @@INITL renge FFD46H 00000H - @@INITL accero FFD46H 00000H + FFD3AH 00010H + @@INITL FFD4AH 00000H DSEG UNIT64KP + @@INITL loader FFD4AH 00000H + @@INITL pm FFD4AH 00000H + @@INITL i2c_ctr FFD4AH 00000H + @@INITL main FFD4AH 00000H + @@INITL magic FFD4AH 00000H + @@INITL WDT FFD4AH 00000H + @@INITL i2c_mcu FFD4AH 00000H + @@INITL i2c_twl FFD4AH 00000H + @@INITL led FFD4AH 00000H + @@INITL rtc FFD4AH 00000H + @@INITL vreg_ctr FFD4AH 00000H + @@INITL vreg_twl FFD4AH 00000H + @@INITL adc FFD4AH 00000H + @@INITL renge FFD4AH 00000H + @@INITL accero FFD4AH 00000H @@INITL self_flash - FFD46H 00000H - @@INITL sw FFD46H 00000H + FFD4AH 00000H + @@INITL sw FFD4AH 00000H @@INITL task_debug - FFD46H 00000H + FFD4AH 00000H @@INITL task_misc - FFD46H 00000H - @@INITL task_sys FFD46H 00000H + FFD4AH 00000H + @@INITL task_sys FFD4AH 00000H @@INITL pedo_alg_thre_det2 - FFD46H 00000H - @@INITL ini_VECT FFD46H 00000H + FFD4AH 00000H + @@INITL ini_VECT FFD4AH 00000H @@INITL task_status - FFD46H 00000H - @@INITL @rom FFD46H 00000H - @@DATAL FFD46H 00000H DSEG UNIT64KP - @@DATAL loader FFD46H 00000H - @@DATAL pm FFD46H 00000H - @@DATAL i2c_ctr FFD46H 00000H - @@DATAL main FFD46H 00000H - @@DATAL magic FFD46H 00000H - @@DATAL WDT FFD46H 00000H - @@DATAL i2c_mcu FFD46H 00000H - @@DATAL i2c_twl FFD46H 00000H - @@DATAL led FFD46H 00000H - @@DATAL rtc FFD46H 00000H - @@DATAL vreg_ctr FFD46H 00000H - @@DATAL vreg_twl FFD46H 00000H - @@DATAL adc FFD46H 00000H - @@DATAL renge FFD46H 00000H - @@DATAL accero FFD46H 00000H + FFD4AH 00000H + @@INITL @rom FFD4AH 00000H + @@DATAL FFD4AH 00000H DSEG UNIT64KP + @@DATAL loader FFD4AH 00000H + @@DATAL pm FFD4AH 00000H + @@DATAL i2c_ctr FFD4AH 00000H + @@DATAL main FFD4AH 00000H + @@DATAL magic FFD4AH 00000H + @@DATAL WDT FFD4AH 00000H + @@DATAL i2c_mcu FFD4AH 00000H + @@DATAL i2c_twl FFD4AH 00000H + @@DATAL led FFD4AH 00000H + @@DATAL rtc FFD4AH 00000H + @@DATAL vreg_ctr FFD4AH 00000H + @@DATAL vreg_twl FFD4AH 00000H + @@DATAL adc FFD4AH 00000H + @@DATAL renge FFD4AH 00000H + @@DATAL accero FFD4AH 00000H @@DATAL self_flash - FFD46H 00000H - @@DATAL sw FFD46H 00000H + FFD4AH 00000H + @@DATAL sw FFD4AH 00000H @@DATAL task_debug - FFD46H 00000H + FFD4AH 00000H @@DATAL task_misc - FFD46H 00000H - @@DATAL task_sys FFD46H 00000H + FFD4AH 00000H + @@DATAL task_sys FFD4AH 00000H @@DATAL pedo_alg_thre_det2 - FFD46H 00000H - @@DATAL ini_VECT FFD46H 00000H + FFD4AH 00000H + @@DATAL ini_VECT FFD4AH 00000H @@DATAL task_status - FFD46H 00000H - @@DATAL @rom FFD46H 00000H -* gap * FFD46H 000BAH + FFD4AH 00000H + @@DATAL @rom FFD4AH 00000H +* gap * FFD4AH 000B6H MEMORY=RAM2 BASE ADDRESS=FFE20H SIZE=000C0H @@ -636,22 +631,22 @@ Direc-file:bsr_mcu.dr @@BITS rtc FFE21H.2 00000H.3 @@BITS vreg_ctr FFE21H.5 00000H.1 @@BITS vreg_twl FFE21H.6 00000H.0 - @@BITS adc FFE21H.6 00000H.1 - @@BITS renge FFE21H.7 00000H.2 - @@BITS accero FFE22H.1 00000H.0 + @@BITS adc FFE21H.6 00000H.2 + @@BITS renge FFE22H.0 00000H.2 + @@BITS accero FFE22H.2 00000H.0 @@BITS self_flash - FFE22H.1 00000H.0 - @@BITS sw FFE22H.1 00000H.2 + FFE22H.2 00000H.0 + @@BITS sw FFE22H.2 00000H.2 @@BITS task_debug - FFE22H.3 00000H.0 + FFE22H.4 00000H.0 @@BITS task_misc - FFE22H.3 00000H.3 - @@BITS task_sys FFE22H.6 00000H.0 + FFE22H.4 00000H.3 + @@BITS task_sys FFE22H.7 00000H.0 @@BITS pedo_alg_thre_det2 - FFE22H.6 00000H.1 - @@BITS ini_VECT FFE22H.7 00000H.0 + FFE22H.7 00000H.1 + @@BITS ini_VECT FFE23H.0 00000H.0 @@BITS task_status - FFE22H.7 00000H.0 + FFE23H.0 00000H.0 * gap * FFE23H 000B1H @@SEGREG FFED4H 00004H DSEG AT @@SEGREG @SEGREG FFED4H 00004H diff --git a/trunk/bsr_mcu.dr b/trunk/bsr_mcu.dr index f45329b..bd8099c 100644 --- a/trunk/bsr_mcu.dr +++ b/trunk/bsr_mcu.dr @@ -11,8 +11,8 @@ MEMORY ROM : (02000H, 03000H ) ; ブートブロック0に割り当てる MERGE LDR_CODE : =BCL0 MERGE LDR_CODL : =BCL0 -MERGE @@LCODE : =BCL0 ; スタートアップルーチン MERGE FSL_CODE : =BCL0 ; =FSL ; 謹製フラッシュライブラリ +MERGE @@LCODE : =BCL0 ; スタートアップルーチン ;MERGE @@LCODEL : =BCL0 ;MERGE LDR_RINT:=BCL0 diff --git a/trunk/config.h b/trunk/config.h index ccd5086..388e187 100644 --- a/trunk/config.h +++ b/trunk/config.h @@ -6,13 +6,12 @@ //#define _ALLOW_NOBATT_ //#define _FORCE_INFO_LED_FULLCOLOR_ //#define _DEBUG_BT_IRQ_ -#define _DEBUG_BT_TEMP_ +//#define _DEBUG_BT_TEMP_ //#define _DBG_PEDO_AUTO_ENABLE_ -#define _DEBUG_PM_BOMB_VOL_ #define MCU_VER_MAJOR 0x00 -#define MCU_VER_MINOR 0x21 +#define MCU_VER_MINOR 0x23 //#define PM_CCIC_TIM diff --git a/trunk/hoge.bin b/trunk/hoge.bin index cc4f5b5..4e6482e 100644 Binary files a/trunk/hoge.bin and b/trunk/hoge.bin differ diff --git a/trunk/incs.h b/trunk/incs.h index 8cdc0dc..0c8ad20 100644 --- a/trunk/incs.h +++ b/trunk/incs.h @@ -20,6 +20,7 @@ #include "bsr_system.h" #include "renge\renge.h" +#include "loader.h" #include "vreg_ctr.h" #include "vreg_twl.h" diff --git a/trunk/ini_VECT.c b/trunk/ini_VECT.c index 5478f6d..cca0012 100644 --- a/trunk/ini_VECT.c +++ b/trunk/ini_VECT.c @@ -92,14 +92,13 @@ __interrupt void fn_intwdti( ) } #endif } + __interrupt void fn_intlvi( ) { -#ifdef _irq_debug_ while( 1 ) { NOP(); } -#endif } __interrupt void fn_intp0(){ diff --git a/trunk/led.c b/trunk/led.c index c55879b..1f4de59 100644 --- a/trunk/led.c +++ b/trunk/led.c @@ -37,7 +37,7 @@ uni_info_LED info_LED; // 赤LEDの電池残量LEDの点滅パターン -st_led_red_batt_empty led_red_batt_empty = { 0xAA, 0xAA, 0xAA, 0xAA }; +st_led_red_batt_empty led_red_batt_empty = { 0x55, 0x55, 0x55, 0x55 }; // フルカラーとの自動判別のため、一時領域としてもっておく @@ -147,7 +147,6 @@ void LED_init( ) if( system_status.model == MODEL_TS_BOARD ) { #ifdef _FORCE_INFO_LED_FULLCOLOR_ - // todo debug // system_status.info_fullcolor = 1; #endif } @@ -209,19 +208,7 @@ void tsk_led_pow( ) switch ( vreg_ctr[VREG_C_LED_POW] ) { case ( LED_POW_ILM_AUTO ): - switch ( system_status.pwr_state ) - { - case SLEEP: - led_pow_hotaru( ); - break; - - case ON: - led_pow_normal( ); - break; - - default: - break; - } + led_pow_normal( ); break; case ( LED_POW_ILM_HOTARU ): diff --git a/trunk/led.h b/trunk/led.h index 4b5d429..4b3cc39 100644 --- a/trunk/led.h +++ b/trunk/led.h @@ -17,8 +17,8 @@ #define LED_duty_notify_blu TDR02 // これらはduty変えられません -#define LED_pow_red P7.5 -#define LED_CAM P4.2 +#define LED_pow_red P4.2 +#define LED_CAM P7.5 // 旧仕様 ///////////////////////////// diff --git a/trunk/loader.c b/trunk/loader.c index 45df7e6..94ba68a 100644 --- a/trunk/loader.c +++ b/trunk/loader.c @@ -28,6 +28,7 @@ #include "reboot.h" +#include "magic.h" // ======================================================== #if (FSL_DATA_BUFFER_SIZE>0) @@ -47,12 +48,6 @@ static fsl_u08 fsl_MK2H_bak_u08; /* } -// magic.c の記述と違わないように注意! -#define MGC_LOAD 0x0FF6 -#define MGC_FOOT 0x4FF6 - - - // ======================================================== void FSL_Open( void ); void FSL_Close( void ); @@ -68,6 +63,54 @@ void main( ) { while( 1 ) { + WDT_Restart( ); + + if( !RTCEN ) // これは書き替えたときにしか使えない + { + // 通常の電源投入 + u8 pwup_delay0 = 0; + u8 pwup_delay1 = 0; + + do + { // 電池接続時、16ms待ってみる(チャタリング対策) + pwup_delay0 += 1; + do + { + pwup_delay1 += 1; + } + while( pwup_delay1 != 0 ); // u16にするとコンパイラが怒るんだが…。 + } + while( pwup_delay0 != 0 ); + } + + + // ファームの整合性チェック // + { + u8 i; + u8 comp = 0; + + // ローダーと本体は同じバージョンか? + /// 次へのアップデートの途中で終わってないか? + for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 らし + { + comp += ( *( __far u8 * )( MGC_LOAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1; + comp += ( *( u8 * )( MGC_HEAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1; + } + + if( *( u8 * )( MGC_FOOT ) == 0xFF ) // 消去済のまま + { + comp += 1; + } + + if( comp != 0 ) + { + hdwinit2( ); + // ファームリストアを試みる + firm_restore( ); + // 帰ってこない。リセットをかける。 + } + } + WDT_Restart( ); if( RTCEN ) // これは書き替えたときにしか使えない { @@ -93,51 +136,13 @@ void main( ) } system_status.reboot = 1; } - else + else if(( my_resf & 0x01 ) != 0 ) { - // 通常の電源投入 - u8 pwup_delay0 = 0; - u8 pwup_delay1 = 0; - - do - { // 電池接続時、16ms待ってみる(チャタリング対策) - pwup_delay0 += 1; - do - { - pwup_delay1 += 1; - } - while( pwup_delay1 != 0 ); // u16にするとコンパイラが怒るんだが…。 - } - while( pwup_delay0 != 0 ); + vreg_ctr[ VREG_C_MCU_STATUS ] |= ( 1 << 2 ); } hdwinit2( ); } - - // ファームの整合性チェック // - { - u8 i; - u8 comp = 0; - - // ローダーと本体は同じバージョンか? - /// 次へのアップデートの途中で終わってないか? - for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 らし - { - comp += ( *( __far u8 * )( MGC_LOAD + i ) == *( u8 * )( MGC_FOOT + i ) ) ? 0 : 1; - } - - if( *( u8 * )( MGC_FOOT ) == 0xFF ) // 消去済のまま - { - comp += 1; - } - - if( comp != 0 ) - { - // ファームリストアを試みる - firm_restore( ); - // 帰ってこない。リセットをかける。 - } - } - + // 通常運転 main_loop( ); } @@ -379,3 +384,25 @@ void hdwinit2( ) DRC0 = 0b00000000; /* DMAチャネル0の動作禁止 */ DRC1 = 0b00000000; /* DMAチャネル1の動作禁止 */ } + + + +/****************************************************************************** + 単位は ms + NOPを回すだけ、指定時間CPUを *占有します* 。 + 割り込みとか入るとその分遅れます。 + 少し誤差あります。 + *****************************************************************************/ +void wait_ms( u8 ms ){ + u16 fine; + + WDT_Restart(); + // まだ適当です! + while( ms != 0 ){ + ms--; + fine = 860; + while( fine != 0 ){ + fine -= 1; + } + } +} diff --git a/trunk/loader.h b/trunk/loader.h index e69de29..3b9faa6 100644 --- a/trunk/loader.h +++ b/trunk/loader.h @@ -0,0 +1,7 @@ +#ifndef _loader_h_ +#define _loader_h_ + +void wait_ms( u8 ); + +#endif + diff --git a/trunk/magic.c b/trunk/magic.c index 6faa3f7..d914adf 100644 --- a/trunk/magic.c +++ b/trunk/magic.c @@ -9,9 +9,11 @@ #pragma section @@CNSTL MGC_LOAD AT 0x0FF6 __far const unsigned char MGC_LOAD[] = __TIME__; + #pragma section @@CNST MGC_MIMI AT 0x2100 const unsigned char MGC_HEAD[] = __TIME__; + #pragma section @@CNST MGC_TAIL AT 0x4FF6 const unsigned char MGC_TAIL[] = __TIME__; diff --git a/trunk/main.c b/trunk/main.c index 71beee0..0dbc329 100644 --- a/trunk/main.c +++ b/trunk/main.c @@ -41,7 +41,7 @@ void main_loop( void ) iic_mcu_start( ); EI( ); - BT_chk( ); // 実機やバッテリの判定、電池残量ICの設定 + BT_init( ); // 実機やバッテリの判定、電池残量ICの設定 system_status.pwr_state = OFF_TRIG; if( system_status.reboot ) @@ -55,6 +55,7 @@ void main_loop( void ) { system_status.pwr_state = ON_TRIG; } + vreg_ctr[VREG_C_BT_REMAIN] = 100; } vreg_ctr_init( ); diff --git a/trunk/pm.c b/trunk/pm.c index 30525f9..f0d76d1 100644 --- a/trunk/pm.c +++ b/trunk/pm.c @@ -28,11 +28,18 @@ bit bt_chg_ready; // u8 chg_led_override; // アダプタ差したとき、充電するしないに関わらずしばらく点灯させる +// ======================================================== +static void BT_maker_detect(); +static void BT_mgic_init(); + + // ======================================================== #ifdef _PMIC_TWL_ u8 blset; #endif + + /* ======================================================== 液晶系の電源制御  ステータスフラグはすぐに立ててしまう。 @@ -59,14 +66,14 @@ err PM_LCD_on( ) rv = PM_chk_LDSW( ); - if( rv != 0 ) + if( rv != 0 ) { // 電源起動エラーなら電源も切れてしまう。ここではケアしない vreg_ctr[VREG_C_STATUS] |= REG_BIT_LCD_POW; set_irq( VREG_C_IRQ3, REG_BIT_LCD_ON ); SND_DEPOP_SND_ENABLE; - return ( ERR_ERR ); + return ( ERR_ERR ); } #ifdef _PMIC_TWL_ @@ -246,9 +253,7 @@ err PM_sys_pow_on( ) PM_LDSW_on( ); - wait_ms( 1 ); - - wait_ms( DELAY_PM_TW_PWUP ); + wait_ms( 1 + DELAY_PM_TW_PWUP ); PM_VDD_normMode(); PM_VDD_on( ); @@ -696,9 +701,9 @@ void tsk_batt( ) ***********************************************************/ #define swap_endian_16( x ) (unsigned int)(( x << 8 ) | ( x >> 8 )) -void BT_chk( ) +void BT_init( ) { - u8 temp; + BT_VENDER battery_manufacturer_old; union{ u16 _u16; // endian 注意 struct{ @@ -709,51 +714,21 @@ void BT_chk( ) BT_DET_P = 1; BT_TEMP_P = 1; - wait_ms(1); // チャージに時間が掛かる + wait_ms(1); // 電圧が上がるのに時間が掛かる + // 電池温度測定 // + // TS,白箱判定も兼ねるのでこっちが先でないとダメ + raw_adc_temperature = get_adc( ADC_SEL_BATT_TEMP ); + + battery_manufacturer_old = battery_manufacturer; + BT_maker_detect(); + + if( battery_manufacturer != battery_manufacturer_old ) { - BT_VENDER battery_manufacturer_old = battery_manufacturer; - - // 電池メーカーの識別 - temp = get_adc( ADC_SEL_BATT_DET ); - BT_DET_P = 0; - if( temp > 233 ) - battery_manufacturer = BT_VENDER_OPEN; - else if( temp > 197 ) - battery_manufacturer = BT_VENDER_6; - else if( temp > 158 ) - battery_manufacturer = BT_VENDER_PANA; - else if( temp > 123 ) - battery_manufacturer = BT_VENDER_4; - else if( temp > 79 ) - battery_manufacturer = BT_VENDER_3; - else if( temp > 33 ) - battery_manufacturer = BT_VENDER_2; - else if( temp > 5 ) - battery_manufacturer = BT_VENDER_1; - else - battery_manufacturer = BT_VENDER_MAXELL; - - if( battery_manufacturer != battery_manufacturer_old ) - { - if( battery_manufacturer < BT_VENDER_OPEN ) - { - // バッテリが変わった // - bt_comp = BT_COMP[ battery_manufacturer ]; // バッテリパラメータ変更 - - wait_ms( 10 ); - // 0. バッテリ残量IC クイックスタート - dat_16._u16 = swap_endian_16( 0x4000 ); // quick start - iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_MODE, 2, &dat_16 ); - - bt_chg_ready = 1; - } - else - { - // 電池が外された - bt_chg_ready = 0; - } - } + // バッテリが変わった // + BT_mgic_init(); // battery_manufacturer == BT_VENDER_OPEN 時は来ないのだ! + tski_BT_temp_update( ); // 温度のtemp。 残量ICに行きます + bt_chg_ready = 1; } // 電池温度監視スタート @@ -763,8 +738,34 @@ void BT_chk( ) +void BT_maker_detect() +{ + u8 temp; -void BT_init( ) + // 電池メーカーの識別 + temp = get_adc( ADC_SEL_BATT_DET ); + BT_DET_P = 0; + if( temp > 233 ) + battery_manufacturer = BT_VENDER_OPEN; + else if( temp > 197 ) + battery_manufacturer = BT_VENDER_6; + else if( temp > 158 ) + battery_manufacturer = BT_VENDER_PANA; + else if( temp > 123 ) + battery_manufacturer = BT_VENDER_4; + else if( temp > 79 ) + battery_manufacturer = BT_VENDER_3; + else if( temp > 33 ) + battery_manufacturer = BT_VENDER_2; + else if( temp > 5 ) + battery_manufacturer = BT_VENDER_1; + else + battery_manufacturer = BT_VENDER_MAXELL; +} + + + +void BT_mgic_init() { u8 temp; u8 origParam[4]; @@ -776,20 +777,26 @@ void BT_init( ) }chars; }dat_16; + bt_comp = BT_COMP[ battery_manufacturer ]; // バッテリパラメータ変更 + wait_ms( 10 ); // MGICの起動に掛かる + + // 0. バッテリ残量IC クイックスタート + dat_16._u16 = swap_endian_16( 0x4000 ); // quick start + iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_MODE, 2, &dat_16 ); + + /* // PMIC バージョン読み出し - // temp = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VER ); - // vreg_ctr[ VREG_C_PM_INFO ] = temp; - /// デバッグ用は別にまとめた + temp = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VER ); + vreg_ctr[ VREG_C_PM_INFO ] = temp; + // デバッグ用は別にまとめた + */ /* // -1. リセットをかけてみる dat_16._u16 = swap_endian_16( 0x5400 ); // reset iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_COMMAND, 2, &dat_16 ); // こいつはNACKを返す - */ - - // 電池温度測定(TS,白箱判定も兼ねる) // - raw_adc_temperature = get_adc( ADC_SEL_BATT_TEMP ); + */ // 1. ロック解除 @@ -845,7 +852,7 @@ void BT_init( ) if( system_status.model == MODEL_JIKKI ) { - // wait_ms( 5 + 1 ); I2C_mの初期化時にウェイト入れてるので不要 + // wait_ms( 5 + 1 ); 前にウェイト入れてるので不要 // 2. 初期パラメータを一時保存 iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam ); @@ -882,6 +889,7 @@ void BT_init( ) // カスタムモデル書き込みOK! }else{ // 失敗だったらリトライするのか? + NOP(); } // 10.元のRCOMPとOCVを書き戻す @@ -892,7 +900,6 @@ void BT_init( ) iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_LOCK, 2, &dat_16 ); // おしまい // - tski_BT_temp_update( ); // 温度のtemp。 残量ICに行きます } } @@ -962,9 +969,7 @@ task_status_immed tski_BT_temp_update( )  BT_init()が実行されている必要があります。 **********************************************************/ void BT_get_left(){ - u8 temp[2]; - - // 電池残量更新 // + u8 temp_fuel[2]; #ifdef _DEBUG_BT_IRQ_ if( vreg_ctr[ VREG_C_COMMAND3 ] == 'd' ) @@ -976,76 +981,94 @@ void BT_get_left(){ { if( system_status.model == MODEL_TS_BOARD ) { + // TS // vreg_ctr[ VREG_C_BT_REMAIN ] = 99; } else if( system_status.model == MODEL_SHIROBAKO ) { - if( iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp ) != ERR_SUCCESS ) + // 白箱 // + if( iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp_fuel ) != ERR_SUCCESS ) { // エミュレーション機能がおかしい vreg_ctr[ VREG_C_BT_REMAIN ] = 99; } else { - vreg_ctr[ VREG_C_BT_REMAIN ] = temp[0]; - vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp[1]; + vreg_ctr[ VREG_C_BT_REMAIN ] = temp_fuel[0]; + vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp_fuel[1]; } } else - { // 実機 - if(( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_GASGAUGE_ERR ) == 0 ) + { + u8 temp_v[2]; + u8 temp_force_fule_left; + u16 temp16; + + // 実機 // + // 残量リード + if( iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp_fuel ) != ERR_SUCCESS ) { - temp[0] = iic_mcu_read_a_byte( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VCELL ); - if( iic_mcu_result != ERR_SUCCESS ) + // 残量ICがNACK + vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR; + bt_chg_ready = 0; + vreg_ctr[ VREG_C_BT_REMAIN ] = 0; + system_status.cnt_force_off = 1; // 強制電源断フラグ + } + else + { + // バッテリパラメータの関係でビットシフトが必要 + temp16 = ( temp_fuel[0] << 8 ) + temp_fuel[1]; + temp16 /= BT_RCOMP_SCALE[ battery_manufacturer ]; + temp_fuel[0] = ( temp16 >> 8 ) & 0xFF; + temp_fuel[1] = temp16 & 0xFF; + + // 電圧でキャップ + if( iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_VCELL, 2, temp_v ) == ERR_SUCCESS ) { - // バッテリ残量が取れなくなった - vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR; - bt_chg_ready = 0; - vreg_ctr[ VREG_C_BT_REMAIN ] = 0; - system_status.cnt_force_off = 1; // 強制電源断フラグ - } - else - { // 通常パス - vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp[0]; + vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp_v[0]; - if( iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_SOC, 2, temp ) == ERR_SUCCESS ) - { - vreg_ctr[ VREG_C_BT_REMAIN ] = temp[0]; - vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp[1]; - if( battery_manufacturer > BT_VENDER_6 ) - { - // 来ないはずだが - NOP(); - vreg_ctr[ VREG_C_BT_REMAIN ] = 0; - vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = 0; - } - } + temp16 = ( temp_v[0] << 8 ) + temp_v[1]; - if( BT_CHG_Ena && !BT_CHG_n ){ - vreg_ctr[ VREG_C_BT_REMAIN ] = 100; - } - // モデルゲージと実際との乖離が大きい/電圧がPMICの限界を超えそう - else if( vreg_ctr[ VREG_C_BT_VOLTAGE ] < V_TH_ZERO ) + if( temp16 > V_TH_LO ) { - // 電圧が規定値になってしまったので強制off - vreg_ctr[ VREG_C_BT_REMAIN ] = 0; + temp_force_fule_left = 100; } - else if(( vreg_ctr[ VREG_C_BT_VOLTAGE ] < V_TH_EMPTY ) && ( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_EMPTY )) + else if( temp16 > V_TH_EMPTY ) { - vreg_ctr[ VREG_C_BT_REMAIN ] = BATT_TH_EMPTY; + temp_force_fule_left = 10; } - else if(( vreg_ctr[ VREG_C_BT_VOLTAGE ] < V_TH_LO ) && ( vreg_ctr[ VREG_C_BT_REMAIN ] > BATT_TH_LO )) + else if( temp16 > V_TH_ZERO ) { - vreg_ctr[ VREG_C_BT_REMAIN ] = BATT_TH_LO; + temp_force_fule_left = 5; + } + else + { + temp_force_fule_left = 0; } } } - // もう特に何もすること無いと思う... + + if( BT_CHG_Ena && !BT_CHG_n ){ + vreg_ctr[ VREG_C_BT_REMAIN ] = 100; + vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = 0; + } + else + { + if( temp_force_fule_left > temp_fuel[0] ) + { + vreg_ctr[ VREG_C_BT_REMAIN ] = temp_fuel[0]; + vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = temp_fuel[1]; + } + else + { + vreg_ctr[ VREG_C_BT_REMAIN ] = temp_force_fule_left; + vreg_ctr[ VREG_C_BT_REMAIN_FINE ] = 0; + } + } } } - // 残量で割り込み。急激に減ると飛ぶことがある // { static u8 bt_remain_old; diff --git a/trunk/pm.h b/trunk/pm.h index ec0fcfd..334c4d7 100644 --- a/trunk/pm.h +++ b/trunk/pm.h @@ -15,12 +15,15 @@ #define BATT_TH_LO 10 #define BATT_TH_EMPTY 5 - +/* #define V_K 16 / 1.25 -#define V_TH_LO (u8)( 3200 / V_K ) -#define V_TH_EMPTY (u8)( 3150 / V_K ) -#define V_TH_ZERO (u8)( 3100 / V_K ) - +#define V_TH_LO (u16)( 3200 * V_K ) +#define V_TH_EMPTY (u16)( 3150 * V_K ) +#define V_TH_ZERO (u16)( 3100 * V_K ) +*/ +#define V_TH_LO 40960 +#define V_TH_EMPTY 40320 +#define V_TH_ZERO 39680 //========================================================= #define LED_CHARGE P2.4 @@ -135,7 +138,6 @@ void PM_LCD_off( ); err PM_BL_set( u8 ); -void BT_chk(); void BT_init(); void BT_get_left(); diff --git a/trunk/renge/renge.c b/trunk/renge/renge.c index 1c5a5de..b42acfc 100644 --- a/trunk/renge/renge.c +++ b/trunk/renge/renge.c @@ -299,23 +299,3 @@ imm_list_sort_fin: } - -/****************************************************************************** - 単位は ms - NOPを回すだけ、指定時間CPUを *占有します* 。 - 割り込みとか入るとその分遅れます。 - 少し誤差あります。 - *****************************************************************************/ -void wait_ms( u8 ms ){ - u16 fine; - - WDT_Restart(); - // まだ適当です! - while( ms != 0 ){ - ms--; - fine = 860; - while( fine != 0 ){ - fine -= 1; - } - } -} diff --git a/trunk/renge/renge.h b/trunk/renge/renge.h index 58bf013..bd7c5ae 100644 --- a/trunk/renge/renge.h +++ b/trunk/renge/renge.h @@ -17,8 +17,6 @@ err renge_task_immed_run(); err renge_task_immed_add( task_status_immed* ); // static err renge_task_immed_del( u8 ); -void wait_ms( u8 ); - //****************************************************************************** diff --git a/trunk/self_flash.c b/trunk/self_flash.c index 9e09753..69d5385 100644 --- a/trunk/self_flash.c +++ b/trunk/self_flash.c @@ -16,7 +16,9 @@ #include "i2c_ctr.h" #include "pool.h" +#include "magic.h" +#include "pm.h" // ======================================================== const u8 fsl_fx_MHz_u08 = 8; @@ -74,6 +76,9 @@ void firm_restore( ); static err my_FSL_Init(); static err firm_duplicate( u8 block_src, u8 block_dest ); +void alert( u8 ); +void led_print( u8 ); + // ======================================================== @@ -126,9 +131,10 @@ void firm_update( ) target_block <= UPDATE_BLOCK_LAST; target_block += 1 ) { - // 新ファーム領域削除 - FSL_Erase( target_block ); - +/* すでに消してある。でないと中断されたとき終了してるか判別出来ない +// // 新ファーム領域削除 +// FSL_Erase( target_block ); +*/ // 分割書き込み for( split_write_count = 0; ( ( split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM ) @@ -164,22 +170,28 @@ void firm_update( ) != FSL_OK ) { // 書き込み後のチェックエラー + while(1){} // リストア - firm_duplicate( UPDATE_BLOCK_LAST +1, - FIRM_TOP ); + firm_duplicate( UPDATE_BLOCK_LAST +1, FIRM_TOP ); FSL_ForceReset(); // 戻ってこない // } } // 1ブロック書き込み完了。内部ベリファイを行う + P1.5 = 1; + DBG_LED_on; + if( FSL_IVerify( target_block ) != FSL_OK ){ + while(1){} // 再度消去→書き込み ベリファイを繰り返すだけじゃダメでした... todo…? // リストア firm_duplicate( UPDATE_BLOCK_LAST +1, FIRM_TOP ); FSL_ForceReset(); // 戻ってこない // } + DBG_LED_off; + P1.5 = 0; if( SPD ) { @@ -210,8 +222,7 @@ void firm_update( ) { // データ(マジックナンバーしか見てない)エラー // リストア - firm_duplicate( UPDATE_BLOCK_LAST, - FIRM_TOP ); + firm_duplicate( UPDATE_BLOCK_LAST, FIRM_TOP ); FSL_ForceReset(); // リセット // 戻ってこない // } @@ -229,24 +240,129 @@ void firm_update( ) ======================================================== */ void firm_restore( ) { - my_FSL_Init(); + PM1.5 = 0; + + // バックアップは正常? // + { + u16 i; + u8 comp = 0; + + for( i = 0; i < sizeof( __TIME__ ); i++ ) // sizeof( __TIME__ ) = 8 らし + { + comp += ( *( __far u8 * )( MGC_LOAD_BKUP + i ) == *( u8 * )( MGC_HEAD_BKUP + i ) ) ? 0 : 1; + comp += ( *( u8 * )( MGC_HEAD_BKUP + i ) == *( u8 * )( MGC_FOOT_BKUP + i ) ) ? 0 : 1; + } + if( *( u8 * )( MGC_FOOT_BKUP ) == 0xFF ) + { + comp += 1; + } + + if( comp != 0 ) + { + // バックアップ領域も壊れた... + comp = 0; + + // 3.3Vが上がらないと困る + EI( ); + iic_mcu_start( ); + RESET2_ast; + FCRAM_RST_ast; + GYRO_DISABLE(); + PM_LDSW_on(); + wait_ms( 1 + DELAY_PM_TW_PWUP ); + PM_VDD_on( ); + + while(1) + { + WDT_Restart(); + + { + // 赤LED ピコピコ + comp++; + P1.5 = ( comp == 1 || comp == 3 )? 1: 0; + if( comp == 8 ) + { + comp = 0; + } + } + + { + // 電源ボタンで電源off + static u8 sw_hold_count; + + if( !SW_POW_n ) + { + sw_hold_count++; + } + else + { + sw_hold_count = 0; + } + + if( sw_hold_count > 16 ) + { + sw_hold_count = 0; + // 電源off + PM_LDSW_off( ); + break; + } + } + + // ウェイト + for( i = 1; i != 0; i++ ) + { + NOP(); + NOP(); + NOP(); + NOP(); + } + } + { + // ど、どうしよう…。 + + KRM = ( KR_SW_POW ); // Mask ではなく、Modeなのだそうだ。紛らわしい + MK0 = 0xFFFF; + MK1 = ~( INT_MSK1_KR ); + MK2L = 0xFF; + + // PU5 そのまま + PU7 = 0b00001000; // PWSWI + PU20 = 0x00; // SW_HOME 停止 + + STOP( ); + + mcu_wdt_reset; + } + } + } + + + if( my_FSL_Init() != ERR_SUCCESS ){ + alert(1); + } /* ファームのリストア 0x4800 - 0x7FFF (ブロック 18 - 27) から 0x2000 - 0x47FF (ブロック 8 - 17) へコピー */ - firm_duplicate( UPDATE_BLOCK_LAST +1, FIRM_TOP ); + if( firm_duplicate( UPDATE_BLOCK_LAST +1, FIRM_TOP ) != ERR_SUCCESS ) + { + alert(2); + } + // todo //  リストア失敗したら、LEDちかちかとかさせて、サービス送りにしてもらう? // リブート - FSL_InvertBootFlag( ); + if( FSL_InvertBootFlag() != ERR_SUCCESS ) + { + alert(3); + } FSL_SwapBootCluster(); } - // ======================================================== static void FSL_Open( void ) { @@ -272,7 +388,11 @@ static void FSL_Open( void ) MK0 = 0xFFFF; MK1 = 0xFFFF; MK2 = 0xFFFF; - +/* + LVIM = 0b00000010; + LVIS = 0x08; + LVIM = 0b10000010; +*/ FSL_FLMD0_HIGH; // フラッシュ書き替え許可 } @@ -315,18 +435,23 @@ static err firm_duplicate( u8 block_src, u8 split_write_count; // ブロックへちまちま書き込むカウンタ __far u8* p_src = ( __far u8* )( block_src * 0x400 ); + led_print(1); + // 書き込み先ブロックの数だけ繰り返す for( target_block = block_dest; - target_block < block_dest + FIRM_SIZE; + target_block < ( block_dest + FIRM_SIZE ); target_block += 1 ) { + led_print(2); WDT_Restart( ); // ブロック消去 while( FSL_BlankCheck( target_block ) != FSL_OK ) { + led_print(3); FSL_Erase( target_block ); } + led_print(4); // 分割書き込み分繰り返す for( split_write_count = 0; split_write_count < SELF_UPDATE_SPLIT_WRITE_NUM; @@ -335,6 +460,8 @@ static err firm_duplicate( u8 block_src, u16 buff_written_size; u8* p_buff; + WDT_Restart( ); + // 書き込みデータをバッファにためる buff_written_size = 0; p_buff = &pool.self_update_work[0]; @@ -353,16 +480,22 @@ static err firm_duplicate( u8 block_src, ( fsl_u08 ) ( SELF_UPDATE_BUFF_SIZE / SAM_WORD_SIZE ) ) != FSL_OK ) { - // todo リカバリ? // + // リカバリはリブート時 todo // FSL_Close( ); + led_print(5); + while(1){} return ( ERR_ERR ); } } + led_print(6); // 1ブロック書き込み完了。内部電圧チェックを行う - while( FSL_IVerify( target_block ) != FSL_OK ){ - // todo 失敗時? - ; + while( FSL_IVerify( target_block ) != FSL_OK ) + { + // リカバリはリブート時 todo // + led_print(7); + while(1){} + return ( ERR_ERR ); } } return( ERR_SUCCESS ); @@ -375,6 +508,8 @@ static err firm_duplicate( u8 block_src, ======================================================== */ static err my_FSL_Init() { + u8 rv; + RTCE = 0; // 書き替え前準備 // @@ -382,9 +517,9 @@ static err my_FSL_Init() FSL_Open( ); // 割り込み禁止など FSL_Init( &pool.self_update_work[0] ); // ライブラリ初期化。割り込み中断考慮せず - FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず + rv = FSL_ModeCheck( ); // ライトプロテクトチェック。失敗することを考慮せず - return( ERR_SUCCESS ); + return( (err)rv ); } @@ -398,6 +533,38 @@ task_status_immed tski_mcu_reset() FSL_Close( ); // 保険? // -// WDTE = 0xAA; // WDTで再起動(テスト向け) +// mcu_wdt_reset; // WDTで再起動(テスト向け) return( ERR_SUCCESS ); // no reach } + + +void alert( u8 num ) +{ + u8 i; + + while(1) + { + WDT_Restart(); + P1.5 = 1; + for( i = 0; i < num; i++ ) + { + DBG_LED_on; + DBG_LED_off; + } + P1.5 = 0; + } +} + + +void led_print( u8 num ) +{ + u8 i; + + DBG_LED_on; + for( i = 0; i < num; i++ ) + { + P1.5 = 1; + P1.5 = 0; + } + DBG_LED_off; +} diff --git a/trunk/sw.c b/trunk/sw.c index cdbf993..2fc261d 100644 --- a/trunk/sw.c +++ b/trunk/sw.c @@ -19,13 +19,8 @@ #define INTERVAL_TSK_SW 8 #define CLICK_THRESHOLD 2 -#ifdef _FORCE_OFF_1SEC_ -#define HOLD_THREASHOLD (u8)( 800 / INTERVAL_TSK_SW ) -#define FORCEOFF_THREASHOLD (u8)( 1000 / INTERVAL_TSK_SW ) -#else #define HOLD_THREASHOLD (u8)( 2000 / INTERVAL_TSK_SW ) #define FORCEOFF_THREASHOLD (u8)( 4000 / INTERVAL_TSK_SW ) -#endif */ //========================================================= diff --git a/trunk/task_sys.c b/trunk/task_sys.c index e6c6cda..d0b3dc0 100644 --- a/trunk/task_sys.c +++ b/trunk/task_sys.c @@ -83,16 +83,15 @@ void tsk_sys( ) // todo debug #ifdef _DEBUG_BT_IRQ_ - vreg_ctr[ VREG_C_DBG01 ] = 99; // todo (仮) + vreg_ctr[ VREG_C_DBG01 ] = 99; #endif #ifdef _DEBUG_BT_TEMP_ - vreg_ctr[ VREG_C_DBG01 ] = 0x80; // todo (仮) + vreg_ctr[ VREG_C_DBG01 ] = 0x80; #endif vreg_ctr[ VREG_C_COMMAND3 ] = 0; // 電源投入 // iic_mcu_start( ); - BT_chk(); BT_init(); // 実機やバッテリの判定、電池残量ICの設定 if( system_status.model == MODEL_JIKKI_NOBATT ) @@ -105,7 +104,7 @@ void tsk_sys( ) // 残量チェック BT_get_left(); // 先に、BT_init()が実行されている必要があります。 if(( vreg_ctr[VREG_C_BT_REMAIN] < 1 ) && - ( vreg_ctr[VREG_C_BT_VOLTAGE] < ( 3150 / 16 / 1.25 ) )) + ( vreg_ctr[VREG_C_BT_VOLTAGE] < ( V_TH_ZERO / 256 ) )) { // 電池が少ないので起動させない(電圧チェックもされてる) renge_task_interval_run_force = 1; @@ -187,7 +186,6 @@ void tsk_sys( ) vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 ); set_bit( ( iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD ) != 0 ), vreg_ctr[ VREG_C_STATUS ], REG_BIT_LCD_POW ); - BT_chk(); BT_init(); } @@ -319,7 +317,7 @@ void tsk_sys( ) // アダプタが刺さってるときはこのブロックを繰り返す。 /// ↓は中で初期化フラグをもってるので呼びまくって良い iic_mcu_start( ); - BT_chk( ); + BT_init(); // アダプタ有り:充電温度監視 if( SW_pow_count >= 10 ) // 電源スイッチが押されるのを待つ diff --git a/trunk/voltable.h b/trunk/voltable.h index d1d08d5..6ff34ab 100644 --- a/trunk/voltable.h +++ b/trunk/voltable.h @@ -1,5 +1,6 @@ #ifdef _10db_ // max -10db +/* const u8 slider_to_codec[64] = { 127, 127, 127, 127, 126, 125, 123, 122, @@ -11,6 +12,18 @@ const u8 slider_to_codec[64] = 72, 71, 70, 68, 67, 66, 64, 63, 62, 61, 59, 58, 57, 56, 55, 55 }; +*/ +const u8 slider_to_codec[64] = +{ + 127, 126, 125, 124, 122, 121, 120, 119, + 118, 117, 116, 114, 113, 112, 111, 110, + 109, 108, 106, 105, 104, 103, 102, 101, + 100, 98, 97, 96, 95, 94, 93, 92, + 90, 89, 88, 87, 86, 85, 83, 82, + 81, 80, 79, 78, 77, 75, 74, 73, + 73, 72, 71, 70, 69, 67, 66, 65, + 64, 63, 62, 61, 59, 58, 57, 56 + }; #endif #ifdef _15db_ diff --git a/trunk/vreg_ctr.c b/trunk/vreg_ctr.c index 2e094f5..fe5378b 100644 --- a/trunk/vreg_ctr.c +++ b/trunk/vreg_ctr.c @@ -15,9 +15,13 @@ CTR MCU I2C #include "fsl_user.h" + extern u8 mcu_info_read(); // task_misc.c + extern u8 iic_burst_state; +extern bit vol_by_twl; + // ******************************************************** #ifdef _DBG_PEDO_AUTO_ENABLE_ @@ -287,16 +291,17 @@ void vreg_ctr_write( u8 adrs, u8 data ) case ( 'w' ): // WDTで再起動(テスト向け) - WDTE = 0xAA; + mcu_wdt_reset; break; } vreg_ctr[ VREG_C_COMMAND3 ] = data; break; case ( VREG_C_VOL_DIGITAL ): - vreg_ctr[ VREG_C_VOL_DIGITAL ] = ( data & ~0x40 ); // force vol update bit - if(( data & 0x40 ) != 0 ) + vreg_ctr[ VREG_C_VOL_DIGITAL ] = ( data & ~REG_BIT_VOL_RESET) ; // コマンドビットが混ざってる【使用時に】マスクせよ + if(( data & REG_BIT_VOL_RESET ) != 0 ) { + vol_by_twl = 0; renge_task_immed_add( tski_vol_update ); } break; diff --git a/trunk/vreg_ctr.h b/trunk/vreg_ctr.h index 297668f..a315e89 100644 --- a/trunk/vreg_ctr.h +++ b/trunk/vreg_ctr.h @@ -30,7 +30,6 @@ #define REG_BIT_GASGAUGE_ERR ( 1 << 0 ) // VREG_C_IRQ0 -#define REG_BIT_VR_SNDVOL_CHANGE ( 1 << 7 ) #define REG_BIT_IRQ_WDT_RESET ( 1 << 7 ) #define REG_BIT_SHELL_OPEN ( 1 << 6 ) #define REG_BIT_SHELL_CLOSE ( 1 << 5 ) @@ -113,6 +112,10 @@ #define REG_BIT_TWL_IRQ_BT_EMPTY 0x10 #define REG_BIT_TWL_IRQ_VOL_CHANGE 0x40 +// VOL(0x25) +#define REG_BIT_VOL_RESET ( 1 << 6 ) +#define REG_BIT_VOL_FORCE_REG ( 1 << 7 ) + // CODEC上のPMIC NTR の代理レジスタ #define REG_BIT_TWL_REQ_OFF ( 1 << 6 ) diff --git a/trunk/vreg_twl.c b/trunk/vreg_twl.c index 0838f05..b0aae56 100644 --- a/trunk/vreg_twl.c +++ b/trunk/vreg_twl.c @@ -21,10 +21,7 @@ u8 vreg_twl[_REG_TWL_INT_ADRS_ENDMARK]; extern bit twl_ver_read; extern bit cam_led_update; extern bit twl_ntr_mode; -extern u8 vol_data; - - - +extern bit vol_by_twl; /* ======================================================== 仮想レジスタの初期化 @@ -37,7 +34,6 @@ void vreg_twl_init( ) vreg_twl[ REG_TWL_INT_ADRS_TEMP0 ] = 0; } - // ======================================================== // I2C仮想レジスタに書く・何かアクションする // 引数 adrs は内部アドレス @@ -48,9 +44,10 @@ void vreg_twl_write( u8 adrs, u8 data ) { case ( REG_TWL_INT_ADRS_VOL ): { - set_irq( VREG_C_IRQ2, REG_BIT_TWL_SNDVOL_CHANGE ); - vol_data = data * 8; + vol_by_twl = 1; + vreg_twl[ REG_TWL_INT_ADRS_VOL ] = data; renge_task_immed_add( tski_vol_update ); + set_irq( VREG_C_IRQ2, REG_BIT_TWL_SNDVOL_CHANGE ); break; } diff --git a/trunk/yav_mcu_bsr.plg b/trunk/yav_mcu_bsr.plg index 1300209..db1acd7 100644 --- a/trunk/yav_mcu_bsr.plg +++ b/trunk/yav_mcu_bsr.plg @@ -3,6 +3,21 @@ C:\WINDOWS\system32\cmd.exe /c touch magic.c Compilation complete, 0 error(s) and 0 warning(s) found. "C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\magic.asm Assembly complete, 0 error(s) and 0 warning(s) found. +"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r" -ms -qvjl2w -sainter_asm -zpb -no adc.c +adc.c(121) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add' +adc.c(146) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(151) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(160) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(301) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(325) : CC78K0R warning W0510: Pointer mismatch in function 'renge_task_immed_add' +adc.c(345) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(422) : CC78K0R warning W0745: Expected function prototype +adc.c(446) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(451) : CC78K0R warning W0401: Conversion may lose significant digits +adc.c(151) : CC78K0R warning W0401: Conversion may lose significant digits +Compilation complete, 0 error(s) and 11 warning(s) found. +"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\adc.asm +Assembly complete, 0 error(s) and 0 warning(s) found. "C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\lk78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -obsr.lmf "..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r\s0rm.rel" -go85h,0FC00h,1024 -gi0FFFFFFFFFFFFFFFFFFFFh -pbsr_k0r.map -nkd -gb7EFBFFh -b"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib" -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r" -dbsr_mcu.dr -s -w0 loader.rel pm.rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2c_twl.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel renge.rel accero.rel self_flash.rel sw.rel task_debug.rel task_misc.rel task_sys.rel pedo_alg_thre_det2.rel ini_VECT.rel task_status.rel Link complete, 0 error(s) and 0 warning(s) found. "C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\oc78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -o.\bsr.hex -nu -ki bsr.lmf @@ -13,4 +28,4 @@ intel-HEX to bsr bin converter file converted! -Build Total error(s) : 0 Total warning(s) : 0 +Build Total error(s) : 0 Total warning(s) : 11 diff --git a/trunk/yav_mcu_bsr.pri b/trunk/yav_mcu_bsr.pri index f990220..04e122a 100644 --- a/trunk/yav_mcu_bsr.pri +++ b/trunk/yav_mcu_bsr.pri @@ -78,10 +78,10 @@ Symbol Type=OFF Language=C Kanji=SJIS [Source] -Geometry=83, 74, 844, 790 +Geometry=114, 70, 844, 790 Window=Normal -DispStart=269 -CaretPos=321,0 +DispStart=247 +CaretPos=281,0 Mode=Normal DispFile= Address1= @@ -142,7 +142,7 @@ Accumulative=ON [Assemble] Geometry=282, 92, 968, 626 Window=Hide -DispStart=864505856 +DispStart=864338944 CaretPos=0,0 Address1= Address2= @@ -185,18 +185,18 @@ SaveRange=Screen SaveStart= SaveEnd= [Memory] -Geometry=218, 29, 968, 626 -Window=Hide -Boundary=0 +Geometry=224, 254, 968, 626 +Window=Normal +Boundary=163 Format=Hex Mode=Byte -Endian= +Endian=Little Ascii=OFF Idtag=OFF Address= -DispStart=FFFFFFFF -CaretPosData=0, 0 -CaretPosAscii=0, 0 +DispStart=00007DC0 +CaretPosData=0, 2012 +CaretPosAscii=3, 2012 Address1= Address2= Address3= @@ -867,14 +867,14 @@ SaveStart= SaveEnd= [Register] Geometry=975, 515, 272, 397 -Window=Hide +Window=Normal Mode=Hex Boundary=174 Pickup=OFF Name=Functional Register Bank=0 RP0=1 -RP1=1 +RP1=5 RP2=1 RP3=1 PC=1 @@ -957,52 +957,57 @@ Detail=OFF Last Name= Count=0 [Variable] -Geometry=1137, 11, 441, 595 +Geometry=854, -3, 441, 595 Window=Normal Boundary=18088086 -0=.P4.2,P,S,A,+,1 -1=.hoge,P,N,A,+,1 -2=.work,P,N,A,+,1 -3=.new_val,P,N,A,+,1 -4=.raw_adc_temperature,D,N,A,+,1 -5=.vreg_ctr[5],D,N,A,+,1 -6=.vreg_ctr[35],P,N,A,+,1 -7=.bt_chg_ready,P,N,A,+,1 -8=.pu20,P,S,A,+,1 -9=.temp_zone_charge_enable,P,N,A,+,1 -10=.bt_remain_old,P,N,A,+,1 -11=.vreg_ctr,P,N,A,+,1 -12=.system_status,.,N,A,+,1 -13=.battery_manufacturer,P,N,A,+,1 -14=.bt_comp,.,N,A,+,1 -15=.vol_data,P,N,A,+,1 -Line=16 +0=.vreg_ctr[11],D,N,A,+,1 +1=.system_status,.,N,A,+,1 +2=.vreg_ctr[13],H,N,A,+,1 +3=.P4.2,P,S,A,+,1 +4=.hoge,P,N,A,+,1 +5=.work,P,N,A,+,1 +6=.new_val,P,N,A,+,1 +7=.raw_adc_temperature,D,N,A,+,1 +8=.bt_chg_ready,P,N,A,+,1 +9=.pu20,P,S,A,+,1 +10=.temp_zone_charge_enable,P,N,A,+,1 +11=.bt_remain_old,P,N,A,+,1 +12=.vreg_ctr,P,N,A,+,1 +13=.system_status,.,N,A,+,1 +14=.battery_manufacturer,P,N,A,+,1 +15=.bt_comp,.,N,A,+,1 +16=.vol_data,P,N,A,+,1 +Line=17 [Quick Watch] -0=TDR02,P,A,1 -1=TDR03,P,A,1 -2=TDR04,P,A,1 -3=tdr07,P,A,1 -4=tdr08,P,A,1 -5=toe0,B,A,1 -6=vreg_ctr[35],P,A,1 -7=vreg_ctr[5],P,A,1 -8=raw_adc_temperature,P,A,1 -9=bt_chg_ready,P,A,1 -10=p4.3,P,A,1 -11=work,P,A,1 -12=new_val,P,A,1 -13=vol_data,P,A,1 -14=hoge,P,A,1 -15=P4.2,P,A,1 +0=tdr07,P,A,1 +1=tdr08,P,A,1 +2=toe0,B,A,1 +3=vreg_ctr[35],P,A,1 +4=vreg_ctr[5],P,A,1 +5=raw_adc_temperature,P,A,1 +6=bt_chg_ready,P,A,1 +7=p4.3,P,A,1 +8=work,P,A,1 +9=new_val,P,A,1 +10=vol_data,P,A,1 +11=hoge,P,A,1 +12=P4.2,P,A,1 +13=vreg_ctr[13],P,A,1 +14=vreg_ctr[11],P,A,1 +15=system_status,P,A,1 [Software Break] -Geometry=547, 524, 756, 532 +Geometry=775, 797, 445, 260 Window=Normal Width=150 30 200 100 Name0=Swb00001 -Address0=i2c_mcu.c#_iic_mcu_write_a_byte+0x40 +Address0=pm.c#_BT_mgic_init+0x127 Window0=ASM Status0=ON -Count=1 +Name1=Swb00002 +Address1=pm.c#_BT_init+0x0 +Window1=ASM +Status1=ON +Count=2 [Reset] Debugger=ON Symbol=OFF diff --git a/trunk/yav_mcu_bsr.prj b/trunk/yav_mcu_bsr.prj index 26a100f..081e26f 100644 --- a/trunk/yav_mcu_bsr.prj +++ b/trunk/yav_mcu_bsr.prj @@ -6,7 +6,7 @@ Series=78K0R.PM Device=uPD79F0104 DeviceVer=E1.00b DebugMode=1 -Target=bsr.lmf +Target=C:\78k_data\yav-mcu-basara\trunk\bsr.lmf [BuildMode0] BuildModeName=Debug Build TargetFile=0 @@ -112,296 +112,6 @@ ZF=0 S=1 E=0 CommandFile=0 -[Options.LCNV78K0R 0] -Version=100 -LCNV_GO=0 -E=0 -CommandFile=0 -[Options.LCNV78K0R 1] -Version=100 -LCNV_GO=0 -E=0 -CommandFile=0 -[Options.LCNV78K0R 2] -Version=100 -LCNV_GO=0 -O0=inter_asm -E=0 -CommandFile=0 -[Options.LCNV78K0R 3] -Version=100 -LCNV_GO=0 -E=0 -CommandFile=0 -[Options.LCNV78K0R 4] -Version=100 -LCNV_GO=0 -E=0 -CommandFile=0 -[Options.LCNV78K0R 5] -Version=100 -LCNV_GO=0 -E=0 -CommandFile=0 -[Options.LK78K0R 0] -Version=100 -O0=bsr_k0r.lmf -O1=bsr.lmf -O2=flash.lmf -O3=a.lmf -G=1 -E=0 -E0=flash.elk -E1=a.elk -GO=1 -GOValue=85 -GOStart=FC00 -GOSizeValue=1024 -GI=1 -GIValue=FFFFFFFFFFFFFFFFFFFF -CCZA=0 -MemInfoCheck=1 -P=1 -P0=bsr_k0r.map -P1=bsr.map -P2=flash.map -P3=a.map -MI=0 -GB=1 -GBValue=6EFBFF -KM=1 -KD=0 -KP=1 -KL=0 -LF=0 -LL=0 -B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib -D0=bsr_mcu.dr -D1=user_area.dr -S=1 -W=0 -SELFCheck=1 -SELF=0 -ZB= -Etcetera0= -Etcetera1=boot.lmf -CommandFile=0 -[Options.LK78K0R 1] -Version=100 -O0=a.lmf -G=0 -E=0 -E0=a.elk -GO=0 -GOValue= -GOStart=FC00 -GOSizeValue=1024 -GI=0 -GIValue=FFFFFFFFFFFFFFFFFFFF -CCZA=1 -MemInfoCheck=0 -P=1 -P0=a.map -MI=0 -GB=0 -GBValue= -KM=1 -KD=1 -KP=0 -KL=0 -LF=0 -LL=0 -S=0 -W=1 -SELFCheck=0 -SELF=0 -ZB= -CommandFile=0 -[Options.LK78K0R 2] -Version=100 -O0=bsr.lmf -O1=bsr_k0r.lmf -O2=flash.lmf -O3=a.lmf -G=1 -E=0 -E0=flash.elk -E1=a.elk -GO=1 -GOValue=85 -GOStart=FC00 -GOSizeValue=1024 -GI=1 -GIValue=FFFFFFFFFFFFFFFFFFFF -CCZA=0 -MemInfoCheck=1 -P=1 -P0=bsr_k0r.map -P1=bsr.map -P2=flash.map -P3=a.map -MI=0 -GB=1 -GBValue=7EFBFF -KM=1 -KD=0 -KP=0 -KL=0 -LF=0 -LL=0 -B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib -D0=bsr_mcu.dr -D1=user_area.dr -S=1 -W=0 -SELFCheck=0 -SELF=0 -ZB= -Etcetera0= -Etcetera1=boot.lmf -CommandFile=0 -OFILE=C:\78k_data\yav-mcu-basara\trunk\bsr.lmf -[Options.LK78K0R 3] -Version=100 -O0=bsr_bsr.lmf -O1=bsr_k0r.lmf -O2=bsr.lmf -O3=flash.lmf -O4=a.lmf -G=1 -E=0 -E0=flash.elk -E1=a.elk -GO=1 -GOValue=85 -GOStart=FC00 -GOSizeValue=1024 -GI=1 -GIValue=FFFFFFFFFFFFFFFFFFFF -CCZA=0 -MemInfoCheck=1 -P=1 -P0=bsr_bsr.map -P1=bsr_k0r.map -P2=bsr.map -P3=flash.map -P4=a.map -MI=0 -GB=1 -GBValue=6EFBFF -KM=1 -KD=0 -KP=1 -KL=0 -LF=0 -LL=0 -B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib -D0=bsr_mcu.dr -D1=user_area.dr -S=1 -W=2 -SELFCheck=0 -SELF=0 -ZB= -Etcetera0= -Etcetera1=boot.lmf -CommandFile=0 -[Options.LK78K0R 4] -Version=100 -O0=bsr_k0r.lmf -O1=bsr.lmf -O2=flash.lmf -O3=a.lmf -G=1 -E=0 -E0=flash.elk -E1=a.elk -GO=1 -GOValue=85 -GOStart=FC00 -GOSizeValue=1024 -GI=1 -GIValue=FFFFFFFFFFFFFFFFFFFF -CCZA=0 -MemInfoCheck=1 -P=1 -P0=bsr_k0r.map -P1=bsr.map -P2=flash.map -P3=a.map -MI=0 -GB=1 -GBValue=6EFBFF -KM=1 -KD=0 -KP=1 -KL=0 -LF=0 -LL=0 -B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib -D0=bsr_mcu.dr -D1=user_area.dr -S=1 -W=0 -SELFCheck=1 -SELF=0 -ZB= -Etcetera0= -Etcetera1=boot.lmf -CommandFile=0 -[Options.LK78K0R 5] -Version=100 -O0=bsr_bsr.lmf -O1=bsr_k0r.lmf -O2=bsr.lmf -O3=flash.lmf -O4=a.lmf -G=1 -E=0 -E0=flash.elk -E1=a.elk -GO=1 -GOValue=85 -GOStart=FC00 -GOSizeValue=1024 -GI=1 -GIValue=FFFFFFFFFFFFFFFFFFFF -CCZA=0 -MemInfoCheck=1 -P=1 -P0=bsr_bsr.map -P1=bsr_k0r.map -P2=bsr.map -P3=flash.map -P4=a.map -MI=0 -GB=1 -GBValue=6EFBFF -KM=1 -KD=0 -KP=1 -KL=0 -LF=0 -LL=0 -B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib -D0=bsr_mcu.dr -D1=user_area.dr -S=1 -W=2 -SELFCheck=0 -SELF=0 -ZB= -Etcetera0= -Etcetera1=boot.lmf -CommandFile=0 -[BuildBefore-AfterCmd] -Before1=touch magic.c -After1=ruby nec_s_2_bsrbin2.rb bsr.hex -[ToolSet] -ToolSetName=(変更)78K0R Software Package V1.10 -Tool1=CC78K0R|W2.10 -Tool2=RA78K0R|W1.31 -Tool3=ID78K0R-QB|V3.60 [Options.RA78K0R 0] Version=100 G=1 @@ -510,40 +220,6 @@ LT=8 Z=0 CommandFile=0 RA_OPT= -[Options.78K0R] -BuildMode=2 -BuildMode2=K0R_dbg -BuildMode3=BSR_dbg -BuildMode4=BSR_rel -BuildMode5=BSR_WM0 -DefaultMode2=1 -DefaultMode3=1 -DefaultMode4=1 -DefaultMode5=1 -[SrcFile] -Source1=loader.c -Source2=pm.c -Source3=i2c_ctr.c -Source4=main.c -Source5=magic.c -Source6=WDT.c -Source7=i2c_mcu.c -Source8=i2c_twl.c -Source9=led.c -Source10=rtc.c -Source11=vreg_ctr.c -Source12=vreg_twl.c -Source13=adc.c -Source14=renge\renge.c -Source15=accero.c -Source16=self_flash.c -Source17=sw.c -Source18=task_debug.c -Source19=task_misc.c -Source20=task_sys.c -Source21=pedo_alg_thre_det2.c -Source22=ini_VECT.c -Source23=task_status.c [Options.CC78K0R 0] Version=210 Include0=renge,C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r @@ -1010,6 +686,327 @@ VfiFileBoot0= VfiFileBoot1=boot.vfi VF78K0Rchk=0 VF78K0Rvs= +[Options.LK78K0R 0] +Version=100 +O0=bsr_k0r.lmf +O1=bsr.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=0 +SELFCheck=1 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 1] +Version=100 +O0=a.lmf +G=0 +E=0 +E0=a.elk +GO=0 +GOValue= +GOStart=FC00 +GOSizeValue=1024 +GI=0 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=1 +MemInfoCheck=0 +P=1 +P0=a.map +MI=0 +GB=0 +GBValue= +KM=1 +KD=1 +KP=0 +KL=0 +LF=0 +LL=0 +S=0 +W=1 +SELFCheck=0 +SELF=0 +ZB= +CommandFile=0 +[Options.LK78K0R 2] +Version=100 +O0=bsr.lmf +O1=bsr_k0r.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=7EFBFF +KM=1 +KD=0 +KP=0 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=0 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +OFILE=C:\78k_data\yav-mcu-basara\trunk\bsr.lmf +[Options.LK78K0R 3] +Version=100 +O0=bsr_bsr.lmf +O1=bsr_k0r.lmf +O2=bsr.lmf +O3=flash.lmf +O4=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_bsr.map +P1=bsr_k0r.map +P2=bsr.map +P3=flash.map +P4=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 4] +Version=100 +O0=bsr_k0r.lmf +O1=bsr.lmf +O2=flash.lmf +O3=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_k0r.map +P1=bsr.map +P2=flash.map +P3=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=0 +SELFCheck=1 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LK78K0R 5] +Version=100 +O0=bsr_bsr.lmf +O1=bsr_k0r.lmf +O2=bsr.lmf +O3=flash.lmf +O4=a.lmf +G=1 +E=0 +E0=flash.elk +E1=a.elk +GO=1 +GOValue=85 +GOStart=FC00 +GOSizeValue=1024 +GI=1 +GIValue=FFFFFFFFFFFFFFFFFFFF +CCZA=0 +MemInfoCheck=1 +P=1 +P0=bsr_bsr.map +P1=bsr_k0r.map +P2=bsr.map +P3=flash.map +P4=a.map +MI=0 +GB=1 +GBValue=6EFBFF +KM=1 +KD=0 +KP=1 +KL=0 +LF=0 +LL=0 +B0=C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib +D0=bsr_mcu.dr +D1=user_area.dr +S=1 +W=2 +SELFCheck=0 +SELF=0 +ZB= +Etcetera0= +Etcetera1=boot.lmf +CommandFile=0 +[Options.LCNV78K0R 0] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 1] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 2] +Version=100 +LCNV_GO=0 +O0=inter_asm +E=0 +CommandFile=0 +[Options.LCNV78K0R 3] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 4] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.LCNV78K0R 5] +Version=100 +LCNV_GO=0 +E=0 +CommandFile=0 +[Options.78K0R] +BuildMode=2 +BuildMode2=K0R_dbg +BuildMode3=BSR_dbg +BuildMode4=BSR_rel +BuildMode5=BSR_WM0 +DefaultMode2=1 +DefaultMode3=1 +DefaultMode4=1 +DefaultMode5=1 +[ToolSet] +ToolSetName=(変更)78K0R Software Package V1.10 +Tool1=CC78K0R|W2.10 +Tool2=RA78K0R|W1.31 +Tool3=ID78K0R-QB|V3.60 +[SrcFile] +Source1=loader.c +Source2=pm.c +Source3=i2c_ctr.c +Source4=main.c +Source5=magic.c +Source6=WDT.c +Source7=i2c_mcu.c +Source8=i2c_twl.c +Source9=led.c +Source10=rtc.c +Source11=vreg_ctr.c +Source12=vreg_twl.c +Source13=adc.c +Source14=renge\renge.c +Source15=accero.c +Source16=self_flash.c +Source17=sw.c +Source18=task_debug.c +Source19=task_misc.c +Source20=task_sys.c +Source21=pedo_alg_thre_det2.c +Source22=ini_VECT.c +Source23=task_status.c [IncFile] Include1=incs_loader.h Include2=jhl_defs.h @@ -1045,3 +1042,7 @@ Include31=pedo_lpf_coeff.h Include32=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h Include33=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h Include34=voltable.h +Include35=magic.h +[BuildBefore-AfterCmd] +Before1=touch magic.c +After1=ruby nec_s_2_bsrbin2.rb bsr.hex diff --git a/trunk/yav_mcu_bsr.prk b/trunk/yav_mcu_bsr.prk index 6d78014..6565494 100644 --- a/trunk/yav_mcu_bsr.prk +++ b/trunk/yav_mcu_bsr.prk @@ -4,11 +4,13 @@ FrameX=168 FrameY=127 FrameCX=1299 FrameCY=1044 -OpenFile1=ProjectWindow -PrjPos=0,2,754,3,253 -OpenFile2=config.h,0,286,286,1530,1043,0,9,0,0 -OpenFile3=OutputWindow +OpenFile1=self_flash.c,0,110,110,1354,867,19,275,0,0 +OpenFile2=incs.h,0,132,132,1376,889,0,24,0,0 +OpenFile3=adc.c,0,330,330,1574,1087,0,380,0,0 +OpenFile4=OutputWindow OutputPos=0,36,981,694,1556 +OpenFile5=ProjectWindow +PrjPos=0,2,754,3,253 ActivePRJ=yav_mcu_bsr.prj [ProjectWindow] ProjectWindowDispType=0 diff --git a/trunk/yav_mcu_bsr.sdb b/trunk/yav_mcu_bsr.sdb index 2d51a39..9d88b14 100644 --- a/trunk/yav_mcu_bsr.sdb +++ b/trunk/yav_mcu_bsr.sdb @@ -1,7 +1,7 @@ [SdbInfo] Ver=5 [loader.c] -T=4c298f6e +T=4c3198b9 1=incs_loader.h 2=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h 3=fsl_user.h @@ -10,8 +10,9 @@ T=4c298f6e 6=pm.h 7=rtc.h 8=reboot.h +9=magic.h [pm.c] -T=4c298f94 +T=4c318dab 1=incs.h 2=adc.h 3=led.h @@ -25,7 +26,7 @@ T=4c072cf1 1=config.h 2=incs.h [main.c] -T=4c0cd4a6 +T=4c2dbbde 1=incs_loader.h 2=WDT.h 3=rtc.h @@ -35,13 +36,13 @@ T=4c0cd4a6 7=adc.h 8=pool.h [magic.c] -T=4c29c894 +T=4c31d176 1=config.h [WDT.c] T=4bf0d1e1 1=incs_loader.h [i2c_mcu.c] -T=4c285d96 +T=4c2acd5a 1=incs_loader.h 2=i2c_mcu.h [i2c_twl.c] @@ -51,14 +52,14 @@ T=4c29c700 3=i2c_twl_defs.h 4=i2c_twl.h [led.c] -T=4c284f59 +T=4c31a042 1=incs.h 2=led.h [rtc.c] T=4c0cd30b 1=incs.h [vreg_ctr.c] -T=4c285516 +T=4c319dfc 1=incs.h 2=vreg_ctr.h 3=rtc.h @@ -69,20 +70,21 @@ T=4c285516 8=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h 9=fsl_user.h [vreg_twl.c] -T=4c2347c6 +T=4c2c3fca 1=incs.h 2=jhl_defs.h 3=led.h 4=vreg_twl.h 5=vreg_ctr.h [adc.c] -T=4c29948b +T=4c31d076 1=incs.h 2=adc.h 3=pm.h 4=led.h +5=voltable.h [renge\renge.c] -T=4c232c3f +T=4c318e0f 1=renge\renge.h 2=renge\renge_task_intval.h 3=renge\renge_task_immediate.h @@ -91,19 +93,21 @@ T=4c232c3f 6=user_define.h 7=bsr_system.h [accero.c] -T=4c27e7a0 +T=4c2aacdb 1=config.h 2=incs.h 3=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h [self_flash.c] -T=4bfb28ce +T=4c319f1f 1=incs_loader.h 2=..\..\..\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r\fsl.h 3=fsl_user.h 4=i2c_ctr.h 5=pool.h +6=magic.h +7=pm.h [sw.c] -T=4c04be89 +T=4c2d5d86 1=incs.h 2=i2c_twl.h 3=i2c_ctr.h @@ -112,12 +116,12 @@ T=4c04be89 6=rtc.h 7=sw.h [task_debug.c] -T=4c29ca1c +T=4c2aacdb 1=incs.h 2=renge\renge.h 3=pm.h [task_misc.c] -T=4c29948b +T=4c2aacdb 1=incs.h 2=renge\renge.h 3=pm.h @@ -126,7 +130,7 @@ T=4c29948b 6=i2c_mcu.h 7=led.h [task_sys.c] -T=4c29948b +T=4c2d5d27 1=incs.h 2=i2c_twl.h 3=i2c_ctr.h @@ -138,7 +142,7 @@ T=4c29948b 9=adc.h 10=self_flash.h [pedo_alg_thre_det2.c] -T=4c28555c +T=4c2aacdb 1=incs.h 2=..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h 3=accero.h @@ -146,10 +150,10 @@ T=4c28555c 5=pedo_lpf_coeff.h 6=pool.h [ini_VECT.c] -T=4bf0d1e1 +T=4c312edd 1=config.h [task_status.c] -T=4c29948b +T=4c2aacdb 1=incs.h 2=renge\renge.h 3=pm.h @@ -171,13 +175,13 @@ T=4c119cde T=4c075832 1=config.h [config.h] -T=4c29c890 +T=4c2db56f [user_define.h] T=4c2856fa [bsr_system.h] T=4c22c0cc [renge\renge.h] -T=4c0758e3 +T=4c318e0f 1=renge\renge_defs.h 2=renge\renge_task_immediate.h [renge\renge_defs.h] @@ -186,16 +190,16 @@ T=4c073c5a T=4c284e89 1=renge\renge_defs.h [vreg_ctr.h] -T=4c28383c +T=4c2d8983 1=config.h [vreg_twl.h] T=4c072cf1 [loader.h] -T=4bf0d1e0 +T=4c318e0f [i2c_mcu.h] -T=4c0769e1 +T=4c2aacdb [WDT.h] -T=4bf0d1e1 +T=4c319dfc [fsl_user.h] T=4bf0d1e0 [i2c_ctr.h] @@ -207,20 +211,21 @@ T=4bf0d1e1 [reboot.h] T=4bf0d1e1 [incs.h] -T=4c072fc8 +T=4c318e3d 1=jhl_defs.h 2=user_define.h 3=bsr_system.h 4=renge\renge.h -5=vreg_ctr.h -6=vreg_twl.h -7=i2c_mcu.h -8=i2c_twl.h -9=rtc.h -10=accero.h -11=pm.h -12=sw.h -13=WDT.h +5=loader.h +6=vreg_ctr.h +7=vreg_twl.h +8=i2c_mcu.h +9=i2c_twl.h +10=rtc.h +11=accero.h +12=pm.h +13=sw.h +14=WDT.h [accero.h] T=4bf0d1e1 1=jhl_defs.h @@ -231,9 +236,9 @@ T=4bfd1372 T=4bf0d1e1 1=jhl_defs.h [led.h] -T=4c21e17d +T=4c31d05a [batt_params.h] -T=4c298f3c +T=4c2c4bd3 [i2c_twl_defs.h] T=4bf0d1e1 [renge\renge_task_intval.h] @@ -255,3 +260,7 @@ T=4bf0d1e1 T=49a3bd4e [..\..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h] T=45f12258 +[voltable.h] +T=4c31be66 +[magic.h] +T=4c316840