From ab832d269ada039fecf4ed4a2ca81b460c14cda4 Mon Sep 17 00:00:00 2001 From: GitHub build-firmware Action Date: Sun, 7 Feb 2021 13:48:13 +0000 Subject: [PATCH] Auto-generated configs and docs --- ...ngine_configuration_generated_structures.h | 58 ++++--- .../controllers/algo/rusefi_generated.h | 55 +++--- ...ngine_configuration_generated_structures.h | 58 ++++--- .../controllers/algo/rusefi_generated.h | 55 +++--- ...ngine_configuration_generated_structures.h | 58 ++++--- .../generated/fsio_enums_generated.def | 2 +- .../controllers/generated/fsio_getters.def | 2 +- firmware/controllers/generated/fsio_names.def | 2 +- .../controllers/generated/fsio_strings.def | 2 +- .../controllers/generated/rusefi_generated.h | 55 +++--- .../controllers/generated/signature_all.h | 4 +- .../generated/signature_frankenso_na6.h | 4 +- .../generated/signature_hellen72.h | 4 +- .../generated/signature_hellen_cypress.h | 4 +- .../controllers/generated/signature_kin.h | 4 +- .../controllers/generated/signature_mre_f4.h | 4 +- .../controllers/generated/signature_mre_f7.h | 4 +- .../generated/signature_prometheus_405.h | 4 +- .../generated/signature_prometheus_469.h | 4 +- .../generated/signature_proteus_f4.h | 4 +- .../generated/signature_proteus_f7.h | 4 +- .../generated/signature_subaru_eg33_f7.h | 4 +- firmware/tunerstudio/generated/cache.zip | Bin 1144576 -> 1145104 bytes firmware/tunerstudio/generated/rusefi.ini | 59 ++++--- .../generated/rusefi_frankenso_na6.ini | 59 ++++--- .../tunerstudio/generated/rusefi_hellen72.ini | 59 ++++--- .../generated/rusefi_hellen_cypress.ini | 59 ++++--- .../tunerstudio/generated/rusefi_kinetis.ini | 59 ++++--- .../tunerstudio/generated/rusefi_mre_f4.ini | 59 ++++--- .../tunerstudio/generated/rusefi_mre_f7.ini | 59 ++++--- .../generated/rusefi_prometheus_405.ini | 59 ++++--- .../generated/rusefi_prometheus_469.ini | 59 ++++--- .../generated/rusefi_proteus_f4.ini | 59 ++++--- .../generated/rusefi_proteus_f7.ini | 59 ++++--- .../generated/rusefi_subaru_eg33_f7.ini | 59 ++++--- .../com/rusefi/config/generated/Fields.java | 159 +++++++++--------- java_console/rusefi.xml | 2 +- 37 files changed, 659 insertions(+), 605 deletions(-) diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h index 2f911a105a..4f24c0b7ee 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Feb 07 01:56:13 UTC 2021 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Feb 07 13:47:52 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -2006,7 +2006,11 @@ struct engine_configuration_s { /** * offset 1458 */ - uint16_t unusedHereHereHere; + brain_pin_e lps25BaroSensorScl; + /** + * offset 1459 + */ + brain_pin_e lps25BaroSensorSda; /** * offset 1460 */ @@ -2696,76 +2700,76 @@ struct engine_configuration_s { bool unused1130 : 1; /** offset 2116 bit 8 */ - bool unusedBit_488_8 : 1; + bool unusedBit_489_8 : 1; /** offset 2116 bit 9 */ - bool unusedBit_488_9 : 1; + bool unusedBit_489_9 : 1; /** offset 2116 bit 10 */ - bool unusedBit_488_10 : 1; + bool unusedBit_489_10 : 1; /** offset 2116 bit 11 */ - bool unusedBit_488_11 : 1; + bool unusedBit_489_11 : 1; /** offset 2116 bit 12 */ - bool unusedBit_488_12 : 1; + bool unusedBit_489_12 : 1; /** offset 2116 bit 13 */ - bool unusedBit_488_13 : 1; + bool unusedBit_489_13 : 1; /** offset 2116 bit 14 */ - bool unusedBit_488_14 : 1; + bool unusedBit_489_14 : 1; /** offset 2116 bit 15 */ - bool unusedBit_488_15 : 1; + bool unusedBit_489_15 : 1; /** offset 2116 bit 16 */ - bool unusedBit_488_16 : 1; + bool unusedBit_489_16 : 1; /** offset 2116 bit 17 */ - bool unusedBit_488_17 : 1; + bool unusedBit_489_17 : 1; /** offset 2116 bit 18 */ - bool unusedBit_488_18 : 1; + bool unusedBit_489_18 : 1; /** offset 2116 bit 19 */ - bool unusedBit_488_19 : 1; + bool unusedBit_489_19 : 1; /** offset 2116 bit 20 */ - bool unusedBit_488_20 : 1; + bool unusedBit_489_20 : 1; /** offset 2116 bit 21 */ - bool unusedBit_488_21 : 1; + bool unusedBit_489_21 : 1; /** offset 2116 bit 22 */ - bool unusedBit_488_22 : 1; + bool unusedBit_489_22 : 1; /** offset 2116 bit 23 */ - bool unusedBit_488_23 : 1; + bool unusedBit_489_23 : 1; /** offset 2116 bit 24 */ - bool unusedBit_488_24 : 1; + bool unusedBit_489_24 : 1; /** offset 2116 bit 25 */ - bool unusedBit_488_25 : 1; + bool unusedBit_489_25 : 1; /** offset 2116 bit 26 */ - bool unusedBit_488_26 : 1; + bool unusedBit_489_26 : 1; /** offset 2116 bit 27 */ - bool unusedBit_488_27 : 1; + bool unusedBit_489_27 : 1; /** offset 2116 bit 28 */ - bool unusedBit_488_28 : 1; + bool unusedBit_489_28 : 1; /** offset 2116 bit 29 */ - bool unusedBit_488_29 : 1; + bool unusedBit_489_29 : 1; /** offset 2116 bit 30 */ - bool unusedBit_488_30 : 1; + bool unusedBit_489_30 : 1; /** offset 2116 bit 31 */ - bool unusedBit_488_31 : 1; + bool unusedBit_489_31 : 1; /** * set can_mode X * offset 2120 @@ -3803,4 +3807,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Feb 07 01:56:13 UTC 2021 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Feb 07 13:47:52 UTC 2021 diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h index e5a4c986ce..3a247c0591 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h @@ -1069,6 +1069,8 @@ #define lowPressureFuel_v2_offset 3320 #define lowPressureFuel_value1_offset 3316 #define lowPressureFuel_value2_offset 3324 +#define lps25BaroSensorScl_offset 1458 +#define lps25BaroSensorSda_offset 1459 #define MAF_DECODING_COUNT 256 #define maf_sensor_type_e_auto_enum "CUSTOM", "Bosch0280218037", "Bosch0280218004", "DensoTODO" #define maf_sensor_type_e_enum "v0", "v1", "v2", "v3" @@ -1258,7 +1260,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD hellen_cypress #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 1186009212 +#define SIGNATURE_HASH 1675860701 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1592,7 +1594,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2021.02.07.hellen_cypress.1186009212" +#define TS_SIGNATURE "rusEFI 2021.02.07.hellen_cypress.1675860701" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1685,31 +1687,30 @@ #define unusedBit_288_30_offset 976 #define unusedBit_288_31_offset 976 #define unusedBit_34_31_offset 76 -#define unusedBit_488_10_offset 2116 -#define unusedBit_488_11_offset 2116 -#define unusedBit_488_12_offset 2116 -#define unusedBit_488_13_offset 2116 -#define unusedBit_488_14_offset 2116 -#define unusedBit_488_15_offset 2116 -#define unusedBit_488_16_offset 2116 -#define unusedBit_488_17_offset 2116 -#define unusedBit_488_18_offset 2116 -#define unusedBit_488_19_offset 2116 -#define unusedBit_488_20_offset 2116 -#define unusedBit_488_21_offset 2116 -#define unusedBit_488_22_offset 2116 -#define unusedBit_488_23_offset 2116 -#define unusedBit_488_24_offset 2116 -#define unusedBit_488_25_offset 2116 -#define unusedBit_488_26_offset 2116 -#define unusedBit_488_27_offset 2116 -#define unusedBit_488_28_offset 2116 -#define unusedBit_488_29_offset 2116 -#define unusedBit_488_30_offset 2116 -#define unusedBit_488_31_offset 2116 -#define unusedBit_488_8_offset 2116 -#define unusedBit_488_9_offset 2116 -#define unusedHereHereHere_offset 1458 +#define unusedBit_489_10_offset 2116 +#define unusedBit_489_11_offset 2116 +#define unusedBit_489_12_offset 2116 +#define unusedBit_489_13_offset 2116 +#define unusedBit_489_14_offset 2116 +#define unusedBit_489_15_offset 2116 +#define unusedBit_489_16_offset 2116 +#define unusedBit_489_17_offset 2116 +#define unusedBit_489_18_offset 2116 +#define unusedBit_489_19_offset 2116 +#define unusedBit_489_20_offset 2116 +#define unusedBit_489_21_offset 2116 +#define unusedBit_489_22_offset 2116 +#define unusedBit_489_23_offset 2116 +#define unusedBit_489_24_offset 2116 +#define unusedBit_489_25_offset 2116 +#define unusedBit_489_26_offset 2116 +#define unusedBit_489_27_offset 2116 +#define unusedBit_489_28_offset 2116 +#define unusedBit_489_29_offset 2116 +#define unusedBit_489_30_offset 2116 +#define unusedBit_489_31_offset 2116 +#define unusedBit_489_8_offset 2116 +#define unusedBit_489_9_offset 2116 #define unusedHereWeHave_offset 1464 #define unusedOldBiquad_offset 2332 #define unusedSpiPadding4_offset 2593 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h index a20602a944..d0be1ca72c 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Feb 07 01:56:11 UTC 2021 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Feb 07 13:47:51 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -2006,7 +2006,11 @@ struct engine_configuration_s { /** * offset 1458 */ - uint16_t unusedHereHereHere; + brain_pin_e lps25BaroSensorScl; + /** + * offset 1459 + */ + brain_pin_e lps25BaroSensorSda; /** * offset 1460 */ @@ -2696,76 +2700,76 @@ struct engine_configuration_s { bool unused1130 : 1; /** offset 2116 bit 8 */ - bool unusedBit_488_8 : 1; + bool unusedBit_489_8 : 1; /** offset 2116 bit 9 */ - bool unusedBit_488_9 : 1; + bool unusedBit_489_9 : 1; /** offset 2116 bit 10 */ - bool unusedBit_488_10 : 1; + bool unusedBit_489_10 : 1; /** offset 2116 bit 11 */ - bool unusedBit_488_11 : 1; + bool unusedBit_489_11 : 1; /** offset 2116 bit 12 */ - bool unusedBit_488_12 : 1; + bool unusedBit_489_12 : 1; /** offset 2116 bit 13 */ - bool unusedBit_488_13 : 1; + bool unusedBit_489_13 : 1; /** offset 2116 bit 14 */ - bool unusedBit_488_14 : 1; + bool unusedBit_489_14 : 1; /** offset 2116 bit 15 */ - bool unusedBit_488_15 : 1; + bool unusedBit_489_15 : 1; /** offset 2116 bit 16 */ - bool unusedBit_488_16 : 1; + bool unusedBit_489_16 : 1; /** offset 2116 bit 17 */ - bool unusedBit_488_17 : 1; + bool unusedBit_489_17 : 1; /** offset 2116 bit 18 */ - bool unusedBit_488_18 : 1; + bool unusedBit_489_18 : 1; /** offset 2116 bit 19 */ - bool unusedBit_488_19 : 1; + bool unusedBit_489_19 : 1; /** offset 2116 bit 20 */ - bool unusedBit_488_20 : 1; + bool unusedBit_489_20 : 1; /** offset 2116 bit 21 */ - bool unusedBit_488_21 : 1; + bool unusedBit_489_21 : 1; /** offset 2116 bit 22 */ - bool unusedBit_488_22 : 1; + bool unusedBit_489_22 : 1; /** offset 2116 bit 23 */ - bool unusedBit_488_23 : 1; + bool unusedBit_489_23 : 1; /** offset 2116 bit 24 */ - bool unusedBit_488_24 : 1; + bool unusedBit_489_24 : 1; /** offset 2116 bit 25 */ - bool unusedBit_488_25 : 1; + bool unusedBit_489_25 : 1; /** offset 2116 bit 26 */ - bool unusedBit_488_26 : 1; + bool unusedBit_489_26 : 1; /** offset 2116 bit 27 */ - bool unusedBit_488_27 : 1; + bool unusedBit_489_27 : 1; /** offset 2116 bit 28 */ - bool unusedBit_488_28 : 1; + bool unusedBit_489_28 : 1; /** offset 2116 bit 29 */ - bool unusedBit_488_29 : 1; + bool unusedBit_489_29 : 1; /** offset 2116 bit 30 */ - bool unusedBit_488_30 : 1; + bool unusedBit_489_30 : 1; /** offset 2116 bit 31 */ - bool unusedBit_488_31 : 1; + bool unusedBit_489_31 : 1; /** * set can_mode X * offset 2120 @@ -3803,4 +3807,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Feb 07 01:56:11 UTC 2021 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Feb 07 13:47:51 UTC 2021 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h index aeaef56502..1063d025c9 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h @@ -1069,6 +1069,8 @@ #define lowPressureFuel_v2_offset 3320 #define lowPressureFuel_value1_offset 3316 #define lowPressureFuel_value2_offset 3324 +#define lps25BaroSensorScl_offset 1458 +#define lps25BaroSensorSda_offset 1459 #define MAF_DECODING_COUNT 256 #define maf_sensor_type_e_auto_enum "CUSTOM", "Bosch0280218037", "Bosch0280218004", "DensoTODO" #define maf_sensor_type_e_enum "v0", "v1", "v2", "v3" @@ -1258,7 +1260,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD kin #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 1186009212 +#define SIGNATURE_HASH 1675860701 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1592,7 +1594,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2021.02.07.kin.1186009212" +#define TS_SIGNATURE "rusEFI 2021.02.07.kin.1675860701" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1685,31 +1687,30 @@ #define unusedBit_288_30_offset 976 #define unusedBit_288_31_offset 976 #define unusedBit_34_31_offset 76 -#define unusedBit_488_10_offset 2116 -#define unusedBit_488_11_offset 2116 -#define unusedBit_488_12_offset 2116 -#define unusedBit_488_13_offset 2116 -#define unusedBit_488_14_offset 2116 -#define unusedBit_488_15_offset 2116 -#define unusedBit_488_16_offset 2116 -#define unusedBit_488_17_offset 2116 -#define unusedBit_488_18_offset 2116 -#define unusedBit_488_19_offset 2116 -#define unusedBit_488_20_offset 2116 -#define unusedBit_488_21_offset 2116 -#define unusedBit_488_22_offset 2116 -#define unusedBit_488_23_offset 2116 -#define unusedBit_488_24_offset 2116 -#define unusedBit_488_25_offset 2116 -#define unusedBit_488_26_offset 2116 -#define unusedBit_488_27_offset 2116 -#define unusedBit_488_28_offset 2116 -#define unusedBit_488_29_offset 2116 -#define unusedBit_488_30_offset 2116 -#define unusedBit_488_31_offset 2116 -#define unusedBit_488_8_offset 2116 -#define unusedBit_488_9_offset 2116 -#define unusedHereHereHere_offset 1458 +#define unusedBit_489_10_offset 2116 +#define unusedBit_489_11_offset 2116 +#define unusedBit_489_12_offset 2116 +#define unusedBit_489_13_offset 2116 +#define unusedBit_489_14_offset 2116 +#define unusedBit_489_15_offset 2116 +#define unusedBit_489_16_offset 2116 +#define unusedBit_489_17_offset 2116 +#define unusedBit_489_18_offset 2116 +#define unusedBit_489_19_offset 2116 +#define unusedBit_489_20_offset 2116 +#define unusedBit_489_21_offset 2116 +#define unusedBit_489_22_offset 2116 +#define unusedBit_489_23_offset 2116 +#define unusedBit_489_24_offset 2116 +#define unusedBit_489_25_offset 2116 +#define unusedBit_489_26_offset 2116 +#define unusedBit_489_27_offset 2116 +#define unusedBit_489_28_offset 2116 +#define unusedBit_489_29_offset 2116 +#define unusedBit_489_30_offset 2116 +#define unusedBit_489_31_offset 2116 +#define unusedBit_489_8_offset 2116 +#define unusedBit_489_9_offset 2116 #define unusedHereWeHave_offset 1464 #define unusedOldBiquad_offset 2332 #define unusedSpiPadding4_offset 2593 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index 8e901a221f..fe3a3d6caa 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Feb 07 01:55:53 UTC 2021 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Feb 07 13:47:31 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -2006,7 +2006,11 @@ struct engine_configuration_s { /** * offset 1458 */ - uint16_t unusedHereHereHere; + brain_pin_e lps25BaroSensorScl; + /** + * offset 1459 + */ + brain_pin_e lps25BaroSensorSda; /** * offset 1460 */ @@ -2696,76 +2700,76 @@ struct engine_configuration_s { bool unused1130 : 1; /** offset 2116 bit 8 */ - bool unusedBit_488_8 : 1; + bool unusedBit_489_8 : 1; /** offset 2116 bit 9 */ - bool unusedBit_488_9 : 1; + bool unusedBit_489_9 : 1; /** offset 2116 bit 10 */ - bool unusedBit_488_10 : 1; + bool unusedBit_489_10 : 1; /** offset 2116 bit 11 */ - bool unusedBit_488_11 : 1; + bool unusedBit_489_11 : 1; /** offset 2116 bit 12 */ - bool unusedBit_488_12 : 1; + bool unusedBit_489_12 : 1; /** offset 2116 bit 13 */ - bool unusedBit_488_13 : 1; + bool unusedBit_489_13 : 1; /** offset 2116 bit 14 */ - bool unusedBit_488_14 : 1; + bool unusedBit_489_14 : 1; /** offset 2116 bit 15 */ - bool unusedBit_488_15 : 1; + bool unusedBit_489_15 : 1; /** offset 2116 bit 16 */ - bool unusedBit_488_16 : 1; + bool unusedBit_489_16 : 1; /** offset 2116 bit 17 */ - bool unusedBit_488_17 : 1; + bool unusedBit_489_17 : 1; /** offset 2116 bit 18 */ - bool unusedBit_488_18 : 1; + bool unusedBit_489_18 : 1; /** offset 2116 bit 19 */ - bool unusedBit_488_19 : 1; + bool unusedBit_489_19 : 1; /** offset 2116 bit 20 */ - bool unusedBit_488_20 : 1; + bool unusedBit_489_20 : 1; /** offset 2116 bit 21 */ - bool unusedBit_488_21 : 1; + bool unusedBit_489_21 : 1; /** offset 2116 bit 22 */ - bool unusedBit_488_22 : 1; + bool unusedBit_489_22 : 1; /** offset 2116 bit 23 */ - bool unusedBit_488_23 : 1; + bool unusedBit_489_23 : 1; /** offset 2116 bit 24 */ - bool unusedBit_488_24 : 1; + bool unusedBit_489_24 : 1; /** offset 2116 bit 25 */ - bool unusedBit_488_25 : 1; + bool unusedBit_489_25 : 1; /** offset 2116 bit 26 */ - bool unusedBit_488_26 : 1; + bool unusedBit_489_26 : 1; /** offset 2116 bit 27 */ - bool unusedBit_488_27 : 1; + bool unusedBit_489_27 : 1; /** offset 2116 bit 28 */ - bool unusedBit_488_28 : 1; + bool unusedBit_489_28 : 1; /** offset 2116 bit 29 */ - bool unusedBit_488_29 : 1; + bool unusedBit_489_29 : 1; /** offset 2116 bit 30 */ - bool unusedBit_488_30 : 1; + bool unusedBit_489_30 : 1; /** offset 2116 bit 31 */ - bool unusedBit_488_31 : 1; + bool unusedBit_489_31 : 1; /** * set can_mode X * offset 2120 @@ -3803,4 +3807,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Feb 07 01:55:53 UTC 2021 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Feb 07 13:47:31 UTC 2021 diff --git a/firmware/controllers/generated/fsio_enums_generated.def b/firmware/controllers/generated/fsio_enums_generated.def index bc595c0106..d4b092710c 100644 --- a/firmware/controllers/generated/fsio_enums_generated.def +++ b/firmware/controllers/generated/fsio_enums_generated.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Feb 07 01:55:53 UTC 2021 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Feb 07 13:47:31 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer FSIO_SETTING_FANONTEMPERATURE = 1000, diff --git a/firmware/controllers/generated/fsio_getters.def b/firmware/controllers/generated/fsio_getters.def index b7285cf4de..9c7ae8ba15 100644 --- a/firmware/controllers/generated/fsio_getters.def +++ b/firmware/controllers/generated/fsio_getters.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Feb 07 01:55:53 UTC 2021 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Feb 07 13:47:31 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/fsio_names.def b/firmware/controllers/generated/fsio_names.def index 1f5adc1823..f75736507a 100644 --- a/firmware/controllers/generated/fsio_names.def +++ b/firmware/controllers/generated/fsio_names.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Feb 07 01:55:53 UTC 2021 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Feb 07 13:47:31 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature"); diff --git a/firmware/controllers/generated/fsio_strings.def b/firmware/controllers/generated/fsio_strings.def index 6538befc17..2be4d7a6fd 100644 --- a/firmware/controllers/generated/fsio_strings.def +++ b/firmware/controllers/generated/fsio_strings.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Feb 07 01:55:53 UTC 2021 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Feb 07 13:47:31 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index 0ddb63f37e..684ea55d43 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -1067,6 +1067,8 @@ #define lowPressureFuel_v2_offset 3320 #define lowPressureFuel_value1_offset 3316 #define lowPressureFuel_value2_offset 3324 +#define lps25BaroSensorScl_offset 1458 +#define lps25BaroSensorSda_offset 1459 #define MAF_DECODING_COUNT 256 #define maf_sensor_type_e_auto_enum "CUSTOM", "Bosch0280218037", "Bosch0280218004", "DensoTODO" #define maf_sensor_type_e_enum "v0", "v1", "v2", "v3" @@ -1255,7 +1257,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD all #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 80595884 +#define SIGNATURE_HASH 564085005 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1589,7 +1591,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2021.02.07.all.80595884" +#define TS_SIGNATURE "rusEFI 2021.02.07.all.564085005" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1682,31 +1684,30 @@ #define unusedBit_288_30_offset 976 #define unusedBit_288_31_offset 976 #define unusedBit_34_31_offset 76 -#define unusedBit_488_10_offset 2116 -#define unusedBit_488_11_offset 2116 -#define unusedBit_488_12_offset 2116 -#define unusedBit_488_13_offset 2116 -#define unusedBit_488_14_offset 2116 -#define unusedBit_488_15_offset 2116 -#define unusedBit_488_16_offset 2116 -#define unusedBit_488_17_offset 2116 -#define unusedBit_488_18_offset 2116 -#define unusedBit_488_19_offset 2116 -#define unusedBit_488_20_offset 2116 -#define unusedBit_488_21_offset 2116 -#define unusedBit_488_22_offset 2116 -#define unusedBit_488_23_offset 2116 -#define unusedBit_488_24_offset 2116 -#define unusedBit_488_25_offset 2116 -#define unusedBit_488_26_offset 2116 -#define unusedBit_488_27_offset 2116 -#define unusedBit_488_28_offset 2116 -#define unusedBit_488_29_offset 2116 -#define unusedBit_488_30_offset 2116 -#define unusedBit_488_31_offset 2116 -#define unusedBit_488_8_offset 2116 -#define unusedBit_488_9_offset 2116 -#define unusedHereHereHere_offset 1458 +#define unusedBit_489_10_offset 2116 +#define unusedBit_489_11_offset 2116 +#define unusedBit_489_12_offset 2116 +#define unusedBit_489_13_offset 2116 +#define unusedBit_489_14_offset 2116 +#define unusedBit_489_15_offset 2116 +#define unusedBit_489_16_offset 2116 +#define unusedBit_489_17_offset 2116 +#define unusedBit_489_18_offset 2116 +#define unusedBit_489_19_offset 2116 +#define unusedBit_489_20_offset 2116 +#define unusedBit_489_21_offset 2116 +#define unusedBit_489_22_offset 2116 +#define unusedBit_489_23_offset 2116 +#define unusedBit_489_24_offset 2116 +#define unusedBit_489_25_offset 2116 +#define unusedBit_489_26_offset 2116 +#define unusedBit_489_27_offset 2116 +#define unusedBit_489_28_offset 2116 +#define unusedBit_489_29_offset 2116 +#define unusedBit_489_30_offset 2116 +#define unusedBit_489_31_offset 2116 +#define unusedBit_489_8_offset 2116 +#define unusedBit_489_9_offset 2116 #define unusedHereWeHave_offset 1464 #define unusedOldBiquad_offset 2332 #define unusedSpiPadding4_offset 2593 diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index 2f93481e7b..50dea4c7ba 100644 --- a/firmware/controllers/generated/signature_all.h +++ b/firmware/controllers/generated/signature_all.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD all #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 80595884 -#define TS_SIGNATURE "rusEFI 2021.02.07.all.80595884" +#define SIGNATURE_HASH 564085005 +#define TS_SIGNATURE "rusEFI 2021.02.07.all.564085005" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index 6dad1da1d6..ad68496527 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD frankenso_na6 #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 2159535679 -#define TS_SIGNATURE "rusEFI 2021.02.07.frankenso_na6.2159535679" +#define SIGNATURE_HASH 2783276190 +#define TS_SIGNATURE "rusEFI 2021.02.07.frankenso_na6.2783276190" diff --git a/firmware/controllers/generated/signature_hellen72.h b/firmware/controllers/generated/signature_hellen72.h index 857f8e9d1f..938039d4c7 100644 --- a/firmware/controllers/generated/signature_hellen72.h +++ b/firmware/controllers/generated/signature_hellen72.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD hellen72 #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 379163412 -#define TS_SIGNATURE "rusEFI 2021.02.07.hellen72.379163412" +#define SIGNATURE_HASH 868948405 +#define TS_SIGNATURE "rusEFI 2021.02.07.hellen72.868948405" diff --git a/firmware/controllers/generated/signature_hellen_cypress.h b/firmware/controllers/generated/signature_hellen_cypress.h index 847f666e04..93526bdcc6 100644 --- a/firmware/controllers/generated/signature_hellen_cypress.h +++ b/firmware/controllers/generated/signature_hellen_cypress.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD hellen_cypress #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 1186009212 -#define TS_SIGNATURE "rusEFI 2021.02.07.hellen_cypress.1186009212" +#define SIGNATURE_HASH 1675860701 +#define TS_SIGNATURE "rusEFI 2021.02.07.hellen_cypress.1675860701" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index 73d857ef89..c54f67b246 100644 --- a/firmware/controllers/generated/signature_kin.h +++ b/firmware/controllers/generated/signature_kin.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD kin #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 1186009212 -#define TS_SIGNATURE "rusEFI 2021.02.07.kin.1186009212" +#define SIGNATURE_HASH 1675860701 +#define TS_SIGNATURE "rusEFI 2021.02.07.kin.1675860701" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index 9549a003ae..3baca17442 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD mre_f4 #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 705411398 -#define TS_SIGNATURE "rusEFI 2021.02.07.mre_f4.705411398" +#define SIGNATURE_HASH 257504231 +#define TS_SIGNATURE "rusEFI 2021.02.07.mre_f4.257504231" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index 8507aa056b..bc6874f317 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD mre_f7 #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 705411398 -#define TS_SIGNATURE "rusEFI 2021.02.07.mre_f7.705411398" +#define SIGNATURE_HASH 257504231 +#define TS_SIGNATURE "rusEFI 2021.02.07.mre_f7.257504231" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 1abe50e7bd..f47f316eb5 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD prometheus_405 #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 375114138 -#define TS_SIGNATURE "rusEFI 2021.02.07.prometheus_405.375114138" +#define SIGNATURE_HASH 856245051 +#define TS_SIGNATURE "rusEFI 2021.02.07.prometheus_405.856245051" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index 25371610b8..a5a47b0d4a 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD prometheus_469 #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 375114138 -#define TS_SIGNATURE "rusEFI 2021.02.07.prometheus_469.375114138" +#define SIGNATURE_HASH 856245051 +#define TS_SIGNATURE "rusEFI 2021.02.07.prometheus_469.856245051" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index 0bb7b2f00c..2d18528498 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD proteus_f4 #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 1677460355 -#define TS_SIGNATURE "rusEFI 2021.02.07.proteus_f4.1677460355" +#define SIGNATURE_HASH 1185843490 +#define TS_SIGNATURE "rusEFI 2021.02.07.proteus_f4.1185843490" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index 7600f99c00..19bcd90de3 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD proteus_f7 #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 1677460355 -#define TS_SIGNATURE "rusEFI 2021.02.07.proteus_f7.1677460355" +#define SIGNATURE_HASH 1185843490 +#define TS_SIGNATURE "rusEFI 2021.02.07.proteus_f7.1185843490" diff --git a/firmware/controllers/generated/signature_subaru_eg33_f7.h b/firmware/controllers/generated/signature_subaru_eg33_f7.h index 3ee98c759b..fdf5a91f43 100644 --- a/firmware/controllers/generated/signature_subaru_eg33_f7.h +++ b/firmware/controllers/generated/signature_subaru_eg33_f7.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD subaru_eg33_f7 #define SIGNATURE_DATE 2021.02.07 -#define SIGNATURE_HASH 1507114163 -#define TS_SIGNATURE "rusEFI 2021.02.07.subaru_eg33_f7.1507114163" +#define SIGNATURE_HASH 2089170450 +#define TS_SIGNATURE "rusEFI 2021.02.07.subaru_eg33_f7.2089170450" diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index ff17299e640a64fd71955c1b0d3cf00cf7947fae..34940c337fb5731b1ca608f445d7764b087ee373 100644 GIT binary patch delta 492665 zcmV)RK(oJq?nRLDMSz3>gaU*Ev;_Jn6!2|FQr5KkQKWPL0MM5K0384k0GFW^0wRBO z?;l`v?;l`v?;l|7y?b}!NU|^bcllGOnKiqrwlPKm{3y^UDbWhoO`GD>@t$_5&4RYjEwlj-rf&JH1k4Z;>}%S>`px2 z4dIPzOoG+IiHu-ktkz*`;u%YK6?%VRvL#liLJrnrzXJhP5Chp4hN3Jo0zgT!QgZ|o4gE0=EZ~Y)L z!u4_)07WzSy$GNvZ^X@boMG1`s)eSl=VPdP=!&#JA$Ccyj*Q`YMM+09$DcBZkh1T( zhBFTX>~km!#w}Wpz2FdN7%zX^Li7|-vVVLsE(2&}U^wHk;X`|&?D;tSJAA8sf}Zoo zhT|LW*ZvyD@VzngU^=V}el$Fo2Orkq+L=Rd;Dnj2r>^+e^2fja25nwB(325;b$x6D z{0DvJEL?gg3Jll7F!G{xf63Ruh7D8O8#$s5Z4`An(l6&B|CqxpL5B7K3; zUC-x6&;75p3-eC&S$FO_p_m~uaTu&uFiW_Q57_&%vgJDZ$YnW3x0g2_p%a}47`uh@ zJC5pw7hSH0Ms0+1BT0YyIG{GIplzIBT^NsPRt={yhDp7ch)&S@3#hLInl}ie0UFY+KAl6a_&Im=-*i|AH$#l z;}DevlS%0E`t^KC?>fS!jh)De8AoBG%3q70tl#wdcnOQa$BBQ#%@7=D>5h0|tV0K8 zAthV6lrS_7jL9lkP^Kb|BL1*M*Fc>!SOc^&-;dT|6fE9D7q9L`)pHkHIuC+-n8?`0 ze_#B;cs6LtmOW0AcpYY^a4-XW>CV|G727*2iO<)B^LNF1$e!21%&gwbl z@_B!ntnYEx5t9Y7;(T*ZQUvibF?Dh3?d@@9P4*PqJBU>BqwNRwas>@}+9G`IsdmC# zXmqZxYd1~%s&#WQxP&P|vmu1N;{9+QjP9XD=gtTQ=6!0y%QEU$oyJe?n+yBA));hp zhE+L=D>#R~vuiiCtImbpzQI-8=-l26j52>#awq5uQRsmYkJK~o>9qGR9S~S?CWbR- z0-G0!K(ugSHcU|{f)7hx=^!0r_br2vMCh2r+RaaWQM0AqHfq;>yW8s7_!-{oADCE~ z=j==?0a*Kg!ka{H*l|?ueyexa5gAXkLOVD84)ixos&20{=rlT4_MmoQSfXax;Aox!Eutu=mX$=<}dnf;x3rj`0eB#45~&NkAE25#1)w-TmJ zx6^MAT1iSO8X+4=h?q*o_as4?`DCwWRttpfEY!ZNU7Z^yh#+wTu4`SGm=`c2MAk{- z!{_!*v-4SgQJ>nihTUy9?d#jC!Nz~bn_902dFr^BKDV1K{sqG>ILJnZ1{A`BOkd2S z_)8Dw6fP-D(r)4^jnkbZ3s6b3Qc&Jn^R9N&*j9$jpOLDp&B~jL_6-a@0Omiz5Q$J0-AbRySZsyDL$&&0ln1i#M_8`FNUKAeGF^2^~Erc1oZY2Tc8gsiI#|M@M{l<4ckm*n`w8(*i>A86T5QeU)e@uzO93Da=Uu?OA$#$@OZ z&Y|;ZE~T1HUvM+roV$(MjooaW*N|=2YyFl{d?Gm`)%8L;rL#{??Cv4z2XeUJHPP$o z>52G1&RO_P@^Iv!f{cG;{vm3DgoLE&jXczffmk{sxjs+la`(xB6FW*7Ba&UA~VyWqW?;jfDWr`Wlf3^-pvVCqd@@*%^+A zY1e-i`xv$Z_ms1<_b8P@8y;OvQ8VZ#4*Lsd>W#2NWcO_;4cdPYPp-}th#IYQvS$0v zC>Dwq9{^lnczi$tQB;W6KmsXmu(P0Bm(a5)(EIKj^$2)|A$1%|yqJU~O~U~>&7IHV zDFyZMuG#Ii`hAqbOT~<@m+gzoIEk5+1UP4-#WGLE*FozV60n@Vk)qaYCK8mhO1SO= zX;~j?=e?w$6@P!as$JKcwbTxv(_)#oD18As5JPPftXM)Wm-)cBIwMG9ruPJM&;_llpQ; zPPxD9S;yYgi=4U4n;1a+|5^iBt)MR{p~^2PNW@=o`;*(!P3Hy}t+p4`dbln1dK<#s zb?qG3bEDHF8GxC0Mcc8?2f&*LwH~a`&Q&v8ywegvQMI36Ox3#SwHudPL=JrgbnR9j z1k2ihSM-0L&^s-hr42`HI8sM0kD495v;On!EV)yjojr+H@m>dK2~x%94a2xKkMNJC zU3*;#zvXlHT_=Zm;lKZF9-f_L6Mc5}-<+r@(gMH5U(go*VaXOfsCF3TH@D-wWPNKp z{tB%y^GF~3@AUK($x=kkoyBnMD8k;{y{NkUHnM-l?lhNwx7oQdyV>Yk>|7j9vryqT zsu|8?^{>{LuVD(qhPg4 zFuddjMKz~i?WX?~1pw8g1=U%e#SBkT=S}$rKGDsIqb?PlJQlx1+spZNc9HDN0}B~5 zKUj)P$DhvKe;pc+kw}C8)u!yy9fN!m1w4OmfeUP$E~%o7x4ZeltBc_cZj)eQT19?{ z8JFjb?4>uh7wdUMdJ3P>IFU!wGN zWdNDH@XyY+9VE`qa7!@qaU*1RYy4NX0QL6&_cR2#nrev>S}(fY&)3;175xi7EXWGMGn@ z1FshwLe)d{IO7B%d?#ki z;XM-+aKcTRphGZKE-#tKhWN8lt><@xM|Z`Q*6?CMec<6ulP~m61 zfgR0-q8$YS7lsLhx=Zw97mOr~Kqi*tXVNC1pu0y7;R z_&&T^&81}D_(*g>s=&M<{?LDAncw@){Nr!VFBvJFdLF!x>@(OXt$GE0?yS)Ak%V7d zkRX~sZ%@6^OEqytYDZM{!0h*e@pV|mlEwpI-__hA+*%g=C}ozDpcm%<9UeTY9acxf zvq2}3n9AfrDydG0Pa}U?;V|Ws9QT^zL!Ae=g)w}&KX!q9k{ony@ ztk4Fo+zo)5WBh#s8+h=Dzq(hHutDMgWx2VlUA3F~PbnhRPNbQM_Lg%GZ)Nd9p>Z|Hzd$;ddSl#7dZ7RgJ9%UbL91Nt50+DspO@dvflrQ0SokfF;N`*LVXp z_ZA-XH!*lNa>XyL#x0i(kq8!}UH8e4(Z=Fo}013U{^3eH~~ zOSJf#yTSm>^;ghL+^q34$)z;UQT76nFIok2d~Wg9fZ__~pNo7{q_75RKpSz|;yc#Z zH*tr}$$M85AMWme^OMdUSD0u$l>$A_zZ$gL9MEnV?jg>KRCirut{vGgMlM5v6$kETV$ zHflHc=epLVKW+qlNhw-``d=(68iuA1tb!ZEb-~eS^GSqn5za|gckd%VX=MBRp%nBxhJ++R`2`WR-;|JVup(h z2{}rzKx03ecSQHIAJ})EOH7xjw6S^5zq>Rx!sPO^2NN5{ggT;eOC1J7Ts~1eSfBWR ziU-4gw;P(4;-?BR;*F)E8(2L&M9Edu_F3kpF7r_NV+?{In!x~}_+wl;^9dPRU;IMU zd1$qHQ@1wKvj>PwUJpW;d;eH_qkDr!0$-L7O*x5=RRd#+UTPliGpQC}<9;w|?ESC^ zNH8C?uYtk9zZU&lVtd{8^(oy$OS46PGR-&Ijay}8>(I{An0Z65(+5GEuBg?$v}ybY zux>I15DqMOx^R{#i1VD4mY0Sj3y~H>#CoMo>nw_v;itpHsTa-G!vZYJLy=tmJ!rB8 z(cy3&3=d&T1lDut`J+QPt3r)7ms*$+`}Khy=7hL?i3;Itq6jYm;brNvFoa=$73Q>I zxOP?BsjY$U%51c8;nA3mHnPQZ884a~dbq1Pz8kE=`E%TMSlff^l9g;TR{~uR#6@Hf zg|~{>gJCd<$fz17j5}Tf@225eIQK4&*@@viINlsLTUE@$c^X8$CAT)?*ToXmohTn~QKX~+oLkAq5BIRm?vMX+&!XysF zAf`tnm+JWPI7PXn zGq=5NtsH-Uaod9;^x{l^t`2@#Vr=1ODgIfGfAY51t;gBxX8hBNe`aiZ-8xfLXNu}f zQJpEO6Giyf6n`!8SCnLmqD(HU!O0t(y1|JXoVLM98b?>EJlITAN&J^HgM)#fWl5txZvXYg5$P6t%XBVhi9u zoVdklTjlho0{u`Aa6#!WDES4|cR}@CP<jl%1g?1NtrGw&n0EKq#T!2Q&~tZOYK5^leJsrqpdp+@{*vR9l;BYg29QQ_dwab8fD!&9$|;w)TcV z`hV9RB6;H`2h~~Rzj@=odE>u%5o>P~< zH^tk3bMSw2@PBjge{=9}k~%L>M`D6}e-47c9|QGnmim9)0sooLCwErz?7ic*eELrZ3$B7Ag}B5I*L#`QKh$ z-FD@#X6N%wf+{_80%z-;qUT+Lo{icxqp5J|VNZv9?{txS5rkgX^Q)=1UKnh?4M+F% zQa7l7QH^CwaBkJRjF*@QRO-OtzPXdn0o!DJ$)f1#?G5U-=>_N0aO zyw&~o1U2z&-1~tM5)HO*%NuSq`p6i65t*ZZ<=GgD?E4gY7z|zHI&>+3h>&Deg~(b2 zl8E=&g|9vvY0adsJJjGzTu}~E{5W$W7w_|D&T32-+i0vDK*LAk)?m4U?}S&iaHejd zn)JIAM)t9>JM`Q++9JFD=vnKiiF`-UBx|3#%87u&J_41I*>PYLXTRegmrdV9H{#@f zg=%NN>-AQIalh)?z$e?^CiF0Lt*>W>&Ree-%PPM25GY!rr{bPaMSAC*a&Ke50+Ilty-;kO6f{Q-C4=J(D@`H1F&Ec{WyHTt`8$if(%s~oTqw*Vo~mICwLy@< zi;^X95%VemEg{H&DOc{?5uD^F*cBo#Bv?+wCRwh6DR!=o3F3@L8(T(GI347a3T2o2 zWQ*#gE;SRm*DD^>G|-9KvALjsc^u5l%{FLzOV*T;1B$k5L?1( z?tZB}_!F!1pp0wtL@rQElsEIHvy1}q^_xrFu_EwKbuZahv&RPiuI|aTUHUD_a^Aph zGCUj*vLMxq#@TS?xfA?kIIy)jOr-|S*s=83Q> zwq8?UHIpuxL||l-cWfT5%7MRC*=u!^fCK5TD*o#AYZ!1b0iQj896Ww&lXeuD-6(1W zn$S~ke?xP2tr8(5Wy}T*K@zsQ709fS$QRFwf%+hxc6~}OmOKJ~QSv)8QKVJdNZ^@Ek*cau$lq`jO zu8P?OS$`Ng*7uN;F@W)MZoo3nSmdMiiqKf4ThQLSP1eAirJ5dEcv54Vl1`R$RYx*|5vT@vcVLM@8Gxe7&=hl#XoEI87xXk=8ETRvA8; z>8{|fCVe-|?AA7sJV;`g>2}@S4eTF(Nx&o0dqj&e)3jm(?7Ppf{peySZoxVs$h+(Fn-gs9hVSjmbvy2pxz@>E`us;S_RfAKOPpDcz1ATdl5b zo`{|)r5i(^%XZ`ED;H|;NWxlE;&(=(gD9?9`2r+b~d@F(ac zm}liQ$v9Jg>YaY$(*DP7yYZ7vxLrnh_ms!}G|K705Ixhs`(l*S!(k$xTP59S)t8^! zgUik>Ohu!T9*T-(RMH(X=(X)Zt#N5o(xU@2iKa95L?zu*{hvC}6X&(NPOm*MDwVxG z;lq&S1HvHK@(+1ugol<{)R1257dHNX5-}79;JbL|Xm(X&C|Dbe@>ZUbpDGY3}-du5)Jb zz20g5jDXRDUgt_@p5ilN?+sdgT$Ht5Q)gKs0R?=}5^NA4^y7WwXnz~+&~&8z=xF1+ zX`05-Nov^YN5+wr=*G*|)m7^T8)+P!Cca1j*mLZCROJ{6BGl`c6r*hJOaXP2k6$Q* zMzWGfh2ZP0+rFGG#!)HjYh1@sA~(NBcr=mHND$d*!{|W=3~oz5LO)irivCAKAEvUE zl}6x9qWTWgf)sERBY#v0SpSp;E#>cRpeE&rJ-+qywzG}`sZB|i#7_g%KOi>&W+L$Z zk(oSt_rOE^vHMh5&X#|VylC$J?b`9z&ioVm<=U8&J&Lt*jW2uX?<`*ReToy+TP_AO zIF4Y5oT~8Z4f&G*{~x*vBtzFFua*nFhK%BNJ21!2`-X;T<9`X~&=}+a{(Tg#+3-I) zCdowfO@?tI*I;?Vme&a)h{ntt&E0}A8XYb?IJ_f*-^dujS;hkqdPQFI27FmZ&}nsc ze}6>qp6Ov|{0%WRtjg)>@yUs4{HO6@K0KVQK7RExKXMfx58=R2iIWsfVCbjEr<8`1 zRCA+634dVsq<Lj<=tR+#Gi?N`6)8kuRBVjmV5{DoJ5%GT zc0mJ{d@FHp;cHbt2yKj*rrlOJa&I84y1=_11R5E-(WC47@hH;eB|0!N01cwjkQ-&F zVN`4(r4mEh>F1ev7O7hH_At1T7oG>Jkvnet<28YnRDbC;`SUuFTU$SMy|GypY46ET zjooo|zb%&3ZOx!!<-N|M4Bm3xxHTR;C)QYuDeLO*#;rpbK+}M5kc?8H^g!@E>mM{(omFZ+Ha?W%F#zUC4p>&CE#3<%0RuC-5QnX&HzBLKBRS<#_DWY92osQwLWq z)JLETz>gr?F)4cWR$Ybb@+tR`8x3vX0Cw~k*w~T~7|2!Y*eafKOdoiEfbaPx&VX+e zmH_L!yScRb-BJ;w6WnwLbkl@k`{Lwc6q>;r`hU0|%w0e5#)ywl-S4l5&T4%K`1sGumw&ca~favH&_7T$P_tcqR3Ls2>{5e!8H6d)!!#o}YI9U22( zIP!A@M|@SMtc}SAzWmr9H=Nb@vqSOus)>2A+ME}?x6X^N{#6j%hsNBycMX^lD+)Rk zUw_y_gVxhoUZxkJ?kF^ziq*u#Lf1FE5zKs8v!Z{=idAtCT*VlQ$YIzqT3747M*>8L!JB3;}Elc#q!|dkfujQ|Hi@vvQ~FIYDZu zAc_<&=fN4R*9+3eQBiY(QxIqiEn2l>u73ocQT@z#3yCj4kq7)U@eYXXtqF(e+KFaB ztwhbpv$essv&_Ly@5vqKI0vwUB`{t>RJd{<+3@iN zLsxVN%tG)4-M*SA2r|J`L5Da#H4FnLdFbb_<~bd_Yzxi})@k}pskrgR%;!SS7Lf^{ zQ+;RbsK+XvOxd{}QOq!y0qfY2TZo8|B7$NZhExIQEyHUxyI^b+3<*eZBzeOmwgy52 zoR17tv4&(&AfjeMHaMi$lopQ#FnIHw-{n2OWXpv)ha1*OQ*wms_vh!DWC&W z@yZ&Vr?=FoS4rj~O)><*$rJ=vB;p~g5ZR85<)=?%&7lZ0{z{f2KH@T9LhjNP z1?l5WQ?+9+6J1K74~e@E43h>=eT3nQn&Rr~I()sIgs_m0rt z#NLR&pEV)YV0gZs`yc?g;D`yMp`ghGU<(Y+%$+YqZvCi704K12<=~LIy#uYy+o6~k z#-HlB5#Gq{8i@n*1Q*xIMmaNYc?t(V6dSNZRyBXzZ+5EteC7B4=sm6Rlk3ahjoG6S zgrl#>6UH(h1$zuL6f#^^M!mRVHqPf{NjG4vc$fi@eKi>)Cjye8h<8!b||=GACux-TrWv* zWf2UBV^beqtkOb+F79K+gsEE#$X}Y(z`K{}BU=YQ+4@w8+1B-uJ@UtY}!UO-Tz{64ec!G)GMStbsSkG6HIiWPpBEHcdpua>d zkZ)z`6D);FQ&m@}h$ATC_~3+J9T7bhNrG8CI8{_Y3AUi)7#>Ze{S>~K7GyzU*b@b4-hhEn(^-qR+(dr;_wzDz<`D$*Ajc)_fmgT@qh=9b*l1gA^WOaB&AV)j%F4QFw5ClV?7ak* z)L&vm<|Z`LBZ%}I-s9A~mBFGOzNyWZGw0wYX@C8h(%Wk_?=XM0bk%*D*jRP17lxXF z+I$+UKvdFzMI&Lihbn+j0E&_l;lI{+)Q_HHL>rk|+Qt{Ouo$G$#JCtQl8$Z@xxR)v zN1aE8>yhUW=wsc980Asytb~A@+uNu_3aM@R0Z|uY#XJGD%TIXX1xaH1EJ0@lk~CQa z7Jm#1!-vX>!*-lQ$dM%MkQ$36o`MJ{9j>QS4&*G%zmv@>Y!d8c6Uyo~bz>0IOjjhH z3JU)zRRajWj!&?DN~avMT4Ul-(9)@kb~q?y1pde^B>I`s=$(X_0}N)UgWaOI<-s`e z#1Q!BcxWJ9*_sZDtbkL66vP0!Dhmn=?yLS^rx%dJG;5Yb**wH^#6eq@P~qCPGS$A5lwp8uY8 zE{Iv3G6Ge>SeXCGrpgt?M-6d2Rew%G&iDb%4u$0@=>(FCNoEHr3pO@GoIQEa$ROPz z2rX=>WIepLLKWUSeg2Gy5_SG0dbc<6pmZdfrG6wNNfo|lD^_VHvr_Usv2Hap=@s!W zUFIj>0ho-i^F=Ffh&a9>Ft1e2@|ih7q7Ix@*e%FXpx4K;99P3}4xgdIMK~dY8iS8O zQn5+%Q5`=B8Whhdi8cPA(dpvJC4|17JFAa{RD%ScQJIk=!FiW3`5yy5bQsI|dPCN|&+4+elPm|M%d!(6{KC1{De@XW#>?ii0`at(-(%}g>J%_vv6NL$9 zJMlD!Q*QLJ5DyZy3h8H7BQ`_jsFgvjHlJaZy{7`ir}x4Y%q!rPx)>($O}OXLBw@j2 zvYvA>90df69>;4H&gUaX1dn*zILoF@=fTjK3(Rrip>ihDgSsmk1WS+?ow3ny(fHZ; ze=uk^KGHP;qu1kgn}~EwTL3!pb?NTxLAkV{{x77p6+Zi;neYA1nCT2;FT!L%xm2w0 zP8nYKg=`#m19E-!3qSe6BM09glwzcxV1%(Jb-Y6{Mx7i7? z;<=k_(L$S7VnWeq45RUAn~qD1DTazhf1#z|c&lx6$mNT}RU>dG6K~|9+G4+l%{&~% zudoZqeOKvM#U)^>S%u0&fz(p(&BD>q zOUX+QFyWB0tOldKMn1OrmQF_xs2tYYnG}9WJudmKycG?Vmtsn@oJTfK*IKmZe?@l) zQx=(4%ucy>cv`@jV+bR@2EmeJa8I4}6r~cB0tG4TJNt4IImBqZaSMwZJ;=wz@jLz? zj-LaE*&rbI9{57;pa;k_;skin!ROJu@G%J!J|?fxMisYFGMT(U%4G7#(<1vtD3|H% zi4#DKzdpf1cJ)J4qJ~Np9nw*if2V!yGyDO_x%~Yj&&EX3ym7xcoV_@7)>i$U?L`T1@R^MdDUDbNO*R_ml8pGk77lMZ zX!v6K&&K8Q@kvqp$@Wak(d49ZTu$_Qsvhx39j$1=2;|T%;K#3^gv3t{LqJ+AkQp#O zhk;Qr+*NKbQ5Za&)9)&4=7!Jb-fDpm2X`<=Xv~JUKV$bPrQA!$e|1Xg_b!{%XbRQy zJq65Mlsey9LfS(qZEsLzLnw85J`Bdsc_FUxEG!u6d{1}eU19JPmyz<|rF~qhA+d`u zSHZ{)*+&jJHo;-cQv0&pu1DT#v?i001i(aI2p{ZM?$a(GOxOw_hS$imEYHU@__<(t z9urYawQz}{)G%=@e;B1&f(k4$=;2%4Z7or4h>e!!m@D=MOpsqtaiJVIIHE4k!TVUb zhlK&F7^F&w&vz@SHUlCzhtx_8sR)yj7}MA)P6CF6d`MUK%mM83D>h(dxibbcq$-dd zD1(DBoDD!sLz_xiT5JV$6@+1RzgRH2Y11GW>y~+I5kv85f4e?Mc<|+wFQ3|YIHa4P z9d*!A3>os)6(KC4rKp~E0+->H;85kxKZGAse&BmrK-YQ6%DleYWI+>HKg5BcZZ{We z=p_-tV4bz|@`#NwZ1|AqlCB1r)7YqmOW4iuu^EhEjoi2}rs&Q>{EZoWP5WKX5o&{d z%rVvi`*Y}=`a#>cy&qqgb)!g!* z4AbJ#f5fcEVj5W*>HWJeV$6^91}XXPNMx=s?B2>7I4u6c7~r5ET7T!_?gOar+Gup|zi)ceVUxG-0iIu^;-e-S4Lg-4$QxQdxM2qI@ri;VC3t2sXQ zZspDRqmnweY322KhJSB~`ql3Se-Q6uwupR;9rKMV2@!OcDU60- zf7ru9HFkmD4GADgSo>IfrEI+cP9P~;ESyO~un=Z$6BdZ%!JU;~c;VPk(Q2!jRt#HX zYk_sYWS+h^z4?$RAYB&orjTEwDk~6p-=`KmNMJGYN*ILr$T*Ahc7>MK?P#|zHWo+;HqxpL5 zYDaLq_eb*q7|-=mB~JMhMA&}nvzf4>|Z zL9ZwXq)Cjpu>($H8=8g<`Tr#lHEQR*w@vy#5l-XHw8YH$9gK`VBse~Msk4(jeRQ+W zj8!dIs5+>y4YoR|@F{d84dapfWR}Y3ow#h~r^0(j&%NE^e)Gt)T!!*iJyGfH@=hv~ zwKEod`rH|aZ%NEc_)g%fqY$=-e@&#&_;c6ug{~t5hCW3FqG;~RFslZ=q~%KP9I*1Z z1mhqEUPC=qFvlxWp$`>4M6R=fjfjOm5<=mOvlC4TpY$V78uu6&~e zvcECL8Sb`k(h^8)=z~_{>6{lg?X4Mw%*6S!7Mxx*uehv4aWNu|LcUal!qi@cTRzb8 z$oeoImbYXX4=Y>09But_oUUlP4DHnuK2$e9MDjy|OQG=GT`!i*z&86r`z|(*Wd4OS zpR9eCL0$wN7v{7ghHyN&56Kb_HzLfQFhwIwW*CKW;>58T&RQk&q*4jBb8}*|!+7CB5!-+EN9f3u zC?Ko#@gcm)Uya0P#o33?u=Ar2O{;Nhgc|!DL4QxAFw93B31W-n7JrV%E&~Aeb)m#f zT}d$yC`kLc6Gln(!v^Bq`Uw-U>}A>-0NpLy20{P#+z@2E(d<8(cqq956zE+#SCax04ug5)bG?%{S{Iig z2@M!D0$W{^Aou6p|75912EF#hMXSeZk}PpU$V8+q5u(cGDi%7tM!03;iJZ}_Loc@R z`$UQ@myx0e6c#Ct>i9xHFw(5o@q3A6E17I>W4GBnm$0`8B!6LpCIBL?z!9SBt`G=F zKS)@W3Io#%OBE|=scnVWOvJwIZkgHi)xvOM!<4n*2g|Gh4umnK* zAHwkq#RC6*6q_Hj`YLpP0NNgM$!G(`WSE0Z8W0#@Hx20S`%K^@uchOwuMiHfKN#ZR zW#T;Th?w0sG=JC(u<|E#PNM$Ieo5BCV418|R}-rqhvPm;}T zHP`6n)I!u$txQNstWz^3=}LCqZ(rYD)e!4yJ4;WTva2lz{dp*+fU)%45rYZ9%s^vO zvhbo z)3~67On+kwFP{3@8wuSIq^VfeN$Q(>2N`_&jBW(hObPfm&T17r3XgKj;14|NN)tjD zMXc-44+mMBp;k0m#0TRJLb)*Xi!E?$Y?S8Btd|yFf~MY<Y>~>$qGVmSt9U^G*T;$#0h|1Ek(ccrbOGQ-2qHXrsoAT|9h*GC>NanBRDlIT}5k0L-3T5|DeTbN6+86&GR$w3QNK3+Gi3@y%% zX2}&2pj8;@B?(1rK~4o)0I6w5hukC>oan%ZsNpR5Oa{lWo)^NDK->A1hkgnO#{?~q zOb8Aza6*~7nfbUtVatB)EYUKc?RU^@lYgC(s9-$kO~}$r`A-3l0+t6@|;jT1auXw?AxVm@qT{+>Cmh|;<^yq*O?oY)R{;~nJ$Cdbk}p) zh*98>e+u0buOn4-Vy%eY4Aah|EL)QE6f3Me^2Q(pjI|$+r|^g&*E}jBbjY>=M0+iwRIF6pjeKqNI>ez zrriWEr=WX7pH`i1+#j5V9c&Qe zwH}La@u-EIsbHY+ws07hj*pmVRmpfFE9cP=(b0S)ISx}sJTQ;uiquzgH)22%3Y_I} zz%2INAm2ORMI%j+p9-1#ir5^M$V{MVqQ$YJKarlHWnfN>ld0KYe$8*_)_=gIDN{)K zYH6RaYYt_`lwoE_q1=>F6da@2YgqXx&f-&?XcOIaCjjSa(V*E-g9^1x7<5myZ|iJ^ zF(VN#!X>2SZUl>zzESbUvrRFZa z;HK(gY^V3>ckd;uE?Eeg1An>D$vn?a)U>&hwXEZ_w-$l^xl>`>K+f){dLuawgdz05 z&eSI)LCo#OW$ossb(NN}i1XEebwB^^uC{6w^b>!Eid9!SWPfV=(Pc2_tIe%Si#U-~ zJN#f&N=GNh#Zwb8TCD$NogSEZ;aANDE---JnB-pAKgLG8sU1Te)PMe7cR=tNkMWSe z0f6G8k}N+NP7jr#_6!eNkp3Z4{4cZoe@sV#y%$vubP&zbHvoSkM4&fo9Fpq%(K%l! z?01%;hMqI_X#0mR!b20U@1TNAHNPl8bbXf4jTrD}!+&%B+PWBQo61rTPYUkXw0R9X`G#fPwkW1jXMJ1i4NUpNl0Qml zGA9qmtm=vtJ^dzbU1MBP6a-4DdJww>WIT^`#Nk#{I(3{ZiW!wuBI`;8VXu&J&7ecH zZCVJB)I;mIsa?Ql846@3rK!;o#uv)$LV(?=GYe?g=Ku&R+_b~w9;16N~*BUPno5S#tV5@h9*(Y&}cvxA*=+fE(OMGz+7L? zC61*~V<>mNuRiS$?BEKA2r8xxxo``{1pOPXE?ijF7-oi_1pAh?ONpnc_LQ_6l(%V(A6mqBGfaPdZR%VX>cKw{uSNi}05(~g#KMEdM%FgotuyUo%T(ldb^<6~kQz4oBp zs9o9JUhBO5#mLDQImEa`mHnI~m3Y4ytvrH`7LwE?641~K)Fw=UL8wSJy65&%CuJG*OLwtpK}ExUbl-l6mWdO(H0XJ_c%P1>JYztL{% z-H@3)E}TfR1xZx;1~t1&&q%Hc2cpq48cz09GSDDd?p5pNVsN>;c|s3ffO6e z6pVk_Xp4=o`w7whJ1oxD%Pi6qq(#qN2CIm|5-c_9wiuM@cl%1VL$p1QAge&0L;KJT zfv}{@gD2@M1fZp$)Fe2Y%6zmVD~rtdAl<{{ks#J9P;TiP*NB_Z_Cbh?&^G| zAduG?40=|M}1;dCHoeK&;WVlY~F@iW=Z0Ci#kYF4UaG#-ygf|f>c%hKnP+Zz;N>c&ek-jhU z>B^FBEIU?gLl$5BogN2{J!x#H}g5^1p}L}`fcW_n`x~#q%FN6ZTSspD{n}9^oF#@Z%BLc zhP0<|NNX0~lK3qnXTCIa(P*8x%jQ*4_afV>n6`C_${KQ8`L#8ur?+1>8n%CfJqBM+ z9EOL;&otZT{m;r+N!|`fg;dsIIhCDvC#)o6hZWk3nuyy)d)=0#%vuvEDJh=8L$0*z zjjKwqp*MrHBluS6h7R8BT?N6CAO%D~8G5E#^wQLCrj;;csQSl6w!hPEmC@ciDP$&^ zD4>Uw#4Un0kxW1s4=iJ-XJLP_Pr2O>O&Myi{%p`L^bzKdI&L5ZQvS=V(|A#0-$5(L zfLOtnlCxfmp_KiQoE7PgNHmnpsP&%F+qR{gU5zVJ<8~1sTDPt2%=e;waaar*l0h19 zJP{a@JjJWIpO&*%*jN=)9Jh&FeZN)0u*9sGP=5D zfyjVwbiCq}1`AH&#*voqH`k3;1+_87RwG%H@UIPi^Ga=RvOp5vn(OEp`U(Cu2q#Oy z4boS|?cSnKCReV;I?}qSdu@oWg3=KT-hl5fz`mC@tX*T$g_)14VTayV8@y%s8bvYN z4<>nT6Lp|FGQk-Nq*FbF@P|Kpa_4C_>@FTV2dysrjkh1^xjDj3=w0dn&076y=N|ek z0b^Oe{+u^1NN#G(+y~fV+~}*{YyIQ4mw~Vc6j)W?#8L@1?G5FL#~WvnF7Oijjx0~$ zZHMFck>l-G|4twkl2hNzQQ*hE_g|XVCb{d&BWGbJRjGSLjON?#z=^!m-Z*uG%wWsg zp{k~2h=#Uw;Y#CdY@(O{n+6tty?4pFw#X*uB0;#9@+umy9!^er>rv@9A!gO0&U{=)DH*qlolakguX>V9{H{7xL~*o-%+^i)SJaWu41A&@Ew zW~C@8BzqZIoG1*|o+wNyBz8nzqvJWj2cbpr+Rd|dqqJ=lh>(m;&*s9cofKAh6nLp% z#AOiB*!Ds=P7|tc@WAbVqa~Pru4apGcHM#BAtKKPd5kKngpZh187M+grkR>4Yg^PV zCoTOL#3&S}@{q!CQKR0wiRjqx5v^Qc=V5QkunnUC&9j||@3$M>Ta2SOat)yd@qmFv z1MOn3x*r>L%P<2J7J_ge38Wn(QVLs=C5|fv0l>Vmi7XK2tQvEF;bGKNMSw^l$e4ofhZ&F0GodgjgHm7+6TZ{;FKsp|ZY_*Tq^{7ove-Wod zXEY-NO?l5-3sKY|Nk@)jE$z#i98EcjA=-y#7|^l>vyc-)fqswTnU++BCXsW8bShoO zmyu4Ota3@(txe{C-cnldN>kc}z-FY(Dl7_ND<#xKT!~^|-&Rc=N-w)2j{UoiP!#R> zD$0+1P3q9}`&gP)HnQ4#)}YD{NkB??jdyDxJmAEh3vemQ43flomL55_iiu~^2~4EE zyLt%B#OqV}+Dgv5qI_RUzBlFja`L?;-&gd|vSvku1qPXaRhz$hk_rX3B8AM(#=88t($SoN6yM6|EeGKTFOkG7pw&blX09knFy2)`+ukzDI@0m zdWCVe=|~eXSQOjqzek?M?#TXLxqvN|0zEw$=_t0~7FtAwB4>H+}yN1RpPhC8NEgA3B=P$}QM>{IL z1d65NoS>iS>zt@bV}l0Jg!amyhKOg96EGds$a(r1{|bbT-JCK3_gu?&fK|FewH5(X&AjYKA7cFkOxZXWJd*NF5^AQFc&V|1^Q()#sw-IO z5l7{skn`ja5s3IVB$fuF(RvlTB=lX3ksP^yLTRC5(NovOk^@TqoN!B2n~C(Cirp$SI^crDT39?UM?VYPrv@yF+J4p$OZmE4+ZwIpu{N*zl6#W)IXfVUIEO0Z!3R)iqG!b z*M?lr@$yg`)CPYNt3@SHd5O`Yc6jUp106f)87!z0)WrIdaFZ~3Hsh#QB-6${5yP>D z>Al1F(5?;gM&kYX05QM60*k}gYk!3P>V!tCE zDMy8_c#m~mtF7t1=)@1jLh-ad|vQ_v?{3HqiVqgW{s%MK`LC5l=ei}IW0~SOR%iK@&hV_2twtHv~$mca4tik z!S-}eF0us-?)l?59@UC}GC(0@Pa{jxjtT;aL94#-_J~Y$F$B!w+KFZj8M(d|wK38{ zb-xyIw2c@80bWZ#chbvAK69{g87mPEWHYi1dU8jIr0{nw3WlzX!^k%G>{Up@4o3YY z_)-)L&d_? zHG?n)dnFy}IZ@0dNO|8^j!>7>*Nf#_OVL*2BkMQVDT_e66K@c!JAB!@<47x8ToIDJ zin1C141*IqN+cE1KyNMYfbR`V9p-aKp?t6M_97*cDY6&=-q0g|qre})8n0G&`DmD_ zKs_3Hcd?t&E?h2ulPn%3EgN>6FB-^_RfBXM6zer^2?6{|7p2{tx{}7&<+k`iZ8UP{ zH4LAqRFpg^`tB&KGX5yr<1)wjOW7>ZY)!}L8AZ3QfLN}hBj;9lf61FIF4%gZP~-`JT;7&A^s+p5vEliLnF*rb zCSl8tRBE-YV@Do)5W4xDqRqB8L&)&wQX(BgOQq|GD1D+Gm)k0{j?uF^U z7lz)FPU{pSn6C6l7(^p@-26m1#DcNm;<}|NCD{;vHa^_|0B*yg2KulG@f2WI9jPb8nzEfLka%`RTKnp9Q!-Sudr759L;LM zdGLsUUU-!W$==1m5K@J30aeWXAQ43vj4uj*0#f3$5)LoD67pH9^AF5o1~=PYDW3ke z)k^yRH&=TSSDWGQMf%PdlTx^!LyltX`jy|3m#mg{qZ0xLgNHt*05+GNliG&?Mf$axLEBG7{wSxjD72%j7O2i^+EK1 zpP_L9GWBz@PrbB3#XDUxSjS=k`xD>XUAY9pu|LG|L=Rsyh(df!VG~ARkZ7z~#{>;M zD$E$=X{azaRO1tZmB0YxI)dV!#Sfjb-9nM_cFzj4WumjMJ4AEgw6@Lq^fl=vv> zE+i=$dcL!IW;jL$OICah2!Z3#4Vt^!y)SmXS8G#DitPn3jPkqGIR9F^{bC~u|Dbkd zgUEQ-N*~9a^%I%1hM5)?(P(|U3}@aX(im)ZI`n8vrIh-VUt2d9?VFZ;(`omATM5~X zlnw;!R{e=R^4Ua^`M>bekHdYbknQ4DL98d~*#~Dv4ZbP!*qD?jUqRP5ok*onnHhWu zA*T3O=3aO}a2Q8v?a`KKP1Su4pCr`wkTzJovHVz{mH@M&Wp%qe7a=+n1Kx)Y=ja0{ zZ4z`HF}NipGRWxC7_PnfSiF^ga$#B%m*H!0q_B`S)$L8!8UGUaZWY*r2z5hdw6Ms6 zHS9Ta7ZFp~*b{HqH=XAp-E<-*v$%H0TblTs@{;3*sR+{!MpuL6DI~FHRN?ah zpLoP&01}P2J&rW+Q5XK=f~T5mWV3Q@qqHi?{dor!#7ne&E%(AP>#f3w3~7|@<2;a>n5R?vNUPd zrv7&a$SB!l!?BO=ROrTk6`35@nUAfM5#lBM>a#H|9v8&*9)6P!76;|x`62w%V526y z>RCtnjmlSFli7Cwr?U7i_cdGG*4RwrmtALLt@);=^~Zy%GBm0+A_qNX6kE}!m)>BK z8p1fxI<9V-On4S%Jt!h*BSxZ-DH70>d4mm?6?!qkm}2KDiw=~3SzU&|bc~7nC`@BR zakAEpv%Cf3atq$LUcv-m>UQvsipDz>TXRPBXY^UZ9*{m?&@MucTQUUTW|*_QK|Mw; zZ~WnF&7kY4xB&EK}K&uYqF3B zw<8{ZczVhw8lRsH*bqbG0}AjT#pV?UO@#z^Ew2~4o!p!c89HXRK$ot29r zdkB~xp9#bpH$+DEPDS=nUkiI#J!`41)p`;GoV}(i(Q9Nh;xNki(0HC37&#ne*1yIb zohDP;_w;q`y!U5!b_P6uxb;eW@XXjD)}I|b1gFC{xn^45=9|ek zmZo)-dOl7)pQN5olh36hPi%iU5_9@yI3he5$t(ohPse|=5^>_J?SbN~UNWIPJ-pii zX}uA{H0c($5!XyP6{hC7H}$_~p2uDve==tgPG`c)Dh`7#FebMzdU8Iy;>ewN!GlhJ zXWL4VALN}cjq*MRZxwd|3EiKR&_x`RP`J5@kHWcva=>;=2J^B8YE1A!taa7@IPHGC6K>q>pc zj0L*+GCnv%kVDsz`*FK~Rf&%W!Z-?P$g&A_)gIKkt=?~BXNGbz=?jE5n(X2TtaYPQ zb)jDr`n=Z^ivlMaJg_a)OJ!PVk4-lD!|)TG3lY;Y!|o4c(rP;5IlcFtc`#+XOl4Vs zehuvVT_qm}p}WmX@HskZHXAZ9iG+0AAeYgu1{Qx^6FkbWaId*nFtnm^75yn?yVHQm z?c-%j6=RZr6JzQ0>MCtWXLR?Y2vSHIh|l$oQA4lOCvU-u@7T*I(dc(Ub)%FckjVmv1Z$7k^(d ztJpA6hJ%eoK7HpeGPGlxwGwR5>+FgVE>^E%KnuQlWyD z=y=bF8&0WGyk9yL{i`4iqtwCkxR^qzldUb=)@zy@CojDvdFfS!FHvw7yW+Wn&8_Ye zL}BcMZ+wWaM?S)~xp2qAtDbMsB!9>ZInlhdS1^!9IjeekU)Xmsq9)#%(#-`AAG+V6 zENf8oIjWbp{Ft`a*dcKB!21R;Rtqm=6W9rENa!-hXGBv7vcidk!f;Z6IFdvDQYyWW z-+D!U$ykphUj;Vyf?=_|VnnPtvS{6mqM}Y7XJ-gfclp`Au6?o35s0sK(|`E+Oom`7 zYWBVg=#J57C1K^5u+q^BJE>GoPNp^us~y?qs11;H8diHQ%%ysE0s>RQ36x<#2kGzmiUAcHb$k+$7C3QQbALq#s>k+IhLIsNtiT`Sl`iDuO3`eXl$OgNU5i%r*hj#3Hn=0 zgwme3$)p>_y8+c9n{oZaVS z>PyE2R0wW(dn7q-irdOV&=w5b`15XNO+iCbPGz;`UG1jP%1CrB6AF78=Q!r7kPbEh zQvmqi1Vt80!8Nt%*2Zi$IL}r%REKm+^)K7EjfD@r~4D?}nr!XJAqko&@;W%OOzn z3B%JAnT>fQj;|v^vq;si2Nb~3#ehG`@1U?v*>oVmAI(j3PY|U@odior0C4P6JaH$4 zp+Fnym6!2Z4;V%P!Ti3aFSZZawX@uP4W^)3$Uyo)pzv+#FW_X#j;+~t=^BzvN}ZRC zBhRMK0`leq9YH+bK!w-=c2t|A)sNkeZ?l$vk(c2x4I3ac3Czr7iajZ{!U0^$tsv>{ z))MR`^!PPzgj-mjU4j6hqDlV4v)I7NnYIOi(T_WOM0P+#RG;U*cG*hj&SQ7spclyFPV5 zFvr>Y$E@5<(vGZhBJzy9af7`9#)zO=L`Z|`ewRNp4H$ptsAo7AHdQK^r|vq!5P~3f zx@KaSQGk!V5#wN;-SKJo@#)gX~s9V5&N^JYmw`{u`1W83|WyrjXvl5BmLWre8mN!U{E#lcSA z@8DsNAi{%!VO*?&^)iN8XZNviMo7wtuY(qADrPH?&Xn{2EG8VIDXDHN7he*@W26yA zYs33*jw6rC>+1eMg1EtZ)W+aRgm06{a!lHjC5(Sa&d%;SSA*I`%Qo%$&x4kYLyp>_ zX8TTF?xoHpm4YdRj0}1%pTh{5P8Kn8H?6CF z%%CWhG+|+68rURk&n7!zw3(|V^aZMeg=l|fN#N7sW)Vx*xlfd^rHJD8B80Enw-*s1 zu9IraI#kZ^8E2@iMPNhl4qlb;jYUL3^c_VEpO+4KgRG?l`sO0AJHN9bRK%Mal5wA# zf!Tsb@a&YEs4bK>Be4v&qkT_Yy}UX;qb)7gB+IzCv5^5#mfvKo=+I?Ym}+iZ$Gv~E zzybouV&a!2cH7cXkaJ7&Q&v^k|d)gvRP`d>RIqhP1$MavZ>N` zN?oV2_J3V1moVXk)yi&=z~uQx>bZaPT3R=~cH?qOJ?!C|gl61P%hA?anyp6d=Pi{q z-I4R0-J0EP*&`MfqsLMxY<$4@*%;cfs?@9}QnouPnY)k3GDp4B=@0Y?PQ`C-h2OIa z8gUa)caYJNI80?VMcGxS)=ZF=#?d@G8+7~I3EQeKg9Sq)ylj?$FlV+|CjI2=@w}F-8p{# zhMWG^5J@S@ccOnLh>$g)GkMZ_G-%RFfu%x+gck*K4^dhGAwPo+_3FF{I&GutCUau;f!r#7%@Kmq7 zy6|lG(--M4?wG{5;xhKF7nTQrER}lzTf(8W@(;7S063 z-2hdx)fxi1k&_C-HA8=Dw(prBNh02S;j51~<)~O@4Ck+Y{aGN)J{wk{cw(NOoSNp5 zfys=&8KyCbN{0)K-%iyW zv;2Qjf^X5sX+`QS5hZ?06W|2TaI>lz@TM=0^kR5~@xwzHGGcqr9eK-DFv76Z7YKVM zyr({CfNc>5EJKjR$C>NS^9DLuH5?yN$0_s)!KHEXf^ueIYN@HB#qpY1I7=Hn!WW3H zB56e&Yw=DydZ1Y9WwYP)wDD2MV5k+kLqWOU$`a-OJ8ww!gy1x0sv>PPw0hEq22(3X zjzLkg^)b~IgIO_O^1PArcVlh6YEgar?Ax-8zGd<~#3T9O{y)uKS##Ss5`Ny7u{jMN ze@CL?WPbg2Hx7a%ASF|?Ra2F?660%}L?1w-yVC8(>U}l$3puI%&02l$*k<|qhqj4$ zkD+@j{(HE`0%P>r)#ao6Th#Q2b~oDR_*d<1Fwy1pdZqLD<>Ox!N1`8rs5HQsf3j>J z(+e6MXvn(qHdPPlSOeKcRWG9e%ZRYge|Kc%(<3E%>mtJuN^>8!2ZenV9zZ*haM$z= z`gaT8+`7BkIjLBW_<~)`)%myc{Jz@}!INpO+IpqYJfI;c-+obUZmFM~9#@tBuSuzX zK|ePu`*UMbI!7j@^P`gjP147Fq`JTSgmjNgNcYd3knUf8LV8Cgr1$4eNbfH(e<79I z2IbW`j)PA*S-j$Cfwi7Cw_kFwd2L(TKyk04(vN3i7ntx2#WB@h0M|f}oSLI^?_p@uQ3<6F-ZS z2Jk}#82sAqoHQ`)_twq}NCnu21=84&KZC`b_+vcSqnIYFb-&s^y)L%Ke|Kk~vSgI= zBw?*$`@ojltrdjPfm`^a`5~EAiKrm*&=qQ=!#GEUDO9+8T%j*7g)X(j`aU*{QS@Cc zLOXbIWi3VqMO?*J2wR`E;D@y^#CG9_z13+dLvh**J5<`S7UPQ%3PEWv9Ae?nS|~RR z>c6Zdg3dFtE3AW?&hm_pf1xe-7c-4{Yt`_*XMQr`Flh8N(?>MoQp`#-A8CfeS~|!< zNh%z9oXx=}7bmsW=o;8bF_>l7f?%*OzPGHOeB#dq-!b{LVUgRc*OKi9#Z?fsyXscMX@)n9Ct=co?8W2KA3 z$RLX=L3xhAkFGoq#0KSwpHcOg7^X1yX-NirJ`6~ZNX9kG0$3*4+_&p}ar^j@?O$3) z(3t14#ACz>Cq+N;e?M_aKoJg(;Qb&^=OHu#%Mr++3yu#WOyKjuErpy81IOX(Q2Po4 zbnK@vg$R3E>~{7l=YBFlp%eKjFfZvi@)7L$or7&jJlXv`F-X+8yj_@nnxMiI@k<`T zs-mOKN1Z%rz5KddTU!%Ux-CU_uqE1&I?FFeZ`jHondPH3fBbXplIS9dvkdhVymbee zBwdPSbc}_8qAyBB8MZ*Qo=UU9VPMh}^9TNJn8D6=6`+7Wp{f%TJ1j zY+skboWt6SMY+RdnaJ2dM{uu5fEt1z6NZaPrudx8meJw3#8aH8QSpn4pI zpKACiz>oF*Ory^ZO`YYFZ378fh=osH%1V z&8oJ{F%lrYXuc!syfS7U4PoHncoz9WO752H`y5rgy?Rb>;_281BdSz>dzq#|+Nl@jxzj=5_0e^>{d zn%{qGpVkX$la`YfOv)_!|;l=-oAZn(8GGer#_7*DV`b*KsT99fKQ#jw<3ZBcTgDNnIV8W zj%vUjjbULw^MStD19aDle~xEa9uM=xpNy!^o)tAre7fBc2loIQ7}u`Re_)9IfF#vt zZn97;8iqU?Q~)O@midEzknF*?ai)0E0GT5NO|ix~~B%cj@G*M>~eU={v9 zL)8)UP~ERCm)l)sGiWf0Ed{rf=C?}E7dp$xYv!GMm9;A=q!en~OO+hzydgi2Exu$CuaCBi+tu?!<$K`C5JZz7KsPurH|FJ@ zqZ~Uey2`v8fA5W$?}|W~nm!-iR8Ht=t(WvXXUM!EmVXr-F$6JRpP*rwjOTt*`W$$d zNU>cOlvw^@Sq!BQ0-Y88S$f2FFm&L=9!iP~RKa(y6sRg6xq;$gZ`VxOu`IynO3gw7~efI1sLHvo?H34b`O6}rWEgk^QEc_mi88O4d z(+fIg6_h^xX?45Z$O!!PgB2-8=~^?NrKtTLU`Wevx9j~5q~ZEIGA9c&GP+!yhQed- z-r;QZe=5_Fg34EdwqC7lUY5OjbwbT^lPq9ouEHV5Yf@5Z!ANW$hJniJBdq6w4Pxf3 zf>_-kOjyT_7{`~Oa)rPdP7n7)SxS5Wb`2~E2KAM3UqL&PAzo;CD)r!@eJqX^#MLch z-nzl}B*f$yoL ze+{#HSvd;s@>^U_Yaxb%anC@3s?3g5nH&SnIZ)CdGXfadmuRv7wxa~u2b#pBsE%=L z?h6!KIbGe$CNxU)1dp#?=;*6fJrxh}UKM?z4q(g=&W%FTV7cE_5&r{FO9KQH000OG z0Pt-`QqbFcLXiXj0G~1d03QGm0BLS?m-(FpAqsTwA7FIvA7FIvw;h9SU^sA7FIv zA7FIvx3MA%fNy_|>F-?L^pkytW8Lpv>cjE8O!iMS&Hiu_!#VB7a7Lb*ST3G0h?Ev{ zNIVnJcX`RBr~8yG(gzM9Gv^65!73`714SCsA0X2Rz-PV?i)R5rnmV=<7Ie>RRr6}M zb$T#5`|a947-bK7MaW%bcWcK$()bGGV1qvIAOzdLu&RF;6@M3LydmL1g_#sk+lkB( z!(~|&(^vF_MJ^i5BKp+wz~lyM1L3_Oe!{mL^PdtQEJBb*P|$e|j8ol1feWh-pK`Y& z<9Kl`$56%Xd3Rm+CcY|!!24QH)^HobN|`n?QlX^a8);D82}GDRb+hU3@X?-6IUYfH z#Vh(9pB8_iDFDqfBNAM6&#u_-ZzZW-_rv{C>`5*gI4ps|VU~_mj>{0ai`lGrg7|`$ zy|;<9HL&QZ>dPKn#+ct?+F&L_%nO?-SX45&MoA{3l2M#^D>ML2E&~=w+TxP0+b`|b z(f+=%LQ{ncON;hqwQA<;O zlW+*t5?Rx09hQSb4HNyAr^WK#3pUp@|W2+N^8+mRrOAc)!R;583;4F?z;K zIXi#v-=1I*Q)M)A_2(;_uhiYuJ(Q6h?YVgS3|Wq>kX-;b;7u7+&&2>L$+r8UK;Lxf z?dW-w6VL4$yrc#%aq*h?uft?{4G-K+MLUQ$w(r4C5t4X^le!Kk@eU_-9d71*9`Ep< zelr67wcXF%h^``_}C#-w-xMcI4&#^BrCmh4cwq zSG}HgxBPFu_AU$a<9_tDWDu&o^r*c4@tK~1^&r1G>wV;-dS4V3n`POE9~&WD-Fy!5 z=tv4UBGr(pO-Z}@kRF*vu|Jv}P_2Kh(9Y?yK%3r0G0TTKyguHbpi9V?vpu^z;YENg z6(vl`hQauqBXfW|o`n|aOnx>2<;hD_aJ*ZnkRsu=OXQsY)0sIT4fKH$11#qw>-y5e zXx8kqDCT%#*&%nwo44b1XqgC!C44)daw3EIIo1)iR|lW_@LV2qek