diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/.gitignore b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..9bb55ddc983d38b1cd019cd2873114ac8740317e --- /dev/null +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/.gitignore @@ -0,0 +1,6 @@ +*.elf +*.bin +*.hex +*.map +*.o +obj/ \ No newline at end of file diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/app.c b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/app.c index 4fa1948298b9449afc1885e75db7429ad9e08efa..c0e4d84f1d3f07135e2a04d6c9818a0b3167fd41 100755 --- a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/app.c +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/app.c @@ -22,6 +22,7 @@ #include "app.h" #include "sys/util/stubs.h" #include "sys/sched/scheduler.h" +#include "app/leddebug.h" /************* Private typedefs ***********************************************************/ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/config.h b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/config.h index cf6adc3a081a3f8d43a59880965b4b6d578b5ebf..9848bf631e61d8f59ada7672038850a25d0b7faa 100755 --- a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/config.h +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/config.h @@ -29,7 +29,7 @@ //#define CAR_V1 #define CAR_V2 -#define USE_RX24F +//#define USE_RX24F #define WENC_V3 /* wheel encoder with tacho & direction output */ //#define Board diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/leddebug.h b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/leddebug.h new file mode 100644 index 0000000000000000000000000000000000000000..16394bd2fe436b78943d9dc29c78831d05cb557d --- /dev/null +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/leddebug.h @@ -0,0 +1,10 @@ +#ifndef LEDDEBUG +#define LEDDEBUG + +void debugLedInit(); + +void debugLedOn(void); + +void debugLedOff(void); + +#endif \ No newline at end of file diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/main.c b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/main.c index 1e63bd887d788f76c1af9e84d9b1c33eb97cba46..c0c5ba6a18ec8274ec64fcffccd0521023063e1e 100755 --- a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/main.c +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/main.c @@ -10,6 +10,7 @@ #include "per/gpio.h" #include "per/clocksync.h" #include "sys/util/io.h" +#include "leddebug.h" /************* Private typedefs ***********************************************************/ @@ -28,17 +29,32 @@ int8_t recBuf[750], sendBuf[750]; uint32_t recBufSize, sendBufSize; uint32_t sendBufTimestamp[750], recBufTimestamp[750]; +static gpio_t debugLed; + +void debugLedInit() +{ + debugLed.channel = GPIO_CHAN_13; + debugLed.mode = GPIO_MODE_OUT; + debugLed.state = GPIO_STATE_OFF; + gpio_init(&debugLed); +} + +void debugLedOn(void) +{ + gpio_setBit(&debugLed); +} + +void debugLedOff(void) +{ + gpio_clearBit(&debugLed); +} int main (void) { // int8_t varMode=8; RCC_Configuration(); - static gpio_t greenLed; - greenLed.channel = GPIO_CHAN_12; - greenLed.mode = GPIO_MODE_OUT; - greenLed.state = GPIO_STATE_OFF; - gpio_init(&greenLed); + debugLedInit(); /* Diagnosis of the communication protocol */ recBufSize = 750; sendBufSize = 750; @@ -56,16 +72,15 @@ int main (void) app_init(); - /* TODO this is for test purposes only, has to be removed into opmodmgr when comprot is active */ - gpio_setBit(&greenLed); - sched_start(); irq_enable(); -// terminalMonitor(); - while(1) { + //terminalMonitor(); + while (1) + { } + return 0; } diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/mavlink/src/mavlink.c b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/mavlink/src/mavlink.c index 7bcb0f054a81a5b4f7f1cd4eadd274cb1d17cba8..f598b8ca793fc74129547f3e0a64d1576ce8bd97 100755 --- a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/mavlink/src/mavlink.c +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/mavlink/src/mavlink.c @@ -17,6 +17,7 @@ /************* Includes *******************************************************************/ #include "../mavlink.h" +#include "app/leddebug.h" /************* Private typedefs ***********************************************************/ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/stangproc/src/stangproc.c b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/stangproc/src/stangproc.c index c32aa18e487b9d097a6b2246634e072709bdbe39..a116a75d2e26625479cb390272e31833282a0adc 100755 --- a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/stangproc/src/stangproc.c +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/stangproc/src/stangproc.c @@ -58,7 +58,6 @@ static float32_t transformSvrAngToStAng(float32_t servoAngAct); /************* Public functions ***********************************************************/ int8_t stangproc_init(void) { - stAngMax = 0; stAngMin = 0; stAngTgtFailSafe = 0; @@ -93,7 +92,7 @@ void stangproc_step(void) irq_enable(); /* call servo device driver to update to the new target value */ - #ifndef USE_RX24F + #ifndef USE_RX24F servo_updateAngleSrv1(); #endif } diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/stangsel/src/stangsel.c b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/stangsel/src/stangsel.c index 1fbcc69a2039a6d2513cd6895ce05b90facbe688..795f93f5eb61b604fb7c76b134983c90e710fd08 100755 --- a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/stangsel/src/stangsel.c +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/stangsel/src/stangsel.c @@ -19,6 +19,7 @@ /************* Includes *******************************************************************/ #include "app/stangsel/stangsel.h" +#include "app/leddebug.h" /************* Global variables ***********************************************************/ /* Pointers for input signals */ @@ -83,7 +84,6 @@ void stangsel_step(void) break; } - if(selStAng > SEL_STEER_ANGLE_MAX){ selStAng = SEL_STEER_ANGLE_MAX; } diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/stm/src/stm.c b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/stm/src/stm.c index f939a17ae956a83591fbe68a3c48b31eb36c6fc2..e7fae04b79d06b1f82c2e251b796a468e863b367 100755 --- a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/stm/src/stm.c +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/stm/src/stm.c @@ -19,6 +19,7 @@ #include "../stm.h" #include "sys/errorhandler/errorHandler.h" #include "dev/rcrec/rcrec.h" +#include "app/leddebug.h" /************* Private typedefs ***********************************************************/ @@ -81,15 +82,28 @@ void stm_step(void) { switch (prevState) { case SYSTEM_STATE_INITIALIZING: - irq_disable(); - /* syncOffset is initialized with 0, so if it is != 0 here, clocksync has been successful. - * if clocksync successful: goto idle - */ - if (*pSyncOffset_stm != 0) - { - state = SYSTEM_STATE_IDLE; - } - irq_enable(); + + // ATTENTION + // --------- + // The following code segment was commented out due to the following reason: + // It only changes state when the syncOffset variable is set which will + // occur on an external interrupt from the Odroid. + // However, this interrupt will be only signaled once when the odroid boots. + // Since we don't use the syncOffset, we will just ignore this value and directly go to + // the running_ext state. + + // irq_disable(); + // /* syncOffset is initialized with 0, so if it is != 0 here, clocksync has been successful. + // * if clocksync successful: goto running_ext + // */ + // if (*pSyncOffset_stm != 0) + // { + // state = SYSTEM_STATE_RUNNING_EXT; + // } + + // irq_enable(); + + state = SYSTEM_STATE_RUNNING_EXT; break; case SYSTEM_STATE_IDLE: @@ -127,6 +141,7 @@ void stm_step(void) { { case SYSTEM_STATE_IDLE: case SYSTEM_STATE_RUNNING_RC: + case SYSTEM_STATE_RUNNING_EXT: servo_enablePwmSrv1(); servo_enablePwmSrv2(); break; @@ -146,7 +161,6 @@ void stm_step(void) { *pState_stm = state; irq_enable(); } - } /************* Private functions **********************************************************/ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/vehspdctrl/src/vehspdctrl.c b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/vehspdctrl/src/vehspdctrl.c index 37fe173567d27a1c85feb582294ee5a14f03e05d..89e6529f8ad2f355539914f4179466ebf52ba119 100755 --- a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/vehspdctrl/src/vehspdctrl.c +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/app/vehspdctrl/src/vehspdctrl.c @@ -20,6 +20,7 @@ #include "app/stm/stm.h" #include "dev/rcrec/rcrec.h" #include "dev/servo/servo.h" +#include "app/leddebug.h" /************* Global variables *******************************************************************/ /* input signals */ @@ -69,6 +70,8 @@ float spdCtrl(float w); /************* Public functions ***********************************************************/ int8_t vehspdctrl_init(void) { + pCarControl_vehspdctrl->vehSpdTgtExt = 0.0f; + pt1.K = 1; pt1.T_opt = PT1_T_OPT; pt1.y_old = 0; diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/dev/servo/src/servo.c b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/dev/servo/src/servo.c index b52b230f501f02ad4a516b7a1f1f8f37afec5a2d..0b5dcc36bf52741014549842c2f4e90c7684dd42 100755 --- a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/dev/servo/src/servo.c +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/dev/servo/src/servo.c @@ -23,6 +23,7 @@ #include "dev/servo/servo.h" #include "dev/rcrec/rcrec.h" #include "sys/util/io.h" +#include "app/leddebug.h" /************* Private typedefs ***********************************************************/ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/app.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/app.o deleted file mode 100644 index ef1e48dba679c18d5460b69182d65a01ff853a3d..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/app.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/latctrl/src/latctrl.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/latctrl/src/latctrl.o deleted file mode 100644 index 35bdb7be394b30f7d7653d23ac8a8dd529e93f4f..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/latctrl/src/latctrl.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/main.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/main.o deleted file mode 100644 index 3fdad6fc6164d5f98ae23c8411404a2f39757dc2..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/main.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/mavlink/src/mavlink.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/mavlink/src/mavlink.o deleted file mode 100644 index e22700e0df2d9668996184a9036028b7d4aca998..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/mavlink/src/mavlink.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/odom/src/odom.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/odom/src/odom.o deleted file mode 100644 index decb266a8bfe1a0507f8a8484d65b5990cd7ec85..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/odom/src/odom.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/rx24fctrl/src/rx24fctrl.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/rx24fctrl/src/rx24fctrl.o deleted file mode 100644 index 384bd34d41c7544af0c459063d844ee36d6f6f7d..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/rx24fctrl/src/rx24fctrl.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/stangproc/src/stangproc.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/stangproc/src/stangproc.o deleted file mode 100644 index a8b1de33c186d1bc769a932550506737f1793fa7..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/stangproc/src/stangproc.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/stangsel/src/stangsel.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/stangsel/src/stangsel.o deleted file mode 100644 index e34a42688e52b3845cab29206219e584be7838b4..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/stangsel/src/stangsel.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/stm/src/stm.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/stm/src/stm.o deleted file mode 100644 index 3251b97ff22844a550afb7ec395da6a4b86b1e26..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/stm/src/stm.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/vehspdctrl/src/vehspdctrl.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/vehspdctrl/src/vehspdctrl.o deleted file mode 100644 index 2df2f47ca0d495158802ace02bdb8f9cd3dacb49..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/app/vehspdctrl/src/vehspdctrl.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/discovery/src/stm32f4_discovery.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/discovery/src/stm32f4_discovery.o deleted file mode 100644 index d89a545420f56910564f3ab1cf4b8a5a7ce4d774..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/discovery/src/stm32f4_discovery.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/misc.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/misc.o deleted file mode 100644 index 71052af27cf6b2a324472a450d7bc954eb61de8c..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/misc.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_adc.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_adc.o deleted file mode 100644 index 91584d3c7b9f66a4b21d33666347ec38cf387889..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_adc.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_can.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_can.o deleted file mode 100644 index 9d7c63b7d77c4e3ebeb2c4250caffbf075bca92b..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_can.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_crc.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_crc.o deleted file mode 100644 index a9de82f64ac3ab2ec9c53e6b78ed7921086340df..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_crc.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_cryp.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_cryp.o deleted file mode 100644 index 5f8d446236dbf0a2b3490841757dd4a61f8e718a..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_cryp.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_cryp_aes.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_cryp_aes.o deleted file mode 100644 index be14b8aefe354dd49f40c27ae9b3dfb305f21727..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_cryp_aes.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_cryp_des.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_cryp_des.o deleted file mode 100644 index b2fe8d00fcd6ac203ef7a30a776c20c29cbbd16b..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_cryp_des.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_cryp_tdes.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_cryp_tdes.o deleted file mode 100644 index 36c8ac7a63809014f61d3a9451c4da9b89192e89..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_cryp_tdes.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_dac.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_dac.o deleted file mode 100644 index 5b90ec24ca64efecc32fd9d160f3b797ee48eecd..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_dac.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_dbgmcu.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_dbgmcu.o deleted file mode 100644 index dfceb1e8a7634ada8da6848c0dcc27dac137401e..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_dbgmcu.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_dcmi.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_dcmi.o deleted file mode 100644 index 877d47693505b644adc1bff3d08cc3972fa01bfc..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_dcmi.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_dma.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_dma.o deleted file mode 100644 index dc96c988c877c7454e77886f1e39ff8d0230f2dc..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_dma.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_exti.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_exti.o deleted file mode 100644 index e172f1f0feb4d6a8e5f8c0c87e4e726e516d3207..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_exti.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_flash.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_flash.o deleted file mode 100644 index cdf9adea2927fe38a1d596237507832ecc375cdb..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_flash.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_fsmc.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_fsmc.o deleted file mode 100644 index c3e71d4ad4f6ba84a0a8e59a3f66cb1af51cb29f..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_fsmc.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_gpio.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_gpio.o deleted file mode 100644 index 1f1443f2c9074b1dc10d219affb33e2182f36662..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_gpio.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_hash.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_hash.o deleted file mode 100644 index 888efc753791ccbc902473dec944994188e15aed..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_hash.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_hash_md5.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_hash_md5.o deleted file mode 100644 index 6c3e39ee29b2380ba3e58d090db8f279e9347c2b..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_hash_md5.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_hash_sha1.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_hash_sha1.o deleted file mode 100644 index e25aa9a2298344746bc94ae110d295997fc221fb..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_hash_sha1.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_i2c.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_i2c.o deleted file mode 100644 index 603e8386c20d9e3958673a87722ea74d90e4aa33..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_i2c.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_iwdg.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_iwdg.o deleted file mode 100644 index e838f4eb39484733943a5432ea2553925aba1409..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_iwdg.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_pwr.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_pwr.o deleted file mode 100644 index 2a749f3416449ba0385ce5908b8e24fc198e2f44..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_pwr.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_rcc.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_rcc.o deleted file mode 100644 index 9461f8bf6050e1f38efa7cb0a93a60610eca26f9..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_rcc.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_rng.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_rng.o deleted file mode 100644 index a63641446eda8acb8494e8b7f4f75c61bc75b6ba..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_rng.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_rtc.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_rtc.o deleted file mode 100644 index 4845fc8458852db3f540c1353100f9ead9ff3c58..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_rtc.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_sdio.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_sdio.o deleted file mode 100644 index 770ca048bfaf9de91927a4a63ff8162b0d4dcbe7..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_sdio.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_spi.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_spi.o deleted file mode 100644 index 54ddde74a94e8b4ad7321288352d74d6221f1e23..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_spi.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_syscfg.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_syscfg.o deleted file mode 100644 index 0137e5dbd4527a76bdaa82f800baa3875013c24e..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_syscfg.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_tim.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_tim.o deleted file mode 100644 index b870946767b058a0aa62c49b6b70415cf2154a86..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_tim.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_usart.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_usart.o deleted file mode 100644 index 1c924cb723fb4a6ec12d684e26c825c478bc25d6..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_usart.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_wwdg.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_wwdg.o deleted file mode 100644 index 594980d72ea8107c4ae2fc0c6c0f67e3b4d8c6fc..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/src/stm32f4xx_wwdg.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/startup/RCC_Configuration.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/startup/RCC_Configuration.o deleted file mode 100644 index 1e1a37505dae9f67d075f4e9308016c16600cc20..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/startup/RCC_Configuration.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/startup/startup_stm32f4xx.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/startup/startup_stm32f4xx.o deleted file mode 100644 index 6e14a378699e9d043ade05b83dc580eeed8f2be4..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/startup/startup_stm32f4xx.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/startup/stm32f4xx_it.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/startup/stm32f4xx_it.o deleted file mode 100644 index 52520ae4acbd8a96b165860262aa963008fe9d0b..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/startup/stm32f4xx_it.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/startup/system_stm32f4xx.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/startup/system_stm32f4xx.o deleted file mode 100644 index 84c9a87774b1fc2b5184840000197ab80ecc0508..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/brd/startup/system_stm32f4xx.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/cpx/foccomplex/src/foccomplex.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/cpx/foccomplex/src/foccomplex.o deleted file mode 100644 index 1c95e86c72b6c42511ba7261eef84be197e2447a..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/cpx/foccomplex/src/foccomplex.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o deleted file mode 100644 index 9a2630f406983c3b899569d5be46dedfef07ccf6..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/hcsr04/src/hcsr04.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/hcsr04/src/hcsr04.o deleted file mode 100644 index 99e4b0c65b7ea05ed9063009b84e93b743164c8d..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/hcsr04/src/hcsr04.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/led/src/led.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/led/src/led.o deleted file mode 100644 index a55424acc8897eca5f1fc072b4dfc08be9220d10..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/led/src/led.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/mpu9150/src/mpu9150.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/mpu9150/src/mpu9150.o deleted file mode 100644 index 77211e586bbbd19fd3d1ad56f9adc3fe7d582ced..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/mpu9150/src/mpu9150.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/rcrec/src/rcrec.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/rcrec/src/rcrec.o deleted file mode 100644 index 881f4c6c58b4f00933c914d7530adafd22b59da6..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/rcrec/src/rcrec.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/rx24f/src/rx24f.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/rx24f/src/rx24f.o deleted file mode 100644 index 9d33f91606e1c48588a406250c10354958ccd6c7..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/rx24f/src/rx24f.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/servo/src/servo.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/servo/src/servo.o deleted file mode 100644 index dd84f946a0476ee475b427c007363136fdab5b13..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/servo/src/servo.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/sfr02_t/src/srf02_t.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/sfr02_t/src/srf02_t.o deleted file mode 100644 index e15b58c8988d9873bc9e92524722c91dd03be571..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/sfr02_t/src/srf02_t.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/srf02/src/srf02.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/srf02/src/srf02.o deleted file mode 100644 index e093b894b6c5c896036827b59b9b478ed83592dc..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/srf02/src/srf02.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/wenc/src/wenc.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/wenc/src/wenc.o deleted file mode 100644 index 568c840de040fc2ac6cc5c295c15de7eda223631..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/dev/wenc/src/wenc.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/adc.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/adc.o deleted file mode 100644 index fa09289d8d71db541263287a86ff4a6372153be7..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/adc.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/clocksync.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/clocksync.o deleted file mode 100644 index 2a9f68e73891d5f33efa3193416394eb2fb37791..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/clocksync.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/eict.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/eict.o deleted file mode 100644 index 9760241df18eb83c02e3b2e4c38b79b89f8ae4e0..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/eict.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/gpio.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/gpio.o deleted file mode 100644 index 5d0d1bb6f8ced1bba678ef66871dd72ff49920a1..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/gpio.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/i2c.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/i2c.o deleted file mode 100644 index a7fae25c874bbbf9636e596c4de835383e1f9f3c..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/i2c.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/i2c2.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/i2c2.o deleted file mode 100644 index cab8950ee9ad7a5cf1a33f8f854fa21aeed1bb75..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/i2c2.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/ict.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/ict.o deleted file mode 100644 index 350710267dc11400a5a2d6e4c1ba7274e8c038c2..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/ict.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/irq.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/irq.o deleted file mode 100644 index 2509542f55969a0876eb58f582fd1b7cdbcecded..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/irq.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/pwm.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/pwm.o deleted file mode 100644 index fc87b52055d8c86098dd13077e38543f0dacc6f4..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/pwm.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/spi.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/spi.o deleted file mode 100644 index 70522d132dad8ba3ac4094070da5c8f2618c31ca..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/spi.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/uart.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/uart.o deleted file mode 100644 index 6ee0b0eac996269586bc3a3e91d952c9df2eca93..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/per/src/uart.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/algo/src/fir.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/algo/src/fir.o deleted file mode 100644 index 1ccbfa85ebd921a3d1be29815c238204b1109ca6..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/algo/src/fir.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/algo/src/pid.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/algo/src/pid.o deleted file mode 100644 index 77c180ddbebda7f073d02b00d7d23148a9644dd6..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/algo/src/pid.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/algo/src/pt1.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/algo/src/pt1.o deleted file mode 100644 index 945d27ec8280c93030aee83b78c082e3f23a557b..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/algo/src/pt1.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/algo/src/ramp.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/algo/src/ramp.o deleted file mode 100644 index dd545165534aaf86f062ba00be6db5b3087054d8..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/algo/src/ramp.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/errorhandler/src/errorHandler.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/errorhandler/src/errorHandler.o deleted file mode 100644 index eadce3cc7e7aa95b1d01a97245b05cb595e68161..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/errorhandler/src/errorHandler.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/errorhandler/src/errorList.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/errorhandler/src/errorList.o deleted file mode 100644 index 4b2b010f8039d5d65218ab44710c58cc8702d837..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/errorhandler/src/errorList.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/matlab/src/rtGetInf.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/matlab/src/rtGetInf.o deleted file mode 100644 index ab6ac92cb8bd7c426003b84fc851a40959bd5947..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/matlab/src/rtGetInf.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/matlab/src/rtGetNaN.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/matlab/src/rtGetNaN.o deleted file mode 100644 index 122dbab98be2aafdef4cc554f8fe365675bcf5da..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/matlab/src/rtGetNaN.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/matlab/src/rt_look.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/matlab/src/rt_look.o deleted file mode 100644 index 2b23bb3fcfe2b0df2b6c522a2ceaf4df8ac16277..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/matlab/src/rt_look.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/matlab/src/rt_nonfinite.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/matlab/src/rt_nonfinite.o deleted file mode 100644 index 6d55aa25f9b89a21c32647390ca5ae8176a9274e..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/matlab/src/rt_nonfinite.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/paramsys/src/paramlist.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/paramsys/src/paramlist.o deleted file mode 100644 index eb6f850ec9cbb029ececeb977a659e9a8a651905..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/paramsys/src/paramlist.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/paramsys/src/paramp.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/paramsys/src/paramp.o deleted file mode 100644 index a981792cb5ca776d5a00473b60727647d9f19f46..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/paramsys/src/paramp.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/paramsys/src/paramsys.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/paramsys/src/paramsys.o deleted file mode 100644 index b3433b7f03bc777d5f4fa84fe30fe58d418d5345..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/paramsys/src/paramsys.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/sched/src/scheduler.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/sched/src/scheduler.o deleted file mode 100644 index 4578c89e848476ca3a1fbd21e93821139b76d94c..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/sched/src/scheduler.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/sigp/src/sigp.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/sigp/src/sigp.o deleted file mode 100644 index 8adef1184a028999b8a0cf4ee4c127147ce3d982..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/sigp/src/sigp.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/systime/src/systime.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/systime/src/systime.o deleted file mode 100644 index 4847db2687e659fa1fbf037a3a3c89387a6e0155..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/systime/src/systime.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/terminal/src/terminal.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/terminal/src/terminal.o deleted file mode 100644 index e8ada598a66ff9449817344d0ae0027b518a8055..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/terminal/src/terminal.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/util/src/io.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/util/src/io.o deleted file mode 100644 index 207e28d85c0cf41dcfaf7d56a2949ccfa1c58c09..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/util/src/io.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/util/src/ringbuf.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/util/src/ringbuf.o deleted file mode 100644 index f897ae3645821e78915f1d3b2e3fc70b6ff755b8..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/util/src/ringbuf.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/util/src/stubs.o b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/util/src/stubs.o deleted file mode 100644 index 1c2c4c0e649f6cb53297404da51642441fe6a190..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/obj/sys/util/src/stubs.o and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/per/src/clocksync.c b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/per/src/clocksync.c index 140e0df943154f4ef959b07f39a5b67ffd1f51ed..2b29170b3080e2b1bd8e3889812afc9dde241c1f 100755 --- a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/per/src/clocksync.c +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/per/src/clocksync.c @@ -16,6 +16,7 @@ /************* Includes *******************************************************************/ #include "per/clocksync.h" +#include "app/leddebug.h" /************* Private typedefs ***********************************************************/ @@ -69,7 +70,6 @@ int8_t clocksync_initDevice(void) void EXTI15_10_IRQHandler(void) { /* Make sure that interrupt flag is set */ if (EXTI_GetITStatus(EXTI_Line13) != RESET) { - *pSyncOffset_clocksync = systime_getSysTime(); EXTI_ClearITPendingBit(EXTI_Line13); diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/run.sh b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/run.sh new file mode 100644 index 0000000000000000000000000000000000000000..67eeca7e46405d8174cd6c8d0b2ea3dce776c73d --- /dev/null +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/run.sh @@ -0,0 +1,2 @@ +# cd to quellcode +make && st-flash erase && st-flash write vlx.bin 0x08000000 && st-flash reset \ No newline at end of file diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/sys/algo/src/pid.c b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/sys/algo/src/pid.c index b6e09f90bde1c9b525f123c3910f6dc887d65501..868c60675f1861f94793461e758a6e41e0d2352f 100755 --- a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/sys/algo/src/pid.c +++ b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/sys/algo/src/pid.c @@ -93,6 +93,6 @@ void pid_controller(pidCtrl_t* pController, float32_t x, float32_t w, float32_t* *pY = ret; return; - } +} /************* Private functions **********************************************************/ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/vlx.bin b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/vlx.bin deleted file mode 100755 index 7d136b71f16e9ffe160150ef6615f2254bee4191..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/vlx.bin and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/vlx.elf b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/vlx.elf deleted file mode 100755 index 2b8c3d7566f1ffe47794df47e43a4d429cba71c5..0000000000000000000000000000000000000000 Binary files a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/vlx.elf and /dev/null differ diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/vlx.hex b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/vlx.hex deleted file mode 100644 index ede343f197c45badf91e09b75493667dffac5254..0000000000000000000000000000000000000000 --- a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/vlx.hex +++ /dev/null @@ -1,7453 +0,0 @@ -:020000040800F2 -:10000000389C0020F1520108A1520108AD520108AC -:10001000B5520108BD520108C55201080000000098 -:10002000000000000000000000000000CD520108A8 -:10003000D952010800000000E5520108BD47000840 -:1000400061530108615301086153010861530108BC -:1000500061530108615301086153010861530108AC -:10006000615301086153010861530108615301089C -:10007000615301086153010861530108615301088C -:10008000615301086153010861530108615301087C -:10009000615301086153010861530108615301086C -:1000A000B93801086153010861530108615301081F -:1000B0009525010861530108615301086153010846 -:1000C0006153010845270108F92801086153010817 -:1000D000615301088D2C010861530108352D010879 -:1000E0001927010861530108615301086153010890 -:1000F000615301086153010861530108615301080C -:1001000061530108615301086153010861530108FB -:1001100061530108C52D01086153010861530108AD -:1001200061530108615301086153010861530108DB -:1001300061530108615301086153010861530108CB -:1001400061530108615301086153010861530108BB -:1001500061530108615301086153010861530108AB -:10016000615301086153010861530108615301089B -:10017000615301086153010861530108615301088B -:10018000615301086153010880B400AF00235BB2E2 -:100190001846BD465DF8047B704700BF80B586B049 -:1001A00000AF4FF000033B614FF000037B614FF065 -:1001B0000003FB60364B1B68BB6012F0C5FB354B80 -:1001C0001B681B687B60344B1B681B683B6012F02C -:1001D000B3FB97ED017AD7ED007A77EE677AC7ED3A -:1001E000047A97ED047ADFED2D7A27EE277A284BF3 -:1001F000D3ED007A77EE277A254BC3ED007A97EDA1 -:10020000047ADFED267A27EE277A214BD3ED006AB8 -:10021000DFED227A66EEA77A77EE277AC7ED057AC8 -:1002200097ED047ADFED1D7A27EE277A184BD3ED90 -:10023000006ADFED1A7A66EEA77A77EE277AC7EDC5 -:10024000037A97ED057AF3EE067AB4EEE77AF1EEEB -:1002500010FA04DD0E4BBA681A60114B7B6197ED02 -:10026000057AFBEE067AB4EEE77AF1EE10FA04D5E1 -:10027000074BBA681A600B4B7B6112F065FB0A4BA7 -:100280001B687A691A6012F057FB1837BD4680BDAB -:10029000F800002004710020007100209A99993E16 -:1002A0000000B0410000B0C1F870002080B592B0ED -:1002B00004AF14F09DFF1C4B0C221A701A4B012244 -:1002C0005A70194B00229A70174812F0E1FD174B33 -:1002D00040F2EE221A60164B40F2EE221A60134BE7 -:1002E0001B68134A11683A4600911249019112495C -:1002F0000291104611491A46114B11F0DBF911F029 -:10030000A3FE04F0BFFB04F025F910F009FF12F082 -:10031000B9F900F08FF9044812F078FF04F030F9D1 -:1003200012F00AFBFEE700BFFC0000205C8E0020FC -:10033000A0820020F8730020A4820020B07F00205B -:100340000871002080B400AF234B1B6800221A60A4 -:10035000224B00221A60214B00225A601F4B0022C0 -:100360009A601E4B0022DA601C4B00221A741B4B51 -:100370004FF000025A61194B4FF000029A61174B7F -:100380004FF00002DA61154B4FF000021A62134B76 -:1003900000225A62124B1B684FF000021A60114B88 -:1003A0001B684FF000021A600F4B1B684FF00002F1 -:1003B0001A600E4B1B684FF000021A600C4B1B6852 -:1003C00000221A700B4B0C4A1A6000235BB21846CD -:1003D000BD465DF8047B7047648E0020000100205C -:1003E0006C8E0020688E0020808E0020608E0020A1 -:1003F0008C8E002028010020894E384080B58CB0BA -:1004000000AF0023FB624FF00003BB624FF000031C -:100410007B624FF000033B624FF00003FB614FF043 -:100420000003BB614FF000037B614FF000033B61B1 -:100430000023FB600023BB600023FB7112F084FAF1 -:100440006E4B1B681B68FB606D4B1B681B68BB60B9 -:100450006C4B1B681B78FB7110F074FEF86212F095 -:100460006BFA694B5B6AFA6AD31A07EE903AB8EEF8 -:10047000677ADFED667A67EE277AC7ED0A7A624B14 -:100480009B68FA68D31A07EE903AB8EEE77A604BA9 -:10049000D3ED007A67EE277AC7ED067A5A4BDB6810 -:1004A000BA68D31A07EE903AB8EEE77A584BD3ED14 -:1004B000007A67EE277AC7ED057A97ED067AD7EDD1 -:1004C000057A37EE277AF0EE007AC7EE277AC7ED85 -:1004D000047A97ED067AD7ED057A37EE677ADFED85 -:1004E0004D7AC7EE277AC7ED077A474BD3ED057AE9 -:1004F000B0EE670A14F0C8FF87ED090A424BD3ED4E -:10050000057AB0EE670A14F0FBFF87ED080A3E4B50 -:10051000FA6A5A6297ED047ADFED3F7A27EE277A7E -:10052000D7ED0A7AC7EE277A374BC3ED087A364BF8 -:1005300093ED067AD7ED096AD7ED047A66EEA76ADD -:10054000DFED357A66EEA77A77EE277A2E4BC3ED8C -:10055000067A2D4B93ED077AD7ED086AD7ED047A2A -:1005600066EEA76ADFED2C7A66EEA77A77EE277A39 -:10057000254BC3ED077A244B93ED057AD7ED077A27 -:1005800077EE277A204BC3ED057A1F4BFA791A7460 -:100590001D4BFA689A601C4BBA68DA601A4B93EDEF -:1005A000057ADFED1E7AB4EEE77AF1EE10FA09DD96 -:1005B000154B93ED057ADFED197A77EE677A124BDA -:1005C000C3ED057A164B1B680F4A92691A60154BEA -:1005D0001B680D4AD2691A60134B1B680A4A52699C -:1005E0001A60124B1B68084A126A1A60104B1B688B -:1005F000054A127C1A703037BD4680BD788E0020C7 -:100600007C8E0020908E002000010020BD378635B2 -:1006100028010020008082436F12833ADB0FC9401B -:100620006C8E0020688E0020808E0020608E00205E -:100630008C8E002080B582B000AF00F005F8034634 -:10064000FB710837BD4680BD80B584B000AF002384 -:10065000FB7302F069FC03461A46FB7B1343FB73F2 -:1006600002F0C4FA03461A46FB7B1343FB7303F004 -:1006700007F803461A46FB7B1343FB7359485A4954 -:10068000022203F0B3FF0346BB73BB7B184603F0A3 -:1006900085FF56485649022203F0A8FF03467B73A4 -:1006A0007B7B184603F07AFF00F0C8F803461A4631 -:1006B000FB7B1343FB734F484F49042203F096FF23 -:1006C00003463B733B7B184603F068FF02F0DCFDFA -:1006D0004A484B49022203F089FF0346FB72FB7A2A -:1006E000184603F05BFFFFF72DFE03461A46FB7B1F -:1006F0001343FB7343484449022203F077FF034648 -:10070000BB72BB7A184603F049FF02F0A5FE034610 -:100710001A46FB7B1343FB7300F076F903461A4637 -:10072000FB7B1343FB7339483949032203F05EFF17 -:1007300003467B727B7A184603F030FF3548364912 -:10074000032203F053FF03463B723B7A184603F043 -:1007500025FF00F081FA03461A46FB7B1343FB7327 -:100760002E482F49032203F041FF0346FB71FB791A -:10077000184603F013FF02F06DFB03461A46FB7B9D -:100780001343FB7327482849032203F02FFF034636 -:10079000BB71BB79184603F001FF244824490122AC -:1007A00003F024FF03467B717B79184603F0F6FEC5 -:1007B000FFF7EAFC1F482049012203F017FF034618 -:1007C0003B713B79184603F0E9FE97F90F30002B97 -:1007D0000CBF00230123DBB2DBB25BB2184610373B -:1007E000BD4680BDD12C00089C840108B12D0008B5 -:1007F000C084010879080008D8840108FD32000887 -:10080000F4840108FD0300080C850108810A000832 -:1008100020850108D13000083C850108910C0008B2 -:100820005C850108A92E000878850108F1370008C9 -:10083000908501089D010008A885010880B500AFDA -:10084000094810F059FF10F0ABFC084B1B68002260 -:100850001A70074B1B68FF221A70002002F0DEFAA4 -:1008600000235BB2184680BDB8860108A48E002024 -:10087000948E00200000000080B586B000AF12F01A -:1008800063F8574B1B681B78BB75554B1B681B786F -:10089000FB75544B1B68D3E90023C7E90223524B75 -:1008A0001B681A78514B1A70514B1B681A88514BB0 -:1008B0001A8012F041F84D4B1B78012B13D14D4B90 -:1008C0001B88184617F0CCF902460B46104619460D -:1008D00041A3D3E9002317F0AFFC0346002B02D05D -:1008E0000323FB7547E0D7E9022352EA030102D054 -:1008F0000423FB753FE0BB7D042B39D801A252F8DD -:1009000023F000BF19090008310900083109000867 -:10091000570900085B09000812F016F8364B1B68EF -:100920001B68002B01D00123FB7512F005F822E0B3 -:1009300012F00AF8314B1B681B78FB712F4B1B68B8 -:10094000FF221A7011F0F8FFFB79FF2B02D0FB7920 -:10095000FB7510E00FE00123FB750023FB7511F020 -:10096000F3FF254B1B6800221A6011F0E5FF02E03F -:10097000234810F0C1FEFA7DBB7D9A4226D0BA7D95 -:10098000FB7D204811461A4610F0B6FEFB7D032B76 -:1009900004D0042B07D0012B00D006E002F066FB48 -:1009A00002F070FB02E010F053FC00BFBB7D184664 -:1009B00002F042FAFB7D184602F030FA11F0C4FF53 -:1009C000074B1B68FA7D1A7011F0B6FF1837BD4649 -:1009D00080BD00BFAFF3008000000000006E9E40AD -:1009E000A48E00209C8E0020A08E00202C010020D0 -:1009F000A88E00202E010020988E0020948E0020CA -:100A0000CC860108E486010880B500AF144B4FF096 -:100A10007E525A60124B134A1A60114B4FF000027B -:100A20009A60114B114A9A600F4B104ADA600E4BD4 -:100A30004FF000021A610C4B4FF07E525A610A4B84 -:100A40000B4A9A61084B0B4A1A60074B0A4A5A60D4 -:100A5000054810F03FFC00235BB2184680BD00BF84 -:100A6000540100200000A03F30010020CDCC4C3EBE -:100A70000AD7A33C000020C1000020410000000074 -:100A800080B582B000AF11F05FFF3F4B1B681A7852 -:100A90003E4B1A7011F050FF3C4B1B78042B5FD873 -:100AA00001A252F823F000BF730B0008BD0A000832 -:100AB0003D0B0008D90A0008C50A0008344B4FF066 -:100AC00000021A609FED330A00F06EF8F0EE407AF3 -:100AD0002F4BC3ED007A44E011F036FF2E4B1B681C -:100AE0001B8807EE103AF8EE477AC7ED017A11F04D -:100AF00023FF97ED017ADFED297A37EE677ADFED94 -:100B0000287AC7EE277A224BC3ED007A204B1B6868 -:100B1000184617F0B7F802460B461046194618A3B8 -:100B2000D3E9002317F002F902460B461046194696 -:100B300017F0DEFB0246164B1A6012E011F004FFBC -:100B4000184B1B681B683B6011F0F6FE97ED000A1E -:100B500000F02AF8F0EE407A0D4BC3ED007A00E089 -:100B600000BF0B4BD3ED007AB0EE670A02F096FAA5 -:100B700000E000BF0837BD4680BD00BFAFF3008076 -:100B80009A9999999999E93FB88E002064010020BB -:100B90006801002000000000B48E00200080BB44EB -:100BA00000808944B08E002080B586B000AF87ED0C -:100BB000010A4FF00003FB604FF000037B614FF030 -:100BC00000033B6111F0C0FE1E4B1B681B683B61BC -:100BD00011F0B2FE1C4897ED040A10F041FC87EDBD -:100BE000040A07F10C03194897ED040AD7ED010A2E -:100BF0001946BAEE041AF2EE041A10F07DFBD7ED96 -:100C0000037AF5EEC07AF1EE10FA02DD104B7B614B -:100C100008E0D7ED037AF5EEC07AF1EE10FA01D5CF -:100C20000C4B7B6197ED037AD7ED057A77EE277A47 -:100C3000C7ED037AFB6807EE903AB0EE670A183703 -:100C4000BD4680BDAC8E0020540100203001002044 -:100C5000FBCB6E3D9A9999BD80B400AF094B1B68E0 -:100C600000221A70084B1B684FF000021A60074BF5 -:100C70004FF000021A6000235BB21846BD465DF8D3 -:100C8000047B7047F08E0020EC8E00206C01002069 -:100C900080B582B000AF2D4B00221A7011F054FEC7 -:100CA0002B4B1B681B78FB7111F046FEFB79042B64 -:100CB0001FD801A252F823F0CD0C0008CD0C00087B -:100CC000D70C0008EB0C0008CD0C0008214B4FF0AE -:100CD00000021A600EE011F037FE1F4B1B685A68C5 -:100CE0001C4B1A6011F028FE04E0184B01221A7008 -:100CF00000E000BF174B93ED007AF3EE0D7AB4EEEF -:100D0000E77AF1EE10FA02DD124B144A1A60114B29 -:100D100093ED007AFBEE0D7AB4EEE77AF1EE10FA7D -:100D200002D50C4B0E4A1A6011F00EFE0D4B1B68DB -:100D3000064A12781A700C4B1B68064A12681A6031 -:100D400011F0FAFD0837BD4680BD00BF70010020DC -:100D5000E88E00206C010020E48E00200000E841B5 -:100D60000000E8C1F08E0020EC8E002080B485B039 -:100D700000AF03463960FB713B681B88DAB2FB7930 -:100D80005340FB73FB7B1B01DAB2FB7B5340DBB2AE -:100D9000FB733B681B881B0A9BB29AB2FB7B1B024E -:100DA0009BB253409AB2FB7BDB009BB253409AB29A -:100DB000FB7B1B09DBB253409BB29AB23B681A80A3 -:100DC0001437BD465DF8047B704700BF80B483B024 -:100DD00000AF78607B684FF6FF721A800C37BD4613 -:100DE0005DF8047B704700BF80B584B000AF7860C9 -:100DF0000B467B8007F10E031846FFF7E7FF09E07B -:100E00007B685A1C7A601A7807F10E03104619465F -:100E1000FFF7ACFF7B885A1E7A80002BF0D1FB894C -:100E200018461037BD4680BD80B586B000AFF8606B -:100E3000B9601346FB80BB687B6107E07B695A1C85 -:100E40007A611B781846F968FFF790FFFB885A1EF5 -:100E5000FA80002BF2D11837BD4680BD80B483B034 -:100E600000AF78607B6800221A607B6800225A60BD -:100E70007B680E4A9A607B680D4ADA607B680D4A8F -:100E80001A617B680C4A5A617B680C4A9A617B68DC -:100E90000B4ADA617B680B4A1A627B680A4A5A621B -:100EA0000C37BD465DF8047B704700BF67E6096AF2 -:100EB00085AE67BB72F36E3C3AF54FA57F520E517B -:100EC0008C68059BABD9831F19CDE05B80B4CFB094 -:100ED00000AF3B1D18603B4619603B1D1B689B68BB -:100EE000C7F834313B1D1B68DB68C7F830313B1D48 -:100EF0001B681B69C7F82C313B1D1B685B69C7F871 -:100F000028313B1D1B689B69C7F824313B1D1B68BA -:100F1000DB69C7F820313B1D1B681B6AC7F81C3111 -:100F20003B1D1B685B6AC7F818310023C7F81431F2 -:100F300011E0D7F814319B003A461268134419683F -:100F400007F10C03D7F8142143F82210D7F8143115 -:100F50000133C7F81431D7F814310F2BE9DD102312 -:100F6000C7F8143157E0D7F814319A1E07F10C0373 -:100F700053F822304FEA7342D7F81431991E07F123 -:100F80000C0353F821304FEAF3435A40D7F8143199 -:100F9000991E07F10C0353F821309B0A5A40D7F8E9 -:100FA0001431D91F07F10C0353F821301A44D7F834 -:100FB0001431A3F10F0107F10C0353F821304FEA6C -:100FC000F311D7F81431A3F10F0007F10C0353F814 -:100FD00020304FEAB3435940D7F81431A3F10F0042 -:100FE00007F10C0353F82030DB084B401A44D7F8C4 -:100FF0001431A3F1100107F10C0353F82130D1187B -:1010000007F10C03D7F8142143F82210D7F8143154 -:101010000133C7F81431D7F814313F2BA3DD002377 -:10102000C7F8143179E0D7F824314FEAB312D7F872 -:1010300024314FEAF3235A40D7F824314FEA73633F -:101040005A40D7F818311A44D7F82411D7F820316C -:101050001940D7F82431D843D7F81C3103404B400E -:101060001A44574BD7F8141153F821301A4407F19A -:101070000C03D7F8141153F821301344C7F810317A -:10108000D7F834314FEAB302D7F834314FEA73332B -:101090005A40D7F834314FEAB3535A40D7F8341195 -:1010A000D7F830311940D7F83401D7F82C31034044 -:1010B0005940D7F83001D7F82C3103404B40134446 -:1010C000C7F80C31D7F81C31C7F81831D7F82031E0 -:1010D000C7F81C31D7F82431C7F82031D7F82821B8 -:1010E000D7F810311344C7F82431D7F82C31C7F89A -:1010F0002831D7F83031C7F82C31D7F83431C7F858 -:101100003031D7F81021D7F80C311344C7F83431F7 -:10111000D7F814310133C7F81431D7F814313F2B05 -:1011200081DD3B1D1B689A68D7F834311A443B1D9A -:101130001B689A603B1D1B68DA68D7F830311A4487 -:101140003B1D1B68DA603B1D1B681A69D7F82C3100 -:101150001A443B1D1B681A613B1D1B685A69D7F86E -:1011600028311A443B1D1B685A613B1D1B689A6954 -:10117000D7F824311A443B1D1B689A613B1D1B683C -:10118000DA69D7F820311A443B1D1B68DA613B1D30 -:101190001B681A6AD7F81C311A443B1D1B681A6277 -:1011A0003B1D1B685A6AD7F818311A443B1D1B684F -:1011B0005A6207F59E77BD465DF8047B704700BF15 -:1011C0000087010880B59CB000AFF860B9607A6014 -:1011D000BB68FB66FB681B68FB65FB681A687B687D -:1011E000DB001A44FB681A60FB681A68FB6D9A42C0 -:1011F00004D2FB685B685A1CFB685A60FB6DDB0815 -:1012000003F03F03BB6653E0BB6EC3F140037B6654 -:101210007A687B6E9A4201D27B687B66BB6E28330C -:10122000FA6813441846F96E7A6E14F0ACF8BA6E88 -:101230007B6E1344BB66FA6E7B6E1344FB667A6862 -:101240007B6ED31A7B60BB6E402B31D1FB68283399 -:10125000BB6500233B6620E03B6E9B00BA6D1344E8 -:101260007B6507F110023B6E9B0013443B657B6D71 -:10127000DA783B6D1A703B6D01337A6D92781A7093 -:101280003B6D02337A6D52781A703B6D03337A6D81 -:1012900012781A703B6E01333B663B6E0F2BDBDD21 -:1012A00007F11003F8681946FFF710FE0023BB662C -:1012B0007B68002BA8D17037BD4680BD80B598B043 -:1012C00000AF786039607B681B68DB0803F03F0380 -:1012D000FB65FB6DC3F1770303F03F030133BB658F -:1012E0007B6808337B6580233B7307F10C03013374 -:1012F00018460021472214F04FF8BB6D07337A6877 -:101300001268D2B207F160010B4403F8542CBB6D94 -:1013100006337A681268120AD2B207F160010B44F0 -:1013200003F8542CBB6D05337A681268120CD2B2E4 -:1013300007F160010B4403F8542CBB6D04337A6849 -:101340001268120ED2B207F160010B4403F8542C5C -:10135000BB6D03337A685268D2B207F160010B4467 -:1013600003F8542CBB6D02337A685268120AD2B269 -:1013700007F160010B4403F8542CBB6D01337A680C -:101380005268120CD2B207F160010B4403F8542CDE -:101390007B685B681B0EDAB207F10C01BB6D0B4476 -:1013A0001A70BB6D083307F10C02786811461A46B3 -:1013B000FFF708FF7B6DDA783B681A703B680133F2 -:1013C0007A6D92781A703B6802337A6D52781A708F -:1013D0003B6803337A6D12781A703B6804337A6D78 -:1013E000D2791A703B6805337A6D92791A7060373A -:1013F000BD4680BD80B483B000AF0346FB71FA796F -:1014000013465B001344DB00034A134418460C37B1 -:10141000BD465DF8047B70478C28002080B483B003 -:1014200000AF0346FB71FB7940F2231202FB03F28B -:10143000034B134418460C37BD465DF8047B7047D8 -:10144000EC28002080B5A0B000AFF860B9607A60E9 -:10145000FB70FB68002B05D0FB681B7803F00103D1 -:10146000002B01D1002352E0FB685A78BB681A7048 -:10147000FB68D3E90223C7E90423BB685A1C07F1C0 -:10148000100310461946062213F07DFFFB68D3E9CE -:101490000223013243F10003F968C1E9022307F195 -:1014A00018031846FFF7DAFCFB68103307F118023F -:1014B000104619462022FFF785FEFB7807F1180237 -:1014C000104679681A46FFF77DFE97F88C3007F1D1 -:1014D00018021046D7F888101A46FFF773FE07F176 -:1014E00018031846D7F890100222FFF76BFE07F199 -:1014F00018031846B9680722FFF764FEBB68073374 -:1015000007F1180210461946FFF7D8FE0D231846BA -:101510008037BD4680BD00BF80B483B000AF786027 -:101520000B46FB7002E0FB78013BFB70FB78012B64 -:1015300006D9FB78013B7A6813441B78002BF2D064 -:10154000FB7818460C37BD465DF8047B704700BF3A -:1015500080B5AAB000AFF860B9607A60FB68002B74 -:1015600001D101231DE17B680233C7F8A0307B68FD -:1015700003F58B73C7F89C30D7F89C300733C7F856 -:10158000983007F12C031846FFF768FCFB6810330E -:1015900007F12C02104619462022FFF713FE7B6844 -:1015A000DB780A3307F12C021046D7F8A0101A4650 -:1015B000FFF708FE7B6803F58A7307F12C021046DB -:1015C00019460222FFF7FEFD07F12C031846D7F853 -:1015D0009C100722FFF7F6FD07F12C0207F1240308 -:1015E00010461946FFF76AFE07F124031846D7F89C -:1015F0009810062213F0B8FE0346002B01D00023FA -:10160000CFE0D7F89C301B7887F897304FF0000276 -:101610004FF00003C7E90623D7F89C30013307F1E8 -:10162000180210461946062213F0ADFEBB68002BC7 -:1016300001D10023B5E00023A7F8A63029E07B689C -:10164000D979B7F8A620B8681346DB0013440344E1 -:10165000DB78994218D17B68197AB7F8A620B86868 -:101660001346DB00134403441B7999420CD1B7F8AD -:10167000A620B9681346DB0013440B449B7897F807 -:1016800097209A4200D10AE0B7F8A6300133A7F8B4 -:10169000A630BB681B88B7F8A6209A42CFD3BB6898 -:1016A0001B88B7F8A6209A423DD1BB681B880F2B38 -:1016B00001D9002375E0D7E906013C4A4FF0000349 -:1016C000801841EB0301FB68D3E90223994208BF6C -:1016D000904201D2002364E0B7F8A6207B68D97954 -:1016E000B8681346DB00134403440A46DA70B7F8BF -:1016F000A6207B68197AB8681346DB0013440344BC -:101700000A461A71B7F8A620B9681346DB001344DD -:101710000B4497F897209A70BB681B8801339AB2E4 -:10172000BB681A801EE04FF000024FF00003C7E9CB -:101730000423B7F8A6201346DB001344BA68134409 -:10174000053307F1100210461946062213F01BFE5E -:10175000D7E90623D7E90401994208BF904201D393 -:1017600000231EE0B7F8A6201346DB001344BA6836 -:1017700013445A1DD7F89C300133104619460622EF -:1017800013F001FED7E90623F968D1E90201994275 -:1017900008BF904204D2D7E90623F968C1E90223C1 -:1017A00001231846A837BD4680BD00BF808D5B0071 -:1017B000F0B58DB004AFF8607B600B46FB7213464A -:1017C000BB727B681B7B03F00203002B0CBF002362 -:1017D0000123BB77BB7F83F00103DBB2002B0CD06E -:1017E0007B681B69002B08D07B681B691B7803F0A2 -:1017F0000103002B01D0012300E000237B777B7FD6 -:1018000003F001037B777B7F002B01D00D2300E0E9 -:1018100000233B770A23FB77BB7F002B05D0FB68B7 -:10182000FE229A700623FB7702E0FB68FD229A7085 -:10183000BB7F002B02D097F8383009E0FB6803F13A -:101840000C0297F83C3010461946FFF765FE034638 -:10185000FA68D370FB68FA7ADA71FB68BA7A1A729E -:10186000FB6800221A717B7F002B06D0FB681B7976 -:1018700043F00103DAB2FB681A71FB6800225A7167 -:101880007B689A79FB689A717B689B790133DAB23D -:101890007B689A71FB689B783B74FB68DB787B7490 -:1018A000BB7F002B13D0FB689B79BB74FB68DB7993 -:1018B000FB74FB681B7A3B75FB685A7A997A0902BC -:1018C0000A43DB7A1B041343DBB27B752EE0FB6813 -:1018D0001B79BB74FB685B79FB74FB689B793B7578 -:1018E000FB68DB797B75FB681B7ABB75FB685A7AF2 -:1018F000997A09020A43DB7A1B041343DBB2FB75B6 -:10190000FB685A7A997A09020A43DB7A1B0413436B -:101910001B12DBB23B76FB685A7A997A09020A43BA -:10192000DB7A1B0413431B14DBB27B76FB7F9BB279 -:10193000013B9BB207F11002013210461946FFF736 -:1019400053FA03461A46FB681A80F968FB6803F1EC -:101950000C02FB68DB78084611461A46FFF764FA6A -:10196000FB6897F8402010461946FFF7FFF9FB681F -:1019700003F10C02FB68DB781344FA68128892B218 -:10198000D2B21A70FB6803F10C02FB68DB780133FA -:101990001344FA68128892B2120A92B2D2B21A7042 -:1019A0007B7F002B17D07B681869FB6803F58B7170 -:1019B000FB6803F10C06FB68DD78FB6803F10C02A1 -:1019C000FB68DB78D41807F11002FB7F00960195C5 -:1019D0000294FFF737FDFB68DB781A46FB7F9BB26A -:1019E00013449AB23B7F9BB213449BB202339BB227 -:1019F00018462437BD46F0BD80B588B004AF786086 -:101A0000F970BA707B707B781846FFF7F3FCF860CA -:101A1000FA78BB78397E0091397F019197F82010D0 -:101A20000291786811461A46FB68FFF7C1FE03462B -:101A300018461037BD4680BD80B586B004AF7860CB -:101A4000F970BA707B70FA78BB7879780091397C3C -:101A50000191397D0291786811461A460023FFF7FB -:101A6000CBFF034618460837BD4680BD80B483B01F -:101A700000AF78607B689B780133DAB27B689A703C -:101A80000C37BD465DF8047B704700BF80B586B05B -:101A900000AF786039603B68DB78FB733B689B780C -:101AA000FE2B3BD10023FB750523BB753B689A7861 -:101AB0007B681A707B680133FA7B1A707B6802338B -:101AC0003A6892791A707B6803333A68D2791A704F -:101AD0007B6804333A68127A1A707B685A1D3B6837 -:101AE000597A987A00020143DB7A1B040B43DBB27C -:101AF00013707B68991D3B6803F10C023B68DB782F -:101B0000084611461A4613F03EFCBA7D3B68DB7866 -:101B1000134401337A6813443B6171E03B6803F17D -:101B20000C02FB7B10461946FFF7F6FC0346FB73DD -:101B30000923BB753B689A787B681A707B68013310 -:101B4000FA7B1A707B6802333A6812791A707B68E4 -:101B500003333A6852791A707B6804333A68927991 -:101B60001A707B6805333A68D2791A707B6806333D -:101B70003A68127A1A707B68DA1D3B68597A987A4B -:101B800000020143DB7A1B040B43DBB213707B685A -:101B900003F108023B68597A987A00020143DB7A24 -:101BA0001B040B431B12DBB213707B6803F10902A9 -:101BB0003B68597A987A00020143DB7A1B040B4395 -:101BC0001B14DBB213707B6803F10A013B6803F15D -:101BD0000C02FB7B084611461A4613F0D4FBBA7D73 -:101BE000FB7B134401337A6813443B613B681B79E8 -:101BF00003F00103002B01D00D2300E00023FB754F -:101C00003B681B889BB2DAB23B691A703B690133AF -:101C10003A68128892B2120A92B2D2B21A70FB7D5E -:101C2000002B0AD03B69991C3B6803F58B72FB7D46 -:101C3000084611461A4613F0A6FBBB7D9AB2FB7B01 -:101C40009BB213449AB2FB7D9BB213449BB2033305 -:101C50009BB218461837BD4680BD00BF80B582B024 -:101C600000AF78607B681846FFF7B0F80837BD46CC -:101C700080BD00BF80B582B000AF78600B46FB70BE -:101C80007B68FA7810461946FFF770F80837BD46AA -:101C900080BD00BF80B487B000AF786000237B6157 -:101CA00008233B6125E07A693B69134401335B08F3 -:101CB000FB601F49FA6813465B0013449B000B440A -:101CC0001A687B689A4203D9FB68013B3B6110E0CC -:101CD0001749FA6813465B0013449B000B441A68CB -:101CE0007B689A4202D2FB687B6102E0FB687B6101 -:101CF00003E07A693B699A42D5D30D497A69134664 -:101D00005B0013449B000B441A687B689A4201D025 -:101D1000002306E07A6913465B0013449B00044AE3 -:101D2000134418461C37BD465DF8047B704700BF5E -:101D300064BA010880B588B000AFF860B9603B6054 -:101D40001346FB710023BB61BB6800221A70BB689D -:101D5000DB780F2B00F2538201A252F823F000BF70 -:101D6000A11D0008A11D0008FF1D0008671E000836 -:101D70009F1E0008B71E0008CF1E0008E71E0008BF -:101D8000FF1E0008491F0008951F0008E11F0008FA -:101D900019200008A7200008A72000085D210008DE -:101DA000FB79FD2B13D1BB680222DA70FB6800229D -:101DB000DA70FB68FA799A70BB681B7B23F0010329 -:101DC000DAB2BB681A73F868FFF748FF16E0FB79D0 -:101DD000FE2B13D1BB680222DA70FB680022DA7096 -:101DE000FB68FA799A70BB681B7B43F00103DAB297 -:101DF000BB681A73F868FFF731FF00E2FFE1BB68C8 -:101E00001B78002B0FD0BB685B780133DAB2BB685C -:101E10005A70B868FFF72AFEBB6800221A70BB68C8 -:101E20000122DA701EE0FB68FA79DA70BB680022E2 -:101E30001A71FB79F8681946FFF71CFFBB681B7B1A -:101E400003F00103002B09D0FB6800221A71FB6824 -:101E500000225A71BB680522DA7003E0BB680322D6 -:101E6000DA70CCE1CBE1FB68FA791A71FB681B7977 -:101E700023F00103002B09D0B868FFF7F7FDBB681A -:101E800000221A70BB680122DA70B8E1FB79F868A9 -:101E90001946FFF7EFFEBB680422DA70AFE1FB687A -:101EA000FA795A71FB79F8681946FFF7E3FEBB68C7 -:101EB0000522DA70A3E1FB68FA799A71FB79F86878 -:101EC0001946FFF7D7FEBB680622DA7097E1FB6878 -:101ED000FA79DA71FB79F8681946FFF7CBFEBB682F -:101EE0000722DA708BE1FB68FA791A72FB79F868DD -:101EF0001946FFF7BFFEBB680822DA707FE1FB7965 -:101F000023F07F43FA68D9B2002001435172190AC5 -:101F1000C9B20020014391721B0CDBB200210B43BC -:101F2000D372FB79F8681946FFF7A4FEBB681B7BE8 -:101F300003F00103002B03D0BB680B22DA705EE1D3 -:101F4000BB680922DA705AE1FB685A7A997A090269 -:101F50000A43DB7A1B0413431A46FB791B02134323 -:101F600023F07F42FB68D1B2002001435972110A6D -:101F7000C9B2002001439972120CD2B200210A4367 -:101F8000DA72FB79F8681946FFF774FEBB680A221B -:101F9000DA7034E1FB685A7A997A09020A43DB7AEB -:101FA0001B0413431A46FB791B04134323F07F429F -:101FB000FB68D1B2002001435972110AC9B2002056 -:101FC00001439972120CD2B200210A43DA72FB79F2 -:101FD000F8681946FFF74EFEBB680B22DA700EE177 -:101FE000FB6803F10C02BB681B79591CC8B2B968C5 -:101FF00008711344FA791A70FB79F8681946FFF7EB -:1020000039FEBB681A79FB68DB789A4203D1BB685A -:102010000C22DA70F3E0F2E0FB685A7A997A09024E -:102020000A43DB7A1B0413431846FFF733FE78613B -:102030007B69002B02D07B691B7900E00023FB74D5 -:10204000FB7CF8681946FFF715FEFA79FB681B88D8 -:102050009BB2DBB29A4203D0BB680E22DA7002E078 -:10206000BB680D22DA70FB68FA7983F814217B696A -:10207000002B17D0BB681A797B695B799A4211D221 -:10208000FB6803F10C02BB681B791A447B695B791E -:102090001946BB681B79CB1A104600211A4613F06B -:1020A0007BF9ACE0ABE0BB68DB780E2B08D0FB79AA -:1020B0009AB2FB681B889BB21B0A9BB29A4203D060 -:1020C000BB6802221A7002E0BB6801221A70FB682A -:1020D000FA7983F81521FB681B7903F00103002BC3 -:1020E0000DD0BB680F22DA70BB680D225A73BB6833 -:1020F0001B78022B31D0BB6800221A707FE0BB68CE -:102100001B69002B1FD0BB681B691B6B002B13D0F6 -:10211000BB681B691A6BFB68597A987A0002014305 -:10212000DB7A1B040B43B86819469047034683F0DB -:102130000103DBB2002B06D0BB681B78022B02D058 -:10214000BB6803221A70BB680122DA703868F9682C -:1021500040F2231213F017F951E050E0BB685B7BAB -:10216000C3F10D03FA681344FA7983F81621BB68AA -:102170005B7B013BDAB2BB685A73BB685B7B002BAD -:102180003CD1BB681A69BB685B6910461946FA689E -:10219000FFF7DEF90346FB77FB7F83F00103DBB239 -:1021A000002B17D0BB681B691B6B002B12D0BB68C0 -:1021B0001B691A6BFB68597A987A00020143DB7A33 -:1021C0001B040B43B868194690470346002B01D007 -:1021D0000123FB77FB7F002B03D0BB6801221A7021 -:1021E00002E0BB6803221A70BB680122DA7038680B -:1021F000F96840F2231213F0C6F8FFE700BFBB698D -:102200000133BB61BB681B78012B10D1FB689A7945 -:10221000BB685A71BB681B89002B02D1BB680022C6 -:102220005A81BB681B8901339AB2BB681A81FB686B -:10223000DA783B68DA70BB68DA78BB6ADA70BB6858 -:102240001A79BB6A1A71BB685B790133DAB2BB6A6F -:102250005A71BB681A89BB6A1A81BB689B781A4697 -:10226000BB6A5A81BB681A7BBB6A1A73BB680022BF -:102270009A70BB681B78022B0DD1FB6893F8143160 -:102280001A46FB6893F815311B029BB213439BB2AD -:102290009AB23B681A80BB681B7818462037BD4647 -:1022A00080BD00BF90B587B002AFBA607B600346C7 -:1022B000FB730B46BB73FB7B1846FFF7AFF8044676 -:1022C000FB7B1846FFF796F80246BB7B79680091C6 -:1022D000204611461A46BB68FFF72CFD03461846F8 -:1022E0001437BD4690BD00BF80B588B000AFBA605E -:1022F0007B600346FB730B46BB73FA7BBB7B1046CC -:102300001946BA687B68FFF7CDFF0346FB77FB7F72 -:10231000022B02D0FB7F032B20D1FB7B1846FFF75B -:102320007DF8B861FB7B1846FFF764F8786178693F -:10233000FFF79CFB7B6900221A707B690122DA702F -:10234000BB7BFD2B08D17B690222DA70BB690022BE -:10235000DA70B869FFF782FC002300E0FB7F1846C3 -:102360002037BD4680BD00BF80B483B000AF786029 -:102370000B46FB707B6803F10C02FB7813441B686F -:1023800018460C37BD465DF8047B704780B483B0B7 -:1023900000AF78600B46FB707B6803F10C02FB78A2 -:1023A00013441B6807EE903AB0EE670A0C37BD463F -:1023B0005DF8047B704700BF80B584B000AFF86063 -:1023C000B960FA71BB71FB6803F10C02BB791A4466 -:1023D000FB79B86811461A4612F0D5FFFB799BB21B -:1023E00018461037BD4680BD80B584B000AFF86098 -:1023F000B960FA71BB71FB6803F10C02BB791A4436 -:10240000FB795B00B86811461A4612F0BCFFFB79F5 -:102410009BB25B009BB218461037BD4680BD00BF23 -:1024200080B584B000AFF860B960FA71BB71FB6829 -:1024300003F10C02BB791A44FB795B00B8681146C2 -:102440001A4612F0A0FFFB799BB25B009BB21846C4 -:102450001037BD4680BD00BF80B586B002AF3A6080 -:102460000246FA710A46BA717B717B793B7301238C -:102470007B733B6803F10C0207F10C03104619460D -:10248000022212F080FF3B6800225A7200229A72E8 -:102490000022DA72FA79BB7902210091552101916B -:1024A000386811461A460223FFF7C6FA0346184653 -:1024B0001037BD4680BD00BF80B483B000AF7860E8 -:1024C0007B680C331B7818460C37BD465DF8047BDF -:1024D000704700BF80B483B000AF78607B680C3376 -:1024E00001331B7818460C37BD465DF8047B7047F6 -:1024F00080B586B002AF0B463A600246FA71BB71F6 -:10250000D7E90623C7E902233B6803F10C0207F170 -:10251000080310461946082212F035FF3B680022D6 -:1025200042F001025A7200229A720022DA72FA799B -:10253000BB79082100914D210191386811461A4656 -:102540000823FFF779FA034618461037BD4680BDC9 -:1025500080B592B002AFBA617B6187ED040AC7ED26 -:10256000030A87ED021AC7ED011A87ED002A034618 -:10257000FB770B46BB777B697B62BB6CBB623B69BD -:10258000FB62FB683B63BB687B637B68BB633B6848 -:10259000FB63BB6903F10C0207F1240310461946E3 -:1025A0001C2212F0F0FEBB69002242F002025A72B5 -:1025B00000229A720022DA72FA7FBB7F1C210091FE -:1025C00009210191B86911461A461C23FFF734FA14 -:1025D000034618464037BD4680BD00BF80B582B077 -:1025E00000AF786078680421FFF7D0FEF0EE407A03 -:1025F000B0EE670A0837BD4680BD00BF80B582B027 -:1026000000AF786078680821FFF7C0FEF0EE407AEE -:10261000B0EE670A0837BD4680BD00BF80B582B006 -:1026200000AF786078680021FFF79EFE03461846E9 -:102630000837BD4680BD00BF80B582B000AF78606E -:102640003960786839680A220423FFF7E9FE0346F7 -:1026500018460837BD4680BD80B582B000AF7860AF -:102660003960786839680A221823FFF7BDFE0346EF -:1026700018460837BD4680BD80B582B000AF78608F -:102680003960786839680A222C23FFF7C9FE0346AF -:1026900018460837BD4680BD80B582B000AF78606F -:1026A0003960786839680A224023FFF7B9FE03468B -:1026B00018460837BD4680BD80B582B000AF78604F -:1026C0003960786839680A225423FFF775FE03469B -:1026D00018460837BD4680BD80B483B000AF78602F -:1026E0007B680C331B7818460C37BD465DF8047BBD -:1026F000704700BF80B483B000AF78607B680C3354 -:1027000001331B7818460C37BD465DF8047B7047D3 -:1027100080B483B000AF78607B680C3302331B78E1 -:1027200018460C37BD465DF8047B704780B483B013 -:1027300000AF78607B680C331B7818460C37BD46B9 -:102740005DF8047B704700BF80B586B002AF3A6089 -:102750000246FA710A46BA717B717B793B733B681A -:1027600003F10C0207F10C0310461946012212F086 -:102770000AFE3B68002242F066025A7200229A72F8 -:102780000022DA72FA79BB79012100917721019157 -:10279000386811461A460123FFF74EF903461846DA -:1027A0001037BD4680BD00BF80B485B000AFF87162 -:1027B000B9717A713B71FB79002B04D13B79002B05 -:1027C00001D0002331E00023FB732AE0FA7B1A4B8F -:1027D00013F82230FA799A4220D1FB7B164A9B00EB -:1027E0001344DB7883F00103DBB2002B02D13B7989 -:1027F000002B11D0FB7B104A9B001344BA795A700E -:10280000FB7B0D4A9B0013447A799A70FB7B0A4A42 -:102810009B0013443A79DA70012306E0FB7B013315 -:10282000FB73FB7B072BD1D9002318461437BD4619 -:102830005DF8047B704700BFF48E002080B582B045 -:1028400000AF02460B46FA71BB71FB79042B3CD8F2 -:1028500001A252F823F000BF6D2800087D2800086F -:102860008D280008AB280008BB280008BB7966202B -:10287000194632220023FFF797FF29E0BB79662033 -:1028800019460A220023FFF78FFF21E0BB7966205B -:1028900019460A220023FFF787FFBB790220194659 -:1028A00002220023FFF780FF12E0BB796620194661 -:1028B0000A220023FFF778FF0AE0BB7901201946BE -:1028C0000A220023FFF770FF02E003480EF014FF16 -:1028D0000837BD4680BD00BFA8B9010890B5ADF569 -:1028E000177D02AF0246FB1D1A7010F02DF8504BF9 -:1028F0001B681B68C7F84C32FB1D1B78012B15D0D9 -:10290000012B02DC002B05D061E0022B1ED0662BD0 -:1029100050D05CE0474B1878464B5978464B1B68C3 -:102920001B7807F59272FFF797FD57E0414B187837 -:10293000404B5978414B1B68D3E9002307F592744B -:10294000CDE900232246FFF7D3FD47E0394B187845 -:10295000384B59783A4B1B681A68D7F84C32D31A5F -:10296000384A12681468D7F84C22A41A364A1268FA -:10297000D2ED005A354A126892ED006A344A126864 -:10298000D2ED006A334A126892ED007A324A126838 -:10299000D2ED007A07F592720094B0EE650AF0EE7F -:1029A000460AB0EE661AF0EE471AB0EE672AFFF755 -:1029B000CFFD13E01F4B19781E4B5A7807F5927321 -:1029C000084611461A460023FFF7BEFE06E02348DC -:1029D0000EF092FE0FF0B0FF002324E00FF0ACFFEA -:1029E00007F10C0207F5927310461946FFF74EF8EF -:1029F0000346A7F84A321A4B1A6A194BDB6AD21AF5 -:102A0000B7F84A329A420ADD07F10C02B7F84A32A7 -:102A1000134811461A4610F0DDF8012303E011486F -:102A20000EF06AFE0023184607F51577BD4690BDE7 -:102A3000148F0020388F0020488F0020408F002006 -:102A4000308F0020248F0020448F0020348F0020FE -:102A5000288F0020188F0020848F0020CCB9010817 -:102A60004C8F0020F8B9010890B587B000AF7860AE -:102A70000EF068FB78610FF067FF564B1B681B6810 -:102A80003B617B685A7A997A09020A43DB7A1B0414 -:102A90001343332B35D0332B04DC002B07D0322BE0 -:102AA00018D085E0642B5DD0652B79D080E04A4B4F -:102AB0001B687A695A60484B1C687868FFF70AFD02 -:102AC00003466370444B1C687868FFF7F5FC0346C7 -:102AD000237079E0414B1B687A699A603F4B1C6810 -:102AE0007868FFF77BFDF0EE407AC4ED007A3B4B4F -:102AF0001C687868FFF782FDF0EE407AC4ED017A39 -:102B000062E0374B1B687A691A66354B1C68786837 -:102B1000FFF784FD02463B6913442360304B1B687A -:102B2000043378681946FFF787FD2D4B1B6818336F -:102B300078681946FFF790FD294B1B682C3378689D -:102B40001946FFF799FD264B1B68403378681946F4 -:102B5000FFF7A2FD224B1B68543378681946FFF734 -:102B6000ABFD31E07868FFF7B7FD0346FB7378688B -:102B7000FFF7C0FD0346BB737868FFF7C9FD034646 -:102B80007B73BB7B002B0CBF00230123DAB2F97BE4 -:102B90007B7B084611461A460123FFF705FE13E02A -:102BA000104B1C687868FFF7C1FD034623700BE0EB -:102BB0007B685A7A997A09020A43DB7A1B04134329 -:102BC000094819460EF098FD0FF0B6FE1C37BD46B9 -:102BD00090BD00BF148F00203C8F0020208F00206C -:102BE0002C8F00201C8F002018BA010880B586B0F9 -:102BF00004AF2A480EF080FD294B4FF4E1321A60F1 -:102C0000274B02221A71274B1B68274A1268009231 -:102C1000264A0192264A0292214826491A46264B04 -:102C20000FF09AFE0346002B01D0FF2331E0234B27 -:102C300000221A70214B00225A700023FB711BE006 -:102C4000FA79FB791E4940F20C6000FB03F30B4458 -:102C50001B68D9B21B4B03F82210FB79194A9B0061 -:102C6000134400225A70FB79164A9B001344002239 -:102C7000DA70FB790133FB71FB79072BE0D9002077 -:102C800001210A220023FFF78FFD0F4B01221A704A -:102C900000235BB218460837BD4680BD4CBA010818 -:102CA0004C8F00200000002004000020E8180020C5 -:102CB000480900207801002060050020388F00209E -:102CC00048890108F48E00207401002000000000F3 -:102CD00090B5D1B000AF002387F83F3110E0304B02 -:102CE000197897F83F0107F118023B46FFF7FCFA05 -:102CF0000346002B04D007F118031846FFF7B4FE73 -:102D0000284827490FF08EFF0346002BE7D10EF02D -:102D100019FA0246244B1B685B68D31A184614F054 -:102D20008FFF02460B4601210C46104619461AA396 -:102D3000D3E9002315F08AFA0346002B01D10023C2 -:102D40001C4687F83E4197F83E31002B0DD0174BBB -:102D50001B7883F00103DBB2002B06D007200EF0B6 -:102D600033FA124B01221A7010E097F83E3183F0CB -:102D70000103DBB2002B09D00C4B1B78002B05D0D4 -:102D800007200EF043FA094B00221A7007F5A277CC -:102D9000BD4690BDAFF300800000000080840E416E -:102DA000750100204C8F00203C8F00207401002012 -:102DB00080B582B000AF174B1B8801339AB2154B18 -:102DC0001A800023FB711FE0FB79134A9B00134418 -:102DD0005B78002B15D00F4B1B881A46FB790E49E8 -:102DE0009B000B449B7892FBF3F103FB01F3D31A96 -:102DF000002B06D1FA79084B13F822301846FFF75A -:102E00006DFDFB790133FB71FB79072BDCD90837AA -:102E1000BD4680BD88280020F48E002080B582B099 -:102E200000AF0346FB71FB7918460121FFF706FD51 -:102E30000837BD4680BD00BF80B582B000AF0346F5 -:102E4000FB71FB7918460021FFF7F8FC0837BD46F7 -:102E500080BD00BF80B500AF104B4FF07E525A616D -:102E60000E4B4FF07E529A600C4B4FF00002DA602E -:102E70000A4B4FF000021A61084B094A5A60074B8F -:102E8000084A1A60054B4FF07E529A6103480EF0D3 -:102E900021FA00235BB2184680BD00BFB08F00202E -:102EA0000000C8420000C8C280B582B000AF022353 -:102EB000FB800023BB800FF047FD174B1B68D3ED51 -:102EC000007AFDEEE77A17EE903AFB800FF034FDC2 -:102ED000B7F9063007EE103AF8EEC77A3B1D0F48F7 -:102EE000B0EE670ADFED0E0A1946B2EE041AF2EEF2 -:102EF000041A0EF001FA0FF027FD0A4B1B68BA887E -:102F000012B207EE102AF8EEC77AC3ED007A0FF07E -:102F100013FD0837BD4680BD888F0020B08F00208C -:102F200000000000D48F002080B586B000AF0023E1 -:102F3000FB75484B4FF000021A60474B4FF0000200 -:102F40001A60464B4FF000021A60454B4FF00002EA -:102F50001A6000F05DF9434B00229A71414B472201 -:102F60001A60404B0322DA713E4810F063FA0020E9 -:102F700010F004FC3C4B1B681B683B613A4B1B6820 -:102F80001B68FB60344BD3ED007A97ED047AB4EE06 -:102F9000E77AF1EE10FA20D52E4BD3ED007A97EDBB -:102FA000047AB4EEE77AF1EE10FA16DD294B93EDD0 -:102FB000007A294BD3ED007A97ED040AF0EE470A28 -:102FC000B0EE671A00F0D8F887ED020A2548002114 -:102FD00097ED020A10F01EFB03E0FB7D0333DBB22A -:102FE000FB75012010F0CAFB1D4BD3ED007A97ED65 -:102FF000037AB4EEE77AF1EE10FA20D5174BD3ED51 -:10300000007A97ED037AB4EEE77AF1EE10FA16DD66 -:10301000124B93ED007A124BD3ED007A97ED030A31 -:10302000F0EE470AB0EE671A00F0A6F887ED010A45 -:103030000C48012197ED010A10F0ECFA03E0FB7D4A -:103040000433DBB2FB75FB7D5BB218461837BD4617 -:1030500080BD00BF882D00208C2D0020902D0020E9 -:10306000942D0020782D00201490002080B500AF12 -:103070000348002110F04CFB00235BB2184680BDD2 -:10308000782D002080B500AF0348012110F040FBEF -:1030900000235BB2184680BD782D002080B584B037 -:1030A00000AF87ED010A97ED010AFFEE000AB7EEC7 -:1030B000001A00F061F887ED030A0448012197ED3A -:1030C000030A10F0A7FA1037BD4680BD782D002006 -:1030D00080B584B000AF4FF00003FB604FF00003F9 -:1030E000BB604FF000037B600FF02EFC1C4B1B6895 -:1030F0001B68FB6000F08CF80FF01EFC194BD3ED41 -:10310000007A97ED037A37EE677A174BD3ED006AB2 -:10311000144BD3ED007A76EEE77AC7EE277AC7ED47 -:10312000017A124B93ED007A114BD3ED007A37EE12 -:10313000677AD7ED017A27EE277A0D4BD3ED007A27 -:1031400077EE277AC7ED027A0FF0FEFB094B1B687A -:10315000BA681A600FF0F0FB1037BD4680BD00BFA3 -:10316000E48F0020982D00209C2D0020942D00201D -:10317000902D002000900020B0B586B000AF87ED04 -:10318000030AC7ED020A87ED011A97ED017AD7ED20 -:10319000027A77EE677A17EE900A14F073FD024612 -:1031A0000B4619A1D1E9000114F0EAFE02460B46D4 -:1031B00014461D4697ED037AD7ED027A77EE677ACB -:1031C00017EE900A14F05EFD02460B462046294693 -:1031D00014F0ACFD02460B46104619460AA3D3E98B -:1031E000002314F0F1FB02460B461046194615F079 -:1031F0007FF803467B617B6907EE903AB0EE670A81 -:103200001837BD46B0BD00BF098A1F63EE5AB23FF2 -:1032100080B400AF104B1B681A68104B1A60104B3B -:103220001B681A680F4B1A600F4B1B681A680F4B0C -:103230001A600F4B1B681A680E4B1A600E4B1B6806 -:103240001A680E4B1A600E4B1B681A680D4B1A60F9 -:10325000BD465DF8047B70471C900020882D00203F -:10326000089000208C2D002004900020902D00203C -:1032700020900020942D0020109000209C2D0020F4 -:10328000F48F0020982D002080B500AF0FF014F9C6 -:10329000144B06221A70134B00225A70114B002255 -:1032A0009A7010480FF0F4FD0F4B09221A700E4B64 -:1032B00000225A700C4B00229A700B480FF0E8FD68 -:1032C0000A4B1B6800221A60094B1B6800221A6017 -:1032D000084B1B6800221A60074B1B6800221A600B -:1032E00080BD00BFA02D0020A42D002064900020F0 -:1032F0006C900020689000206090002090B585B010 -:1033000000AF0023FB730023BB730023BB810023AA -:103310007B8100233B810023FB8007F10C0007F138 -:103320000A0107F10802BB1D0FF002F942480FF035 -:10333000C7FE0346FB7341480FF0C2FE0346BB7352 -:10334000BB7B002B01D0012300E0FF233C4A137517 -:10335000FB7B002B01D0FF2300E00123384A1377C9 -:103360003B89092B13D9FB880A2B10D9344B1A7DC2 -:10337000334B1B7F52B25BB29A4205D1304B1A7D60 -:103380002F4B83F8242002E02E480EF0B5F92C4B89 -:103390001A7F2B4B83F82420294B1A693B89284933 -:1033A00091F8241049B201FB03F31A44244B1A612B -:1033B000234B9A69FB88224991F8241049B201FBFA -:1033C00003F31A441E4B9A611D4B1C6ABB891A46B3 -:1033D0007B891A443B891A44FB88134407EE103A50 -:1033E000F8EEC77A17EE900A14F04CFC02460B4632 -:1033F000104619464FF00002134B14F0C1FD02466F -:103400000B461046194614F053FF0346E2180C4BC6 -:103410001A620E4B1B680A4A12691A600C4B1B6831 -:10342000074A92691A600B4B1B68054A92F82420E0 -:103430001A701437BD4690BDA02D0020A42D002089 -:10344000A82D0020C4BA0108000010406890002098 -:10345000609000207090002080B582B000AF214BBA -:1034600000221A70204B00221A60204B00221A7092 -:103470001F4B1B6840F2DC521A801E4B1B6840F247 -:10348000DC521A801C4B1B6840F2DC521A801B4B2A -:103490001B6840F2DC521A80194B1B6840F2DC5268 -:1034A0001A80184B1B6840F2DC521A80164B1B68BE -:1034B00040F2DC521A80154B1B6840F2DC521A8035 -:1034C000134B1B68074A12781A70124B7B603B1D26 -:1034D000184610F07BF900235BB218460837BD464A -:1034E00080BD00BFD02D0020D42D0020D12D002084 -:1034F00094900020849000209890002080900020DC -:10350000789000208C900020889000207C900020F3 -:10351000909000201935000880B500AF4A4810F09F -:1035200059FA024613469B0013445B001A46474B68 -:103530001A604548002110F03FFA4348012110F07D -:10354000D9FC0346002B10D03F480121002210F087 -:103550009DFC3F4B1B78012B03D13D4B02221A707F -:103560006DE03B4B00221A7069E03748022110F0F1 -:10357000C1FC0346002B62D0354B1B78012B07D0D2 -:1035800031480121012210F081FC314B01221A70D7 -:103590002E4B1A6840F6B8339A4203D92D4B0022BD -:1035A0001A7043E02B4B1B785A1CD1B2294A117078 -:1035B0001A46264B1968284B43F82210254B1B78D6 -:1035C000082B33D10FF0C0F9244B1B68224A126834 -:1035D00092B21A80224B1B681F4A526892B21A801C -:1035E000204B1B681C4A926892B21A801E4B1B68C3 -:1035F000194AD26892B21A801C4B1B68164A12698B -:1036000092B21A801A4B1B68134A526992B21A80FE -:10361000184B1B68104A926992B21A80164B1B68AD -:103620000D4AD26992B21A800FF086F90FF08CF928 -:10363000124B1B68064A12781A700FF07DF90023AE -:103640005BB2184680BD00BF00400140D42D002071 -:10365000D02D0020D12D0020D82D002094900020C6 -:103660008490002098900020809000207890002086 -:103670008C900020889000207C900020909000206A -:1036800080B588B004AF0023FB734E4B4E4A1A60DE -:103690004C4B00221A714FF4FA7300934B4B019379 -:1036A0004B4B029347484B4964224B4B0FF054F964 -:1036B0004A4B00221A70494B01225A70474B002294 -:1036C0009A7046480FF0E4FB00F0ACF900F026FDDC -:1036D00003461A46FB7B1343FB73414B1B880620B2 -:1036E0001946022200F0C2FC3E4B1B8808201946F6 -:1036F000022200F0BBFC04200321012200F0B6FCF2 -:1037000005206421012200F0B1FC102002210122D9 -:1037100000F0ACFC12202621012200F0A7FC1120B1 -:103720002621012200F0A2FC0E2040F2FF310222ED -:1037300000F09CFC0B205021012200F097FC062099 -:10374000022100F045FC0346BB814FF4FA6000F013 -:103750007FF90820022100F03BFC03467B814FF4F7 -:10376000FA6000F075F90E20022100F031FC0346EA -:103770003B814FF4FA6000F06BF92B20012100F03F -:1037800027FC0346FB804FF4FA6000F061F9B98929 -:103790007A893B89F888009013480DF0ADFF00F05E -:1037A000C9FD9FED120A002000F0F2FCFB7B002B0C -:1037B0000CBF00230123DBB2DBB25BB2184610372B -:1037C000BD4680BDFC2D002020A107006C320020EA -:1037D000DC300020842E0020E82E0020F82D002070 -:1037E000080000200A00002020BB010800000000A3 -:1037F00090B583B000AF4FF000037B60714B1A6847 -:1038000042F210739A4205D96E4B00221A606E4B39 -:1038100000221A606C4B1B68002B13D06A4B1B688C -:1038200006EE903AB8EE667A664B1B6806EE903A62 -:10383000F8EE667A87EE277ADFED647A67EE277A0C -:10384000C7ED017A0FF080F8614B1B681A68614B75 -:103850001A60614B1B681A68604B1A60604B1B68EA -:103860001B78FB705F4B1B681B883B800FF064F874 -:103870005A4B5D4A1A60FB78002B16D03B8807EE46 -:10388000103AF8EE477AB0EE670ADFED580A9FED7E -:10389000581AFBEE061AB3EE062A00F0F3F8F0EE23 -:1038A000407A4E4BC3ED007A03E04C4B4FF00002E0 -:1038B0001A604A4BD3ED007AB0EE670A6E2000F032 -:1038C00067FC2420022100F083FB034606EE903AB9 -:1038D000F8EE667A474BC3ED007A2B20012100F009 -:1038E00077FB034607EE103AF8EE477A424BC3EDFA -:1038F000007A0FF029F8414B1B683F4A12681A60A2 -:103900003F4B1C683B4BD3ED007AFCEEE77A17EE99 -:10391000903A9BB20020194600F0D2FCF0EE407ABB -:10392000C4ED007A0FF008F8334B93ED007ADFED29 -:10393000357AB4EEE77AF1EE10FA04DD32484FF44E -:10394000804110F0F1FC314B1B785A1CD1B22F4A48 -:103950001170622B33D91F4B1B68184614F092F973 -:1039600002460B462A480DF0C7FE1C4B1B68184642 -:1039700014F088F902460B4626480DF0BDFE204B98 -:103980001B681B68184614F07DF902460B46224856 -:103990000DF0B2FE184B1B68184614F073F902467E -:1039A0000B461E480DF0A8FE786814F06BF902462D -:1039B0000B461B480DF0A0FE144B00221A700C376A -:1039C000BD4690BD682E00206C2E00200000C8422D -:1039D000AC900020742E0020A4900020782E0020AF -:1039E000A0900020B09000200000A04100806D4415 -:1039F000002000457C2E0020802E0020A890002072 -:103A0000B49000200000B442000C02401444002096 -:103A100084BB0108A4BB0108C0BB0108E0BB0108CE -:103A2000FCBB010880B584B000AF3B46184611F0DE -:103A300099F87A68044BA3FB02135A0D034B1A60E2 -:103A40001037BD4680BD00BF83DE1B43642E0020BF -:103A500080B582B000AF78600EF076FF084B1A6830 -:103A60007B6802FB03F37B600EF066FF00BF7B68A0 -:103A70005A1E7A60002BFAD10837BD4680BD00BFC0 -:103A8000642E002080B487B000AF87ED050AC7ED33 -:103A9000040A87ED031AC7ED021A87ED012A97ED94 -:103AA000057AD7ED037AB4EEE77AF1EE10FA02DB8D -:103AB000D7ED017A25E097ED057AD7ED047AB4EEDB -:103AC000E77AF1EE10FA02D8D7ED027A19E097ED15 -:103AD000057AD7ED047A37EE677AD7ED016AD7ED2C -:103AE000027A76EEE77A27EE277AD7ED036AD7EDEA -:103AF000047A76EEE77A87EE277AD7ED027A77EEC8 -:103B0000277AB0EE670A1C37BD465DF8047B704724 -:103B100080B58CB000AF396013460246FA71BB71B4 -:103B20000023FB62002387F82B30002387F82A301C -:103B3000002387F82330002387F82930002387F8F3 -:103B40002530002387F82830002387F8243000230D -:103B500087F82730002387F8263007F10C0300226E -:103B60001A60043300221A60043300221A600433FE -:103B700000221A60043300221A60043381480021B5 -:103B8000142211F009FC80480021142211F004FCD9 -:103B9000BB79053387F825307A4BFF221A70794BB1 -:103BA000FF225A70774B01229A70BB790233DAB246 -:103BB000744BDA70734BFA791A71BB79002B17D0FA -:103BC000002387F82B300EE097F82B30053397F859 -:103BD0002B2039680A4411786A4AD15497F82B305F -:103BE000013387F82B3097F82B20BB799A42EBD31F -:103BF000022387F82B3012E097F8253097F825201C -:103C00006049895C97F82B205E48825C0A44D1B2F7 -:103C10005C4AD15497F82B30013387F82B3097F852 -:103C20002B2097F825309A42E6D397F8253097F85D -:103C3000252054498A5CD243D1B2524AD1545348C8 -:103C40000FF0E4FA00BF5248802110F067FE0346EF -:103C5000002BF8D0002387F82B3014E097F82B3096 -:103C6000484AD35C4A48194610F0EEFD00BF484868 -:103C7000802110F053FE0346002BF8D097F82B302C -:103C8000013387F82B3097F82B2097F825309A428C -:103C9000E4D91E20FFF7DCFE3C480FF041FB3D4B12 -:103CA00000221A700A20FFF7D3FEFB6A0133FB6281 -:103CB000FB6AB3F5C87F00D904E0364B1B78DBB252 -:103CC000002BEFD04FF4C870FFF7C2FE0023FB6259 -:103CD00007F12303304819460EF0A4FF97F8293066 -:103CE0005A1C87F8292097F8232007F130010B444C -:103CF00003F8242C97F82330FF2B03D1012387F8F6 -:103D00002A3002E0002387F82A3097F82A30012B66 -:103D10002ED107F12303204819460EF083FF97F8B0 -:103D200029305A1C87F8292097F8232007F1300101 -:103D30000B4403F8242C97F82330FF2B06D10223E1 -:103D400087F82A30012387F826302BE097F82330B4 -:103D5000012B09D1022387F82A30012387F8263066 -:103D6000012387F827301DE0002387F82A3002E07E -:103D7000002387F82A30FB6A0133FB62FB6A142BAD -:103D80000CD90FE03C2E0020502E0020F82D0020F2 -:103D900000100140352E0020FC2D002097F82A301D -:103DA000012B95D997F82630002B00F0E4807A4B50 -:103DB000FF221A70784BFF225A7097F82730002B99 -:103DC00005D107F12303754819460EF02BFF97F82C -:103DD0002330FF2B05D107F12303704819460EF05D -:103DE00021FF97F823206C4B9A7007F123036B484F -:103DF00019460EF017FF97F82320674BDA7007F18A -:103E00002303664819460EF00DFF97F82320624BF6 -:103E10001A7197F8233003F00103002B03D0604898 -:103E200060490DF069FC97F8233003F00203002B82 -:103E300003D05B485C490DF05FFC97F8233003F03A -:103E40000403002B03D0564858490DF055FC97F851 -:103E5000233003F00803002B03D0514854490DF0E0 -:103E60004BFC97F8233003F01003002B03D04C4891 -:103E700050490DF041FC97F8233003F02003002B4C -:103E800003D047484C490DF037FC97F8233003F036 -:103E90004003002B03D0424848490DF02DFC3E4B17 -:103EA000DB78023BBB71BB790A2B05D9444B1B68FD -:103EB0005A1C434B1A606CE0002387F82B3011E04A -:103EC00007F12303354819460EF0ACFE97F82B3066 -:103ED000053397F82310304AD15497F82B3001332B -:103EE00087F82B3097F82B20BB799A42E8D307F15B -:103EF00023032A4819460EF095FEBB79053387F84F -:103F0000253097F82530132B05D92D4B1B685A1CEB -:103F10002B4B1A603DE097F8253097F823101E4A86 -:103F2000D154022387F82B300DE097F82B301A4A32 -:103F3000D25C97F82830134487F8283097F82B3054 -:103F4000013387F82B3097F82B2097F825309A42C9 -:103F5000EBD397F82830DB4387F8283097F82530E3 -:103F60000D4AD35C97F828209A420DD00C48154989 -:103F70000DF0C2FB08E0124B1B685A1C104B1A6074 -:103F8000074811490DF0B8FB104B1B685A1C0F4B2A -:103F90001A603037BD4680BD502E0020FC2D002019 -:103FA00010BC010824BC010834BC010848BC01084D -:103FB00054BC01085CBC01086CBC010878BC010859 -:103FC0006C2E002084BC010894BC0108682E0020DF -:103FD0002DE9F04186B000AFF871B971B9790229C5 -:103FE0003BD8694688460221F975FE7D3146013984 -:103FF0003961F0B24FF00001CD0045EA5075C400C0 -:10400000F0B24FF00001CB0043EA5073C2003346D8 -:104010000733DB08DB00ADEB030D6B460033FB60C1 -:10402000FB68FA791A70FB68BA795A70FA68FB7DF6 -:10403000022011461A46FFF76BFDBB79012B08D908 -:10404000094B9B791B029AB2074B5B7913449BB2D5 -:1040500001E0054B5B79C54600E0002318461837A0 -:10406000BD46BDE8F08100BF502E002080B582B073 -:1040700000AF13460246FA710A46BA80BB71FA795C -:10408000BB7910461946FFF7A3FF0346BA889A4248 -:1040900004D14FF4FA60FFF7DBFC12E0F979BA883B -:1040A000BB79084611461A4600F010F8FA79BB8829 -:1040B000054811461A460DF01FFB4FF4FA60FFF752 -:1040C000C7FC0837BD4680BDACBC010880B584B0D4 -:1040D00000AF13460246FA710A46BA80BB71BB882C -:1040E000BB730023FB73BB7901337B73FB793B729A -:1040F000BB79022B03D1BB881B0A9BB2FB73BB7B32 -:104100007B72FB7BBB7207F108027B7B03201146AD -:104110001A46FFF7FDFC1037BD4680BD2DE9F04182 -:1041200084B000AF6C46A0460024FC73FE7B34468E -:10413000013CBC60F4B24FF00005E90041EA547163 -:10414000E000F0B24FF00001CB0043EA5073C20030 -:1041500033460733DB08DB00ADEB030D6B46003362 -:104160007B607A68FB7B012011461A46FFF7D0FC82 -:10417000064B1B79002B0CBF00230123DBB2C54685 -:1041800018461037BD46BDE8F08100BF502E002014 -:104190002DE9F04387B000AF87ED010A0346FB70BD -:1041A0006B461E46414B1B8806EE903AB8EE667A87 -:1041B0003F4B1B8806EE903AF8EE667A97ED010ABF -:1041C000FBEE060AB3EE061AF0EE471AB0EE672AC7 -:1041D000FFF758FCF0EE407AFCEEE77A17EE903AE3 -:1041E0007B820023FB8203237B75FB78002B19D095 -:1041F000FB7807EE103AF8EE477AB0EE670ADFED8B -:104200002D0A9FED2D1ADFED2B1A9FED2C2AFFF7BB -:1042100039FCF0EE407AFCEEE77A17EE903AFB823A -:1042200005237B75797D0B46013BFB60CAB24FF0DD -:1042300000034FEAC30949EA52794FEAC208CAB2F9 -:104240004FF00003DD0045EA5275D4000B460733FA -:10425000DB08DB00ADEB030D6B460033BB60BB68D6 -:104260001E221A707B8ADAB2BB685A707B8A1B0ADC -:104270009BB2DAB2BB689A70FB78002B09D0FB8A3C -:10428000DAB2BB68DA70FB8A1B0A9BB2DAB2BB688F -:104290001A71BA687B7D032011461A46FFF738FC75 -:1042A000B5461C37BD46BDE8F08300BF08000020BE -:1042B0000A000020000000000000E44200C07F442B -:1042C00080B584B000AF02460B46FA71BB804FF058 -:1042D0000003FB60FB79002B1FD1BB8806EE103A70 -:1042E000F8EE466A114B1B8807EE903AB8EE677AF3 -:1042F0000F4B1B8806EE103AF8EE467AB0EE660ACF -:10430000F0EE470AB0EE671AFBEE061AB3EE062A85 -:10431000FFF7B8FB87ED030A00BFFB6807EE903A92 -:10432000B0EE670A1037BD4680BD00BF0800002010 -:104330000A00002080B582B000AF0023FB8000237C -:10434000BB8022204FF461710222FFF7BFFE2420C0 -:104350000221FFF73DFE03461A46504B1A80002308 -:10436000FB803BE04D4B1A88FB88D31ABB80BA8890 -:104370004B4B1B884B4811461A460DF0BDF9BB88C4 -:104380001E2019460222FFF7A1FE24200221FFF77A -:104390001FFE03461A46424B1A80BA88404B1B88C0 -:1043A000404811461A460DF0A7F93D4B1B881A46A6 -:1043B000BB88D31A092B0ADD394B1A883A4B1A806D -:1043C000394B1B88394819460DF096F90BE042F23B -:1043D0001070FFF73DFBFB880133FB802F4B1B88E0 -:1043E000FA889A42BED342F21070FFF731FB2E4B8F -:1043F0001B88FB802FE0FB88BB80BA88284B1B887A -:10440000284811461A460DF077F9BB881E20194638 -:104410000222FFF75BFE24200221FFF7D9FD0346AD -:104420001A461F4B1A80BA881D4B1B88D31A0A2BB9 -:104430000ADD1B4B1A881E4B1A801D4B1B881D481A -:1044400019460DF059F90BE042F21070FFF700FB2E -:10445000FB880133FB80164B1B88FA889A42CAD32B -:1044600042F21070FFF7F4FA0F4B1B880A339AB22E -:104470000D4B1A800E4B1B880A3B9AB20C4B1A80CC -:10448000222040F2FF310222FFF720FE9FED0A0AB0 -:104490006E20FFF77DFE0837BD4680BD722E0020DE -:1044A000702E0020D0BC010808000020ECBC0108E0 -:1044B0000A00002014BD01080000000080B483B091 -:1044C00000AF03463960FB7197F90730002B0BDA18 -:1044D0000D49FB7903F00F03043B3A68D2B2120195 -:1044E000D2B20B441A7609E0084997F907303A68C6 -:1044F000D2B21201D2B20B4483F800230C37BD466E -:104500005DF8047B704700BF00ED00E000E100E0D3 -:1045100080B582B000AF78607B68B3F1807F01D353 -:10452000012311E00A4B7A6822F07F42013A5A6077 -:104530004FF0FF301521FFF7C1FF054B00229A60B5 -:10454000034B07221A60002318460837BD4680BD7A -:1045500010E000E080B500AF0748FFF7D9FF10F08A -:1045600051FD064800214FF4C07210F015FF0023E2 -:104570005BB2184680BD00BF40900200244400207A -:1045800080B400AF044B01221A7000235BB21846BE -:10459000BD465DF8047B70471844002080B582B0AA -:1045A00000AF0346FB710E4B1B78FA799A4210D28A -:1045B000FB790C4AD35CFB71FA7913465B00134418 -:1045C0009B001A46084B1344184600F05FF800237E -:1045D00000E0FF235BB218460837BD4680BD00BF30 -:1045E00020440020A44500202444002080B588B049 -:1045F00002AFF860B9601346FB71224B1B78202B89 -:1046000001D1FF2338E00EF09FF91E4B1B78BB75DC -:104610000023FB751EE0FA7D1B4913465B00134423 -:104620009B000B4408331B781A46FB79012101FAE1 -:1046300003F39A420BDDFA7DBB7DF97900911046B8 -:104640001946FA68BB6800F039F8BB7D14E0FB7DC1 -:104650000133FB750B4B1B78FA7D9A42DBD3FA7D55 -:10466000BB7DF979009110461946FA68BB6800F0E5 -:1046700025F80EF061F9BB7D5BB218461837BD46D0 -:1046800080BD00BF204400202444002080B483B0BB -:1046900000AF78607B685B7ADBB243F00203DAB28A -:1046A0007B685A720C37BD465DF8047B704700BFCB -:1046B00080B483B000AF7860FEE700BF80B487B0FD -:1046C00000AFBA607B600346FB730B46BB73384B8D -:1046D0001B78FB7515E0FA7D13465B0013449B00C5 -:1046E000344A9918FB7D5A1E13465B0013449B0005 -:1046F000304A1A440B4607CA83E80700FB7D013B9A -:10470000FB75FA7DFB7B9A42E5D80023BB750FE071 -:10471000BB7D294AD35CFA7B9A4206D8BB7D264AE8 -:10472000D25C0132D1B2244AD154BB7D0133BB7576 -:104730001F4B1B78BA7D9A42EAD3FA7B1D49134678 -:104740005B0013449B000B44BA681A60FA7B19495A -:1047500013465B0013449B000B44083300225A703D -:10476000FA7B144913465B0013449B000B447A68A0 -:104770005A60FA7B97F82030012101FA03F3D9B28D -:104780000C4813465B0013449B00034408330A465D -:104790001A70BB7B084AF97BD154054B1B78013357 -:1047A000DAB2034B1A701C37BD465DF8047B7047C4 -:1047B0002044002024440020A445002080B582B07D -:1047C00000AF614B1B685A1C5F4B1A605F4B1B7834 -:1047D000002B00D1B4E00EF0B7F80023FB700023EB -:1047E000BB7023E0BA785A4B33F812309BB2002BDF -:1047F0000FD1BA78B978574B33F81110544B23F8CE -:104800001210BB78012202FA03F3DAB2FB781343E9 -:10481000FB70BB784E4A32F8132092B2013A91B243 -:104820004B4A22F81310BB780133BB70BB78072BBF -:10483000D8D90EF081F80EF087F8474B7B6033E053 -:104840007B685B7ADBB203F00203002B29D07B6824 -:104850001A7AFB781340DBB2002B13D07B685B7AAB -:10486000DBB203F00403002B03D07868FFF720FFCE -:1048700017E07B685B7ADBB243F00403DAB27B6853 -:104880005A720EE07B685B7ADBB203F00103002B07 -:1048900007D07B685B7ADBB243F00403DAB27B6853 -:1048A0005A727B680C337B602C4B1B781A4613467C -:1048B0005B0013449B001A46274B1A447B689A42BC -:1048C000BED80EF039F80EF03FF8234B7B6028E09D -:1048D0007B685B7ADBB203F00803002B00D02DE08D -:1048E0007B685B7ADBB203F00403002B16D07B6895 -:1048F0005B7ADBB243F00803DAB27B685A720EF0DF -:104900001BF87B681B6898470EF01EF87B685B7A83 -:10491000DBB223F00C03DAB27B685A727B680C338B -:104920007B600E4B1B781A4613465B0013449B00BA -:104930001A46094B1A447B689A42C9D80DF0FCFF0D -:104940000837BD4680BD00BF1C440020184400202D -:10495000C44500200C0000202444002020440020F6 -:1049600080B483B000AF0023FB71384BD3F87C31A7 -:1049700003F12002364B1A60344BD3F87C312C33D0 -:1049800003F12002334B1A60304BD3F87C3158339B -:1049900003F12002304B1A602C4BD3F87C31843366 -:1049A00003F120022D4B1A60284BD3F87C31B03331 -:1049B00003F120022A4B1A60244BD3F87C31DC33FC -:1049C00003F12002274B1A60204BD3F87C3103F50A -:1049D000847303F12002244B1A601C4BD3F87C3102 -:1049E00003F59A7303F12002204B1A60174BD3F89A -:1049F000C43103F120021E4B1A60144BD3F8C431AA -:104A00002C3303F120021B4B1A60104BD3F87C317E -:104A10002C3303F12002184B1A600C4BD3F87C3175 -:104A2000583303F12002154B1A60084BD3F88C3031 -:104A3000583303F12002124B1A60FB795BB218461F -:104A40000C37BD465DF8047B704700BFB89000206E -:104A5000149000201C90002008900020F88F002067 -:104A60000490002020900020F48F0020109000205F -:104A7000D88E0020E08E0020DC8E0020CC8E00201E -:104A8000C48E002080B500AF00F020F80346002B54 -:104A900002D00A480CF030FE094800F09FFA0346A5 -:104AA000002B02D007480CF027FEFFF759FF034602 -:104AB000002B02D004480CF01FFE80BDB4BD0108DD -:104AC000B8900020E4BD010814BE0108B0B483B062 -:104AD00000AF0023BB800023FB710CE0FA79B549DD -:104AE00013465B001344DB000B44103300225A6072 -:104AF000FB790133FB71FB79242BEFD9AD4BAE4A27 -:104B0000DA62AC4B11225A76AA4B01221A76AB4AD2 -:104B1000AB4B03CB106051601B781372A54BA94AB5 -:104B20005A64A44B072283F83120A24B022283F857 -:104B30003020A54AA54B03CB106051601B7813723F -:104B40009C4BA34ADA659B4B052283F84920994B7D -:104B5000032283F848209C4A9E4B144607CB2060D2 -:104B60006160A2601A889B78A281A373914B9A4AD4 -:104B70005A67904B012283F861208E4B042283F800 -:104B80006020964A964B15461C460FCC28606960FB -:104B9000AA60EB6023782B74864B924AC3F88C2072 -:104BA000844B042283F87920824B052283F87820F5 -:104BB0008D4B5F221A807F4B8C4AC3F8EC207D4BD3 -:104BC0000A2283F8D9207B4B092283F8D820884B0E -:104BD0005F221A80774B874AC3F80421754B09225C -:104BE00083F8F120734B0A2283F8F020824B834A2A -:104BF0001068186092889A806E4B814AC3F81C2115 -:104C00006C4B242283F809216A4B0B2283F808217C -:104C1000684A7C4B02F585741D460FCD20606160AB -:104C2000A260E360634B784AC3F83421614B0522EC -:104C300083F821215F4B0C2283F82021734B5F22E4 -:104C40001A805C4B724AC3F84C215A4B032283F8FA -:104C50003921584B0D2283F838216E4B5F221A8080 -:104C6000544B6D4AC3F86421524B062283F85121FC -:104C7000504B0E2283F85021684B5F221A804D4B17 -:104C8000674AC3F87C214B4B082283F86921494BC2 -:104C90000F2283F86821634B5F221A80454B624ADA -:104CA000C3F89421434B042283F88121414B102205 -:104CB00083F880215D4B5F221A803E4B5C4AC3F82B -:104CC000AC213C4B022283F899213A4B112283F804 -:104CD0009821584B5F221A80364B574AC3F8C4219B -:104CE000344B022283F8B121324B122283F8B021D7 -:104CF000524B5F221A802F4B514AC3F8DC212D4BB7 -:104D00000A2283F8C9212B4B132283F8C8214D4B6B -:104D10005F221A80274B4C4AC3F8F421254B092205 -:104D200083F8E121234B142283F8E021474A484BC2 -:104D3000144607CB20606160A2601A889B78A2812C -:104D4000A3731C4B434AC3F80C221A4B182283F856 -:104D5000F921184B152283F8F8213F4A3F4B14469E -:104D600007CB20606160A2601B782373114B3C4A23 -:104D7000C3F824220F4B042283F811220D4B162274 -:104D800083F81022374A384B144607CB2060616005 -:104D9000A260084B354AC3F83C22064B062283F832 -:104DA0002922044B172283F82822314B5F221A80D4 -:104DB00060E000BFB8900020D4450020D2900020D1 -:104DC000C0BE0108C0480020EA900020CCBE010807 -:104DD000F4490020D8BE0108D04A00201A910020D2 -:104DE000E8BE0108FC4A002032910020AC4B0020B4 -:104DF00092910020644D0020AA910020FCBE010881 -:104E0000F04E002030BF010820550020DA9100202C -:104E1000FC550020F2910020805600200A920020CC -:104E20008857002022920020E85800203A92002063 -:104E30009859002052920020F05900206A920020D8 -:104E4000485A002082920020005C00209A920020A4 -:104E500004BF01088C5D0020B292002014BF01083D -:104E6000AC610020CA92002024BF01085C620020CF -:104E7000E2920020464B474AC3F85422444B032297 -:104E800083F84122424B182283F84022424B5F2292 -:104E90001A803F4B414AC3F86C223D4B052283F8F0 -:104EA00059223B4B192283F858223D4B5F221A802E -:104EB000374B3C4AC3F88422354B062283F87122D3 -:104EC000334B1A2283F87022374B5F221A80304B03 -:104ED000364AC3F8E4222E4B072283F8D1222C4B0A -:104EE0001E2283F8D022324B5F221A80284B314A8F -:104EF000C3F81423264B042283F80123244B2022D9 -:104F000083F800232C4B5F221A80214B2B4AC3F8D5 -:104F10002C231F4B092283F819231D4B212283F8D0 -:104F20001823274B5F221A80194B264AC3F84423C3 -:104F3000174B122283F83123154B222283F830239A -:104F4000214B5F221A80124B204AC3F85C23104B7E -:104F50000F2283F849230E4B232283F848231C4B4E -:104F60005F221A800A4B1B4AC3F87423084B0122A4 -:104F700083F86123064B242283F86023164B5F22BB -:104F80001A80BB881BB218460C37BD46B0BC7047B0 -:104F9000B890002064630020FA920020E8630020AB -:104FA00012930020C46400202A930020CC650020C6 -:104FB0008A93002000670020BA930020B067002089 -:104FC000D29300203C690020EA930020546C00201A -:104FD00002940020E86E00201A940020B0B485B03E -:104FE00000AF78600023FB817B6818335B699A1CF3 -:104FF000B14B03CB106051607B6818335B6965224D -:105000001A807B6818335B6900229A747B681833B6 -:105010005B690122DA747B6818335B6901221A75B7 -:105020007B6818335B6901225A757B6818335B69AA -:1050300001229A757B6818335B6900229A617B684C -:1050400018335B690022DA617B6818335B690022E0 -:105050001A627B6818335B6900225A627B681833D6 -:105060005B6901221A857B6818335B6900225A85C7 -:105070007B6818335B692C339A1C904B03CB106010 -:1050800051601B8813817B6818335B692C3366225F -:105090001A807B6818335B692C3300229A747B6812 -:1050A00018335B692C330122DA747B6818335B692F -:1050B0002C3301221A757B6818335B692C3301226B -:1050C0005A757B6818335B692C3300229A757B68AC -:1050D00018335B692C3300229A617B6818335B6953 -:1050E0002C330022DA617B6818335B692C33002291 -:1050F0001A627B6818335B692C3300225A627B6822 -:1051000018335B692C3301221A857B6818335B697D -:105110002C3300225A857B6818335B6958339A1CFC -:10512000674B03CB106051607B6818335B69583361 -:1051300067221A807B6818335B69583300229A749F -:105140007B6818335B6958330122DA747B68183343 -:105150005B69583301221A757B6818335B695833D1 -:1051600001225A757B6818335B69583301229A759E -:105170007B6818335B69583300229A617B68183367 -:105180005B6958330022DA617B6818335B695833F6 -:1051900000221A627B6818335B69583300225A6216 -:1051A0007B6818335B69583301221A857B68183392 -:1051B0005B69583300225A857B6818335B698433F6 -:1051C0009A1C404B03CB106051601B8813817B6895 -:1051D00018335B69843368221A807B6818335B69F3 -:1051E000843300229A747B6818335B69843301220C -:1051F000DA747B6818335B69843301221A757B6823 -:1052000018335B69843301225A757B6818335B69F4 -:10521000843300229A757B6818335B6984330022DB -:105220009A617B6818335B6984330022DA617B689A -:1052300018335B69843300221A627B6818335B6918 -:10524000843300225A627B6818335B6984330122FD -:105250001A857B6818335B69843300225A857B6822 -:1052600018335B69B0339A1C174B144607CB206088 -:105270006160A2601B7823737B6818335B69B0336D -:1052800069221A807B6818335B69B03300229A74F4 -:105290007B6818335B69B0330122DA747B6818339A -:1052A0005B69B03301221A757B6818335B69B033D0 -:1052B00001225A750AE000BF40BF010848BF01083B -:1052C00054BF01085CBF010868BF01087B68183340 -:1052D0005B69B03300229A757B6818335B69B03321 -:1052E00000229A617B6818335B69B0330022DA616F -:1052F0007B6818335B69B03300221A627B6818330D -:105300005B69B03300225A627B6818335B69B03343 -:1053100001221A857B6818335B69B03300225A85F5 -:105320007B6818335B69DC339A1CB84B03CB106085 -:1053300051601B8813817B6818335B69DC336A22F8 -:105340001A807B6818335B69DC3300229A747B68AF -:1053500018335B69DC330122DA747B6818335B69CC -:10536000DC3300221A757B6818335B69DC3300225A -:105370005A757B6818335B69DC3301229A757B6848 -:1053800018335B69DC3300229A617B6818335B69F0 -:10539000DC330022DA617B6818335B69DC3300227E -:1053A0001A627B6818335B69DC3300225A627B68BF -:1053B00018335B69DC3301221A857B6818335B691B -:1053C000DC3300225A857B6818335B6903F58473EC -:1053D0009A1C8F4B03CB106051601B8813817B6834 -:1053E00018335B6903F584736B221A807B6818336A -:1053F0005B6903F5847300229A747B6818335B69D8 -:1054000003F584730122DA747B6818335B6903F552 -:10541000847300221A757B6818335B6903F5847303 -:1054200000225A757B6818335B6903F58473012287 -:105430009A757B6818335B6903F5847300229A615F -:105440007B6818335B6903F584730022DA617B683B -:1054500018335B6903F5847300221A627B68183382 -:105460005B6903F5847300225A627B6818335B69B9 -:1054700003F5847301221A857B6818335B6903F591 -:10548000847300225A857B6818335B6903F59A732D -:105490009A1C604B03CB106051601B8813817B68A2 -:1054A00018335B6903F59A736C221A807B68183392 -:1054B0005B6903F59A7300229A747B6818335B6901 -:1054C00003F59A730122DA747B6818335B6903F57C -:1054D0009A7300221A757B6818335B6903F59A7317 -:1054E00000225A757B6818335B6903F59A730122B1 -:1054F0009A757B6818335B6903F59A7300229A6189 -:105500007B6818335B6903F59A730022DA617B6864 -:1055100018335B6903F59A7300221A627B681833AB -:105520005B6903F59A7300225A627B6818335B69E2 -:1055300003F59A7301221A857B6818335B6903F5BA -:105540009A7300225A857B6818335B6903F5B07340 -:105550009A1C314B03CB106051601B8813817B6810 -:1055600018335B6903F5B0736D221A807B681833BA -:105570005B6903F5B07300229A747B6818335B692A -:1055800003F5B0730122DA747B6818335B6903F5A5 -:10559000B07300221A757B6818335B6903F5B0732A -:1055A00000225A757B6818335B6903F5B0730122DA -:1055B0009A757B6818335B6903F5B07300229A61B2 -:1055C0007B6818335B6903F5B0730022DA617B688E -:1055D00018335B6903F5B07300221A627B681833D5 -:1055E0005B6903F5B07300225A627B6818335B690C -:1055F00003F5B07301221A857B6818335B6903F5E4 -:10560000B07300225A857B68183307E078BF010821 -:1056100084BF010890BF01089CBF01085B6903F5C6 -:10562000C6739A1CBA4B144607CB20606160A26017 -:105630007B6818335B6903F5C6736E221A807B683A -:1056400018335B6903F5C67300229A747B681833BC -:105650005B6903F5C6730122DA747B6818335B69F2 -:1056600003F5C67301221A757B6818335B6903F56D -:10567000C67301225A757B6818335B6903F5C673DC -:1056800000229A757B6818335B6903F5C6730022A4 -:105690009A617B6818335B6903F5C6730022DA618F -:1056A0007B6818335B6903F5C67300221A627B6856 -:1056B00018335B6903F5C67300225A627B6818339E -:1056C0005B6903F5C67301221A857B6818335B6931 -:1056D00003F5C67300225A857B6818335B6903F5AE -:1056E000DC739A1C8B4B03CB1060516019889B783C -:1056F000118193727B6818335B6903F5DC736F2249 -:105700001A807B6818335B6903F5DC7300229A7496 -:105710007B6818335B6903F5DC730122DA747B68FC -:1057200018335B6903F5DC7301221A757B68183343 -:105730005B6903F5DC7301225A757B6818335B697A -:1057400003F5DC7300229A757B6818335B6903F5F7 -:10575000DC7300229A617B6818335B6903F5DC73A4 -:105760000022DA617B6818335B6903F5DC73002281 -:105770001A627B6818335B6903F5DC7300225A6296 -:105780007B6818335B6903F5DC7301221A857B683B -:1057900018335B6903F5DC7300225A857B68183384 -:1057A0005B6903F5F2739A1C5B4B144607CB2060D0 -:1057B0006160A2601A889B78A281A3737B6818330A -:1057C0005B6903F5F27370221A807B6818335B699A -:1057D00003F5F27300229A747B6818335B6903F552 -:1057E000F2730122DA747B6818335B6903F5F27394 -:1057F00001221A757B6818335B6903F5F273012285 -:105800005A757B6818335B6903F5F27300229A7549 -:105810007B6818335B6903F5F27300229A617B6839 -:1058200018335B6903F5F2730022DA617B68183381 -:105830005B6903F5F27300221A627B6818335B69B7 -:1058400003F5F27300225A627B6818335B6903F533 -:10585000F27301221A857B6818335B6903F5F273D2 -:1058600000225A857B6818335B6903F504739A1C20 -:105870002A4B144607CB20606160A2601B88A3817D -:105880007B6818335B6903F5047371221A807B68A7 -:1058900018335B6903F5047300229A747B6818332C -:1058A0005B6903F504730122DA747B6818335B6962 -:1058B00003F5047301221A757B6818335B6903F5DD -:1058C000047301225A757B6818335B6903F504730E -:1058D00000229A757B6818335B6903F50473002214 -:1058E0009A617B6818335B6903F504730022DA61FF -:1058F0007B6818335B6903F5047300221A627B68C6 -:1059000018335B6903F5047300225A6208E000BF94 -:10591000A8BF0108B4BF0108C0BF0108D0BF01087B -:105920007B6818335B6903F5047301221A857B6871 -:1059300018335B6903F5047300225A857B681833BA -:105940005B6903F50F739A1CBA4B03CB106051606F -:1059500019889B78118193727B6818335B6903F512 -:105960000F7372221A807B6818335B6903F50F731B -:1059700000229A747B6818335B6903F50F73012268 -:10598000DA747B6818335B6903F50F7301221A75AB -:105990007B6818335B6903F50F7301225A757B68C6 -:1059A00018335B6903F50F7300229A757B6818330F -:1059B0005B6903F50F7300229A617B6818335B699A -:1059C00003F50F730022DA617B6818335B6903F516 -:1059D0000F7300221A627B6818335B6903F50F733B -:1059E00000225A627B6818335B6903F50F7301224A -:1059F0001A857B6818335B6903F50F7300225A859B -:105A00007B6818335B6903F51A739A1C8A4B03CBC6 -:105A1000106051601B8813817B6818335B6903F544 -:105A20001A7373221A807B6818335B6903F51A7343 -:105A300000229A747B6818335B6903F51A7301229C -:105A4000DA747B6818335B6903F51A7301221A75DF -:105A50007B6818335B6903F51A7301225A757B68FA -:105A600018335B6903F51A7300229A757B68183343 -:105A70005B6903F51A7300229A617B6818335B69CE -:105A800003F51A730022DA617B6818335B6903F54A -:105A90001A7300221A627B6818335B6903F51A7364 -:105AA00000225A627B6818335B6903F51A7301227E -:105AB0001A857B6818335B6903F51A7300225A85CF -:105AC0007B6818335B6903F525739A1C5B4B14469E -:105AD00007CB20606160A2601A889B78A281A373C3 -:105AE0007B6818335B6903F5257374221A807B6821 -:105AF00018335B6903F5257300229A747B681833A9 -:105B00005B6903F525730122DA747B6818335B69DE -:105B100003F5257301221A757B6818335B6903F559 -:105B2000257301225A757B6818335B6903F5257369 -:105B300000229A757B6818335B6903F52573002290 -:105B40009A617B6818335B6903F525730022DA617B -:105B50007B6818335B6903F5257300221A627B6842 -:105B600018335B6903F5257300225A627B6818338A -:105B70005B6903F5257301221A857B6818335B691D -:105B800003F5257300225A857B6818335B6903F59A -:105B900030739A1C2A4B144607CB20606160A260C8 -:105BA0001B88A3817B6818335B6903F5307375220A -:105BB0001A807B6818335B6903F5307300229A748E -:105BC0007B6818335B6903F530730122DA747B68F4 -:105BD00018335B6903F5307301221A757B6818333B -:105BE0005B6903F5307301225A757B6818335B6972 -:105BF00003F5307300229A757B6818335B6903F5EF -:105C0000307300229A617B6818335B6903F5307347 -:105C10000022DA617B6818335B6903F53073002278 -:105C20001A627B6818335B6903F5307300225A628D -:105C30007B6807E0E0BF0108ECBF0108F8BF01087E -:105C400008C0010818335B6903F5307301221A8517 -:105C50007B6818335B6903F5307300225A857B68D3 -:105C600030335B699A1CB14B03CB106051601B78D9 -:105C700013727B6830335B69C9221A807B683033CA -:105C80005B6900229A747B6830335B690122DA74A5 -:105C90007B6830335B6901221A757B6830335B693E -:105CA00001225A757B6830335B6901229A757B68E3 -:105CB00030335B6900229A617B6830335B69002274 -:105CC000DA617B6830335B6900221A627B683033AB -:105CD0005B6900225A627B6830335B6901221A8556 -:105CE0007B6830335B6900225A857B6830335B699F -:105CF0002C339A1C8E4B144607CB20606160A26047 -:105D00001B88A3817B6830335B692C33CA221A80DD -:105D10007B6830335B692C3300229A747B683033A4 -:105D20005B692C330122DA747B6830335B692C3376 -:105D300001221A757B6830335B692C3301225A7556 -:105D40007B6830335B692C3301229A757B68303372 -:105D50005B692C3300229A617B6830335B692C339A -:105D60000022DA617B6830335B692C3300221A62CF -:105D70007B6830335B692C3300225A627B68303396 -:105D80005B692C3301221A857B6830335B692C33C5 -:105D900000225A857B6830335B6958339A1C654B07 -:105DA000144607CB20606160A2601B7823737B6878 -:105DB00030335B695833CB221A807B6830335B69A0 -:105DC000583300229A747B6830335B695833012260 -:105DD000DA747B6830335B69583301221A757B684B -:105DE00030335B69583301225A757B6830335B6905 -:105DF000583301229A757B6830335B69583300222F -:105E00009A617B6830335B6958330022DA617B68C2 -:105E100030335B69583300221A627B6830335B6928 -:105E2000583300225A627B6830335B695833012251 -:105E30001A857B6830335B69583300225A857B684A -:105E400030335B6984339A1C3B4B144607CB20608C -:105E50006160A2607B6830335B698433CC221A8036 -:105E60007B6830335B69843300229A747B683033FB -:105E70005B6984330122DA747B6830335B69843375 -:105E800001221A757B6830335B69843301225A75AD -:105E90007B6830335B69843301229A757B683033C9 -:105EA0005B69843300229A617B6830335B69843399 -:105EB0000022DA617B6830335B69843300221A6226 -:105EC0007B6830335B69843300225A627B683033ED -:105ED0005B69843301221A857B6830335B698433C4 -:105EE00000225A857B6830335B69B0339A1C134BB0 -:105EF00003CB106051601B8813817B6830335B6972 -:105F0000B033CD221A807B6830335B69B033002216 -:105F10009A747B6830335B69B0330122DA747B6832 -:105F200030335B69B03301221A7509E018C00108EB -:105F300024C0010834C0010844C0010850C0010851 -:105F40007B6830335B69B03301225A757B6830332C -:105F50005B69B03301229A757B6830335B69B0337B -:105F600000229A617B6830335B69B0330022DA61CA -:105F70007B6830335B69B03300221A627B68303350 -:105F80005B69B03300225A627B6830335B69B0339F -:105F900001221A857B6830335B69B03300225A8551 -:105FA0007B6830335B69DC339A1CB44B03CB1060E5 -:105FB000516019889B78118193727B6830335B69DB -:105FC000DC33CE221A807B6830335B69DC330022FD -:105FD0009A747B6830335B69DC330122DA747B6846 -:105FE00030335B69DC3301221A757B6830335B69BF -:105FF000DC3301225A757B6830335B69DC33012264 -:106000009A757B6830335B69DC3300229A617B6868 -:1060100030335B69DC330022DA617B6830335B69E3 -:10602000DC3300221A627B6830335B69DC33002288 -:106030005A627B6830335B69DC3301221A857B68E6 -:1060400030335B69DC3300225A857B6830335B690F -:1060500003F584739A1C8A4B03CB106051601B8834 -:1060600013817B6830335B6903F58473CF221A8018 -:106070007B6830335B6903F5847300229A747B6814 -:1060800030335B6903F584730122DA747B68303343 -:106090005B6903F5847301221A757B6830335B6991 -:1060A00003F5847301225A757B6830335B6903F50D -:1060B000847301229A757B6830335B6903F58473BE -:1060C00000229A617B6830335B6903F58473002298 -:1060D000DA617B6830335B6903F5847300221A62EE -:1060E0007B6830335B6903F5847300225A627B68F6 -:1060F00030335B6903F5847301221A857B68303382 -:106100005B6903F5847300225A857B6848335B69B9 -:106110009A1C5C4B144607CB20606160A2601B8810 -:10612000A3817B6848335B6940F22D121A807B683B -:1061300048335B6900229A747B6848335B690122AB -:10614000DA747B6848335B6900221A757B684833D0 -:106150005B6900225A757B6848335B6900229A7537 -:106160007B6848335B6900229A617B6848335B69CE -:106170000022DA617B6848335B6900221A627B681F -:1061800048335B6900225A627B6848335B690122AD -:106190001A857B6848335B6900225A857B684833DF -:1061A0005B692C339A1C384B144607CB2060616026 -:1061B000A2601B88A3817B6848335B692C334FF452 -:1061C00097721A807B6848335B692C3300229A747B -:1061D0007B6848335B692C330122DA747B6848336F -:1061E0005B692C3300221A757B6848335B692C335A -:1061F00000225A757B6848335B692C3301229A75FB -:106200007B6848335B692C3300229A617B68483392 -:106210005B692C330022DA617B6848335B692C337D -:1062200000221A627B6848335B692C3300225A6271 -:106230007B6848335B692C3301221A857B684833BD -:106240005B692C3300225A857B6848335B6958337D -:106250009A1C0E4B03CB1060516019889B781181FA -:1062600093727B6848335B69583340F22F121A806F -:106270007B6848335B6958330AE000BF5CC00108A3 -:1062800068C0010874C0010884C0010894C00108F6 -:1062900000229A747B6848335B6958330122DA74B0 -:1062A0007B6848335B69583300221A757B68483332 -:1062B0005B69583300225A757B6848335B695833F1 -:1062C00001229A757B6848335B69583300229A61D2 -:1062D0007B6848335B6958330022DA617B68483356 -:1062E0005B69583300221A627B6848335B69583314 -:1062F00000225A627B6848335B69583301221A8551 -:106300007B6848335B69583300225A857B68483381 -:106310005B6984339A1CB04B03CB106051601988C1 -:106320009B78118193727B6848335B6984334FF4A7 -:1063300098721A807B6848335B69843300229A74B0 -:106340007B6848335B6984330122DA747B684833A5 -:106350005B69843300221A757B6848335B69843338 -:1063600000225A757B6848335B69843301229A7531 -:106370007B6848335B69843300229A617B684833C9 -:106380005B6984330022DA617B6848335B6984335C -:1063900000221A627B6848335B69843300225A62A8 -:1063A0007B6848335B69843301221A857B684833F4 -:1063B0005B69843300225A857B6848335B69B0335C -:1063C0009A1C864B144607CB20606160A2607B68F4 -:1063D00048335B69B03340F231121A807B6848332E -:1063E0005B69B03300229A747B6848335B69B033D1 -:1063F0000122DA747B6848335B69B03300221A7576 -:106400007B6848335B69B03300225A757B68483338 -:106410005B69B03301229A757B6848335B69B0339E -:1064200000229A617B6848335B69B0330022DA61ED -:106430007B6848335B69B03300221A627B6848335B -:106440005B69B03300225A627B6848335B69B033C2 -:1064500001221A857B6848335B69B03300225A8574 -:106460007B6860335B699A1C5D4B03CB10605160A5 -:106470001B8813817B6860335B6940F291121A803C -:106480007B6860335B6900229A747B6860335B6968 -:106490000122DA747B6860335B6900221A757B68BD -:1064A00060335B6901225A757B6860335B69012246 -:1064B0009A757B6860335B6900229A617B68603300 -:1064C0005B690022DA617B6860335B6900221A62D3 -:1064D0007B6860335B6900225A627B6860335B696A -:1064E00001221A857B6860335B6900225A857B68CC -:1064F00078335B699A1C3B4B15461C460FCC2860D1 -:106500006960AA60EB6023882B827B6878335B69C3 -:1065100040F2F5121A807B6878335B6900229A7426 -:106520007B6878335B690122DA747B6878335B6956 -:1065300000221A757B6878335B6900225A757B6884 -:1065400078335B6900229A757B6878335B69002237 -:106550009A617B6878335B690022DA617B68783303 -:106560005B6900221A627B6878335B6900225A6299 -:106570007B6878335B6901221A857B6878335B69B5 -:1065800000225A857B6878335B692C339A1C164B42 -:1065900015461C460FCC28606960AA60EB60238812 -:1065A0002B827B6878335B692C334FF4FB721A8043 -:1065B0007B6878335B692C3300229A747B6878336C -:1065C0005B692C330122DA747B6878335B692C3386 -:1065D00000221A750AE000BFA0C00108ACC0010883 -:1065E000B8C00108C4C00108D8C001087B6878336E -:1065F0005B692C3300225A757B6878335B692C33D6 -:1066000000229A757B6878335B692C3300229A618B -:106610007B6878335B692C330022DA617B687833DE -:106620005B692C3300221A627B6878335B692C33F8 -:1066300000225A627B6878335B692C3301221A8509 -:106640007B6878335B692C3300225A857B6878330A -:106650005B6958339A1CB04B15461C460FCC28601A -:106660006960AA60EB6023782B747B6878335B6980 -:10667000583340F2F7121A807B6878335B695833DD -:1066800000229A747B6878335B6958330122DA748C -:106690007B6878335B69583300221A757B687833DE -:1066A0005B69583300225A757B6878335B695833CD -:1066B00000229A757B6878335B69583300229A61AF -:1066C0007B6878335B6958330022DA617B68783302 -:1066D0005B69583300221A627B6878335B695833F0 -:1066E00000225A627B6878335B69583301221A852D -:1066F0007B6878335B69583300225A857B6878332E -:106700005B6984339A1C854B15461C460FCC286068 -:106710006960AA60EB602068286123792B757B682B -:1067200078335B6984334FF4FC721A807B6878336A -:106730005B69843301229A747B6878335B698433A4 -:106740000122DA747B6878335B69843301221A751D -:106750007B6878335B69843300225A757B687833B1 -:106760005B69843300229A757B6878335B69843374 -:1067700080229A617B6878335B6984338022DA6196 -:106780007B6878335B69843380221A627B68783354 -:106790005B69843380225A627B6878335B69843317 -:1067A00003221A857B6878335B69843300225A851B -:1067B0007B68D8335B699A1C594B03CB10605160DE -:1067C00019889B78118193727B68D8335B6940F29A -:1067D00085321A807B68D8335B6902229A747B68A1 -:1067E000D8335B690122DA747B68D8335B69002295 -:1067F0001A757B68D8335B6901225A757B68D83378 -:106800005B6901229A757B68D8335B69454A9A6156 -:106810007B68D8335B69444ADA617B68D8335B694B -:10682000404A1A627B68D8335B69404A5A627B6887 -:10683000D8335B6901221A857B68D8335B690922EA -:106840005A857B68D8335B692C339A1C384B03CB51 -:106850001060516019889B78118193727B68D833DE -:106860005B692C3340F286321A807B68D8335B69CF -:106870002C3302229A747B68D8335B692C33012253 -:10688000DA747B68D8335B692C3300221A757B6815 -:10689000D8335B692C3301225A757B68D8335B6926 -:1068A0002C3301229A757B68D8335B692C33214ADB -:1068B0009A617B68D8335B692C331B4ADA617B6849 -:1068C000D8335B692C331B4A1A627B68D8335B6907 -:1068D0002C33164A5A627B68D8335B692C33012209 -:1068E0001A857B68D8335B692C3309225A857B680B -:1068F000D8335B6958339A1C0F4B03CB106051603F -:1069000019889B78118193727B68D8335B695833FF -:1069100040F2873212E000BFECC0010800C101085C -:1069200018C10108892588BCCDCCCCBDCDCCCC3DCF -:1069300024C1010839DA80BC30C101081A807B68A3 -:10694000D8335B69583302229A747B68D8335B6909 -:1069500058330122DA747B68D8335B6958330022DC -:106960001A757B68D8335B69583301225A757B6886 -:10697000D8335B69583301229A757B68D8335B69D9 -:106980005833B04A9A617B68D8335B695833AE4A52 -:10699000DA617B68D8335B695833AA4A1A627B682C -:1069A000D8335B695833A94A5A627B68D8335B692C -:1069B000583301221A857B68D8335B695833092222 -:1069C0005A857B68D8335B6984339A1CA04B144684 -:1069D00007CB20606160A2601B7823737B68D8338B -:1069E0005B6984334FF462721A807B68D8335B69C9 -:1069F000843302229A747B68D8335B698433012222 -:106A0000DA747B68D8335B69843300221A757B683B -:106A1000D8335B69843301225A757B68D8335B694C -:106A2000843301229A757B68D8335B698433894A41 -:106A30009A617B68D8335B6984334FF00002DA6176 -:106A40007B68D8335B698433824A1A627B68D833A7 -:106A50005B6984334FF07E525A627B68D8335B693E -:106A6000843301221A857B68D8335B6984330B2217 -:106A70005A857B68D8335B69B0339A1C764B1446D1 -:106A800007CB20606160A2601B7823737B68D833DA -:106A90005B69B03340F289321A807B68D8335B6916 -:106AA000B03302229A747B68D8335B69B033012219 -:106AB000DA747B68D8335B69B03300221A757B685F -:106AC000D8335B69B03301225A757B68D8335B6970 -:106AD000B03301229A757B68D8335B69B0335F4A63 -:106AE0009A617B68D8335B69B0334FF00002DA619A -:106AF0007B68D8335B69B033584A1A627B68D833F5 -:106B00005B69B033564A5A627B68D8335B69B033ED -:106B100001221A857B68D8335B69B0330B225A8512 -:106B20007B68D8335B69DC339A1C4E4B144607CB29 -:106B300020606160A2601B88A3817B68D8335B6999 -:106B4000DC3340F28A321A807B68D8335B69DC33ED -:106B500002229A747B68D8335B69DC330122DA74D1 -:106B60007B68D8335B69DC3300221A757B68D833C5 -:106B70005B69DC3301225A757B68D8335B69DC338F -:106B800001229A757B68D8335B69DC33364A9A6197 -:106B90007B68D8335B69DC33344ADA617B68D8338D -:106BA0005B69DC33304A1A627B68D8335B69DC335B -:106BB0002F4A5A627B68D8335B69DC3301221A851D -:106BC0007B68D8335B69DC3308225A857B68D8330D -:106BD0005B6903F584739A1C264B144607CB20602F -:106BE0006160A2601B88A3817B68D8335B6903F571 -:106BF000847340F28B321A807B68D8335B6903F56B -:106C0000847302229A747B68D8335B6903F58473BA -:106C10000122DA747B68D8335B6903F58473002240 -:106C20001A757B68D8335B6903F5847301225A7542 -:106C30007B68D8335B6903F5847301229A757B689E -:106C4000D83319E033F785BCCDCCCCBDCDCCCC3D11 -:106C50003CC1010856B80D3A4CC1010811DF143A85 -:106C6000AE47813F5CC10108B4ABFE41CDCCC84109 -:106C7000666620426CC101085B6903F58473B24A01 -:106C80009A617B68D8335B6903F58473AF4ADA6134 -:106C90007B68D8335B6903F58473AB4A1A627B68FF -:106CA000D8335B6903F58473A94A5A627B68D83389 -:106CB0005B6903F5847301221A857B68D8335B69AD -:106CC00003F5847308225A857B68D8335B6903F522 -:106CD0009A739A1C9F4B144607CB20606160A26098 -:106CE0001B88A3817B68D8335B6903F59A734FF4E3 -:106CF00063721A807B68D8335B6903F59A7302224A -:106D00009A747B68D8335B6903F59A730122DA744D -:106D10007B68D8335B6903F59A7300221A757B6828 -:106D2000D8335B6903F59A7301225A757B68D833AF -:106D30005B6903F59A7301229A757B68D8335B69A6 -:106D400003F59A73844A9A617B68D8335B6903F5CB -:106D50009A737E4ADA617B68D8335B6903F59A736C -:106D60007D4A1A627B68D8335B6903F59A73784A67 -:106D70005A627B68D8335B6903F59A7301221A85DE -:106D80007B68D8335B6903F59A7308225A857B6860 -:106D9000D8335B6903F5B0739A1C704B14461D46DB -:106DA0000FCD20606160A260E3607B68D8335B69CF -:106DB00003F5B07340F28D321A807B68D8335B697B -:106DC00003F5B07302229A747B68D8335B6903F5CC -:106DD000B0730122DA747B68D8335B6903F5B07352 -:106DE00000221A757B68D8335B6903F5B073012202 -:106DF0005A757B68D8335B6903F5B07301229A75C5 -:106E00007B68D8335B6903F5B073554A9A617B6838 -:106E1000D8335B6903F5B073524ADA617B68D833C3 -:106E20005B6903F5B0734E4A1A627B68D8335B69BD -:106E300003F5B0734C4A5A627B68D8335B6903F53B -:106E4000B07301221A857B68D8335B6903F5B07390 -:106E500006225A857B68D8335B6903F5C6739A1C92 -:106E6000424B14461D460FCD20606160A260E36076 -:106E70007B68D8335B6903F5C67340F28E321A80A3 -:106E80007B68D8335B6903F5C67302229A747B680A -:106E9000D8335B6903F5C6730122DA747B68D83393 -:106EA0005B6903F5C67300221A757B68D8335B698A -:106EB00003F5C67301225A757B68D8335B6903F505 -:106EC000C67301229A757B68D8335B6903F5C67374 -:106ED000274A9A617B68D8335B6903F5C673214AF8 -:106EE000DA617B68D8335B6903F5C673204A1A629E -:106EF0007B68D8335B6903F5C6731B4A5A627B68AB -:106F0000D8335B6903F5C67301221A857B68D833D1 -:106F10005B6903F5C67306225A857B68F0335B69AB -:106F20009A1C144B03CB106051607B68F0335B6993 -:106F300040F2E9321A807B68F0335B6900229A7470 -:106F40007B68F03318E000BFC706F141CDCCC841E3 -:106F5000666620427CC101084C97FA418CC1010849 -:106F6000C50111453303FA4400481C459CC1010882 -:106F70004AE51445ACC101085B690122DA747B68FB -:106F8000F0335B6900221A757B68F0335B6901227C -:106F90005A757B68F0335B6901229A757B68F03320 -:106FA0005B6900229A617B68F0335B690022DA61D9 -:106FB0007B68F0335B6900221A627B68F0335B699F -:106FC00000225A627B68F0335B6901221A857B6874 -:106FD000F0335B6900225A857B68F0335B692C33A0 -:106FE0009A1CB24B144607CB20606160A2601A88DD -:106FF0009B78A281A3737B68F0335B692C3340F2EA -:10700000EA321A807B68F0335B692C3302229A746F -:107010007B68F0335B692C330122DA747B68F033D0 -:107020005B692C3300221A757B68F0335B692C3363 -:1070300001225A757B68F0335B692C3301229A7503 -:107040007B68F0335B692C33994A9A617B68F03333 -:107050005B692C334FF00002DA617B68F0335B69C7 -:107060002C33934A1A627B68F0335B692C334FF000 -:107070007E525A627B68F0335B692C3301221A8599 -:107080007B68F0335B692C3306225A857B68F033CA -:107090005B6958339A1C874B15461C460FCC2860F9 -:1070A0006960AA60EB6023782B747B68F0335B69BE -:1070B000583340F2EB321A807B68F0335B69583307 -:1070C00002229A747B68F0335B6958330122DA74C8 -:1070D0007B68F0335B69583301221A757B68F033A3 -:1070E0005B69583301225A757B68F0335B6958330A -:1070F00001229A757B68F0335B6958336E4A9A6156 -:107100007B68F0335B6958334FF00002DA617B68CB -:10711000F0335B695833684A1A627B68F0335B6905 -:1071200058334FF07E525A627B68F0335B695833B4 -:1071300001221A857B68F0335B69583303225A8534 -:107140007B68F0335B6984339A1C5C4B15461C46A4 -:107150000FCC28606960AA60EB6023782B747B6891 -:10716000F0335B6984334FF47B721A807B68F033B1 -:107170005B69843302229A747B68F0335B698433E1 -:107180000122DA747B68F0335B69843301221A755B -:107190007B68F0335B69843301225A757B68F03376 -:1071A0005B69843301229A757B68F0335B698433B1 -:1071B0004FF000029A617B68F0335B6984334FF0D3 -:1071C0000002DA617B68F0335B6984333C4A1A62FF -:1071D0007B68F0335B6984334FF07E525A627B6880 -:1071E000F0335B69843301221A857B68F0335B6975 -:1071F000843305225A857B68F0335B69B0339A1C6F -:10720000304B144607CB20606160A2607B68F0338E -:107210005B69B03340F2ED321A807B68F0335B6912 -:10722000B03300229A747B68F0335B69B03301227B -:10723000DA747B68F0335B69B03300221A757B68BF -:10724000F0335B69B03301225A757B68F0335B69B8 -:10725000B03301229A757B68F0335B69B03300224A -:107260009A617B68F0335B69B0330022DA617B6836 -:10727000F0335B69B03300221A627B68F0335B69DC -:10728000B03300225A627B68F0335B69B03301226D -:107290001A857B68F0335B69B03300225A857B68BE -:1072A000F0335B69DC339A1C0EE000BFB4C1010807 -:1072B000A661F83AC4C101086F12033BD8C10108A6 -:1072C000ACC52737ECC10108B64B144607CB20608C -:1072D0006160A2601B7823737B68F0335B69DC33E9 -:1072E00040F2EE321A807B68F0335B69DC330122B6 -:1072F0009A747B68F0335B69DC330122DA747B6853 -:10730000F0335B69DC3301221A757B68F0335B690B -:10731000DC3301225A757B68F0335B69DC33012270 -:107320009A757B68F0335B69DC3301229A617B6874 -:10733000F0335B69DC330022DA617B68F0335B6930 -:10734000DC3301221A627B68F0335B69DC33012293 -:107350005A627B68F0335B69DC3301221A857B68F3 -:10736000F0335B69DC3300225A857B68F0335B695C -:1073700003F584739A1C8C4B03CB106051607B68BF -:10738000F0335B6903F5847340F2EF321A807B6857 -:10739000F0335B6903F5847301229A747B68F033E0 -:1073A0005B6903F584730122DA747B68F0335B69EF -:1073B00003F5847301221A757B68F0335B6903F56A -:1073C000847301225A757B68F0335B6903F584731B -:1073D00001229A757B68F0335B6903F5847302229E -:1073E0009A617B68F0335B6903F584730022DA618C -:1073F0007B68F0335B6903F5847302221A627B6851 -:10740000F0335B6903F5847302225A627B68F033C0 -:107410005B6903F5847301221A857B68F0335B692D -:1074200003F5847300225A857B68F0335B6903F5AA -:107430009A739A1C5D4B144607CB20606160A26072 -:107440001B88A3817B68F0335B6903F59A734FF463 -:107450007C721A807B68F0335B6903F59A730222B1 -:107460009A747B68F0335B6903F59A730122DA74CE -:107470007B68F0335B6903F59A7301221A757B68A8 -:10748000F0335B6903F59A7301225A757B68F03318 -:107490005B6903F59A7301229A757B68F0335B6927 -:1074A00003F59A73424A9A617B68F0335B6903F58E -:1074B0009A734FF00002DA617B68F0335B6903F581 -:1074C0009A733B4A1A627B68F0335B6903F59A73DF -:1074D000384A5A627B68F0335B6903F59A7302227B -:1074E0001A857B68F0335B6903F59A7301225A852C -:1074F0007B68F0335B6903F5B0739A1C2E4B14461E -:1075000007CB20606160A2601B88A3817B68F03399 -:107510005B6903F5B07340F2F1321A807B68F03397 -:107520005B6903F5B07302229A747B68F0335B6980 -:1075300003F5B0730122DA747B68F0335B6903F5FD -:10754000B07301221A757B68F0335B6903F5B07381 -:1075500001225A757B68F0335B6903F5B073012231 -:107560009A757B68F0335B6903F5B073134A9A61CF -:107570007B68F0335B6903F5B073114ADA617B68AD -:10758000F0335B6903F5B0730C4A1A627B68F03321 -:107590005B6903F5B0734FF000025A627B68F03309 -:1075A0005B690FE0F8C1010808C2010810C20108B8 -:1075B0000000A0410000704220C201080000A0C1EC -:1075C000000070C203F5B07302221A857B68F033A5 -:1075D0005B6903F5B07301225A857B6803F58473F8 -:1075E0005B699A1CB84B144607CB20606160A260AF -:1075F0001B7823737B6803F584735B6940F24D420B -:107600001A807B6803F584735B6900229A747B6837 -:1076100003F584735B690122DA747B6803F5847374 -:107620005B6900221A757B6803F584735B6901222C -:107630005A757B6803F584735B6901229A757B68D0 -:1076400003F584735B6900229A617B6803F5847398 -:107650005B690022DA617B6803F584735B69002251 -:107660001A627B6803F584735B6900225A627B6847 -:1076700003F584735B6901221A857B6803F58473C3 -:107680005B6900225A857B6803F584735B692C3340 -:107690009A1C8E4B03CB106051601B8813817B6852 -:1076A00003F584735B692C3340F24E421A807B6889 -:1076B00003F584735B692C3300229A747B6803F5AD -:1076C00084735B692C330122DA747B6803F584735D -:1076D0005B692C3300221A757B6803F584735B6940 -:1076E0002C3301225A757B6803F584735B692C3354 -:1076F00001229A757B6803F584735B692C33002241 -:107700009A617B6803F584735B692C330022DA612C -:107710007B6803F584735B692C3300221A627B68F3 -:1077200003F584735B692C3300225A627B6803F58E -:1077300084735B692C3301221A857B6803F584739B -:107740005B692C3300225A857B6803F584735B697F -:1077500058339A1C5E4B144607CB20606160A260D0 -:107760007B6803F584735B69583340F24F421A809B -:107770007B6803F584735B69583300229A747B68D5 -:1077800003F584735B6958330122DA747B6803F56F -:1077900084735B69583300221A757B6803F5847320 -:1077A0005B69583301225A757B6803F584735B6902 -:1077B000583301229A757B6803F584735B695833EB -:1077C00000229A617B6803F584735B695833002259 -:1077D000DA617B6803F584735B69583300221A62AF -:1077E0007B6803F584735B69583300225A627B68B7 -:1077F00003F584735B69583301221A857B6803F5AE -:1078000084735B69583300225A857B6803F584735F -:107810005B6984339A1C2F4B144607CB2060616050 -:10782000A2601B7823737B6803F584735B698433E0 -:107830004FF48A621A807B6803F584735B69843332 -:1078400000229A747B6803F584735B698433012298 -:10785000DA747B6803F584735B69843300221A75DC -:107860007B6803F584735B69843301225A757B68F6 -:1078700003F584735B69843301229A757B6803F591 -:1078800084735B69843300229A617B6803F5847397 -:107890005B6984330022DA617B6803F584735B697A -:1078A000843300221A627B6803F584735B69843336 -:1078B00000225A627B6803F584735B69843301227A -:1078C0001A857B6808E000BF30C2010840C2010889 -:1078D0004CC2010858C2010803F584735B69843304 -:1078E00000225A857B6803F584735B69B0339A1C68 -:1078F000BF4B144607CB20606160A2601A889B785A -:10790000A281A3737B6803F584735B69B03340F293 -:1079100051421A807B6803F584735B69B03301229E -:107920009A747B6803F584735B69B0330122DA745F -:107930007B6803F584735B69B03301221A757B6839 -:1079400003F584735B69B03301225A757B6803F5D4 -:1079500084735B69B03301229A757B6803F5847385 -:107960005B69B03340F6A9629A617B6803F5847362 -:107970005B69B03340F69A52DA617B6803F5847331 -:107980005B69B03340F6A9621A627B6803F58473C1 -:107990005B69B03340F6FF725A627B6803F584730B -:1079A0005B69B03304221A857B6803F584735B69D5 -:1079B000B03300225A857B6803F584735B69DC333E -:1079C0009A1C8C4B144607CB20606160A2601A8819 -:1079D0009B78A281A3737B6803F584735B69DC33B6 -:1079E00040F252421A807B6803F584735B69DC3392 -:1079F00001229A747B6803F584735B69DC3301228E -:107A0000DA747B6803F584735B69DC3301221A75D1 -:107A10007B6803F584735B69DC3301225A757B68EC -:107A200003F584735B69DC3301229A757B6803F587 -:107A300084735B69DC334FF4AB729A617B6803F546 -:107A400084735B69DC330022DA617B6803F584733D -:107A50005B69DC334FF4AB721A627B6803F58473A5 -:107A60005B69DC334FF42E725A627B6803F58473D2 -:107A70005B69DC3303221A857B6803F584735B69D9 -:107A8000DC3300225A857B6803F584735B6903F558 -:107A900084739A1C584B144607CB20606160A26027 -:107AA0001B7823737B6803F584735B6903F5847328 -:107AB00040F253421A807B6803F584735B6903F5D7 -:107AC000847300229A747B6803F584735B6903F501 -:107AD00084730122DA747B6803F584735B6903F5B0 -:107AE000847300221A757B6803F584735B6903F560 -:107AF000847301225A757B6803F584735B6903F50F -:107B0000847301229A757B6803F584735B6903F5BE -:107B1000847300229A617B6803F584735B6903F5C3 -:107B200084730022DA617B6803F584735B6903F573 -:107B3000847300221A627B6803F584735B6903F522 -:107B4000847300225A627B6803F584735B6903F5D2 -:107B5000847301221A857B6803F584735B6903F5DE -:107B6000847300225A857B6803F584735B6903F58F -:107B70009A739A1C204B144607CB20606160A26068 -:107B80001B7823737B6803F584735B6903F59A7331 -:107B900040F254421A807B6803F584735B6903F5F5 -:107BA0009A7300229A747B6803F584735B6903F50A -:107BB0009A730122DA747B6803F584735B6903F5B9 -:107BC0009A7300221A757B6803F584735B6903F569 -:107BD0009A7301225A757B6803F584735B6903F518 -:107BE0009A7301229A757B6803F5847306E000BFDF -:107BF00068C2010878C2010888C201085B6903F500 -:107C00009A7300229A617B6803F584735B6903F5BC -:107C10009A730022DA617B6803F584735B6903F56C -:107C20009A7300221A627B6803F584735B6903F51B -:107C30009A7300225A627B6803F584735B6903F5CB -:107C40009A7301221A857B6803F584735B6903F5D7 -:107C50009A7300225A857B6803F584735B6903F588 -:107C6000B0739A1CC04B144607CB20606160A260C1 -:107C70001B7823737B6803F584735B6903F5B0732A -:107C800040F255421A807B6803F584735B6903F503 -:107C9000B07300229A747B6803F584735B6903F503 -:107CA000B0730122DA747B6803F584735B6903F5B2 -:107CB000B07300221A757B6803F584735B6903F562 -:107CC000B07301225A757B6803F584735B6903F511 -:107CD000B07301229A757B6803F584735B6903F5C1 -:107CE000B07300229A617B6803F584735B6903F5C6 -:107CF000B0730022DA617B6803F584735B6903F576 -:107D0000B07300221A627B6803F584735B6903F524 -:107D1000B07300225A627B6803F584735B6903F5D4 -:107D2000B07301221A857B6803F584735B6903F5E0 -:107D3000B07300225A857B6803F584735B6903F591 -:107D4000C6739A1C884B144607CB20606160A26002 -:107D50001B7823737B6803F584735B6903F5C67333 -:107D600040F256421A807B6803F584735B6903F521 -:107D7000C67300229A747B6803F584735B6903F50C -:107D8000C6730122DA747B6803F584735B6903F5BB -:107D9000C67300221A757B6803F584735B6903F56B -:107DA000C67301225A757B6803F584735B6903F51A -:107DB000C67301229A757B6803F584735B6903F5CA -:107DC000C67300229A617B6803F584735B6903F5CF -:107DD000C6730022DA617B6803F584735B6903F57F -:107DE000C67300221A627B6803F584735B6903F52E -:107DF000C67300225A627B6803F584735B6903F5DE -:107E0000C67301221A857B6803F584735B6903F5E9 -:107E1000C67300225A857B6803F584735B6903F59A -:107E2000DC739A1C504B144607CB20606160A26043 -:107E30001B7823737B6803F584735B6903F5DC733C -:107E400040F257421A807B6803F584735B6903F53F -:107E5000DC7300229A747B6803F584735B6903F515 -:107E6000DC730122DA747B6803F584735B6903F5C4 -:107E7000DC7300221A757B6803F584735B6903F574 -:107E8000DC7301225A757B6803F584735B6903F523 -:107E9000DC7301229A757B6803F584735B6903F5D3 -:107EA000DC7300229A617B6803F584735B6903F5D8 -:107EB000DC730022DA617B6803F584735B6903F588 -:107EC000DC7300221A627B6803F584735B6903F537 -:107ED000DC7300225A627B6803F584735B6903F5E7 -:107EE000DC7301221A857B6803F584735B6903F5F3 -:107EF000DC7300225A857B6803F584735B6903F5A4 -:107F0000F2739A1C194B144607CB20606160A26083 -:107F10001B7823737B6803F584735B6903F5F27345 -:107F20004FF48B621A807B6803F584735B6903F5F9 -:107F3000F27300229A747B6803F584735B6903F51E -:107F4000F2730122DA747B6803F584735B6903F5CD -:107F5000F27300221A757B6803F584735B6903F57D -:107F6000F27301225A7503E088C2010898C2010821 -:107F70007B6803F584735B6903F5F27301229A75DC -:107F80007B6803F584735B6903F5F27300229A61E1 -:107F90007B6803F584735B6903F5F2730022DA6191 -:107FA0007B6803F584735B6903F5F27300221A6240 -:107FB0007B6803F584735B6903F5F27300225A62F0 -:107FC0007B6803F584735B6903F5F27301221A85FC -:107FD0007B6803F584735B6903F5F27300225A85AD -:107FE0007B6803F584735B6903F504739A1CC14BCA -:107FF00003CB106051601B8813817B6803F5847389 -:108000005B6903F5047340F259421A807B6803F5FB -:1080100084735B6903F5047300229A747B6803F52B -:1080200084735B6903F504730122DA747B6803F5DA -:1080300084735B6903F5047300221A757B6803F58A -:1080400084735B6903F5047301225A757B6803F539 -:1080500084735B6903F5047301229A757B6803F5E9 -:1080600084735B6903F5047300229A617B6803F5EE -:1080700084735B6903F504730022DA617B6803F59E -:1080800084735B6903F5047300221A627B6803F54D -:1080900084735B6903F5047300225A627B6803F5FD -:1080A00084735B6903F5047301221A857B6803F509 -:1080B00084735B6903F5047300225A857B6803F5BA -:1080C00084735B6903F50F739A1C8B4B144607CBC3 -:1080D00020606160A2607B6803F584735B6903F5CF -:1080E0000F7340F25A421A807B6803F584735B6910 -:1080F00003F50F7300229A747B6803F584735B6940 -:1081000003F50F730122DA747B6803F584735B69EE -:1081100003F50F7300221A757B6803F584735B699E -:1081200003F50F7301225A757B6803F584735B694D -:1081300003F50F7301229A757B6803F584735B69FD -:1081400003F50F7300229A617B6803F584735B6902 -:1081500003F50F730022DA617B6803F584735B69B2 -:1081600003F50F7300221A627B6803F584735B6961 -:1081700003F50F7300225A627B6803F584735B6911 -:1081800003F50F7301221A857B6803F584735B691D -:1081900003F50F7300225A857B6803F584735B69CE -:1081A00003F51A739A1C554B144607CB2060616087 -:1081B000A2601B7823737B6803F584735B6903F506 -:1081C0001A7340F25B421A807B6803F584735B6923 -:1081D00003F51A7300229A747B6803F584735B6954 -:1081E00003F51A730122DA747B6803F584735B6903 -:1081F00003F51A7300221A757B6803F584735B69B3 -:1082000003F51A7301225A757B6803F584735B6961 -:1082100003F51A7301229A757B6803F584735B6911 -:1082200003F51A7300229A617B6803F584735B6916 -:1082300003F51A730022DA617B6803F584735B69C6 -:1082400003F51A7300221A627B6803F584735B6975 -:1082500003F51A7300225A627B6803F584735B6925 -:1082600003F51A7301221A857B6803F584735B6931 -:1082700003F51A7300225A857B6803F584735B69E2 -:1082800003F525739A1C1E4B144607CB20606160D2 -:10829000A2601A889B78A281A3737B6803F584731C -:1082A0005B6903F5257340F25C421A807B6803F535 -:1082B00084735B6903F5257301229A747B6803F567 -:1082C00084735B6903F525730122DA747B6803F517 -:1082D00084735B6903F5257301221A757B6803F5C6 -:1082E00084735B6903F5257301225A757B6803F576 -:1082F000847307E0A8C20108B4C20108C0C2010823 -:10830000D0C201085B6903F5257301229A757B6869 -:1083100003F584735B6903F5257340F6A9629A61DE -:108320007B6803F584735B6903F5257340F69A5205 -:10833000DA617B6803F584735B6903F5257340F6A6 -:10834000A9621A627B6803F584735B6903F5257380 -:1083500040F6FF725A627B6803F584735B6903F52C -:10836000257304221A857B6803F584735B6903F522 -:10837000257300225A857B6803F584735B6903F5D6 -:1083800030739A1CC24B144607CB20606160A26018 -:108390001A889B78A281A3737B6803F584735B6959 -:1083A00003F5307340F25D421A807B6803F58473F5 -:1083B0005B6903F5307301229A747B6803F584735B -:1083C0005B6903F530730122DA747B6803F584730B -:1083D0005B6903F5307301221A757B6803F58473BA -:1083E0005B6903F5307301225A757B6803F584736A -:1083F0005B6903F5307301229A757B6803F584731A -:108400005B6903F530734FF4AB729A617B6803F5D7 -:1084100084735B6903F530730022DA617B6803F5CE -:1084200084735B6903F530734FF4AB721A627B6837 -:1084300003F584735B6903F530734FF42E725A624F -:108440007B6803F584735B6903F5307303221A8537 -:108450007B6803F584735B6903F5307300225A85EA -:108460007B6803F584735B6903F53B739A1C894B46 -:10847000144607CB20606160A2601A889B78A281B5 -:10848000A3737B6803F584735B6903F53B7340F268 -:108490005E421A807B6803F584735B6903F53B7366 -:1084A00000229A747B6803F584735B6903F53B7360 -:1084B0000122DA747B6803F584735B6903F53B730F -:1084C00000221A757B6803F584735B6903F53B73BF -:1084D00001225A757B6803F584735B6903F53B736E -:1084E00001229A757B6803F584735B6903F53B731E -:1084F00000229A617B6803F584735B6903F53B7323 -:108500000022DA617B6803F584735B6903F53B73D2 -:1085100000221A627B6803F584735B6903F53B7381 -:1085200000225A627B6803F584735B6903F53B7331 -:1085300001221A857B6803F584735B6903F53B733D -:1085400000225A857B6803F584735B6903F54673E3 -:108550009A1C504B144607CB20606160A2601A88B9 -:108560009B78A281A3737B6803F584735B6903F531 -:10857000467340F25F421A807B6803F584735B693F -:1085800003F5467300229A747B6803F584735B6974 -:1085900003F546730122DA747B6803F584735B6923 -:1085A00003F5467300221A757B6803F584735B69D3 -:1085B00003F5467301225A757B6803F584735B6982 -:1085C00003F5467301229A757B6803F584735B6932 -:1085D00003F5467300229A617B6803F584735B6937 -:1085E00003F546730022DA617B6803F584735B69E7 -:1085F00003F5467300221A627B6803F584735B6996 -:1086000003F5467300225A627B6803F584735B6945 -:1086100003F5467301221A857B6803F584735B6951 -:1086200003F5467300225A857B6803F584735B6902 -:1086300003F551739A1C174B144607CB20606160F9 -:10864000A2601A889B78A281A3737B6803F5847368 -:108650005B6903F551734FF48C621A807B6803F5F4 -:1086600084735B6903F5517300229A747B6803F588 -:1086700084735B6903F551730122DA747B6803F537 -:1086800084735B6903F5517300221A7504E000BF1F -:10869000E0C20108F0C201087B6803F584735B69DE -:1086A00003F5517301225A757B6803F584735B6986 -:1086B00003F5517301229A757B6803F584735B6936 -:1086C00003F5517300229A617B6803F584735B693B -:1086D00003F551730022DA617B6803F584735B69EB -:1086E00003F5517300221A627B6803F584735B699A -:1086F00003F5517300225A627B6803F584735B694A -:1087000003F5517301221A857B6803F584735B6955 -:1087100003F5517300225A857B6803F584735B6906 -:1087200003F55C739A1CC24B144607CB2060616052 -:10873000A2601A889B78A281A3737B6803F5847377 -:108740005B6903F55C7340F261421A807B6803F554 -:1087500084735B6903F55C7300229A747B6803F58C -:1087600084735B6903F55C730122DA747B6803F53B -:1087700084735B6903F55C7300221A757B6803F5EB -:1087800084735B6903F55C7301225A757B6803F59A -:1087900084735B6903F55C7301229A757B6803F54A -:1087A00084735B6903F55C7300229A617B6803F54F -:1087B00084735B6903F55C730022DA617B6803F5FF -:1087C00084735B6903F55C7300221A627B6803F5AE -:1087D00084735B6903F55C7300225A627B6803F55E -:1087E00084735B6903F55C7301221A857B6803F56A -:1087F00084735B6903F55C7300225A857B6803F51B -:1088000084735B6903F567739A1C894B144607CB25 -:1088100020606160A2601A889B78A281A3737B6844 -:1088200003F584735B6903F5677340F262421A8053 -:108830007B6803F584735B6903F5677300229A74A0 -:108840007B6803F584735B6903F567730122DA744F -:108850007B6803F584735B6903F5677300221A75FF -:108860007B6803F584735B6903F5677301225A75AE -:108870007B6803F584735B6903F5677301229A755E -:108880007B6803F584735B6903F5677300229A6163 -:108890007B6803F584735B6903F567730022DA6113 -:1088A0007B6803F584735B6903F5677300221A62C2 -:1088B0007B6803F584735B6903F5677300225A6272 -:1088C0007B6803F584735B6903F5677301221A857E -:1088D0007B6803F584735B6903F5677300225A852F -:1088E0007B6803F584735B6903F572739A1C514BC3 -:1088F000144607CB20606160A2601B7823737B68FD -:1089000003F584735B6903F5727340F263421A8066 -:108910007B6803F584735B6903F5727300229A74B4 -:108920007B6803F584735B6903F572730122DA7463 -:108930007B6803F584735B6903F5727300221A7513 -:108940007B6803F584735B6903F5727301225A75C2 -:108950007B6803F584735B6903F5727301229A7572 -:108960007B6803F584735B6903F5727300229A6177 -:108970007B6803F584735B6903F572730022DA6127 -:108980007B6803F584735B6903F5727300221A62D6 -:108990007B6803F584735B6903F5727300225A6286 -:1089A0007B6803F584735B6903F5727301221A8592 -:1089B0007B6803F584735B6903F5727300225A8543 -:1089C0007B6803F584735B6903F57D739A1C1A4B0E -:1089D00003CB106051601B8813817B6803F584739F -:1089E0005B6903F57D7340F264421A807B6803F58E -:1089F00084735B6903F57D7300229A747B6803F5C9 -:108A000084735B6903F57D730122DA747B6803F577 -:108A100084735B6903F57D7300221A757B6803F527 -:108A200084735B6903F57D7301225A7506E000BF0C -:108A3000F0C2010800C3010810C301087B6803F5F8 -:108A400084735B6903F57D7301229A757B6803F576 -:108A500084735B6903F57D7300229A617B6803F57B -:108A600084735B6903F57D730022DA617B6803F52B -:108A700084735B6903F57D7300221A627B6803F5DA -:108A800084735B6903F57D7300225A627B6803F58A -:108A900084735B6903F57D7301221A857B6803F596 -:108AA00084735B6903F57D7300225A857B6803F547 -:108AB00084735B6903F584639A1CC14B144607CB2E -:108AC00020606160A2607B6803F584735B6903F5D5 -:108AD000846340F265421A807B6803F584735B69A6 -:108AE00003F5846300229A747B6803F584735B69E1 -:108AF00003F584630122DA747B6803F584735B6990 -:108B000003F5846300221A757B6803F584735B693F -:108B100003F5846301225A757B6803F584735B69EE -:108B200003F5846301229A757B6803F584735B699E -:108B300003F5846300229A617B6803F584735B69A3 -:108B400003F584630022DA617B6803F584735B6953 -:108B500003F5846300221A627B6803F584735B6902 -:108B600003F5846300225A627B6803F584735B69B2 -:108B700003F5846301221A857B6803F584735B69BE -:108B800003F5846300225A857B6803F584735B696F -:108B900003F24C439A1C8B4B144607CB2060616058 -:108BA000A2601B7823737B6803F584735B6903F20F -:108BB0004C4340F266421A807B6803F584735B691C -:108BC00003F24C4300229A747B6803F584735B695B -:108BD00003F24C430122DA747B6803F584735B690A -:108BE00003F24C4300221A757B6803F584735B69BA -:108BF00003F24C4301225A757B6803F584735B6969 -:108C000003F24C4301229A757B6803F584735B6918 -:108C100003F24C4300229A617B6803F584735B691D -:108C200003F24C430022DA617B6803F584735B69CD -:108C300003F24C4300221A627B6803F584735B697C -:108C400003F24C4300225A627B6803F584735B692C -:108C500003F24C4301221A857B6803F584735B6938 -:108C600003F24C4300225A857B6803F584735B69E9 -:108C700003F58F639A1C544B144607CB2060616048 -:108C8000A2601A889B78A281A3737B6803F5847322 -:108C90005B6903F58F6340F267421A807B6803F5D6 -:108CA00084735B6903F58F6301229A747B6803F513 -:108CB00084735B6903F58F630122DA747B6803F5C3 -:108CC00084735B6903F58F6301221A757B6803F572 -:108CD00084735B6903F58F6301225A757B6803F522 -:108CE00084735B6903F58F6301229A757B6803F5D2 -:108CF00084735B6903F58F6340F6A9629A617B68B0 -:108D000003F584735B6903F58F6340F69A52DA6169 -:108D10007B6803F584735B6903F58F6340F6A96292 -:108D20001A627B6803F584735B6903F58F6340F611 -:108D3000FF725A627B6803F584735B6903F58F6386 -:108D400004221A857B6803F584735B6903F58F63DE -:108D500000225A857B6803F584735B6903F2A443A0 -:108D60009A1C1A4B144607CB20606160A2601A88D7 -:108D70009B78A281A3737B6803F584735B6903F21C -:108D8000A4434FF48D621A807B6803F584735B699A -:108D900003F2A44301229A747B6803F584735B6930 -:108DA00003F2A4430122DA747B6803F584735B69E0 -:108DB00003F2A44301221A757B6803F5847307E06C -:108DC0001CC3010828C3010838C3010848C30108AF -:108DD0005B6903F2A44301225A757B6803F584732F -:108DE0005B6903F2A44301229A757B6803F58473DF -:108DF0005B6903F2A4434FF4AB729A617B6803F59D -:108E000084735B6903F2A4430022DA617B6803F593 -:108E100084735B6903F2A4434FF4AB721A627B68FC -:108E200003F584735B6903F2A4434FF42E725A6214 -:108E30007B6803F584735B6903F2A44303221A85FC -:108E40007B6803F584735B6903F2A44300225A85AF -:108E50007B6803F584735B6903F59A639A1CC14BC5 -:108E6000144607CB20606160A2601A889B78A281BB -:108E7000A3737B6803F584735B6903F59A6340F21F -:108E800069421A807B6803F584735B6903F59A6312 -:108E900000229A747B6803F584735B6903F59A6317 -:108EA0000122DA747B6803F584735B6903F59A63C6 -:108EB00000221A757B6803F584735B6903F59A6376 -:108EC00001225A757B6803F584735B6903F59A6325 -:108ED00001229A757B6803F584735B6903F59A63D5 -:108EE00000229A617B6803F584735B6903F59A63DA -:108EF0000022DA617B6803F584735B6903F59A638A -:108F000000221A627B6803F584735B6903F59A6338 -:108F100000225A627B6803F584735B6903F59A63E8 -:108F200001221A857B6803F584735B6903F59A63F4 -:108F300000225A857B6803F584735B6903F2FC4366 -:108F40009A1C884B144607CB20606160A2601A8887 -:108F50009B78A281A3737B6803F584735B6903F23A -:108F6000FC4340F26A421A807B6803F584735B69B4 -:108F700003F2FC4300229A747B6803F584735B69F7 -:108F800003F2FC430122DA747B6803F584735B69A6 -:108F900003F2FC4300221A757B6803F584735B6956 -:108FA00003F2FC4301225A757B6803F584735B6905 -:108FB00003F2FC4301229A757B6803F584735B69B5 -:108FC00003F2FC4300229A617B6803F584735B69BA -:108FD00003F2FC430022DA617B6803F584735B696A -:108FE00003F2FC4300221A627B6803F584735B6919 -:108FF00003F2FC4300225A627B6803F584735B69C9 -:1090000003F2FC4301221A857B6803F584735B69D4 -:1090100003F2FC4300225A857B6803F584735B6985 -:1090200003F5A5639A1C4F4B144607CB2060616083 -:10903000A2601A889B78A281A3737B6803F584736E -:109040005B6903F5A56340F26B421A807B6803F508 -:1090500084735B6903F5A56300229A747B6803F54A -:1090600084735B6903F5A5630122DA747B6803F5F9 -:1090700084735B6903F5A56300221A757B6803F5A9 -:1090800084735B6903F5A56301225A757B6803F558 -:1090900084735B6903F5A56301229A757B6803F508 -:1090A00084735B6903F5A56300229A617B6803F50D -:1090B00084735B6903F5A5630022DA617B6803F5BD -:1090C00084735B6903F5A56300221A627B6803F56C -:1090D00084735B6903F5A56300225A627B6803F51C -:1090E00084735B6903F5A56301221A857B6803F528 -:1090F00084735B6903F5A56300225A857B6803F5D9 -:1091000084735B6903F254539A1C164B144607CBC5 -:1091100020606160A2601A889B78A281A3737B683B -:1091200003F584735B6903F2545340F26C421A8076 -:109130007B6803F584735B6903F2545300229A74CD -:109140007B6803F584735B6903F254530122DA747C -:109150007B6803F584735B6903F2545300221A752C -:109160007B6801E058C3010803F584735B6903F26F -:10917000545301225A757B6803F584735B6903F2CB -:10918000545301229A757B6803F584735B6903F27B -:10919000545300229A617B6803F584735B6903F280 -:1091A00054530022DA617B6803F584735B6903F230 -:1091B000545300221A627B6803F584735B6903F2DF -:1091C000545300225A627B6803F584735B6903F28F -:1091D000545301221A857B6803F584735B6903F29B -:1091E000545300225A857B6803F584735B6903F549 -:1091F000B0639A1CC14B144607CB20606160A2602B -:109200001A889B78A281A3737B6803F584735B69DA -:1092100003F5B06340F26D421A807B6803F58473F6 -:109220005B6903F5B06300229A747B6803F584736D -:109230005B6903F5B0630122DA747B6803F584731C -:109240005B6903F5B06300221A757B6803F58473CC -:109250005B6903F5B06301225A757B6803F584737B -:109260005B6903F5B06301229A757B6803F584732B -:109270005B6903F5B06300229A617B6803F5847330 -:109280005B6903F5B0630022DA617B6803F58473E0 -:109290005B6903F5B06300221A627B6803F584738F -:1092A0005B6903F5B06300225A627B6803F584733F -:1092B0005B6903F5B06301221A857B6803F584734B -:1092C0005B6903F5B06300225A857B6803F58473FC -:1092D0005B6903F2AC539A1C884B144607CB2060A1 -:1092E0006160A2601A889B78A281A3737B6803F5F2 -:1092F00084735B6903F2AC5340F26E421A807B6860 -:1093000003F584735B6903F2AC5300229A747B68A3 -:1093100003F584735B6903F2AC530122DA747B6852 -:1093200003F584735B6903F2AC5300221A757B6802 -:1093300003F584735B6903F2AC5301225A757B68B1 -:1093400003F584735B6903F2AC5301229A757B6861 -:1093500003F584735B6903F2AC5300229A617B6866 -:1093600003F584735B6903F2AC530022DA617B6816 -:1093700003F584735B6903F2AC5300221A627B68C5 -:1093800003F584735B6903F2AC5300225A627B6875 -:1093900003F584735B6903F2AC5301221A857B6881 -:1093A00003F584735B6903F2AC5300225A857B6832 -:1093B00003F584735B6903F5BB639A1C504B144639 -:1093C00007CB20606160A2601B7823737B6803F584 -:1093D00084735B6903F5BB6340F26F421A807B685C -:1093E00003F584735B6903F5BB6300229A747B68A1 -:1093F00003F584735B6903F5BB630122DA747B6850 -:1094000003F584735B6903F5BB6301221A757B68FE -:1094100003F584735B6903F5BB6301225A757B68AE -:1094200003F584735B6903F5BB6301229A757B685E -:1094300003F584735B6903F5BB6300229A617B6863 -:1094400003F584735B6903F5BB630022DA617B6813 -:1094500003F584735B6903F5BB631E221A627B68A4 -:1094600003F584735B6903F5BB631E225A627B6854 -:1094700003F584735B6903F5BB6302221A857B687D -:1094800003F584735B6903F5BB6300225A857B682F -:1094900003F584735B6903F204639A1C194B03CBD5 -:1094A000106051601B8813817B6803F584735B69CE -:1094B00003F204634FF48E621A807B6803F58473B1 -:1094C0005B6903F2046302229A747B6803F5847378 -:1094D0005B6903F204630122DA747B6803F5847329 -:1094E0005B6903F2046301221A757B6803F58473D8 -:1094F0005B6903F2046301225A7505E058C3010851 -:1095000068C3010878C301087B6803F584735B694D -:1095100003F2046301229A757B6803F584735B6927 -:1095200003F20463B74A9A617B6803F584735B694D -:1095300003F20463B44ADA617B6803F584735B6900 -:1095400003F20463AF4A1A627B6803F584735B69B4 -:1095500003F20463AD4A5A627B6803F584735B6966 -:1095600003F2046301221A857B6803F584735B6947 -:1095700003F2046302225A857B6803F590735B69EA -:109580009A1CA34B15461C460FCC28606960AA6044 -:10959000EB6023882B827B6803F590735B6940F254 -:1095A000B1421A807B6803F590735B6902229A745A -:1095B0007B6803F590735B690122DA747B6803F5BD -:1095C00090735B6901221A757B6803F590735B6980 -:1095D00001225A757B6803F590735B6901229A75C5 -:1095E0007B6803F590735B694FF07C529A617B68EE -:1095F00003F590735B694FF00002DA617B6803F555 -:1096000090735B694FF07C521A627B6803F590732C -:109610005B694FF07E525A627B6803F590735B6919 -:1096200001221A857B6803F590735B6902225A85D3 -:109630007B6803F590735B692C339A1C754B154658 -:109640001C460FCC28606960AA60EB6023882B82DF -:109650007B6803F590735B692C3340F2B2421A8049 -:109660007B6803F590735B692C3301229A747B68E5 -:1096700003F590735B692C330122DA747B6803F580 -:1096800090735B692C3301221A757B6803F5907324 -:109690005B692C3301225A757B6803F590735B6913 -:1096A0002C3301229A757B6803F590735B692C3328 -:1096B0004FF416729A617B6803F590735B692C33E3 -:1096C0000022DA617B6803F590735B692C334FF4F9 -:1096D00016721A627B6803F590735B692C334FF442 -:1096E00016725A627B6803F590735B692C33032210 -:1096F0001A857B6803F590735B692C3300225A85C9 -:109700007B6803F590735B6958339A1C424B15468E -:109710001C460FCC28606960AA60EB6023782B742C -:109720007B6803F590735B69583340F2B3421A804B -:109730007B6803F590735B69583302229A747B68E7 -:1097400003F590735B6958330122DA747B6803F583 -:1097500090735B69583301221A757B6803F5907327 -:109760005B69583301225A757B6803F590735B6916 -:10977000583301229A757B6803F590735B695833FF -:109780004FF07C529A617B6803F590735B695833A4 -:109790004FF00002DA617B6803F590735B69583320 -:1097A0004FF07C521A627B6803F590735B69583303 -:1097B0004FF07E525A627B6803F590735B695833B1 -:1097C00001221A857B6803F590735B695833012287 -:1097D0005A857B6803F590735B6984339A1C0F4B41 -:1097E00015461C460FCC28606960AA60EB602378A0 -:1097F0002B747B6803F590735B69843340F2B44249 -:109800001A800DE0CDCCBC40E17ABC40B81EBD4012 -:1098100084C3010898C30108ACC30108C0C3010890 -:109820007B6803F590735B69843302229A747B68CA -:1098300003F590735B6984330122DA747B6803F566 -:1098400090735B69843301221A757B6803F590730A -:109850005B69843301225A757B6803F590735B69F9 -:10986000843301229A757B6803F590735B698433B6 -:10987000B64A9A617B6803F590735B6984334FF055 -:109880000002DA617B6803F590735B698433AF4A49 -:109890001A627B6803F590735B698433AB4A5A6242 -:1098A0007B6803F590735B69843303221A857B68B8 -:1098B00003F590735B69843301225A857B6803F555 -:1098C00090735B69B0339A1CA14B14461D460FCDB3 -:1098D00020606160A260E36028682061AA88AB799B -:1098E000A282A3757B6803F590735B69B03340F285 -:1098F000B5421A807B6803F590735B69B03302222E -:109900009A747B6803F590735B69B0330122DA7453 -:109910007B6803F590735B69B03300221A757B682E -:1099200003F590735B69B03301225A757B6803F5C8 -:1099300090735B69B03301229A757B6803F590736D -:109940005B69B0334FF040429A617B6803F59073D6 -:109950005B69B0337F4ADA617B6803F590735B69BA -:10996000B0334FF040421A627B6803F590735B6935 -:10997000B033794A5A627B6803F590735B69B03300 -:1099800001221A857B6803F590735B69B03304226A -:109990005A857B6803F59C735B699A1C6F4B144670 -:1099A00007CB20606160A2601B7823737B6803F59E -:1099B0009C735B6940F215521A807B6803F59C73B7 -:1099C0005B6901229A747B6803F59C735B690122D1 -:1099D000DA747B6803F59C735B6901221A757B68F6 -:1099E00003F59C735B6901225A757B6803F59C73D0 -:1099F0005B6900229A757B6803F59C735B6907229B -:109A00009A617B6803F59C735B690122DA617B686C -:109A100003F59C735B6907221A627B6803F59C73EC -:109A20005B6908225A627B6803F59C735B690122BB -:109A30001A857B6803F59C735B6900225A857B68F5 -:109A400003F59C735B692C339A1C454B144607CB7A -:109A500020606160A2601A889B78A281A3737B68F2 -:109A600003F59C735B692C3340F216521A807B68B5 -:109A700003F59C735B692C3302229A747B6803F5AF -:109A80009C735B692C330122DA747B6803F59C7349 -:109A90005B692C3301221A757B6803F59C735B6943 -:109AA0002C3301225A757B6803F59C735B692C3358 -:109AB00000229A757B6803F59C735B692C334FF029 -:109AC00000029A617B6803F59C735B692C334FF04D -:109AD0000002DA617B6803F59C735B692C33214AD1 -:109AE0001A627B6803F59C735B692C331E4A5A62C9 -:109AF0007B6803F59C735B692C3301221A857B68B4 -:109B000003F59C735B692C3303225A857B6803F54C -:109B10009C735B6958339A1C144B144607CB206026 -:109B20006160A2601A889B78A281A3737B6803F5A9 -:109B30009C735B69583340F217521A807B6803F5B7 -:109B40009C735B69583302229A7411E0000016443A -:109B5000D4C30108C3F548C0C3F54840ECC30108AD -:109B6000FCC301086F12033C0AD7A33C0CC40108D4 -:109B70007B6803F59C735B6958330122DA747B6858 -:109B800003F59C735B69583301221A757B6803F5F2 -:109B90009C735B69583301225A757B6803F59C738B -:109BA0005B69583300229A757B6803F59C735B6987 -:109BB00058334FF000029A617B6803F59C735B6930 -:109BC0005833B74ADA617B6803F59C735B69583395 -:109BD000B44A1A627B6803F59C735B6958334FF093 -:109BE00000025A627B6803F59C735B69583301225B -:109BF0001A857B6803F59C735B69583303225A8589 -:109C00007B6803F5A8735B699A1CA74B144607CBC6 -:109C100020606160A2601A889B78A281A3737B6830 -:109C200003F5A8735B6940F279521A807B6803F5EB -:109C3000A8735B6902229A747B6803F5A8735B6959 -:109C40000122DA747B6803F5A8735B6901221A7537 -:109C50007B6803F5A8735B6901225A757B6803F57D -:109C6000A8735B6900229A757B6803F5A8735B692A -:109C70004FF000029A617B6803F5A8735B694FF0AF -:109C80000002DA617B6803F5A8735B69874A1A6290 -:109C90007B6803F5A8735B69854A5A627B6803F5A4 -:109CA000A8735B6904221A857B6803F5A8735B6956 -:109CB00006225A857B6803F5A8735B692C339A1CCE -:109CC0007C4B144607CB20606160A2601A889B78A9 -:109CD000A281A3737B6803F5A8735B692C3340F200 -:109CE0007A521A807B6803F5A8735B692C330222D1 -:109CF0009A747B6803F5A8735B692C330122DA74CC -:109D00007B6803F5A8735B692C3301221A757B68A5 -:109D100003F5A8735B692C3301225A757B6803F540 -:109D2000A8735B692C3300229A757B6803F5A873CE -:109D30005B692C334FF000029A617B6803F5A873CE -:109D40005B692C334FF00002DA617B6803F5A8737E -:109D50005B692C33584A1A627B6803F5A8735B6908 -:109D60002C33534A5A627B6803F5A8735B692C3322 -:109D700004221A857B6803F5A8735B692C330222E1 -:109D80005A857B6803F5A8735B6958339A1C4B4B63 -:109D900015461C460FCC28606960AA60EB602068FD -:109DA000286123792B757B6803F5A8735B695833A9 -:109DB00040F27B521A807B6803F5A8735B695833C5 -:109DC00002229A747B6803F5A8735B6958330122F9 -:109DD000DA747B6803F5A8735B69583301221A753E -:109DE0007B6803F5A8735B69583301225A757B6859 -:109DF00003F5A8735B69583301229A757B6803F5F4 -:109E0000A8735B6958334FF000029A617B6803F5D1 -:109E1000A8735B6958334FF00002DA617B6803F581 -:109E2000A8735B695833264A1A627B6803F5A873E6 -:109E30005B6958334FF07E525A627B6803F5A87312 -:109E40005B69583301221A857B6803F5A8735B6947 -:109E5000583303225A857B6803F5A8735B69843302 -:109E60009A1C184B15461C460FCC28606960AA60E6 -:109E7000EB6023782B747B6803F5A8735B698433EC -:109E800040F27C521A807B6803F5A8735B698433C7 -:109E900002229A747B6803F5A8735B69843313E02C -:109EA0000AD7A3BC6F1203BC1CC4010800004842BF -:109EB00000007A442CC40108000016433CC4010889 -:109EC0000AD7A33B54C401080122DA747B6803F566 -:109ED000A8735B69843300221A757B6803F5A87345 -:109EE0005B69843301225A757B6803F5A8735B694B -:109EF000843300229A757B6803F5A8735B69843309 -:109F00004FF000029A617B6803F5A8735B698433A4 -:109F1000B54ADA617B6803F5A8735B698433B34A99 -:109F20001A627B6803F5A8735B6984334FF0000203 -:109F30005A627B6803F5A8735B69843301221A8532 -:109F40007B6803F5A8735B69843304225A857B68B8 -:109F500003F5A8735B69B0339A1CA54B15461C46E4 -:109F60000FCC28606960AA60EB6023782B747B6853 -:109F700003F5A8735B69B03340F27D521A807B68A9 -:109F800003F5A8735B69B03302229A747B6803F50A -:109F9000A8735B69B0330122DA747B6803F5A87398 -:109FA0005B69B03301221A757B6803F5A8735B699E -:109FB000B03301225A757B6803F5A8735B69B0332F -:109FC00000229A757B6803F5A8735B69B0334FF084 -:109FD00000029A617B6803F5A8735B69B0334FF0A8 -:109FE0000002DA617B6803F5A8735B69B033814ACC -:109FF0001A627B6803F5A8735B69B0337E4A5A62C4 -:10A000007B6803F5A8735B69B03301221A857B680E -:10A0100003F5A8735B69B03304225A857B6803F5A6 -:10A02000A8735B69DC339A1C744B15461C460FCC35 -:10A0300028606960AA60EB6023882B827B6803F547 -:10A04000A8735B69DC3340F27E521A807B6803F5AB -:10A05000A8735B69DC3302229A747B6803F5A873EA -:10A060005B69DC330122DA747B6803F5A8735B69F2 -:10A07000DC3301221A757B6803F5A8735B69DC3356 -:10A0800001225A757B6803F5A8735B69DC330022F3 -:10A090009A757B6803F5A8735B69DC334FF00002A7 -:10A0A0009A617B6803F5A8735B69DC334FF00002AB -:10A0B000DA617B6803F5A8735B69DC33504A1A6286 -:10A0C0007B6803F5A8735B69DC334E4A5A627B6890 -:10A0D00003F5A8735B69DC3304221A857B6803F5FA -:10A0E000A8735B69DC3307225A857B6803F5B47378 -:10A0F0005B699A1C444B144607CB20606160A260E8 -:10A100007B6803F5B4735B6940F2DD521A807B68AB -:10A1100003F5B4735B6902229A747B6803F5B47328 -:10A120005B690122DA747B6803F5B4735B69012211 -:10A130001A757B6803F5B4735B6901225A757B68F5 -:10A1400003F5B4735B6900229A757B6803F5B473F9 -:10A150005B692E4A9A617B6803F5B4735B694FF0C3 -:10A160000002DA617B6803F5B4735B69274A1A62FF -:10A170007B6803F5B4735B69254A5A627B6803F513 -:10A18000B4735B6903221A857B6803F5B4735B695A -:10A1900000225A857B6803F5B4735B692C339A1CE3 -:10A1A0001C4B144607CB20606160A2601B88A38112 -:10A1B0007B6803F5B4735B692C3340F2DE521A807E -:10A1C0007B6803F5B4735B692C3302229A747B6855 -:10A1D00003F5B4735B692C330122DA747B6803F5F1 -:10A1E000B4735B6918E000BFAE4761BD083D1BBD9D -:10A1F00068C40108083D1B3DAE47613D7CC40108B1 -:10A200005D794B3400007A4490C401080000B442E8 -:10A21000000034439CC401082C3301221A757B686A -:10A2200003F5B4735B692C3301225A757B6803F51F -:10A23000B4735B692C3300229A757B6803F5B473A1 -:10A240005B692C334FF000029A617B6803F5B473AD -:10A250005B692C334FF00002DA617B6803F5B4735D -:10A260005B692C334FF000021A627B6803F5B4730C -:10A270005B692C33B74A5A627B6803F5B4735B6938 -:10A280002C3303221A857B6803F5B4735B692C3386 -:10A2900000225A857B6803F5B4735B6958339A1CB6 -:10A2A000AD4B144607CB20606160A2601B88A38180 -:10A2B0007B6803F5B4735B69583340F2DF521A8050 -:10A2C0007B6803F5B4735B69583302229A747B6828 -:10A2D00003F5B4735B6958330122DA747B6803F5C4 -:10A2E000B4735B69583301221A757B6803F5B47344 -:10A2F0005B69583301225A757B6803F5B4735B6957 -:10A30000583300229A757B6803F5B4735B69583340 -:10A31000904A9A617B6803F5B4735B6958334FF0D8 -:10A320000002DA617B6803F5B4735B695833894ACC -:10A330001A627B6803F5B4735B695833854A5A62C5 -:10A340007B6803F5B4735B69583303221A857B6815 -:10A3500003F5B4735B69583300225A857B6803F5B3 -:10A36000B4735B6984339A1C7C4B144607CB206022 -:10A370006160A2607B6803F5B4735B6984334FF45A -:10A38000BC621A807B6803F5B4735B698433022274 -:10A390009A747B6803F5B4735B6984330122DA74C1 -:10A3A0007B6803F5B4735B69843301221A757B689B -:10A3B00003F5B4735B69843301225A757B6803F536 -:10A3C000B4735B69843300229A757B6803F5B473B8 -:10A3D0005B698433624A9A617B6803F5B4735B6995 -:10A3E00084334FF00002DA617B6803F5B4735B6974 -:10A3F00084335B4A1A627B6803F5B4735B69843308 -:10A40000544A5A627B6803F5B4735B698433032250 -:10A410001A857B6803F5B4735B69843300225A851F -:10A420007B6803F5B4735B69B0339A1C4D4B1446DB -:10A4300007CB20606160A2601B88A3817B6803F565 -:10A44000B4735B69B03340F2E1521A807B6803F564 -:10A45000B4735B69B03302229A747B6803F5B473FA -:10A460005B69B0330122DA747B6803F5B4735B690E -:10A47000B03301221A757B6803F5B4735B69B0339E -:10A4800001225A757B6803F5B4735B69B03300220F -:10A490009A757B6803F5B4735B69B0334FF00002C3 -:10A4A0009A617B6803F5B4735B69B0334FF00002C7 -:10A4B000DA617B6803F5B4735B69B0334FF0000277 -:10A4C0001A627B6803F5B4735B69B033214A5A6240 -:10A4D0007B6803F5B4735B69B03303221A857B682C -:10A4E00003F5B4735B69B03300225A857B6803F5CA -:10A4F000B4735B69DC339A1C1B4B144607CB20609A -:10A500006160A2601B88A3817B6803F5B4735B69FB -:10A51000DC3340F2E2521A807B6803F5B4735B6966 -:10A52000DC3302229A747B6803F5B4735B69DC3315 -:10A530000122DA747B6803F5B4735B69DC330122B2 -:10A540001A757B6803F5B4735B69DC3301225A75B5 -:10A550007B680BE000003443ACC40108BCC40108B4 -:10A560000000B442C8C40108D8C4010803F5B4739C -:10A570005B69DC3300229A757B6803F5B4735B6911 -:10A58000DC33B94A9A617B6803F5B4735B69DC33E9 -:10A590004FF00002DA617B6803F5B4735B69DC336A -:10A5A000B14A1A627B6803F5B4735B69DC33AE4A67 -:10A5B0005A627B6803F5B4735B69DC3303221A8546 -:10A5C0007B6803F5B4735B69DC3300225A857B68D2 -:10A5D00003F5B4735B6903F584739A1CA34B1446AB -:10A5E00007CB20606160A2601B88A3817B6803F5B4 -:10A5F000B4735B6903F5847340F2E3521A807B689D -:10A6000003F5B4735B6903F5847302229A747B6863 -:10A6100003F5B4735B6903F584730122DA747B6814 -:10A6200003F5B4735B6903F5847301221A757B68C3 -:10A6300003F5B4735B6903F5847300225A757B6874 -:10A6400003F5B4735B6903F5847300229A757B6824 -:10A6500003F5B4735B6903F58473854A9A617B687B -:10A6600003F5B4735B6903F58473824ADA617B682E -:10A6700003F5B4735B6903F584737F4A1A627B68E0 -:10A6800003F5B4735B6903F584734FF07D525A622E -:10A690007B6803F5B4735B6903F5847301221A8543 -:10A6A0007B6803F5B4735B6903F5847303225A85F1 -:10A6B0007B6803F5B4735B6903F59A739A1C6F4B5F -:10A6C000144607CB20606160A2601B88A3817B6871 -:10A6D00003F5B4735B6903F59A7340F2E4521A8090 -:10A6E0007B6803F5B4735B6903F59A7302229A746D -:10A6F0007B6803F5B4735B6903F59A730122DA741E -:10A700007B6803F5B4735B6903F59A7301221A75CC -:10A710007B6803F5B4735B6903F59A7300225A757D -:10A720007B6803F5B4735B6903F59A7300229A752D -:10A730007B6803F5B4735B6903F59A73504A9A61B9 -:10A740007B6803F5B4735B6903F59A734D4ADA616C -:10A750007B6803F5B4735B6903F59A734A4A1A621E -:10A760007B6803F5B4735B6903F59A734FF07F520E -:10A770005A627B6803F5B4735B6903F59A7301222F -:10A780001A857B6803F5B4735B6903F59A7303223A -:10A790005A857B6803F5C0735B699A1C3B4B03CBFE -:10A7A000106051601B7813727B6803F5C0735B699E -:10A7B00040F241621A807B6803F5C0735B69012235 -:10A7C0009A747B6803F5C0735B690122DA747B6855 -:10A7D00003F5C0735B6901221A757B6803F5C073CA -:10A7E0005B6901225A757B6803F5C0735B690122BE -:10A7F0009A757B6803F5C0735B6930229A617B6848 -:10A8000003F5C0735B690022DA617B6803F5C073EE -:10A810005B6930221A627B6803F5C0735B69302282 -:10A820005A627B6803F5C0735B6902221A857B68F4 -:10A8300003F5C0735B6900225A857B6803F5C0731A -:10A840005B692C339A1C124B03CB10605160198842 -:10A850009B78118193727B6803F5C0735B692C331D -:10A8600040F2426216E000BF00003443E8C4010831 -:10A87000D7A3303F9A99193F3333333FF8C40108C7 -:10A88000713DAA3F6666A63F7B14AE3F08C501082E -:10A8900014C501081A807B6803F5C0735B692C330B -:10A8A00001229A747B6803F5C0735B692C33012223 -:10A8B000DA747B6803F5C0735B692C3301221A7567 -:10A8C0007B6803F5C0735B692C3301225A757B6882 -:10A8D00003F5C0735B692C3301229A757B6803F51D -:10A8E000C0735B692C330D229A617B6803F5C073DA -:10A8F0005B692C330022DA617B6803F5C0735B6906 -:10A900002C330D221A627B6803F5C0735B692C330C -:10A9100011225A627B6803F5C0735B692C330222F3 -:10A920001A857B6803F5C0735B692C3300225A8556 -:10A930007B6803F5C0735B6958339A1CB74B1446A8 -:10A9400007CB20606160A2601B7823737B6803F5EE -:10A95000C0735B69583340F243621A807B6803F529 -:10A96000C0735B69583302229A747B6803F5C07325 -:10A970005B6958330122DA747B6803F5C0735B6945 -:10A98000583301221A757B6803F5C0735B6958332D -:10A9900001225A757B6803F5C0735B695833012245 -:10A9A0009A757B6803F5C0735B6958339C4A9A615A -:10A9B0007B6803F5C0735B6958334FF00002DA61BE -:10A9C0007B6803F5C0735B695833954A1A627B68EC -:10A9D00003F5C0735B695833924A5A627B6803F58A -:10A9E000C0735B69583301221A857B6803F5C07315 -:10A9F0005B69583301225A857B6803F5C0735B6934 -:10AA000084339A1C884B144607CB20606160A26097 -:10AA10001B88A3817B6803F5C0735B69843340F2B4 -:10AA200044621A807B6803F5C0735B698433022239 -:10AA30009A747B6803F5C0735B6984330122DA740E -:10AA40007B6803F5C0735B69843301221A757B68E8 -:10AA500003F5C0735B69843301225A757B6803F583 -:10AA6000C0735B69843301229A757B6803F5C073F8 -:10AA70005B6984336D4A9A617B6803F5C0735B69D7 -:10AA800084334FF00002DA617B6803F5C0735B69C1 -:10AA90008433664A1A627B6803F5C0735B6984334A -:10AAA000634A5A627B6803F5C0735B698433012291 -:10AAB0001A857B6803F5C0735B69843302225A856B -:10AAC0007B6803F5CC735B699A1C5A4B03CB10600F -:10AAD00051601B8813817B6803F5CC735B6940F27E -:10AAE000A5621A807B6803F5CC735B6902229A74B5 -:10AAF0007B6803F5CC735B690122DA747B6803F52C -:10AB0000CC735B6901221A757B6803F5CC735B69B2 -:10AB100001225A757B6803F5CC735B6900229A7534 -:10AB20007B6803F5CC735B694FF000029A617B6828 -:10AB300003F5CC735B694FF00002DA617B6803F5C3 -:10AB4000CC735B694FF07F521A627B6803F5CC735C -:10AB50005B694FF080425A627B6803F5CC735B6996 -:10AB600002221A857B6803F5CC735B6902225A8541 -:10AB70007B6803F5CC735B692C339A1C2E4B03CB9B -:10AB8000106051601B8813817B6803F5CC735B698F -:10AB90002C3340F2A6621A807B6803F5CC735B69A4 -:10ABA0002C3302229A747B6803F5CC735B692C33D7 -:10ABB0000122DA747B6803F5CC735B692C330022C5 -:10ABC0001A757B6803F5CC735B692C3301225A75C7 -:10ABD0007B6803F5CC735B692C3300229A757B6824 -:10ABE00003F5CC735B692C334FF000029A617B68EC -:10ABF00003F5CC735B692C334FF04042DA617B681C -:10AC000003F5CC735B692C330C4A1A627B6803F53D -:10AC1000CC735B692C334FF0000211E020C50108B2 -:10AC20009A9989403333A34030C50108AE47E13DCE -:10AC3000CDCC4C3E40C501084CC501080000C0BF4A -:10AC40005A627B6803F5CC735B692C3302221A8548 -:10AC50007B6803F5CC735B692C3302225A857B68D1 -:10AC600003F5D8735B699A1CB74B03CB1060516036 -:10AC70001B7813727B6803F5D8735B6940F2097225 -:10AC80001A807B6803F5D8735B6902229A747B682B -:10AC900003F5D8735B690122DA747B6803F5D87316 -:10ACA0005B6901221A757B6803F5D8735B69012221 -:10ACB0005A757B6803F5D8735B6901229A757B68C6 -:10ACC00003F5D8735B694FF000029A617B6803F566 -:10ACD000D8735B694FF00002DA617B6803F5D873C3 -:10ACE0005B699A4A1A627B6803F5D8735B69984A74 -:10ACF0005A627B6803F5D8735B6902221A857B6808 -:10AD000003F5D8735B6902225A857B6803F5D87313 -:10AD10005B692C339A1C8F4B03CB106051601B78FE -:10AD200013727B6803F5D8735B692C3340F20A72A7 -:10AD30001A807B6803F5D8735B692C3302229A74FE -:10AD40007B6803F5D8735B692C330122DA747B6866 -:10AD500003F5D8735B692C3300221A757B6803F501 -:10AD6000D8735B692C3301225A757B6803F5D8735D -:10AD70005B692C3301229A757B6803F5D8735B6994 -:10AD80002C334FF000029A617B6803F5D8735B693E -:10AD90002C33714ADA617B6803F5D8735B692C3315 -:10ADA0006E4A1A627B6803F5D8735B692C334FF0E7 -:10ADB00000025A627B6803F5D8735B692C33022268 -:10ADC0001A857B6803F5D8735B692C3302225A8598 -:10ADD0007B6803F5E4735B699A1C614B03CB1060DD -:10ADE000516019889B78118193727B6803F5E47335 -:10ADF0005B6940F26D721A807B6803F5E4735B69EE -:10AE000002229A747B6803F5E4735B690122DA74A9 -:10AE10007B6803F5E4735B6901221A757B6803F5AF -:10AE2000E4735B6900225A757B6803F5E4735B6920 -:10AE300000229A757B6803F5E4735B694FF00002AA -:10AE40009A617B6803F5E4735B694FF00002DA6195 -:10AE50007B6803F5E4735B694FF000021A627B685C -:10AE600003F5E4735B694FF07E525A627B6803F529 -:10AE7000E4735B6901221A857B6803F5E4735B69FF -:10AE800002225A857B6803F5E4735B692C339A1CB4 -:10AE9000344B03CB1060516019889B7811819372F9 -:10AEA0007B6803F5E4735B692C3340F26E721A80A1 -:10AEB0007B6803F5E4735B692C3302229A747B6828 -:10AEC00003F5E4735B692C330122DA747B6803F5C4 -:10AED000E4735B692C3301221A757B6803F5E47314 -:10AEE0005B692C3300225A757B6803F5E4735B6958 -:10AEF0002C3300229A757B6803F5E4735B692C336D -:10AF00004FF000029A617B6803F5E4735B692C33B0 -:10AF10004FF00002DA617B6803F5E4735B692C3360 -:10AF20004FF000021A627B6803F5E4735B692C330F -:10AF30004FF07E525A627B6803F5E4735B692C33F1 -:10AF400001221A857B680FE058C501080000E8411E -:10AF50000000F04164C501080000F0C10000E8C134 -:10AF600070C501087CC5010803F5E4735B692C33E7 -:10AF700002225A857B6803F5E4735B6958339A1C97 -:10AF8000BC4B03CB1060516019889B781181937280 -:10AF90007B6803F5E4735B69583340F26F721A8083 -:10AFA0007B6803F5E4735B69583302229A747B680B -:10AFB00003F5E4735B6958330122DA747B6803F5A7 -:10AFC000E4735B69583301221A757B6803F5E473F7 -:10AFD0005B69583300225A757B6803F5E4735B693B -:10AFE000583300229A757B6803F5E4735B69583324 -:10AFF0004FF000029A617B6803F5E4735B69583394 -:10B000004FF00002DA617B6803F5E4735B69583343 -:10B010004FF000021A627B6803F5E4735B695833F2 -:10B020004FF07E525A627B6803F5E4735B695833D4 -:10B0300001221A857B6803F5E4735B6958330222A9 -:10B040005A857B6803F5E4735B6984339A1C8A4BE9 -:10B0500003CB1060516019889B78118193727B68D3 -:10B0600003F5E4735B6984334FF4EE621A807B6806 -:10B0700003F5E4735B69843302229A747B6803F5F9 -:10B08000E4735B6984330122DA747B6803F5E4734B -:10B090005B69843301221A757B6803F5E4735B698D -:10B0A000843300225A757B6803F5E4735B6984334B -:10B0B00000229A757B6803F5E4735B6984336F4AF9 -:10B0C0009A617B6803F5E4735B6984334FF0000297 -:10B0D000DA617B6803F5E4735B698433674A1A625B -:10B0E0007B6803F5E4735B698433654A5A627B6865 -:10B0F00003F5E4735B69843303221A857B6803F5E7 -:10B10000E4735B69843300225A857B6803F5E4733A -:10B110005B69B0339A1C5B4B03CB1060516019889C -:10B120009B78118193727B6803F5E4735B69B0339C -:10B1300040F271721A807B6803F5E4735B69B03387 -:10B1400002229A747B6803F5E4735B69B0330122D1 -:10B15000DA747B6803F5E4735B69B03301221A7516 -:10B160007B6803F5E4735B69B03300225A757B6832 -:10B1700003F5E4735B69B03300229A757B6803F5CD -:10B18000E4735B69B0334FF000029A617B6803F5AA -:10B19000E4735B69B0334FF00002DA617B6803F55A -:10B1A000E4735B69B0334FF000021A627B6803F509 -:10B1B000E4735B69B0334FF07E525A627B6803F5EB -:10B1C000E4735B69B03301221A857B6803F5E4738D -:10B1D0005B69B03302225A857B6803F5E4735B69CF -:10B1E000DC339A1C284B03CB1060516019889B7884 -:10B1F000118193727B6803F5E4735B69DC3340F281 -:10B2000072721A807B6803F5E4735B69DC33022297 -:10B210009A747B6803F5E4735B69DC330122DA74AA -:10B220007B6803F5E4735B69DC3301221A757B6884 -:10B2300003F5E4735B69DC3300225A757B6803F520 -:10B24000E4735B69DC3300229A757B6803F5E47371 -:10B250005B69DC334FF000029A617B6803F5E473AD -:10B260005B69DC334FF00002DA617B6803F5E4735D -:10B270005B690BE088C5010894C501080000C8425D -:10B2800000007F43A0C50108ACC50108DC334FF0C6 -:10B2900000021A627B6803F5E4735B69DC334FF0EC -:10B2A0007E525A627B6803F5E4735B69DC330122EA -:10B2B0001A857B6803F5E4735B69DC3302225A85E7 -:10B2C0007B6803F5E4735B6903F584739A1CBF4BD9 -:10B2D00003CB1060516019889B78118193727B6851 -:10B2E00003F5E4735B6903F5847340F273721A80AB -:10B2F0007B6803F5E4735B6903F5847302229A7437 -:10B300007B6803F5E4735B6903F584730122DA74E7 -:10B310007B6803F5E4735B6903F5847301221A7596 -:10B320007B6803F5E4735B6903F5847300225A7547 -:10B330007B6803F5E4735B6903F5847300229A75F7 -:10B340007B6803F5E4735B6903F58473A04A9A6133 -:10B350007B6803F5E4735B6903F584734FF00002C7 -:10B36000DA617B6803F5E4735B6903F58473984ADB -:10B370001A627B6803F5E4735B6903F584734FF02D -:10B380007E525A627B6803F5E4735B6903F584734C -:10B3900001221A857B6803F5E4735B6903F5847306 -:10B3A00002225A857B6803F5E4735B6903F59A739F -:10B3B0009A1C884B03CB1060516019889B781181CF -:10B3C00093727B6803F5E4735B6903F59A7340F24B -:10B3D00074721A807B6803F5E4735B6903F59A73F2 -:10B3E00002229A747B6803F5E4735B6903F59A7330 -:10B3F0000122DA747B6803F5E4735B6903F59A73E1 -:10B4000001221A757B6803F5E4735B6903F59A738F -:10B4100000225A757B6803F5E4735B6903F59A7340 -:10B4200000229A757B6803F5E4735B6903F59A73F0 -:10B43000694A9A617B6803F5E4735B6903F59A7363 -:10B440004FF00002DA617B6803F5E4735B6903F592 -:10B450009A73614A1A627B6803F5E4735B6903F5CA -:10B460009A735E4A5A627B6803F5E4735B6903F57D -:10B470009A7303221A857B6803F5E4735B6903F50D -:10B480009A7300225A857B6803F5E4735B6903F5C0 -:10B49000B0739A1C524B15461C460FCC286069604D -:10B4A000AA60EB6023782B747B6803F5E4735B6917 -:10B4B00003F5B07340F275721A807B6803F5E4738C -:10B4C0005B6903F5B07302229A747B6803F5E47339 -:10B4D0005B6903F5B0730122DA747B6803F5E473EA -:10B4E0005B6903F5B07301221A757B6803F5E47399 -:10B4F0005B6903F5B07300225A757B6803F5E4734A -:10B500005B6903F5B07300229A757B6803F5E473F9 -:10B510005B6903F5B0734FF000029A617B6803F535 -:10B52000E4735B6903F5B0734FF00002DA617B6886 -:10B5300003F5E4735B6903F5B0732A4A1A627B680A -:10B5400003F5E4735B6903F5B0734FF07E525A6202 -:10B550007B6803F5E4735B6903F5B07301221A8518 -:10B560007B6803F5E4735B6903F5B07302225A85C7 -:10B570007B6803F5E4735B6903F5C6739A1C1A4B89 -:10B5800015461C460FCC28606960AA60EB602388D2 -:10B590002B827B6803F5E4735B6903F5C67340F2A5 -:10B5A00076721A807B6803F5E4735B6903F5C673F2 -:10B5B00002229A747B6803F5E4735B6903F5C67332 -:10B5C0000122DA747B6803F5E4730FE0B8C5010863 -:10B5D000CDCC4C3DC4C501080000C84200007F43EB -:10B5E000D0C50108CDCCCC3DE4C501085B6903F5AD -:10B5F000C67301221A757B6803F5E4735B6903F572 -:10B60000C67300225A757B6803F5E4735B6903F522 -:10B61000C67300229A757B6803F5E4735B6903F5D2 -:10B62000C6734FF000029A617B6803F5E4735B69AF -:10B6300003F5C673B84ADA617B6803F5E4735B69A6 -:10B6400003F5C673B54A1A627B6803F5E4735B6958 -:10B6500003F5C6734FF000025A627B6803F5E4738A -:10B660005B6903F5C67301221A857B6803F5E473F1 -:10B670005B6903F5C67302225A857B6803F5F07394 -:10B680005B699A1CA64B03CB106051601B88138129 -:10B690007B6803F5F0735B6940F2D1721A807B68B6 -:10B6A00003F5F0735B6900229A747B6803F5F0730D -:10B6B0005B690122DA747B6803F5F0735B69002231 -:10B6C0001A757B6803F5F0735B6901225A757B6814 -:10B6D00003F5F0735B6901229A757B6803F5F073DB -:10B6E0005B6900229A617B6803F5F0735B69002255 -:10B6F000DA617B6803F5F0735B6900221A627B688C -:10B7000003F5F0735B6900225A627B6803F5F073FE -:10B710005B6901221A857B6803F5F0735B6900227F -:10B720005A857B6803F5F0735B692C339A1C7D4B5B -:10B7300003CB106051601B7813727B6803F5F073C4 -:10B740005B692C3340F2D2721A807B6803F5F07388 -:10B750005B692C3300229A747B6803F5F0735B6994 -:10B760002C330122DA747B6803F5F0735B692C33A8 -:10B7700000221A757B6803F5F0735B692C33012294 -:10B780005A757B6803F5F0735B692C3301229A7557 -:10B790007B6803F5F0735B692C3300229A617B6848 -:10B7A00003F5F0735B692C330022DA617B6803F5E3 -:10B7B000F0735B692C3300221A627B6803F5F07327 -:10B7C0005B692C3300225A627B6803F5F0735B6976 -:10B7D0002C3301221A857B6803F5F0735B692C33E7 -:10B7E00000225A857B6803F5F0735B6958339A1C15 -:10B7F0004D4B03CB106051601B7813727B6803F5CF -:10B80000F0735B69583340F2D3721A807B6803F59A -:10B81000F0735B69583300229A747B6803F5F07308 -:10B820005B6958330122DA747B6803F5F0735B6956 -:10B83000583300221A757B6803F5F0735B6958333F -:10B8400001225A757B6803F5F0735B695833012256 -:10B850009A757B6803F5F0735B69583300229A612F -:10B860007B6803F5F0735B6958330022DA617B680B -:10B8700003F5F0735B69583300221A627B6803F5A5 -:10B88000F0735B69583300225A627B6803F5F073EA -:10B890005B69583301221A857B6803F5F0735B6995 -:10B8A000583300225A857B6803F5F0735B69843353 -:10B8B0009A1C1E4B03CB106051607B6803F5F0733C -:10B8C0005B69843340F2D4721A807B6803F5F073AD -:10B8D0005B69843302229A747B6803F5F0735B69B9 -:10B8E00084330122DA747B6803F5F0735B69843377 -:10B8F00001221A757B6803F5F0735B6984330122BA -:10B900005A757B6803F5F0735B69843300229A757E -:10B910007B6803F5F0730BE0000080BFCDCCCCBD9D -:10B92000F8C5010804C6010810C601081CC60108B4 -:10B930005B6984334FF000029A617B6803F5F07312 -:10B940005B6984334FF00002DA617B6803F5F073C2 -:10B950005B6984334FF07E521A627B6803F5F073A3 -:10B960005B698433BC4A5A627B6803F5F0735B6998 -:10B97000843302221A857B6803F5F0735B69843394 -:10B9800001225A857B6803F5F0735B69B0339A1C1A -:10B99000B24B144607CB20606160A2601A889B7886 -:10B9A000A281A3737B6803F5F0735B69B03340F247 -:10B9B000D5721A807B6803F5F0735B69B03300229F -:10B9C0009A747B6803F5F0735B69B0330122DA7413 -:10B9D0007B6803F5F0735B69B03300221A757B68EE -:10B9E00003F5F0735B69B03301225A757B6803F588 -:10B9F000F0735B69B03301229A757B6803F5F073CD -:10BA00005B69B03300229A617B6803F5F0735B6970 -:10BA1000B0330022DA617B6803F5F0735B69B03301 -:10BA200000221A627B6803F5F0735B69B033002271 -:10BA30005A627B6803F5F0735B69B03301221A85A3 -:10BA40007B6803F5F0735B69B03300225A857B682D -:10BA500003F5F0735B69DC339A1C814B03CB1060F8 -:10BA600051601B7813727B6803F5F0735B69DC33FC -:10BA700040F2D6721A807B6803F5F0735B69DC33A1 -:10BA800000229A747B6803F5F0735B69DC33012252 -:10BA9000DA747B6803F5F0735B69DC3300221A7596 -:10BAA0007B6803F5F0735B69DC3301225A757B68B0 -:10BAB00003F5F0735B69DC3301229A757B6803F54B -:10BAC000F0735B69DC3300229A617B6803F5F073E5 -:10BAD0005B69DC330022DA617B6803F5F0735B6934 -:10BAE000DC3300221A627B6803F5F0735B69DC3398 -:10BAF00000225A627B6803F5F0735B69DC33012234 -:10BB00001A857B6803F5F0735B69DC3300225A8584 -:10BB10007B6803F5F0735B6903F584739A1C514BE2 -:10BB2000144607CB20606160A2601A889B78A281CE -:10BB3000A3737B6803F5F0735B6903F5847340F2CC -:10BB4000D7721A807B6803F5F0735B6903F5847321 -:10BB500000229A747B6803F5F0735B6903F58473C4 -:10BB60000122DA747B6803F5F0735B6903F5847373 -:10BB700000221A757B6803F5F0735B6903F5847323 -:10BB800001225A757B6803F5F0735B6903F58473D2 -:10BB900001229A757B6803F5F0735B6903F5847382 -:10BBA00000229A617B6803F5F0735B6903F5847387 -:10BBB0000022DA617B6803F5F0735B6903F5847337 -:10BBC00000221A627B6803F5F0735B6903F58473E6 -:10BBD00000225A627B6803F5F0735B6903F5847396 -:10BBE00001221A857B6803F5F0735B6903F58473A2 -:10BBF00000225A857B6803F5F0735B6903F59A733D -:10BC00009A1C194B144607CB20606160A2601B8808 -:10BC1000A3817B6803F5F0735B6903F59A734FF4B6 -:10BC2000FB621A807B6803F5F0735B6903F59A7316 -:10BC300000229A747B6803F5F0735B6903F59A73CD -:10BC40000122DA747B6803F5F0735B6903F59A737C -:10BC500000221A757B6809E00000C04024C6010874 -:10BC600034C6010840C6010850C6010803F5F07348 -:10BC70005B6903F59A7301225A757B6803F5F073CB -:10BC80005B6903F59A7301229A757B6803F5F0737B -:10BC90005B6903F59A7300229A617B6803F5F07380 -:10BCA0005B6903F59A730022DA617B6803F5F07330 -:10BCB0005B6903F59A7300221A627B6803F5F073DF -:10BCC0005B6903F59A7300225A627B6803F5F0738F -:10BCD0005B6903F59A7301221A857B6803F5F0739B -:10BCE0005B6903F59A7300225A857B6803F5F0734C -:10BCF0005B6903F5B0730233B94A10681860928823 -:10BD00009A807B6803F5F0735B6903F5B07340F2CA -:10BD1000D9721A807B6803F5F0735B6903F5B07321 -:10BD200000229A747B6803F5F0735B6903F5B073C6 -:10BD30000122DA747B6803F5F0735B6903F5B07375 -:10BD400000221A757B6803F5F0735B6903F5B07325 -:10BD500001225A757B6803F5F0735B6903F5B073D4 -:10BD600001229A757B6803F5F0735B6903F5B07384 -:10BD700000229A617B6803F5F0735B6903F5B07389 -:10BD80000022DA617B6803F5F0735B6903F5B07339 -:10BD900000221A627B6803F5F0735B6903F5B073E8 -:10BDA00000225A627B6803F5F0735B6903F5B07398 -:10BDB00001221A857B6803F5F0735B6903F5B073A4 -:10BDC00000225A857B6803F5FC735B699A1C854BDE -:10BDD000144607CB20606160A2601B7823737B68E8 -:10BDE00003F5FC735B6940F635021A807B6803F546 -:10BDF000FC735B6902229A747B6803F5FC735B69D0 -:10BE00000122DA747B6803F5FC735B6900221A7502 -:10BE10007B6803F5FC735B6900225A757B6803F548 -:10BE2000FC735B6901229A757B6803F5FC735B699F -:10BE30006D4A9A617B6803F5FC735B694FF0000201 -:10BE4000DA617B6803F5FC735B69674A1A627B6899 -:10BE500003F5FC735B69644A5A627B6803F5FC7303 -:10BE60005B6904221A857B6803F5FC735B69022217 -:10BE70005A857B6803F5FC735B692C339A1C5B4B1A -:10BE8000144607CB20606160A2601B7823737B6837 -:10BE900003F5FC735B692C3340F636021A807B682D -:10BEA00003F5FC735B692C3302229A747B6803F5FB -:10BEB000FC735B692C330122DA747B6803F5FC7335 -:10BEC0005B692C3300221A757B6803F5FC735B6990 -:10BED0002C3300225A757B6803F5FC735B692C33A5 -:10BEE00001229A757B6803F5FC735B692C33404A29 -:10BEF0009A617B6803F5FC735B692C333C4ADA6119 -:10BF00007B6803F5FC735B692C33394A1A627B68E2 -:10BF100003F5FC735B692C334FF000025A627B68B7 -:10BF200003F5FC735B692C3304221A857B6803F5E7 -:10BF3000FC735B692C3302225A857B6803F5FC7322 -:10BF40005B6958339A1C2B4B03CB106051601B78F4 -:10BF500013727B6803F5FC735B69583340F6370254 -:10BF60001A807B6803F5FC735B69583300229A746E -:10BF70007B6803F5FC735B6958330122DA747B68D4 -:10BF800003F5FC735B69583300221A757B6803F56F -:10BF9000FC735B69583300225A757B6803F5FC73A8 -:10BFA0005B69583301229A757B6803F5FC735B6902 -:10BFB000583300229A617B6803F5FC735B69583340 -:10BFC0000022DA617B6803F5FC735B695833002259 -:10BFD0001A627B6803F5FC735B6958330CE000BFA1 -:10BFE00060C6010868C601087183C54578C60108A6 -:10BFF0007183C5C588C6010800225A627B6803F5B3 -:10C00000FC735B69583301221A857B6803F5FC7366 -:10C010005B69583300225A857B6803F5FC735B69C2 -:10C0200084339A1CBC4B03CB106051601B78137295 -:10C030007B6803F5FC735B69843340F638021A8031 -:10C040007B6803F5FC735B69843300229A747B6818 -:10C0500003F5FC735B6984330122DA747B6803F5B2 -:10C06000FC735B69843300221A757B6803F5FC73EB -:10C070005B69843300225A757B6803F5FC735B6946 -:10C08000843301229A757B6803F5FC735B69843302 -:10C0900000229A617B6803F5FC735B69843300229C -:10C0A000DA617B6803F5FC735B69843300221A62F2 -:10C0B0007B6803F5FC735B69843300225A627B68FA -:10C0C00003F5FC735B69843301221A857B6803F5F1 -:10C0D000FC735B69843300225A857B6803F5FC732B -:10C0E0005B69B03302338D4A106818609188927989 -:10C0F00099809A717B6803F5FC735B69B03340F6F5 -:10C1000039021A807B6803F5FC735B69B033002247 -:10C110009A747B6803F5FC735B69B0330122DA74AF -:10C120007B6803F5FC735B69B03300221A757B688A -:10C1300003F5FC735B69B03300225A757B6803F525 -:10C14000FC735B69B03301229A757B6803F5FC735D -:10C150005B69B03300229A617B6803F5FC735B690D -:10C16000B0330022DA617B6803F5FC735B69B0339E -:10C1700000221A627B6803F5FC735B69B03300220E -:10C180005A627B6803F5FC735B69B03301221A8540 -:10C190007B6803F5FC735B69B03300225A857B68CA -:10C1A00003F5FC735B69DC339A1C5D4B144607CBCB -:10C1B00020606160A2601B7823737B6803F5FC73C9 -:10C1C0005B69DC3340F63A021A807B6803F5FC7346 -:10C1D0005B69DC3300229A747B6803F5FC735B694E -:10C1E000DC330122DA747B6803F5FC735B69DC33B2 -:10C1F00000221A757B6803F5FC735B69DC3300224F -:10C200005A757B6803F5FC735B69DC3301229A7510 -:10C210007B6803F5FC735B69DC3300229A617B6801 -:10C2200003F5FC735B69DC330022DA617B6803F59C -:10C23000FC735B69DC3300221A627B6803F5FC73D4 -:10C240005B69DC3300225A627B6803F5FC735B692F -:10C25000DC3301221A857B6803F5FC735B69DC33F0 -:10C2600000225A857B6803F5FC735B6903F58473D0 -:10C270009A1C2C4B03CB106051607B6803F5FC7358 -:10C280005B6903F5847340F63B021A807B6803F513 -:10C29000FC735B6903F5847300229A747B6803F571 -:10C2A000FC735B6903F584730122DA747B6803F520 -:10C2B000FC735B6903F5847300221A757B6803F5D0 -:10C2C000FC735B6903F5847300225A757B6803F580 -:10C2D000FC735B6903F5847301229A757B6803F52F -:10C2E000FC735B6903F5847300229A617B6803F534 -:10C2F000FC735B6903F584730022DA617B6803F5E4 -:10C30000FC735B6903F5847300221A627B6803F592 -:10C31000FC735B6908E000BF94C60108A0C6010871 -:10C32000A8C60108B8C6010803F5847300225A6242 -:10C330007B6803F5FC735B6903F5847301221A853E -:10C340007B6803F5FC735B6903F5847300225A85EF -:10C350007B6803F5FC735B6903F59A739A1CC24B07 -:10C3600003CB1060516019889B78118193727B68B0 -:10C3700003F5FC735B6903F59A7340F63C021A807F -:10C380007B6803F5FC735B6903F59A7300229A746A -:10C390007B6803F5FC735B6903F59A730122DA7419 -:10C3A0007B6803F5FC735B6903F59A7300221A75C9 -:10C3B0007B6803F5FC735B6903F59A7300225A7579 -:10C3C0007B6803F5FC735B6903F59A7301229A7528 -:10C3D0007B6803F5FC735B6903F59A7300229A612D -:10C3E0007B6803F5FC735B6903F59A730022DA61DD -:10C3F0007B6803F5FC735B6903F59A7300221A628C -:10C400007B6803F5FC735B6903F59A7300225A623B -:10C410007B6803F5FC735B6903F59A7301221A8547 -:10C420007B6803F5FC735B6903F59A7300225A85F8 -:10C430007B6803F5FC735B6903F5B0739A1C8B4B47 -:10C4400003CB106051601B8813817B6803F5FC737C -:10C450005B6903F5B07340F63D021A807B6803F513 -:10C46000FC735B6903F5B07300229A747B6803F573 -:10C47000FC735B6903F5B0730122DA747B6803F522 -:10C48000FC735B6903F5B07300221A757B6803F5D2 -:10C49000FC735B6903F5B07300225A757B6803F582 -:10C4A000FC735B6903F5B07301229A757B6803F531 -:10C4B000FC735B6903F5B07300229A617B6803F536 -:10C4C000FC735B6903F5B0730022DA617B6803F5E6 -:10C4D000FC735B6903F5B07300221A627B6803F595 -:10C4E000FC735B6903F5B07300225A627B6803F545 -:10C4F000FC735B6903F5B07301221A857B6803F551 -:10C50000FC735B6903F5B07300225A857B6803F501 -:10C51000FC735B6903F5C6730233554A10681860F3 -:10C520009188927999809A717B6803F5FC735B69B5 -:10C5300003F5C67340F63E021A807B6803F5FC7370 -:10C540005B6903F5C67300229A747B6803F5FC737C -:10C550005B6903F5C6730122DA747B6803F5FC732B -:10C560005B6903F5C67300221A757B6803F5FC73DB -:10C570005B6903F5C67300225A757B6803F5FC738B -:10C580005B6903F5C67301229A757B6803F5FC733A -:10C590005B6903F5C67300229A617B6803F5FC733F -:10C5A0005B6903F5C6730022DA617B6803F5FC73EF -:10C5B0005B6903F5C67300221A627B6803F5FC739E -:10C5C0005B6903F5C67300225A627B6803F5FC734E -:10C5D0005B6903F5C67301221A857B6803F5FC735A -:10C5E0005B6903F5C67300225A857B6803F5FC730B -:10C5F0005B6903F5DC739A1C1E4B144607CB206065 -:10C600006160A2607B6803F5FC735B6903F5DC7312 -:10C6100040F63F021A807B6803F5FC735B6903F503 -:10C62000DC7300229A747B6803F5FC735B6903F585 -:10C63000DC730122DA747B6803F5FC735B6903F534 -:10C64000DC7300221A757B6803F5FC735B6903F5E4 -:10C65000DC7300225A757B6803F5FC735B6903F594 -:10C66000DC7301229A7507E0C0C60108CCC6010838 -:10C67000D8C60108E0C601087B6803F5FC735B6956 -:10C6800003F5DC7300229A617B6803F5FC735B6938 -:10C6900003F5DC730022DA617B6803F5FC735B69E8 -:10C6A00003F5DC7300221A627B6803F5FC735B6997 -:10C6B00003F5DC7300225A627B6803F5FC735B6947 -:10C6C00003F5DC7301221A857B6803F5FC735B6953 -:10C6D00003F5DC7300225A857B6803F5FC735B6904 -:10C6E00003F5F2739A1CC14B144607CB20606160BE -:10C6F000A2607B6803F5FC735B6903F5F2734FF48A -:10C7000004621A807B6803F5FC735B6903F5F273BE -:10C7100000229A747B6803F5FC735B6903F5F2737E -:10C720000122DA747B6803F5FC735B6903F5F2732D -:10C7300000221A757B6803F5FC735B6903F5F273DD -:10C7400000225A757B6803F5FC735B6903F5F2738D -:10C7500001229A757B6803F5FC735B6903F5F2733C -:10C7600000229A617B6803F5FC735B6903F5F27341 -:10C770000022DA617B6803F5FC735B6903F5F273F1 -:10C7800000221A627B6803F5FC735B6903F5F273A0 -:10C7900000225A627B6803F5FC735B6903F5F27350 -:10C7A00001221A857B6803F5FC735B6903F5F2735C -:10C7B00000225A857B6803F5FC735B6903F50473FB -:10C7C0009A1C8B4B03CB1060516019889B781181A8 -:10C7D00093727B6803F5FC735B6903F5047340F6A1 -:10C7E00041021A807B6803F5FC735B6903F50473EF -:10C7F00000229A747B6803F5FC735B6903F504738C -:10C800000122DA747B6803F5FC735B6903F504733A -:10C8100000221A757B6803F5FC735B6903F50473EA -:10C8200000225A757B6803F5FC735B6903F504739A -:10C8300001229A757B6803F5FC735B6903F5047349 -:10C8400000229A617B6803F5FC735B6903F504734E -:10C850000022DA617B6803F5FC735B6903F50473FE -:10C8600000221A627B6803F5FC735B6903F50473AD -:10C8700000225A627B6803F5FC735B6903F504735D -:10C8800001221A857B6803F5FC735B6903F5047369 -:10C8900000225A857B6803F5FC735B6903F50F730F -:10C8A0009A1C544B144607CB20606160A2601B8821 -:10C8B000A3817B6803F5FC735B6903F50F7340F696 -:10C8C00042021A807B6803F5FC735B6903F50F7302 -:10C8D00000229A747B6803F5FC735B6903F50F73A0 -:10C8E0000122DA747B6803F5FC735B6903F50F734F -:10C8F00000221A757B6803F5FC735B6903F50F73FF -:10C9000000225A757B6803F5FC735B6903F50F73AE -:10C9100001229A757B6803F5FC735B6903F50F735D -:10C9200000229A617B6803F5FC735B6903F50F7362 -:10C930000022DA617B6803F5FC735B6903F50F7312 -:10C9400000221A627B6803F5FC735B6903F50F73C1 -:10C9500000225A627B6803F5FC735B6903F50F7371 -:10C9600001221A857B6803F5FC735B6903F50F737D -:10C9700000225A857B6803F5FC735B6903F51A7323 -:10C980009A1C1D4B144607CB20606160A2607B6837 -:10C9900003F5FC735B6903F51A7340F643021A80D2 -:10C9A0007B6803F5FC735B6903F51A7300229A74C4 -:10C9B0007B6803F5FC735B6903F51A730122DA7473 -:10C9C0007B6803F5FC735B6903F51A7300221A7523 -:10C9D0007B6803F5FC735B6903F51A7300225A75D3 -:10C9E0007B6803F5FC735B6908E000BFECC60108D7 -:10C9F000F8C6010804C7010814C7010803F51A7333 -:10CA000001229A757B6803F5FC735B6903F51A7361 -:10CA100000229A617B6803F5FC735B6903F51A7366 -:10CA20000022DA617B6803F5FC735B6903F51A7316 -:10CA300000221A627B6803F5FC735B6903F51A73C5 -:10CA400000225A627B6803F5FC735B6903F51A7375 -:10CA500001221A857B6803F5FC735B6903F51A7381 -:10CA600000225A857B6803F5FC735B6903F5257327 -:10CA70009A1CC14B03CB1060516019889B781181BF -:10CA800093727B6803F5FC735B6903F5257340F6CD -:10CA900044021A807B6803F5FC735B6903F5257318 -:10CAA00000229A747B6803F5FC735B6903F52573B8 -:10CAB0000122DA747B6803F5FC735B6903F5257367 -:10CAC00000221A757B6803F5FC735B6903F5257317 -:10CAD00000225A757B6803F5FC735B6903F52573C7 -:10CAE00001229A757B6803F5FC735B6903F5257376 -:10CAF00000229A617B6803F5FC735B6903F525737B -:10CB00000022DA617B6803F5FC735B6903F525732A -:10CB100000221A627B6803F5FC735B6903F52573D9 -:10CB200000225A627B6803F5FC735B6903F5257389 -:10CB300001221A857B6803F5FC735B6903F5257395 -:10CB400000225A857B6803F5FC735B6903F530733B -:10CB50009A1C8A4B15461C460FCC28606960AA6057 -:10CB6000EB6023782B747B6803F5FC735B6903F53A -:10CB7000307340F645021A807B6803F5FC735B69ED -:10CB800003F5307300229A747B6803F5FC735B69CC -:10CB900003F530730122DA747B6803F5FC735B697B -:10CBA00003F5307300221A757B6803F5FC735B692B -:10CBB00003F5307300225A757B6803F5FC735B69DB -:10CBC00003F5307301229A757B6803F5FC735B698A -:10CBD00003F5307300229A617B6803F5FC735B698F -:10CBE00003F530730022DA617B6803F5FC735B693F -:10CBF00003F5307300221A627B6803F5FC735B69EE -:10CC000003F5307300225A627B6803F5FC735B699D -:10CC100003F5307301221A857B6803F5FC735B69A9 -:10CC200003F5307300225A857B6803F5FC735B695A -:10CC300003F53B739A1C524B14461D460FCD2060E2 -:10CC40006160A260E3607B6803F5FC735B6903F5D8 -:10CC50003B7340F646021A807B6803F5FC735B6900 -:10CC600003F53B7300229A747B6803F5FC735B69E0 -:10CC700003F53B730122DA747B6803F5FC735B698F -:10CC800003F53B7300221A757B6803F5FC735B693F -:10CC900003F53B7300225A757B6803F5FC735B69EF -:10CCA00003F53B7301229A757B6803F5FC735B699E -:10CCB00003F53B7300229A617B6803F5FC735B69A3 -:10CCC00003F53B730022DA617B6803F5FC735B6953 -:10CCD00003F53B7300221A627B6803F5FC735B6902 -:10CCE00003F53B7300225A627B6803F5FC735B69B2 -:10CCF00003F53B7301221A857B6803F5FC735B69BE -:10CD000003F53B7300225A857B6803F5FC735B696E -:10CD100003F546739A1C1B4B03CB106051601988B6 -:10CD20009B78118193727B6803F5FC735B6903F553 -:10CD3000467340F647021A807B6803F5FC735B6913 -:10CD400003F5467300229A747B6803F5FC735B69F4 -:10CD500003F546730122DA747B6803F5FC735B69A3 -:10CD600003F5467300221A757B6803F5FC735B6953 -:10CD700003F54673002207E020C701082CC701080D -:10CD800040C7010850C701085A757B6803F5FC735A -:10CD90005B6903F5467301229A757B6803F5FC73A2 -:10CDA0005B6903F5467300229A617B6803F5FC73A7 -:10CDB0005B6903F546730022DA617B6803F5FC7357 -:10CDC0005B6903F5467300221A627B6803F5FC7306 -:10CDD0005B6903F5467300225A627B6803F5FC73B6 -:10CDE0005B6903F5467301221A857B6803F5FC73C2 -:10CDF0005B6903F5467300225A857B6803F5FC7373 -:10CE00005B6903F551739A1CC04B03CB10605160F2 -:10CE10001B7813727B6803F5FC735B6903F5517330 -:10CE200040F648021A807B6803F5FC735B6903F5E2 -:10CE3000517301229A747B6803F5FC735B6903F5F7 -:10CE400051730122DA747B6803F5FC735B6903F5A7 -:10CE5000517301221A757B6803F5FC735B6903F556 -:10CE6000517301225A757B6803F5FC735B6903F506 -:10CE7000517300229A757B6803F5FC735B6903F5B7 -:10CE8000517319229A617B6803F5FC735B6903F5A2 -:10CE900051730A22DA617B6803F5FC735B6903F561 -:10CEA000517319221A627B6803F5FC735B6903F501 -:10CEB000517363225A627B6803F5FC735B6903F567 -:10CEC000517302221A857B6803F5FC735B6903F5D5 -:10CED000517300225A857B6803F5FC735B6903F587 -:10CEE0005C739A1C8A4B03CB106051601B781372E1 -:10CEF0007B6803F5FC735B6903F55C7340F64902DC -:10CF00001A807B6803F5FC735B6903F55C7301228F -:10CF10009A747B6803F5FC735B6903F55C7301220B -:10CF2000DA747B6803F5FC735B6903F55C730122BB -:10CF30001A757B6803F5FC735B6903F55C7301226A -:10CF40005A757B6803F5FC735B6903F55C7300221B -:10CF50009A757B6803F5FC735B6903F55C732822A3 -:10CF60009A617B6803F5FC735B6903F55C730A22C5 -:10CF7000DA617B6803F5FC735B6903F55C73282257 -:10CF80001A627B6803F5FC735B6903F55C736322CB -:10CF90005A627B6803F5FC735B6903F55C730222DC -:10CFA0001A857B6803F5FC735B6903F55C730022EB -:10CFB0005A857B6803F5FC735B6903F567739A1CFC -:10CFC000544B03CB1060516019889B781181937288 -:10CFD0007B6803F5FC735B6903F5677340F64A02EF -:10CFE0001A807B6803F5FC735B6903F567730222A3 -:10CFF0009A747B6803F5FC735B6903F56773012220 -:10D00000DA747B6803F5FC735B6903F567730122CF -:10D010001A757B6803F5FC735B6903F5677301227E -:10D020005A757B6803F5FC735B6903F5677300222F -:10D030009A757B6803F5FC735B6903F56773364A81 -:10D040009A617B6803F5FC735B6903F567734FF0C6 -:10D050000002DA617B6803F5FC735B6903F56773B3 -:10D060002D4A1A627B6803F5FC735B6903F56773ED -:10D070002A4A5A627B6803F5FC735B6903F56773A0 -:10D0800001221A857B6803F5FC735B6903F56773FE -:10D0900003225A857B6803F5FC735B6903F57273A1 -:10D0A0009A1C1F4B03CB1060516019889B7811812B -:10D0B00093727B6803F5FC735B6903F5727340F64A -:10D0C0004B021A807B6803F5FC735B6903F572738E -:10D0D00001229A747B6803F5FC735B6903F5727334 -:10D0E0000122DA747B6803F5FC735B6903F57273E4 -:10D0F00001221A757B6803F5FC735B6903F5727393 -:10D1000001225A757B6803F5FC730BE05CC70108CC -:10D1100068C7010874C701085839B43D00001041C0 -:10D1200080C701085B6903F5727300229A757B68FA -:10D1300003F5FC735B6903F5727300229A617B68E7 -:10D1400003F5FC735B6903F572730022DA617B6897 -:10D1500003F5FC735B6903F5727300221A627B6846 -:10D1600003F5FC735B6903F5727301225A627B68F5 -:10D1700003F5FC735B6903F5727301221A857B6802 -:10D1800003F5FC735B6903F5727303225A857B68B0 -:10D1900003F5FC735B6903F57D739A1CB94B144668 -:10D1A00007CB20606160A2607B6803F5FC735B695C -:10D1B00003F57D7340F64C021A807B6803F5FC731F -:10D1C0005B6903F57D7301229A747B6803F5FC7338 -:10D1D0005B6903F57D730122DA747B6803F5FC73E8 -:10D1E0005B6903F57D7301221A757B6803F5FC7397 -:10D1F0005B6903F57D7301225A757B6803F5FC7347 -:10D200005B6903F57D7300229A757B6803F5FC73F7 -:10D210005B6903F57D7300229A617B6803F5FC73FB -:10D220005B6903F57D730022DA617B6803F5FC73AB -:10D230005B6903F57D7300221A627B6803F5FC735A -:10D240005B6903F57D7301225A627B6803F5FC7309 -:10D250005B6903F57D7301221A857B6803F5FC7316 -:10D260005B6903F57D7303225A857B6803F50473BC -:10D270005B699A1C844B03CB106051601B8813813F -:10D280007B6803F504735B6940F699021A807B683A -:10D2900003F504735B6900229A747B6803F50473D9 -:10D2A0005B690122DA747B6803F504735B69002211 -:10D2B0001A757B6803F504735B6901225A757B68F4 -:10D2C00003F504735B6901229A757B6803F50473A7 -:10D2D0005B6900229A617B6803F504735B69002235 -:10D2E000DA617B6803F504735B6900221A627B686C -:10D2F00003F504735B6900225A627B6803F50473CB -:10D300005B6901221A857B6803F504735B6900225F -:10D310005A857B6803F504735B692C339A1C5B4B5D -:10D32000144607CB20606160A2607B6803F504733C -:10D330005B692C3340F69A021A807B6803F504730C -:10D340005B692C3300229A747B6803F504735B6974 -:10D350002C330122DA747B6803F504735B692C3388 -:10D3600000221A757B6803F504735B692C33012274 -:10D370005A757B6803F504735B692C3301229A7537 -:10D380007B6803F504735B692C3300229A617B6828 -:10D3900003F504735B692C330022DA617B6803F5C3 -:10D3A00004735B692C3300221A627B6803F50473F3 -:10D3B0005B692C3300225A627B6803F504735B6956 -:10D3C0002C3301221A857B6803F504735B692C33C7 -:10D3D00000225A857B6803F504735B6958339A1CF5 -:10D3E0002B4B144607CB20606160A2607B6803F57D -:10D3F00004735B69583340F69B021A807B6803F51F -:10D4000004735B69583300229A747B6803F50473D4 -:10D410005B6958330122DA747B6803F504735B6936 -:10D42000583300221A757B6803F504735B6958331F -:10D4300001225A757B6803F504735B695833012236 -:10D440009A757B6803F504735B69583300229A610F -:10D450007B6803F504735B6958330022DA617B68EB -:10D4600003F504735B69583300221A627B6803F585 -:10D4700004735B69583300225A627B6803F50473B6 -:10D480005B6907E08CC7010898C70108A4C70108B9 -:10D49000B0C70108583301221A857B6803F504736D -:10D4A0005B69583300225A857B6803F504735B6916 -:10D4B00084339A1CB84B144607CB20606160A2608D -:10D4C0007B6803F504735B69843340F69C021A8021 -:10D4D0007B6803F504735B69843300229A747B686C -:10D4E00003F504735B6984330122DA747B6803F506 -:10D4F00004735B69843300221A757B6803F5047337 -:10D500005B69843301225A757B6803F504735B6998 -:10D51000843301229A757B6803F504735B69843355 -:10D5200000229A617B6803F504735B6984330022EF -:10D53000DA617B6803F504735B69843300221A6245 -:10D540007B6803F504735B69843300225A627B684D -:10D5500003F504735B69843301221A857B6803F544 -:10D5600004735B69843300225A857B6803F50A7370 -:10D570005B699A1C894B03CB106051607B6803F593 -:10D580000A735B6940F6FD021A807B6803F50A7333 -:10D590005B6900229A747B6803F50A735B69012258 -:10D5A000DA747B6803F50A735B6900221A757B687D -:10D5B00003F50A735B6901225A757B6803F50A73E8 -:10D5C0005B6901229A757B6803F50A735B69002227 -:10D5D0009A617B6803F50A735B690022DA617B68F4 -:10D5E00003F50A735B6900221A627B6803F50A730C -:10D5F0005B6900225A627B6803F50A735B6901224A -:10D600001A857B6803F50A735B6900225A857B687B -:10D6100003F50A735B692C339A1C614B03CB1060D2 -:10D62000516019889B78118193727B6803F50A73A6 -:10D630005B692C3340F6FE021A807B6803F50A739F -:10D640005B692C3300229A747B6803F50A735B696B -:10D650002C330122DA747B6803F50A735B692C337F -:10D6600000221A757B6803F50A735B692C3301226B -:10D670005A757B6803F50A735B692C3301229A752E -:10D680007B6803F50A735B692C3300229A617B681F -:10D6900003F50A735B692C330022DA617B6803F5BA -:10D6A0000A735B692C3300221A627B6803F50A73E4 -:10D6B0005B692C3300225A627B6803F50A735B694D -:10D6C0002C3301221A857B6803F50A735B692C33BE -:10D6D00000225A857B6803F50A735B6958339A1CEC -:10D6E000304B144607CB20606160A2601A889B789B -:10D6F000A281A3737B6803F50A735B69583340F614 -:10D70000FF021A807B6803F50A735B6958330022B5 -:10D710009A747B6803F50A735B6958330122DA74E3 -:10D720007B6803F50A735B69583300221A757B68BE -:10D7300003F50A735B69583301225A757B6803F558 -:10D740000A735B69583301229A757B6803F50A7383 -:10D750005B69583300229A617B6803F50A735B6941 -:10D7600058330022DA617B6803F50A735B6958332A -:10D7700000221A627B6803F50A735B695833002242 -:10D780005A627B6803F50A735B69583301221A8574 -:10D790007B6803F50A7307E0BCC70108C8C7010826 -:10D7A000D0C70108DCC701085B69583300225A85DD -:10D7B0007B6803F50A735B6984339A1CB84B144683 -:10D7C00007CB20606160A2601B7823737B6803F540 -:10D7D0000A735B6984334FF410621A807B6803F527 -:10D7E0000A735B69843300229A747B6803F50A73B9 -:10D7F0005B6984330122DA747B6803F50A735B6921 -:10D80000843300221A757B6803F50A735B698433DD -:10D8100001225A757B6803F50A735B698433012220 -:10D820009A757B6803F50A735B69843300229A61F9 -:10D830007B6803F50A735B6984330022DA617B68D5 -:10D8400003F50A735B69843300221A627B6803F56F -:10D850000A735B69843300225A627B6803F50A739A -:10D860005B69843301221A857B6803F50A735B695F -:10D87000843300225A857B6803F50A735B69B033F1 -:10D880009A1C884B03CB1060516019889B781181DA -:10D8900093727B6803F50A735B69B03340F601123B -:10D8A0001A807B6803F50A735B69B03300229A74AF -:10D8B0007B6803F50A735B69B0330122DA747B6815 -:10D8C00003F50A735B69B03300221A757B6803F5B0 -:10D8D0000A735B69B03301225A757B6803F50A73DA -:10D8E0005B69B03301229A757B6803F50A735B6943 -:10D8F000B03300229A617B6803F50A735B69B03329 -:10D900000022DA617B6803F50A735B69B033002299 -:10D910001A627B6803F50A735B69B03300225A62AE -:10D920007B6803F50A735B69B03301221A857B6853 -:10D9300003F50A735B69B03300225A857B6803F5EF -:10D940000A735B69DC339A1C574B144607CB206083 -:10D950006160A2607B6803F50A735B69DC3340F6A3 -:10D9600002121A807B6803F50A735B69DC330022BC -:10D970009A747B6803F50A735B69DC330122DA74FD -:10D980007B6803F50A735B69DC3300221A757B68D8 -:10D9900003F50A735B69DC3301225A757B6803F572 -:10D9A0000A735B69DC3301229A757B6803F50A739D -:10D9B0005B69DC3300229A617B6803F50A735B695B -:10D9C000DC330022DA617B6803F50A735B69DC33C0 -:10D9D00000221A627B6803F50A735B69DC3300225C -:10D9E0005A627B6803F50A735B69DC3301221A858E -:10D9F0007B6803F50A735B69DC3300225A857B6818 -:10DA000003F510735B699A1C284B144607CB206002 -:10DA10006160A2607B6803F510735B6940F6611278 -:10DA20001A807B6803F510735B6900229A747B6827 -:10DA300003F510735B690122DA747B6803F51073D8 -:10DA40005B6901221A757B6803F510735B6901221B -:10DA50005A757B6803F510735B6900229A757B68C1 -:10DA600003F510735B6906229A617B6803F51073F6 -:10DA70005B690222DA617B6803F510735B69062239 -:10DA80001A627B6803F510735B697C225A627B68BB -:10DA900003F510735B6903221A857B6808E000BFF9 -:10DAA000ECC70108FCC7010808C8010814C8010830 -:10DAB00003F510735B6900225A857B6803F51073C8 -:10DAC0005B692C339A1CB94B144607CB206061600C -:10DAD000A2601B7823737B6803F510735B692C339A -:10DAE00040F662121A807B6803F510735B692C3371 -:10DAF00002229A747B6803F510735B692C33012250 -:10DB0000DA747B6803F510735B692C3301221A7594 -:10DB10007B6803F510735B692C3300225A757B68B0 -:10DB200003F510735B692C3300229A757B6803F54B -:10DB300010735B692C339E4A9A617B6803F51073FE -:10DB40005B692C334FF00002DA617B6803F51073D8 -:10DB50005B692C33964A1A627B6803F510735B6924 -:10DB60002C33944A5A627B6803F510735B692C333B -:10DB700002221A857B6803F510735B692C3302223D -:10DB80005A857B6803F510735B6958339A1C8A4B7E -:10DB900003CB1060516019889B78118193727B6868 -:10DBA00003F510735B69583340F663121A807B6883 -:10DBB00003F510735B69583300229A747B6803F590 -:10DBC00010735B6958330122DA747B6803F51073B4 -:10DBD0005B69583300221A757B6803F510735B6923 -:10DBE000583300225A757B6803F510735B6958330C -:10DBF00000229A757B6803F510735B695833102215 -:10DC00009A617B6803F510735B6958336FF06302A8 -:10DC1000DA617B6803F510735B69583310221A626E -:10DC20007B6803F510735B695833C8225A627B68BE -:10DC300003F510735B69583303221A857B6803F57B -:10DC400010735B69583300225A857B6803F516739D -:10DC50005B699A1C594B144607CB20606160A26037 -:10DC60007B6803F516735B6940F6C5121A807B6802 -:10DC700003F516735B6901229A747B6803F51673CA -:10DC80005B690122DA747B6803F516735B69012214 -:10DC90001A757B6803F516735B6901225A757B68F8 -:10DCA00003F516735B6901229A757B6803F5167399 -:10DCB0005B6940F6A9629A617B6803F516735B693C -:10DCC00040F6A862DA617B6803F516735B6940F67B -:10DCD000A9621A627B6803F516735B6940F6AA6253 -:10DCE0005A627B6803F516735B6904221A857B68A8 -:10DCF00003F516735B6900225A857B6803F516737A -:10DD00005B692C339A1C2E4B144607CB2060616054 -:10DD1000A2607B6803F516735B692C3340F6C6126C -:10DD20001A807B6803F516735B692C3301229A74A1 -:10DD30007B6803F516735B692C330122DA747B6808 -:10DD400003F516735B692C3301221A757B6803F5A2 -:10DD500016735B692C3301225A757B6803F51673C1 -:10DD60005B692C3301229A757B6803F516735B6936 -:10DD70002C334FF4AB729A617B6803F516735B69C1 -:10DD80002C3340F25512DA617B6803F516735B6938 -:10DD90002C334FF4AB721A627B6803F516735B6920 -:10DDA0002C3340F257125A620CE000BF20C8010821 -:10DDB0005C8F823F0000204130C801083CC8010848 -:10DDC00048C801087B6803F516735B692C3303228E -:10DDD0001A857B6803F516735B692C3300225A851C -:10DDE0007B6803F516735B6958339A1CB84B14466D -:10DDF00007CB20606160A2607B6803F516735B69E6 -:10DE0000583340F6C7121A807B6803F516735B69B6 -:10DE1000583301229A747B6803F516735B69583393 -:10DE20000122DA747B6803F516735B6958330122AB -:10DE30001A757B6803F516735B69583301225A75AE -:10DE40007B6803F516735B69583301229A757B680A -:10DE500003F516735B69583340F6A9629A617B68D3 -:10DE600003F516735B69583340F6A862DA617B6884 -:10DE700003F516735B69583340F6A9621A627B6832 -:10DE800003F516735B69583340F6AA625A627B68E1 -:10DE900003F516735B69583304221A857B6803F512 -:10DEA00016735B69583300225A857B6803F5167335 -:10DEB0005B6984339A1C874B144607CB20606160F2 -:10DEC000A2607B6803F516735B69843340F6C81261 -:10DED0001A807B6803F516735B69843301229A7498 -:10DEE0007B6803F516735B6984330122DA747B68FF -:10DEF00003F516735B69843301221A757B6803F599 -:10DF000016735B69843301225A757B6803F51673B7 -:10DF10005B69843301229A757B6803F516735B692C -:10DF200084334FF4AB729A617B6803F516735B69B7 -:10DF300084330022DA617B6803F516735B698433EE -:10DF40004FF4AB721A627B6803F516735B69843316 -:10DF500040F257125A627B6803F516735B6984338B -:10DF600003221A857B6803F516735B6984330022EC -:10DF70005A857B6803F516735B69B0339A1C564B60 -:10DF8000144607CB20606160A2607B6803F51673BE -:10DF90005B69B03340F6C9121A807B6803F51673CB -:10DFA0005B69B03302229A747B6803F516735B6970 -:10DFB000B0330122DA747B6803F516735B69B03302 -:10DFC00001221A757B6803F516735B69B033012271 -:10DFD0005A757B6803F516735B69B03301229A7535 -:10DFE0007B6803F516735B69B0333C4A9A617B68C2 -:10DFF00003F516735B69B033394ADA617B6803F560 -:10E0000016735B69B033354A1A627B6803F5167381 -:10E010005B69B033334A5A627B6803F516735B69F8 -:10E02000B03301221A857B6803F516735B69B03340 -:10E0300002225A857B6803F51C735B699A1C2A4B84 -:10E0400015461C460FCC28606960AA60EB602288E8 -:10E05000A3782A82AB747B6803F51C735B6940F676 -:10E0600029221A807B6803F51C735B6901229A746C -:10E070007B6803F51C735B690122DA747B6803F526 -:10E080001C735B6901221A757B6803F51C735B695D -:10E0900001225A757B6803F51C735B6901229A752E -:10E0A0007B6803F51C735B6940F655529A617B6887 -:10E0B00003F51C735B6940F65452DA617B6803F523 -:10E0C0001C735B6940F655521A627B680EE000BF14 -:10E0D00054C8010860C801086CC80108CDCC4C3E8A -:10E0E0005C8F423E3D0A573E78C8010803F51C7319 -:10E0F0005B6940F656525A627B6803F51C735B6994 -:10E1000004221A857B6803F51C735B6900225A851B -:10E110007B6803F51C735B692C339A1CBC4B15465A -:10E120001C460FCC28606960AA60EB602288A37847 -:10E130002A82AB747B6803F51C735B692C3340F651 -:10E140002A221A807B6803F51C735B692C33012239 -:10E150009A747B6803F51C735B692C330122DA74B3 -:10E160007B6803F51C735B692C3301221A757B688D -:10E1700003F51C735B692C3301225A757B6803F528 -:10E180001C735B692C3301229A757B6803F51C7341 -:10E190005B692C3332229A617B6803F51C735B69DF -:10E1A0002C333122DA617B6803F51C735B692C33F5 -:10E1B00032221A627B6803F51C735B692C333322AD -:10E1C0005A627B6803F51C735B692C3302221A8543 -:10E1D0007B6803F51C735B692C3300225A857B68CE -:10E1E00003F51C735B6958339A1C8A4B15461C4611 -:10E1F0000FCC28606960AA60EB602288A3782A822D -:10E20000AB747B6803F51C735B69583340F62B22B3 -:10E210001A807B6803F51C735B69583301229A747A -:10E220007B6803F51C735B6958330122DA747B68E1 -:10E2300003F51C735B69583301221A757B6803F57B -:10E240001C735B69583301225A757B6803F51C7394 -:10E250005B69583301229A757B6803F51C735B690F -:10E26000583340F655529A617B6803F51C735B691D -:10E27000583340F65452DA617B6803F51C735B69CE -:10E28000583340F655521A627B6803F51C735B697C -:10E29000583340F656525A627B6803F51C735B692B -:10E2A000583304221A857B6803F51C735B69583365 -:10E2B00000225A857B6803F51C735B6984339A1CC2 -:10E2C000554B15461C460FCC28606960AA60EB6070 -:10E2D0002288A3782A82AB747B6803F51C735B6980 -:10E2E000843340F62C221A807B6803F51C735B692B -:10E2F000843301229A747B6803F51C735B69843351 -:10E300000122DA747B6803F51C735B698433012294 -:10E310001A757B6803F51C735B69843301225A7597 -:10E320007B6803F51C735B69843301229A757B68F3 -:10E3300003F51C735B69843332229A617B6803F5B1 -:10E340001C735B6984333122DA617B6803F51C73CB -:10E350005B69843332221A627B6803F51C735B6944 -:10E36000843333225A627B6803F51C735B69843300 -:10E3700002221A857B6803F51C735B6984330022D3 -:10E380005A857B6803F51C735B69B0339A1C234B79 -:10E3900015461C460FCC28606960AA60EB60228895 -:10E3A000A3782A82AB747B6803F51C735B69B03376 -:10E3B00040F62D221A807B6803F51C735B69B0332D -:10E3C00001229A747B6803F51C735B69B0330122E8 -:10E3D000DA747B6803F51C735B69B03301221A752C -:10E3E0007B6803F51C735B69B03301225A757B6847 -:10E3F00003F51C735B69B03301229A757B6803F5E2 -:10E400001C735B69B03340F655529A6108E000BF57 -:10E410008CC80108A0C80108B4C80108C8C8010810 -:10E420007B6803F51C735B69B03340F65452DA61C4 -:10E430007B6803F51C735B69B03340F655521A6272 -:10E440007B6803F51C735B69B03340F656525A6221 -:10E450007B6803F51C735B69B03304221A857B6803 -:10E4600003F51C735B69B03300225A857B6803F5A2 -:10E470001C735B69DC339A1CB84B15461C460FCCE9 -:10E4800028606960AA60EB602288A3782A82AB7456 -:10E490007B6803F51C735B69DC3340F62E221A801F -:10E4A0007B6803F51C735B69DC3301229A747B681B -:10E4B00003F51C735B69DC330122DA747B6803F5B6 -:10E4C0001C735B69DC3301221A757B6803F51C73CE -:10E4D0005B69DC3301225A757B6803F51C735B6949 -:10E4E000DC3301229A757B6803F51C735B69DC33AE -:10E4F00032229A617B6803F51C735B69DC3331223D -:10E50000DA617B6803F51C735B69DC3332221A62C3 -:10E510007B6803F51C735B69DC3333225A627B68CA -:10E5200003F51C735B69DC3302221A857B6803F5F3 -:10E530001C735B69DC3300225A857B6803F53473F6 -:10E540005B699A1C864B03CB106051607B6803F5B6 -:10E5500034735B6940F6B9321A807B6803F5347313 -:10E560005B6900229A747B6803F534735B6901224E -:10E57000DA747B6803F534735B6900221A757B6873 -:10E5800003F534735B6901225A757B6803F53473B4 -:10E590005B6901229A757B6803F534735B6900221D -:10E5A0009A617B6803F534735B690022DA617B68EA -:10E5B00003F534735B6900221A627B6803F53473D8 -:10E5C0005B6900225A627B6803F534735B69012240 -:10E5D0001A857B6803F534735B6900225A857B6872 -:10E5E00003F534735B692C339A1C5E4B144607CBDE -:10E5F00020606160A2601B88A3817B6803F534738F -:10E600005B692C3340F6BA321A807B6803F53473A9 -:10E610005B692C3300229A747B6803F534735B6961 -:10E620002C330122DA747B6803F534735B692C3375 -:10E6300000221A757B6803F534735B692C33012261 -:10E640005A757B6803F534735B692C3301229A7524 -:10E650007B6803F534735B692C3300229A617B6815 -:10E6600003F534735B692C330022DA617B6803F5B0 -:10E6700034735B692C3300221A627B6803F53473B0 -:10E680005B692C3300225A627B6803F534735B6943 -:10E690002C3301221A857B6803F534735B692C33B4 -:10E6A00000225A857B6803F534735B6958339A1CE2 -:10E6B0002D4B144607CB20606160A2601B88A381AC -:10E6C0007B6803F534735B69583340F6BB321A80BC -:10E6D0007B6803F534735B69583300229A747B6856 -:10E6E00003F534735B6958330122DA747B6803F5F0 -:10E6F00034735B69583300221A757B6803F53473F1 -:10E700005B69583301225A757B6803F534735B6982 -:10E71000583301229A757B6803F534735B6958336B -:10E7200000229A617B6803F534735B6958330022D9 -:10E73000DA617B6803F534735B69583300221A622F -:10E740007B6803F534735B69583300225A627B6837 -:10E7500003F534735B695833012207E0DCC8010814 -:10E76000ACC10108F0C8010800C901081A857B681E -:10E7700003F534735B69583300225A857B6803F5CF -:10E7800034735B6984339A1CBB4B144607CB2060FF -:10E790006160A2601B88A3817B6803F534735B69A9 -:10E7A000843340F6BC321A807B6803F534735B69AE -:10E7B000843300229A747B6803F534735B69843375 -:10E7C0000122DA747B6803F534735B6984330022B9 -:10E7D0001A757B6803F534735B69843301225A75BB -:10E7E0007B6803F534735B69843301229A757B6817 -:10E7F00003F534735B69843300229A617B6803F507 -:10E8000034735B6984330022DA617B6803F5347307 -:10E810005B69843300221A627B6803F534735B6999 -:10E82000843300225A627B6803F534735B69843356 -:10E8300001221A857B6803F534735B6984330022F7 -:10E840005A857B6803F534735B69B0339A1C8B4B34 -:10E85000144607CB20606160A2607B6803F53473C7 -:10E860005B69B03340F6BD321A807B6803F53473C0 -:10E870005B69B03300229A747B6803F534735B697B -:10E88000B0330122DA747B6803F534735B69B0330B -:10E8900000221A757B6803F534735B69B03301227B -:10E8A0005A757B6803F534735B69B03301229A753E -:10E8B0007B6803F534735B69B03300229A617B682F -:10E8C00003F534735B69B0330022DA617B6803F5CA -:10E8D00034735B69B03300221A627B6803F53473CA -:10E8E0005B69B03300225A627B6803F534735B695D -:10E8F000B03301221A857B6803F534735B69B0334A -:10E9000000225A857B6803F534735B69DC339A1CFB -:10E910005B4B03CB106051601B8813817B6803F550 -:10E9200034735B69DC3340F6BE321A807B6803F5D2 -:10E9300034735B69DC3300229A747B6803F53473AB -:10E940005B69DC330122DA747B6803F534735B693D -:10E95000DC3300221A757B6803F534735B69DC33A2 -:10E9600001225A757B6803F534735B69DC3301223D -:10E970009A757B6803F534735B69DC3300229A6116 -:10E980007B6803F534735B69DC330022DA617B68F2 -:10E9900003F534735B69DC3300221A627B6803F58C -:10E9A00034735B69DC3300225A627B6803F534738D -:10E9B0005B69DC3301221A857B6803F534735B697C -:10E9C000DC3300225A857B6803F534735B6903F5F9 -:10E9D00084739A1C2B4B03CB106051607B6803F54A -:10E9E00034735B6903F5847340F6BF321A807B6829 -:10E9F00003F534735B6903F5847300229A747B68B2 -:10EA000003F534735B6903F584730122DA747B6860 -:10EA100003F534735B6903F5847300221A757B6810 -:10EA200003F534735B6903F5847301225A757B68BF -:10EA300003F534735B6903F5847301229A757B686F -:10EA400003F534735B6903F5847300229A617B6874 -:10EA500003F534735B6903F584730022DA617B6824 -:10EA600003F534735B6903F5847300221A627B68D3 -:10EA700003F534735B6907E010C90108ECC10108B4 -:10EA800020C9010808C2010803F5847300225A62F4 -:10EA90007B6803F534735B6903F5847301221A857F -:10EAA0007B6803F534735B6903F5847300225A8530 -:10EAB0007B6803F540735B690233BA4A10681860DB -:10EAC00092889A807B6803F540735B6940F68142C7 -:10EAD0001A807B6803F540735B6900229A747B6837 -:10EAE00003F540735B690122DA747B6803F54073B8 -:10EAF0005B6900221A757B6803F540735B6901222C -:10EB00005A757B6803F540735B6901229A757B68CF -:10EB100003F540735B6900229A617B6803F54073DB -:10EB20005B690022DA617B6803F540735B69002250 -:10EB30001A627B6803F540735B6900225A627B6846 -:10EB400003F540735B6901221A857B6803F5407306 -:10EB50005B6900225A857B6803F540735B692C333F -:10EB60009A1C914B03CB106051601B7813727B6829 -:10EB700003F540735B692C3340F682421A807B6850 -:10EB800003F540735B692C3300229A747B6803F5AC -:10EB900040735B692C330122DA747B6803F54073A0 -:10EBA0005B692C3300221A757B6803F540735B693F -:10EBB0002C3301225A757B6803F540735B692C3353 -:10EBC00001229A757B6803F540735B692C33002240 -:10EBD0009A617B6803F540735B692C330022DA612C -:10EBE0007B6803F540735B692C3300221A627B68F3 -:10EBF00003F540735B692C3300225A627B6803F58E -:10EC000040735B692C3301221A857B6803F54073DE -:10EC10005B692C3300225A857B6803F540735B697E -:10EC200058330233614A1068186092889A807B6872 -:10EC300003F540735B69583340F683421A807B6862 -:10EC400003F540735B69583300229A747B6803F5BF -:10EC500040735B6958330122DA747B6803F54073B3 -:10EC60005B69583300221A757B6803F540735B6952 -:10EC7000583301225A757B6803F540735B6958333A -:10EC800001229A757B6803F540735B695833002253 -:10EC90009A617B6803F540735B6958330022DA613F -:10ECA0007B6803F540735B69583300221A627B6806 -:10ECB00003F540735B69583300225A627B6803F5A1 -:10ECC00040735B69583301221A857B6803F54073F2 -:10ECD0005B69583300225A857B6803F540735B6992 -:10ECE00084339A1C324B03CB106051601B88138114 -:10ECF0007B6803F540735B69843340F684421A8075 -:10ED00007B6803F540735B69843300229A747B68E7 -:10ED100003F540735B6984330122DA747B6803F581 -:10ED200040735B69843300221A757B6803F5407376 -:10ED30005B69843301225A757B6803F540735B6914 -:10ED4000843301229A757B6803F540735B698433D1 -:10ED500000229A617B6803F540735B69843300226B -:10ED6000DA617B6803F540735B69843300221A62C1 -:10ED70007B6803F540735B69843300225A627B68C9 -:10ED800003F540735B69843301221A857B6803F5C0 -:10ED900040735B69843300225A857B6803F54673B0 -:10EDA00008E000BF2CC9010834C9010840C90108A6 -:10EDB00048C901085B699A1CB84B03CB10605160CD -:10EDC0001B7813727B6803F546735B6940F6E54276 -:10EDD0001A807B6803F546735B6900229A747B682E -:10EDE00003F546735B690122DA747B6803F54673A9 -:10EDF0005B6900221A757B6803F546735B69012223 -:10EE00005A757B6803F546735B6901229A757B68C6 -:10EE100003F546735B6900229A617B6803F54673CC -:10EE20005B690022DA617B6803F546735B69002247 -:10EE30001A627B6803F546735B6900225A627B683D -:10EE400003F546735B6901221A857B6803F54673F7 -:10EE50005B6900225A857B6803F546735B692C3336 -:10EE60009A1C8F4B03CB106051607B6803F546738F -:10EE70005B692C3340F6E6421A807B6803F54673E3 -:10EE80005B692C3300229A747B6803F546735B69D7 -:10EE90002C330122DA747B6803F546735B692C33EB -:10EEA00000221A757B6803F546735B692C330122D7 -:10EEB0005A757B6803F546735B692C3301229A759A -:10EEC0007B6803F546735B692C3300229A617B688B -:10EED00003F546735B692C330022DA617B6803F526 -:10EEE00046735B692C3300221A627B6803F5467314 -:10EEF0005B692C3300225A627B6803F546735B69B9 -:10EF00002C3301221A857B6803F546735B692C3329 -:10EF100000225A857B6803F546735B6958339A1C57 -:10EF2000604B144607CB20606160A2601B88A38100 -:10EF30007B6803F546735B69583340F6E7421A80F5 -:10EF40007B6803F546735B69583300229A747B68CB -:10EF500003F546735B6958330122DA747B6803F565 -:10EF600046735B69583300221A757B6803F5467354 -:10EF70005B69583301225A757B6803F546735B69F8 -:10EF8000583301229A757B6803F546735B695833E1 -:10EF900000229A617B6803F546735B69583300224F -:10EFA000DA617B6803F546735B69583300221A62A5 -:10EFB0007B6803F546735B69583300225A627B68AD -:10EFC00003F546735B69583301221A857B6803F5A4 -:10EFD00046735B69583300225A857B6803F5467394 -:10EFE0005B6984339A1C304B03CB106051607B68A3 -:10EFF00003F546735B69843340F6E8421A807B6808 -:10F0000003F546735B69843300229A747B6803F5C9 -:10F0100046735B6984330122DA747B6803F54673B7 -:10F020005B69843300221A757B6803F546735B695C -:10F03000843301225A757B6803F546735B69843318 -:10F0400001229A757B6803F546735B69843300225D -:10F050009A617B6803F546735B6984330022DA6149 -:10F060007B6803F546735B69843300221A627B6810 -:10F0700003F546735B69843300225A627B6803F5AB -:10F0800046735B69843301221A857B6803F54673F6 -:10F090005B69843300225A8508E000BF54C9010827 -:10F0A00060C9010868C9010878C901087B6803F5CF -:10F0B00046735B69B0339A1CBD4B144607CB206086 -:10F0C0006160A2607B6803F546735B69B03340F60C -:10F0D000E9421A807B6803F546735B69B03300220E -:10F0E0009A747B6803F546735B69B0330122DA7466 -:10F0F0007B6803F546735B69B03300221A757B6841 -:10F1000003F546735B69B03301225A757B6803F5DA -:10F1100046735B69B03301229A757B6803F54673C9 -:10F120005B69B03300229A617B6803F546735B69C3 -:10F13000B0330022DA617B6803F546735B69B03354 -:10F1400000221A627B6803F546735B69B0330022C4 -:10F150005A627B6803F546735B69B03301221A85F6 -:10F160007B6803F546735B69B03300225A857B6880 -:10F1700003F546735B69DC339A1C8E4B144607CB50 -:10F1800020606160A2601B7823737B6803F546737F -:10F190005B69DC3340F6EA421A807B6803F546730C -:10F1A0005B69DC3300229A747B6803F546735B6904 -:10F1B000DC330122DA747B6803F546735B69DC3368 -:10F1C00000221A757B6803F546735B69DC33012204 -:10F1D0005A757B6803F546735B69DC3301229A75C7 -:10F1E0007B6803F546735B69DC3300229A617B68B8 -:10F1F00003F546735B69DC330022DA617B6803F553 -:10F2000046735B69DC3300221A627B6803F5467340 -:10F210005B69DC3300225A627B6803F546735B69E5 -:10F22000DC3301221A857B6803F546735B69DC33A6 -:10F2300000225A857B6803F546735B6903F5847386 -:10F240009A1C5D4B144607CB20606160A2601B785E -:10F2500023737B6803F546735B6903F5847340F69B -:10F26000EB421A807B6803F546735B6903F5847390 -:10F2700000229A747B6803F546735B6903F5847317 -:10F280000122DA747B6803F546735B6903F58473C6 -:10F2900000221A757B6803F546735B6903F5847376 -:10F2A00001225A757B6803F546735B6903F5847325 -:10F2B00001229A757B6803F546735B6903F58473D5 -:10F2C00000229A617B6803F546735B6903F58473DA -:10F2D0000022DA617B6803F546735B6903F584738A -:10F2E00000221A627B6803F546735B6903F5847339 -:10F2F00000225A627B6803F546735B6903F58473E9 -:10F3000001221A857B6803F546735B6903F58473F4 -:10F3100000225A857B6803F546735B6903F59A738F -:10F320009A1C264B144607CB20606160A2607B6864 -:10F3300003F546735B6903F59A7340F6EC421A8055 -:10F340007B6803F546735B6903F59A7300229A7430 -:10F350007B6803F546735B6903F59A730122DA74DF -:10F360007B6803F546735B6903F59A7300221A758F -:10F370007B6803F546735B6903F59A7301225A753E -:10F380007B6803F546735B6903F59A7301229A75EE -:10F390007B6803F546735B6903F59A7300229A61F3 -:10F3A0007B6803F546735B6903F59A73002207E0F7 -:10F3B00080C901088CC901089CC90108ACC90108B1 -:10F3C000DA617B6803F546735B6903F59A73002283 -:10F3D0001A627B6803F546735B6903F59A73002232 -:10F3E0005A627B6803F546735B6903F59A730122E1 -:10F3F0001A857B6803F546735B6903F59A730022EF -:10F400005A857B6803F546735B6903F5B0739A1CF4 -:10F41000B94B144607CB20606160A2601B88A381B2 -:10F420007B6803F546735B6903F5B07340F6ED4204 -:10F430001A807B6803F546735B6903F5B07300229D -:10F440009A747B6803F546735B6903F5B073012218 -:10F45000DA747B6803F546735B6903F5B0730022C9 -:10F460001A757B6803F546735B6903F5B073012277 -:10F470005A757B6803F546735B6903F5B073012227 -:10F480009A757B6803F546735B6903F5B0730022D8 -:10F490009A617B6803F546735B6903F5B0730022DC -:10F4A000DA617B6803F546735B6903F5B07300228C -:10F4B0001A627B6803F546735B6903F5B07300223B -:10F4C0005A627B6803F546735B6903F5B0730122EA -:10F4D0001A857B6803F546735B6903F5B0730022F8 -:10F4E0005A857B6803F54C735B699A1C834B144601 -:10F4F00007CB20606160A2607B6803F54C735B6999 -:10F5000040F649521A807B6803F54C735B69002210 -:10F510009A747B6803F54C735B690122DA747B682B -:10F5200003F54C735B6900221A757B6803F54C7315 -:10F530005B6901225A757B6803F54C735B69012294 -:10F540009A757B6803F54C735B6900229A617B684E -:10F5500003F54C735B690022DA617B6803F54C7339 -:10F560005B6900221A627B6803F54C735B690022B9 -:10F570005A627B6803F54C735B6901221A857B68CC -:10F5800003F54C735B6900225A857B6803F54C7365 -:10F590005B692C339A1C5A4B144607CB2060616080 -:10F5A000A2607B6803F54C735B692C3340F64A52CA -:10F5B0001A807B6803F54C735B692C3300229A74C4 -:10F5C0007B6803F54C735B692C330122DA747B682A -:10F5D00003F54C735B692C3300221A757B6803F5C5 -:10F5E0004C735B692C3301225A757B6803F54C73AD -:10F5F0005B692C3301229A757B6803F54C735B6958 -:10F600002C3300229A617B6803F54C735B692C33C1 -:10F610000022DA617B6803F54C735B692C330022AE -:10F620001A627B6803F54C735B692C3300225A62C3 -:10F630007B6803F54C735B692C3301221A857B6868 -:10F6400003F54C735B692C3300225A857B6803F504 -:10F650004C735B6958339A1C2A4B144607CB2060C5 -:10F660006160A2607B6803F54C735B69583340F6B8 -:10F670004B521A807B6803F54C735B695833002248 -:10F680009A747B6803F54C735B6958330122DA7412 -:10F690007B6803F54C735B69583300221A757B68ED -:10F6A00003F54C735B69583301225A757B6803F587 -:10F6B0004C735B69583301229A757B6803F54C7370 -:10F6C0005B69583300229A617B6803F54C735B6970 -:10F6D00058330022DA617B6803F54C735B69583359 -:10F6E00000221A627B6803F54C735B695833002271 -:10F6F0005A627B6808E000BFB8C90108C8C90108A0 -:10F70000D4C90108E0C9010803F54C735B6958339B -:10F7100001221A857B6803F54C735B69583300221C -:10F720005A857B6803F54C735B6984339A1CBB4B29 -:10F73000144607CB20606160A2607B6803F54C73C0 -:10F740005B69843340F64C521A807B6803F54C7336 -:10F750005B69843300229A747B6803F54C735B69A0 -:10F7600084330122DA747B6803F54C735B6984335C -:10F7700000221A757B6803F54C735B6984330122A0 -:10F780005A757B6803F54C735B69843301229A7563 -:10F790007B6803F54C735B69843300229A617B6854 -:10F7A00003F54C735B6984330022DA617B6803F5EF -:10F7B0004C735B69843300221A627B6803F54C73D7 -:10F7C0005B69843300225A627B6803F54C735B6982 -:10F7D000843301221A857B6803F54C735B6984339B -:10F7E00000225A857B6803F54C735B69B0339A1C21 -:10F7F0008B4B144607CB20606160A2607B6803F5E9 -:10F800004C735B69B03340F64D521A807B6803F548 -:10F810004C735B69B03300229A747B6803F54C73B8 -:10F820005B69B0330122DA747B6803F54C735B6962 -:10F83000B03300221A757B6803F54C735B69B033F3 -:10F8400001225A757B6803F54C735B69B033012262 -:10F850009A757B6803F54C735B69B03300229A613B -:10F860007B6803F54C735B69B0330022DA617B6817 -:10F8700003F54C735B69B03300221A627B6803F5B1 -:10F880004C735B69B03300225A627B6803F54C739A -:10F890005B69B03301221A857B6803F54C735B69A1 -:10F8A000B03300225A857B6803F54C735B69DC3307 -:10F8B0009A1C5C4B144607CB20606160A2607B6899 -:10F8C00003F54C735B69DC3340F64E521A807B685B -:10F8D00003F54C735B69DC3300229A747B6803F593 -:10F8E0004C735B69DC330122DA747B6803F54C737B -:10F8F0005B69DC3300221A757B6803F54C735B6926 -:10F90000DC3301225A757B6803F54C735B69DC3389 -:10F9100001229A757B6803F54C735B69DC33002226 -:10F920009A617B6803F54C735B69DC330022DA6112 -:10F930007B6803F54C735B69DC3300221A627B68D9 -:10F9400003F54C735B69DC3300225A627B6803F574 -:10F950004C735B69DC3301221A857B6803F54C73B9 -:10F960005B69DC3300225A857B6803F54C735B6965 -:10F9700003F584739A1C2C4B144607CB20606160FE -:10F98000A2607B6803F54C735B6903F5847340F6F2 -:10F990004F521A807B6803F54C735B6903F58473DF -:10F9A00000229A747B6803F54C735B6903F58473DA -:10F9B0000122DA747B6803F54C735B6903F5847389 -:10F9C00000221A757B6803F54C735B6903F5847339 -:10F9D00001225A757B6803F54C735B6903F58473E8 -:10F9E00001229A757B6803F54C735B6903F5847398 -:10F9F00000229A617B6803F54C735B6903F584739D -:10FA00000022DA617B6803F54C735B6903F584734C -:10FA100000221A627B6803F54C7307E0ECC9010809 -:10FA2000F8C9010804CA010810CA01085B6903F596 -:10FA3000847300225A627B6803F54C735B6903F59B -:10FA4000847301221A857B6803F54C735B6903F5A7 -:10FA5000847300225A857B6803F54C735B6903F558 -:10FA60009A739A1CC24B03CB106051601B881381A0 -:10FA70007B6803F54C735B6903F59A734FF4556229 -:10FA80001A807B6803F54C735B6903F59A73002257 -:10FA90009A747B6803F54C735B6903F59A730122D2 -:10FAA000DA747B6803F54C735B6903F59A73002283 -:10FAB0001A757B6803F54C735B6903F59A73012231 -:10FAC0005A757B6803F54C735B6903F59A730122E1 -:10FAD0009A757B6803F54C735B6903F59A73002292 -:10FAE0009A617B6803F54C735B6903F59A73002296 -:10FAF000DA617B6803F54C735B6903F59A73002246 -:10FB00001A627B6803F54C735B6903F59A730022F4 -:10FB10005A627B6803F54C735B6903F59A730122A3 -:10FB20001A857B6803F54C735B6903F59A730022B1 -:10FB30005A857B6803F54C735B6903F5B073023338 -:10FB40008C4A106818609188927999809A717B68C4 -:10FB500003F54C735B6903F5B07340F651521A809C -:10FB60007B6803F54C735B6903F5B07300229A74EC -:10FB70007B6803F54C735B6903F5B0730122DA749B -:10FB80007B6803F54C735B6903F5B07300221A754B -:10FB90007B6803F54C735B6903F5B07301225A75FA -:10FBA0007B6803F54C735B6903F5B07301229A75AA -:10FBB0007B6803F54C735B6903F5B07300229A61AF -:10FBC0007B6803F54C735B6903F5B0730022DA615F -:10FBD0007B6803F54C735B6903F5B07300221A620E -:10FBE0007B6803F54C735B6903F5B07300225A62BE -:10FBF0007B6803F54C735B6903F5B07301221A85CA -:10FC00007B6803F54C735B6903F5B07300225A857A -:10FC10007B6803F54C735B6903F5C6730233564A80 -:10FC2000106818609188927999809A717B6803F5C1 -:10FC30004C735B6903F5C67340F652521A807B68B9 -:10FC400003F54C735B6903F5C67300229A747B68F5 -:10FC500003F54C735B6903F5C6730122DA747B68A4 -:10FC600003F54C735B6903F5C67300221A757B6854 -:10FC700003F54C735B6903F5C67301225A757B6803 -:10FC800003F54C735B6903F5C67301229A757B68B3 -:10FC900003F54C735B6903F5C67300229A617B68B8 -:10FCA00003F54C735B6903F5C6730022DA617B6868 -:10FCB00003F54C735B6903F5C67300221A627B6817 -:10FCC00003F54C735B6903F5C67300225A627B68C7 -:10FCD00003F54C735B6903F5C67301221A857B68D3 -:10FCE00003F54C735B6903F5C67300225A857B6884 -:10FCF00003F54C735B6903F5DC7302331F4A10682C -:10FD000018609188927999809A717B6803F54C7399 -:10FD10005B6903F5DC7340F653521A807B6803F588 -:10FD20004C735B6903F5DC7300229A747B6803F5FE -:10FD30004C735B6903F5DC730122DA747B6803F5AD -:10FD40004C735B6903F5DC7300221A757B6803F55D -:10FD50004C735B6903F5DC7301225A757B6803F50C -:10FD60004C735B6903F5DC7301229A757B6807E0CD -:10FD70001CCA010828CA010830CA010838CA01088B -:10FD800003F54C735B6903F5DC7300229A617B68B1 -:10FD900003F54C735B6903F5DC730022DA617B6861 -:10FDA00003F54C735B6903F5DC7300221A627B6810 -:10FDB00003F54C735B6903F5DC7300225A627B68C0 -:10FDC00003F54C735B6903F5DC7301221A857B68CC -:10FDD00003F54C735B6903F5DC7300225A857B687D -:10FDE00003F54C735B6903F5F2730233C34A106881 -:10FDF000186092889A807B6803F54C735B6903F501 -:10FE0000F27340F654521A807B6803F54C735B69B9 -:10FE100003F5F27300229A747B6803F54C735B69F7 -:10FE200003F5F2730122DA747B6803F54C735B69A6 -:10FE300003F5F27300221A757B6803F54C735B6956 -:10FE400003F5F27301225A757B6803F54C735B6905 -:10FE500003F5F27301229A757B6803F54C735B69B5 -:10FE600003F5F27300229A617B6803F54C735B69BA -:10FE700003F5F2730022DA617B6803F54C735B696A -:10FE800003F5F27300221A627B6803F54C735B6919 -:10FE900003F5F27300225A627B6803F54C735B69C9 -:10FEA00003F5F27301221A857B6803F54C735B69D5 -:10FEB00003F5F27300225A857B6803F54C735B6986 -:10FEC00003F5047302338E4A1068186092889A8092 -:10FED0007B6803F54C735B6903F5047340F6555278 -:10FEE0001A807B6803F54C735B6903F50473002289 -:10FEF0009A747B6803F54C735B6903F50473012204 -:10FF0000DA747B6803F54C735B6903F504730022B4 -:10FF10001A757B6803F54C735B6903F50473012262 -:10FF20005A757B6803F54C735B6903F50473012212 -:10FF30009A757B6803F54C735B6903F504730022C3 -:10FF40009A617B6803F54C735B6903F504730022C7 -:10FF5000DA617B6803F54C735B6903F50473002277 -:10FF60001A627B6803F54C735B6903F50473002226 -:10FF70005A627B6803F54C735B6903F504730122D5 -:10FF80001A857B6803F54C735B6903F504730022E3 -:10FF90005A857B6803F54C735B6903F50F73023375 -:10FFA000584A1068186092889A807B6803F54C73F1 -:10FFB0005B6903F50F7340F656521A807B6803F5B0 -:10FFC0004C735B6903F50F7300229A747B6803F529 -:10FFD0004C735B6903F50F730122DA747B6803F5D8 -:10FFE0004C735B6903F50F7300221A757B6803F588 -:10FFF0004C735B6903F50F7301225A757B6803F537 -:020000040801F1 -:100000004C735B6903F50F7301229A757B6803F5E6 -:100010004C735B6903F50F7300229A617B6803F5EB -:100020004C735B6903F50F730022DA617B6803F59B -:100030004C735B6903F50F7300221A627B6803F54A -:100040004C735B6903F50F7300225A627B6803F5FA -:100050004C735B6903F50F7301221A857B6803F506 -:100060004C735B6903F50F7300225A857B6803F5B7 -:100070004C735B6903F51A730233234A10681860E6 -:100080009188927999809A717B6803F54C735B69CA -:1000900003F51A7340F657521A807B6803F54C73C8 -:1000A0005B6903F51A7300229A747B6803F54C733D -:1000B0005B6903F51A730122DA747B6803F54C73EC -:1000C0005B6903F51A7300221A757B6803F54C739C -:1000D0005B6903F51A7301225A757B6803F54C734B -:1000E0005B6903F51A7301229A757B6803F54C73FB -:1000F0005B6903F51A73002208E000BF40CA0108DB -:1001000048CA010850CA010858CA01089A617B68A8 -:1001100003F54C735B6903F51A730022DA617B689F -:1001200003F54C735B6903F51A7300221A627B684E -:1001300003F54C735B6903F51A7300225A627B68FE -:1001400003F54C735B6903F51A7301221A857B680A -:1001500003F54C735B6903F51A7300225A857B68BB -:1001600003F54C735B6903F525730233BF4A1068CE -:1001700018609188927999809A717B6803F54C7325 -:100180005B6903F5257340F658521A807B6803F5C6 -:100190004C735B6903F5257300229A747B6803F541 -:1001A0004C735B6903F525730122DA747B6803F5F0 -:1001B0004C735B6903F5257300221A757B6803F5A0 -:1001C0004C735B6903F5257301225A757B6803F54F -:1001D0004C735B6903F5257301229A757B6803F5FF -:1001E0004C735B6903F5257300229A617B6803F504 -:1001F0004C735B6903F525730022DA617B6803F5B4 -:100200004C735B6903F5257300221A627B6803F562 -:100210004C735B6903F5257300225A627B6803F512 -:100220004C735B6903F5257301221A857B6803F51E -:100230004C735B6903F5257300225A857B6803F5CF -:100240004C735B6903F530730233894A1068186098 -:1002500092889A807B6803F54C735B6903F5307371 -:1002600040F659521A807B6803F54C735B6903F5BD -:10027000307300229A747B6803F54C735B6903F555 -:1002800030730122DA747B6803F54C735B6903F504 -:10029000307300221A757B6803F54C735B6903F5B4 -:1002A000307301225A757B6803F54C735B6903F563 -:1002B000307301229A757B6803F54C735B6903F513 -:1002C000307300229A617B6803F54C735B6903F518 -:1002D00030730022DA617B6803F54C735B6903F5C8 -:1002E000307300221A627B6803F54C735B6903F577 -:1002F000307300225A627B6803F54C735B6903F527 -:10030000307301221A857B6803F54C735B6903F532 -:10031000307300225A857B6803F54C735B6903F5E3 -:100320003B739A1C534B03CB106051607B6803F501 -:100330004C735B6903F53B7340F65A521A807B6835 -:1003400003F54C735B6903F53B7300229A747B6879 -:1003500003F54C735B6903F53B730122DA747B6828 -:1003600003F54C735B6903F53B7300221A757B68D8 -:1003700003F54C735B6903F53B7301225A757B6887 -:1003800003F54C735B6903F53B7301229A757B6837 -:1003900003F54C735B6903F53B7300229A617B683C -:1003A00003F54C735B6903F53B730022DA617B68EC -:1003B00003F54C735B6903F53B7300221A627B689B -:1003C00003F54C735B6903F53B7300225A627B684B -:1003D00003F54C735B6903F53B7301221A857B6857 -:1003E00003F54C735B6903F53B7300225A857B6808 -:1003F00003F552735B699A1C1F4B03CB106051606D -:100400001B8813817B6803F552735B6940F6AD521C -:100410001A807B6803F552735B6900229A747B68CB -:1004200003F552735B690122DA747B6803F552733A -:100430005B6900221A757B6803F552735B690122C0 -:100440005A757B6803F552735B6901229A757B6864 -:1004500003F552735B6900229A617B6803F552735E -:100460005B690022DA617B6808E000BF60CA0108AE -:1004700068CA010870CA010878CA010803F55273F6 -:100480005B6900221A627B6803F552735B69002284 -:100490005A627B6803F552735B6901221A857B6897 -:1004A00003F552735B6900225A857B6803F552732A -:1004B0005B692C339A1CBB4B03CB106051601B88CB -:1004C00013817B6803F552735B692C3340F6AE529F -:1004D0001A807B6803F552735B692C3300229A748F -:1004E0007B6803F552735B692C330122DA747B68F5 -:1004F00003F552735B692C3300221A757B6803F590 -:1005000052735B692C3301225A757B6803F5527371 -:100510005B692C3301229A757B6803F552735B6922 -:100520002C3300229A617B6803F552735B692C338C -:100530000022DA617B6803F552735B692C33002279 -:100540001A627B6803F552735B692C3300225A628E -:100550007B6803F552735B692C3301221A857B6833 -:1005600003F552735B692C3300225A857B6803F5CF -:1005700052735B6958339A1C8B4B03CB10605160EC -:100580001B8813817B6803F552735B69583340F60F -:10059000AF521A807B6803F552735B6958330022AF -:1005A0009A747B6803F552735B6958330122DA74DD -:1005B0007B6803F552735B69583300221A757B68B8 -:1005C00003F552735B69583301225A757B6803F552 -:1005D00052735B69583301229A757B6803F5527335 -:1005E0005B69583300229A617B6803F552735B693B -:1005F00058330022DA617B6803F552735B69583324 -:1006000000221A627B6803F552735B69583300223B -:100610005A627B6803F552735B69583301221A856D -:100620007B6803F552735B69583300225A857B68F7 -:1006300003F552735B6984339A1C5C4B03CB1060E7 -:1006400051601B8813817B6803F552735B698433A7 -:100650004FF45B621A807B6803F552735B698433E5 -:1006600000229A747B6803F552735B69843301221C -:10067000DA747B6803F552735B69843300221A7560 -:100680007B6803F552735B69843301225A757B687A -:1006900003F552735B69843301229A757B6803F515 -:1006A00052735B69843300229A617B6803F552734D -:1006B0005B6984330022DA617B6803F552735B69FE -:1006C000843300221A627B6803F552735B698433BA -:1006D00000225A627B6803F552735B6984330122FE -:1006E0001A857B6803F552735B69843300225A854F -:1006F0007B6803F552735B69B0339A1C2C4B03CBB8 -:10070000106051601B8813817B6803F552735B692D -:10071000B03340F6B1521A807B6803F552735B69BF -:10072000B03300229A747B6803F552735B69B0336F -:100730000122DA747B6803F552735B69B0330022DF -:100740001A757B6803F552735B69B03301225A75E1 -:100750007B6803F552735B69B03301229A757B683D -:1007600003F552735B69B03300229A617B6803F52D -:1007700052735B69B0330022DA617B6803F5527310 -:100780005B69B03300221A627B6803F552735B69C0 -:10079000B03300225A627B6803F552735B69B03351 -:1007A000012207E084CA010890CA01089CCA010816 -:1007B000A8CA01081A857B6803F552735B69B033D8 -:1007C00000225A857B6803F552735B69DC339A1CFF -:1007D000C04B03CB106051601B8813817B6803F50D -:1007E00052735B69DC3340F6B2521A807B6803F5C2 -:1007F00052735B69DC3300229A747B6803F5527391 -:100800005B69DC330122DA747B6803F552735B6940 -:10081000DC3300221A757B6803F552735B69DC33A5 -:1008200001225A757B6803F552735B69DC33012240 -:100830009A757B6803F552735B69DC3300229A6119 -:100840007B6803F552735B69DC330022DA617B68F5 -:1008500003F552735B69DC3300221A627B6803F58F -:1008600052735B69DC3300225A627B6803F5527372 -:100870005B69DC3301221A857B6803F552735B697F -:10088000DC3300225A857B6803F552735B6903F5FC -:1008900084739A1C904B03CB106051601B881381AA -:1008A0007B6803F552735B6903F5847340F6B352BA -:1008B0001A807B6803F552735B6903F58473002229 -:1008C0009A747B6803F552735B6903F584730122A4 -:1008D000DA747B6803F552735B6903F58473002255 -:1008E0001A757B6803F552735B6903F58473012203 -:1008F0005A757B6803F552735B6903F584730122B3 -:100900009A757B6803F552735B6903F58473002263 -:100910009A617B6803F552735B6903F58473002267 -:10092000DA617B6803F552735B6903F58473002217 -:100930001A627B6803F552735B6903F584730022C6 -:100940005A627B6803F552735B6903F58473012275 -:100950001A857B6803F552735B6903F58473002283 -:100960005A857B6803F552735B6903F59A739A1C89 -:100970005A4B03CB106051607B6803F552735B697F -:1009800003F59A7340F6B4521A807B6803F55273EC -:100990005B6903F59A7300229A747B6803F55273BE -:1009A0005B6903F59A730122DA747B6803F552736D -:1009B0005B6903F59A7300221A757B6803F552731D -:1009C0005B6903F59A7301225A757B6803F55273CC -:1009D0005B6903F59A7301229A757B6803F552737C -:1009E0005B6903F59A7300229A617B6803F5527381 -:1009F0005B6903F59A730022DA617B6803F5527331 -:100A00005B6903F59A7300221A627B6803F55273DF -:100A10005B6903F59A7300225A627B6803F552738F -:100A20005B6903F59A7301221A857B6803F552739B -:100A30005B6903F59A7300225A857B6803F552734C -:100A40005B6903F5B0730233254A10681860928819 -:100A50009A807B6803F552735B6903F5B07340F6C7 -:100A6000B5521A807B6803F552735B6903F5B07366 -:100A700000229A747B6803F552735B6903F5B073C7 -:100A80000122DA747B6803F552735B6903F5B07376 -:100A900000221A757B6803F552735B6903F5B07326 -:100AA00001225A757B6803F552735B6903F5B073D5 -:100AB00001229A757B6803F552735B6903F5B07385 -:100AC00000229A617B6803F552735B6903F5B0738A -:100AD00008E000BFB4CA0108C0CA0108CCCA0108B6 -:100AE00048CA01080022DA617B6803F552735B692A -:100AF00003F5B07300221A627B6803F552735B69D9 -:100B000003F5B07300225A627B6803F552735B6988 -:100B100003F5B07301221A857B6803F552735B6994 -:100B200003F5B07300225A857B6803F552735B6945 -:100B300003F5C6730233C34A1068186092889A801E -:100B40007B6803F552735B6903F5C67340F6B652D2 -:100B50001A807B6803F552735B6903F5C673002244 -:100B60009A747B6803F552735B6903F5C6730122BF -:100B7000DA747B6803F552735B6903F5C673002270 -:100B80001A757B6803F552735B6903F5C67301221E -:100B90005A757B6803F552735B6903F5C6730122CE -:100BA0009A757B6803F552735B6903F5C67300227F -:100BB0009A617B6803F552735B6903F5C673002283 -:100BC000DA617B6803F552735B6903F5C673002233 -:100BD0001A627B6803F552735B6903F5C6730022E2 -:100BE0005A627B6803F552735B6903F5C673012291 -:100BF0001A857B6803F552735B6903F5C67300229F -:100C00005A857B6803F552735B6903F5DC73023325 -:100C10008D4A1068186092889A807B6803F5527339 -:100C20005B6903F5DC7340F6B7521A807B6803F505 -:100C300052735B6903F5DC7300229A747B6803F5D9 -:100C400052735B6903F5DC730122DA747B6803F588 -:100C500052735B6903F5DC7300221A757B6803F538 -:100C600052735B6903F5DC7301225A757B6803F5E7 -:100C700052735B6903F5DC7301229A757B6803F597 -:100C800052735B6903F5DC7300229A617B6803F59C -:100C900052735B6903F5DC730022DA617B6803F54C -:100CA00052735B6903F5DC7300221A627B6803F5FB -:100CB00052735B6903F5DC7300225A627B6803F5AB -:100CC00052735B6903F5DC7301221A857B6803F5B7 -:100CD00052735B6903F5DC7300225A857B6803F568 -:100CE00052735B6903F5F2730233584A1068186057 -:100CF0009188927999809A717B6803F552735B6948 -:100D000003F5F27340F6B8521A807B6803F552730C -:100D10005B6903F5F27300229A747B6803F55273E2 -:100D20005B6903F5F2730122DA747B6803F5527391 -:100D30005B6903F5F27300221A757B6803F5527341 -:100D40005B6903F5F27301225A757B6803F55273F0 -:100D50005B6903F5F27301229A757B6803F55273A0 -:100D60005B6903F5F27300229A617B6803F55273A5 -:100D70005B6903F5F2730022DA617B6803F5527355 -:100D80005B6903F5F27300221A627B6803F5527304 -:100D90005B6903F5F27300225A627B6803F55273B4 -:100DA0005B6903F5F27301221A857B6803F55273C0 -:100DB0005B6903F5F27300225A857B6803F5527371 -:100DC0005B6903F504730233214A10681860918847 -:100DD000927999809A717B6803F552735B6903F588 -:100DE000047340F6B9521A807B6803F552735B694D -:100DF00003F5047300229A747B6803F552735B69F0 -:100E000003F504730122DA747B6803F552735B699E -:100E100003F5047300221A757B6803F552735B694E -:100E200003F5047301225A757B6803F552735B69FD -:100E300003F5047301229A757B6803F552735B69AD -:100E400008E000BF40CA010850CA010858CA01089A -:100E500060CA010803F5047300229A617B6803F5F8 -:100E600052735B6903F504730022DA617B6803F552 -:100E700052735B6903F5047300221A627B6803F501 -:100E800052735B6903F5047300225A627B6803F5B1 -:100E900052735B6903F5047301221A857B6803F5BD -:100EA00052735B6903F5047300225A857B6803F56E -:100EB00052735B6903F50F730233964A106818602A -:100EC00092889A807B6803F552735B6903F50F7310 -:100ED00040F6BA521A807B6803F552735B6903F5DA -:100EE0000F7300229A747B6803F552735B6903F5F4 -:100EF0000F730122DA747B6803F552735B6903F5A3 -:100F00000F7300221A757B6803F552735B6903F552 -:100F10000F7301225A757B6803F552735B6903F501 -:100F20000F7301229A757B6803F552735B6903F5B1 -:100F30000F7300229A617B6803F552735B6903F5B6 -:100F40000F730022DA617B6803F552735B6903F566 -:100F50000F7300221A627B6803F552735B6903F515 -:100F60000F7300225A627B6803F552735B6903F5C5 -:100F70000F7301221A857B6803F552735B6903F5D1 -:100F80000F7300225A857B6803F552735B6903F582 -:100F90001A739A1C604B03CB106051607B6803F599 -:100FA00052735B6903F51A7340F6BB521A807B6873 -:100FB00003F552735B6903F51A7300229A747B6818 -:100FC00003F552735B6903F51A730122DA747B68C7 -:100FD00003F552735B6903F51A7300221A757B6877 -:100FE00003F552735B6903F51A7301225A757B6826 -:100FF00003F552735B6903F51A7301229A757B68D6 -:1010000003F552735B6903F51A7300229A617B68DA -:1010100003F552735B6903F51A730022DA617B688A -:1010200003F552735B6903F51A7300221A627B6839 -:1010300003F552735B6903F51A7300225A627B68E9 -:1010400003F552735B6903F51A7301221A857B68F5 -:1010500003F552735B6903F51A7300225A857B68A6 -:1010600003F558735B699A1C2C4B144607CB206020 -:101070006160A2607B6803F558735B6940F611629A -:101080001A807B6803F558735B6901229A747B6848 -:1010900003F558735B690122DA747B6803F55873B2 -:1010A0005B6901221A757B6803F558735B6900223E -:1010B0005A757B6803F558735B6901229A757B68E2 -:1010C00003F558735B695A229A617B6803F558737C -:1010D0005B690122DA617B6803F558735B695A2208 -:1010E0001A627B6803F558735B6964225A627B68F5 -:1010F00003F558735B6903221A857B6803F55873FF -:101100005B6900225A85FB891BB218461437BD461D -:10111000B0BC704768CA010870CA0108D4CA010887 -:1011200080B500AF064B00221A604FF4407003F008 -:1011300041FA00F017F800235BB2184680BD00BFEB -:10114000146F002080B500AF044802F043FC024653 -:10115000034B1A60024B1B68184680BD000C004010 -:10116000146F002080B584B000AF0820012103F087 -:10117000C1FD0023BB810023FB805323BB804FF0C4 -:10118000FF33BB603B1D0548194602F0ABFB03482B -:10119000012102F02BFC1037BD4680BD000C004041 -:1011A00080B400AF074B19684FF000024FF0000306 -:1011B000C1E9002300235BB21846BD465DF8047BFD -:1011C000704700BF3094002090B583B000AF034655 -:1011D000FB7101F0B9FB0C4B1C680B4B1B68D3E98E -:1011E0000001FB79012202FA03F31A464FEAE27387 -:1011F00042EA000243EA0103C4E9002301F09CFB38 -:101200000C37BD4690BD00BF3094002090B583B030 -:1012100000AF0346FB7101F097FB0C4B1C680B4BB6 -:101220001B68D3E90001FB79012202FA03F3DB43D7 -:101230001A464FEAE27302EA000203EA0103C4E934 -:10124000002301F079FB0C37BD4690BD309400209F -:1012500080B586B000AF01F077FB1B4B1B68D3E96C -:101260000023C7E9022301F067FBD7E9022352EA12 -:10127000030100D125E00023FB751FE0FB7D012267 -:1012800002FA03F318464FEAE071D7E9022302EAB3 -:10129000000203EA0103C7E90023D7E9002352EA69 -:1012A000030108D0FB7D5A1E084B53F82230084832 -:1012B000194600F021FAFB7D0133FB75FB7D3F2BC6 -:1012C000DCD91837BD4680BD309400201C000020BA -:1012D00054CC010880B483B000AF78607B684FF0D5 -:1012E0000002DA617B684FF000021A6200BF0C371F -:1012F000BD465DF8047B704780B48DB000AF786167 -:1013000087ED040AC7ED030AB96087ED011AC7ED3E -:10131000001A4FF00003FB624FF00003BB624FF076 -:1013200000033B624FF000037B627B69DB69FB617A -:101330007B6993ED007AD7ED017AB4EEE77AF1EEAE -:1013400010FA02D57B68FB6202E07B691B68FB62D6 -:101350007B6993ED017AD7ED007AB4EEE77AF1EE8E -:1013600010FA02DD3B68BB6202E07B695B68BB622E -:1013700097ED037AD7ED047A77EE677AC7ED087AAE -:101380007B6993ED077A7B69D3ED066AD7ED087A1E -:1013900066EEA77A77EE277A7B69C3ED077A7B69D9 -:1013A00093ED027AD7ED087A67EE277AC7ED097ACE -:1013B0007B6993ED037A7B69D3ED077A67EE277A31 -:1013C00097ED097A77EE277AC7ED097A7B6993ED75 -:1013D000047A7B69D3ED087AD7ED086A76EEE77A6E -:1013E00027EE277A7B69D3ED067AC7EE277A97ED49 -:1013F000097A77EE277AC7ED097A7B69D3ED057A0A -:1014000097ED097A67EE277AC7ED097A97ED097AA1 -:10141000D7ED0B7AB4EEE77AF1EE10FA05D5FB6A58 -:101420007B627B69FA69DA610DE097ED097AD7EDA5 -:101430000A7AB4EEE77AF1EE10FA04DDBB6A7B6259 -:101440007B69FA69DA617B693A6A1A62BB687A6A0F -:101450001A6000BF3437BD465DF8047B704700BF9B -:1014600080B485B000AF786087ED000A7B6893EDAB -:10147000007A7B68D3ED016AD7ED007A66EEA76A41 -:101480007B68D3ED027A76EEE77A27EE277A7B68DF -:10149000D3ED027A77EE277AC7ED037A7B68FA6894 -:1014A0009A60FB6807EE903AB0EE670A1437BD46C3 -:1014B0005DF8047B704700BF80B483B000AF7860F4 -:1014C00039607B68002B02D03B68002B01D1FD23E3 -:1014D00016E07B6800229A607B6800225A607B6875 -:1014E0000022DA603B681B881AB27B681A603B688E -:1014F0005A687B681A613B689A687B685A61002366 -:101500005BB218460C37BD465DF8047B704700BFE0 -:1015100090B583B000AF78600B46FB707B68002B02 -:1015200001D1FF2331E07B68DA687B681B689A424F -:1015300004D1184800F0E0F8002326E001F004FA96 -:101540007B681A697B689B681344FA781A707B6819 -:101550005A697B689B689B00D418FFF7F3FD03462C -:1015600023607B689B6801337A68126893FBF2F111 -:1015700002FB01F29A1A7B689A607B68DB685A1C4E -:101580007B68DA6001F0D8F901235BB218460C37AA -:10159000BD4690BD60CC010890B587B000AFF86043 -:1015A000B9601346FB80FB681B68DAB2FB68DB6836 -:1015B000DBB2D31ABB75FB68002B02D14FF0FF33AF -:1015C00040E0BB7D002B01D100233BE0BB7D9BB203 -:1015D000FA889A4201D9BB7DFB8001F0B5F900235E -:1015E000FB7527E0FB681A69FB689B681344FA7D6A -:1015F000B9680A4412781A70FB685A69FB689B68DC -:101600009B00D418FFF79EFD03462360FB689B6890 -:101610000133FA68126893FBF2F102FB01F29A1AA5 -:10162000FB689A60FB68DB685A1CFB68DA60FB7D2C -:101630000133FB75FB7D9BB2FA889A42D2D801F048 -:101640007BF9FB8818461C37BD4690BD80B582B03B -:1016500000AF786039607B68002B01D1FF2323E065 -:101660007B68DB68002B01D100231DE001F06CF9E1 -:101670007B681A697B685B6813441A783B681A7048 -:101680007B685B6801337A68126893FBF2F102FBB6 -:1016900001F29A1A7B685A607B68DB685A1E7B6885 -:1016A000DA6001F049F901235BB218460837BD46FC -:1016B00080BD00BF80B588B004AFF860B9607A60C3 -:1016C0003B600C4B4FF4E1321A600A4B04221A7152 -:1016D000BB690093FB6901933B6A02930548B968B3 -:1016E0007A683B6801F038F900235BB2184610377E -:1016F000BD4680BD186F00200FB42DE9F04387B0C0 -:1017000000AF00233B6100237B6107F13C037B605A -:10171000B86B796800F0CCFB38616B461E463969BE -:101720004B1EFB600B461A464FF000034FEAC309FD -:1017300049EA52794FEAC2080B461A464FF00003B5 -:10174000DD0045EA5275D4000B460733DB08DB00A9 -:10175000ADEB030D6B460033BB6007F13C037B60D0 -:10176000BB681846B96B7A6800F036F938610DE04D -:10177000BA687B691A443B699BB20C4811461A4609 -:1017800001F028FA03467A6913447B617A693B6960 -:101790009A42EDDBB5467B69DBB25BB218461C377B -:1017A000BD46BDE8F04304B0704700BF186F00208D -:1017B000B0B58AB000AFF860B9607A603B6097F866 -:1017C0003830012B03D1302387F8273002E0202363 -:1017D00087F82730B86806F033FA02460B4643EC28 -:1017E000102B03F0CBFE55EC104B786806F038FA5E -:1017F00002460B4643EC102B03F0C0FE53EC102BBB -:101800002046294606F0BCFB02460B461046194608 -:101810004FF00002304B06F0D7F802460B46104658 -:10182000194606F01DFD0346BB6100233B620AE03A -:10183000FB681B68591CFA68116097F827201A701A -:101840003B6A01333B623A68BB69D21A3B6A9A42EF -:10185000EEDC0123FB6104E0FB697A6802FB03F321 -:10186000FB61FB69BA68B2FBF3F27B689A42F3D280 -:101870002BE0FB69BA68B2FBF3F37B61FA69BB68E2 -:10188000B3FBF2F102FB01F29B1ABB60FA697B68C1 -:1018900092FBF3F3FB617B69092B0BDDFB681B6893 -:1018A000591CFA6811607A69D2B25732D2B2D2B2F8 -:1018B0001A700AE0FB681B68591CFA6811607A69A3 -:1018C000D2B23032D2B2D2B21A70FB69002BD0D170 -:1018D0002837BD46B0BD00BF0000F03F000000004B -:1018E00080B58AB002AFF86087ED020A79601346CE -:1018F000FB70D7ED027AF5EEC07AF1EE10FA0CD556 -:10190000FB681B68591CFA6811602D221A70D7ED0C -:10191000027AF1EE677AC7ED027A7B68002B01D17B -:1019200006237B60D7ED027AFCEEE77A17EE903A59 -:10193000FB6100230093F868F9690A220023FFF78E -:1019400037FFFB681B68591CFA6811602E221A7059 -:10195000786806F085F902460B469FED1D0B43ECB7 -:10196000112B03F087FE53EC102B1046194606F09E -:1019700077FC0346BB61FB6906EE903AF8EE667AA7 -:1019800097ED027A37EE677ABB6906EE903AF8EE89 -:10199000E67A67EE277A17EE900A06F073F90246A8 -:1019A0000B4643EC102B03F023FD53EC102B104699 -:1019B000194606F07DFC03467B6101230093F8681D -:1019C00079690A227B68FFF7F3FE2037BD4680BDA8 -:1019D000000000000000244090B58FB002AFF86016 -:1019E000B9607A60FB68FB610023FB76002387F80F -:1019F0002F30A2E1BB681B785BB2252B06D10023F8 -:101A000087F82F300023FB7600237B61BB681B78AF -:101A10005BB2252B04D097F82F30012B40F0858145 -:101A2000BB680133BB60BB681B785BB2253B532BA3 -:101A300000F2778101A252F823F000BF0B1D0108CC -:101A4000231D0108231D0108231D0108231D010872 -:101A5000231D0108231D0108231D0108231D010862 -:101A60008D1B0108231D01088D1B01088D1B01081A -:101A70008D1B01088D1B01088D1B01088D1B0108A2 -:101A80008D1B01088D1B01088D1B01088D1B010892 -:101A9000231D0108231D0108231D0108231D010822 -:101AA000231D0108231D0108231D0108231D010812 -:101AB000231D0108231D0108231D0108231D010802 -:101AC000231D0108231D0108231D0108231D0108F2 -:101AD000231D0108231D0108231D0108231D0108E2 -:101AE000231D0108231D0108231D0108231D0108D2 -:101AF000231D0108231D0108231D0108231D0108C2 -:101B0000231D0108231D0108DF1C0108231D0108F6 -:101B1000231D0108231D0108231D0108231D0108A1 -:101B2000231D0108231D0108231D0108231D010891 -:101B3000231D0108AB1B0108FF1B0108231D010821 -:101B4000431C0108231D0108231D0108FF1B010878 -:101B5000231D0108231D0108231D0108231D010861 -:101B6000231D0108231D0108231D0108231D010851 -:101B7000231D0108831C0108231D0108B51C010851 -:101B8000231D0108231D0108DF1C010807F10801BE -:101B900007F1140207F11B03084611461A4600F02C -:101BA000DDF8012387F82F30BEE00023BB6210E090 -:101BB000FB7E012B05D1FB685A1CFA6030221A709B -:101BC00004E0FB685A1CFA6020221A70BB6A0133D9 -:101BD000BB627B69013B1A46BB6A9A42E8D8FB6844 -:101BE0005A1CFA607A68111D79601268D2B21A70B4 -:101BF000002387F82F30BB680133BB6094E07B681B -:101C00001A1D7A601B687B627B6A002B07DA7B6A8D -:101C10005B427B62FB685A1CFA602D221A707A6A5A -:101C20007B69F87E07F10C010090084611460A22F4 -:101C3000FFF7BEFD002387F82F30BB680133BB6080 -:101C400072E07B68073323F0070303F108027A6030 -:101C5000D3E900231046194606F04AFB04467A6988 -:101C6000FB7E07F10C01084600EE104A11461A46A9 -:101C7000FFF736FE002387F82F30BB680133BB60C7 -:101C800052E07B681A1D7A601B683B6207E0FB68C4 -:101C90005A1CFA603A6A511C396212781A703B6A0F -:101CA0001B78002BF3D1002387F82F30BB6801335A -:101CB000BB6039E07B681A1D7A601A687B69F87E20 -:101CC00007F10C010090084611460A22FFF770FD4B -:101CD000002387F82F30BB680133BB6024E07B68AA -:101CE0001A1D7A601B681A467B69F87E07F10C01A1 -:101CF0000090084611461022FFF75AFD002387F88E -:101D00002F30BB680133BB600EE0FB685A1CFA60E1 -:101D100025221A70002387F82F30BB680133BB607F -:101D200002E04FF0FF3314E007E0FB685A1CFA6052 -:101D3000BA68511CB96012781A70BB681B78002B06 -:101D40007FF458AEFB6800221A70FB681A46FB69E4 -:101D5000D31A18463437BD4690BD00BF80B485B055 -:101D600000AFF860B9607A60FB681B681B785BB2F3 -:101D70002E3B0B2B00F2918001A252F823F000BF02 -:101D8000B11D01089B1E0108BF1D0108E31D0108CC -:101D9000F71D01080B1E01081F1E0108331E010854 -:101DA000471E01085B1E01086F1E0108851E010801 -:101DB0007B6801221A70BB6800221A6070E0BB6861 -:101DC0001B68002B03D17B6801221A7068E0BB6896 -:101DD0001A6813469B0013445B001A46BB681A60DE -:101DE0005EE0BB681A6813469B0013445B005A1CF4 -:101DF000BB681A6054E0BB681A6813469B00134422 -:101E00005B009A1CBB681A604AE0BB681A681346FC -:101E10009B0013445B00DA1CBB681A6040E0BB689F -:101E20001A6813469B0013445B001A1DBB681A60B6 -:101E300036E0BB681A6813469B0013445B005A1DCA -:101E4000BB681A602CE0BB681A6813469B001344F9 -:101E50005B009A1DBB681A6022E0BB681A681346D3 -:101E60009B0013445B00DA1DBB681A6018E0BB6876 -:101E70001A6813469B0013445B0003F10802BB6819 -:101E80001A600DE0BB681A6813469B0013445B00A0 -:101E900003F10902BB681A6002E04FF0FF3300E073 -:101EA000002318461437BD465DF8047B704700BF19 -:101EB00080B586B000AF7860396000237B61B8E000 -:101EC0007B681B785BB2252B40F0AD807B680133CB -:101ED0007B607B681B785BB2583B202B00F29E80B6 -:101EE00001A252F823F000BF0F2001081D200108B5 -:101EF0001D2001081D2001081D2001081D200108CA -:101F00001D2001081D2001081D2001081D200108B9 -:101F10001D2001086D1F01087B1F01081D200108FD -:101F2000891F01081D2001081D2001087B1F0108D1 -:101F30001D2001081D2001081D2001081D20010889 -:101F40001D2001081D2001081D2001081D20010879 -:101F50001D200108EF1F01081D2001087B1F01083B -:101F60001D2001081D2001080F2001083B680433D3 -:101F70003B607B6901337B6154E07B690B337B61A0 -:101F80003B6804333B604DE03B68073323F00703B5 -:101F900003F108023A60D3E900231046194606F01F -:101FA000A7F90346FB60F86805F06CFE02460B4695 -:101FB00043EC102B03F0E2FA53EC102B10461946B9 -:101FC00006F096F90346FB607B6907EE903AB8EE9F -:101FD000E77AD7ED036AF2EE027A76EEA77A77EE29 -:101FE000277AFDEEE77A17EE903A7B611AE03B68BC -:101FF0001A1D3A601B683B6102E07B6901337B611B -:102000003B695A1C3A611B78002BF6D10AE07B69C8 -:1020100008337B613B6804333B6003E07B69013339 -:102020007B6100BF02E07B6901337B617B68013328 -:102030007B607B681B78002B7FF442AF7B6918467E -:102040001837BD4680BD00BF80B483B000AF7F4B62 -:102050007F4A1A607F4B804A1A60804B804A1A6020 -:10206000804B7B4A1A60804B804A1A60804B814AC1 -:102070001A60814B814A1A60814B7C4A1A60814BFD -:10208000734A1A60804B814A1A60814B724A1A6007 -:10209000804B734A1A60804B744A1A607F4B804AA7 -:1020A0001A60804B804A1A60804B814A1A60814BCB -:1020B000814A1A60814B824A1A60824B824A1A60B6 -:1020C000824B834A1A60834B834A1A60834B844A4B -:1020D0001A60844B824A1A60834B664A1A60834BAB -:1020E000834A1A60834B844A1A60844B844A1A607C -:1020F000844B854A1A60854B604A1A60844B854A36 -:102100001A60854B854A1A60854B864A1A60864B51 -:10211000864A1A60864B874A1A60874B874A1A603C -:10212000874B884A1A60884B884A1A60884B764ADF -:102130001A60884B5C4A1A60874B7C4A1A60874B4E -:10214000634A1A60864B874A1A60874B7D4A1A6039 -:10215000864B414A1A60864B5F4A1A60854B814A1A -:102160001A60854B794A1A60844B854A1A60854B00 -:102170007C4A1A60844B734A1A60844B734A1A6013 -:10218000834B614A1A60834B764A1A60824B7C4AC1 -:102190001A60824B6B4A1A60814B2F4A1A60814B3E -:1021A000434A1A60804B4C4A1A60804B504A1A606E -:1021B0007F4B804A1A60804B804A1A60804B814A6C -:1021C0001A60814B814A1A60814B824A1A60824BA5 -:1021D000824A1A60824B834A1A60834B834A1A6090 -:1021E000834B844A1A60844B844A1A60844B854A24 -:1021F0001A60854B854A1A60854B864A1A60864B61 -:10220000864A1A60864B874A1A60874B874A1A604B -:10221000874B884A1A60884B884A1A60884B674AFD -:102220001A60884B674A1A60874B684A1A60874B66 -:10223000684A1A60864B694A1A60864B1C4A1A60C3 -:10224000854B864A1A60864B0CE100BF349400200F -:10225000BC6F0020A48E0020C06F0020948E002050 -:10226000C16F0020988E00209C8E0020B870002046 -:10227000A08E00203C700020A88E00204670002018 -:1022800030940020148F00203C8F0020C46F002069 -:10229000488F00201C8F0020408F0020308F0020AE -:1022A000BC700020248F002064700020448F002028 -:1022B000CC700020348F0020C0700020288F0020B8 -:1022C000C4700020188F0020C8700020848F002068 -:1022D00068700020208F0020CC6F00202C8F002001 -:1022E000D86F0020DC8F0020909000209490002078 -:1022F0003E700020849000204070002098900020C4 -:1023000042700020809000204470002078900020CF -:102310008C90002048700020889000204A70002097 -:102320007C9000204C7000200C9000205470002005 -:10233000F08F002050700020E48F002058700020A3 -:10234000009000205C700020EC8F00206070002066 -:10235000FC8F0020C88E0020D08E0020C08E002070 -:10236000D48E00206C700020BC8E0020E88E0020EF -:10237000E48E0020EC8E0020F08E0020A49000203F -:10238000B86F0020AC900020B4900020A0900020F6 -:10239000B090002004710020F8700020007100202F -:1023A000B88E0020AC8E0020B08E0020B48E0020AD -:1023B00074900020707000206490002074700020E1 -:1023C0006C90002078700020689000207C700020C5 -:1023D00060900020807000207090002084700020A9 -:1023E0002890002088700020509000208C700020E1 -:1023F000349000209070002044900020A0700020B5 -:1024000054900020A470002024900020A870002088 -:102410003C900020947000203090002098700020A4 -:102420005C9000209C7000204C900020AC7000203C -:1024300040900020B070002058900020B470002020 -:10244000708E0020848E0020788E00207C8E0020EC -:10245000908E0020608E00208C8E0020D070002096 -:102460006C8E00200D4A1A600D4B0E4A1A600E4BFE -:102470000E4A1A600E4B0F4A1A600123FB7197F93E -:102480000730002B01D0002300E0FF235BB2184689 -:102490000C37BD465DF8047B704700BFC07000205C -:1024A000688E0020C4700020808E0020C87000203C -:1024B000648E0020BC70002080B584B000AF022381 -:1024C000FB8100F095F800F0C3F80C23BB800023DB -:1024D000BB81FB89FB8000237B8101233B813B1D6A -:1024E0004FF08040194601F0E3FB0423BB8000233A -:1024F000BB81FB89FB8000237B8101233B813B1D4A -:102500004FF08040194601F0D3FB4FF0804001218D -:1025100001F06CFA4FF080401421012201F0B6FC6A -:102520004FF08040142101F0D5FC1037BD4680BD2E -:1025300080B584B000AFF860B9607A603B6000F0AD -:1025400003FA104B1A88FB681A800F4B1A88BB6875 -:102550001A800E4B1A887B681A800D4B1A883B68CC -:102560001A80084B00221A80074B00221A80074B62 -:1025700000221A80064B00221A8000F0DDF9103785 -:10258000BD4680BDD4700020D6700020D8700020D9 -:10259000DA70002080B500AF4FF08040102101F0CC -:1025A000A9FC0346002B0AD04FF08040102101F017 -:1025B000CBFC0D4B1B8801339AB20B4B1A804FF0AA -:1025C0008040042101F096FC0346002B0AD04FF016 -:1025D0008040042101F0B8FC044B1B8801339AB2FF -:1025E000024B1A8080BD00BFD8700020DA70002036 -:1025F00080B582B000AF0220012102F05DFB012313 -:10260000FB7103237B710023BB7102233B7140F6F6 -:1026100038033B603B460D48194601F0C1FD0B48AD -:102620000421022201F092FE08480521022201F055 -:102630008DFE06480B21012201F088FE034803218C -:10264000012201F083FE0837BD4680BD0004024030 -:1026500080B582B000AF0120012102F04BFB0220C7 -:10266000012102F047FB1C233B710123FB71002376 -:102670007B710023BB713B1D184601F0ADFF08378D -:10268000BD4680BD80B586B000AF214B1B680022DF -:102690001A600420012102F00FFB4FF48040012159 -:1026A00002F046FB00233B750023BB754FF400533B -:1026B0003B610223FB7503237B7507F1100315486B -:1026C000194601F06DFD02200D2101F095FE4FF439 -:1026D0000053BB600123BB7300233B7308237B7350 -:1026E00007F10803184601F0C5FE28233B710023BB -:1026F0007B710023BB710123FB713B1D184601F068 -:102700006BFF00235BB218461837BD4680BD00BF83 -:10271000349400200008024098B500AF4FF40050F8 -:1027200001F016FF0346002B09D0054B1C68FEF78D -:1027300009FD034623604FF4005001F02DFF98BDC2 -:102740003494002080B500AF5C485D4902F0DCFBAA -:102750000346012B16D15B4B1B78DBB2002B08D054 -:10276000594B1B78DBB255481946002202F058FB42 -:10277000A3E0554B1B78DBB250481946012202F00A -:102780004FFB9AE04D48514902F0BEFB0346012B36 -:1027900006D04A484E4902F0B7FB0346012B3DD113 -:1027A0004648142102F098FB4448182102F094FB9B -:1027B000444B1B78DBB2002B2FD0464B1B78DBB28F -:1027C000022B0ED1444B1B78DBB23C48194602F079 -:1027D00065FB404B1B78DBB2013BDAB23D4B1A7014 -:1027E0001BE03C4B1B78DBB2012B0ED13B4B1B7823 -:1027F000DBB23248194602F051FB364B1B78DBB294 -:10280000013BDAB2334B1A7007E02C48012102F089 -:10281000E7FA334B00221A704FE04EE02748314967 -:1028200002F072FB0346012B47D12448142102F029 -:1028300053FB2248182102F04FFB264B1B78DBB2DA -:10284000013BDAB2234B1A70224B1B78DBB2032B0D -:1028500007D11A4802F032FB03461A46224B1A707F -:102860002BE01C4B1B78DBB2022B07D1134802F084 -:1028700025FB03461A461D4B1A701EE0154B1B78AC -:10288000DBB2012B0BD10D48002102F0E7FA0B4817 -:1028900002F014FB03461A46154B1A700DE0074868 -:1028A000012102F09DFA054802F008FB03461A4692 -:1028B000104B1A700A4B00221A7080BD005800405D -:1028C00001000010E3700020DC7000200200001006 -:1028D00004000010E4700020DD700020DE70002095 -:1028E000E570002040000010DF700020E070002044 -:1028F000E1700020E270002080B500AF094801219E -:1029000002F06EFA084B00221A700648074902F0DE -:102910002FFB0448064902F02BFB0248054902F050 -:1029200027FB80BD00580040E57000200004001027 -:10293000000200100001001080B400AF62B6BD4676 -:102940005DF8047B704700BF80B400AF72B6BD462F -:102950005DF8047B704700BF80B59CB000AFF860A5 -:10296000B9607A603B600023FB660023BB660023EE -:1029700087F86730002387F8663000233B66002322 -:10298000FB650023BB650023A7F8563000233B6599 -:102990000023FB640023BB640023A7F84630FB68D8 -:1029A0001B79022B04D0042B45D0002B23D064E0EC -:1029B0007E4BFA681A607E4BFB664FF48023BB6641 -:1029C000072387F86730272387F86630794B3B6603 -:1029D0004FF48073FB650823BB650823A7F85630C6 -:1029E000744B3B654FF40073FB640823BB640923FD -:1029F000A7F8463041E0704BFA681A606F4BFB66EF -:102A00001023BB66072387F86730252387F86630D5 -:102A10006B4B3B664023FB650223BB650623A7F88F -:102A20005630674B3B658023FB640223BB6407235E -:102A3000A7F8463021E0634BFA681A60624BFB66E8 -:102A40004FF48013BB66082387F86730352387F877 -:102A50006630584B3B660423FB650823BB650223A5 -:102A6000A7F85630594B3B654FF48053FB64042361 -:102A7000BB640C23A7F8463000BF7B689BB2BB85C4 -:102A8000BB683B63D7F880307B63BB6F9BB23B87EF -:102A90003B68FB63FB6F3B64FB6803F1200207F1BB -:102AA000380310461946FEF707FDFB6803F10802DC -:102AB00007F12C0310461946FEF7FEFCB86D012104 -:102AC00002F0FAF8B86C012102F0F6F8FB6E3B4A0E -:102AD000934202D03E4A934204D1B86E012102F0E3 -:102AE00027F904E0B86E012102F004F900BF0123C8 -:102AF00087F82B30032387F82930022387F8283002 -:102B0000002387F82A30FB6D7B6207F12403386EBF -:102B1000194601F045FBFB6C7B6207F12403386D1D -:102B2000194601F03DFBB7F8562097F86730386E2C -:102B300011461A4601F00AFCB7F8462097F86730AC -:102B4000386D11461A4601F001FCFB681B687B6179 -:102B500000233B840C23FB830023BB8300237B8364 -:102B600000233B8307F11403F86E194601F092FD30 -:102B7000F86E012101F048FEF86E40F22551012265 -:102B800001F084FE97F866303B740123FB74002348 -:102B90007B740023BB7407F11003184601F01CFD81 -:102BA00000235BB218467037BD4680BDEC70002034 -:102BB00000480040000C0240E87000200010014076 -:102BC00000040240F0700020005000400008024065 -:102BD0000014014080B586B000AFF860B9601346BC -:102BE000FB80FF23FB75BB68002B14D0FB6803F14F -:102BF0002002FB881046B9681A46FEF7CDFC386102 -:102C00003B69002B01DB3B69FB753B69002B02DD57 -:102C1000F86800F017F8FB7D5BB218461837BD4620 -:102C200080BD00BF80B582B000AF786039607B683E -:102C3000083318463968FEF709FD03461846083779 -:102C4000BD4680BD80B582B000AF7860786800F086 -:102C500001F90346184640F22771012201F016FEE1 -:102C60000837BD4680BD00BF80B582B000AF786038 -:102C7000786800F0EFF80346184640F2277100220A -:102C800001F004FE0837BD4680BD00BF90B583B09B -:102C900000AF244B00221A702348202101F03EFE91 -:102CA0000346012B11D1214B01221A70204B1B68C6 -:102CB00003F108041C4801F0D9FD0346DBB25BB206 -:102CC00020461946FEF724FC24E01748802101F035 -:102CD00025FE0346012B1DD1154B1B68DB6A002B1B -:102CE00010D0134B1B6803F12002FB1D1046194640 -:102CF000FEF7ACFCFB795BB29BB20B48194601F0C6 -:102D0000A3FD07E0074B01221A70094B1B68184608 -:102D1000FFF7AAFF044840F2255101F01BFE0C37D3 -:102D2000BD4690BD342E002000100140352E0020FD -:102D3000E870002090B583B000AF2048202101F05A -:102D4000EDFD0346012B0ED11D4B1B6803F108045A -:102D50001A4801F08BFD0346DBB25BB220461946F0 -:102D6000FEF7D6FB21E01548802101F0D7FD034690 -:102D7000012B1AD1124B1B68DB6A002B10D0104BB1 -:102D80001B6803F12002FB1D10461946FEF75EFC8E -:102D9000FB795BB29BB20948194601F055FD04E08E -:102DA000074B1B681846FFF75FFF044840F2277186 -:102DB00001F0D0FD0C37BD4690BD00BF004800407B -:102DC000EC70002090B583B000AF2048202101F0C6 -:102DD000A5FD0346012B0ED11D4B1B6803F1080412 -:102DE0001A4801F043FD0346DBB25BB220461946A8 -:102DF000FEF78EFB21E01548802101F08FFD034690 -:102E0000012B1AD1124B1B68DB6A002B10D0104B20 -:102E10001B6803F12002FB1D10461946FEF716FC45 -:102E2000FB795BB29BB20948194601F00DFD04E045 -:102E3000074B1B681846FFF717FF044840F227713D -:102E400001F088FD0C37BD4690BD00BF005000402A -:102E5000F070002080B485B000AF78600023FB6084 -:102E60007B681B79022B02D0042B03D005E0064BB4 -:102E7000FB6002E0054BFB6000BFFB68184614379F -:102E8000BD465DF8047B704700480040005000409C -:102E900080B584B000AF78600223FB7303237B739B -:102EA0000023BB737B685B78002B02D0012B03D01F -:102EB00005E000233B7304E001233B7301E0FF23A3 -:102EC000F5E07B681B780F2B00F2EE8001A252F830 -:102ED00023F000BF152F01082F2F0108492F0108EB -:102EE000632F01087D2F0108972F0108B12F0108DA -:102EF000CB2F0108E52F0108013001081D30010822 -:102F0000A930010839300108553001087130010835 -:102F10008D3001080123BB600120012101F0CCFEAE -:102F200007F108036448194601F03AF9BEE00223AC -:102F3000BB600120012101F0BFFE07F108035E48DC -:102F4000194601F02DF9B1E00423BB6001200121F5 -:102F500001F0B2FE07F108035748194601F020F9C5 -:102F6000A4E00823BB600120012101F0A5FE07F1C8 -:102F700008035148194601F013F997E01023BB608C -:102F80000120012101F098FE07F108034A48194683 -:102F900001F006F98AE02023BB600120012101F045 -:102FA0008BFE07F108034448194601F0F9F87DE06B -:102FB0004023BB600120012101F07EFE07F10803E0 -:102FC0003D48194601F0ECF870E08023BB60012019 -:102FD000012101F071FE07F108033748194601F09D -:102FE000DFF863E04FF48073BB600120012101F042 -:102FF00063FE07F108033048194601F0D1F855E0A7 -:103000004FF40073BB600120012101F055FE07F170 -:1030100008032948194601F0C3F847E04FF48063DC -:10302000BB600120012101F047FE07F1080322489F -:10303000194601F0B5F839E04FF48053BB60082021 -:10304000012101F039FE07F108031C48194601F07F -:10305000A7F82BE04FF40053BB600820012101F0DA -:103060002BFE07F108031548194601F099F81DE0F9 -:103070004FF48043BB600820012101F01DFE07F1E1 -:1030800008030E48194601F08BF80FE04FF4004397 -:10309000BB600820012101F00FFE07F1080307487B -:1030A000194601F07DF801E0FE2300E000235BB249 -:1030B00018461037BD4680BD00000240000C02409B -:1030C00080B582B000AF78607B681B780F2B00F270 -:1030D000938001A252F823F0193101082731010829 -:1030E0003531010843310108513101085F310108D0 -:1030F0006D3101087B3101088931010899310108DE -:10310000A9310108F9310108B9310108C9310108B3 -:10311000D9310108E93101083A48012101F0CEF81E -:103120000346DBB269E03748022101F0C7F80346E5 -:10313000DBB262E03348042101F0C0F80346DBB2A1 -:103140005BE03048082101F0B9F80346DBB254E0F7 -:103150002C48102101F0B2F80346DBB24DE02948BB -:10316000202101F0ABF80346DBB246E025484021C0 -:1031700001F0A4F80346DBB23FE02248802101F0D1 -:103180009DF80346DBB238E01E484FF4807101F031 -:1031900095F80346DBB230E01A484FF4007101F0B5 -:1031A0008DF80346DBB228E016484FF4806101F049 -:1031B00085F80346DBB220E013484FF4805101F05C -:1031C0007DF80346DBB218E00F484FF4005101F0E0 -:1031D00075F80346DBB210E00B484FF4804101F074 -:1031E0006DF80346DBB208E007484FF4004101F0F8 -:1031F00065F80346DBB200E0FC235BB218460837F3 -:10320000BD4680BD00000240000C024080B582B087 -:1032100000AF78607B681B780F2B75D801A252F83D -:1032200023F000BF653201086F32010879320108CE -:10323000833201088D32010897320108A13201085A -:10324000AB320108B5320108C1320108CD320108A4 -:1032500009330108D9320108E5320108F1320108C9 -:10326000FD3201082C48012101F042F84EE02A48C5 -:10327000022101F03DF849E02748042101F038F827 -:1032800044E02548082101F033F83FE022481021AE -:1032900001F02EF83AE02048202101F029F835E02D -:1032A0001D48402101F024F830E01B48802101F046 -:1032B0001FF82BE018484FF4807101F019F825E051 -:1032C00015484FF4007101F013F81FE012484FF455 -:1032D000806101F00DF819E010484FF4805101F0C1 -:1032E00007F813E00D484FF4005101F001F80DE02C -:1032F0000A484FF4804100F0FBFF07E007484FF415 -:10330000004100F0F5FF01E0FB2300E001235BB288 -:1033100018460837BD4680BD00000240000C024040 -:1033200080B582B000AF78607B681B780F2B75D8B2 -:1033300001A252F823F000BF79330108833301085A -:103340008D33010897330108A1330108AB3301081D -:10335000B5330108BF330108C9330108D53301086B -:10336000E13301081D340108ED330108F933010888 -:1033700005340108113401082C48012100F0C6FF72 -:103380004EE02A48022100F0C1FF49E0274804210D -:1033900000F0BCFF44E02548082100F0B7FF3FE003 -:1033A0002248102100F0B2FF3AE02048202100F02E -:1033B000ADFF35E01D48402100F0A8FF30E01B487C -:1033C000802100F0A3FF2BE018484FF4807100F03B -:1033D0009DFF25E015484FF4007100F097FF1FE0B6 -:1033E00012484FF4806100F091FF19E010484FF44B -:1033F000805100F08BFF13E00D484FF4005100F0B6 -:1034000085FF0DE00A484FF4804100F07FFF07E0A0 -:1034100007484FF4004100F079FF01E0FA2300E093 -:1034200000235BB218460837BD4680BD000002404D -:10343000000C024080B592B000AF78600023A7F87E -:1034400046300420012101F037FC4FF44073FB6348 -:10345000022387F84030002387F84230012387F8A1 -:103460004330032387F8413007F13C03674819468E -:1034700000F096FE65480821032200F067FF6348CC -:103480000921032200F062FF07F10C03184601F046 -:1034900069FB0220012101F04BFC7B689B79002B2A -:1034A0001DD17B6842F210729A807B689B88013B39 -:1034B0007B63BA697B689B887968096801FB03F3C1 -:1034C000B2FBF3F3A7F84630B7F84630013B9BB2A6 -:1034D0003B8600233B87002387F83A304BE07B682C -:1034E0009B79002B47D07B681B68B3F5FA7F08D324 -:1034F0007B681A6840F213539A4202D807233B862E -:1035000027E07B681B68632B07D97B681B68B3F5D2 -:10351000FA7F02D20F233B861BE07B681B68312BAE -:1035200006D97B681B68632B02D81F233B8610E0FB -:103530007B681A6840F213539A4208D97B681A686C -:1035400044F620639A4202D800233B8601E0FF2321 -:1035500057E0BA697B681B68398E013101FB03F3C0 -:10356000B2FBF3F39AB27B689A807B689B88013B3D -:103570007B6300233B877B68DB79022B06D0032B20 -:1035800007D0012B08D120237B8607E040237B86D0 -:1035900004E060237B8601E0FF2332E007F1300383 -:1035A0001B48194600F09EF96023BB830123FB836F -:1035B00000233B8500237B6200233B8400237B8523 -:1035C0000023BB850023FB8507F11C031048194627 -:1035D00000F02CFA0E48082100F030FB07F11C0324 -:1035E0000B48194600F0A8FA0948082100F042FBF0 -:1035F0000748012100F0FAF90548012100F020FCFC -:1036000000235BB218464837BD4680BD0008024023 -:103610000004014080B584B000AFF8600B4687ED30 -:10362000010AFB72FB7A002B02D0012B32D063E03F -:10363000354B1B78002B0DD0FB689B8807EE903A2A -:10364000B8EEE77AD7ED017A67EE277AFB68C3ED2B -:10365000027A53E0FB689B8807EE903AB8EEE77A6F -:10366000D7ED017A67EE277AFCEEE77A17EE903A0B -:103670002648194600F0C6FAFB689B8807EE903A88 -:10368000B8EEE77AD7ED017A67EE277AFB68C3EDEB -:10369000027A33E01C4B5B78002B0DD0FB689B88D3 -:1036A00007EE903AB8EEE77AD7ED017A67EE277A1F -:1036B000FB68C3ED027A21E0FB689B8807EE903A35 -:1036C000B8EEE77AD7ED017A67EE277AFCEEE77A73 -:1036D00017EE903A0D48194600F0A2FAFB689B8855 -:1036E00007EE903AB8EEE77AD7ED017A67EE277ADF -:1036F000FB68C3ED037A01E0FC2300E000235BB22A -:1037000018461037BD4680BD60000020000401400F -:1037100080B582B000AF78600B46FB70FB78002B61 -:1037200002D0012B0FD01DE0124B00221A707B68D3 -:10373000D3ED027AFCEEE77A17EE903A0E4819467E -:1037400000F060FA10E00B4B00225A707B68D3ED5A -:10375000037AFCEEE77A17EE903A0748194600F034 -:103760005FFA01E0FE2300E000235BB21846083751 -:10377000BD4680BD600000200004014080B582B0DD -:1037800000AF0346FB71FB79002B02D0012B08D060 -:103790000FE00C4B01221A700B48002100F032FAA6 -:1037A00009E0084B01225A700748002100F038FA5E -:1037B00001E0FD2300E000235BB218460837BD4658 -:1037C00080BD00BF600000200004014080B58CB0C7 -:1037D00000AF78607B681A68344B1A60002387F862 -:1037E0002F30032387F82D30002387F82E30022353 -:1037F00087F82C302023BB621020012101F05CFAF5 -:1038000007F128032A48194600F0CAFC2848052178 -:10381000032200F09BFD4FF48030012101F088FA73 -:103820000023BB840023FB8340F28F63BB834FF6EE -:10383000FF733B6240F6B8333B6207F11C031D483F -:10384000194600F04FF818233B760123FB7600233E -:103850007B760023BB7607F11803184600F0BCFE08 -:103860000023BB810023BB820223FB8100237B82D8 -:1038700001233B8207F10C030E48194600F018FAA9 -:103880000C480221012200F001FB0A480421002219 -:1038900000F0FCFA07480121012200F0F7FA054880 -:1038A000012100F0A3F83037BD4680BDF470002040 -:1038B000001002400040014080B500AF074B1B687C -:1038C00098470748022100F03FFB0548042100F01B -:1038D0003BFB0348012100F037FB80BDF470002062 -:1038E0000040014080B485B000AF786039600023AB -:1038F000FB817B681B88FB817A68284B9A4213D036 -:103900007A68274B9A420FD07B68B3F1804F0BD077 -:103910007A68244B9A4207D07A68234B9A4203D0A4 -:103920007A68224B9A4208D1FB8923F07003FB810D -:103930003B685A88FB891343FB817A681C4B9A4287 -:103940000CD07A681B4B9A4208D0FB8923F4407351 -:10395000FB813B681A89FB891343FB817B68FA89E9 -:103960001A803B685A687B68DA623B681A887B6811 -:103970001A857A68094B9A4203D07A68084B9A42B2 -:1039800004D13B689B7A1A467B681A867B680122C1 -:103990009A821437BD465DF8047B704700000140F1 -:1039A000000401400004004000080040000C0040FA -:1039B000001000400014004080B483B000AF786075 -:1039C00039607B683A685A620C37BD465DF8047B03 -:1039D000704700BF80B483B000AF78607B685B6ADB -:1039E00018460C37BD465DF8047B704780B483B041 -:1039F00000AF78600B46FB70FB78002B08D07B682B -:103A00001B889BB243F001039AB27B681A8007E0DF -:103A10007B681B889BB223F001039AB27B681A80F3 -:103A20000C37BD465DF8047B704700BF80B485B09D -:103A300000AF7860396000237B810023FB81002385 -:103A4000BB817B681B8C9BB223F480739AB27B682A -:103A50001A847B681B8CFB817B689B88BB817B689D -:103A60009B8B7B817B8923F070037B817B8923F097 -:103A700003037B813B681A887B8913437B81FB8925 -:103A800023F40073FB813B689B891B029AB2FB897C -:103A90001343FB813B685B881B029AB2FB8913438B -:103AA000FB817A68224B9A4203D07A68214B9A4272 -:103AB0002BD1FB8923F40063FB813B68DB891B026C -:103AC0009AB2FB891343FB81FB8923F48063FB815A -:103AD0003B689B881B029AB2FB891343FB81BB891D -:103AE00023F48053BB81BB8923F40053BB813B6823 -:103AF0001B8A1B019AB2BB891343BB813B685B8A5B -:103B00001B019AB2BB891343BB817B68BA899A8037 -:103B10007B687A899A833B689A687B68DA637B68FA -:103B2000FA891A841437BD465DF8047B704700BFDC -:103B3000000001400004014080B485B000AF78600F -:103B400039600023BB8100237B810023FB817B68DC -:103B50001B8C9BB223F480539AB27B681A847B68D7 -:103B60001B8C7B817B689B88FB817B689B8BBB81EB -:103B7000BB8923F4E043BB81BB8923F44073BB8141 -:103B80003B681B881B029AB2BB891343BB817B89AC -:103B900023F400537B813B689B891B039AB27B898A -:103BA00013437B813B685B881B039AB27B89134379 -:103BB0007B817A68114B9A4203D07A68104B9A4203 -:103BC0000AD1FB8923F48043FB813B681B8A9B015C -:103BD0009AB2FB891343FB817B68FA899A807B68E0 -:103BE000BA899A833B689A687B681A647B687A8989 -:103BF0001A841437BD465DF8047B7047000001400D -:103C00000004014080B483B000AF786039607B6805 -:103C10003A68DA630C37BD465DF8047B704700BF35 -:103C200080B483B000AF786039607B683A681A640A -:103C30000C37BD465DF8047B704700BF80B485B08B -:103C400000AF78600B467B800023FB817B689B8BF9 -:103C5000FB81FB8923F00803FB81FA897B881343EE -:103C6000FB817B68FA899A831437BD465DF8047B33 -:103C7000704700BF80B485B000AF78600B467B8092 -:103C80000023FB817B689B8BFB81FB8923F4006312 -:103C9000FB817B881B029AB2FB891343FB817B6803 -:103CA000FA899A831437BD465DF8047B704700BFDC -:103CB00080B582B000AF786039603B681B88002B0C -:103CC0000FD13B6859883B689A883B681B897868A4 -:103CD00000F04AF93B68DB887868194600F03CF848 -:103CE00036E03B681B88042B0FD13B6859883B6842 -:103CF0009A883B681B89786800F072F93B68DB881A -:103D00007868194600F044F822E03B681B88082BCD -:103D10000FD13B6859883B689A883B681B89786853 -:103D200000F0A4F93B68DB887868194600F04EF88B -:103D30000EE03B6859883B689A883B681B89786825 -:103D400000F0D6F93B68DB887868194600F05AF82D -:103D50000837BD4680BD00BF80B483B000AF786037 -:103D60000B467B807B681B8B9BB223F00C039AB2C3 -:103D70007B681A837B681B8B9AB27B8813439AB249 -:103D80007B681A830C37BD465DF8047B704700BF23 -:103D900080B483B000AF78600B467B807B681B8B60 -:103DA0009BB223F440639AB27B681A837B681B8BB7 -:103DB0009AB27B881B029BB213439AB27B681A8328 -:103DC0000C37BD465DF8047B704700BF80B483B0FC -:103DD00000AF78600B467B807B689B8B9BB223F0A7 -:103DE0000C039AB27B689A837B689B8B9AB27B8820 -:103DF00013439AB27B689A830C37BD465DF8047B07 -:103E0000704700BF80B483B000AF78600B467B8002 -:103E10007B689B8B9BB223F440639AB27B689A8346 -:103E20007B689B8B9AB27B881B029BB213439AB22E -:103E30007B689A830C37BD465DF8047B704700BFF2 -:103E400080B483B000AF78600B46FB70FB78002B2A -:103E50000CD07B68B3F844309BB26FEA43436FEAFF -:103E600053439AB27B68A3F8442009E07B68B3F817 -:103E700044309BB2C3F30E039AB27B68A3F844208C -:103E80000C37BD465DF8047B704700BF80B483B03B -:103E900000AF786013460A467A807B707B78002BEF -:103EA00008D07B689B899AB27B8813439AB27B685F -:103EB0009A8109E07B689B899AB27B88DB439BB23D -:103EC00013409AB27B689A810C37BD465DF8047B3B -:103ED000704700BF80B483B000AF78600B467B8032 -:103EE0007B88DB439AB27B681A820C37BD465DF84B -:103EF000047B704780B485B000AF78600B467B8050 -:103F00000023FB730023BB8100237B817B681B8A1A -:103F10009AB27B881340BB817B689B899AB27B886D -:103F200013407B81BB89002B05D07B89002B02D0FD -:103F30000123FB7301E00023FB73FB7B184614375E -:103F4000BD465DF8047B704780B483B000AF7860F5 -:103F50000B467B807B88DB439AB27B681A820C37E6 -:103F6000BD465DF8047B704780B487B000AFF86051 -:103F700079813A81FB800023FB820023BB82FB68AE -:103F80001B8C9BB223F001039AB2FB681A84FB6876 -:103F90001B8BFB82FB681B8CBB82FB8A23F0F30329 -:103FA000FB82FB881B019AB23B8913439AB2FB8ABE -:103FB0001343FB82BB8A23F00A03BB827A89BB8A44 -:103FC00013439BB243F00103BB82FB68FA8A1A8356 -:103FD000FB68BA8A1A841C37BD465DF8047B7047BB -:103FE00080B487B000AFF86079813A81FB8000230C -:103FF000FB820023BB8200237B82FB681B8C9BB26D -:1040000023F010039AB2FB681A84FB681B8BFB82B7 -:10401000FB681B8CBB827B891B017B82FB8A23F4A0 -:1040200040731B051B0DFB82FB881B039AB2FB8AA6 -:104030001343FB823B891B029AB2FB8A1343FB8228 -:10404000BB8A23F0A003BB827A8ABB8A13439BB24C -:1040500043F01003BB82FB68FA8A1A83FB68BA8AB2 -:104060001A841C37BD465DF8047B704780B487B066 -:1040700000AFF86079813A81FB800023FB82002346 -:10408000BB8200237B82FB681B8C9BB223F4807372 -:104090009AB2FB681A84FB689B8BFB82FB681B8CC3 -:1040A000BB827B891B027B82FB8A23F0F303FB82AA -:1040B000FB881B019AB23B8913439AB2FB8A1343D4 -:1040C000FB82BB8A23F42063BB827A8ABB8A1343B8 -:1040D0009BB243F48073BB82FB68FA8A9A83FB68C5 -:1040E000BA8A1A841C37BD465DF8047B704700BF4E -:1040F00080B487B000AFF86079813A81FB800023FB -:10410000FB820023BB8200237B82FB681B8C9BB25B -:1041100023F480539AB2FB681A84FB689B8BFB8262 -:10412000FB681B8CBB827B891B037B82FB8A23F48D -:1041300040731B051B0DFB823B891B029AB2FB8A55 -:104140001343FB82FB881B039AB2FB8A1343FB8257 -:10415000BB8A23F400535B045B0CBB827A8ABB8A64 -:1041600013439BB243F48053BB82FB68FA8A9A8361 -:10417000FB68BA8A1A841C37BD465DF8047B704719 -:1041800080B483B000AF7860044B7A68D2B21A7002 -:104190000C37BD465DF8047B704700BF003C024011 -:1041A00080B487B000AF7860396000237B61002362 -:1041B0003B610023FB6000237B6176E07B69012289 -:1041C00002FA03F33B613B681A683B691340FB60EA -:1041D000FA683B699A4265D17B681A687B695B0023 -:1041E000032101FA03F3DB431A407B681A607B6802 -:1041F0001A683B681B7919467B695B0001FA03F377 -:104200001A437B681A603B681B79012B03D03B681B -:104210001B79022B2ED17B689A687B695B00032196 -:1042200001FA03F3DB431A407B689A607B689A6863 -:104230003B685B7919467B695B0001FA03F31A431B -:104240007B689A607B685A687B699BB2012101FA9E -:1042500003F3DB431A407B685A607B685A683B680B -:104260009B7919467B699BB201FA03F39BB21A430F -:104270007B685A607B68DA687B699BB25B000321CC -:1042800001FA03F3DB431A407B68DA607B68DA6883 -:104290003B68DB7919467B695B0001FA03F31A433B -:1042A0007B68DA607B6901337B617B690F2B85D981 -:1042B0001C37BD465DF8047B704700BF80B485B0F5 -:1042C00000AF78600B467B800023FB737B681A6924 -:1042D0007B881340002B02D00123FB7301E00023F5 -:1042E000FB73FB7B18461437BD465DF8047B7047B3 -:1042F00080B483B000AF78600B467B807B687A889F -:104300001A830C37BD465DF8047B704780B483B0D8 -:1043100000AF78600B467B807B687A885A830C37C5 -:10432000BD465DF8047B704780B483B000AF786011 -:104330000B467B807B685A697B885A407B685A6150 -:104340000C37BD465DF8047B704700BF80B485B074 -:1043500000AF786013460A467A807B700023FB60CA -:104360000023BB607A787B8803F007039B0002FA86 -:1043700003F3FB607B88DB089BB21A467B88DB0873 -:104380009BB219467B68083153F821107B8803F0F3 -:1043900007039B000F2000FA03F3DB4319407B68FF -:1043A000083243F822107B88DB089BB21A467B68F0 -:1043B000083253F82220FB681343BB607B88DB087C -:1043C0009BB21A467B680832B96843F8221014374A -:1043D000BD465DF8047B704780B483B000AF0346F0 -:1043E000FB71044BFA791A600C37BD465DF8047B0B -:1043F000704700BF20000E4290B484B000AF024668 -:104400000B46FA71BB710023FB60BB7903F0030319 -:104410009B000F2202FA03F3FB60154BBA79920856 -:10442000D2B21349B8798008C0B2023051F82000E6 -:10443000F968C9430140023243F822100C4BBA79A3 -:104440009208D2B20A49B8798008C0B2023051F855 -:104450002000FC79B97901F00301890004FA01F127 -:104460000143023243F822101037BD4690BC70471A -:104470000038014080B485B000AF78600023FB6055 -:10448000324BFB607B689B79002B4DD02F4B2F4A22 -:1044900011687A681268D2430A401A602B4B2B4A83 -:1044A00051687A681268D2430A405A607B681B7967 -:1044B000FA681344FB60FB68FA6811687A6812684E -:1044C0000A431A60214B214A91687A681268D243E4 -:1044D0000A409A601D4B1D4AD1687A681268D2431F -:1044E0000A40DA607B685B79102B0ED1174B174AB4 -:1044F00091687A6812680A439A60144B134AD1682B -:104500007A6812680A43DA601BE0104BFB607B6834 -:104510005B79FA681344FB60FB68FA6811687A6893 -:1045200012680A431A600CE07B681B79FA6813442E -:10453000FB60FB68FA6811687A681268D2430A4027 -:104540001A601437BD465DF8047B7047003C01409B -:1045500080B485B000AF78600023FB730023BB609C -:104560000C4B1A687B681340BB600A4B5A697B6826 -:104570001340002B05D0BB68002B02D00123FB7336 -:1045800001E00023FB73FB7B18461437BD465DF842 -:10459000047B7047003C014080B483B000AF78607A -:1045A000034B7A685A610C37BD465DF8047B70474F -:1045B000003C014080B483B000AF7860054A7B685E -:1045C00043F0BF6343F40033D3600C37BD465DF85E -:1045D000047B704700ED00E080B485B000AF7860E8 -:1045E0000023FB730023BB730F237B737B68DB7893 -:1045F000002B37D0254BDB68DB4303F4E0631B0A59 -:10460000FB73FB7BC3F10403BB737A7BFB7B42FA36 -:1046100003F37B737B685B781A46BB7B02FA03F378 -:10462000FB737B689A787B7B1340DAB2FB7B134386 -:10463000FB73FB7B1B01FB73154A7B681B781344E0 -:10464000FA7B83F80023124B7A6812785209D2B2AF -:104650007968097801F01F01012000FA01F143F89F -:1046600022100EE00A4B7A6812785209D2B27968A9 -:10467000097801F01F01012000FA01F1203243F80E -:1046800022101437BD465DF8047B704700ED00E052 -:1046900000E100E080B58AB000AF786039600023A7 -:1046A0007B6200233B620023FB610023BB617B68CC -:1046B0001B8A9BB27B627B6A23F440537B623B681C -:1046C000DB887A6A13437B627B6A9AB27B681A82C0 -:1046D0007B689B899BB27B627B6A23F4B05323F097 -:1046E0000C037B623B689A883B681B8913439AB230 -:1046F0003B685B8913439BB27A6A13437B627B6A94 -:104700009AB27B689A817B689B8A9BB27B627B6A48 -:1047100023F440737B623B689B897A6A13437B6214 -:104720007B6A9AB27B689A8207F10803184600F008 -:1047300019FA7A68314B9A4203D07A68304B9A4220 -:1047400002D17B693B6201E03B693B627B689B89EC -:104750009BB29BB21BB2002B0CDA3A6A13469B0049 -:1047600013449A001A443B681B685B00B2FBF3F3E6 -:10477000FB610BE03A6A13469B0013449A001A440B -:104780003B681B689B00B2FBF3F3FB61FA691D4BAE -:10479000A3FB02135B091B017B627B6A1B0964227A -:1047A00002FB03F3FA69D31ABB617B689B899BB256 -:1047B0009BB21BB2002B0DDABB69DB0003F13202A6 -:1047C000104BA3FB02135B0903F007037A6A134340 -:1047D0007B620CE0BB691B0103F13202094BA3FBB6 -:1047E00002135B0903F00F037A6A13437B627B6A4F -:1047F0009AB27B681A812837BD4680BD00100140FF -:10480000001401401F85EB5180B483B000AF786085 -:104810000B46FB70FB78002B08D07B689B899BB212 -:1048200043F400539AB27B689A8107E07B689B89C6 -:104830009BB223F400539AB27B689A810C37BD4631 -:104840005DF8047B704700BF80B483B000AF786030 -:104850000B467B807B88C3F308039AB27B689A80FF -:104860000C37BD465DF8047B704700BF80B483B051 -:1048700000AF78607B689B889BB2C3F308039BB250 -:1048800018460C37BD465DF8047B704780B487B08E -:1048900000AF786013460A467A807B7000233B6144 -:1048A0000023FB600023BB6000237B617B687B618E -:1048B0007B88DBB25B09DBB23B617B8803F01F03C3 -:1048C000FB60FB68012202FA03F3BB603B69012B2A -:1048D00003D17B690C337B6109E03B69022B03D177 -:1048E0007B6910337B6102E07B6914337B617B78E9 -:1048F000002B06D07B697A691168BA680A431A608E -:1049000006E07B697A691168BA68D2430A401A6086 -:104910001C37BD465DF8047B704700BF80B485B08E -:1049200000AF78600B467B800023FB737B681B889D -:104930009AB27B8813409BB2002B02D00123FB73F9 -:1049400001E00023FB73FB7B18461437BD465DF87E -:10495000047B704780B485B000AF78600B467B80E5 -:104960000023FB810023BB817B881B0AFB81FB8921 -:10497000012202FA03F3BB81BB89DB439AB27B6855 -:104980001A801437BD465DF8047B704780B400AFD1 -:10499000124B124A126842F001021A600F4B0022B9 -:1049A0009A600E4A0D4B1B6823F0A16323F48033F9 -:1049B00013600A4B0A4A5A60084B0A4AC3F884201B -:1049C000064B064A126822F480221A60034B00222A -:1049D000DA60BD465DF8047B704700BF00380240D6 -:1049E000103000240030002080B483B000AF0346B4 -:1049F000FB71044BFA791A600C37BD465DF8047BF5 -:104A0000704700BF0000474280B485B000AFF86037 -:104A1000B9607A603B600A4B7A689101BA681143C9 -:104A20003A685208013A12041143FA681143BA690C -:104A300012060A435A601437BD465DF8047B70477E -:104A40000038024080B483B000AF0346FB71044BD2 -:104A5000FA791A600C37BD465DF8047B704700BFD9 -:104A60006000474280B485B000AF78600023FB60EF -:104A7000094B9B68FB60FB6823F00303FB60FA684B -:104A80007B681343FB60044BFA689A601437BD4699 -:104A90005DF8047B704700BF0038024080B400AF6F -:104AA000054B9B68DBB203F00C03DBB21846BD4636 -:104AB0005DF8047B704700BF0038024080B485B0C9 -:104AC00000AF78600023FB60094B9B68FB60FB68CC -:104AD00023F0F003FB60FA687B681343FB60044B30 -:104AE000FA689A601437BD465DF8047B704700BFD2 -:104AF0000038024080B485B000AF78600023FB60CE -:104B0000094B9B68FB60FB6823F4E053FB60FA6889 -:104B10007B681343FB60044BFA689A601437BD4608 -:104B20005DF8047B704700BF0038024080B485B058 -:104B300000AF78600023FB60094B9B68FB60FB685B -:104B400023F46043FB607B68DB00FA681343FB607F -:104B5000034BFA689A601437BD465DF8047B7047D2 -:104B60000038024080B489B000AF78600023BB6198 -:104B700000237B610023FB6102233B610023FB6078 -:104B80000223BB60484B9B6803F00C03BB61BB690D -:104B9000042B07D0082B09D0002B3FD17B68434A58 -:104BA0001A603FE07B68424A1A603BE03E4B5B681C -:104BB00003F480039B0DFB603B4B5B6803F03F03FA -:104BC000BB60FB68002B0DD0394ABB68B2FBF3F227 -:104BD000354B596847F6C0730B409B0903FB02F342 -:104BE000FB610CE0314ABB68B2FBF3F22E4B596813 -:104BF00047F6C0730B409B0903FB02F3FB612A4B92 -:104C00005B6803F440331B0C01335B003B61FA69C2 -:104C10003B69B2FBF3F27B681A6003E07B68234ACE -:104C20001A6000BF204B9B6803F0F003BB61BB69B7 -:104C30001B09BB611F4ABB6913441B78DBB27B6154 -:104C40007B681A687B69DA407B685A60164B9B6800 -:104C500003F4E053BB61BB699B0ABB61154ABB69A6 -:104C600013441B78DBB27B617B685A687B69DA404E -:104C70007B689A600C4B9B6803F46043BB61BB6923 -:104C80005B0BBB610B4ABB6913441B78DBB27B61D6 -:104C90007B685A687B69DA407B68DA602437BD46F6 -:104CA0005DF8047B704700BF003802400024F40028 -:104CB00000127A006400002080B483B000AF7860F6 -:104CC0000B46FB70FB78002B06D0094B084A116B92 -:104CD0007A680A431A6306E0054B054A116B7A6845 -:104CE000D2430A401A630C37BD465DF8047B704717 -:104CF0000038024080B483B000AF78600B46FB7090 -:104D0000FB78002B06D0094B084A116C7A680A43DD -:104D10001A6406E0054B054A116C7A68D2430A40D2 -:104D20001A640C37BD465DF8047B704700380240BA -:104D300080B483B000AF78600B46FB70FB78002B2B -:104D400006D0094B084A516C7A680A435A6406E057 -:104D5000054B054A516C7A68D2430A405A640C37B5 -:104D6000BD465DF8047B70470038024080B487B0D0 -:104D700000AF0346FB710023FB6000237B6100232F -:104D8000FB74FB795B09DBB2FB60FB68012B03D191 -:104D9000124B1B687B6109E0FB68022B03D10F4BB0 -:104DA0001B6F7B6102E00D4B5B6F7B61FB7903F056 -:104DB0001F03FB60FB687A6922FA03F303F0010327 -:104DC000002B02D00123FB7401E00023FB74FB7C69 -:104DD00018461C37BD465DF8047B7047003802401A -:104DE00080B483B000AF78600B46FB70FB78002B7B -:104DF00008D07B681B889BB243F400739AB27B682F -:104E00001A8007E07B681B889BB223F400739AB278 -:104E10007B681A800C37BD465DF8047B704700BF85 -:104E200080B483B000AF786013460A46FA70BB7056 -:104E3000BB78002B04D0FB7843F00103FB7003E048 -:104E4000FB7823F00103FB70FB789AB27B681A822F -:104E50000C37BD465DF8047B704700BF80B483B05B -:104E600000AF78600B46FB70FB78002B08D07B68A6 -:104E70001B889BB243F480639AB27B681A8007E078 -:104E80007B681B889BB223F480639AB27B681A808C -:104E90000C37BD465DF8047B704700BF80B483B01B -:104EA00000AF78600B46FB70FB789AB27B681A8281 -:104EB0000C37BD465DF8047B704700BF80B483B0FB -:104EC00000AF78607B681B8A9BB2DBB218460C3758 -:104ED000BD465DF8047B704780B485B000AF786054 -:104EE0000B46FB700023FB607B68FB60FA78FB6875 -:104EF0001344FB60FB681B889BB218461437BD4601 -:104F00005DF8047B704700BF80B487B000AF786065 -:104F100039600023FB7500233B610023FB607B6845 -:104F2000FB603B681B0F3B613B6823F07F433B60AA -:104F30003B69002B03D0FB681433FB6005E03B6842 -:104F40001B0C3B60FB681833FB60FB681A683B680E -:104F50001340002B02D00123FB7501E00023FB75F9 -:104F6000FB7D18461C37BD465DF8047B704700BFCB -:104F700080B485B000AF786039600023FB603B6887 -:104F800023F07F43FB60FB689BB2DB439AB27B68F4 -:104F90009A821437BD465DF8047B704780B500AF38 -:104FA000154B154AD2F8882042F47002C3F88820C5 -:104FB000124B124A126842F001021A600F4B002293 -:104FC0009A600E4A0D4B1B6823F0847323F48033E0 -:104FD00013600A4B0A4A5A60084B084A126822F4C6 -:104FE00080221A60054B0022DA6000F087F8024B3D -:104FF0004FF000629A6080BD00ED00E00038024092 -:105000001030002480B487B000AF00233B61002340 -:105010007B610223FB600023BB6002237B60324B79 -:105020009B6803F00C033B613B69042B07D0082B02 -:1050300009D0002B3FD12D4B2D4A1A603FE02B4B5E -:105040002C4A1A603BE0284B5B6803F480039B0DFD -:10505000BB60254B5B6803F03F037B60BB68002BA4 -:105060000DD0244A7B68B2FBF3F21F4B596847F618 -:10507000C0730B409B0903FB02F37B610CE01C4AED -:105080007B68B2FBF3F2184B596847F6C0730B40CC -:105090009B0903FB02F37B61134B5B6803F4403312 -:1050A0001B0C01335B00FB607A69FB68B2FBF3F217 -:1050B0000E4B1A6003E00D4B0D4A1A6000BF0A4BFD -:1050C0009B6803F0F0031B090B4AD35CDBB23B6126 -:1050D000064B1A683B69DA40044B1A601C37BD4620 -:1050E0005DF8047B704700BF003802407400002068 -:1050F0000024F40000127A007800002080B483B00D -:1051000000AF00237B6000233B60354B344A1268BC -:1051100042F480321A60324B1B6803F400333B6068 -:105120007B6801337B603B68002B03D17B68B3F560 -:10513000A06FF0D12A4B1B6803F40033002B02D080 -:1051400001233B6001E000233B603B68012B42D11F -:10515000234B234A126C42F080521A64214B214A9D -:10516000126842F440421A601D4B1D4A92689A60D0 -:105170001B4B1B4A926842F400429A60184B184A33 -:10518000926842F4A0529A60154B174A5A60144B29 -:10519000134A126842F080721A6000BF104B1B68FD -:1051A00003F00073002BF9D0104B40F205621A6037 -:1051B0000B4B0B4A926822F003029A60084B084A94 -:1051C000926842F002029A6000BF054B9B6803F0B0 -:1051D0000C03082BF9D10C37BD465DF8047B7047F2 -:1051E000003802400070004008544007003C024074 -:1051F00080B584B002AF0123FB71FFF7C7FB01202C -:10520000FFF7F2FB00BF2120FFF7B0FD0346002BA4 -:10521000F9D0FB79002B02D00520FEF7B1FF00206A -:10522000FFF74CFC1B4B1B681846FFF763FC1A4B3F -:105230001B681846FFF77AFC07230093002008211B -:10524000A8220223FFF7E0FB0120FFF7FBFB00BFD2 -:10525000124B1B6803F00073002BF9D00220FFF7FC -:1052600001FC00BFFFF71AFC0346082BFAD14FF4EC -:1052700080400121FFF75CFD4FF080500121FFF7D6 -:1052800039FD0120FFF7A8F8FFF7BCFE0837BD463F -:1052900080BD00BF880000208C0000200038024044 -:1052A00080B400AFBD465DF8047B704780B400AFAA -:1052B000FEE700BF80B400AFFEE700BF80B400AFE0 -:1052C000FEE700BF80B400AFFEE700BF80B400AFD0 -:1052D000BD465DF8047B704780B400AFBD465DF805 -:1052E000047B704780B400AFBD465DF8047B704717 -:1052F00080B582B000AF144B7B60144B3B6007E07D -:105300003B681A1D3A607A68111D796012681A604C -:105310003A680F4B9A42F3D30E480F494FF0000200 -:105320008842B8BF40F8042BFFF6FAAFDFF82C0034 -:10533000016841F470010160FFF730FEEAF7B6FF43 -:105340000837BD4680BD00BF88D00108000000209E -:10535000F8000020F80000203894002088ED00E0DC -:1053600080B400AFFEE700BF30B50023934208D001 -:10537000C55C0133CC1814F8014CA542F6D0281BAB -:1053800030BD002030BD10B50023934203D0CC5C6B -:10539000C4540133F9E710BD02440346934202D0DE -:1053A00003F8011BFAE7704751EC100B31F0004392 -:1053B00010B500D178B10C4AA3F5801494420CD9F1 -:1053C000B3F5801F0BD3094A93420AD1D0F10100F3 -:1053D00038BF002010BD022010BD042010BD0320E6 -:1053E00010BD002010BD00BFFFFFDF7F0000F07F79 -:1053F00038B553EC102BC3F30A50A0F2FF31132938 -:105400001C4611DC002931DB1E48084118422AD015 -:105410004FF400240C411C4424EA000400212346DC -:105420000A4643EC102B38BD33290ADDB1F5806FF5 -:10543000F9D151EC100B0B4602F0C6FA41EC100BFF -:1054400038BDA0F213414FF0FF35CD401542EAD0F0 -:10545000C0F58660023001218140891828BF5C1C9C -:1054600021EA0501DBE7002AD2D1DCE7013103F0B4 -:10547000004401D00021D2E744F07F5444F44014AA -:105480000021CCE7FFFF0F0000B510EE103A1A4ADA -:1054900023F00043934283B019DDB3F1FF4F04DBE7 -:1054A00030EE400A03B05DF804FB684601F05CF999 -:1054B00000F0030001289DED000ADDED010A12D085 -:1054C00002280BD0A0B1012001F0FCFDEAE7DFEDDE -:1054D0000B0A01F08FFA03B05DF804FB01F08AFAC1 -:1054E000B1EE400ADEE701F0EDFDB1EE400AD9E78A -:1054F00001F080FAD6E700BFD80F493F0000000056 -:1055000000B510EE103A1B4A23F00043934283B0DB -:105510001ADDB3F1FF4F04DB30EE400A03B05DF853 -:1055200004FB684601F020F900F0030001289DED1E -:10553000000ADDED010A15D002280DD0A8B101F056 -:1055400059FAB1EE400AE9E7DFED0B0A002001F05D -:10555000B9FD03B05DF804FB012001F0B3FDB1EE2D -:10556000400ADBE701F046FAD8E7012001F0AAFD86 -:10557000D4E700BFD80F493F0000000010B52DED63 -:10558000048BB0EE408AF0EE608A354C8AB000F0B1 -:1055900013FA94F90030B0EE409AF0EE609A0133BD -:1055A0000DD0B0EE480AF0EE680AFFF7FDFE30B10C -:1055B00051EC180B0022002302F034FE38B9B0EE93 -:1055C000490AF0EE690A0AB0BDEC048B10BD254B08 -:1055D0002478019300238DED028B8DED048B0893CD -:1055E0004CBB214B4FF06042CDE9062351EC180B28 -:1055F0000022002302F002FE78B102239C420093B5 -:1056000023D0684601F0B8FDF8B1089B13BB9DEDAF -:10561000060B0AB0BDEC048B10BD0123022C0093D5 -:105620000ED0684601F0A8FD50B1104801F0A8FD69 -:105630008DED060BE9E70E4B0022CDE90623D5E7F9 -:1056400002F0A6FE21230360EFE702F0A1FE222371 -:105650000360DAE702F09CFE089B0360D7E700BF17 -:10566000F400002068CC0108FFFFEFC770CC0108F0 -:105670000000F0FF2DE9F0432DED068BB0EE40AABF -:10568000F0EE60AAB0EE418AF0EE618A9F4E8BB0D8 -:1056900000F02AFA96F90030B0EE409AF0EE609AE7 -:1056A000013306D0B0EE480AF0EE680AFFF77CFE40 -:1056B00040B9B0EE490AF0EE690A0BB0BDEC068BBA -:1056C000BDE8F083B0EE4A0AF0EE6A0AFFF76CFE1E -:1056D000044668BB51EC180B0022002302F08EFD3B -:1056E0000028E6D08A4B96F900108A4808940022D8 -:1056F0000124CDE906234B1C8DED02AB8DED048B0F -:10570000009401900DD002290BD0684601F034FDC1 -:10571000002800F09D80089B1BB102F039FE089B19 -:1057200003609DED060B0BB0BDEC068BBDE8F0836E -:105730000024002551EC1A0B22462B4602F05EFD98 -:10574000E8B151EC180B22462B4602F057FD0746F4 -:10575000002854D06F4A96F90030019201210022AE -:105760008DED02AB8DED048BCDE9064500910892DD -:10577000002BCAD0664B0022CDE90623D1E7B0EE5C -:10578000490AF0EE690A01F0EFFC0746002864D0F0 -:105790000024002551EC190B22462B4602F02EFD69 -:1057A000002886D0B0EE4A0AF0EE6A0A01F0DCFC6E -:1057B00000283FF47EAFB0EE480AF0EE680A01F030 -:1057C000D3FC00283FF475AF96F90030514A01929E -:1057D00004210022022B8DED02AB8DED048BCDE96F -:1057E00006450091089200F08C80684601F0C4FCE8 -:1057F000002800F08680089B002B92D08DE7B0EE49 -:10580000480AF0EE680A01F0AFFC00283FF451AFFF -:1058100051EC180B22462B4602F0FAFC00283FF40C -:1058200048AF3C4B3178089701228DED02AB8DEDEE -:10583000048B8DE80C00002941D0374B002202294F -:10584000CDE9062335D102F0A3FD21230360D2E781 -:1058500002F09EFD212303605DE7B0EE4A0AF0EE00 -:105860006A0A01F081FC002892D0B0EE480AF0EEFE -:10587000680A01F079FC00288AD0B0EE490AF0EEFF -:10588000690AFFF791FDE8B9224B367808900122AA -:105890008DED02AB8DED048B8DE80C007EB12046C2 -:1058A000294622462B4602F06BFB022ECDE906016B -:1058B000C9D0684601F060FC00289CD1C3E7CDE95F -:1058C0000645F6E7134A96F90030089703218DED57 -:1058D00002AB8DED048B8DE806000BBBDFF83C902E -:1058E0004FF0604822462B4651EC1A0BCDE9068951 -:1058F00002F08EFC00283AD196F90030022B7FF49A -:1059000074AF02F045FD2223036074E7F400002029 -:105910000000F03F74CC01080000F0FFFFFFEF47EC -:10592000DFF88C904FF0000822462B4651EC1A0B02 -:10593000CDE9068902F06CFC0028DDD00022194B6D -:1059400051EC180B02F0F2F904460D4645EC104BF1 -:1059500001F01EFC224651EC100B2B4602F04EFCCF -:105960000028C9D1104B0022CDE90623C4E700224C -:105970000C4B51EC180B02F0D9F904460D4645ECDE -:10598000104B01F005FC224651EC100B2B4602F0A7 -:1059900035FC0028B0D1054B4FF06042CDE906231D -:1059A000AAE700BF0000E03F0000F0FFFFFFEFC7E5 -:1059B0000000F07F000000002DE9F84355EC104B8B -:1059C000B5F5801F29461DDA25F0004121435FD03F -:1059D000002D10EE100A294664DB00223E4B02F037 -:1059E000A5F93E4B994204460D466FF035020EDD97 -:1059F0002046294622462B4601F0E6FF41EC100BDB -:105A0000BDE8F883354B99424FF00002F0DC0B15EE -:105A1000A3F2FF3398184FEAD0784044C1F313093A -:105A200002F01EF9C8F57F73033349EA035545ECCC -:105A3000104B06460F4601F08FFD3046394620A335 -:105A4000D3E9002359EC108B02F070F91EA3D3E9BF -:105A5000002304460D463046394602F067F91CA380 -:105A6000D3E9002306460F464046494602F05EF958 -:105A700002460B463046394601F0A6FF02460B4669 -:105A80002046294601F0A0FF41EC100BBDE8F88349 -:105A9000002200230020124902F072FA41EC100BA0 -:105AA000BDE8F88322462B4601F08CFF002200233C -:105AB00002F066FA41EC100BBDE8F883AFF300800A -:105AC00000609F501344D33F362BF111F3FE593D34 -:105AD0000EE526157BCBDB3F00005043FFFFEF7F39 -:105AE000000050C3AFF300802DE9F04F55EC114B8F -:105AF0002DED048BB0EE419AF0EE619AB0EE408A43 -:105B0000F0EE608A25F0004858EA04018FB057ECA7 -:105B1000106B33D06C4B27F00049994528DC25D019 -:105B2000694B984524DC00F08A80002FC0F28B80FE -:105B30004FF0000A9CBB644B984500F0A280634B79 -:105B4000984574D0B5F1804F00F00A84604B9D42B7 -:105B500025D1002F23DBB0EE480AF0EE680A0FB023 -:105B6000BDEC048BBDE8F04F00F032BD002ED7D065 -:105B700009F1404303F58013334306D19FED4E0BEB -:105B80000FB0BDEC048BBDE8F08F52480FB0BDECF8 -:105B9000048BBDE8F04F01F0F3BA4FF0000AB0EE0D -:105BA000480AF0EE680A01F0D5FA0EBBB9F1000F11 -:105BB00004D0464B27F040429A4219D1002DC0F242 -:105BC0001984002FDCDA09F1404909F580195AEAF5 -:105BD000090940F0958451EC100B02460B4601F088 -:105BE000F1FE02460B4602F0CBF941EC100BC7E781 -:105BF000FB0F03F1FF3B5AEA0B0258D0364B984596 -:105C000070DD03F10473984540F3FE83334B9945EF -:105C100040F3A083002D40F3A08329A1D1E9000126 -:105C200002460B4602F082F841EC100BA8E7002D6B -:105C3000C0F24C84B0EE480AF0EE680AA0E7002CEF -:105C40003FF473AF94E7264B98452DDCA3F15473D2 -:105C500098457FF76DAF4FEA285340F213429342C5 -:105C600040F35C84C3F58663033324FA03F202FA3B -:105C700003F3A3427FF45CAF02F00102C2F1020A17 -:105C800058E709F1404303F5801333433FF476AFFF -:105C9000124B994540F3A283002DC0F25E83B0EE13 -:105CA000490AF0EE690A6BE74FF0020A42E751EC4D -:105CB000180B92E7AFF30080000000000000F03FF7 -:105CC0009C7500883CE4377E0000F07F0000F03FC8 -:105CD0000000E03F70CC01080000E041FFFFEF3F13 -:105CE000FFFF3F43B9F5801F80F2EE8351EC100BAC -:105CF0000022AB4B02F01AF80B4641EC100B6FF090 -:105D000034029946A74B4FEA2951C9F31309A1F26E -:105D1000FF3149F07F56994501EB020C46F44016DD -:105D200040F3CF83A04B994540F3108400270CF13A -:105D3000010CA6F580163B469C4ACDF804C0DB005A -:105D40000B931344D3E9004559EC108B22462B46A4 -:105D50004046314601F036FE2246CDE908012B4689 -:105D60004046314601F030FE02460B460020904985 -:105D700002F006F9CDE90C01DDE90C23DDE90801AB -:105D800001F0D4FFCDE9040171109DED047B41F0D9 -:105D9000005101F50021CB1900218DED027B02910C -:105DA000B146DDE90267002230463946CDE90623D7 -:105DB00001F0BCFF02460B46DDE9080101F002FEDE -:105DC00022462B46CDE90801DDE9060101F0FAFD86 -:105DD00002460B464046494601F0F4FD02460B469A -:105DE0003046394601F0A2FF02460B46DDE90801C4 -:105DF00001F0E8FDDDE90C2301F098FFCDE9060193 -:105E0000DDE9040102460B4601F090FF02460B4615 -:105E100004460D4601F08AFF51A3D3E900238046D2 -:105E200089462046294601F081FF4FA3D3E900238C -:105E300001F0CAFD22462B4601F078FF4CA3D3E9BE -:105E4000002301F0C1FD22462B4601F06FFF4AA35B -:105E5000D3E9002301F0B8FD22462B4601F066FF8E -:105E600047A3D3E9002301F0AFFD22462B4601F002 -:105E70005DFF45A3D3E9002301F0A6FD02460B46D2 -:105E80004046494601F052FFDDE9042304460D4631 -:105E90003046394601F098FDDDE9062301F046FF62 -:105EA00022462B4601F090FD3246804689463B460D -:105EB0003046394601F03AFF00223E4BCDE90C0155 -:105EC00001F082FD42464B4601F07EFD02980D46F0 -:105ED000044622462B463046394601F027FF22462B -:105EE0002B46CDE90801DDE9060101F01FFF002284 -:105EF00006460F46204629462E4B01F063FDDDE99C -:105F00000C2301F05FFD02460B464046494601F076 -:105F100059FDDDE9042301F009FF02460B46304636 -:105F2000394601F051FD8046894642464B46DDE93F -:105F3000080101F049FD029815A3D3E900230446A6 -:105F40000D4601F0F3FE14A3D3E90023CDE90601C9 -:105F50002046294601F0EAFEDDE9082306462BE04B -:105F6000EF4E454A287ECA3F65DBC9934A86CD3F3E -:105F700001411DA96074D13F4D268F515555D53F24 -:105F8000FFAB6FDBB66DDB3F033333333333E33FBC -:105F9000000000E009C7EE3FF5015B14E02F3EBEB4 -:105FA000000040438E98030079B60B0098CC01089E -:105FB0000000F03F000008400F462046294601F04F -:105FC00001FD02460B464046494601F0FBFCBBA3DF -:105FD000D3E9002301F0AAFE02460B4630463946BB -:105FE00001F0F2FC0B9CB24B2344D3E9002301F0F7 -:105FF000EBFCDDF804C0064660460F4601F030FEBB -:10600000AC4B234493ED007B8046894632463B46A9 -:10601000DDE906018DED047B01F0D6FCDDE904230A -:1060200001F0D2FC42464B4601F0CEFC02984246BB -:106030004B4604460D4601F0C5FCDDE9042301F0A2 -:10604000C1FCDDE9062301F0BDFC02460B463046EB -:10605000394601F0B7FC0AF1FF3C5CEA0B0CCDE9D4 -:10606000020140F0B6819FED7E7B8DED047B5BEC01 -:1060700019AB4FF0000A52465B4651EC190B01F088 -:10608000A1FC2B46224601F051FEDDE902238046A9 -:10609000894651EC190B01F049FE02460B46404679 -:1060A000494601F091FC2B46CDE9020122465046BB -:1060B000594601F03BFE06460F463B46DDE902012C -:1060C000324601F081FC7C4B9942804689460D4660 -:1060D00040F3508101F13F4303F5E003034340F0F7 -:1060E000FF8161A3D3E90023DDE9020101F06CFC2B -:1060F000324682468B463B464046494601F062FCAA -:1061000002460B465046594602F0A0F8002840F0DF -:10611000E781CC464FEA2C53A3F2FE334FF48010B4 -:1061200018412844C0F30A51DFF898E1A1F2FF3486 -:106130004EFA04FEC1F58261C0F3130420EA0E0397 -:10614000033144F4801040FA01F1002D0691BCBFE8 -:106150004942069100223046394601F033FC06469A -:106160000F463246DDE902013B4601F02DFC069C5C -:1061700024050B9400243EA3D3E9002320460D46BA -:1061800001F0D4FD3246804689463B4620462946EA -:1061900001F018FC02460B46DDE9020101F012FC99 -:1061A00035A3D3E9002301F0C1FD35A3D3E90023D2 -:1061B00006460F462046294601F0B8FD02460B462A -:1061C0003046394601F000FC06460F4632463B4653 -:1061D0004046494601F0F8FB42464B4604460D4610 -:1061E00001F0F0FB02460B463046394601F0EAFB6F -:1061F000224682468B4620462B46294601F096FDD4 -:1062000021A3D3E9002306460F4601F08FFD20A30A -:10621000D3E9002301F0D6FB32463B4601F086FD70 -:106220001DA3D3E9002301F0CFFB32463B4601F02A -:106230007DFD1BA3D3E9002301F0C4FB32463B469E -:1062400001F074FD18A3D3E9002301F0BDFB324631 -:106250003B4601F06BFD02460B46204634E000BF92 -:10626000000000000000F0BFFE822B654715973C40 -:1062700000000000432EE63FEF39FAFE422EE63FD3 -:10628000396CA80C615C20BED0A4BE726937663E32 -:10629000F16BD2C541BDBB3E2CDE25AF6A56113F26 -:1062A00093BDBE166CC1663F3E5555555555C53F0D -:1062B00088CC010878CC0108FFFF8F40FD033ADC51 -:1062C00009C7EE3FFFFF0F00294601F07BFB0646A2 -:1062D0000F4632463B462046294601F027FD002264 -:1062E00080468946304639464FF0804301F06AFBCC -:1062F00002460B464046494601F042FE52460646DB -:106300000F4620465B46294601F010FD52465B468B -:1063100001F05AFB02460B463046394601F052FB6B -:1063200022462B4601F04EFB02460B460020A249B6 -:1063300001F048FB0B9C0B462144B1F5801F02463F -:10634000C0F209810B46DDE9040101F0EFFC41ECEC -:10635000100B15E4002DFFF660AC9FED870B0FE4EA -:1063600051EC180B18EE102A0B4601F0DFFC41EC43 -:10637000100B05E4914B21F0004C9C4540F3DD806F -:1063800001F17D5303F53C1303F55053034310D142 -:1063900032463B46CDF804C001F014FB02460B46E2 -:1063A000DDE9020101F03EFFDDF804C000283FF402 -:1063B000B1AE73A3D3E90023DDE9040101F0B6FC1B -:1063C0006FA3D3E9002301F0B1FC41EC100BFFF700 -:1063D000D7BB9FED6D7B8DED047B48E6002DBCDACD -:1063E00019EE904A19EE102A04F1004343EC102BE9 -:1063F000FFF7C6BB53EC102B00206F4901F0C0FD26 -:1064000041EC100BFFF7DDBB6D4B9945A2DD6A4BEC -:1064100099453FF7FFAB51EC100B0022664B01F0A2 -:10642000D1FA5BA3D3E9002304460D4601F07EFCBC -:1064300059A3D3E90023804689462046294601F026 -:1064400075FC2246CDE902012B462046294601F083 -:106450006DFC002206460F4620462946594B01F0A6 -:1064600065FC02460B464EA1D1E9000101F0AAFAF3 -:1064700022462B4601F05AFC02460B4600205249A8 -:1064800001F0A0FA02460B463046394601F04EFCB8 -:1064900045A3D3E9002301F049FC02460B46DDE9A0 -:1064A000020101F08FFA06460F4632463B4640464F -:1064B000494601F089FA002004460D4642464B4603 -:1064C000C1E500273B4637E400221BE400203A499F -:1064D00053EC182B01F054FD41EC100BFFF750BBAF -:1064E00033A3D3E90023DDE9040101F01FFC30A34D -:1064F000D3E9002301F01AFC41EC100BFFF740BB7D -:10650000BAF1010F7FF43CAB10EE901A10EE102A96 -:1065100001F1004343EC102BFFF732BB002C7FF45A -:106520003CABC3F58263033348FA03F202FA03F388 -:10653000434518D0A246FFF702BB234B9C453FF7CB -:10654000E9ADCDF82CA0CDF818A013E64FF48027C4 -:106550000123FFF7F1BB43EC102B069800F0A8FED7 -:1065600053EC102BEFE602F00102C2F1020AFFF732 -:10657000E6BA00BFAFF3008000000000000000009A -:1065800059F3F8C21F6EA501000000000000F03FA3 -:10659000000000604715F73F44DF5DF80BAE543E46 -:1065A000555555555555D53FFE822B654715F73F37 -:1065B0009C7500883CE4377E0000F03FFFCB9040A4 -:1065C000FEFFEF3F0000D03F0000E03FAFF3008050 -:1065D0002DE9F84353EC102B23F00044240D614DBA -:1065E0002405AC422DED028BB0EE408AF0EE608ABD -:1065F000194610EE100A00F09480002B74DD1F1570 -:106600007DD0A7F2FF37C1F31301FA0741F48011DF -:106610005FD4C30F4FF0000C03EB410342007F1027 -:10662000654616204FF400116C189C424FEAD27652 -:106630004FEA420202DC1B1B65188C44013806EB52 -:1066400043034FEA5101EFD1804620264FF000412D -:1066500009E023D0D40F013E4FEA510104EB43037C -:106660004FEA42021ED0AB4201EB0804F1DD04F018 -:106670000049B9F1004F04EB010809D0A9465B1BA2 -:10668000944288BF03F1FF33121B08444D46E1E7F3 -:10669000B8F1000FF2DB05F10109F0E79442E6D909 -:1066A0001D46D7E71A4319D146084FEA6C0101F19C -:1066B0007F511CF0010F01F5001118BF46F0004694 -:1066C00001EB0753324643EC102BBDEC028BBDE8C7 -:1066D000F883C30F03EB410140009AE7431C2ED01F -:1066E00000F001031844DFE723F000411143ECD030 -:1066F00063BB1F46C10A153F40050029FAD011F4BB -:1067000080131FD14900CC0203F10103FAD5C3F174 -:106710000102C3F1200420FA04F4214317449840F5 -:106720006FE751EC100B01F001FB53EC182B01F05B -:106730004BF9BDEC028B41EC100BBDE8F8830CF17A -:10674000010CB2E7202401220023E4E751EC100BF6 -:106750000B4601F037F902460B4601F011FC41EC03 -:10676000100BB2E70000F07F70B510EE103A934ABC -:1067700023F00044944286B010EE106A054666DDB0 -:106780008F4A94421ADC002BDFED8E7A8E4A24F079 -:106790000F0440F3DB80944270EE677A66D09FED81 -:1067A0008B7A77EEC76A012077EEE67AC5ED006A4C -:1067B00037EEC77A85ED017A06B070BD844A9442FF -:1067C00066DDB4F1FF4F49DAE215863AA4EBC25414 -:1067D00007EE104AFDEEC77ADFED7E6AF8EEE77A43 -:1067E00037EE677ACDED037A27EE267AFDEEC77A8B -:1067F000F8EEE77A37EE677ACDED047A27EE267A5F -:10680000B5EE407AF1EE10FA8DED057A40F0B180E8 -:10681000F5EE407AF1EE10FA0CBF012302236E4927 -:1068200002208DE8030003A8294600F065F9002E38 -:1068300012DA95ED007AD5ED017AB1EE477AF1EEF4 -:10684000677A404285ED007AC5ED017A04E00022C6 -:1068500085ED000A4260002006B070BD70EE407AFF -:106860000020C5ED017AC5ED007AF5E7DFED5B6A42 -:106870009FED5B7A77EEE67A012077EEC76A77EED6 -:10688000E67AC5ED006A37EEC77A85ED017AE3E76F -:1068900000F09EFDDFED536ADFED4A5ADFED4B7AE3 -:1068A000B6EE007AA0EE267ABDEEC77AF8EEC76A99 -:1068B00017EE100AB1EE666A1F28A6EE250A66EEEC -:1068C000A77A1DDC484B411E24F0FF0253F821300B -:1068D0009A4215D030EE677A85ED007A30EE470A9D -:1068E000002E70EE677AC5ED017AB5DAB1EE477A1F -:1068F000F1EE677A85ED007AC5ED017A4042ABE7AB -:1069000030EE677AE41517EE102AC2F3C753E31A84 -:10691000082BE1DD9FED317A9FED315AF0EE405AC0 -:10692000E6EE075A70EE657AE6EE077AD6EE857ADD -:1069300035EEE77A17EE102AC2F3C753E41A192C82 -:106940002CDC85ED007AB0EE650AC7E7944270EE64 -:10695000277A10D09FED1D7A77EE876A4FF0FF30CF -:1069600077EEE67AC5ED006A37EE877A85ED017A33 -:1069700072E7032353E7DFED196A9FED197A77EE8B -:10698000A67A4FF0FF3077EE876A77EEE67AC5EDAC -:10699000006A37EE877A85ED017A5DE79FED137A1D -:1069A0009FED135AB0EE650AA6EE070A75EEC07A9F -:1069B000E6EE077AD6EE857A8CE700BFD80F493F1E -:1069C000E3CB1640800FC93FD00FC93F4344353752 -:1069D000800F49430000804328CD0108004435372B -:1069E00008A3852E84F9223FA8CC010800A3852E98 -:1069F00032318D2410EE103A23F00043B3F1485F9A -:106A00002CDAFDEEC07A17EE903A002B60D060EEE3 -:106A1000007ADFED314A9FED315ADFED315A9FEDBB -:106A2000316ADFED316A9FED317AA7EEA45AE5EEC7 -:106A3000275AA5EEA76AE6EE276AA6EEA77A27EE02 -:106A4000277A20EEC00AF6EE006AA7EE870AB7EEB4 -:106A5000007A97EEA60A37EE400A704760EE007A99 -:106A6000DFED1D4A9FED1D5ADFED1D5A9FED1D6A9A -:106A7000DFED1D6A9FED1D7A1D4AA7EEA45A9342D1 -:106A8000E5EE275AA5EEA76AE6EE276AA6EEA77AF4 -:106A900027EE277AD5DD174A934214DC03F17F43B2 -:106AA00006EE903AF7EE005A75EEE65A60EEC00A2E -:106AB000B6EE006AE7EE870AD7EE866A76EEE00A5F -:106AC00035EEE00A7047F6EE075AF5EE026AEDE79A -:106AD000B7EE000A704700BF4ED747ADF6740F31CE -:106AE0007CF293B4010DD037610BB6BAABAA2A3D44 -:106AF0009999993E0000483F2DE9F04F2DED048B08 -:106B0000D7B0A54C649D039103F1FF3954F825805B -:106B10001D46D31E48BF131DDB1023EAE373049305 -:106B2000049EDB4302EBC303824619EB0800029389 -:106B3000C9EB060318D4659E184401301AA906EB68 -:106B400083040022002BAABFA658DFED947A07EE3B -:106B5000106A03F10103A8BFF8EEC77A8342E1ECA3 -:106B6000017A02F10402EDD1B8F1000F4FEA880B6F -:106B70001DDB1AA843AE00EB85045E4442A8B9F1C0 -:106B8000000FC0F2AE81DFED857A51462246002328 -:106B9000F1EC016A32ED017A0133AB42E6EE877A1D -:106BA000F6D1E0EC017AB04204F10404E7D10DF132 -:106BB000180C4446CDF81480DFED7A8A9FED788A70 -:106BC000DDF80880E344A60056AB3344002C13EDF7 -:106BD000140A1BDDACF1040142AA3244314405AB76 -:106BE00060EE287AB0EE407AFDEEE77A72ED016A47 -:106BF000F8EEE77AA7EEC87A37EEA60ABDEEC77AB6 -:106C000017EE100A43F8040F8B42E9D14046CDF845 -:106C100000C000F035FCB0EE409AB4EE000A29EE58 -:106C2000000A00F0DDFBF2EE007AA0EE679AB8F100 -:106C3000000FDDF800C0FDEEC99AF8EEE97A39EEF2 -:106C4000679A40F3A180611EC8F108005CF821300A -:106C500043FA00F202FA00F01B1A4CF8213019EE48 -:106C6000901AC8F10700114443FA00F009EE901A97 -:106C70000190019B002B2DDD19EE902A002C02F1D2 -:106C8000010209EE902A40F3408163460CEB0607AF -:106C9000002153F8042BC2F1FF0011B9C2F5807036 -:106CA00012B143F8040C0121BB42F2D1B8F1000F3C -:106CB0000DDDB8F1010F00F00281B8F1020F06D12D -:106CC000621E5CF8223003F03F034CF82230019B37 -:106CD000022B69D0B5EE409AF1EE10FA78D1059901 -:106CE000671EB9420ADC6644002356F8042D5E454F -:106CF00043EA0203F9D1002B40F0B181059A531EFB -:106D00005CF82320002A40F0A7810CEB83034FF0AE -:106D1000010E53F8042D0EF1010E002AF9D0A644FD -:106D2000661C76452EDC0498049F2044659C09EB84 -:106D300006031AA904EB800001EB8304659B7744EA -:106D400042AA02EB860603EB870750F8041F07EE02 -:106D5000901AF8EEE77AB9F1000FE4EC017ADFED72 -:106D60000F7A0BDB514622460023F1EC016A32ED2B -:106D7000017A0133AB42E6EE877AF6D1B842E6EC0F -:106D8000017AE2D174461EE740F0A180631E5CF8F0 -:106D900023301B1201936CE740D001080000000073 -:106DA000000080430000803BB7EE000A30EE499AB5 -:106DB00000298FD04046CDF800C000F061FB39EECD -:106DC000409ADDF800C0B5EE409AF1EE10FA86D098 -:106DD000029BCDF800C0B0EE490A5842DDF814809D -:106DE00000F04EFB5FED127ADDF800C0B4EEE70A6A -:106DF000F1EE10FAC0F254811FED167A029A20EEDD -:106E0000077A671CBDEEC77A0832B8EEC77A0292DD -:106E1000A7EE670ABDEEC77ABDEEC00A10EE103AC3 -:106E20004CF8243017EE104A4CF827400298CDF861 -:106E300000C0B7EE000A00F023FB002FDDF800C011 -:106E400036DB7D1CAA0042AE1FED2A7A0CEB020352 -:106E5000324473ED017AF8EEE77A634567EE807AA3 -:106E600020EE070A62ED017AF3D142A800EB870415 -:106E70000020B8F1000FC0F2E9809049DFED907A70 -:106E80002246002301E0834208DCF1EC016AB2EC07 -:106E9000017A01339845E6EE877AF4DA56A901EBD8 -:106EA000800301308542A4F1040443ED287AE0D147 -:106EB000649C032C7FD8DFE804F0B387872A621E26 -:106EC0005CF8223003F07F034CF82230FFE6F6EE48 -:106ED000007AB4EEE79AF1EE10FA0CDA0022019291 -:106EE000F8E6DFED777AE0EC017AB04204F10404D1 -:106EF0007FF445AE5BE619EE902A02210132002CA8 -:106F0000019109EE902A3FF7C0AE0021CEE6002F96 -:106F100040F3B980B90056AB7A1C2EAE0B4406EB99 -:106F2000820253ED287A2FA8134653ED026A36EEFB -:106F3000A77A76EEC76A76EEA76AF0EE477A63ED37 -:106F4000016A834203ED017AEFD1012F40F39B8068 -:106F500056A8014451ED287A134630A953ED026A30 -:106F600036EEA77A76EEC76A76EEA76AF0EE477A33 -:106F700063ED016A8B4203ED017AEFD1DFED507AC8 -:106F8000134633ED017A994277EE877AF9D1019C65 -:106F9000002C7DD0DDED2E6A9DED2F7A039EF1EE63 -:106FA000677AF1EE666AB1EE477AC6ED027AC6ED0F -:106FB000006A86ED017A19EE901A01F0070057B0C9 -:106FC000BDEC048BBDE8F08F002F74DB2EAA7B1C78 -:106FD000DFED3B7A02EB830333ED017A934277EEE8 -:106FE000877AF9D1019AA2B3B1EE677ADDED2E6A04 -:106FF000039B002F83ED007A76EEE77A08DD2FAB56 -:1070000003EB8707B3EC017ABB4277EE877AF9D1BD -:10701000019C0CB1F1EE677A039DC5ED017ACAE7D8 -:10702000002F45DB7B1C2EAADFED257A02EB8303C4 -:1070300033ED017A934277EE877AF9D1019E0EB152 -:10704000F1EE677A0399C1ED007AB4E7DFED1C7ABF -:1070500024E7B0EE677AC9E74FF0010E5FE6029AC7 -:107060005CF82730DDF81480083A0292002B7FF498 -:10707000DDAE0CEB870353F8041D013F083A0029ED -:10708000F9D00292D2E6019CDFED0D7A002C81D17D -:10709000039D2E9A2F9BC5ED027A2A606B608AE7CA -:1070A000BDEEC00A274610EE105A4CF82450BDE63B -:1070B000DFED037AC2E7DFED027A93E74CD00108F7 -:1070C0000000000010EE103A23F00043B3F1485FD7 -:1070D00004DAFDEEC07A17EE903A23B360EE007A40 -:1070E0009FED155A9FED156ADFED156A9FED157A34 -:1070F000DFED155AA7EE856A27EE805AE6EE276A7D -:10710000A6EEA77AE7EE275A70B165EEC55AB6EE3D -:10711000007AE0EE875A9FED0D7AD5EEA70AE5EEEC -:10712000070A30EE600A70479FED097AA7EEA57A4C -:10713000A7EE050A704700BFD3C92E2F342FD7B250 -:107140001BEF3836010D50B98988083CABAA2A3E9E -:10715000ABAA2ABE51EC100B53EC102B21F00043CC -:1071600043EC102B704700BF53EC102B43F0004052 -:1071700000F58010C00F704700207047000000002D -:107180009FED010B704700BF000000000000F87F7A -:10719000F0B553EC102BC3F30A50A0F2FF311329C2 -:1071A00083B09C4610EE107A4FEAD37631DC00298A -:1071B0004FDB3D48084100EA0304144327D0400850 -:1071C00000EA030717430CD04FF4802C132923EA5D -:1071D00000004CFA01F140EA010C14BF00274FF007 -:1071E0000047324B03EBC6063C46D6E900676346D0 -:1071F00022463046394600F0E7FBCDE90001324631 -:107200003B46DDE9000100F0DDFB41EC100B03B073 -:10721000F0BD33290ADDB1F5806FF8D151EC100BC8 -:107220000B4600F0D1FB41EC100BF0E7A0F213404D -:107230004FF0FF31C1401142E9D049081142D0D08E -:107240004FF0804722EA010147FA00F041EA0007C7 -:10725000C7E723F000411143D9D0C3F313010A4318 -:10726000544214431148590C240B490404F40024DB -:1072700000EBC60053EC102B44EA0103D0E90045B3 -:107280002046294600F0A0FBCDE900012B4622460E -:10729000DDE9000100F096FB21F0004343EAC671EE -:1072A00041EC100BB3E700BFFFFF0F0078D00108DF -:1072B00038B553EC102BC3F30A5105461846002984 -:1072C0003AD123F00043134335D051EC100B3C4B23 -:1072D0003C4C002200F02AFDA54241EC100B0B466D -:1072E00051DBC3F30A51363918464C1940F2FE738C -:1072F0009C422ADDB0EE401AF0EE601A9FED2C0B96 -:1073000000F03EFB2AA3D3E9002351EC100B00F060 -:107310000DFD41EC100B38BD20F0FF4323F4E003DA -:10732000363451EC100B002243EA0451264B00F096 -:10733000FDFC41EC100B38BD40F2FF7399422AD09E -:107340004C1940F2FE739C42D4DC002C0ADD20F084 -:10735000FF4053EC102B20F4E00040EA045343ECD0 -:10736000102B38BD14F1350FD6DAB0EE401AF0EE1E -:10737000601A4CF250339D42C0DC9FED0F0B00F0C1 -:10738000FFFA51EC100B0CA3D3E9002300F0CEFC64 -:1073900041EC100B38BD51EC100B10EE102A0B46CF -:1073A00000F012FB41EC100B38BD00BFAFF30080C2 -:1073B0009C7500883CE4377E59F3F8C21F6EA50126 -:1073C00000005043B03CFFFF0000903CAFF3008052 -:1073D00010EE102A22F0004300EE103A704700BF72 -:1073E00010EE103A23F00040C10D7F39162910B479 -:1073F00018DC00291C4622DB1E480841184214D024 -:10740000DFED1D7A70EE277AF5EEC07AF1EE10FA14 -:107410000BDD002B21DB24EA000000EE100A5DF8F2 -:10742000044B7047B0F1FF4F04D200EE103A5DF804 -:10743000044B704730EE000A5DF8044B7047DFEDF7 -:107440000E7A70EE277AF5EEC07AF1EE10FAECDDE6 -:10745000002B08DB9FED090AE9E74FF4000343FA2C -:1074600001F10C44D7E70028BFEE000A08BF00EE88 -:10747000103ADCE7FFFF7F00CAF24971000000000C -:1074800008B510EE103A33F000412DED028B10EEEE -:10749000102A11D0B1F1FF4F11D2B1F5000F13D363 -:1074A000C90D0144FE2930DC00291CDD22F0FF4219 -:1074B00042EAC15200EE102ABDEC028B08BDBDECC1 -:1074C000028B30EE000A08BDDFED1E7A1E4A20EE68 -:1074D000277A904217EE103A22DBC3F3C75117EE1A -:1074E000102A1939DDE711F1160F1EDA4CF250326D -:1074F00090420ADC9FED158A00EE903AB0EE480A01 -:1075000000F050FA20EE080AD6E79FED118A00EE4F -:10751000903AB0EE480A00F045FA20EE080ACBE7B0 -:107520009FED0A0A27EE000AC6E7193122F0FF4252 -:1075300042EAC152DFED077A07EE102A27EE270A4A -:10754000BAE700BF0000004CB03CFFFF6042A20D54 -:10755000CAF24971000000332DE9F04F53EC102BB3 -:10756000B3F5801F87B01C4660DA23F00041114359 -:1075700000F00381002B51EC100BC0F2B781002208 -:10758000AD4B00F0D3FB0B461C46AC4B9C4241EC90 -:10759000100B6FF035024EDCC4F3130606F515230D -:1075A00003F6647303F4801585F07F534FEA245883 -:1075B00083F44013A8F2FF3851EC100B904443EAD7 -:1075C000060100229E4B00F0FDF9B31CC3F3130328 -:1075D000022B08EB155882468B464FF0000236DC32 -:1075E000002300F00BFE002800F0D280B8F1000F5D -:1075F00000F08681404600F033FB7BA3D3E90023F3 -:1076000006460F4600F092FB79A3D3E90023044617 -:107610000D463046394600F089FB02460B462046AF -:10762000294600F0D1F941EC100B0DE0834B9C4250 -:107630004FF00002B0DD51EC100B10EE102A0B469B -:1076400000F0C2F941EC100B07B0BDE8F08F4FF02D -:10765000804300F0B9F902460B465046594600F007 -:107660008FFCCDE90201404600F0FAFACDE90401B1 -:10767000DDE9020102460B4600F058FB02460B46CC -:10768000CDE9000100F052FB5BA3D3E900230446DF -:107690000D4600F04BFB5AA3D3E9002300F094F908 -:1076A00022462B4600F042FB57A3D3E9002300F00B -:1076B0008BF922462B4600F039FB55A3D3E9002372 -:1076C00000F082F9DDE9002300F030FB52A3D3E99A -:1076D0000023CDE900012046294600F027FB50A3F6 -:1076E000D3E9002300F070F922462B4600F01EFB80 -:1076F0004DA3D3E9002300F067F922462B4600F0A2 -:1077000015FB0B460246DDE9000100F05DF9A6F528 -:10771000C223C6F5D726A3F27A4351361E43002E64 -:1077200004460D4640F392800022464B504659468F -:1077300000F0FCFA52465B4600F0F8FA06460F46A7 -:10774000B8F1000F40F09D8022462B4600F03CF936 -:10775000DDE9022300F0EAFA02460B4630463946DC -:1077600000F030F902460B465046594600F02AF91F -:1077700041EC100B07B0BDE8F08F00220023002081 -:10778000314900F0FDFB41EC100B07B0BDE8F08F74 -:1077900052465B465046594600F0C8FA24A3D3E946 -:1077A000002304460D465046594600F0BFFA0246F3 -:1077B0000B460020234900F005F902460B462046FF -:1077C000294600F0B3FA04460D46B8F1000F40F028 -:1077D0009A805046594622462B4600F0F3F841EC79 -:1077E000100B31E7AFF300800000E0FE422EE63FD1 -:1077F000763C7935EF39EA3D44523EDF12F1C23F23 -:10780000DE03CB966446C73F599322942449D23F66 -:10781000935555555555E53F9FC678D0099AC33FB6 -:10782000AF788E1DC571CC3F04FA97999999D93FCD -:10783000555555555555D53F00005043FFFFEF7F37 -:107840000000F03F0000E03F000050C3B8F1000F1F -:107850007FD047A3D3E90023DDE9040100F066FAF5 -:1078600022462B4606460F465046594600F0AAF8D7 -:10787000DDE9022300F05AFA04460D46DDE9040171 -:107880004FE03BA3D3E90023DDE9040100F04EFA09 -:1078900022462B46804689463046394600F094F809 -:1078A000DDE9022300F042FA33A3D3E900230446C2 -:1078B0000D46DDE9040100F039FA02460B46204688 -:1078C000294600F081F802460B463046394600F062 -:1078D00079F852465B4600F075F802460B46404682 -:1078E000494600F06FF841EC100BADE60B4600F096 -:1078F00069F80022002300F043FB41EC100BA3E6E3 -:107900009FED190BA0E6404600F0AAF918A3D3E9B1 -:1079100000238046894600F009FA06460F46404695 -:10792000494615A3D3E9002300F000FA02460B46AE -:107930002046294600F046F852465B4600F042F8E1 -:1079400002460B463046394600F03CF841EC100B3D -:107950007AE602460B465046594600F033F8DDE918 -:10796000022300F0E3F9FDE6000000000000000043 -:107970000000E0FE422EE63F763C7935EF39EA3DE5 -:1079800030B451EC110B55EC104B53EC102B25F08F -:10799000004001F0004141EA000343EC102B30BCF1 -:1079A000704700BF10EE101A21F0004210EE901A3E -:1079B00001F00043134300EE103A704781F000419C -:1079C00002E000BF83F0004330B54FEA41044FEAC4 -:1079D000430594EA050F08BF90EA020F1FBF54EA5F -:1079E000000C55EA020C7FEA645C7FEA655C00F0FB -:1079F000E2804FEA5454D4EB5555B8BF6D420CDDCC -:107A00002C4480EA020281EA030382EA000083EA4E -:107A1000010180EA020281EA0303362D88BF30BDEE -:107A200011F0004F4FEA01314FF4801C4CEA113144 -:107A300002D0404261EB410113F0004F4FEA0333A3 -:107A40004CEA133302D0524263EB430394EA050F2E -:107A500000F0A780A4F10104D5F1200E0DDB02FA9D -:107A60000EFC22FA05F2801841F1000103FA0EF231 -:107A7000801843FA05F359410EE0A5F120050EF1F7 -:107A8000200E012A03FA0EFC28BF4CF0020C43FA28 -:107A900005F3C01851EBE37101F0004507D54FF035 -:107AA000000EDCF1000C7EEB00006EEB0101B1F585 -:107AB000801F1BD3B1F5001F0CD349085FEA3000CB -:107AC0004FEA3C0C04F101044FEA445212F5800FD6 -:107AD00080F09A80BCF1004F08BF5FEA500C50F173 -:107AE000000041EB045141EA050130BD5FEA4C0C56 -:107AF000404141EB010111F4801FA4F10104E9D1DF -:107B000091F0000F04BF01460020B1FA81F308BFD5 -:107B10002033A3F10B03B3F120020CDA0C3208DDA1 -:107B200002F1140CC2F10C0201FA0CF021FA02F17C -:107B30000CE002F11402D8BFC2F1200C01FA02F1EC -:107B400020FA0CFCDCBF41EA0C019040E41AA2BF11 -:107B500001EB0451294330BD6FEA04041F3C1CDAD9 -:107B60000C340EDC04F11404C4F1200220FA04F0F9 -:107B700001FA02F340EA030021FA04F345EA0301A3 -:107B800030BDC4F10C04C4F1200220FA02F001FA65 -:107B900004F340EA0300294630BD21FA04F02946E7 -:107BA00030BD94F0000F83F4801306BF81F4801180 -:107BB0000134013D4EE77FEA645C18BF7FEA655CF3 -:107BC00029D094EA050F08BF90EA020F05D054EAC5 -:107BD000000C04BF1946104630BD91EA030F1EBFCA -:107BE0000021002030BD5FEA545C05D140004941CE -:107BF00028BF41F0004130BD14F580043CBF01F5C1 -:107C0000801130BD01F0004545F0FE4141F47001A6 -:107C10004FF0000030BD7FEA645C1ABF1946104681 -:107C20007FEA655C1CBF0B46024650EA013406BF82 -:107C300052EA033591EA030F41F4002130BD00BF41 -:107C400090F0000F04BF0021704730B54FF48064FE -:107C500004F132044FF000054FF0000150E700BF7F -:107C600090F0000F04BF0021704730B54FF48064DE -:107C700004F1320410F0004548BF40424FF00001CB -:107C80003EE700BF42004FEAE2014FEA31014FEA0E -:107C900002701FBF12F07F4393F07F4F81F060515D -:107CA000704792F0000F14BF93F07F4F704730B5CC -:107CB0004FF4607401F0004521F0004120E700BF5F -:107CC00050EA010208BF704730B54FF000050AE0E6 -:107CD00050EA010208BF704730B511F0004502D5E7 -:107CE000404261EB41014FF4806404F132045FEAE9 -:107CF000915C3FF4DCAE4FF003025FEADC0C18BF8E -:107D000003325FEADC0C18BF033202EBDC02C2F183 -:107D1000200300FA03FC20FA02F001FA03FE40EA15 -:107D20000E0021FA02F11444C1E600BF70B54FF015 -:107D3000FF0C4CF4E06C1CEA11541DBF1CEA1355F7 -:107D400094EA0C0F95EA0C0F00F0DEF82C4481EA5F -:107D5000030621EA4C5123EA4C5350EA013518BF7F -:107D600052EA033541F4801143F4801338D0A0FB6C -:107D700002CE4FF00005E1FB02E506F00042E0FB19 -:107D800003E54FF00006E1FB03569CF0000F18BF1F -:107D90004EF0010EA4F1FF04B6F5007F64F54074C7 -:107DA00004D25FEA4E0E6D4146EB060642EAC6215A -:107DB00041EA55514FEAC52040EA5E504FEACE2EC7 -:107DC000B4F1FD0C88BFBCF5E06F1ED8BEF1004FCA -:107DD00008BF5FEA500E50F1000041EB045170BD46 -:107DE00006F0004646EA010140EA020081EA03018A -:107DF000B4EB5C04C2BFD4EB0C0541EA045170BD86 -:107E000041F480114FF0000E013C00F3AB8014F1FF -:107E1000360FDEBF002001F0004170BDC4F1000448 -:107E2000203C35DA0C341BDC04F11404C4F12005C9 -:107E300000FA05F320FA04F001FA05F240EA020024 -:107E400001F0004221F0004110EBD37021FA04F65A -:107E500042EB06015EEA430E08BF20EAD37070BD14 -:107E6000C4F10C04C4F1200500FA04F320FA05F073 -:107E700001FA04F240EA020001F0004110EBD37075 -:107E800041F100015EEA430E08BF20EAD37070BDE5 -:107E9000C4F1200500FA05F24EEA020E20FA04F3BE -:107EA00001FA05F243EA020321FA04F001F000416D -:107EB00021FA04F220EA020000EBD3705EEA430EDE -:107EC00008BF20EAD37070BD94F0000F0FD101F00D -:107ED0000046400041EB010111F4801F08BF013C46 -:107EE000F7D041EA060195F0000F18BF704703F084 -:107EF0000046520043EB030313F4801F08BF013D0B -:107F0000F7D043EA0603704794EA0C0F0CEA1355C6 -:107F100018BF95EA0C0F0CD050EA410618BF52EA80 -:107F20004306D1D181EA030101F000414FF0000086 -:107F300070BD50EA410606BF1046194652EA430694 -:107F400019D094EA0C0F02D150EA013613D195EA08 -:107F50000C0F05D152EA03361CBF104619460AD150 -:107F600081EA030101F0004141F0FE4141F470015A -:107F70004FF0000070BD41F0FE4141F4780170BD4A -:107F800070B54FF0FF0C4CF4E06C1CEA11541DBFAF -:107F90001CEA135594EA0C0F95EA0C0F00F0A7F8B1 -:107FA000A4EB050481EA030E52EA03354FEA0131DE -:107FB00000F088804FEA03334FF0805545EA1313F1 -:107FC00043EA12634FEA022245EA111545EA1065B9 -:107FD0004FEA00260EF000419D4208BF964244F150 -:107FE000FD0404F5407402D25B084FEA3202B61A6F -:107FF00065EB03055B084FEA32024FF480104FF443 -:10800000002CB6EB020E75EB030E22BFB61A7546B6 -:1080100040EA0C005B084FEA3202B6EB020E75EB49 -:10802000030E22BFB61A754640EA5C005B084FEAB1 -:108030003202B6EB020E75EB030E22BFB61A75467E -:1080400040EA9C005B084FEA3202B6EB020E75EB89 -:10805000030E22BFB61A754640EADC0055EA060E4A -:1080600018D04FEA051545EA16754FEA06164FEA8D -:10807000C30343EA52734FEAC2025FEA1C1CC0D139 -:1080800011F4801F0BD141EA00014FF000004FF0C6 -:10809000004CB6E711F4801F04BF01430020B4F187 -:1080A000FD0C88BFBCF5E06F3FF6AFAEB5EB030C3F -:1080B00004BFB6EB020C5FEA500C50F1000041EB3C -:1080C000045170BD0EF0004E4EEA113114EB5C0409 -:1080D000C2BFD4EB0C0541EA045170BD41F48011DC -:1080E0004FF0000E013C90E645EA060E8DE60CEAE4 -:1080F000135594EA0C0F08BF95EA0C0F3FF43BAF01 -:1081000094EA0C0F0AD150EA01347FF434AF95EAB7 -:108110000C0F7FF425AF104619462CE795EA0C0F9B -:1081200006D152EA03353FF4FDAE1046194622E768 -:1081300050EA410618BF52EA43067FF4C5AE50EA42 -:1081400041047FF40DAF52EA43057FF4EBAE12E732 -:108150004FF0FF3C06E000BF4FF0010C02E000BF13 -:108160004FF0010C4DF804CD4FEA410C7FEA6C5CF6 -:108170004FEA430C18BF7FEA6C5C1BD001B050EA99 -:10818000410C0CBF52EA430C91EA030F02BF90EA84 -:10819000020F0020704710F1000F91EA030F58BF43 -:1081A000994208BF90422CBFD8176FEAE37040F0A5 -:1081B000010070474FEA410C7FEA6C5C02D150EA43 -:1081C000013C07D14FEA430C7FEA6C5CD6D152EAFE -:1081D000033CD3D05DF8040B704700BF84461046C3 -:1081E00062468C461946634600E000BF01B5FFF7C2 -:1081F000B7FF002848BF10F1000F01BD4DF808ED92 -:10820000FFF7F4FF0CBF012000205DF808FB00BF62 -:108210004DF808EDFFF7EAFF34BF012000205DF8BC -:1082200008FB00BF4DF808EDFFF7E0FF94BF012009 -:1082300000205DF808FB00BF4DF808EDFFF7CEFF0A -:1082400094BF012000205DF808FB00BF4DF808ED49 -:10825000FFF7C4FF34BF012000205DF808FB00BF1A -:108260004FEA410212F5001215D211D56FF478735E -:10827000B3EB625212D94FEAC12343F0004343EA01 -:10828000505311F0004F23FA02F018BF40427047DC -:108290004FF00000704750EA013005D111F0004066 -:1082A00008BF6FF0004070474FF00000704700BFFC -:1082B0004A0011D212F5001211D20DD56FF4787365 -:1082C000B3EB62520ED44FEAC12343F0004343EABA -:1082D000505323FA02F070474FF00000704750EA05 -:1082E000013002D14FF0FF3070474FF0000070476F -:1082F0004FEA4102B2F1E04324BFB3F5001CDCF1C8 -:10830000FE5C0DD901F0004C4FEAC0024CEA5070FF -:10831000B2F1004F40EB830008BF20F0010070472E -:1083200011F0804F21D113F13872BCBF01F0004031 -:10833000704741F480114FEA5252C2F11802C2F163 -:10834000200C10FA0CF320FA02F018BF40F00100E4 -:108350004FEAC1234FEAD32303FA0CFC40EA0C0096 -:1083600023FA02F34FEA4303CCE77FEA625307D1D3 -:1083700050EA01331EBF4FF0FE4040F4400070470A -:1083800001F0004040F0FE4040F40000704700BFA4 -:10839000014B1868704700BFF0000020982F8A42F8 -:1083A00091443771CFFBC0B5A5DBB5E95BC2563947 -:1083B000F111F159A4823F92D55E1CAB98AA07D85F -:1083C000015B8312BE853124C37D0C55745DBE7282 -:1083D000FEB1DE80A706DC9B74F19BC1C1699BE402 -:1083E0008647BEEFC69DC10FCCA10C246F2CE92D92 -:1083F000AA84744ADCA9B05CDA88F97652513E98B6 -:108400006DC631A8C82703B0C77F59BFF30BE0C6BC -:108410004791A7D55163CA0667292914850AB7274A -:1084200038211B2EFC6D2C4D130D385354730A65E7 -:10843000BB0A6A762EC9C281852C7292A1E8BFA2BE -:108440004B661AA8708B4BC2A3516CC719E892D126 -:10845000240699D685350EF470A06A1016C1A419A9 -:10846000086C371E4C774827B5BCB034B30C1C39A8 -:108470004AAAD84E4FCA9C5BF36F2E68EE828F7467 -:108480006F63A5781478C8840802C78CFAFFBE9081 -:10849000EB6C50A4F7A3F9BEF27871C670726F63EB -:1084A000657373206D657373616765732066726FA2 -:1084B0006D2073657269616C20706F7274000000CA -:1084C00073656E64206D61766C696E6B206D65738B -:1084D000736167657300000073746174656D616337 -:1084E00068696E6520737465702066756E63746963 -:1084F0006F6E000072756E20746865207768656520 -:108500006C20656E636F64657200000072756E208A -:108510006F646F6D65747279206D6F64756C650042 -:1085200072756E2076656869636C65207370656529 -:108530006420636F6E74726F6C00000072756E2041 -:1085400074686520736572766F20616E676C652054 -:1085500063616C63756C6174696F6E0072756E2017 -:108560007374656572696E6720616E676C652073F0 -:10857000656C6563746F720072756E206C617465F2 -:1085800072616C20636F6E74726F6C6C6572000048 -:1085900072756E20736D61727420736572766F20D0 -:1085A000646576696365000072756E207365727626 -:1085B0006F20706900000000982F8A429144377143 -:1085C000CFFBC0B5A5DBB5E95BC25639F111F15956 -:1085D000A4823F92D55E1CAB98AA07D8015B831298 -:1085E000BE853124C37D0C55745DBE72FEB1DE8044 -:1085F000A706DC9B74F19BC1C1699BE48647BEEF73 -:10860000C69DC10FCCA10C246F2CE92DAA84744AFD -:10861000DCA9B05CDA88F97652513E986DC631A873 -:10862000C82703B0C77F59BFF30BE0C64791A7D552 -:108630005163CA0667292914850AB72738211B2EDA -:10864000FC6D2C4D130D385354730A65BB0A6A76C2 -:108650002EC9C281852C7292A1E8BFA24B661AA8CE -:10866000708B4BC2A3516CC719E892D1240699D6DE -:1086700085350EF470A06A1016C1A419086C371E57 -:108680004C774827B5BCB034B30C1C394AAAD84E35 -:108690004FCA9C5BF36F2E68EE828F746F63A57870 -:1086A0001478C8840802C78CFAFFBE90EB6C50A403 -:1086B000F7A3F9BEF27871C653544D3A20696E693A -:1086C0007469616C697A696E670A000053544D3AA7 -:1086D00020496C6C6567616C2070726576537461BB -:1086E00074650A0053544D3A2073776974636820A7 -:1086F0007374617465202575202D3E2025750A0050 -:10870000982F8A4291443771CFFBC0B5A5DBB5E9FC -:108710005BC25639F111F159A4823F92D55E1CAB70 -:1087200098AA07D8015B8312BE853124C37D0C55FE -:10873000745DBE72FEB1DE80A706DC9B74F19BC146 -:10874000C1699BE48647BEEFC69DC10FCCA10C2436 -:108750006F2CE92DAA84744ADCA9B05CDA88F9761A -:1087600052513E986DC631A8C82703B0C77F59BF84 -:10877000F30BE0C64791A7D55163CA0667292914B0 -:10878000850AB72738211B2EFC6D2C4D130D38534D -:1087900054730A65BB0A6A762EC9C281852C72920F -:1087A000A1E8BFA24B661AA8708B4BC2A3516CC73D -:1087B00019E892D1240699D685350EF470A06A1076 -:1087C00016C1A419086C371E4C774827B5BCB034C5 -:1087D000B30C1C394AAAD84E4FCA9C5BF36F2E6863 -:1087E000EE828F746F63A5781478C8840802C78CF2 -:1087F000FAFFBE90EB6C50A4F7A3F9BEF27871C6F5 -:10880000484541525442454154000000737461741C -:10881000650000006D61766C696E6B5F76657273E2 -:10882000696F6E004552524F520000006572726FC0 -:1088300072636F64650000004F444F4D45545259B8 -:108840000000000074696D657374616D705F6F6422 -:108850006F6D000074696D657374616D705F737422 -:10886000616E67007665687370645F6F646F6D003A -:1088700078646973745F6F646F6D00007964697305 -:10888000745F6F646F6D0000796177616E676C650E -:108890005F6F646F6D0000007374616E67000000AD -:1088A000434152434F4E54524F4C000074696D6522 -:1088B0007374616D70000000766568737064000009 -:1088C0005452414A4543544F525900007800000029 -:1088D0007900000074686574610000006B6170705D -:1088E0006100000076000000434D445F5245515541 -:1088F0004553545F4D5347006D7367696400000032 -:108900006163746976650000706572696F64000068 -:10891000434D445F524551554553545F5354415460 -:10892000454348414E474500434D445F52455155EC -:108930004553545F434C4F434B53594E4300000043 -:1089400064756D6D7900000000000000008801086A -:10895000020000000C880108000000000100000077 -:108960000000000000000000000000001488010862 -:1089700000000000010000000000000001000000F5 -:1089800001000000000000000000000000000000E6 -:1089900000000000000000000000000000000000D7 -:1089A00000000000000000000000000000000000C7 -:1089B00000000000000000000000000000000000B7 -:1089C00000000000000000000000000000000000A7 -:1089D0000000000000000000000000000000000097 -:1089E0000000000000000000000000000000000087 -:1089F0000000000000000000000000000000000077 -:108A00000000000000000000000000000000000066 -:108A10000000000000000000000000000000000056 -:108A20000000000000000000000000000000000046 -:108A30000000000000000000000000000000000036 -:108A40000000000000000000000000000000000026 -:108A50000000000000000000000000000000000016 -:108A60000000000000000000000000000000000006 -:108A700000000000000000000000000000000000F6 -:108A800000000000000000000000000000000000E6 -:108A900000000000000000000000000000000000D6 -:108AA00000000000000000000000000000000000C6 -:108AB00000000000000000000000000000000000B6 -:108AC00000000000000000000000000000000000A6 -:108AD0000000000000000000000000000000000096 -:108AE0000000000000000000000000000000000086 -:108AF0000000000000000000000000000000000076 -:108B00000000000000000000000000000000000065 -:108B10000000000000000000000000000000000055 -:108B20000000000000000000000000000000000045 -:108B30000000000000000000000000000000000035 -:108B40000000000000000000000000000000000025 -:108B50000000000000000000000000000000000015 -:108B60000000000000000000000000000000000005 -:108B700000000000000000000000000000000000F5 -:108B800000000000000000000000000000000000E5 -:108B900000000000000000000000000000000000D5 -:108BA00000000000000000000000000000000000C5 -:108BB00000000000000000000000000000000000B5 -:108BC00000000000000000000000000000000000A5 -:108BD0000000000000000000000000000000000095 -:108BE0000000000000000000000000000000000085 -:108BF0000000000000000000000000000000000075 -:108C00000000000000000000000000000000000064 -:108C10000000000000000000000000000000000054 -:108C20000000000000000000000000000000000044 -:108C30000000000000000000000000000000000034 -:108C40000000000000000000000000000000000024 -:108C50000000000000000000000000000000000014 -:108C60000000000000000000000000000000000004 -:108C700000000000000000000000000000000000F4 -:108C800000000000000000000000000000000000E4 -:108C900000000000000000000000000000000000D4 -:108CA00000000000000000000000000000000000C4 -:108CB00000000000000000000000000000000000B4 -:108CC00000000000000000000000000000000000A4 -:108CD0000000000000000000000000000000000094 -:108CE0000000000000000000000000000000000084 -:108CF0000000000000000000000000000000000074 -:108D00000000000000000000000000000000000063 -:108D10000000000000000000000000000000000053 -:108D20000000000000000000000000000000000043 -:108D30000000000000000000000000000000000033 -:108D40000000000000000000000000000000000023 -:108D50000000000000000000000000000000000013 -:108D60000000000000000000000000000000000003 -:108D700000000000000000000000000000000000F3 -:108D800000000000000000000000000000000000E3 -:108D900000000000000000000000000000000000D3 -:108DA00000000000000000000000000000000000C3 -:108DB00000000000000000000000000000000000B3 -:108DC00000000000000000000000000000000000A3 -:108DD0000000000000000000000000000000000093 -:108DE0000000000000000000000000000000000083 -:108DF0000000000000000000000000000000000073 -:108E00000000000000000000000000000000000062 -:108E10000000000000000000000000000000000052 -:108E20000000000000000000000000000000000042 -:108E30000000000000000000000000000000000032 -:108E40000000000000000000000000000000000022 -:108E50000000000000000000000000000000000012 -:108E60000000000000000000000000000000000002 -:108E700000000000000000000000000000000000F2 -:108E800000000000000000000000000000000000E2 -:108E900000000000000000000000000000000000D2 -:108EA00000000000000000000000000000000000C2 -:108EB00000000000000000000000000000000000B2 -:108EC00000000000000000000000000000000000A2 -:108ED0000000000000000000000000000000000092 -:108EE0000000000000000000000000000000000082 -:108EF0000000000000000000000000000000000072 -:108F00000000000000000000000000000000000061 -:108F10000000000000000000000000000000000051 -:108F20000000000000000000000000000000000041 -:108F30000000000000000000000000000000000031 -:108F40000000000000000000000000000000000021 -:108F5000000000000100000024880108010000005A -:108F60002C8801080000000007000000000000003D -:108F700000000000000000000000000000000000F1 -:108F800000000000000000000000000000000000E1 -:108F900000000000000000000000000000000000D1 -:108FA00000000000000000000000000000000000C1 -:108FB00000000000000000000000000000000000B1 -:108FC00000000000000000000000000000000000A1 -:108FD0000000000000000000000000000000000091 -:108FE0000000000000000000000000000000000081 -:108FF0000000000000000000000000000000000071 -:109000000000000000000000000000000000000060 -:109010000000000000000000000000000000000050 -:109020000000000000000000000000000000000040 -:109030000000000000000000000000000000000030 -:109040000000000000000000000000000000000020 -:109050000000000000000000000000000000000010 -:109060000000000000000000000000000000000000 -:1090700000000000000000000000000000000000F0 -:1090800000000000000000000000000000000000E0 -:1090900000000000000000000000000000000000D0 -:1090A00000000000000000000000000000000000C0 -:1090B00000000000000000000000000000000000B0 -:1090C00000000000000000000000000000000000A0 -:1090D0000000000000000000000000000000000090 -:1090E0000000000000000000000000000000000080 -:1090F0000000000000000000000000000000000070 -:10910000000000000000000000000000000000005F -:10911000000000000000000000000000000000004F -:10912000000000000000000000000000000000003F -:10913000000000000000000000000000000000002F -:10914000000000000000000000000000000000001F -:10915000000000000000000000000000000000000F -:1091600000000000000000000000000000000000FF -:1091700000000000000000000000000000000000EF -:1091800000000000000000000000000000000000DF -:1091900000000000000000000000000000000000CF -:1091A00000000000000000000000000000000000BF -:1091B00000000000000000000000000000000000AF -:1091C000000000000000000000000000000000009F -:1091D000000000000000000000000000000000008F -:1091E000000000000000000000000000000000007F -:1091F000000000000000000000000000000000006F -:10920000000000000000000000000000000000005E -:10921000000000000000000000000000000000004E -:10922000000000000000000000000000000000003E -:10923000000000000000000000000000000000002E -:10924000000000000000000000000000000000001E -:10925000000000000000000000000000000000000E -:1092600000000000000000000000000000000000FE -:1092700000000000000000000000000000000000EE -:1092800000000000000000000000000000000000DE -:1092900000000000000000000000000000000000CE -:1092A00000000000000000000000000000000000BE -:1092B00000000000000000000000000000000000AE -:1092C000000000000000000000000000000000009E -:1092D000000000000000000000000000000000008E -:1092E000000000000000000000000000000000007E -:1092F000000000000000000000000000000000006E -:10930000000000000000000000000000000000005D -:10931000000000000000000000000000000000004D -:10932000000000000000000000000000000000003D -:10933000000000000000000000000000000000002D -:10934000000000000000000000000000000000001D -:10935000000000000000000000000000000000000D -:1093600000000000000000000000000000000000FD -:1093700000000000000000000000000000000000ED -:1093800000000000000000000000000000000000DD -:1093900000000000000000000000000000000000CD -:1093A00000000000000000000000000000000000BD -:1093B00000000000000000000000000000000000AD -:1093C000000000000000000000000000000000009D -:1093D000000000000000000000000000000000008D -:1093E000000000000000000000000000000000007D -:1093F000000000000000000000000000000000006D -:10940000000000000000000000000000000000005C -:10941000000000000000000000000000000000004C -:10942000000000000000000000000000000000003C -:10943000000000000000000000000000000000002C -:10944000000000000000000000000000000000001C -:10945000000000000000000000000000000000000C -:1094600000000000000000000000000000000000FC -:1094700000000000000000000000000000000000EC -:1094800000000000000000000000000000000000DC -:1094900000000000000000000000000000000000CC -:1094A00000000000000000000000000000000000BC -:1094B00000000000000000000000000000000000AC -:1094C000000000000000000000000000000000009C -:1094D000000000000000000000000000000000008C -:1094E000000000000000000000000000000000007C -:1094F000000000000000000000000000000000006C -:10950000000000000000000000000000000000005B -:10951000000000000000000000000000000000004B -:10952000000000000000000000000000000000003B -:10953000000000000000000000000000000000002B -:10954000000000000000000000000000000000001B -:10955000000000000000000000000000000000000B -:109560000200000038880108070000004488010854 -:1095700000000000050000000000000000000000E6 -:1095800000000000548801080000000005000000F1 -:1095900000000000040000000400000064880108CE -:1095A00000000000090000000000000008000000AA -:1095B0000800000070880108000000000900000099 -:1095C000000000000C0000000C0000007C88010876 -:1095D0000000000009000000000000001000000072 -:1095E0001000000088880108000000000900000049 -:1095F000000000001400000014000000988801081A -:109600000000000009000000000000001800000039 -:109610001800000000000000000000000000000032 -:10962000000000000000000000000000000000003A -:10963000000000000000000000000000000000002A -:10964000000000000000000000000000000000001A -:10965000000000000000000000000000000000000A -:1096600000000000000000000000000000000000FA -:1096700000000000000000000000000000000000EA -:1096800000000000000000000000000000000000DA -:1096900000000000000000000000000000000000CA -:1096A00000000000000000000000000000000000BA -:1096B00000000000000000000000000000000000AA -:1096C000000000000000000000000000000000009A -:1096D000000000000000000000000000000000008A -:1096E000000000000000000000000000000000007A -:1096F000000000000000000000000000000000006A -:109700000000000000000000000000000000000059 -:109710000000000000000000000000000000000049 -:109720000000000000000000000000000000000039 -:109730000000000000000000000000000000000029 -:109740000000000000000000000000000000000019 -:109750000000000000000000000000000000000009 -:1097600000000000000000000000000000000000F9 -:1097700000000000000000000000000000000000E9 -:1097800000000000000000000000000000000000D9 -:1097900000000000000000000000000000000000C9 -:1097A00000000000000000000000000000000000B9 -:1097B00000000000000000000000000000000000A9 -:1097C0000000000000000000000000000000000099 -:1097D0000000000000000000000000000000000089 -:1097E0000000000000000000000000000000000079 -:1097F0000000000000000000000000000000000069 -:109800000000000000000000000000000000000058 -:109810000000000000000000000000000000000048 -:109820000000000000000000000000000000000038 -:109830000000000000000000000000000000000028 -:109840000000000000000000000000000000000018 -:109850000000000000000000000000000000000008 -:1098600000000000000000000000000000000000F8 -:1098700000000000000000000000000000000000E8 -:1098800000000000000000000000000000000000D8 -:1098900000000000000000000000000000000000C8 -:1098A00000000000000000000000000000000000B8 -:1098B00000000000000000000000000000000000A8 -:1098C0000000000000000000000000000000000098 -:1098D0000000000000000000000000000000000088 -:1098E0000000000000000000000000000000000078 -:1098F0000000000000000000000000000000000068 -:109900000000000000000000000000000000000057 -:109910000000000000000000000000000000000047 -:109920000000000000000000000000000000000037 -:109930000000000000000000000000000000000027 -:109940000000000000000000000000000000000017 -:109950000000000000000000000000000000000007 -:1099600000000000000000000000000000000000F7 -:1099700000000000000000000000000000000000E7 -:1099800000000000000000000000000000000000D7 -:1099900000000000000000000000000000000000C7 -:1099A00000000000000000000000000000000000B7 -:1099B00000000000000000000000000000000000A7 -:1099C0000000000000000000000000000000000097 -:1099D0000000000000000000000000000000000087 -:1099E0000000000000000000000000000000000077 -:1099F0000000000000000000000000000000000067 -:109A00000000000000000000000000000000000056 -:109A10000000000000000000000000000000000046 -:109A20000000000000000000000000000000000036 -:109A30000000000000000000000000000000000026 -:109A40000000000000000000000000000000000016 -:109A50000000000000000000000000000000000006 -:109A600000000000000000000000000000000000F6 -:109A700000000000000000000000000000000000E6 -:109A800000000000000000000000000000000000D6 -:109A900000000000000000000000000000000000C6 -:109AA00000000000000000000000000000000000B6 -:109AB00000000000000000000000000000000000A6 -:109AC0000000000000000000000000000000000096 -:109AD0000000000000000000000000000000000086 -:109AE0000000000000000000000000000000000076 -:109AF0000000000000000000000000000000000066 -:109B00000000000000000000000000000000000055 -:109B10000000000000000000000000000000000045 -:109B20000000000000000000000000000000000035 -:109B30000000000000000000000000000000000025 -:109B40000000000000000000000000000000000015 -:109B50000000000000000000000000000000000005 -:109B600000000000000000000000000032000000C3 -:109B7000A088010803000000AC8801080000000074 -:109B800005000000000000000000000000000000D0 -:109B9000B888010800000000090000000000000073 -:109BA0000400000004000000988801080000000084 -:109BB000090000000000000008000000080000008C -:109BC0000000000000000000000000000000000095 -:109BD0000000000000000000000000000000000085 -:109BE0000000000000000000000000000000000075 -:109BF0000000000000000000000000000000000065 -:109C00000000000000000000000000000000000054 -:109C10000000000000000000000000000000000044 -:109C20000000000000000000000000000000000034 -:109C30000000000000000000000000000000000024 -:109C40000000000000000000000000000000000014 -:109C50000000000000000000000000000000000004 -:109C600000000000000000000000000000000000F4 -:109C700000000000000000000000000000000000E4 -:109C800000000000000000000000000000000000D4 -:109C900000000000000000000000000000000000C4 -:109CA00000000000000000000000000000000000B4 -:109CB00000000000000000000000000000000000A4 -:109CC0000000000000000000000000000000000094 -:109CD0000000000000000000000000000000000084 -:109CE0000000000000000000000000000000000074 -:109CF0000000000000000000000000000000000064 -:109D00000000000000000000000000000000000053 -:109D10000000000000000000000000000000000043 -:109D20000000000000000000000000000000000033 -:109D30000000000000000000000000000000000023 -:109D40000000000000000000000000000000000013 -:109D50000000000000000000000000000000000003 -:109D600000000000000000000000000000000000F3 -:109D700000000000000000000000000000000000E3 -:109D800000000000000000000000000000000000D3 -:109D900000000000000000000000000000000000C3 -:109DA00000000000000000000000000000000000B3 -:109DB00000000000000000000000000000000000A3 -:109DC0000000000000000000000000000000000093 -:109DD0000000000000000000000000000000000083 -:109DE0000000000000000000000000000000000073 -:109DF0000000000000000000000000000000000063 -:109E00000000000000000000000000000000000052 -:109E10000000000000000000000000000000000042 -:109E20000000000000000000000000000000000032 -:109E30000000000000000000000000000000000022 -:109E40000000000000000000000000000000000012 -:109E50000000000000000000000000000000000002 -:109E600000000000000000000000000000000000F2 -:109E700000000000000000000000000000000000E2 -:109E800000000000000000000000000000000000D2 -:109E900000000000000000000000000000000000C2 -:109EA00000000000000000000000000000000000B2 -:109EB00000000000000000000000000000000000A2 -:109EC0000000000000000000000000000000000092 -:109ED0000000000000000000000000000000000082 -:109EE0000000000000000000000000000000000072 -:109EF0000000000000000000000000000000000062 -:109F00000000000000000000000000000000000051 -:109F10000000000000000000000000000000000041 -:109F20000000000000000000000000000000000031 -:109F30000000000000000000000000000000000021 -:109F40000000000000000000000000000000000011 -:109F50000000000000000000000000000000000001 -:109F600000000000000000000000000000000000F1 -:109F700000000000000000000000000000000000E1 -:109F800000000000000000000000000000000000D1 -:109F900000000000000000000000000000000000C1 -:109FA00000000000000000000000000000000000B1 -:109FB00000000000000000000000000000000000A1 -:109FC0000000000000000000000000000000000091 -:109FD0000000000000000000000000000000000081 -:109FE0000000000000000000000000000000000071 -:109FF0000000000000000000000000000000000061 -:10A000000000000000000000000000000000000050 -:10A010000000000000000000000000000000000040 -:10A020000000000000000000000000000000000030 -:10A030000000000000000000000000000000000020 -:10A040000000000000000000000000000000000010 -:10A050000000000000000000000000000000000000 -:10A0600000000000000000000000000000000000F0 -:10A0700000000000000000000000000000000000E0 -:10A0800000000000000000000000000000000000D0 -:10A0900000000000000000000000000000000000C0 -:10A0A00000000000000000000000000000000000B0 -:10A0B00000000000000000000000000000000000A0 -:10A0C0000000000000000000000000000000000090 -:10A0D0000000000000000000000000000000000080 -:10A0E0000000000000000000000000000000000070 -:10A0F0000000000000000000000000000000000060 -:10A10000000000000000000000000000000000004F -:10A11000000000000000000000000000000000003F -:10A12000000000000000000000000000000000002F -:10A13000000000000000000000000000000000001F -:10A14000000000000000000000000000000000000F -:10A1500000000000000000000000000000000000FF -:10A1600000000000000000000000000000000000EF -:10A17000000000000000000033000000C08801085B -:10A1800006000000AC880108000000000500000087 -:10A19000000000000000000000000000CC88010862 -:10A1A00000000000040000000A000000040000009D -:10A1B00004000000D0880108000000000300000037 -:10A1C0000A0000001800000018000000D4880108F0 -:10A1D00000000000040000000A0000002C00000045 -:10A1E0002C000000DC8801080000000004000000D2 -:10A1F0000A0000004000000040000000E488010860 -:10A2000000000000020000000A00000054000000EE -:10A2100054000000000000000000000000000000EA -:10A22000000000000000000000000000000000002E -:10A23000000000000000000000000000000000001E -:10A24000000000000000000000000000000000000E -:10A2500000000000000000000000000000000000FE -:10A2600000000000000000000000000000000000EE -:10A2700000000000000000000000000000000000DE -:10A2800000000000000000000000000000000000CE -:10A2900000000000000000000000000000000000BE -:10A2A00000000000000000000000000000000000AE -:10A2B000000000000000000000000000000000009E -:10A2C000000000000000000000000000000000008E -:10A2D000000000000000000000000000000000007E -:10A2E000000000000000000000000000000000006E -:10A2F000000000000000000000000000000000005E -:10A30000000000000000000000000000000000004D -:10A31000000000000000000000000000000000003D -:10A32000000000000000000000000000000000002D -:10A33000000000000000000000000000000000001D -:10A34000000000000000000000000000000000000D -:10A3500000000000000000000000000000000000FD -:10A3600000000000000000000000000000000000ED -:10A3700000000000000000000000000000000000DD -:10A3800000000000000000000000000000000000CD -:10A3900000000000000000000000000000000000BD -:10A3A00000000000000000000000000000000000AD -:10A3B000000000000000000000000000000000009D -:10A3C000000000000000000000000000000000008D -:10A3D000000000000000000000000000000000007D -:10A3E000000000000000000000000000000000006D -:10A3F000000000000000000000000000000000005D -:10A40000000000000000000000000000000000004C -:10A41000000000000000000000000000000000003C -:10A42000000000000000000000000000000000002C -:10A43000000000000000000000000000000000001C -:10A44000000000000000000000000000000000000C -:10A4500000000000000000000000000000000000FC -:10A4600000000000000000000000000000000000EC -:10A4700000000000000000000000000000000000DC -:10A4800000000000000000000000000000000000CC -:10A4900000000000000000000000000000000000BC -:10A4A00000000000000000000000000000000000AC -:10A4B000000000000000000000000000000000009C -:10A4C000000000000000000000000000000000008C -:10A4D000000000000000000000000000000000007C -:10A4E000000000000000000000000000000000006C -:10A4F000000000000000000000000000000000005C -:10A50000000000000000000000000000000000004B -:10A51000000000000000000000000000000000003B -:10A52000000000000000000000000000000000002B -:10A53000000000000000000000000000000000001B -:10A54000000000000000000000000000000000000B -:10A5500000000000000000000000000000000000FB -:10A5600000000000000000000000000000000000EB -:10A5700000000000000000000000000000000000DB -:10A5800000000000000000000000000000000000CB -:10A5900000000000000000000000000000000000BB -:10A5A00000000000000000000000000000000000AB -:10A5B000000000000000000000000000000000009B -:10A5C000000000000000000000000000000000008B -:10A5D000000000000000000000000000000000007B -:10A5E000000000000000000000000000000000006B -:10A5F000000000000000000000000000000000005B -:10A60000000000000000000000000000000000004A -:10A61000000000000000000000000000000000003A -:10A62000000000000000000000000000000000002A -:10A63000000000000000000000000000000000001A -:10A64000000000000000000000000000000000000A -:10A6500000000000000000000000000000000000FA -:10A6600000000000000000000000000000000000EA -:10A6700000000000000000000000000000000000DA -:10A6800000000000000000000000000000000000CA -:10A6900000000000000000000000000000000000BA -:10A6A00000000000000000000000000000000000AA -:10A6B000000000000000000000000000000000009A -:10A6C000000000000000000000000000000000008A -:10A6D000000000000000000000000000000000007A -:10A6E000000000000000000000000000000000006A -:10A6F000000000000000000000000000000000005A -:10A700000000000000000000000000000000000049 -:10A710000000000000000000000000000000000039 -:10A720000000000000000000000000000000000029 -:10A730000000000000000000000000000000000019 -:10A740000000000000000000000000000000000009 -:10A7500000000000000000000000000000000000F9 -:10A7600000000000000000000000000000000000E9 -:10A7700000000000000000000000000000000000D9 -:10A780000000000064000000E888010803000000E9 -:10A79000F88801080000000001000000000000002F -:10A7A0000000000000000000008901080000000017 -:10A7B0000100000000000000010000000100000096 -:10A7C00008890108000000000100000000000000EE -:10A7D0000200000002000000000000000000000075 -:10A7E0000000000000000000000000000000000069 -:10A7F0000000000000000000000000000000000059 -:10A800000000000000000000000000000000000048 -:10A810000000000000000000000000000000000038 -:10A820000000000000000000000000000000000028 -:10A830000000000000000000000000000000000018 -:10A840000000000000000000000000000000000008 -:10A8500000000000000000000000000000000000F8 -:10A8600000000000000000000000000000000000E8 -:10A8700000000000000000000000000000000000D8 -:10A8800000000000000000000000000000000000C8 -:10A8900000000000000000000000000000000000B8 -:10A8A00000000000000000000000000000000000A8 -:10A8B0000000000000000000000000000000000098 -:10A8C0000000000000000000000000000000000088 -:10A8D0000000000000000000000000000000000078 -:10A8E0000000000000000000000000000000000068 -:10A8F0000000000000000000000000000000000058 -:10A900000000000000000000000000000000000047 -:10A910000000000000000000000000000000000037 -:10A920000000000000000000000000000000000027 -:10A930000000000000000000000000000000000017 -:10A940000000000000000000000000000000000007 -:10A9500000000000000000000000000000000000F7 -:10A9600000000000000000000000000000000000E7 -:10A9700000000000000000000000000000000000D7 -:10A9800000000000000000000000000000000000C7 -:10A9900000000000000000000000000000000000B7 -:10A9A00000000000000000000000000000000000A7 -:10A9B0000000000000000000000000000000000097 -:10A9C0000000000000000000000000000000000087 -:10A9D0000000000000000000000000000000000077 -:10A9E0000000000000000000000000000000000067 -:10A9F0000000000000000000000000000000000057 -:10AA00000000000000000000000000000000000046 -:10AA10000000000000000000000000000000000036 -:10AA20000000000000000000000000000000000026 -:10AA30000000000000000000000000000000000016 -:10AA40000000000000000000000000000000000006 -:10AA500000000000000000000000000000000000F6 -:10AA600000000000000000000000000000000000E6 -:10AA700000000000000000000000000000000000D6 -:10AA800000000000000000000000000000000000C6 -:10AA900000000000000000000000000000000000B6 -:10AAA00000000000000000000000000000000000A6 -:10AAB0000000000000000000000000000000000096 -:10AAC0000000000000000000000000000000000086 -:10AAD0000000000000000000000000000000000076 -:10AAE0000000000000000000000000000000000066 -:10AAF0000000000000000000000000000000000056 -:10AB00000000000000000000000000000000000045 -:10AB10000000000000000000000000000000000035 -:10AB20000000000000000000000000000000000025 -:10AB30000000000000000000000000000000000015 -:10AB40000000000000000000000000000000000005 -:10AB500000000000000000000000000000000000F5 -:10AB600000000000000000000000000000000000E5 -:10AB700000000000000000000000000000000000D5 -:10AB800000000000000000000000000000000000C5 -:10AB900000000000000000000000000000000000B5 -:10ABA00000000000000000000000000000000000A5 -:10ABB0000000000000000000000000000000000095 -:10ABC0000000000000000000000000000000000085 -:10ABD0000000000000000000000000000000000075 -:10ABE0000000000000000000000000000000000065 -:10ABF0000000000000000000000000000000000055 -:10AC00000000000000000000000000000000000044 -:10AC10000000000000000000000000000000000034 -:10AC20000000000000000000000000000000000024 -:10AC30000000000000000000000000000000000014 -:10AC40000000000000000000000000000000000004 -:10AC500000000000000000000000000000000000F4 -:10AC600000000000000000000000000000000000E4 -:10AC700000000000000000000000000000000000D4 -:10AC800000000000000000000000000000000000C4 -:10AC900000000000000000000000000000000000B4 -:10ACA00000000000000000000000000000000000A4 -:10ACB0000000000000000000000000000000000094 -:10ACC0000000000000000000000000000000000084 -:10ACD0000000000000000000000000000000000074 -:10ACE0000000000000000000000000000000000064 -:10ACF0000000000000000000000000000000000054 -:10AD00000000000000000000000000000000000043 -:10AD10000000000000000000000000000000000033 -:10AD20000000000000000000000000000000000023 -:10AD30000000000000000000000000000000000013 -:10AD40000000000000000000000000000000000003 -:10AD500000000000000000000000000000000000F3 -:10AD600000000000000000000000000000000000E3 -:10AD700000000000000000000000000000000000D3 -:10AD800000000000000000000000000000000000C3 -:10AD90006500000010890108010000000C8801080E -:10ADA00000000000010000000000000000000000A2 -:10ADB0000000000000000000000000000000000093 -:10ADC0000000000000000000000000000000000083 -:10ADD0000000000000000000000000000000000073 -:10ADE0000000000000000000000000000000000063 -:10ADF0000000000000000000000000000000000053 -:10AE00000000000000000000000000000000000042 -:10AE10000000000000000000000000000000000032 -:10AE20000000000000000000000000000000000022 -:10AE30000000000000000000000000000000000012 -:10AE40000000000000000000000000000000000002 -:10AE500000000000000000000000000000000000F2 -:10AE600000000000000000000000000000000000E2 -:10AE700000000000000000000000000000000000D2 -:10AE800000000000000000000000000000000000C2 -:10AE900000000000000000000000000000000000B2 -:10AEA00000000000000000000000000000000000A2 -:10AEB0000000000000000000000000000000000092 -:10AEC0000000000000000000000000000000000082 -:10AED0000000000000000000000000000000000072 -:10AEE0000000000000000000000000000000000062 -:10AEF0000000000000000000000000000000000052 -:10AF00000000000000000000000000000000000041 -:10AF10000000000000000000000000000000000031 -:10AF20000000000000000000000000000000000021 -:10AF30000000000000000000000000000000000011 -:10AF40000000000000000000000000000000000001 -:10AF500000000000000000000000000000000000F1 -:10AF600000000000000000000000000000000000E1 -:10AF700000000000000000000000000000000000D1 -:10AF800000000000000000000000000000000000C1 -:10AF900000000000000000000000000000000000B1 -:10AFA00000000000000000000000000000000000A1 -:10AFB0000000000000000000000000000000000091 -:10AFC0000000000000000000000000000000000081 -:10AFD0000000000000000000000000000000000071 -:10AFE0000000000000000000000000000000000061 -:10AFF0000000000000000000000000000000000051 -:10B000000000000000000000000000000000000040 -:10B010000000000000000000000000000000000030 -:10B020000000000000000000000000000000000020 -:10B030000000000000000000000000000000000010 -:10B040000000000000000000000000000000000000 -:10B0500000000000000000000000000000000000F0 -:10B0600000000000000000000000000000000000E0 -:10B0700000000000000000000000000000000000D0 -:10B0800000000000000000000000000000000000C0 -:10B0900000000000000000000000000000000000B0 -:10B0A00000000000000000000000000000000000A0 -:10B0B0000000000000000000000000000000000090 -:10B0C0000000000000000000000000000000000080 -:10B0D0000000000000000000000000000000000070 -:10B0E0000000000000000000000000000000000060 -:10B0F0000000000000000000000000000000000050 -:10B10000000000000000000000000000000000003F -:10B11000000000000000000000000000000000002F -:10B12000000000000000000000000000000000001F -:10B13000000000000000000000000000000000000F -:10B1400000000000000000000000000000000000FF -:10B1500000000000000000000000000000000000EF -:10B1600000000000000000000000000000000000DF -:10B1700000000000000000000000000000000000CF -:10B1800000000000000000000000000000000000BF -:10B1900000000000000000000000000000000000AF -:10B1A000000000000000000000000000000000009F -:10B1B000000000000000000000000000000000008F -:10B1C000000000000000000000000000000000007F -:10B1D000000000000000000000000000000000006F -:10B1E000000000000000000000000000000000005F -:10B1F000000000000000000000000000000000004F -:10B20000000000000000000000000000000000003E -:10B21000000000000000000000000000000000002E -:10B22000000000000000000000000000000000001E -:10B23000000000000000000000000000000000000E -:10B2400000000000000000000000000000000000FE -:10B2500000000000000000000000000000000000EE -:10B2600000000000000000000000000000000000DE -:10B2700000000000000000000000000000000000CE -:10B2800000000000000000000000000000000000BE -:10B2900000000000000000000000000000000000AE -:10B2A000000000000000000000000000000000009E -:10B2B000000000000000000000000000000000008E -:10B2C000000000000000000000000000000000007E -:10B2D000000000000000000000000000000000006E -:10B2E000000000000000000000000000000000005E -:10B2F000000000000000000000000000000000004E -:10B30000000000000000000000000000000000003D -:10B31000000000000000000000000000000000002D -:10B32000000000000000000000000000000000001D -:10B33000000000000000000000000000000000000D -:10B3400000000000000000000000000000000000FD -:10B3500000000000000000000000000000000000ED -:10B3600000000000000000000000000000000000DD -:10B3700000000000000000000000000000000000CD -:10B3800000000000000000000000000000000000BD -:10B390000000000000000000000000006600000047 -:10B3A0002889010801000000408901080000000010 -:10B3B000010000000000000000000000000000008C -:10B3C000000000000000000000000000000000007D -:10B3D000000000000000000000000000000000006D -:10B3E000000000000000000000000000000000005D -:10B3F000000000000000000000000000000000004D -:10B40000000000000000000000000000000000003C -:10B41000000000000000000000000000000000002C -:10B42000000000000000000000000000000000001C -:10B43000000000000000000000000000000000000C -:10B4400000000000000000000000000000000000FC -:10B4500000000000000000000000000000000000EC -:10B4600000000000000000000000000000000000DC -:10B4700000000000000000000000000000000000CC -:10B4800000000000000000000000000000000000BC -:10B4900000000000000000000000000000000000AC -:10B4A000000000000000000000000000000000009C -:10B4B000000000000000000000000000000000008C -:10B4C000000000000000000000000000000000007C -:10B4D000000000000000000000000000000000006C -:10B4E000000000000000000000000000000000005C -:10B4F000000000000000000000000000000000004C -:10B50000000000000000000000000000000000003B -:10B51000000000000000000000000000000000002B -:10B52000000000000000000000000000000000001B -:10B53000000000000000000000000000000000000B -:10B5400000000000000000000000000000000000FB -:10B5500000000000000000000000000000000000EB -:10B5600000000000000000000000000000000000DB -:10B5700000000000000000000000000000000000CB -:10B5800000000000000000000000000000000000BB -:10B5900000000000000000000000000000000000AB -:10B5A000000000000000000000000000000000009B -:10B5B000000000000000000000000000000000008B -:10B5C000000000000000000000000000000000007B -:10B5D000000000000000000000000000000000006B -:10B5E000000000000000000000000000000000005B -:10B5F000000000000000000000000000000000004B -:10B60000000000000000000000000000000000003A -:10B61000000000000000000000000000000000002A -:10B62000000000000000000000000000000000001A -:10B63000000000000000000000000000000000000A -:10B6400000000000000000000000000000000000FA -:10B6500000000000000000000000000000000000EA -:10B6600000000000000000000000000000000000DA -:10B6700000000000000000000000000000000000CA -:10B6800000000000000000000000000000000000BA -:10B6900000000000000000000000000000000000AA -:10B6A000000000000000000000000000000000009A -:10B6B000000000000000000000000000000000008A -:10B6C000000000000000000000000000000000007A -:10B6D000000000000000000000000000000000006A -:10B6E000000000000000000000000000000000005A -:10B6F000000000000000000000000000000000004A -:10B700000000000000000000000000000000000039 -:10B710000000000000000000000000000000000029 -:10B720000000000000000000000000000000000019 -:10B730000000000000000000000000000000000009 -:10B7400000000000000000000000000000000000F9 -:10B7500000000000000000000000000000000000E9 -:10B7600000000000000000000000000000000000D9 -:10B7700000000000000000000000000000000000C9 -:10B7800000000000000000000000000000000000B9 -:10B7900000000000000000000000000000000000A9 -:10B7A0000000000000000000000000000000000099 -:10B7B0000000000000000000000000000000000089 -:10B7C0000000000000000000000000000000000079 -:10B7D0000000000000000000000000000000000069 -:10B7E0000000000000000000000000000000000059 -:10B7F0000000000000000000000000000000000049 -:10B800000000000000000000000000000000000038 -:10B810000000000000000000000000000000000028 -:10B820000000000000000000000000000000000018 -:10B830000000000000000000000000000000000008 -:10B8400000000000000000000000000000000000F8 -:10B8500000000000000000000000000000000000E8 -:10B8600000000000000000000000000000000000D8 -:10B8700000000000000000000000000000000000C8 -:10B8800000000000000000000000000000000000B8 -:10B8900000000000000000000000000000000000A8 -:10B8A0000000000000000000000000000000000098 -:10B8B0000000000000000000000000000000000088 -:10B8C0000000000000000000000000000000000078 -:10B8D0000000000000000000000000000000000068 -:10B8E0000000000000000000000000000000000058 -:10B8F0000000000000000000000000000000000048 -:10B900000000000000000000000000000000000037 -:10B910000000000000000000000000000000000027 -:10B920000000000000000000000000000000000017 -:10B930000000000000000000000000000000000007 -:10B9400000000000000000000000000000000000F7 -:10B9500000000000000000000000000000000000E7 -:10B9600000000000000000000000000000000000D7 -:10B9700000000000000000000000000000000000C7 -:10B9800000000000000000000000000000000000B7 -:10B9900000000000000000000000000000000000A7 -:10B9A00000000000000000004D41564C494E4B3A4B -:10B9B00020737769746368656420746F20756E6B9B -:10B9C0006E6F776E20737461746500004D41564C44 -:10B9D000696E6B3A206E6F7420696D706C656D6571 -:10B9E0006E746564206F7220756E6B6E6F776E205B -:10B9F0006D736769640A00004D41564C696E6B3A7D -:10BA00002055415254205458206275666665722054 -:10BA100066756C6C0A0000004D41564C494E4B3A1D -:10BA200020446F6E2774206B6E6F7720686F7720CD -:10BA3000746F2068616E646C65206D6573736167F7 -:10BA4000652069642025750A000000004D41564CB0 -:10BA5000494E4B3A20696E697469616C697A696E06 -:10BA6000670A00000000000055020000000000000E -:10BA7000010000004D08000000000000020000006E -:10BA8000091C00000000000032000000CA0C000089 -:10BA90000000000033000000045E00000000000011 -:10BAA00064000000D80300000000000065000000F2 -:10BAB000E5010000000000006600000077010000C2 -:10BAC000000000004572726F722077656E632E630E -:10BAD0003A20696E636F6E73697374656E74207754 -:10BAE0006865656C20646972656374696F6E206453 -:10BAF0006174610A000000004552524F523A2077AB -:10BB0000656E632E63206E6F2076616C69642045DC -:10BB10006E636F64657220646174610A00000000E6 -:10BB20000A0A2A2A2A536572766F2073657474692B -:10BB30006E67732A2A2A2A0A0A53435720416E67DE -:10BB40006C65204C696D69743A2025640A4343573B -:10BB500020416E676C65204C696D69743A202564DC -:10BB60000A546F72717565204C696D69743A2025AD -:10BB7000640A54656D70657261747572653A20254A -:10BB8000640A0000546172676574205374656572BD -:10BB9000696E6720416E676C653A20252E33660A10 -:10BBA000000000005049205374656572696E67207B -:10BBB000416E676C653A20252E33660A000000004E -:10BBC00041637475616C205374656572696E67209A -:10BBD000416E676C653A20252E33660A000000002E -:10BBE00041637475616C2054656D70657261747524 -:10BBF00072653A20252E33660A0000004572726F86 -:10BC00007220726174653A20252E33660A0A00009C -:10BC10000A0A2A2A2A4552524F523A2025732A2AC2 -:10BC20002A0A0A00494E50555420564F4C54414759 -:10BC300045000000414E474C45204C494D49542099 -:10BC400052454143484544004F56455248454154AA -:10BC5000494E470052414E47450000004348454386 -:10BC60004B53554D20525832344600004F564552E2 -:10BC70004C4F414400000000494E53545255435428 -:10BC8000494F4E00434845434B53554D2053544D67 -:10BC9000000000004E4F2053594E43204259544556 -:10BCA00053205245434549564544000045455052AE -:10BCB0004F4D205752495445204F4E43453A202579 -:10BCC00030345820444154413A2025640A00000091 -:10BCD000534554504F494E543A2025642041435413 -:10BCE00055414C3A202564200A00000064657465C3 -:10BCF00063746564206D696E696D756D207374651C -:10BD00006572696E6720616E676C652061743A20A8 -:10BD100025640A006465746563746564206D6178E8 -:10BD2000696D756D207374656572696E6720616EEB -:10BD3000676C652061743A2025640A00537465704D -:10BD4000206D6561737572656D656E743A200A0ABF -:10BD50000000000074696D6520092076616C7565CE -:10BD60000A000000256409252E33660D0A00000034 -:10BD7000504920636F6E74726F6C6C6572206D65D4 -:10BD800061737572656D656E743A200A0A00000071 -:10BD900074696D65200920696E2009206F75740A29 -:10BDA00000000000256409252E336609252E336620 -:10BDB0000D0A00000A2A2A2A204572726F723A2060 -:10BDC000496E697469616C697A6174696F6E206F1C -:10BDD00066207468652067726F7570206661756C87 -:10BDE000740A00000A2A2A2A204572726F723A20C9 -:10BDF0005365747570206F66207468652070617279 -:10BE0000616D657465722D67726F757020666175FE -:10BE10006C740A000A2A2A2A204572726F723A202C -:10BE2000436F6E6E65637420706F696E7465722007 -:10BE3000776974682074686520706172616D6574DB -:10BE4000657273206661756C740A00000A41766140 -:10BE5000696C61626C6520506172616D65746572B8 -:10BE600073206172653A00000A3D3D3D3D3D3D3D18 -:10BE70003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DF2 -:10BE80003D3D0A000A47726F75703A2025730A0A11 -:10BE9000000000002530346400000000202D202523 -:10BEA000730A00005F5F5F5F5F5F5F5F5F5F5F5FA1 -:10BEB0005F5F5F5F5F5F5F5F5F5F5F5F5F0A0000A5 -:10BEC0004857205365747570000000005357205385 -:10BED00065747570000000004F7065726174696F61 -:10BEE0006E20446174610000496E742053656E7366 -:10BEF0006F722043616C6962000000004D6F746FC7 -:10BF0000720000005665682044696D656E73696F44 -:10BF10006E7300005665682044796E616D696373C5 -:10BF20000000000056656820436F6E74726F6C00ED -:10BF300043757272656E742053656E736F72730011 -:10BF400053544D3332463400754356617269616E05 -:10BF50007400000053697A6552414D0053697A6557 -:10BF6000466C61736800000052756E46726F6D46D4 -:10BF70006C617368000000007265736572766564B9 -:10BF800031000000726573657276656432000000EE -:10BF9000726573657276656433000000726573655F -:10BFA00072766564340000004576616C42726454B8 -:10BFB000797065004576616C427264566572000066 -:10BFC00043617272696572427264547970650000EF -:10BFD0004361727269657242726456657200000054 -:10BFE0004170706C48575479706500004170706CF6 -:10BFF00048575665720000004D6173746572437452 -:10C00000726C5479706500004D617374657243748D -:10C01000726C5665720000005379735357566572FF -:10C0200000000000426F6F746C6F6164657256654A -:10C030007200000048575357436F6E664E616D653E -:10C040000000000048575357436F6E6656657200F4 -:10C050005061725379735665720000004170706CC4 -:10C0600053574E616D6500004170706C53575665B3 -:10C0700072000000426174566F6C746167654E6FA8 -:10C080006D000000426174566F6C746167654163B6 -:10C0900074000000456E7654656D70416374000055 -:10C0A00042726454656D7041637400004F70657234 -:10C0B000456E7654797065004F66667365744144C9 -:10C0C000430000004D6F7454727154677446616987 -:10C0D0006C53616665000000566567537064546771 -:10C0E000744661696C536166650000005374416E6B -:10C0F000675467744661696C5361666500000000AF -:10C100004F7065726174696F6E4D6F644661696CE2 -:10C110005361666500000000416D70466163746F95 -:10C1200072550000416D70466163746F7256000075 -:10C13000416D70466163746F72570000416D7046C7 -:10C140006163746F7253696E00000000416D704648 -:10C150006163746F72436F73000000004F66667313 -:10C160006574466163746F72550000004F666673B4 -:10C170006574466163746F72560000004F666673A3 -:10C180006574466163746F72570000004F66667392 -:10C190006574466163746F7253696E004F666673AF -:10C1A0006574466163746F72436F73004D6F7454AE -:10C1B000797065004D6F74547271436F6E73746162 -:10C1C0006E7400004D6F7457696E64696E675265D6 -:10C1D00073697374000000004D6F7457696E646971 -:10C1E0006E67496E647563740000000043726F737C -:10C1F00073496E64756374004D6F74506F6C655055 -:10C200006169727300000000496E657274696100B3 -:10C210004D6F7443757272656E744D6178000000E5 -:10C220004D6F7443757272656E744D696E000000D7 -:10C230005068314F666673657443616C000000009E -:10C240005068314D6178526177000000506831527A -:10C250006174656443757200506831526E6743685B -:10C260006B456E6100000000437572506831526E7C -:10C270006743686B48690000437572506831526EBD -:10C280006743686B4C6F0000726573657276656416 -:10C2900020506831000000005068324F66667365B8 -:10C2A0007443616C000000005068324D6178526147 -:10C2B0007700000050683252617465644375720003 -:10C2C000506832526E6743686B456E610000000033 -:10C2D000437572506832526E6743686B486900005C -:10C2E000437572506832526E6743686B4C6F000042 -:10C2F0003C7265736572766564205068323E00005A -:10C300005068334F666673657443616C00000000CB -:10C310005068334D617852617700000050683352A5 -:10C320006174656443757200506833526E67436888 -:10C330006B456E6100000000437572506833526EA9 -:10C340006743686B48690000437572506833526EEA -:10C350006743686B4C6F00003C726573657276656D -:10C3600064205068333E000043757272656E744CF1 -:10C37000696D697400000000546F6C4375725375E9 -:10C380006D000000466F6350494374726C466C75D3 -:10C390007850726F70000000466F635049437472AA -:10C3A0006C466C7578496E7467000000466F635088 -:10C3B000494374726C54727150726F7000000000C7 -:10C3C000466F6350494374726C547271496E74675E -:10C3D00000000000526F74416E674F6666736574AB -:10C3E000436F7272656374696F6E00004E756D52B3 -:10C3F000634368616E6E656C00000000526F745399 -:10C4000070644D617854727152630000526F7453BE -:10C4100070644D696E54727152630000526F7453B0 -:10C4200070644374726C50726F700000526F74537A -:10C4300070644374726C496E74670000526F745379 -:10C4400070644374726C54696D65496E7472766C75 -:10C4500000000000526F745370644374726C4D6935 -:10C460006E54727100000000526F74537064437414 -:10C47000726C4D617854727100000000526F7453F9 -:10C4800070644374726C4F75744761696E0000008C -:10C49000496E6974416E6753727631004D696E4121 -:10C4A0006273416E67537276310000004D617841CE -:10C4B0006273416E6753727631000000496E697491 -:10C4C000416E6753727632004D696E416273416E00 -:10C4D00067537276320000004D6178416273416E9D -:10C4E0006753727632000000537276416E67566F62 -:10C4F0006C744D696E000000537276416E67566F22 -:10C500006C744D61780000005370757247656172FC -:10C510000000000050696E696F6E4765617200002F -:10C52000446966666572656E7469616C000000003E -:10C53000576865656C4469616D65746572000000DB -:10C540004D6F745472714D61780000004D6F7454DA -:10C5500072714D696E0000005374416E674D6178D1 -:10C56000000000005374416E674D696E00000000CA -:10C570004C61744469664761696E00004C6174499E -:10C580006E744761696E00004C617450726F476150 -:10C59000696E00004C61744E46696C7465720000EF -:10C5A000416E674469664761696E0000416E674984 -:10C5B0006E744761696E0000416E6750726F47612B -:10C5C000696E0000416E674E46696C7465720000CA -:10C5D000416E67526174654C696D526973696E672B -:10C5E00000000000416E67526174654C696D4661E0 -:10C5F0006C6C696E670000005665684C656E677408 -:10C60000680000005665685769647468000000009F -:10C610005665684869676874000000005665684D93 -:10C62000617373004472697665747261696E5479DE -:10C6300070650000576865656C486578000000000B -:10C64000576865656C4261736546726F6E74000071 -:10C65000576865656C4261736552656172000000E0 -:10C6600047617567650000004D6F74526F745370B9 -:10C67000644D6178000000004D6F74526F74537008 -:10C68000644D696E00000000416363656C4D617824 -:10C6900000000000446563656C4D61780000000097 -:10C6A000506F774E6F6D0000576865656C43697217 -:10C6B000636F6E6600000000477269704E6F6D0018 -:10C6C0005069766F74506F696E7400005069766FB0 -:10C6D0007448696768000000436173746572000004 -:10C6E0005374656572696E675379730046726F6E35 -:10C6F0007453686F636B73005265617253686F6344 -:10C700006B730000436861737369734272616365A0 -:10C710007300000043616D62657246726F6E740053 -:10C7200043616D626572526561720000416E7469A9 -:10C73000526F6C6C42617246726F6E740000000042 -:10C74000416E7469526F6C6C426172526561720025 -:10C750005A65726F5370644C696D000046724353A2 -:10C76000746966660000000052724353746966661D -:10C7700000000000596177496E6572742020000046 -:10C780004C656E436F4D5272417800004C656E43AC -:10C790006F4D46724178200052634374726C456E4F -:10C7A000610000005472616A4374726C456E6100EE -:10C7B000414441534374726C456E6100456D65534D -:10C7C000746F70704D6F64004261745479706500CD -:10C7D000566F6C746167654E6F6D0000416C6572D9 -:10C7E000745468726573686F6C640000556E64659C -:10C7F00072766F6C74616765000000004E756D4F56 -:10C800006643656C6C73000043656C6C566F6C74AA -:10C8100061676500493263536C61766541647200FB -:10C8200055536469737443616C696272000000005F -:10C8300055736469737454656D70000053696E526A -:10C840006E6743686B48690053696E526E67436850 -:10C850006B4C6F00436F73526E6743686B4869009F -:10C86000436F73526E6743686B4C6F0053696E433E -:10C870006F73506C617573004469616743757250E2 -:10C880006831526E6743686B4869000044696167AC -:10C89000437572506831526E6743686B4C6F00008D -:10C8A00044696167437572506832526E6743686BC2 -:10C8B0004869000044696167437572506832526E7E -:10C8C0006743686B4C6F0000446961674375725041 -:10C8D0006833526E6743686B48690000446961675A -:10C8E000437572506833526E6743686B4C6F00003B -:10C8F0004669656C64436F6E7374616E740000000A -:10C9000057696E64696E67526573697374000000DD -:10C9100057696E64696E67496E64756374000000E0 -:10C92000506F6C655061697273000000436F6566FB -:10C930006600000041646456616C7565000000008B -:10C940004E6F697365000000417272617953697AB4 -:10C95000650000004D6F74436F6E7374000000003B -:10C960004672657150574D005265736F6C757469EE -:10C970006F6E50574D0000004D6F646550574D006D -:10C9800044434D6F744F66667365740044434D6F46 -:10C9900074466163746F72490000000044434D6F38 -:10C9A00074466163746F72550000000052656656EC -:10C9B000616C7565414443005265736F6C757469B1 -:10C9C0006F6E41444300000044434D6F74506F6CE0 -:10C9D0007958300044434D6F74506F6C7958310072 -:10C9E00044434D6F74506F6C7958320044434D6F1F -:10C9F00074506F6C7958330044434D6F74506F6CB2 -:10CA00007958340044434D6F74506F6C7958350039 -:10CA100044434D6F74506F6C7958360044434D6FEA -:10CA2000744761696E0000004375725467740000BA -:10CA3000566F6C5467740000547271546774000030 -:10CA40005049446B700000005049446B690000007D -:10CA50005049446B640000005049446D696E000009 -:10CA60005049446D617800005049447461000000F1 -:10CA70005049446761696E00537064506F6C795817 -:10CA800030000000537064506F6C79583100000022 -:10CA9000537064506F6C79583200000053706450CA -:10CAA0006F6C795833000000537064506F6C795884 -:10CAB00034000000537064506F6C795835000000EA -:10CAC000537064506F6C795836000000537064479F -:10CAD00061696E00506F74694C65644761696E00EE -:10CAE0004241544D4F4E5F426174744563754C6FC3 -:10CAF00077566F6C74616765000000004241544DC9 -:10CB00004F4E5F426174744D6F746F724C6F775605 -:10CB10006F6C74616765000057454E435F57656EE3 -:10CB200063464C44656666656374000057454E4332 -:10CB30005F57656E634652446566666563740000C0 -:10CB400057454E435F57656E63524C446566666554 -:10CB50006374000057454E435F57656E63525244FD -:10CB600065666665637400004D41564C494E4B5FE7 -:10CB700054696D656F75740052583234465F496E62 -:10CB8000707574566F6C746167654572726F720070 -:10CB900052583234465F536572766F416E676C65EA -:10CBA0004C696D69745265616368656400000000DA -:10CBB00052583234465F536572766F4F76657268AD -:10CBC000656174696E67000052583234465F526185 -:10CBD0006E67650052583234465F436865636B7315 -:10CBE000756D52783234460052583234465F4F7673 -:10CBF0006572546F727175650000000052583234CE -:10CC0000465F496E737472756B74696F6E000000D5 -:10CC100052583234465F436865636B73756D535485 -:10CC20004D00000052583234465F4E4F53594E4328 -:10CC300042595445530000004D41564C494E4B5FFC -:10CC4000584D4C56657273696F6E734469666665BC -:10CC5000720000004572726F723A2025730A00005C -:10CC600050000000430000006C6F6731300000008E -:10CC700000000000706F770000000000000000005E -:10CC80000000004003B8E23F000000000000000088 -:10CC900006D0CF43EBFD4C3E000000000000F03F0B -:10CCA000000000000000F83F000FC93F000F49409E -:10CCB00000CB9640000FC9400053FB4000CB16410B -:10CCC00000ED2F41000F49410031624100537B418B -:10CCD000003A8A4100CB9641005CA34100EDAF4190 -:10CCE000007EBC41000FC94100A0D5410031E241A6 -:10CCF00000C2EE410053FB4100F20342003A0A42F7 -:10CD00000083104200CB164200141D42005C2342F7 -:10CD100000A5294200ED2F4200363642007E3C42FB -:10CD200000C74242000F4942A2000000F900000083 -:10CD3000830000006E0000004E0000004400000070 -:10CD40001500000029000000FC0000002700000082 -:10CD500057000000D1000000F50000003400000082 -:10CD6000DD000000C0000000DB00000062000000E9 -:10CD700095000000990000003C0000004300000006 -:10CD80009000000041000000FE0000005100000083 -:10CD900063000000AB000000DE000000BB000000EC -:10CDA000C500000061000000B70000002400000082 -:10CDB0006E0000003A000000420000004D0000003C -:10CDC000D2000000E0000000060000004900000062 -:10CDD0002E000000EA00000009000000D100000061 -:10CDE000920000001C000000FE0000001D0000007A -:10CDF000EB0000001C000000B10000002900000052 -:10CE0000A70000003E000000E800000082000000D3 -:10CE100035000000F50000002E000000BB000000FF -:10CE20004400000084000000E90000009C000000B5 -:10CE30007000000026000000B40000005F00000049 -:10CE40007E00000041000000390000009100000059 -:10CE5000D6000000390000008300000053000000ED -:10CE600039000000F40000009C0000008400000075 -:10CE70005F0000008B000000BD000000F900000012 -:10CE8000280000003B0000001F000000F800000028 -:10CE900097000000FF000000DE0000000500000019 -:10CEA000980000000F000000EF0000002F000000BD -:10CEB000110000008B0000005A0000000A00000072 -:10CEC0006D0000001F0000006D0000003600000033 -:10CED0007E000000CF00000027000000CB00000013 -:10CEE00009000000B70000004F00000046000000ED -:10CEF0003F000000660000009E0000005F00000090 -:10CF0000EA0000002D00000075000000270000006E -:10CF1000BA000000C7000000EB000000E5000000C0 -:10CF2000F10000007B0000003D0000000700000051 -:10CF300039000000F70000008A00000052000000E5 -:10CF400092000000EA0000006B000000FB000000FF -:10CF50005F000000B10000001F0000008D00000015 -:10CF60005D00000008000000560000000300000003 -:10CF70003000000046000000FC0000007B000000C4 -:10CF80006B000000AB000000F0000000CF000000CC -:10CF9000BC000000200000009A000000F400000027 -:10CFA000360000001D000000A9000000E3000000A2 -:10CFB00091000000610000005E000000E60000003B -:10CFC0001B00000008000000650000009900000040 -:10CFD000850000005F00000014000000A0000000B9 -:10CFE00068000000400000008D000000FF0000000D -:10CFF000D8000000800000004D0000007300000019 -:10D0000027000000310000000600000006000000BC -:10D010001500000056000000CA0000007300000068 -:10D02000A8000000C900000060000000E20000004D -:10D030007B000000C00000008C0000006B000000BE -:10D040000400000007000000090000000000C93FC4 -:10D050000000F0390000DA370000A2330000842E0F -:10D060000000502B0000C2270000D0220000C41F87 -:10D070000000C61B00004417000000000000304301 -:08D0800000000000000030C3B5 -:10D08800E8030000E803000001002C010000040090 -:10D0980009001300F301E70387130F27E0CA01080B -:10D0A800FCCA010818CB01082CCB010840CB0108A9 -:10D0B80054CB010868CB010878CB010890CB010854 -:10D0C800B0CB0108C8CB0108D4CB0108E8CB0108D4 -:10D0D800FCCB010810CC010824CC010838CC01088D -:10D0E8000101010100000000010203040102030420 -:10D0F80006070809007A030A000000000000000083 -:10D1080001020304060708090014000000100000CB -:10D118000000000000000000000000000000000007 -:10D1280000000000000000000000000000000000F7 -:10D1380064CC0108000000000000000000000000AE -:10D1480000000000000000000000000000000000D7 -:10D1580000000000000000000000000000000000C7 -:10D1680000000000000000000000000000000000B7 -:08D178009000002001000000FE -:0400000508000000EF -:00000001FF diff --git a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/vlx.map b/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/vlx.map deleted file mode 100644 index 4e4a010bdc6f623f1dbb131eab3b4297470e9cda..0000000000000000000000000000000000000000 --- a/attachments/Austausch Assystem - HU/02_lieferung/vehicle_ecu_sw/quellcode/vlx.map +++ /dev/null @@ -1,4881 +0,0 @@ -Archive member included because of file (symbol) - -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-atoi.o) - obj/sys/terminal/src/terminal.o (atoi) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcmp.o) - obj/app/mavlink/src/mavlink.o (memcmp) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcpy-stub.o) - obj/app/mavlink/src/mavlink.o (memcpy) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memset.o) - obj/app/mavlink/src/mavlink.o (memset) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcpy.o) - obj/sys/terminal/src/terminal.o (strcpy) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcspn.o) - obj/sys/terminal/src/terminal.o (strcspn) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - obj/sys/util/src/io.o (strtod) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok.o) - obj/sys/terminal/src/terminal.o (strtok) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok_r.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok.o) (__strtok_r) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtol.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-atoi.o) (_strtol_r) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-ctype_.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtol.o) (__ctype_ptr__) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-gethex.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) (__gethex) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-hexnan.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) (__hexnan) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-impure.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) (_impure_ptr) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) (_localeconv_r) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-malloc.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok.o) (malloc) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) (_Balloc) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-callocr.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) (_calloc_r) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-freer.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-malloc.o) (_free_r) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-mallocr.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-malloc.o) (_malloc_r) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-s_fpclassify.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) (__fpclassifyd) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sbrkr.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-mallocr.o) (_sbrk_r) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sf_nan.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) (nanf) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcmp.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) (strcmp) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strlen.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) (strlen) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strncmp.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) (strncmp) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-reent.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sbrkr.o) (errno) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_round.o) - obj/sys/util/src/io.o (round) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_sin.o) - obj/sys/algo/src/fir.o (sin) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_cos.o) - obj/app/odom/src/odom.o (cosf) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_sin.o) - obj/app/odom/src/odom.o (sinf) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_log10.o) - obj/sys/util/src/io.o (log10) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_pow.o) - obj/sys/util/src/io.o (pow) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_sqrt.o) - obj/dev/hcsr04/src/hcsr04.o (sqrt) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log10.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_log10.o) (__ieee754_log10) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_pow.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_pow.o) (__ieee754_pow) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_rem_pio2.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_sin.o) (__ieee754_rem_pio2) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_sqrt.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_sqrt.o) (__ieee754_sqrt) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-ef_rem_pio2.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_cos.o) (__ieee754_rem_pio2f) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_cos.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_sin.o) (__kernel_cos) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_rem_pio2.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_rem_pio2.o) (__kernel_rem_pio2) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_sin.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_sin.o) (__kernel_sin) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_cos.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_cos.o) (__kernel_cosf) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_rem_pio2.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-ef_rem_pio2.o) (__kernel_rem_pio2f) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_sin.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_cos.o) (__kernel_sinf) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_fabs.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_pow.o) (fabs) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_finite.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_pow.o) (finite) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_floor.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_rem_pio2.o) (floor) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_lib_ver.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_log10.o) (__fdlib_version) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_matherr.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_log10.o) (matherr) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_nan.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_log10.o) (nan) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_rint.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_pow.o) (rint) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_scalbn.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_pow.o) (scalbn) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_fabs.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-ef_rem_pio2.o) (fabsf) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_floor.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_rem_pio2.o) (floorf) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_scalbn.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_rem_pio2.o) (scalbnf) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log10.o) (__ieee754_log) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_copysign.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_scalbn.o) (copysign) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_copysign.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_scalbn.o) (copysignf) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_addsubdf3.o) - obj/sys/algo/src/fir.o (__aeabi_dsub) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_muldivdf3.o) - obj/app/vehspdctrl/src/vehspdctrl.o (__aeabi_dmul) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_cmpdf2.o) - obj/sys/matlab/src/rt_nonfinite.o (__aeabi_dcmpeq) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_fixdfsi.o) - obj/sys/util/src/io.o (__aeabi_d2iz) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_fixunsdfsi.o) - obj/dev/wenc/src/wenc.o (__aeabi_d2uiz) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_truncdfsf2.o) - obj/app/vehspdctrl/src/vehspdctrl.o (__aeabi_d2f) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_addsubsf3.o) - obj/dev/mpu9150/src/mpu9150.o (__aeabi_l2f) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_aeabi_ldivmod.o) - obj/dev/mpu9150/src/mpu9150.o (__aeabi_ldivmod) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_fixsfdi.o) - obj/dev/mpu9150/src/mpu9150.o (__aeabi_f2lz) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_fixunssfdi.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_fixsfdi.o) (__aeabi_f2ulz) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(bpabi.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_aeabi_ldivmod.o) (__gnu_ldivmod_helper) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_dvmd_tls.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_aeabi_ldivmod.o) (__aeabi_ldiv0) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_divdi3.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(bpabi.o) (__divdi3) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_udivdi3.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(bpabi.o) (__udivdi3) -/home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-errno.o) - /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_log10.o) (__errno) - -Allocating common symbols -Common symbol size file - -pRequestedState_stm - 0x4 obj/app/stm/src/stm.o -pVehSpdOdom_odom 0x4 obj/app/odom/src/odom.o -pSyncOffset_stm 0x4 obj/app/stm/src/stm.o -pGyroRawZ_mpu9150 0x4 obj/dev/mpu9150/src/mpu9150.o -pValidFlagSensor4_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pOdomTimestamp_odom - 0x4 obj/app/odom/src/odom.o -pSrvError_rx24f 0x4 obj/dev/rx24f/src/rx24f.o -sendBuf 0x2ee obj/app/main.o -pLateralOffsets_latctrl - 0x28 obj/app/latctrl/src/latctrl.o -pStAngTgtPiCtrl_rx24fctrl - 0x4 obj/app/rx24fctrl/src/rx24fctrl.o -pErrorRegister_errorHandler - 0x4 obj/sys/errorhandler/src/errorHandler.o -pSrvAngVolt_servo 0x4 obj/dev/servo/src/servo.o -pRcOverrideStangEnabled_rx24f - 0x4 obj/dev/rx24f/src/rx24f.o -pid 0x24 obj/app/latctrl/src/latctrl.o -pValidFlagSensor3_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pDistSensor4_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pCarControl_stangsel - 0x4 obj/app/stangsel/src/stangsel.o -rtNaNF 0x4 obj/sys/matlab/src/rt_nonfinite.o -pErrorRegister_stm 0x4 obj/app/stm/src/stm.o -pUSdistCalibr_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pAccelRawX_mpu9150 0x4 obj/dev/mpu9150/src/mpu9150.o -errno 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-reent.o) -pStAngTgtPiCtrl_rx24f - 0x4 obj/dev/rx24f/src/rx24f.o -uxCriticalNesting 0x1 obj/app/app.o -pVehYDistOdom_odom 0x4 obj/app/odom/src/odom.o -pUsdistTemp_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pVehXDistOdom_odom 0x4 obj/app/odom/src/odom.o -pSrvTempAct_rx24f 0x4 obj/dev/rx24f/src/rx24f.o -pStAngTgtStress_rx24fctrl - 0x4 obj/app/rx24fctrl/src/rx24fctrl.o -pSrvAngAct_rx24fctrl - 0x4 obj/app/rx24fctrl/src/rx24fctrl.o -pWhlTicksFL_odom 0x4 obj/app/odom/src/odom.o -pRcChannel1_odom 0x4 obj/app/odom/src/odom.o -sendBufTimestamp 0xbb8 obj/app/main.o -pValidFlagSensor6_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pSrvAngAct_stangproc - 0x4 obj/app/stangproc/src/stangproc.o -pState_stangsel 0x4 obj/app/stangsel/src/stangsel.o -recBuf 0x2ee obj/app/main.o -pStAngTgtLatCtrl_latctrl - 0x4 obj/app/latctrl/src/latctrl.o -pTimestSensor3_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pStAngAct_stangproc - 0x4 obj/app/stangproc/src/stangproc.o -pRcOverrideSpdEnabled_servo - 0x4 obj/dev/servo/src/servo.o -pStAngTgtSel_rx24f 0x4 obj/dev/rx24f/src/rx24f.o -pTimestSensor2_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pRcState_stm 0x4 obj/app/stm/src/stm.o -pTimestSensor1_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -msgMeta 0x20 obj/app/mavlink/src/mavlink.o -pWhlTicksRL_odom 0x4 obj/app/odom/src/odom.o -pSyncOffset_mavlink - 0x4 obj/app/mavlink/src/mavlink.o -mpu9150Dev 0x3 obj/dev/mpu9150/src/mpu9150.o -pState_stm 0x4 obj/app/stm/src/stm.o -pRcOverrideStangEnabled_servo - 0x4 obj/dev/servo/src/servo.o -pAccelGeeY_mpu9150 0x4 obj/dev/mpu9150/src/mpu9150.o -pVehSpdOdom_vehspdctrl - 0x4 obj/app/vehspdctrl/src/vehspdctrl.o -pVehYawAngOdom_mavlink - 0x4 obj/app/mavlink/src/mavlink.o -pI2cSlaveAdr_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pMotTrqTgtSrv_servo - 0x4 obj/dev/servo/src/servo.o -pAccelRawZ_mpu9150 0x4 obj/dev/mpu9150/src/mpu9150.o -pWhlTicksRR_odom 0x4 obj/app/odom/src/odom.o -pStAngTgtFailSafe_stangproc - 0x4 obj/app/stangproc/src/stangproc.o -pRequestedState_mavlink - 0x4 obj/app/mavlink/src/mavlink.o -pWhlTicksRR_wenc 0x4 obj/dev/wenc/src/wenc.o -pStAngTgtSel_stangsel - 0x4 obj/app/stangsel/src/stangsel.o -pRcChannel5_rcrec 0x4 obj/dev/rcrec/src/rcrec.o -pOnChipTemperature 0x4 obj/dev/mpu9150/src/mpu9150.o -pTimestSensor0_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pStAngTimestamp_stangproc - 0x4 obj/app/stangproc/src/stangproc.o -pCarControl_vehspdctrl - 0x4 obj/app/vehspdctrl/src/vehspdctrl.o -pAccelGeeX_mpu9150 0x4 obj/dev/mpu9150/src/mpu9150.o -pVehSpdAct_latctrl 0x4 obj/app/latctrl/src/latctrl.o -pSrvAngVoltMin_servo - 0x4 obj/dev/servo/src/servo.o -pInitAngSrv2_servo 0x4 obj/dev/servo/src/servo.o -pDistSensor2_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pRcChannel4_servo 0x4 obj/dev/servo/src/servo.o -pCarControl_mavlink - 0x4 obj/app/mavlink/src/mavlink.o -pMaxAbsAngSrv1_stangproc - 0x4 obj/app/stangproc/src/stangproc.o -pGyroDpsY_mpu9150 0x4 obj/dev/mpu9150/src/mpu9150.o -pRcChannel1_vehspdctrl - 0x4 obj/app/vehspdctrl/src/vehspdctrl.o -pRcChannel8_rcrec 0x4 obj/dev/rcrec/src/rcrec.o -pSrvAngAct_servo 0x4 obj/dev/servo/src/servo.o -pStAngTimestamp_mavlink - 0x4 obj/app/mavlink/src/mavlink.o -rtInfF 0x4 obj/sys/matlab/src/rt_nonfinite.o -pMinAbsAngSrv2_servo - 0x4 obj/dev/servo/src/servo.o -pTimestSensor4_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pRcChannel4_rcrec 0x4 obj/dev/rcrec/src/rcrec.o -pVehYDistOdom_mavlink - 0x4 obj/app/mavlink/src/mavlink.o -pMaxAbsAngSrv1_servo - 0x4 obj/dev/servo/src/servo.o -pRcOverrideStangEnabled_stangsel - 0x4 obj/app/stangsel/src/stangsel.o -pGyroRawX_mpu9150 0x4 obj/dev/mpu9150/src/mpu9150.o -pRcChannel5_stm 0x4 obj/app/stm/src/stm.o -rtInf 0x8 obj/sys/matlab/src/rt_nonfinite.o -pTrajectory_mavlink - 0x4 obj/app/mavlink/src/mavlink.o -grpStruct 0x378 obj/sys/paramsys/src/paramsys.o -pRcChannel2_rcrec 0x4 obj/dev/rcrec/src/rcrec.o -pStAngTgt_stangproc - 0x4 obj/app/stangproc/src/stangproc.o -pOdomTimestamp_mavlink - 0x4 obj/app/mavlink/src/mavlink.o -pWhlTicksFL_wenc 0x4 obj/dev/wenc/src/wenc.o -pRcChannel7_rcrec 0x4 obj/dev/rcrec/src/rcrec.o -pVehXDistOdom_mavlink - 0x4 obj/app/mavlink/src/mavlink.o -pSyncOffset_clocksync - 0x4 obj/per/src/clocksync.o -pRcChannel6_rcrec 0x4 obj/dev/rcrec/src/rcrec.o -pImuMeasTimeStamp 0x4 obj/dev/mpu9150/src/mpu9150.o -pStAngTgtSel_stangproc - 0x4 obj/app/stangproc/src/stangproc.o -pTimestSensor6_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -rtNaN 0x8 obj/sys/matlab/src/rt_nonfinite.o -pTimestSensor7_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pGyroDpsX_mpu9150 0x4 obj/dev/mpu9150/src/mpu9150.o -pAccelRawY_mpu9150 0x4 obj/dev/mpu9150/src/mpu9150.o -pWhlTicksRL_wenc 0x4 obj/dev/wenc/src/wenc.o -rtMinusInf 0x8 obj/sys/matlab/src/rt_nonfinite.o -pStAngTgt_servo 0x4 obj/dev/servo/src/servo.o -pVehYawAngOdom_odom - 0x4 obj/app/odom/src/odom.o -pStAngMax_stangproc - 0x4 obj/app/stangproc/src/stangproc.o -pSrvAngVoltMax_servo - 0x4 obj/dev/servo/src/servo.o -pValidFlagSensor2_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pWhlTicksFR_wenc 0x4 obj/dev/wenc/src/wenc.o -pState_vehspdctrl 0x4 obj/app/vehspdctrl/src/vehspdctrl.o -mavlinkSystem 0x2 obj/app/mavlink/src/mavlink.o -pWhlTicksFR_odom 0x4 obj/app/odom/src/odom.o -pHeartbeat_mavlink 0x4 obj/app/mavlink/src/mavlink.o -pDistSensor5_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pStAngTgtSel_rx24fctrl - 0x4 obj/app/rx24fctrl/src/rx24fctrl.o -pRcChannel4_rx24f 0x4 obj/dev/rx24f/src/rx24f.o -pInitAngSrv1_servo 0x4 obj/dev/servo/src/servo.o -pRcChannel1_servo 0x4 obj/dev/servo/src/servo.o -pErrorRegister_mavlink - 0x4 obj/app/mavlink/src/mavlink.o -pVehSpdOdom_mavlink - 0x4 obj/app/mavlink/src/mavlink.o -pCarDirection_wenc 0x4 obj/dev/wenc/src/wenc.o -pGyroRawY_mpu9150 0x4 obj/dev/mpu9150/src/mpu9150.o -pValidFlagSensor0_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pMinAbsAngSrv1_stangproc - 0x4 obj/app/stangproc/src/stangproc.o -pRcOverrideSpdEnabled_odom - 0x4 obj/app/odom/src/odom.o -pGyroDpsZ_mpu9150 0x4 obj/dev/mpu9150/src/mpu9150.o -sendBufSize 0x4 obj/app/main.o -pDistSensor3_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pState_mavlink 0x4 obj/app/mavlink/src/mavlink.o -pTimestSensor5_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pRcState_rcrec 0x4 obj/dev/rcrec/src/rcrec.o -ch1 0x10 obj/per/src/i2c.o -pMinAbsAngSrv1_servo - 0x4 obj/dev/servo/src/servo.o -pTrajectory_latctrl - 0x4 obj/app/latctrl/src/latctrl.o -pAccelGeeZ_mpu9150 0x4 obj/dev/mpu9150/src/mpu9150.o -pValidFlagSensor5_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -recBufTimestamp 0xbb8 obj/app/main.o -pRcChannel1_rcrec 0x4 obj/dev/rcrec/src/rcrec.o -NVIC_InitStructure 0x4 obj/brd/discovery/src/stm32f4_discovery.o -uart 0x38 obj/app/mavlink/src/mavlink.o -pMaxAbsAngSrv2_servo - 0x4 obj/dev/servo/src/servo.o -pDistSensor1_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pValidFlagSensor1_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pValidFlagSensor7_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pVehDirOdom_odom 0x4 obj/app/odom/src/odom.o -recBufSize 0x4 obj/app/main.o -pDistSensor6_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pDistUs_srf02t 0x4 obj/dev/sfr02_t/src/srf02_t.o -pDistSensor7_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pDistSensor0_ultrdist - 0x4 obj/dev/hcsr04/src/hcsr04.o -pCarDirection_odom 0x4 obj/app/odom/src/odom.o -rtMinusInfF 0x4 obj/sys/matlab/src/rt_nonfinite.o -pRcChannel3_rcrec 0x4 obj/dev/rcrec/src/rcrec.o -pAngOffset_latctrl 0x4 obj/app/latctrl/src/latctrl.o -pStAngAct_mavlink 0x4 obj/app/mavlink/src/mavlink.o -pStAngMin_stangproc - 0x4 obj/app/stangproc/src/stangproc.o -pSrvAngAct_rx24f 0x4 obj/dev/rx24f/src/rx24f.o - -Discarded input sections - - .text 0x00000000 0x0 obj/app/rx24fctrl/src/rx24fctrl.o - .data 0x00000000 0x0 obj/app/rx24fctrl/src/rx24fctrl.o - .text 0x00000000 0x0 obj/app/main.o - .data 0x00000000 0x0 obj/app/main.o - .rodata 0x00000000 0x100 obj/app/main.o - .text 0x00000000 0x0 obj/app/odom/src/odom.o - .data 0x00000000 0x0 obj/app/odom/src/odom.o - .text 0x00000000 0x0 obj/app/app.o - .data 0x00000000 0x0 obj/app/app.o - .bss 0x00000000 0x0 obj/app/app.o - .text.app_pwrDown - 0x00000000 0xc obj/app/app.o - .text.terminalPortInit - 0x00000000 0x10 obj/app/app.o - COMMON 0x00000000 0x1 obj/app/app.o - .text 0x00000000 0x0 obj/app/stm/src/stm.o - .data 0x00000000 0x0 obj/app/stm/src/stm.o - .text 0x00000000 0x0 obj/app/vehspdctrl/src/vehspdctrl.o - .data 0x00000000 0x0 obj/app/vehspdctrl/src/vehspdctrl.o - .rodata 0x00000000 0x100 obj/app/vehspdctrl/src/vehspdctrl.o - .text 0x00000000 0x0 obj/app/stangproc/src/stangproc.o - .data 0x00000000 0x0 obj/app/stangproc/src/stangproc.o - .bss 0x00000000 0x18 obj/app/stangproc/src/stangproc.o - .text.stangproc_init - 0x00000000 0x74 obj/app/stangproc/src/stangproc.o - .text.stangproc_step - 0x00000000 0x84 obj/app/stangproc/src/stangproc.o - .text.updateParameters - 0x00000000 0x70 obj/app/stangproc/src/stangproc.o - .text.transformAng - 0x00000000 0x88 obj/app/stangproc/src/stangproc.o - .text.transformSvrAngToStAng - 0x00000000 0x88 obj/app/stangproc/src/stangproc.o - .text 0x00000000 0x0 obj/app/stangsel/src/stangsel.o - .data 0x00000000 0x0 obj/app/stangsel/src/stangsel.o - .rodata 0x00000000 0x100 obj/app/stangsel/src/stangsel.o - .text 0x00000000 0x0 obj/app/mavlink/src/mavlink.o - .text 0x00000000 0x0 obj/app/latctrl/src/latctrl.o - .data 0x00000000 0x0 obj/app/latctrl/src/latctrl.o - .bss 0x00000000 0x0 obj/app/latctrl/src/latctrl.o - .text 0x00000000 0x0 obj/dev/servo/src/servo.o - .data 0x00000000 0x0 obj/dev/servo/src/servo.o - .text.servo_disablePwmSrv1 - 0x00000000 0x14 obj/dev/servo/src/servo.o - .text.servo_updateAngleSrv1 - 0x00000000 0x130 obj/dev/servo/src/servo.o - .text.servo_disablePwmSrv2 - 0x00000000 0x14 obj/dev/servo/src/servo.o - .text.servo_updateAngleSrv2 - 0x00000000 0x12c obj/dev/servo/src/servo.o - .text 0x00000000 0x0 obj/dev/mpu9150/src/mpu9150.o - .data 0x00000000 0x0 obj/dev/mpu9150/src/mpu9150.o - .bss 0x00000000 0x8 obj/dev/mpu9150/src/mpu9150.o - .text.mpu9150_init - 0x00000000 0x244 obj/dev/mpu9150/src/mpu9150.o - .text.mpu9150_readAccel - 0x00000000 0xf4 obj/dev/mpu9150/src/mpu9150.o - .text.mpu9150_readGyro - 0x00000000 0xf4 obj/dev/mpu9150/src/mpu9150.o - .text.mpu9150_readTemp - 0x00000000 0x88 obj/dev/mpu9150/src/mpu9150.o - .text.mpu9150_readFifo - 0x00000000 0x2d0 obj/dev/mpu9150/src/mpu9150.o - .text.getBiases - 0x00000000 0x850 obj/dev/mpu9150/src/mpu9150.o - .text.resetFifo - 0x00000000 0xd4 obj/dev/mpu9150/src/mpu9150.o - .text 0x00000000 0x0 obj/dev/led/src/led.o - .data 0x00000000 0x0 obj/dev/led/src/led.o - .bss 0x00000000 0xc obj/dev/led/src/led.o - .text.led_init - 0x00000000 0x74 obj/dev/led/src/led.o - .text.led_on 0x00000000 0x24 obj/dev/led/src/led.o - .text.led_off 0x00000000 0x24 obj/dev/led/src/led.o - .text.led_toggle - 0x00000000 0x24 obj/dev/led/src/led.o - .text.led_getGPIO - 0x00000000 0x48 obj/dev/led/src/led.o - .debug_info 0x00000000 0x31e obj/dev/led/src/led.o - .debug_abbrev 0x00000000 0xde obj/dev/led/src/led.o - .debug_aranges - 0x00000000 0x40 obj/dev/led/src/led.o - .debug_ranges 0x00000000 0x30 obj/dev/led/src/led.o - .debug_line 0x00000000 0x197 obj/dev/led/src/led.o - .debug_str 0x00000000 0x392 obj/dev/led/src/led.o - .comment 0x00000000 0x71 obj/dev/led/src/led.o - .ARM.attributes - 0x00000000 0x39 obj/dev/led/src/led.o - .debug_frame 0x00000000 0xac obj/dev/led/src/led.o - .text 0x00000000 0x0 obj/dev/hcsr04/src/hcsr04.o - .data 0x00000000 0x0 obj/dev/hcsr04/src/hcsr04.o - .bss 0x00000000 0x1c obj/dev/hcsr04/src/hcsr04.o - .text.hcsr04_init - 0x00000000 0x38 obj/dev/hcsr04/src/hcsr04.o - .text.hcsr04_process - 0x00000000 0x244 obj/dev/hcsr04/src/hcsr04.o - .text.send_command - 0x00000000 0x38 obj/dev/hcsr04/src/hcsr04.o - .text.get_distance - 0x00000000 0x120 obj/dev/hcsr04/src/hcsr04.o - .text.get_timestamp - 0x00000000 0x7c obj/dev/hcsr04/src/hcsr04.o - .debug_info 0x00000000 0x508 obj/dev/hcsr04/src/hcsr04.o - .debug_abbrev 0x00000000 0x119 obj/dev/hcsr04/src/hcsr04.o - .debug_aranges - 0x00000000 0x40 obj/dev/hcsr04/src/hcsr04.o - .debug_ranges 0x00000000 0x30 obj/dev/hcsr04/src/hcsr04.o - .debug_line 0x00000000 0x1d9 obj/dev/hcsr04/src/hcsr04.o - .debug_str 0x00000000 0x696 obj/dev/hcsr04/src/hcsr04.o - .comment 0x00000000 0x71 obj/dev/hcsr04/src/hcsr04.o - .ARM.attributes - 0x00000000 0x39 obj/dev/hcsr04/src/hcsr04.o - .debug_frame 0x00000000 0xac obj/dev/hcsr04/src/hcsr04.o - COMMON 0x00000000 0x6c obj/dev/hcsr04/src/hcsr04.o - .text 0x00000000 0x0 obj/dev/srf02/src/srf02.o - .data 0x00000000 0x0 obj/dev/srf02/src/srf02.o - .bss 0x00000000 0x0 obj/dev/srf02/src/srf02.o - .debug_info 0x00000000 0x91 obj/dev/srf02/src/srf02.o - .debug_abbrev 0x00000000 0x37 obj/dev/srf02/src/srf02.o - .debug_aranges - 0x00000000 0x18 obj/dev/srf02/src/srf02.o - .debug_line 0x00000000 0x33 obj/dev/srf02/src/srf02.o - .debug_str 0x00000000 0x1e0 obj/dev/srf02/src/srf02.o - .comment 0x00000000 0x71 obj/dev/srf02/src/srf02.o - .ARM.attributes - 0x00000000 0x39 obj/dev/srf02/src/srf02.o - .text 0x00000000 0x0 obj/dev/wenc/src/wenc.o - .data 0x00000000 0x0 obj/dev/wenc/src/wenc.o - .text.debounceEncoderError - 0x00000000 0x58 obj/dev/wenc/src/wenc.o - .text.validateEncoderSignals - 0x00000000 0x78 obj/dev/wenc/src/wenc.o - .text 0x00000000 0x0 obj/dev/sfr02_t/src/srf02_t.o - .data 0x00000000 0x0 obj/dev/sfr02_t/src/srf02_t.o - .bss 0x00000000 0x1c obj/dev/sfr02_t/src/srf02_t.o - .text.srf02t_inititialize - 0x00000000 0x38 obj/dev/sfr02_t/src/srf02_t.o - .text.srf02t_startMeasurement - 0x00000000 0x20 obj/dev/sfr02_t/src/srf02_t.o - .text.srf02t_init - 0x00000000 0x2c obj/dev/sfr02_t/src/srf02_t.o - .text.srf02t_start - 0x00000000 0x30 obj/dev/sfr02_t/src/srf02_t.o - .text.srf02t_getMeasurement - 0x00000000 0x60 obj/dev/sfr02_t/src/srf02_t.o - .text.srf02t_getValue - 0x00000000 0x94 obj/dev/sfr02_t/src/srf02_t.o - .text 0x00000000 0x0 obj/dev/rcrec/src/rcrec.o - .data 0x00000000 0x0 obj/dev/rcrec/src/rcrec.o - .text 0x00000000 0x0 obj/dev/rx24f/src/rx24f.o - .text.rx24f_meas - 0x00000000 0xfc obj/dev/rx24f/src/rx24f.o - .text.rx24f_meas_pi - 0x00000000 0x1dc obj/dev/rx24f/src/rx24f.o - .text 0x00000000 0x0 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .data 0x00000000 0x0 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .bss 0x00000000 0x0 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .text.eeprom_init - 0x00000000 0x70 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .text.eeprom_writeByte - 0x00000000 0xc8 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .text.eeprom_writeBuffer - 0x00000000 0x220 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .text.eeprom_readByte - 0x00000000 0x88 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .text.eeprom_readBuffer - 0x00000000 0xb4 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .text.eeprom_getWorkInProgress - 0x00000000 0x5c obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .debug_info 0x00000000 0x457 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .debug_abbrev 0x00000000 0x14f obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .debug_aranges - 0x00000000 0x48 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .debug_ranges 0x00000000 0x38 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .debug_line 0x00000000 0x275 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .debug_str 0x00000000 0x4bd obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .comment 0x00000000 0x71 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .ARM.attributes - 0x00000000 0x39 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .debug_frame 0x00000000 0xd0 obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o - .text 0x00000000 0x0 obj/sys/sched/src/scheduler.o - .text.sched_stop - 0x00000000 0x1c obj/sys/sched/src/scheduler.o - .text.sched_getSchedTime - 0x00000000 0x18 obj/sys/sched/src/scheduler.o - .text.sched_taskStatus - 0x00000000 0x58 obj/sys/sched/src/scheduler.o - .text.sched_suspendTask - 0x00000000 0x50 obj/sys/sched/src/scheduler.o - .text.sched_setTimelevel - 0x00000000 0x3c obj/sys/sched/src/scheduler.o - .text.suspend 0x00000000 0x24 obj/sys/sched/src/scheduler.o - .text.status 0x00000000 0x1c obj/sys/sched/src/scheduler.o - .text 0x00000000 0x0 obj/sys/paramsys/src/paramp.o - .data 0x00000000 0x0 obj/sys/paramsys/src/paramp.o - .bss 0x00000000 0x0 obj/sys/paramsys/src/paramp.o - .text 0x00000000 0x0 obj/sys/paramsys/src/paramsys.o - .data 0x00000000 0x0 obj/sys/paramsys/src/paramsys.o - .text.paramsys_list - 0x00000000 0xe0 obj/sys/paramsys/src/paramsys.o - .text.paramsys_checkID - 0x00000000 0x50 obj/sys/paramsys/src/paramsys.o - .text.paramsys_default - 0x00000000 0x74 obj/sys/paramsys/src/paramsys.o - .text.paramsys_paramRead - 0x00000000 0x50 obj/sys/paramsys/src/paramsys.o - .text.paramsys_paramValue - 0x00000000 0xe0 obj/sys/paramsys/src/paramsys.o - .text.paramsys_paramWrite - 0x00000000 0x248 obj/sys/paramsys/src/paramsys.o - .text 0x00000000 0x0 obj/sys/paramsys/src/paramlist.o - .data 0x00000000 0x0 obj/sys/paramsys/src/paramlist.o - .bss 0x00000000 0x0 obj/sys/paramsys/src/paramlist.o - .text 0x00000000 0x0 obj/sys/matlab/src/rt_nonfinite.o - .data 0x00000000 0x0 obj/sys/matlab/src/rt_nonfinite.o - .bss 0x00000000 0x0 obj/sys/matlab/src/rt_nonfinite.o - .text.rt_InitInfAndNaN - 0x00000000 0x88 obj/sys/matlab/src/rt_nonfinite.o - .text.rtIsInf 0x00000000 0x48 obj/sys/matlab/src/rt_nonfinite.o - .text.rtIsInfF - 0x00000000 0x4c obj/sys/matlab/src/rt_nonfinite.o - .text.rtIsNaN 0x00000000 0x2c obj/sys/matlab/src/rt_nonfinite.o - .text.rtIsNaNF - 0x00000000 0x30 obj/sys/matlab/src/rt_nonfinite.o - .debug_info 0x00000000 0x1bb obj/sys/matlab/src/rt_nonfinite.o - .debug_abbrev 0x00000000 0xa9 obj/sys/matlab/src/rt_nonfinite.o - .debug_aranges - 0x00000000 0x40 obj/sys/matlab/src/rt_nonfinite.o - .debug_ranges 0x00000000 0x30 obj/sys/matlab/src/rt_nonfinite.o - .debug_line 0x00000000 0x151 obj/sys/matlab/src/rt_nonfinite.o - .debug_str 0x00000000 0x221 obj/sys/matlab/src/rt_nonfinite.o - .comment 0x00000000 0x71 obj/sys/matlab/src/rt_nonfinite.o - .ARM.attributes - 0x00000000 0x39 obj/sys/matlab/src/rt_nonfinite.o - .debug_frame 0x00000000 0xa8 obj/sys/matlab/src/rt_nonfinite.o - COMMON 0x00000000 0x24 obj/sys/matlab/src/rt_nonfinite.o - .text 0x00000000 0x0 obj/sys/matlab/src/rtGetNaN.o - .data 0x00000000 0x0 obj/sys/matlab/src/rtGetNaN.o - .bss 0x00000000 0x0 obj/sys/matlab/src/rtGetNaN.o - .text.rtGetNaN - 0x00000000 0x60 obj/sys/matlab/src/rtGetNaN.o - .text.rtGetNaNF - 0x00000000 0x28 obj/sys/matlab/src/rtGetNaN.o - .debug_info 0x00000000 0x1a2 obj/sys/matlab/src/rtGetNaN.o - .debug_abbrev 0x00000000 0xca obj/sys/matlab/src/rtGetNaN.o - .debug_aranges - 0x00000000 0x28 obj/sys/matlab/src/rtGetNaN.o - .debug_ranges 0x00000000 0x18 obj/sys/matlab/src/rtGetNaN.o - .debug_line 0x00000000 0xee obj/sys/matlab/src/rtGetNaN.o - .debug_str 0x00000000 0x22a obj/sys/matlab/src/rtGetNaN.o - .comment 0x00000000 0x71 obj/sys/matlab/src/rtGetNaN.o - .ARM.attributes - 0x00000000 0x39 obj/sys/matlab/src/rtGetNaN.o - .debug_frame 0x00000000 0x4c obj/sys/matlab/src/rtGetNaN.o - .text 0x00000000 0x0 obj/sys/matlab/src/rt_look.o - .data 0x00000000 0x0 obj/sys/matlab/src/rt_look.o - .bss 0x00000000 0x0 obj/sys/matlab/src/rt_look.o - .text.rt_GetLookupIndex - 0x00000000 0x164 obj/sys/matlab/src/rt_look.o - .debug_info 0x00000000 0x117 obj/sys/matlab/src/rt_look.o - .debug_abbrev 0x00000000 0x9f obj/sys/matlab/src/rt_look.o - .debug_aranges - 0x00000000 0x20 obj/sys/matlab/src/rt_look.o - .debug_ranges 0x00000000 0x10 obj/sys/matlab/src/rt_look.o - .debug_line 0x00000000 0x88 obj/sys/matlab/src/rt_look.o - .debug_str 0x00000000 0x1d3 obj/sys/matlab/src/rt_look.o - .comment 0x00000000 0x71 obj/sys/matlab/src/rt_look.o - .ARM.attributes - 0x00000000 0x39 obj/sys/matlab/src/rt_look.o - .debug_frame 0x00000000 0x30 obj/sys/matlab/src/rt_look.o - .text 0x00000000 0x0 obj/sys/matlab/src/rtGetInf.o - .data 0x00000000 0x0 obj/sys/matlab/src/rtGetInf.o - .bss 0x00000000 0x0 obj/sys/matlab/src/rtGetInf.o - .text.rtGetInf - 0x00000000 0x60 obj/sys/matlab/src/rtGetInf.o - .text.rtGetInfF - 0x00000000 0x20 obj/sys/matlab/src/rtGetInf.o - .text.rtGetMinusInf - 0x00000000 0x60 obj/sys/matlab/src/rtGetInf.o - .text.rtGetMinusInfF - 0x00000000 0x24 obj/sys/matlab/src/rtGetInf.o - .debug_info 0x00000000 0x237 obj/sys/matlab/src/rtGetInf.o - .debug_abbrev 0x00000000 0xe6 obj/sys/matlab/src/rtGetInf.o - .debug_aranges - 0x00000000 0x38 obj/sys/matlab/src/rtGetInf.o - .debug_ranges 0x00000000 0x28 obj/sys/matlab/src/rtGetInf.o - .debug_line 0x00000000 0x119 obj/sys/matlab/src/rtGetInf.o - .debug_str 0x00000000 0x252 obj/sys/matlab/src/rtGetInf.o - .comment 0x00000000 0x71 obj/sys/matlab/src/rtGetInf.o - .ARM.attributes - 0x00000000 0x39 obj/sys/matlab/src/rtGetInf.o - .debug_frame 0x00000000 0x88 obj/sys/matlab/src/rtGetInf.o - .text 0x00000000 0x0 obj/sys/systime/src/systime.o - .data 0x00000000 0x0 obj/sys/systime/src/systime.o - .text.systime_reset - 0x00000000 0x18 obj/sys/systime/src/systime.o - .text 0x00000000 0x0 obj/sys/errorhandler/src/errorList.o - .bss 0x00000000 0x0 obj/sys/errorhandler/src/errorList.o - .text 0x00000000 0x0 obj/sys/errorhandler/src/errorHandler.o - .data 0x00000000 0x0 obj/sys/errorhandler/src/errorHandler.o - .bss 0x00000000 0x0 obj/sys/errorhandler/src/errorHandler.o - .text 0x00000000 0x0 obj/sys/algo/src/fir.o - .data 0x00000000 0x0 obj/sys/algo/src/fir.o - .bss 0x00000000 0x0 obj/sys/algo/src/fir.o - .text.fir_init - 0x00000000 0x220 obj/sys/algo/src/fir.o - .text.fir_calculate - 0x00000000 0xac obj/sys/algo/src/fir.o - .debug_info 0x00000000 0x257 obj/sys/algo/src/fir.o - .debug_abbrev 0x00000000 0xde obj/sys/algo/src/fir.o - .debug_aranges - 0x00000000 0x28 obj/sys/algo/src/fir.o - .debug_ranges 0x00000000 0x18 obj/sys/algo/src/fir.o - .debug_line 0x00000000 0x184 obj/sys/algo/src/fir.o - .debug_str 0x00000000 0x28d obj/sys/algo/src/fir.o - .comment 0x00000000 0x71 obj/sys/algo/src/fir.o - .ARM.attributes - 0x00000000 0x39 obj/sys/algo/src/fir.o - .debug_frame 0x00000000 0x54 obj/sys/algo/src/fir.o - .text 0x00000000 0x0 obj/sys/algo/src/ramp.o - .data 0x00000000 0x0 obj/sys/algo/src/ramp.o - .bss 0x00000000 0x0 obj/sys/algo/src/ramp.o - .text.ramp_init - 0x00000000 0x1c obj/sys/algo/src/ramp.o - .text.ramp_step - 0x00000000 0xa0 obj/sys/algo/src/ramp.o - .debug_info 0x00000000 0x169 obj/sys/algo/src/ramp.o - .debug_abbrev 0x00000000 0x9d obj/sys/algo/src/ramp.o - .debug_aranges - 0x00000000 0x28 obj/sys/algo/src/ramp.o - .debug_ranges 0x00000000 0x18 obj/sys/algo/src/ramp.o - .debug_line 0x00000000 0x15e obj/sys/algo/src/ramp.o - .debug_str 0x00000000 0x254 obj/sys/algo/src/ramp.o - .comment 0x00000000 0x71 obj/sys/algo/src/ramp.o - .ARM.attributes - 0x00000000 0x39 obj/sys/algo/src/ramp.o - .debug_frame 0x00000000 0x48 obj/sys/algo/src/ramp.o - .text 0x00000000 0x0 obj/sys/algo/src/pid.o - .data 0x00000000 0x0 obj/sys/algo/src/pid.o - .bss 0x00000000 0x0 obj/sys/algo/src/pid.o - .text 0x00000000 0x0 obj/sys/algo/src/pt1.o - .data 0x00000000 0x0 obj/sys/algo/src/pt1.o - .bss 0x00000000 0x0 obj/sys/algo/src/pt1.o - .text.pt1_init - 0x00000000 0x1c obj/sys/algo/src/pt1.o - .text 0x00000000 0x0 obj/sys/terminal/src/terminal.o - .data 0x00000000 0x28 obj/sys/terminal/src/terminal.o - .bss 0x00000000 0xac obj/sys/terminal/src/terminal.o - .text.decToParID - 0x00000000 0x54 obj/sys/terminal/src/terminal.o - .text.toUpper 0x00000000 0x2c obj/sys/terminal/src/terminal.o - .rodata 0x00000000 0x1184 obj/sys/terminal/src/terminal.o - .text.emptyFunction - 0x00000000 0x14 obj/sys/terminal/src/terminal.o - .text.terminalMonitor - 0x00000000 0x144 obj/sys/terminal/src/terminal.o - .text.parseCmd - 0x00000000 0x574 obj/sys/terminal/src/terminal.o - .text.parseArgument - 0x00000000 0x30c obj/sys/terminal/src/terminal.o - .text.increment - 0x00000000 0x40 obj/sys/terminal/src/terminal.o - .text.cmd_help - 0x00000000 0x2c obj/sys/terminal/src/terminal.o - .text.cmd_next - 0x00000000 0x38 obj/sys/terminal/src/terminal.o - .text.cmd_MR 0x00000000 0x2e0 obj/sys/terminal/src/terminal.o - .text.cmd_MW 0x00000000 0xb4 obj/sys/terminal/src/terminal.o - .text.cmd_TA 0x00000000 0x28 obj/sys/terminal/src/terminal.o - .text.cmd_TS 0x00000000 0x28 obj/sys/terminal/src/terminal.o - .text.cmd_TL 0x00000000 0x10 obj/sys/terminal/src/terminal.o - .text.cmd_PA 0x00000000 0x5c obj/sys/terminal/src/terminal.o - .text.cmd_PD 0x00000000 0x1c obj/sys/terminal/src/terminal.o - .text.cmd_PW 0x00000000 0xf8 obj/sys/terminal/src/terminal.o - .text.cmd_PR 0x00000000 0x16c obj/sys/terminal/src/terminal.o - .text.cmd_PI 0x00000000 0x2dc obj/sys/terminal/src/terminal.o - .text.cmd_PL 0x00000000 0x28 obj/sys/terminal/src/terminal.o - .text.cmd_PV 0x00000000 0xa8 obj/sys/terminal/src/terminal.o - .text.cmd_DB 0x00000000 0x18 obj/sys/terminal/src/terminal.o - .text.cmd_quit - 0x00000000 0x20 obj/sys/terminal/src/terminal.o - .text.cmd_FR 0x00000000 0x10 obj/sys/terminal/src/terminal.o - .debug_info 0x00000000 0x915 obj/sys/terminal/src/terminal.o - .debug_abbrev 0x00000000 0x1dd obj/sys/terminal/src/terminal.o - .debug_aranges - 0x00000000 0xd8 obj/sys/terminal/src/terminal.o - .debug_ranges 0x00000000 0xc8 obj/sys/terminal/src/terminal.o - .debug_line 0x00000000 0x5ee obj/sys/terminal/src/terminal.o - .debug_str 0x00000000 0x69e obj/sys/terminal/src/terminal.o - .comment 0x00000000 0x71 obj/sys/terminal/src/terminal.o - .ARM.attributes - 0x00000000 0x39 obj/sys/terminal/src/terminal.o - .debug_frame 0x00000000 0x2d8 obj/sys/terminal/src/terminal.o - .text 0x00000000 0x0 obj/sys/util/src/ringbuf.o - .data 0x00000000 0x0 obj/sys/util/src/ringbuf.o - .bss 0x00000000 0x0 obj/sys/util/src/ringbuf.o - .text.ringbuf_read_timed - 0x00000000 0x7c obj/sys/util/src/ringbuf.o - .text.ringbuf_readString - 0x00000000 0x98 obj/sys/util/src/ringbuf.o - .text 0x00000000 0x0 obj/sys/util/src/io.o - .data 0x00000000 0x0 obj/sys/util/src/io.o - .text.io_scanf - 0x00000000 0x290 obj/sys/util/src/io.o - .text.io_getchar - 0x00000000 0x38 obj/sys/util/src/io.o - .text.io_getline - 0x00000000 0xa8 obj/sys/util/src/io.o - .text.io_getlineTerminal - 0x00000000 0x308 obj/sys/util/src/io.o - .text 0x00000000 0x0 obj/sys/util/src/stubs.o - .data 0x00000000 0x0 obj/sys/util/src/stubs.o - .bss 0x00000000 0x0 obj/sys/util/src/stubs.o - .rodata 0x00000000 0x224 obj/sys/util/src/stubs.o - .text.parDisplayAttrRead - 0x00000000 0x34 obj/sys/util/src/stubs.o - .text.taskList - 0x00000000 0x18 obj/sys/util/src/stubs.o - .text.EVENTMGR_resetAllFaults - 0x00000000 0x14 obj/sys/util/src/stubs.o - .text.test 0x00000000 0x14 obj/sys/util/src/stubs.o - .text.delay 0x00000000 0x28 obj/sys/util/src/stubs.o - .text.disableInterrupts - 0x00000000 0x10 obj/sys/util/src/stubs.o - .text.restoreInterrupts - 0x00000000 0x14 obj/sys/util/src/stubs.o - .text.enableInterrupts - 0x00000000 0xc obj/sys/util/src/stubs.o - .text.vInitLedsForDummyApp - 0x00000000 0x20 obj/sys/util/src/stubs.o - .text.vTaskToggleLED3 - 0x00000000 0xc obj/sys/util/src/stubs.o - .text.vTaskToggleLED4 - 0x00000000 0xc obj/sys/util/src/stubs.o - .text.vTaskToggleLED5 - 0x00000000 0xc obj/sys/util/src/stubs.o - .text.vTaskToggleLED6 - 0x00000000 0xc obj/sys/util/src/stubs.o - .text.myDummyAppInit - 0x00000000 0x5c obj/sys/util/src/stubs.o - .debug_info 0x00000000 0x2df obj/sys/util/src/stubs.o - .debug_abbrev 0x00000000 0x199 obj/sys/util/src/stubs.o - .debug_aranges - 0x00000000 0x88 obj/sys/util/src/stubs.o - .debug_ranges 0x00000000 0x78 obj/sys/util/src/stubs.o - .debug_line 0x00000000 0x29c obj/sys/util/src/stubs.o - .debug_str 0x00000000 0x390 obj/sys/util/src/stubs.o - .comment 0x00000000 0x71 obj/sys/util/src/stubs.o - .ARM.attributes - 0x00000000 0x39 obj/sys/util/src/stubs.o - .debug_frame 0x00000000 0x194 obj/sys/util/src/stubs.o - .text 0x00000000 0x0 obj/sys/sigp/src/sigp.o - .data 0x00000000 0x0 obj/sys/sigp/src/sigp.o - .text 0x00000000 0x0 obj/per/src/eict.o - .data 0x00000000 0x0 obj/per/src/eict.o - .text 0x00000000 0x0 obj/per/src/clocksync.o - .data 0x00000000 0x0 obj/per/src/clocksync.o - .bss 0x00000000 0x0 obj/per/src/clocksync.o - .text 0x00000000 0x0 obj/per/src/adc.o - .data 0x00000000 0x0 obj/per/src/adc.o - .bss 0x00000000 0x1c obj/per/src/adc.o - .text.adc_initDevice - 0x00000000 0xb4 obj/per/src/adc.o - .text.adc_initChannel - 0x00000000 0x18c obj/per/src/adc.o - .text.adc_start - 0x00000000 0x44 obj/per/src/adc.o - .text.adc_getValue - 0x00000000 0x38 obj/per/src/adc.o - .text.adc_stop - 0x00000000 0x38 obj/per/src/adc.o - .debug_info 0x00000000 0x800 obj/per/src/adc.o - .debug_abbrev 0x00000000 0x137 obj/per/src/adc.o - .debug_aranges - 0x00000000 0x40 obj/per/src/adc.o - .debug_ranges 0x00000000 0x30 obj/per/src/adc.o - .debug_line 0x00000000 0x233 obj/per/src/adc.o - .debug_str 0x00000000 0x7ac obj/per/src/adc.o - .comment 0x00000000 0x71 obj/per/src/adc.o - .ARM.attributes - 0x00000000 0x39 obj/per/src/adc.o - .debug_frame 0x00000000 0xac obj/per/src/adc.o - .text 0x00000000 0x0 obj/per/src/i2c2.o - .data 0x00000000 0x0 obj/per/src/i2c2.o - .text.i2c2_init - 0x00000000 0xf0 obj/per/src/i2c2.o - .text.i2c2_writeByte - 0x00000000 0x70 obj/per/src/i2c2.o - .text.i2c2_writeTwoBytes - 0x00000000 0x80 obj/per/src/i2c2.o - .text.i2c2_readByte - 0x00000000 0x8c obj/per/src/i2c2.o - .text.i2c2_readTwoBytes - 0x00000000 0x98 obj/per/src/i2c2.o - .text.i2c2_readFourBytes - 0x00000000 0xac obj/per/src/i2c2.o - .text 0x00000000 0x0 obj/per/src/i2c.o - .data 0x00000000 0x1 obj/per/src/i2c.o - .bss 0x00000000 0x0 obj/per/src/i2c.o - .text.i2c_init - 0x00000000 0x120 obj/per/src/i2c.o - .text.i2c_enable - 0x00000000 0x2c obj/per/src/i2c.o - .text.i2c_disable - 0x00000000 0x2c obj/per/src/i2c.o - .text.i2c_readRaw - 0x00000000 0x56c obj/per/src/i2c.o - .text.i2c_readReg - 0x00000000 0xdc obj/per/src/i2c.o - .text.i2c_writeRaw - 0x00000000 0x1e4 obj/per/src/i2c.o - .text.i2c_writeReg - 0x00000000 0xd0 obj/per/src/i2c.o - .text.I2Cx_TIMEOUT_UserCallback - 0x00000000 0x6c obj/per/src/i2c.o - .text.SetI2cRetry - 0x00000000 0x20 obj/per/src/i2c.o - .text.GetI2cRetry - 0x00000000 0x18 obj/per/src/i2c.o - .debug_info 0x00000000 0x998 obj/per/src/i2c.o - .debug_abbrev 0x00000000 0x202 obj/per/src/i2c.o - .debug_aranges - 0x00000000 0x68 obj/per/src/i2c.o - .debug_ranges 0x00000000 0x58 obj/per/src/i2c.o - .debug_line 0x00000000 0x40d obj/per/src/i2c.o - .debug_str 0x00000000 0x67f obj/per/src/i2c.o - .comment 0x00000000 0x71 obj/per/src/i2c.o - .ARM.attributes - 0x00000000 0x39 obj/per/src/i2c.o - .debug_frame 0x00000000 0x154 obj/per/src/i2c.o - COMMON 0x00000000 0x10 obj/per/src/i2c.o - .text 0x00000000 0x0 obj/per/src/irq.o - .data 0x00000000 0x0 obj/per/src/irq.o - .bss 0x00000000 0x0 obj/per/src/irq.o - .text 0x00000000 0x0 obj/per/src/uart.o - .data 0x00000000 0x0 obj/per/src/uart.o - .text.uart_writeByte - 0x00000000 0x40 obj/per/src/uart.o - .text.uart_readByte_timed - 0x00000000 0x20 obj/per/src/uart.o - .text.uart_readString - 0x00000000 0x30 obj/per/src/uart.o - .text 0x00000000 0x0 obj/per/src/spi.o - .data 0x00000000 0x0 obj/per/src/spi.o - .bss 0x00000000 0x0 obj/per/src/spi.o - .text.SPI2_init - 0x00000000 0xa4 obj/per/src/spi.o - .text.SPI2_sendByte - 0x00000000 0x58 obj/per/src/spi.o - .text.SPI2_sendBuffer - 0x00000000 0x3c obj/per/src/spi.o - .text.SPI2_readByte - 0x00000000 0x50 obj/per/src/spi.o - .debug_info 0x00000000 0x4e1 obj/per/src/spi.o - .debug_abbrev 0x00000000 0x176 obj/per/src/spi.o - .debug_aranges - 0x00000000 0x38 obj/per/src/spi.o - .debug_ranges 0x00000000 0x28 obj/per/src/spi.o - .debug_line 0x00000000 0x1f3 obj/per/src/spi.o - .debug_str 0x00000000 0x52c obj/per/src/spi.o - .comment 0x00000000 0x71 obj/per/src/spi.o - .ARM.attributes - 0x00000000 0x39 obj/per/src/spi.o - .debug_frame 0x00000000 0x84 obj/per/src/spi.o - .text 0x00000000 0x0 obj/per/src/gpio.o - .data 0x00000000 0x0 obj/per/src/gpio.o - .bss 0x00000000 0x0 obj/per/src/gpio.o - .text.gpio_writeBit - 0x00000000 0x154 obj/per/src/gpio.o - .text.gpio_toggleBit - 0x00000000 0x104 obj/per/src/gpio.o - .text 0x00000000 0x0 obj/per/src/pwm.o - .bss 0x00000000 0x0 obj/per/src/pwm.o - .text 0x00000000 0x0 obj/per/src/ict.o - .data 0x00000000 0x0 obj/per/src/ict.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_cryp.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_cryp.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_DeInit - 0x00000000 0x18 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_Init - 0x00000000 0xa4 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_StructInit - 0x00000000 0x2c obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_KeyInit - 0x00000000 0x58 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_KeyStructInit - 0x00000000 0x44 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_IVInit - 0x00000000 0x38 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_IVStructInit - 0x00000000 0x2c obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_PhaseConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_FIFOFlush - 0x00000000 0x1c obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_Cmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_DataIn - 0x00000000 0x1c obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_DataOut - 0x00000000 0x18 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_SaveContext - 0x00000000 0x190 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_RestoreContext - 0x00000000 0x114 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_DMACmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_ITConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_GetITStatus - 0x00000000 0x38 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_GetCmdStatus - 0x00000000 0x34 obj/brd/src/stm32f4xx_cryp.o - .text.CRYP_GetFlagStatus - 0x00000000 0x50 obj/brd/src/stm32f4xx_cryp.o - .debug_info 0x00000000 0x85b obj/brd/src/stm32f4xx_cryp.o - .debug_abbrev 0x00000000 0x1a4 obj/brd/src/stm32f4xx_cryp.o - .debug_aranges - 0x00000000 0xb0 obj/brd/src/stm32f4xx_cryp.o - .debug_ranges 0x00000000 0xa0 obj/brd/src/stm32f4xx_cryp.o - .debug_line 0x00000000 0x341 obj/brd/src/stm32f4xx_cryp.o - .debug_str 0x00000000 0x708 obj/brd/src/stm32f4xx_cryp.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_cryp.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_cryp.o - .debug_frame 0x00000000 0x21c obj/brd/src/stm32f4xx_cryp.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_hash_md5.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_hash_md5.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_hash_md5.o - .text.HASH_MD5 - 0x00000000 0x11c obj/brd/src/stm32f4xx_hash_md5.o - .text.HMAC_MD5 - 0x00000000 0x210 obj/brd/src/stm32f4xx_hash_md5.o - .debug_info 0x00000000 0x4df obj/brd/src/stm32f4xx_hash_md5.o - .debug_abbrev 0x00000000 0x192 obj/brd/src/stm32f4xx_hash_md5.o - .debug_aranges - 0x00000000 0x28 obj/brd/src/stm32f4xx_hash_md5.o - .debug_ranges 0x00000000 0x18 obj/brd/src/stm32f4xx_hash_md5.o - .debug_line 0x00000000 0x2d7 obj/brd/src/stm32f4xx_hash_md5.o - .debug_str 0x00000000 0x34a obj/brd/src/stm32f4xx_hash_md5.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_hash_md5.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_hash_md5.o - .debug_frame 0x00000000 0x50 obj/brd/src/stm32f4xx_hash_md5.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_adc.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_adc.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_adc.o - .text.ADC_DeInit - 0x00000000 0x1c obj/brd/src/stm32f4xx_adc.o - .text.ADC_Init - 0x00000000 0xa8 obj/brd/src/stm32f4xx_adc.o - .text.ADC_StructInit - 0x00000000 0x3c obj/brd/src/stm32f4xx_adc.o - .text.ADC_CommonInit - 0x00000000 0x50 obj/brd/src/stm32f4xx_adc.o - .text.ADC_CommonStructInit - 0x00000000 0x2c obj/brd/src/stm32f4xx_adc.o - .text.ADC_Cmd 0x00000000 0x38 obj/brd/src/stm32f4xx_adc.o - .text.ADC_AnalogWatchdogCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_adc.o - .text.ADC_AnalogWatchdogThresholdsConfig - 0x00000000 0x28 obj/brd/src/stm32f4xx_adc.o - .text.ADC_AnalogWatchdogSingleChannelConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_adc.o - .text.ADC_TempSensorVrefintCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_adc.o - .text.ADC_VBATCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_adc.o - .text.ADC_RegularChannelConfig - 0x00000000 0x188 obj/brd/src/stm32f4xx_adc.o - .text.ADC_SoftwareStartConv - 0x00000000 0x20 obj/brd/src/stm32f4xx_adc.o - .text.ADC_GetSoftwareStartConvStatus - 0x00000000 0x30 obj/brd/src/stm32f4xx_adc.o - .text.ADC_EOCOnEachRegularChannelCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_adc.o - .text.ADC_ContinuousModeCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_adc.o - .text.ADC_DiscModeChannelCountConfig - 0x00000000 0x44 obj/brd/src/stm32f4xx_adc.o - .text.ADC_DiscModeCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_adc.o - .text.ADC_GetConversionValue - 0x00000000 0x1c obj/brd/src/stm32f4xx_adc.o - .text.ADC_GetMultiModeConversionValue - 0x00000000 0x18 obj/brd/src/stm32f4xx_adc.o - .text.ADC_DMACmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_adc.o - .text.ADC_DMARequestAfterLastTransferCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_adc.o - .text.ADC_MultiModeDMARequestAfterLastTransferCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_adc.o - .text.ADC_InjectedChannelConfig - 0x00000000 0x114 obj/brd/src/stm32f4xx_adc.o - .text.ADC_InjectedSequencerLengthConfig - 0x00000000 0x44 obj/brd/src/stm32f4xx_adc.o - .text.ADC_SetInjectedOffset - 0x00000000 0x30 obj/brd/src/stm32f4xx_adc.o - .text.ADC_ExternalTrigInjectedConvConfig - 0x00000000 0x34 obj/brd/src/stm32f4xx_adc.o - .text.ADC_ExternalTrigInjectedConvEdgeConfig - 0x00000000 0x34 obj/brd/src/stm32f4xx_adc.o - .text.ADC_SoftwareStartInjectedConv - 0x00000000 0x20 obj/brd/src/stm32f4xx_adc.o - .text.ADC_GetSoftwareStartInjectedConvCmdStatus - 0x00000000 0x30 obj/brd/src/stm32f4xx_adc.o - .text.ADC_AutoInjectedConvCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_adc.o - .text.ADC_InjectedDiscModeCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_adc.o - .text.ADC_GetInjectedConversionValue - 0x00000000 0x30 obj/brd/src/stm32f4xx_adc.o - .text.ADC_ITConfig - 0x00000000 0x50 obj/brd/src/stm32f4xx_adc.o - .text.ADC_GetFlagStatus - 0x00000000 0x34 obj/brd/src/stm32f4xx_adc.o - .text.ADC_ClearFlag - 0x00000000 0x20 obj/brd/src/stm32f4xx_adc.o - .text.ADC_GetITStatus - 0x00000000 0x5c obj/brd/src/stm32f4xx_adc.o - .text.ADC_ClearITPendingBit - 0x00000000 0x2c obj/brd/src/stm32f4xx_adc.o - .debug_info 0x00000000 0xc25 obj/brd/src/stm32f4xx_adc.o - .debug_abbrev 0x00000000 0x198 obj/brd/src/stm32f4xx_adc.o - .debug_aranges - 0x00000000 0x148 obj/brd/src/stm32f4xx_adc.o - .debug_ranges 0x00000000 0x138 obj/brd/src/stm32f4xx_adc.o - .debug_line 0x00000000 0x4b3 obj/brd/src/stm32f4xx_adc.o - .debug_str 0x00000000 0x85c obj/brd/src/stm32f4xx_adc.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_adc.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_adc.o - .debug_frame 0x00000000 0x434 obj/brd/src/stm32f4xx_adc.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_tim.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_tim.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_tim.o - .text.TIM_DeInit - 0x00000000 0x1bc obj/brd/src/stm32f4xx_tim.o - .text.TIM_TimeBaseStructInit - 0x00000000 0x34 obj/brd/src/stm32f4xx_tim.o - .text.TIM_PrescalerConfig - 0x00000000 0x28 obj/brd/src/stm32f4xx_tim.o - .text.TIM_CounterModeConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_SetAutoreload - 0x00000000 0x1c obj/brd/src/stm32f4xx_tim.o - .text.TIM_GetPrescaler - 0x00000000 0x1c obj/brd/src/stm32f4xx_tim.o - .text.TIM_UpdateDisableConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_tim.o - .text.TIM_UpdateRequestConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_tim.o - .text.TIM_ARRPreloadConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_tim.o - .text.TIM_SelectOnePulseMode - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_SetClockDivision - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC1Init - 0x00000000 0xf4 obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC2Init - 0x00000000 0x110 obj/brd/src/stm32f4xx_tim.o - .text.TIM_OCStructInit - 0x00000000 0x44 obj/brd/src/stm32f4xx_tim.o - .text.TIM_SelectOCxM - 0x00000000 0xac obj/brd/src/stm32f4xx_tim.o - .text.TIM_SetCompare1 - 0x00000000 0x1c obj/brd/src/stm32f4xx_tim.o - .text.TIM_SetCompare2 - 0x00000000 0x1c obj/brd/src/stm32f4xx_tim.o - .text.TIM_ForcedOC1Config - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_ForcedOC2Config - 0x00000000 0x3c obj/brd/src/stm32f4xx_tim.o - .text.TIM_ForcedOC3Config - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_ForcedOC4Config - 0x00000000 0x3c obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC1PreloadConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC2PreloadConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC1FastConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC2FastConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC3FastConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC4FastConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_tim.o - .text.TIM_ClearOC1Ref - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_ClearOC2Ref - 0x00000000 0x3c obj/brd/src/stm32f4xx_tim.o - .text.TIM_ClearOC3Ref - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_ClearOC4Ref - 0x00000000 0x3c obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC1PolarityConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC1NPolarityConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC2PolarityConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC2NPolarityConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC3PolarityConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC3NPolarityConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_tim.o - .text.TIM_OC4PolarityConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_tim.o - .text.TIM_CCxCmd - 0x00000000 0x54 obj/brd/src/stm32f4xx_tim.o - .text.TIM_CCxNCmd - 0x00000000 0x54 obj/brd/src/stm32f4xx_tim.o - .text.TIM_ICStructInit - 0x00000000 0x30 obj/brd/src/stm32f4xx_tim.o - .text.TIM_PWMIConfig - 0x00000000 0xb8 obj/brd/src/stm32f4xx_tim.o - .text.TIM_GetCapture1 - 0x00000000 0x18 obj/brd/src/stm32f4xx_tim.o - .text.TIM_GetCapture2 - 0x00000000 0x18 obj/brd/src/stm32f4xx_tim.o - .text.TIM_GetCapture3 - 0x00000000 0x18 obj/brd/src/stm32f4xx_tim.o - .text.TIM_GetCapture4 - 0x00000000 0x18 obj/brd/src/stm32f4xx_tim.o - .text.TIM_BDTRConfig - 0x00000000 0x50 obj/brd/src/stm32f4xx_tim.o - .text.TIM_BDTRStructInit - 0x00000000 0x3c obj/brd/src/stm32f4xx_tim.o - .text.TIM_SelectCOM - 0x00000000 0x40 obj/brd/src/stm32f4xx_tim.o - .text.TIM_CCPreloadControl - 0x00000000 0x40 obj/brd/src/stm32f4xx_tim.o - .text.TIM_GenerateEvent - 0x00000000 0x1c obj/brd/src/stm32f4xx_tim.o - .text.TIM_GetFlagStatus - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_DMAConfig - 0x00000000 0x28 obj/brd/src/stm32f4xx_tim.o - .text.TIM_DMACmd - 0x00000000 0x48 obj/brd/src/stm32f4xx_tim.o - .text.TIM_SelectCCDMA - 0x00000000 0x40 obj/brd/src/stm32f4xx_tim.o - .text.TIM_InternalClockConfig - 0x00000000 0x24 obj/brd/src/stm32f4xx_tim.o - .text.TIM_ITRxExternalClockConfig - 0x00000000 0x2c obj/brd/src/stm32f4xx_tim.o - .text.TIM_TIxExternalClockConfig - 0x00000000 0x54 obj/brd/src/stm32f4xx_tim.o - .text.TIM_ETRClockMode1Config - 0x00000000 0x50 obj/brd/src/stm32f4xx_tim.o - .text.TIM_ETRClockMode2Config - 0x00000000 0x30 obj/brd/src/stm32f4xx_tim.o - .text.TIM_SelectInputTrigger - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_SelectOutputTrigger - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_SelectSlaveMode - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_SelectMasterSlaveMode - 0x00000000 0x38 obj/brd/src/stm32f4xx_tim.o - .text.TIM_ETRConfig - 0x00000000 0x48 obj/brd/src/stm32f4xx_tim.o - .text.TIM_EncoderInterfaceConfig - 0x00000000 0x8c obj/brd/src/stm32f4xx_tim.o - .text.TIM_SelectHallSensor - 0x00000000 0x40 obj/brd/src/stm32f4xx_tim.o - .text.TIM_RemapConfig - 0x00000000 0x20 obj/brd/src/stm32f4xx_tim.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_cryp_tdes.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_cryp_tdes.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_cryp_tdes.o - .text.CRYP_TDES_ECB - 0x00000000 0x1c0 obj/brd/src/stm32f4xx_cryp_tdes.o - .text.CRYP_TDES_CBC - 0x00000000 0x240 obj/brd/src/stm32f4xx_cryp_tdes.o - .debug_info 0x00000000 0x6c3 obj/brd/src/stm32f4xx_cryp_tdes.o - .debug_abbrev 0x00000000 0x16f obj/brd/src/stm32f4xx_cryp_tdes.o - .debug_aranges - 0x00000000 0x28 obj/brd/src/stm32f4xx_cryp_tdes.o - .debug_ranges 0x00000000 0x18 obj/brd/src/stm32f4xx_cryp_tdes.o - .debug_line 0x00000000 0x2e6 obj/brd/src/stm32f4xx_cryp_tdes.o - .debug_str 0x00000000 0x430 obj/brd/src/stm32f4xx_cryp_tdes.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_cryp_tdes.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_cryp_tdes.o - .debug_frame 0x00000000 0x50 obj/brd/src/stm32f4xx_cryp_tdes.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_flash.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_flash.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_PrefetchBufferCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_InstructionCacheCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_DataCacheCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_InstructionCacheReset - 0x00000000 0x1c obj/brd/src/stm32f4xx_flash.o - .text.FLASH_DataCacheReset - 0x00000000 0x1c obj/brd/src/stm32f4xx_flash.o - .text.FLASH_Unlock - 0x00000000 0x2c obj/brd/src/stm32f4xx_flash.o - .text.FLASH_Lock - 0x00000000 0x1c obj/brd/src/stm32f4xx_flash.o - .text.FLASH_EraseSector - 0x00000000 0xc0 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_EraseAllSectors - 0x00000000 0x20 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_ProgramDoubleWord - 0x00000000 0x70 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_ProgramWord - 0x00000000 0x68 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_ProgramHalfWord - 0x00000000 0x6c obj/brd/src/stm32f4xx_flash.o - .text.FLASH_ProgramByte - 0x00000000 0x68 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_OB_Unlock - 0x00000000 0x30 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_OB_Lock - 0x00000000 0x1c obj/brd/src/stm32f4xx_flash.o - .text.FLASH_OB_WRPConfig - 0x00000000 0x58 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_OB_WRP1Config - 0x00000000 0x58 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_OB_RDPConfig - 0x00000000 0x2c obj/brd/src/stm32f4xx_flash.o - .text.FLASH_OB_UserConfig - 0x00000000 0x58 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_OB_BORConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_OB_Launch - 0x00000000 0x30 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_OB_GetUser - 0x00000000 0x1c obj/brd/src/stm32f4xx_flash.o - .text.FLASH_OB_GetWRP - 0x00000000 0x18 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_OB_GetWRP1 - 0x00000000 0x18 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_OB_GetRDP - 0x00000000 0x30 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_OB_GetBOR - 0x00000000 0x20 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_ITConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_flash.o - .text.FLASH_GetFlagStatus - 0x00000000 0x34 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_ClearFlag - 0x00000000 0x1c obj/brd/src/stm32f4xx_flash.o - .text.FLASH_GetStatus - 0x00000000 0x68 obj/brd/src/stm32f4xx_flash.o - .text.FLASH_WaitForLastOperation - 0x00000000 0x30 obj/brd/src/stm32f4xx_flash.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_sdio.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_sdio.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_DeInit - 0x00000000 0x1c obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_Init - 0x00000000 0x5c obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_StructInit - 0x00000000 0x38 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_ClockCmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_SetPowerState - 0x00000000 0x1c obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_GetPowerState - 0x00000000 0x1c obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_SendCommand - 0x00000000 0x58 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_CmdStructInit - 0x00000000 0x30 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_GetCommandResponse - 0x00000000 0x18 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_GetResponse - 0x00000000 0x28 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_DataConfig - 0x00000000 0x5c obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_DataStructInit - 0x00000000 0x38 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_GetDataCounter - 0x00000000 0x18 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_ReadData - 0x00000000 0x18 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_WriteData - 0x00000000 0x20 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_GetFIFOCount - 0x00000000 0x18 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_StartSDIOReadWait - 0x00000000 0x20 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_StopSDIOReadWait - 0x00000000 0x20 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_SetSDIOReadWaitMode - 0x00000000 0x1c obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_SetSDIOOperation - 0x00000000 0x20 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_SendSDIOSuspendCmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_CommandCompletionCmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_CEATAITCmd - 0x00000000 0x2c obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_SendCEATACmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_DMACmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_ITConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_GetFlagStatus - 0x00000000 0x34 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_ClearFlag - 0x00000000 0x1c obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_GetITStatus - 0x00000000 0x34 obj/brd/src/stm32f4xx_sdio.o - .text.SDIO_ClearITPendingBit - 0x00000000 0x1c obj/brd/src/stm32f4xx_sdio.o - .debug_info 0x00000000 0x7f8 obj/brd/src/stm32f4xx_sdio.o - .debug_abbrev 0x00000000 0x179 obj/brd/src/stm32f4xx_sdio.o - .debug_aranges - 0x00000000 0x108 obj/brd/src/stm32f4xx_sdio.o - .debug_ranges 0x00000000 0xf8 obj/brd/src/stm32f4xx_sdio.o - .debug_line 0x00000000 0x3a5 obj/brd/src/stm32f4xx_sdio.o - .debug_str 0x00000000 0x6ac obj/brd/src/stm32f4xx_sdio.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_sdio.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_sdio.o - .debug_frame 0x00000000 0x344 obj/brd/src/stm32f4xx_sdio.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_iwdg.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_iwdg.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_iwdg.o - .text.IWDG_WriteAccessCmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_iwdg.o - .text.IWDG_SetPrescaler - 0x00000000 0x20 obj/brd/src/stm32f4xx_iwdg.o - .text.IWDG_SetReload - 0x00000000 0x20 obj/brd/src/stm32f4xx_iwdg.o - .text.IWDG_ReloadCounter - 0x00000000 0x18 obj/brd/src/stm32f4xx_iwdg.o - .text.IWDG_Enable - 0x00000000 0x18 obj/brd/src/stm32f4xx_iwdg.o - .text.IWDG_GetFlagStatus - 0x00000000 0x38 obj/brd/src/stm32f4xx_iwdg.o - .debug_info 0x00000000 0x1f7 obj/brd/src/stm32f4xx_iwdg.o - .debug_abbrev 0x00000000 0x103 obj/brd/src/stm32f4xx_iwdg.o - .debug_aranges - 0x00000000 0x48 obj/brd/src/stm32f4xx_iwdg.o - .debug_ranges 0x00000000 0x38 obj/brd/src/stm32f4xx_iwdg.o - .debug_line 0x00000000 0x19f obj/brd/src/stm32f4xx_iwdg.o - .debug_str 0x00000000 0x2c4 obj/brd/src/stm32f4xx_iwdg.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_iwdg.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_iwdg.o - .debug_frame 0x00000000 0xb0 obj/brd/src/stm32f4xx_iwdg.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_gpio.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_gpio.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_gpio.o - .text.GPIO_DeInit - 0x00000000 0x120 obj/brd/src/stm32f4xx_gpio.o - .text.GPIO_StructInit - 0x00000000 0x34 obj/brd/src/stm32f4xx_gpio.o - .text.GPIO_PinLockConfig - 0x00000000 0x44 obj/brd/src/stm32f4xx_gpio.o - .text.GPIO_ReadInputData - 0x00000000 0x1c obj/brd/src/stm32f4xx_gpio.o - .text.GPIO_ReadOutputDataBit - 0x00000000 0x34 obj/brd/src/stm32f4xx_gpio.o - .text.GPIO_ReadOutputData - 0x00000000 0x1c obj/brd/src/stm32f4xx_gpio.o - .text.GPIO_WriteBit - 0x00000000 0x30 obj/brd/src/stm32f4xx_gpio.o - .text.GPIO_Write - 0x00000000 0x1c obj/brd/src/stm32f4xx_gpio.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_pwr.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_pwr.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_pwr.o - .text.PWR_DeInit - 0x00000000 0x1c obj/brd/src/stm32f4xx_pwr.o - .text.PWR_PVDLevelConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_pwr.o - .text.PWR_PVDCmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_pwr.o - .text.PWR_WakeUpPinCmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_pwr.o - .text.PWR_BackupRegulatorCmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_pwr.o - .text.PWR_MainRegulatorModeConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_pwr.o - .text.PWR_FlashPowerDownCmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_pwr.o - .text.PWR_EnterSTOPMode - 0x00000000 0x64 obj/brd/src/stm32f4xx_pwr.o - .text.PWR_EnterSTANDBYMode - 0x00000000 0x3c obj/brd/src/stm32f4xx_pwr.o - .text.PWR_GetFlagStatus - 0x00000000 0x34 obj/brd/src/stm32f4xx_pwr.o - .text.PWR_ClearFlag - 0x00000000 0x24 obj/brd/src/stm32f4xx_pwr.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_dbgmcu.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_dbgmcu.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_dbgmcu.o - .text.DBGMCU_GetREVID - 0x00000000 0x18 obj/brd/src/stm32f4xx_dbgmcu.o - .text.DBGMCU_GetDEVID - 0x00000000 0x1c obj/brd/src/stm32f4xx_dbgmcu.o - .text.DBGMCU_Config - 0x00000000 0x3c obj/brd/src/stm32f4xx_dbgmcu.o - .text.DBGMCU_APB1PeriphConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_dbgmcu.o - .text.DBGMCU_APB2PeriphConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_dbgmcu.o - .debug_info 0x00000000 0x1f5 obj/brd/src/stm32f4xx_dbgmcu.o - .debug_abbrev 0x00000000 0xe0 obj/brd/src/stm32f4xx_dbgmcu.o - .debug_aranges - 0x00000000 0x40 obj/brd/src/stm32f4xx_dbgmcu.o - .debug_ranges 0x00000000 0x30 obj/brd/src/stm32f4xx_dbgmcu.o - .debug_line 0x00000000 0x190 obj/brd/src/stm32f4xx_dbgmcu.o - .debug_str 0x00000000 0x2be obj/brd/src/stm32f4xx_dbgmcu.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_dbgmcu.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_dbgmcu.o - .debug_frame 0x00000000 0x94 obj/brd/src/stm32f4xx_dbgmcu.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_hash_sha1.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_hash_sha1.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_hash_sha1.o - .text.HASH_SHA1 - 0x00000000 0x13c obj/brd/src/stm32f4xx_hash_sha1.o - .text.HMAC_SHA1 - 0x00000000 0x240 obj/brd/src/stm32f4xx_hash_sha1.o - .debug_info 0x00000000 0x53f obj/brd/src/stm32f4xx_hash_sha1.o - .debug_abbrev 0x00000000 0x192 obj/brd/src/stm32f4xx_hash_sha1.o - .debug_aranges - 0x00000000 0x28 obj/brd/src/stm32f4xx_hash_sha1.o - .debug_ranges 0x00000000 0x18 obj/brd/src/stm32f4xx_hash_sha1.o - .debug_line 0x00000000 0x2f6 obj/brd/src/stm32f4xx_hash_sha1.o - .debug_str 0x00000000 0x34f obj/brd/src/stm32f4xx_hash_sha1.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_hash_sha1.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_hash_sha1.o - .debug_frame 0x00000000 0x50 obj/brd/src/stm32f4xx_hash_sha1.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_syscfg.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_syscfg.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_syscfg.o - .text.SYSCFG_DeInit - 0x00000000 0x1c obj/brd/src/stm32f4xx_syscfg.o - .text.SYSCFG_MemoryRemapConfig - 0x00000000 0x20 obj/brd/src/stm32f4xx_syscfg.o - .text.SYSCFG_ETH_MediaInterfaceConfig - 0x00000000 0x1c obj/brd/src/stm32f4xx_syscfg.o - .text.SYSCFG_CompensationCellCmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_syscfg.o - .text.SYSCFG_GetCompensationCellStatus - 0x00000000 0x34 obj/brd/src/stm32f4xx_syscfg.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_spi.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_spi.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_spi.o - .text.SPI_I2S_DeInit - 0x00000000 0xd8 obj/brd/src/stm32f4xx_spi.o - .text.SPI_Init - 0x00000000 0x88 obj/brd/src/stm32f4xx_spi.o - .text.I2S_Init - 0x00000000 0x1b0 obj/brd/src/stm32f4xx_spi.o - .text.SPI_StructInit - 0x00000000 0x48 obj/brd/src/stm32f4xx_spi.o - .text.I2S_StructInit - 0x00000000 0x38 obj/brd/src/stm32f4xx_spi.o - .text.SPI_Cmd 0x00000000 0x40 obj/brd/src/stm32f4xx_spi.o - .text.I2S_Cmd 0x00000000 0x40 obj/brd/src/stm32f4xx_spi.o - .text.SPI_DataSizeConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_spi.o - .text.SPI_BiDirectionalLineConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_spi.o - .text.SPI_NSSInternalSoftwareConfig - 0x00000000 0x44 obj/brd/src/stm32f4xx_spi.o - .text.SPI_SSOutputCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_spi.o - .text.SPI_TIModeCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_spi.o - .text.I2S_FullDuplexConfig - 0x00000000 0x9c obj/brd/src/stm32f4xx_spi.o - .text.SPI_I2S_ReceiveData - 0x00000000 0x1c obj/brd/src/stm32f4xx_spi.o - .text.SPI_I2S_SendData - 0x00000000 0x1c obj/brd/src/stm32f4xx_spi.o - .text.SPI_CalculateCRC - 0x00000000 0x40 obj/brd/src/stm32f4xx_spi.o - .text.SPI_TransmitCRC - 0x00000000 0x24 obj/brd/src/stm32f4xx_spi.o - .text.SPI_GetCRC - 0x00000000 0x34 obj/brd/src/stm32f4xx_spi.o - .text.SPI_GetCRCPolynomial - 0x00000000 0x1c obj/brd/src/stm32f4xx_spi.o - .text.SPI_I2S_DMACmd - 0x00000000 0x48 obj/brd/src/stm32f4xx_spi.o - .text.SPI_I2S_ITConfig - 0x00000000 0x60 obj/brd/src/stm32f4xx_spi.o - .text.SPI_I2S_GetFlagStatus - 0x00000000 0x38 obj/brd/src/stm32f4xx_spi.o - .text.SPI_I2S_ClearFlag - 0x00000000 0x20 obj/brd/src/stm32f4xx_spi.o - .text.SPI_I2S_GetITStatus - 0x00000000 0x78 obj/brd/src/stm32f4xx_spi.o - .text.SPI_I2S_ClearITPendingBit - 0x00000000 0x34 obj/brd/src/stm32f4xx_spi.o - .debug_info 0x00000000 0xb0a obj/brd/src/stm32f4xx_spi.o - .debug_abbrev 0x00000000 0x169 obj/brd/src/stm32f4xx_spi.o - .debug_aranges - 0x00000000 0xe0 obj/brd/src/stm32f4xx_spi.o - .debug_ranges 0x00000000 0xd0 obj/brd/src/stm32f4xx_spi.o - .debug_line 0x00000000 0x3bc obj/brd/src/stm32f4xx_spi.o - .debug_str 0x00000000 0x6f6 obj/brd/src/stm32f4xx_spi.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_spi.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_spi.o - .debug_frame 0x00000000 0x2d0 obj/brd/src/stm32f4xx_spi.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_exti.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_exti.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_exti.o - .text.EXTI_DeInit - 0x00000000 0x34 obj/brd/src/stm32f4xx_exti.o - .text.EXTI_StructInit - 0x00000000 0x2c obj/brd/src/stm32f4xx_exti.o - .text.EXTI_GenerateSWInterrupt - 0x00000000 0x24 obj/brd/src/stm32f4xx_exti.o - .text.EXTI_GetFlagStatus - 0x00000000 0x34 obj/brd/src/stm32f4xx_exti.o - .text.EXTI_ClearFlag - 0x00000000 0x1c obj/brd/src/stm32f4xx_exti.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_hash.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_hash.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_hash.o - .text.HASH_DeInit - 0x00000000 0x18 obj/brd/src/stm32f4xx_hash.o - .text.HASH_Init - 0x00000000 0x70 obj/brd/src/stm32f4xx_hash.o - .text.HASH_StructInit - 0x00000000 0x2c obj/brd/src/stm32f4xx_hash.o - .text.HASH_Reset - 0x00000000 0x1c obj/brd/src/stm32f4xx_hash.o - .text.HASH_SetLastWordValidBitsNbr - 0x00000000 0x30 obj/brd/src/stm32f4xx_hash.o - .text.HASH_DataIn - 0x00000000 0x1c obj/brd/src/stm32f4xx_hash.o - .text.HASH_GetInFIFOWordsNbr - 0x00000000 0x20 obj/brd/src/stm32f4xx_hash.o - .text.HASH_GetDigest - 0x00000000 0x5c obj/brd/src/stm32f4xx_hash.o - .text.HASH_StartDigest - 0x00000000 0x1c obj/brd/src/stm32f4xx_hash.o - .text.HASH_SaveContext - 0x00000000 0x5c obj/brd/src/stm32f4xx_hash.o - .text.HASH_RestoreContext - 0x00000000 0x68 obj/brd/src/stm32f4xx_hash.o - .text.HASH_AutoStartDigest - 0x00000000 0x38 obj/brd/src/stm32f4xx_hash.o - .text.HASH_DMACmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_hash.o - .text.HASH_ITConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_hash.o - .text.HASH_GetFlagStatus - 0x00000000 0x50 obj/brd/src/stm32f4xx_hash.o - .text.HASH_ClearFlag - 0x00000000 0x20 obj/brd/src/stm32f4xx_hash.o - .text.HASH_GetITStatus - 0x00000000 0x44 obj/brd/src/stm32f4xx_hash.o - .text.HASH_ClearITPendingBit - 0x00000000 0x20 obj/brd/src/stm32f4xx_hash.o - .debug_info 0x00000000 0x588 obj/brd/src/stm32f4xx_hash.o - .debug_abbrev 0x00000000 0x1d8 obj/brd/src/stm32f4xx_hash.o - .debug_aranges - 0x00000000 0xa8 obj/brd/src/stm32f4xx_hash.o - .debug_ranges 0x00000000 0x98 obj/brd/src/stm32f4xx_hash.o - .debug_line 0x00000000 0x2e7 obj/brd/src/stm32f4xx_hash.o - .debug_str 0x00000000 0x4b3 obj/brd/src/stm32f4xx_hash.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_hash.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_hash.o - .debug_frame 0x00000000 0x1fc obj/brd/src/stm32f4xx_hash.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_can.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_can.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_can.o - .text.CAN_DeInit - 0x00000000 0x44 obj/brd/src/stm32f4xx_can.o - .text.CAN_Init - 0x00000000 0x1a4 obj/brd/src/stm32f4xx_can.o - .text.CAN_FilterInit - 0x00000000 0x164 obj/brd/src/stm32f4xx_can.o - .text.CAN_StructInit - 0x00000000 0x54 obj/brd/src/stm32f4xx_can.o - .text.CAN_SlaveStartBank - 0x00000000 0x60 obj/brd/src/stm32f4xx_can.o - .text.CAN_DBGFreeze - 0x00000000 0x38 obj/brd/src/stm32f4xx_can.o - .text.CAN_TTComModeCmd - 0x00000000 0x98 obj/brd/src/stm32f4xx_can.o - .text.CAN_Transmit - 0x00000000 0x190 obj/brd/src/stm32f4xx_can.o - .text.CAN_TransmitStatus - 0x00000000 0xd4 obj/brd/src/stm32f4xx_can.o - .text.CAN_CancelTransmit - 0x00000000 0x50 obj/brd/src/stm32f4xx_can.o - .text.CAN_Receive - 0x00000000 0x170 obj/brd/src/stm32f4xx_can.o - .text.CAN_FIFORelease - 0x00000000 0x38 obj/brd/src/stm32f4xx_can.o - .text.CAN_MessagePending - 0x00000000 0x4c obj/brd/src/stm32f4xx_can.o - .text.CAN_OperatingModeRequest - 0x00000000 0xfc obj/brd/src/stm32f4xx_can.o - .text.CAN_Sleep - 0x00000000 0x3c obj/brd/src/stm32f4xx_can.o - .text.CAN_WakeUp - 0x00000000 0x58 obj/brd/src/stm32f4xx_can.o - .text.CAN_GetLastErrorCode - 0x00000000 0x28 obj/brd/src/stm32f4xx_can.o - .text.CAN_GetReceiveErrorCounter - 0x00000000 0x24 obj/brd/src/stm32f4xx_can.o - .text.CAN_GetLSBTransmitErrorCounter - 0x00000000 0x28 obj/brd/src/stm32f4xx_can.o - .text.CAN_ITConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_can.o - .text.CAN_GetFlagStatus - 0x00000000 0xd0 obj/brd/src/stm32f4xx_can.o - .text.CAN_ClearFlag - 0x00000000 0x70 obj/brd/src/stm32f4xx_can.o - .text.CAN_GetITStatus - 0x00000000 0x194 obj/brd/src/stm32f4xx_can.o - .text.CAN_ClearITPendingBit - 0x00000000 0xdc obj/brd/src/stm32f4xx_can.o - .text.CheckITStatus - 0x00000000 0x30 obj/brd/src/stm32f4xx_can.o - .debug_info 0x00000000 0xb89 obj/brd/src/stm32f4xx_can.o - .debug_abbrev 0x00000000 0x1f5 obj/brd/src/stm32f4xx_can.o - .debug_aranges - 0x00000000 0xe0 obj/brd/src/stm32f4xx_can.o - .debug_ranges 0x00000000 0xd0 obj/brd/src/stm32f4xx_can.o - .debug_line 0x00000000 0x4cd obj/brd/src/stm32f4xx_can.o - .debug_str 0x00000000 0x796 obj/brd/src/stm32f4xx_can.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_can.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_can.o - .debug_frame 0x00000000 0x2d4 obj/brd/src/stm32f4xx_can.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_dcmi.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_dcmi.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_DeInit - 0x00000000 0x3c obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_Init - 0x00000000 0x7c obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_StructInit - 0x00000000 0x3c obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_CROPConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_CROPCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_SetEmbeddedSynchroCodes - 0x00000000 0x38 obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_JPEGCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_Cmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_CaptureCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_ReadData - 0x00000000 0x18 obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_ITConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_GetFlagStatus - 0x00000000 0x64 obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_ClearFlag - 0x00000000 0x20 obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_GetITStatus - 0x00000000 0x40 obj/brd/src/stm32f4xx_dcmi.o - .text.DCMI_ClearITPendingBit - 0x00000000 0x20 obj/brd/src/stm32f4xx_dcmi.o - .debug_info 0x00000000 0x539 obj/brd/src/stm32f4xx_dcmi.o - .debug_abbrev 0x00000000 0x189 obj/brd/src/stm32f4xx_dcmi.o - .debug_aranges - 0x00000000 0x90 obj/brd/src/stm32f4xx_dcmi.o - .debug_ranges 0x00000000 0x80 obj/brd/src/stm32f4xx_dcmi.o - .debug_line 0x00000000 0x2a0 obj/brd/src/stm32f4xx_dcmi.o - .debug_str 0x00000000 0x531 obj/brd/src/stm32f4xx_dcmi.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_dcmi.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_dcmi.o - .debug_frame 0x00000000 0x1ac obj/brd/src/stm32f4xx_dcmi.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_rtc.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_rtc.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_DeInit - 0x00000000 0xf4 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_Init - 0x00000000 0x78 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_StructInit - 0x00000000 0x24 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_WriteProtectionCmd - 0x00000000 0x34 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_EnterInitMode - 0x00000000 0x74 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_ExitInitMode - 0x00000000 0x1c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_WaitForSynchro - 0x00000000 0x78 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_RefClockCmd - 0x00000000 0x68 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_BypassShadowCmd - 0x00000000 0x4c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_SetTime - 0x00000000 0x114 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_TimeStructInit - 0x00000000 0x2c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_GetTime - 0x00000000 0x9c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_GetSubSecond - 0x00000000 0x28 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_SetDate - 0x00000000 0x120 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_DateStructInit - 0x00000000 0x2c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_GetDate - 0x00000000 0x9c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_SetAlarm - 0x00000000 0x138 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_AlarmStructInit - 0x00000000 0x3c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_GetAlarm - 0x00000000 0xd8 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_AlarmCmd - 0x00000000 0x9c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_AlarmSubSecondConfig - 0x00000000 0x50 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_GetAlarmSubSecond - 0x00000000 0x3c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_WakeUpClockConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_SetWakeUpCounter - 0x00000000 0x30 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_GetWakeUpCounter - 0x00000000 0x18 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_WakeUpCmd - 0x00000000 0x94 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_DayLightSavingConfig - 0x00000000 0x48 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_GetStoreOperation - 0x00000000 0x1c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_OutputConfig - 0x00000000 0x48 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_CoarseCalibConfig - 0x00000000 0x50 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_CoarseCalibCmd - 0x00000000 0x68 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_CalibOutputCmd - 0x00000000 0x4c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_CalibOutputConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_SmoothCalibConfig - 0x00000000 0x84 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_TimeStampCmd - 0x00000000 0x60 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_GetTimeStamp - 0x00000000 0x114 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_GetTimeStampSubSecond - 0x00000000 0x18 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_TamperTriggerConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_TamperCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_TamperFilterConfig - 0x00000000 0x30 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_TamperSamplingFreqConfig - 0x00000000 0x30 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_TamperPinsPrechargeDuration - 0x00000000 0x30 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_TimeStampOnTamperDetectionCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_TamperPullUpCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_WriteBackupRegister - 0x00000000 0x30 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_ReadBackupRegister - 0x00000000 0x30 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_TamperPinSelection - 0x00000000 0x30 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_TimeStampPinSelection - 0x00000000 0x30 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_OutputTypeConfig - 0x00000000 0x30 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_SynchroShiftConfig - 0x00000000 0x9c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_ITConfig - 0x00000000 0x78 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_GetFlagStatus - 0x00000000 0x44 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_ClearFlag - 0x00000000 0x30 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_GetITStatus - 0x00000000 0x68 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_ClearITPendingBit - 0x00000000 0x38 obj/brd/src/stm32f4xx_rtc.o - .text.RTC_ByteToBcd2 - 0x00000000 0x3c obj/brd/src/stm32f4xx_rtc.o - .text.RTC_Bcd2ToByte - 0x00000000 0x38 obj/brd/src/stm32f4xx_rtc.o - .debug_info 0x00000000 0x10e2 obj/brd/src/stm32f4xx_rtc.o - .debug_abbrev 0x00000000 0x1b0 obj/brd/src/stm32f4xx_rtc.o - .debug_aranges - 0x00000000 0x1e0 obj/brd/src/stm32f4xx_rtc.o - .debug_ranges 0x00000000 0x1d0 obj/brd/src/stm32f4xx_rtc.o - .debug_line 0x00000000 0x776 obj/brd/src/stm32f4xx_rtc.o - .debug_str 0x00000000 0xbb4 obj/brd/src/stm32f4xx_rtc.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_rtc.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_rtc.o - .debug_frame 0x00000000 0x670 obj/brd/src/stm32f4xx_rtc.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_dma.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_dma.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_dma.o - .text.DMA_DeInit - 0x00000000 0x1a4 obj/brd/src/stm32f4xx_dma.o - .text.DMA_Init - 0x00000000 0xac obj/brd/src/stm32f4xx_dma.o - .text.DMA_StructInit - 0x00000000 0x6c obj/brd/src/stm32f4xx_dma.o - .text.DMA_Cmd 0x00000000 0x38 obj/brd/src/stm32f4xx_dma.o - .text.DMA_PeriphIncOffsetSizeConfig - 0x00000000 0x34 obj/brd/src/stm32f4xx_dma.o - .text.DMA_FlowControllerConfig - 0x00000000 0x34 obj/brd/src/stm32f4xx_dma.o - .text.DMA_SetCurrDataCounter - 0x00000000 0x1c obj/brd/src/stm32f4xx_dma.o - .text.DMA_GetCurrDataCounter - 0x00000000 0x1c obj/brd/src/stm32f4xx_dma.o - .text.DMA_DoubleBufferModeConfig - 0x00000000 0x3c obj/brd/src/stm32f4xx_dma.o - .text.DMA_DoubleBufferModeCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_dma.o - .text.DMA_MemoryTargetConfig - 0x00000000 0x2c obj/brd/src/stm32f4xx_dma.o - .text.DMA_GetCurrentMemoryTarget - 0x00000000 0x30 obj/brd/src/stm32f4xx_dma.o - .text.DMA_GetCmdStatus - 0x00000000 0x30 obj/brd/src/stm32f4xx_dma.o - .text.DMA_GetFIFOStatus - 0x00000000 0x24 obj/brd/src/stm32f4xx_dma.o - .text.DMA_GetFlagStatus - 0x00000000 0x78 obj/brd/src/stm32f4xx_dma.o - .text.DMA_ClearFlag - 0x00000000 0x5c obj/brd/src/stm32f4xx_dma.o - .text.DMA_ITConfig - 0x00000000 0x74 obj/brd/src/stm32f4xx_dma.o - .text.DMA_GetITStatus - 0x00000000 0xb0 obj/brd/src/stm32f4xx_dma.o - .text.DMA_ClearITPendingBit - 0x00000000 0x5c obj/brd/src/stm32f4xx_dma.o - .debug_info 0x00000000 0x73c obj/brd/src/stm32f4xx_dma.o - .debug_abbrev 0x00000000 0x157 obj/brd/src/stm32f4xx_dma.o - .debug_aranges - 0x00000000 0xb0 obj/brd/src/stm32f4xx_dma.o - .debug_ranges 0x00000000 0xa0 obj/brd/src/stm32f4xx_dma.o - .debug_line 0x00000000 0x33d obj/brd/src/stm32f4xx_dma.o - .debug_str 0x00000000 0x5ac obj/brd/src/stm32f4xx_dma.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_dma.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_dma.o - .debug_frame 0x00000000 0x224 obj/brd/src/stm32f4xx_dma.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_fsmc.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_fsmc.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_NORSRAMDeInit - 0x00000000 0x58 obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_NORSRAMInit - 0x00000000 0x134 obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_NORSRAMStructInit - 0x00000000 0xd4 obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_NORSRAMCmd - 0x00000000 0x54 obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_NANDDeInit - 0x00000000 0x5c obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_NANDInit - 0x00000000 0xcc obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_NANDStructInit - 0x00000000 0x7c obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_NANDCmd - 0x00000000 0x6c obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_NANDECCCmd - 0x00000000 0x6c obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_GetECC - 0x00000000 0x38 obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_PCCARDDeInit - 0x00000000 0x34 obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_PCCARDInit - 0x00000000 0xac obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_PCCARDStructInit - 0x00000000 0x84 obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_PCCARDCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_ITConfig - 0x00000000 0xa0 obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_GetFlagStatus - 0x00000000 0x64 obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_ClearFlag - 0x00000000 0x5c obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_GetITStatus - 0x00000000 0x80 obj/brd/src/stm32f4xx_fsmc.o - .text.FSMC_ClearITPendingBit - 0x00000000 0x64 obj/brd/src/stm32f4xx_fsmc.o - .debug_info 0x00000000 0x8f8 obj/brd/src/stm32f4xx_fsmc.o - .debug_abbrev 0x00000000 0x172 obj/brd/src/stm32f4xx_fsmc.o - .debug_aranges - 0x00000000 0xb0 obj/brd/src/stm32f4xx_fsmc.o - .debug_ranges 0x00000000 0xa0 obj/brd/src/stm32f4xx_fsmc.o - .debug_line 0x00000000 0x3b5 obj/brd/src/stm32f4xx_fsmc.o - .debug_str 0x00000000 0x7f4 obj/brd/src/stm32f4xx_fsmc.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_fsmc.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_fsmc.o - .debug_frame 0x00000000 0x220 obj/brd/src/stm32f4xx_fsmc.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_dac.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_dac.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_dac.o - .text.DAC_DeInit - 0x00000000 0x1c obj/brd/src/stm32f4xx_dac.o - .text.DAC_Init - 0x00000000 0x64 obj/brd/src/stm32f4xx_dac.o - .text.DAC_StructInit - 0x00000000 0x2c obj/brd/src/stm32f4xx_dac.o - .text.DAC_Cmd 0x00000000 0x48 obj/brd/src/stm32f4xx_dac.o - .text.DAC_SoftwareTriggerCmd - 0x00000000 0x4c obj/brd/src/stm32f4xx_dac.o - .text.DAC_DualSoftwareTriggerCmd - 0x00000000 0x38 obj/brd/src/stm32f4xx_dac.o - .text.DAC_WaveGenerationCmd - 0x00000000 0x4c obj/brd/src/stm32f4xx_dac.o - .text.DAC_SetChannel1Data - 0x00000000 0x34 obj/brd/src/stm32f4xx_dac.o - .text.DAC_SetChannel2Data - 0x00000000 0x34 obj/brd/src/stm32f4xx_dac.o - .text.DAC_SetDualChannelData - 0x00000000 0x58 obj/brd/src/stm32f4xx_dac.o - .text.DAC_GetDataOutputValue - 0x00000000 0x34 obj/brd/src/stm32f4xx_dac.o - .text.DAC_DMACmd - 0x00000000 0x4c obj/brd/src/stm32f4xx_dac.o - .text.DAC_ITConfig - 0x00000000 0x4c obj/brd/src/stm32f4xx_dac.o - .text.DAC_GetFlagStatus - 0x00000000 0x3c obj/brd/src/stm32f4xx_dac.o - .text.DAC_ClearFlag - 0x00000000 0x24 obj/brd/src/stm32f4xx_dac.o - .text.DAC_GetITStatus - 0x00000000 0x58 obj/brd/src/stm32f4xx_dac.o - .text.DAC_ClearITPendingBit - 0x00000000 0x24 obj/brd/src/stm32f4xx_dac.o - .debug_info 0x00000000 0x62a obj/brd/src/stm32f4xx_dac.o - .debug_abbrev 0x00000000 0x17e obj/brd/src/stm32f4xx_dac.o - .debug_aranges - 0x00000000 0xa0 obj/brd/src/stm32f4xx_dac.o - .debug_ranges 0x00000000 0x90 obj/brd/src/stm32f4xx_dac.o - .debug_line 0x00000000 0x2b9 obj/brd/src/stm32f4xx_dac.o - .debug_str 0x00000000 0x4ab obj/brd/src/stm32f4xx_dac.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_dac.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_dac.o - .debug_frame 0x00000000 0x1ec obj/brd/src/stm32f4xx_dac.o - .text 0x00000000 0x0 obj/brd/src/misc.o - .data 0x00000000 0x0 obj/brd/src/misc.o - .bss 0x00000000 0x0 obj/brd/src/misc.o - .text.NVIC_SetVectorTable - 0x00000000 0x2c obj/brd/src/misc.o - .text.NVIC_SystemLPConfig - 0x00000000 0x40 obj/brd/src/misc.o - .text.SysTick_CLKSourceConfig - 0x00000000 0x38 obj/brd/src/misc.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_crc.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_crc.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_crc.o - .text.CRC_ResetDR - 0x00000000 0x18 obj/brd/src/stm32f4xx_crc.o - .text.CRC_CalcCRC - 0x00000000 0x24 obj/brd/src/stm32f4xx_crc.o - .text.CRC_CalcBlockCRC - 0x00000000 0x44 obj/brd/src/stm32f4xx_crc.o - .text.CRC_GetCRC - 0x00000000 0x18 obj/brd/src/stm32f4xx_crc.o - .text.CRC_SetIDRegister - 0x00000000 0x20 obj/brd/src/stm32f4xx_crc.o - .text.CRC_GetIDRegister - 0x00000000 0x18 obj/brd/src/stm32f4xx_crc.o - .debug_info 0x00000000 0x221 obj/brd/src/stm32f4xx_crc.o - .debug_abbrev 0x00000000 0x116 obj/brd/src/stm32f4xx_crc.o - .debug_aranges - 0x00000000 0x48 obj/brd/src/stm32f4xx_crc.o - .debug_ranges 0x00000000 0x38 obj/brd/src/stm32f4xx_crc.o - .debug_line 0x00000000 0x1ad obj/brd/src/stm32f4xx_crc.o - .debug_str 0x00000000 0x2c9 obj/brd/src/stm32f4xx_crc.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_crc.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_crc.o - .debug_frame 0x00000000 0xac obj/brd/src/stm32f4xx_crc.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_usart.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_usart.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_usart.o - .text.USART_DeInit - 0x00000000 0x114 obj/brd/src/stm32f4xx_usart.o - .text.USART_StructInit - 0x00000000 0x38 obj/brd/src/stm32f4xx_usart.o - .text.USART_ClockInit - 0x00000000 0x54 obj/brd/src/stm32f4xx_usart.o - .text.USART_ClockStructInit - 0x00000000 0x2c obj/brd/src/stm32f4xx_usart.o - .text.USART_SetPrescaler - 0x00000000 0x38 obj/brd/src/stm32f4xx_usart.o - .text.USART_OverSampling8Cmd - 0x00000000 0x44 obj/brd/src/stm32f4xx_usart.o - .text.USART_OneBitMethodCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_usart.o - .text.USART_SetAddress - 0x00000000 0x38 obj/brd/src/stm32f4xx_usart.o - .text.USART_ReceiverWakeUpCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_usart.o - .text.USART_WakeUpConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_usart.o - .text.USART_LINBreakDetectLengthConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_usart.o - .text.USART_LINCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_usart.o - .text.USART_SendBreak - 0x00000000 0x24 obj/brd/src/stm32f4xx_usart.o - .text.USART_HalfDuplexCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_usart.o - .text.USART_SetGuardTime - 0x00000000 0x3c obj/brd/src/stm32f4xx_usart.o - .text.USART_SmartCardCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_usart.o - .text.USART_SmartCardNACKCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_usart.o - .text.USART_IrDAConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_usart.o - .text.USART_IrDACmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_usart.o - .text.USART_DMACmd - 0x00000000 0x48 obj/brd/src/stm32f4xx_usart.o - .text.USART_ClearFlag - 0x00000000 0x20 obj/brd/src/stm32f4xx_usart.o - .text.USART_GetITStatus - 0x00000000 0xb0 obj/brd/src/stm32f4xx_usart.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_wwdg.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_wwdg.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_wwdg.o - .text.WWDG_DeInit - 0x00000000 0x1c obj/brd/src/stm32f4xx_wwdg.o - .text.WWDG_SetPrescaler - 0x00000000 0x34 obj/brd/src/stm32f4xx_wwdg.o - .text.WWDG_SetWindowValue - 0x00000000 0x38 obj/brd/src/stm32f4xx_wwdg.o - .text.WWDG_EnableIT - 0x00000000 0x18 obj/brd/src/stm32f4xx_wwdg.o - .text.WWDG_SetCounter - 0x00000000 0x24 obj/brd/src/stm32f4xx_wwdg.o - .text.WWDG_Enable - 0x00000000 0x24 obj/brd/src/stm32f4xx_wwdg.o - .text.WWDG_GetFlagStatus - 0x00000000 0x30 obj/brd/src/stm32f4xx_wwdg.o - .text.WWDG_ClearFlag - 0x00000000 0x18 obj/brd/src/stm32f4xx_wwdg.o - .debug_info 0x00000000 0x247 obj/brd/src/stm32f4xx_wwdg.o - .debug_abbrev 0x00000000 0x142 obj/brd/src/stm32f4xx_wwdg.o - .debug_aranges - 0x00000000 0x58 obj/brd/src/stm32f4xx_wwdg.o - .debug_ranges 0x00000000 0x48 obj/brd/src/stm32f4xx_wwdg.o - .debug_line 0x00000000 0x1ca obj/brd/src/stm32f4xx_wwdg.o - .debug_str 0x00000000 0x2e3 obj/brd/src/stm32f4xx_wwdg.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_wwdg.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_wwdg.o - .debug_frame 0x00000000 0xe8 obj/brd/src/stm32f4xx_wwdg.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_rcc.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_rcc.o - .text.RCC_HSEConfig - 0x00000000 0x24 obj/brd/src/stm32f4xx_rcc.o - .text.RCC_WaitForHSEStartUp - 0x00000000 0x50 obj/brd/src/stm32f4xx_rcc.o - .text.RCC_AdjustHSICalibrationValue - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_LSEConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_rcc.o - .text.RCC_LSICmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_rcc.o - .text.RCC_PLLI2SConfig - 0x00000000 0x28 obj/brd/src/stm32f4xx_rcc.o - .text.RCC_PLLI2SCmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_rcc.o - .text.RCC_ClockSecuritySystemCmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_rcc.o - .text.RCC_MCO1Config - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_MCO2Config - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_RTCCLKConfig - 0x00000000 0x5c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_RTCCLKCmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_rcc.o - .text.RCC_BackupResetCmd - 0x00000000 0x20 obj/brd/src/stm32f4xx_rcc.o - .text.RCC_I2SCLKConfig - 0x00000000 0x1c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_TIMCLKPresConfig - 0x00000000 0x1c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_AHB2PeriphClockCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_AHB3PeriphClockCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_AHB1PeriphResetCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_AHB2PeriphResetCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_AHB3PeriphResetCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_APB1PeriphResetCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_APB2PeriphResetCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_AHB1PeriphClockLPModeCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_AHB2PeriphClockLPModeCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_AHB3PeriphClockLPModeCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_APB1PeriphClockLPModeCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_APB2PeriphClockLPModeCmd - 0x00000000 0x3c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_ITConfig - 0x00000000 0x48 obj/brd/src/stm32f4xx_rcc.o - .text.RCC_ClearFlag - 0x00000000 0x1c obj/brd/src/stm32f4xx_rcc.o - .text.RCC_GetITStatus - 0x00000000 0x38 obj/brd/src/stm32f4xx_rcc.o - .text.RCC_ClearITPendingBit - 0x00000000 0x20 obj/brd/src/stm32f4xx_rcc.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_i2c.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_i2c.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_DeInit - 0x00000000 0x74 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_Init - 0x00000000 0x184 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_StructInit - 0x00000000 0x3c obj/brd/src/stm32f4xx_i2c.o - .text.I2C_Cmd 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_AnalogFilterCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_DigitalFilterConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_GenerateSTART - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_OwnAddress2Config - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_DualAddressCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_GeneralCallCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_SoftwareResetCmd - 0x00000000 0x44 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_StretchClockCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_FastModeDutyCycleConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_NACKPositionConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_SMBusAlertConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_ARPCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_TransmitPEC - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_PECPositionConfig - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_CalculatePEC - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_GetPEC - 0x00000000 0x20 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_DMACmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_DMALastTransferCmd - 0x00000000 0x40 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_ITConfig - 0x00000000 0x48 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_CheckEvent - 0x00000000 0x60 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_GetLastEvent - 0x00000000 0x44 obj/brd/src/stm32f4xx_i2c.o - .text.I2C_GetITStatus - 0x00000000 0x5c obj/brd/src/stm32f4xx_i2c.o - .text.I2C_ClearITPendingBit - 0x00000000 0x2c obj/brd/src/stm32f4xx_i2c.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_cryp_aes.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_cryp_aes.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_cryp_aes.o - .text.CRYP_AES_ECB - 0x00000000 0x464 obj/brd/src/stm32f4xx_cryp_aes.o - .text.CRYP_AES_CBC - 0x00000000 0x55c obj/brd/src/stm32f4xx_cryp_aes.o - .text.CRYP_AES_CTR - 0x00000000 0x4f4 obj/brd/src/stm32f4xx_cryp_aes.o - .text.CRYP_AES_GCM - 0x00000000 0xc08 obj/brd/src/stm32f4xx_cryp_aes.o - .text.CRYP_AES_CCM - 0x00000000 0xea4 obj/brd/src/stm32f4xx_cryp_aes.o - .debug_info 0x00000000 0x1f0a obj/brd/src/stm32f4xx_cryp_aes.o - .debug_abbrev 0x00000000 0x1ea obj/brd/src/stm32f4xx_cryp_aes.o - .debug_aranges - 0x00000000 0x40 obj/brd/src/stm32f4xx_cryp_aes.o - .debug_ranges 0x00000000 0x30 obj/brd/src/stm32f4xx_cryp_aes.o - .debug_line 0x00000000 0xcb7 obj/brd/src/stm32f4xx_cryp_aes.o - .debug_str 0x00000000 0x518 obj/brd/src/stm32f4xx_cryp_aes.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_cryp_aes.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_cryp_aes.o - .debug_frame 0x00000000 0xbc obj/brd/src/stm32f4xx_cryp_aes.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_rng.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_rng.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_rng.o - .text.RNG_DeInit - 0x00000000 0x18 obj/brd/src/stm32f4xx_rng.o - .text.RNG_Cmd 0x00000000 0x38 obj/brd/src/stm32f4xx_rng.o - .text.RNG_GetRandomNumber - 0x00000000 0x18 obj/brd/src/stm32f4xx_rng.o - .text.RNG_ITConfig - 0x00000000 0x38 obj/brd/src/stm32f4xx_rng.o - .text.RNG_GetFlagStatus - 0x00000000 0x38 obj/brd/src/stm32f4xx_rng.o - .text.RNG_ClearFlag - 0x00000000 0x24 obj/brd/src/stm32f4xx_rng.o - .text.RNG_GetITStatus - 0x00000000 0x38 obj/brd/src/stm32f4xx_rng.o - .text.RNG_ClearITPendingBit - 0x00000000 0x24 obj/brd/src/stm32f4xx_rng.o - .debug_info 0x00000000 0x282 obj/brd/src/stm32f4xx_rng.o - .debug_abbrev 0x00000000 0x146 obj/brd/src/stm32f4xx_rng.o - .debug_aranges - 0x00000000 0x58 obj/brd/src/stm32f4xx_rng.o - .debug_ranges 0x00000000 0x48 obj/brd/src/stm32f4xx_rng.o - .debug_line 0x00000000 0x1cb obj/brd/src/stm32f4xx_rng.o - .debug_str 0x00000000 0x2e5 obj/brd/src/stm32f4xx_rng.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_rng.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_rng.o - .debug_frame 0x00000000 0xec obj/brd/src/stm32f4xx_rng.o - .text 0x00000000 0x0 obj/brd/src/stm32f4xx_cryp_des.o - .data 0x00000000 0x0 obj/brd/src/stm32f4xx_cryp_des.o - .bss 0x00000000 0x0 obj/brd/src/stm32f4xx_cryp_des.o - .text.CRYP_DES_ECB - 0x00000000 0x144 obj/brd/src/stm32f4xx_cryp_des.o - .text.CRYP_DES_CBC - 0x00000000 0x1a0 obj/brd/src/stm32f4xx_cryp_des.o - .debug_info 0x00000000 0x544 obj/brd/src/stm32f4xx_cryp_des.o - .debug_abbrev 0x00000000 0x160 obj/brd/src/stm32f4xx_cryp_des.o - .debug_aranges - 0x00000000 0x28 obj/brd/src/stm32f4xx_cryp_des.o - .debug_ranges 0x00000000 0x18 obj/brd/src/stm32f4xx_cryp_des.o - .debug_line 0x00000000 0x26d obj/brd/src/stm32f4xx_cryp_des.o - .debug_str 0x00000000 0x42a obj/brd/src/stm32f4xx_cryp_des.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_cryp_des.o - .ARM.attributes - 0x00000000 0x39 obj/brd/src/stm32f4xx_cryp_des.o - .debug_frame 0x00000000 0x50 obj/brd/src/stm32f4xx_cryp_des.o - .text 0x00000000 0x0 obj/brd/discovery/src/stm32f4_discovery.o - .data 0x00000000 0x14 obj/brd/discovery/src/stm32f4_discovery.o - .bss 0x00000000 0x0 obj/brd/discovery/src/stm32f4_discovery.o - .rodata 0x00000000 0x30 obj/brd/discovery/src/stm32f4_discovery.o - .text.STM_EVAL_LEDInit - 0x00000000 0x5c obj/brd/discovery/src/stm32f4_discovery.o - .text.STM_EVAL_LEDOn - 0x00000000 0x30 obj/brd/discovery/src/stm32f4_discovery.o - .text.STM_EVAL_LEDOff - 0x00000000 0x30 obj/brd/discovery/src/stm32f4_discovery.o - .text.STM_EVAL_LEDToggle - 0x00000000 0x3c obj/brd/discovery/src/stm32f4_discovery.o - .text.STM_EVAL_PBInit - 0x00000000 0x94 obj/brd/discovery/src/stm32f4_discovery.o - .text.STM_EVAL_PBGetState - 0x00000000 0x2c obj/brd/discovery/src/stm32f4_discovery.o - .debug_info 0x00000000 0x89b obj/brd/discovery/src/stm32f4_discovery.o - .debug_abbrev 0x00000000 0x185 obj/brd/discovery/src/stm32f4_discovery.o - .debug_aranges - 0x00000000 0x48 obj/brd/discovery/src/stm32f4_discovery.o - .debug_ranges 0x00000000 0x38 obj/brd/discovery/src/stm32f4_discovery.o - .debug_line 0x00000000 0x21f obj/brd/discovery/src/stm32f4_discovery.o - .debug_str 0x00000000 0xbb5 obj/brd/discovery/src/stm32f4_discovery.o - .comment 0x00000000 0x71 obj/brd/discovery/src/stm32f4_discovery.o - .ARM.attributes - 0x00000000 0x39 obj/brd/discovery/src/stm32f4_discovery.o - .debug_frame 0x00000000 0xc4 obj/brd/discovery/src/stm32f4_discovery.o - COMMON 0x00000000 0x4 obj/brd/discovery/src/stm32f4_discovery.o - .text 0x00000000 0x0 obj/brd/startup/system_stm32f4xx.o - .bss 0x00000000 0x0 obj/brd/startup/system_stm32f4xx.o - .text 0x00000000 0x0 obj/brd/startup/RCC_Configuration.o - .bss 0x00000000 0x0 obj/brd/startup/RCC_Configuration.o - .text 0x00000000 0x0 obj/brd/startup/stm32f4xx_it.o - .data 0x00000000 0x0 obj/brd/startup/stm32f4xx_it.o - .bss 0x00000000 0x0 obj/brd/startup/stm32f4xx_it.o - .text 0x00000000 0x0 obj/brd/startup/startup_stm32f4xx.o - .data 0x00000000 0x0 obj/brd/startup/startup_stm32f4xx.o - .bss 0x00000000 0x0 obj/brd/startup/startup_stm32f4xx.o - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-atoi.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-atoi.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-atoi.o) - .text.atoi 0x00000000 0x8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-atoi.o) - .text._atoi_r 0x00000000 0x8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-atoi.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-atoi.o) - .debug_frame 0x00000000 0x30 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-atoi.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcmp.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcmp.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcmp.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcpy-stub.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcpy-stub.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcpy-stub.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memset.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memset.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memset.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcpy.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcpy.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcpy.o) - .text.strcpy 0x00000000 0x10 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcpy.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcpy.o) - .debug_frame 0x00000000 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcpy.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcspn.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcspn.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcspn.o) - .text.strcspn 0x00000000 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcspn.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcspn.o) - .debug_frame 0x00000000 0x2c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcspn.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .text.match 0x00000000 0x28 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .text.sulp 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .text._strtod_r - 0x00000000 0xc48 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .text.strtod 0x00000000 0x14 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .text.strtof 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .rodata.tinytens - 0x00000000 0x28 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .rodata.fpi.5246 - 0x00000000 0x14 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .rodata.str1.1 - 0x00000000 0xc /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .rodata.fpinan.5282 - 0x00000000 0x14 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .debug_frame 0x00000000 0xa0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtod.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok.o) - .text.strtok 0x00000000 0x64 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok.o) - .debug_frame 0x00000000 0x30 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok_r.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok_r.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok_r.o) - .text.__strtok_r - 0x00000000 0x56 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok_r.o) - .text.strtok_r - 0x00000000 0x6 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok_r.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok_r.o) - .debug_frame 0x00000000 0x40 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtok_r.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtol.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtol.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtol.o) - .text._strtol_r - 0x00000000 0x104 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtol.o) - .text.strtol 0x00000000 0x1c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtol.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtol.o) - .debug_frame 0x00000000 0x54 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strtol.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-ctype_.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-ctype_.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-ctype_.o) - .data.__ctype_ptr__ - 0x00000000 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-ctype_.o) - .rodata._ctype_ - 0x00000000 0x101 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-ctype_.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-ctype_.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-gethex.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-gethex.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-gethex.o) - .text.rshift 0x00000000 0x6a /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-gethex.o) - .text.__hexdig_fun - 0x00000000 0x2a /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-gethex.o) - .text.__gethex - 0x00000000 0x45e /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-gethex.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-gethex.o) - .debug_frame 0x00000000 0x68 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-gethex.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-hexnan.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-hexnan.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-hexnan.o) - .text.L_shift 0x00000000 0x26 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-hexnan.o) - .text.__hexnan - 0x00000000 0x120 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-hexnan.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-hexnan.o) - .debug_frame 0x00000000 0x54 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-gdtoa-hexnan.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-impure.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-impure.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-impure.o) - .rodata._global_impure_ptr - 0x00000000 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-impure.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .text._setlocale_r - 0x00000000 0x40 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .text.__locale_charset - 0x00000000 0x8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .text.__locale_mb_cur_max - 0x00000000 0xc /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .text.__locale_msgcharset - 0x00000000 0x8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .text.__locale_cjk_lang - 0x00000000 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .text._localeconv_r - 0x00000000 0x8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .text.setlocale - 0x00000000 0x14 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .text.localeconv - 0x00000000 0x8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .data.lc_message_charset - 0x00000000 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .bss._PathLocale - 0x00000000 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .bss.__nlocale_changed - 0x00000000 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .bss.__mlocale_changed - 0x00000000 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .data.lconv 0x00000000 0x38 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .rodata.str1.1 - 0x00000000 0xb /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .data.lc_ctype_charset - 0x00000000 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .data.__mb_cur_max - 0x00000000 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .debug_frame 0x00000000 0x98 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-locale.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-malloc.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-malloc.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-malloc.o) - .text.malloc 0x00000000 0x10 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-malloc.o) - .text.free 0x00000000 0x10 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-malloc.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-malloc.o) - .debug_frame 0x00000000 0x30 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-malloc.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text._Balloc 0x00000000 0x6a /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text._Bfree 0x00000000 0x2e /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__multadd - 0x00000000 0x74 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__s2b 0x00000000 0x84 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__hi0bits - 0x00000000 0x40 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__lo0bits - 0x00000000 0x5a /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__i2b 0x00000000 0x12 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__multiply - 0x00000000 0x130 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__pow5mult - 0x00000000 0x9c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__lshift - 0x00000000 0xa6 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__mcmp 0x00000000 0x3a /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__mdiff 0x00000000 0xbc /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__ulp 0x00000000 0x4a /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__b2d 0x00000000 0xa6 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__d2b 0x00000000 0xa0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__ratio 0x00000000 0x4e /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text._mprec_log10 - 0x00000000 0x38 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__copybits - 0x00000000 0x32 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text.__any_on - 0x00000000 0x48 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .rodata.__mprec_tens - 0x00000000 0xc8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .rodata.__mprec_bigtens - 0x00000000 0x28 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .rodata.__mprec_tinytens - 0x00000000 0x28 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .rodata.p05.5281 - 0x00000000 0xc /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .debug_frame 0x00000000 0x230 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-mprec.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-callocr.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-callocr.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-callocr.o) - .text._calloc_r - 0x00000000 0x1c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-callocr.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-callocr.o) - .debug_frame 0x00000000 0x2c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-callocr.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-freer.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-freer.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-freer.o) - .text._free_r 0x00000000 0x88 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-freer.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-freer.o) - .debug_frame 0x00000000 0x2c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-freer.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-mallocr.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-mallocr.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-mallocr.o) - .text._malloc_r - 0x00000000 0xa8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-mallocr.o) - .bss.__malloc_sbrk_start - 0x00000000 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-mallocr.o) - .bss.__malloc_free_list - 0x00000000 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-mallocr.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-mallocr.o) - .debug_frame 0x00000000 0x2c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-nano-mallocr.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-s_fpclassify.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-s_fpclassify.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-s_fpclassify.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sbrkr.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sbrkr.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sbrkr.o) - .text._sbrk_r 0x00000000 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sbrkr.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sbrkr.o) - .debug_frame 0x00000000 0x2c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sbrkr.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sf_nan.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sf_nan.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sf_nan.o) - .text.nanf 0x00000000 0xc /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sf_nan.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sf_nan.o) - .debug_frame 0x00000000 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-sf_nan.o) - .text 0x00000000 0x14 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcmp.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcmp.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcmp.o) - .ARM.attributes - 0x00000000 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strcmp.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strlen.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strlen.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strlen.o) - .text.strlen 0x00000000 0x10 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strlen.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strlen.o) - .debug_frame 0x00000000 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strlen.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strncmp.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strncmp.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strncmp.o) - .text.strncmp 0x00000000 0x2e /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strncmp.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strncmp.o) - .debug_frame 0x00000000 0x2c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-strncmp.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-reent.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-reent.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-reent.o) - .text.cleanup_glue - 0x00000000 0x1a /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-reent.o) - .text._reclaim_reent - 0x00000000 0xbc /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-reent.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-reent.o) - .debug_frame 0x00000000 0x48 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-reent.o) - COMMON 0x00000000 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-reent.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_round.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_round.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_round.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_sin.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_sin.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_sin.o) - .text.sin 0x00000000 0xb0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_sin.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_sin.o) - .debug_frame 0x00000000 0x28 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_sin.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_cos.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_cos.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_cos.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_sin.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_sin.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_sin.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_log10.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_log10.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_log10.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_pow.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_pow.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_pow.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_sqrt.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_sqrt.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_sqrt.o) - .text.sqrt 0x00000000 0xbc /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_sqrt.o) - .rodata.str1.4 - 0x00000000 0x8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_sqrt.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_sqrt.o) - .debug_frame 0x00000000 0x38 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_sqrt.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log10.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log10.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log10.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_pow.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_pow.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_pow.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_rem_pio2.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_rem_pio2.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_rem_pio2.o) - .text.__ieee754_rem_pio2 - 0x00000000 0x450 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_rem_pio2.o) - .rodata.npio2_hw - 0x00000000 0x80 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_rem_pio2.o) - .rodata.two_over_pi - 0x00000000 0x108 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_rem_pio2.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_rem_pio2.o) - .debug_frame 0x00000000 0x38 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_rem_pio2.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_sqrt.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_sqrt.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_sqrt.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-ef_rem_pio2.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-ef_rem_pio2.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-ef_rem_pio2.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_cos.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_cos.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_cos.o) - .text.__kernel_cos - 0x00000000 0x280 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_cos.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_cos.o) - .debug_frame 0x00000000 0x40 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_cos.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_rem_pio2.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_rem_pio2.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_rem_pio2.o) - .text.__kernel_rem_pio2 - 0x00000000 0x798 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_rem_pio2.o) - .rodata.init_jk - 0x00000000 0x10 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_rem_pio2.o) - .rodata.PIo2 0x00000000 0x40 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_rem_pio2.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_rem_pio2.o) - .debug_frame 0x00000000 0x3c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_rem_pio2.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_sin.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_sin.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_sin.o) - .text.__kernel_sin - 0x00000000 0x190 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_sin.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_sin.o) - .debug_frame 0x00000000 0x40 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-k_sin.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_cos.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_cos.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_cos.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_rem_pio2.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_rem_pio2.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_rem_pio2.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_sin.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_sin.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_sin.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_fabs.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_fabs.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_fabs.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_finite.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_finite.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_finite.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_floor.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_floor.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_floor.o) - .text.floor 0x00000000 0x138 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_floor.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_floor.o) - .debug_frame 0x00000000 0x38 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_floor.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_lib_ver.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_lib_ver.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_lib_ver.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_matherr.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_matherr.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_matherr.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_nan.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_nan.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_nan.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_rint.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_rint.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_rint.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_scalbn.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_scalbn.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_scalbn.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_fabs.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_fabs.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_fabs.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_floor.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_floor.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_floor.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_scalbn.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_scalbn.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_scalbn.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_copysign.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_copysign.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_copysign.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_copysign.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_copysign.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_copysign.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_addsubdf3.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_addsubdf3.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_muldivdf3.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_muldivdf3.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_cmpdf2.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_cmpdf2.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_fixdfsi.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_fixdfsi.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_fixunsdfsi.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_fixunsdfsi.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_truncdfsf2.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_truncdfsf2.o) - .text 0x00000000 0x21c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_addsubsf3.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_addsubsf3.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_addsubsf3.o) - .ARM.attributes - 0x00000000 0x22 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_addsubsf3.o) - .text 0x00000000 0x38 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_aeabi_ldivmod.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_aeabi_ldivmod.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_aeabi_ldivmod.o) - .ARM.attributes - 0x00000000 0x22 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_aeabi_ldivmod.o) - .text 0x00000000 0x2c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_fixsfdi.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_fixsfdi.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_fixsfdi.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_fixsfdi.o) - .debug_frame 0x00000000 0x28 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_fixsfdi.o) - .text 0x00000000 0x48 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_fixunssfdi.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_fixunssfdi.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_fixunssfdi.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_fixunssfdi.o) - .debug_frame 0x00000000 0x2c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_fixunssfdi.o) - .text 0x00000000 0x60 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(bpabi.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(bpabi.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(bpabi.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(bpabi.o) - .debug_frame 0x00000000 0x50 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(bpabi.o) - .text 0x00000000 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_dvmd_tls.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_dvmd_tls.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_dvmd_tls.o) - .ARM.attributes - 0x00000000 0x22 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_dvmd_tls.o) - .text 0x00000000 0x298 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_divdi3.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_divdi3.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_divdi3.o) - .ARM.extab 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_divdi3.o) - .ARM.exidx 0x00000000 0x8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_divdi3.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_divdi3.o) - .debug_frame 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_divdi3.o) - .text 0x00000000 0x284 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_udivdi3.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_udivdi3.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_udivdi3.o) - .ARM.extab 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_udivdi3.o) - .ARM.exidx 0x00000000 0x8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_udivdi3.o) - .ARM.attributes - 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_udivdi3.o) - .debug_frame 0x00000000 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_udivdi3.o) - .text 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-errno.o) - .data 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-errno.o) - .bss 0x00000000 0x0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-errno.o) - -Memory Configuration - -Name Origin Length Attributes -rom 0x08000000 0x00100000 xr -ram 0x20000000 0x00020000 xrw -ram1 0x10000000 0x00010000 xrw -*default* 0x00000000 0xffffffff - -Linker script and memory map - -LOAD obj/app/rx24fctrl/src/rx24fctrl.o -LOAD obj/app/main.o -LOAD obj/app/odom/src/odom.o -LOAD obj/app/app.o -LOAD obj/app/stm/src/stm.o -LOAD obj/app/vehspdctrl/src/vehspdctrl.o -LOAD obj/app/stangproc/src/stangproc.o -LOAD obj/app/stangsel/src/stangsel.o -LOAD obj/app/mavlink/src/mavlink.o -LOAD obj/app/latctrl/src/latctrl.o -LOAD obj/dev/servo/src/servo.o -LOAD obj/dev/mpu9150/src/mpu9150.o -LOAD obj/dev/led/src/led.o -LOAD obj/dev/hcsr04/src/hcsr04.o -LOAD obj/dev/srf02/src/srf02.o -LOAD obj/dev/wenc/src/wenc.o -LOAD obj/dev/sfr02_t/src/srf02_t.o -LOAD obj/dev/rcrec/src/rcrec.o -LOAD obj/dev/rx24f/src/rx24f.o -LOAD obj/dev/eeprom_25lc080a/src/eeprom_25LC080A.o -LOAD obj/sys/sched/src/scheduler.o -LOAD obj/sys/paramsys/src/paramp.o -LOAD obj/sys/paramsys/src/paramsys.o -LOAD obj/sys/paramsys/src/paramlist.o -LOAD obj/sys/matlab/src/rt_nonfinite.o -LOAD obj/sys/matlab/src/rtGetNaN.o -LOAD obj/sys/matlab/src/rt_look.o -LOAD obj/sys/matlab/src/rtGetInf.o -LOAD obj/sys/systime/src/systime.o -LOAD obj/sys/errorhandler/src/errorList.o -LOAD obj/sys/errorhandler/src/errorHandler.o -LOAD obj/sys/algo/src/fir.o -LOAD obj/sys/algo/src/ramp.o -LOAD obj/sys/algo/src/pid.o -LOAD obj/sys/algo/src/pt1.o -LOAD obj/sys/terminal/src/terminal.o -LOAD obj/sys/util/src/ringbuf.o -LOAD obj/sys/util/src/io.o -LOAD obj/sys/util/src/stubs.o -LOAD obj/sys/sigp/src/sigp.o -LOAD obj/per/src/eict.o -LOAD obj/per/src/clocksync.o -LOAD obj/per/src/adc.o -LOAD obj/per/src/i2c2.o -LOAD obj/per/src/i2c.o -LOAD obj/per/src/irq.o -LOAD obj/per/src/uart.o -LOAD obj/per/src/spi.o -LOAD obj/per/src/gpio.o -LOAD obj/per/src/pwm.o -LOAD obj/per/src/ict.o -LOAD obj/brd/src/stm32f4xx_cryp.o -LOAD obj/brd/src/stm32f4xx_hash_md5.o -LOAD obj/brd/src/stm32f4xx_adc.o -LOAD obj/brd/src/stm32f4xx_tim.o -LOAD obj/brd/src/stm32f4xx_cryp_tdes.o -LOAD obj/brd/src/stm32f4xx_flash.o -LOAD obj/brd/src/stm32f4xx_sdio.o -LOAD obj/brd/src/stm32f4xx_iwdg.o -LOAD obj/brd/src/stm32f4xx_gpio.o -LOAD obj/brd/src/stm32f4xx_pwr.o -LOAD obj/brd/src/stm32f4xx_dbgmcu.o -LOAD obj/brd/src/stm32f4xx_hash_sha1.o -LOAD obj/brd/src/stm32f4xx_syscfg.o -LOAD obj/brd/src/stm32f4xx_spi.o -LOAD obj/brd/src/stm32f4xx_exti.o -LOAD obj/brd/src/stm32f4xx_hash.o -LOAD obj/brd/src/stm32f4xx_can.o -LOAD obj/brd/src/stm32f4xx_dcmi.o -LOAD obj/brd/src/stm32f4xx_rtc.o -LOAD obj/brd/src/stm32f4xx_dma.o -LOAD obj/brd/src/stm32f4xx_fsmc.o -LOAD obj/brd/src/stm32f4xx_dac.o -LOAD obj/brd/src/misc.o -LOAD obj/brd/src/stm32f4xx_crc.o -LOAD obj/brd/src/stm32f4xx_usart.o -LOAD obj/brd/src/stm32f4xx_wwdg.o -LOAD obj/brd/src/stm32f4xx_rcc.o -LOAD obj/brd/src/stm32f4xx_i2c.o -LOAD obj/brd/src/stm32f4xx_cryp_aes.o -LOAD obj/brd/src/stm32f4xx_rng.o -LOAD obj/brd/src/stm32f4xx_cryp_des.o -LOAD obj/brd/discovery/src/stm32f4_discovery.o -LOAD obj/brd/startup/system_stm32f4xx.o -LOAD obj/brd/startup/RCC_Configuration.o -LOAD obj/brd/startup/stm32f4xx_it.o -LOAD obj/brd/startup/startup_stm32f4xx.o - 0x20020000 _eram = 0x20020000 - -.text 0x08000000 0x1d088 - *(.isr_vector) - .isr_vector 0x08000000 0x188 obj/brd/startup/startup_stm32f4xx.o - 0x08000000 g_pfnVectors - *(.text*) - .text.rx24fctrl_init - 0x08000188 0x14 obj/app/rx24fctrl/src/rx24fctrl.o - 0x08000188 rx24fctrl_init - .text.rx24fctrl_step - 0x0800019c 0x110 obj/app/rx24fctrl/src/rx24fctrl.o - 0x0800019c rx24fctrl_step - .text.main 0x080002ac 0x98 obj/app/main.o - 0x080002ac main - .text.odom_init - 0x08000344 0xb8 obj/app/odom/src/odom.o - 0x08000344 odom_init - .text.odom_step - 0x080003fc 0x238 obj/app/odom/src/odom.o - 0x080003fc odom_step - .text.app_init - 0x08000634 0x14 obj/app/app.o - 0x08000634 app_init - .text.callAppInits - 0x08000648 0x1f4 obj/app/app.o - 0x08000648 callAppInits - .text.stm_init - 0x0800083c 0x38 obj/app/stm/src/stm.o - 0x0800083c stm_init - *fill* 0x08000874 0x4 - .text.stm_step - 0x08000878 0x190 obj/app/stm/src/stm.o - 0x08000878 stm_step - .text.vehspdctrl_init - 0x08000a08 0x74 obj/app/vehspdctrl/src/vehspdctrl.o - 0x08000a08 vehspdctrl_init - *fill* 0x08000a7c 0x4 - .text.vehspdctrl_step - 0x08000a80 0x128 obj/app/vehspdctrl/src/vehspdctrl.o - 0x08000a80 vehspdctrl_step - .text.spdCtrl 0x08000ba8 0xb0 obj/app/vehspdctrl/src/vehspdctrl.o - 0x08000ba8 spdCtrl - .text.stangsel_init - 0x08000c58 0x38 obj/app/stangsel/src/stangsel.o - 0x08000c58 stangsel_init - .text.stangsel_step - 0x08000c90 0xdc obj/app/stangsel/src/stangsel.o - 0x08000c90 stangsel_step - .text.crc_accumulate - 0x08000d6c 0x60 obj/app/mavlink/src/mavlink.o - .text.crc_init - 0x08000dcc 0x1c obj/app/mavlink/src/mavlink.o - .text.crc_calculate - 0x08000de8 0x40 obj/app/mavlink/src/mavlink.o - .text.crc_accumulate_buffer - 0x08000e28 0x34 obj/app/mavlink/src/mavlink.o - .text.mavlink_sha256_init - 0x08000e5c 0x70 obj/app/mavlink/src/mavlink.o - .text.mavlink_sha256_calc - 0x08000ecc 0x2f8 obj/app/mavlink/src/mavlink.o - .text.mavlink_sha256_update - 0x080011c4 0xf8 obj/app/mavlink/src/mavlink.o - .text.mavlink_sha256_final_48 - 0x080012bc 0x138 obj/app/mavlink/src/mavlink.o - .text.mavlink_get_channel_status - 0x080013f4 0x28 obj/app/mavlink/src/mavlink.o - .text.mavlink_get_channel_buffer - 0x0800141c 0x28 obj/app/mavlink/src/mavlink.o - .text.mavlink_sign_packet - 0x08001444 0xd4 obj/app/mavlink/src/mavlink.o - .text._mav_trim_payload - 0x08001518 0x38 obj/app/mavlink/src/mavlink.o - .text.mavlink_signature_check - 0x08001550 0x260 obj/app/mavlink/src/mavlink.o - .text.mavlink_finalize_message_buffer - 0x080017b0 0x248 obj/app/mavlink/src/mavlink.o - .text.mavlink_finalize_message_chan - 0x080019f8 0x40 obj/app/mavlink/src/mavlink.o - .text.mavlink_finalize_message - 0x08001a38 0x34 obj/app/mavlink/src/mavlink.o - .text._mav_parse_error - 0x08001a6c 0x20 obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_to_send_buffer - 0x08001a8c 0x1d0 obj/app/mavlink/src/mavlink.o - .text.mavlink_start_checksum - 0x08001c5c 0x18 obj/app/mavlink/src/mavlink.o - .text.mavlink_update_checksum - 0x08001c74 0x20 obj/app/mavlink/src/mavlink.o - .text.mavlink_get_msg_entry - 0x08001c94 0xa0 obj/app/mavlink/src/mavlink.o - .text.mavlink_frame_char_buffer - 0x08001d34 0x570 obj/app/mavlink/src/mavlink.o - .text.mavlink_frame_char - 0x080022a4 0x44 obj/app/mavlink/src/mavlink.o - .text.mavlink_parse_char - 0x080022e8 0x80 obj/app/mavlink/src/mavlink.o - .text._MAV_RETURN_uint32_t - 0x08002368 0x24 obj/app/mavlink/src/mavlink.o - .text._MAV_RETURN_float - 0x0800238c 0x2c obj/app/mavlink/src/mavlink.o - .text._MAV_RETURN_int8_t_array - 0x080023b8 0x30 obj/app/mavlink/src/mavlink.o - .text._MAV_RETURN_uint16_t_array - 0x080023e8 0x38 obj/app/mavlink/src/mavlink.o - .text._MAV_RETURN_int16_t_array - 0x08002420 0x38 obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_heartbeat_pack - 0x08002458 0x60 obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_heartbeat_get_state - 0x080024b8 0x1c obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_heartbeat_get_mavlink_version - 0x080024d4 0x1c obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_error_pack - 0x080024f0 0x60 obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_odometry_pack - 0x08002550 0x8c obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_carcontrol_get_vehspd - 0x080025dc 0x20 obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_carcontrol_get_stang - 0x080025fc 0x20 obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_trajectory_get_timestamp - 0x0800261c 0x1c obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_trajectory_get_x - 0x08002638 0x20 obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_trajectory_get_y - 0x08002658 0x20 obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_trajectory_get_theta - 0x08002678 0x20 obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_trajectory_get_kappa - 0x08002698 0x20 obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_trajectory_get_v - 0x080026b8 0x20 obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_cmd_request_msg_get_msgid - 0x080026d8 0x1c obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_cmd_request_msg_get_active - 0x080026f4 0x1c obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_cmd_request_msg_get_period - 0x08002710 0x1c obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_cmd_request_statechange_get_state - 0x0800272c 0x1c obj/app/mavlink/src/mavlink.o - .text.mavlink_msg_cmd_request_clocksync_pack - 0x08002748 0x60 obj/app/mavlink/src/mavlink.o - .text.configureOutgoingMessage - 0x080027a8 0x94 obj/app/mavlink/src/mavlink.o - 0x080027a8 configureOutgoingMessage - .text.configureStateMessages - 0x0800283c 0xa0 obj/app/mavlink/src/mavlink.o - 0x0800283c configureStateMessages - .text.sendMessage - 0x080028dc 0x18c obj/app/mavlink/src/mavlink.o - 0x080028dc sendMessage - .text.handleMessage - 0x08002a68 0x184 obj/app/mavlink/src/mavlink.o - 0x08002a68 handleMessage - .text.mavlink_init - 0x08002bec 0xe0 obj/app/mavlink/src/mavlink.o - 0x08002bec mavlink_init - *fill* 0x08002ccc 0x4 - .text.mavlink_getMessages - 0x08002cd0 0xe0 obj/app/mavlink/src/mavlink.o - 0x08002cd0 mavlink_getMessages - .text.mavlink_sendMessages - 0x08002db0 0x6c obj/app/mavlink/src/mavlink.o - 0x08002db0 mavlink_sendMessages - .text.mavlink_activateStateMessages - 0x08002e1c 0x1c obj/app/mavlink/src/mavlink.o - 0x08002e1c mavlink_activateStateMessages - .text.mavlink_deactivateStateMessages - 0x08002e38 0x1c obj/app/mavlink/src/mavlink.o - 0x08002e38 mavlink_deactivateStateMessages - .text.latctrl_init - 0x08002e54 0x54 obj/app/latctrl/src/latctrl.o - 0x08002e54 latctrl_init - .text.latctrl_step - 0x08002ea8 0x80 obj/app/latctrl/src/latctrl.o - 0x08002ea8 latctrl_step - .text.servo_init - 0x08002f28 0x144 obj/dev/servo/src/servo.o - 0x08002f28 servo_init - .text.servo_enablePwmSrv1 - 0x0800306c 0x18 obj/dev/servo/src/servo.o - 0x0800306c servo_enablePwmSrv1 - .text.servo_enablePwmSrv2 - 0x08003084 0x18 obj/dev/servo/src/servo.o - 0x08003084 servo_enablePwmSrv2 - .text.servo_updateMotorTrq - 0x0800309c 0x34 obj/dev/servo/src/servo.o - 0x0800309c servo_updateMotorTrq - .text.servo_srvAngCalc - 0x080030d0 0xa8 obj/dev/servo/src/servo.o - 0x080030d0 servo_srvAngCalc - .text.dutyCycleCalc - 0x08003178 0x98 obj/dev/servo/src/servo.o - .text.updateParameters - 0x08003210 0x78 obj/dev/servo/src/servo.o - .text.wenc_init - 0x08003288 0x74 obj/dev/wenc/src/wenc.o - 0x08003288 wenc_init - .text.wenc_step - 0x080032fc 0x15c obj/dev/wenc/src/wenc.o - 0x080032fc wenc_step - .text.rcrec_init - 0x08003458 0xc0 obj/dev/rcrec/src/rcrec.o - 0x08003458 rcrec_init - .text.rcrec_isr - 0x08003518 0x168 obj/dev/rcrec/src/rcrec.o - 0x08003518 rcrec_isr - .text.rx24f_init - 0x08003680 0x170 obj/dev/rx24f/src/rx24f.o - 0x08003680 rx24f_init - .text.rx24f_step - 0x080037f0 0x234 obj/dev/rx24f/src/rx24f.o - 0x080037f0 rx24f_step - .text.delayus_init - 0x08003a24 0x2c obj/dev/rx24f/src/rx24f.o - 0x08003a24 delayus_init - .text.delayus 0x08003a50 0x34 obj/dev/rx24f/src/rx24f.o - 0x08003a50 delayus - .text.map 0x08003a84 0x8c obj/dev/rx24f/src/rx24f.o - 0x08003a84 map - .text.rx24f_txrx - 0x08003b10 0x4c0 obj/dev/rx24f/src/rx24f.o - .text.rx24f_read - 0x08003fd0 0x9c obj/dev/rx24f/src/rx24f.o - .text.rx24f_eepromWriteOnce - 0x0800406c 0x60 obj/dev/rx24f/src/rx24f.o - .text.rx24f_write - 0x080040cc 0x50 obj/dev/rx24f/src/rx24f.o - .text.rx24f_ping - 0x0800411c 0x74 obj/dev/rx24f/src/rx24f.o - .text.rx24f_turn - 0x08004190 0x130 obj/dev/rx24f/src/rx24f.o - .text.rx24f_convert - 0x080042c0 0x74 obj/dev/rx24f/src/rx24f.o - .text.rx24f_calib - 0x08004334 0x188 obj/dev/rx24f/src/rx24f.o - .text.NVIC_SetPriority - 0x080044bc 0x54 obj/sys/sched/src/scheduler.o - .text.SysTick_Config - 0x08004510 0x44 obj/sys/sched/src/scheduler.o - .text.sched_init - 0x08004554 0x2c obj/sys/sched/src/scheduler.o - 0x08004554 sched_init - .text.sched_start - 0x08004580 0x1c obj/sys/sched/src/scheduler.o - 0x08004580 sched_start - .text.sched_activateTask - 0x0800459c 0x50 obj/sys/sched/src/scheduler.o - 0x0800459c sched_activateTask - .text.sched_registerTask - 0x080045ec 0xa0 obj/sys/sched/src/scheduler.o - 0x080045ec sched_registerTask - .text.activate - 0x0800468c 0x24 obj/sys/sched/src/scheduler.o - .text.secondActivation - 0x080046b0 0xc obj/sys/sched/src/scheduler.o - 0x080046b0 secondActivation - .text.insertTaskAt - 0x080046bc 0x100 obj/sys/sched/src/scheduler.o - 0x080046bc insertTaskAt - .text.SysTick_Handler - 0x080047bc 0x1a4 obj/sys/sched/src/scheduler.o - 0x080047bc SysTick_Handler - .text.paramsys_initConnect - 0x08004960 0x124 obj/sys/paramsys/src/paramp.o - 0x08004960 paramsys_initConnect - .text.paramsys_init - 0x08004a84 0x48 obj/sys/paramsys/src/paramsys.o - 0x08004a84 paramsys_init - .text.paramsys_initGrp - 0x08004acc 0x510 obj/sys/paramsys/src/paramsys.o - 0x08004acc paramsys_initGrp - .text.paramsys_setupGrp - 0x08004fdc 0xc144 obj/sys/paramsys/src/paramlist.o - 0x08004fdc paramsys_setupGrp - .text.systime_init - 0x08011120 0x24 obj/sys/systime/src/systime.o - 0x08011120 systime_init - .text.systime_getSysTime - 0x08011144 0x20 obj/sys/systime/src/systime.o - 0x08011144 systime_getSysTime - .text.timerInit - 0x08011164 0x3c obj/sys/systime/src/systime.o - 0x08011164 timerInit - .text.errorHandler_init - 0x080111a0 0x28 obj/sys/errorhandler/src/errorHandler.o - 0x080111a0 errorHandler_init - .text.errorHandler_setError - 0x080111c8 0x44 obj/sys/errorhandler/src/errorHandler.o - 0x080111c8 errorHandler_setError - .text.errorHandler_clearError - 0x0801120c 0x44 obj/sys/errorhandler/src/errorHandler.o - 0x0801120c errorHandler_clearError - .text.errorHandler_printErrors - 0x08011250 0x84 obj/sys/errorhandler/src/errorHandler.o - 0x08011250 errorHandler_printErrors - .text.pid_initialize - 0x080112d4 0x24 obj/sys/algo/src/pid.o - 0x080112d4 pid_initialize - .text.pid_controller - 0x080112f8 0x168 obj/sys/algo/src/pid.o - 0x080112f8 pid_controller - .text.pt1_calculate - 0x08011460 0x58 obj/sys/algo/src/pt1.o - 0x08011460 pt1_calculate - .text.ringbuf_init - 0x080114b8 0x58 obj/sys/util/src/ringbuf.o - 0x080114b8 ringbuf_init - .text.ringbuf_write - 0x08011510 0x88 obj/sys/util/src/ringbuf.o - 0x08011510 ringbuf_write - .text.ringbuf_writeString - 0x08011598 0xb4 obj/sys/util/src/ringbuf.o - 0x08011598 ringbuf_writeString - .text.ringbuf_read - 0x0801164c 0x68 obj/sys/util/src/ringbuf.o - 0x0801164c ringbuf_read - .text.io_init 0x080116b4 0x44 obj/sys/util/src/io.o - 0x080116b4 io_init - .text.io_printf - 0x080116f8 0xb8 obj/sys/util/src/io.o - 0x080116f8 io_printf - .text.io_itoa 0x080117b0 0x12c obj/sys/util/src/io.o - 0x080117b0 io_itoa - *fill* 0x080118dc 0x4 - .text.io_ftoa 0x080118e0 0xf8 obj/sys/util/src/io.o - 0x080118e0 io_ftoa - .text.io_formatstring - 0x080119d8 0x384 obj/sys/util/src/io.o - 0x080119d8 io_formatstring - .text.io_getLength - 0x08011d5c 0x154 obj/sys/util/src/io.o - 0x08011d5c io_getLength - .text.io_formatlength - 0x08011eb0 0x198 obj/sys/util/src/io.o - 0x08011eb0 io_formatlength - .text.sigp_init - 0x08012048 0x470 obj/sys/sigp/src/sigp.o - 0x08012048 sigp_init - .text.eict_init - 0x080124b8 0x78 obj/per/src/eict.o - 0x080124b8 eict_init - .text.eict_getCounter - 0x08012530 0x64 obj/per/src/eict.o - 0x08012530 eict_getCounter - .text.TIM2_IRQHandler - 0x08012594 0x5c obj/per/src/eict.o - 0x08012594 TIM2_IRQHandler - .text.gpio_config - 0x080125f0 0x60 obj/per/src/eict.o - .text.nvic_config - 0x08012650 0x34 obj/per/src/eict.o - .text.clocksync_initDevice - 0x08012684 0x94 obj/per/src/clocksync.o - 0x08012684 clocksync_initDevice - .text.EXTI15_10_IRQHandler - 0x08012718 0x2c obj/per/src/clocksync.o - 0x08012718 EXTI15_10_IRQHandler - .text.I2C2_EV_IRQHandler - 0x08012744 0x1b4 obj/per/src/i2c2.o - 0x08012744 I2C2_EV_IRQHandler - .text.I2C2_ER_IRQHandler - 0x080128f8 0x40 obj/per/src/i2c2.o - 0x080128f8 I2C2_ER_IRQHandler - .text.irq_enable - 0x08012938 0x10 obj/per/src/irq.o - 0x08012938 irq_enable - .text.irq_disable - 0x08012948 0x10 obj/per/src/irq.o - 0x08012948 irq_disable - .text.uart_init - 0x08012958 0x27c obj/per/src/uart.o - 0x08012958 uart_init - .text.uart_writeString - 0x08012bd4 0x50 obj/per/src/uart.o - 0x08012bd4 uart_writeString - .text.uart_readByte - 0x08012c24 0x20 obj/per/src/uart.o - 0x08012c24 uart_readByte - .text.enableTransmitIsr - 0x08012c44 0x24 obj/per/src/uart.o - 0x08012c44 enableTransmitIsr - .text.disbaleTransmitIsr - 0x08012c68 0x24 obj/per/src/uart.o - 0x08012c68 disbaleTransmitIsr - .text.USART1_IRQHandler - 0x08012c8c 0xa8 obj/per/src/uart.o - 0x08012c8c USART1_IRQHandler - .text.USART3_IRQHandler - 0x08012d34 0x90 obj/per/src/uart.o - 0x08012d34 USART3_IRQHandler - .text.UART5_IRQHandler - 0x08012dc4 0x90 obj/per/src/uart.o - 0x08012dc4 UART5_IRQHandler - .text.uart_getChannel - 0x08012e54 0x3c obj/per/src/uart.o - .text.gpio_init - 0x08012e90 0x230 obj/per/src/gpio.o - 0x08012e90 gpio_init - .text.gpio_readBit - 0x080130c0 0x14c obj/per/src/gpio.o - 0x080130c0 gpio_readBit - .text.gpio_setBit - 0x0801320c 0x114 obj/per/src/gpio.o - 0x0801320c gpio_setBit - .text.gpio_clearBit - 0x08013320 0x114 obj/per/src/gpio.o - 0x08013320 gpio_clearBit - .text.pwm_init - 0x08013434 0x1e0 obj/per/src/pwm.o - 0x08013434 pwm_init - .text.pwm_setDutyCycle - 0x08013614 0xfc obj/per/src/pwm.o - 0x08013614 pwm_setDutyCycle - .text.pwm_enable - 0x08013710 0x6c obj/per/src/pwm.o - 0x08013710 pwm_enable - .text.pwm_disable - 0x0801377c 0x50 obj/per/src/pwm.o - 0x0801377c pwm_disable - .text.ict_init - 0x080137cc 0xec obj/per/src/ict.o - 0x080137cc ict_init - .text.TIM1_BRK_TIM9_IRQHandler - 0x080138b8 0x2c obj/per/src/ict.o - 0x080138b8 TIM1_BRK_TIM9_IRQHandler - .text.TIM_TimeBaseInit - 0x080138e4 0xd4 obj/brd/src/stm32f4xx_tim.o - 0x080138e4 TIM_TimeBaseInit - .text.TIM_SetCounter - 0x080139b8 0x1c obj/brd/src/stm32f4xx_tim.o - 0x080139b8 TIM_SetCounter - .text.TIM_GetCounter - 0x080139d4 0x18 obj/brd/src/stm32f4xx_tim.o - 0x080139d4 TIM_GetCounter - .text.TIM_Cmd 0x080139ec 0x40 obj/brd/src/stm32f4xx_tim.o - 0x080139ec TIM_Cmd - .text.TIM_OC3Init - 0x08013a2c 0x10c obj/brd/src/stm32f4xx_tim.o - 0x08013a2c TIM_OC3Init - .text.TIM_OC4Init - 0x08013b38 0xcc obj/brd/src/stm32f4xx_tim.o - 0x08013b38 TIM_OC4Init - .text.TIM_SetCompare3 - 0x08013c04 0x1c obj/brd/src/stm32f4xx_tim.o - 0x08013c04 TIM_SetCompare3 - .text.TIM_SetCompare4 - 0x08013c20 0x1c obj/brd/src/stm32f4xx_tim.o - 0x08013c20 TIM_SetCompare4 - .text.TIM_OC3PreloadConfig - 0x08013c3c 0x38 obj/brd/src/stm32f4xx_tim.o - 0x08013c3c TIM_OC3PreloadConfig - .text.TIM_OC4PreloadConfig - 0x08013c74 0x3c obj/brd/src/stm32f4xx_tim.o - 0x08013c74 TIM_OC4PreloadConfig - .text.TIM_ICInit - 0x08013cb0 0xa8 obj/brd/src/stm32f4xx_tim.o - 0x08013cb0 TIM_ICInit - .text.TIM_SetIC1Prescaler - 0x08013d58 0x38 obj/brd/src/stm32f4xx_tim.o - 0x08013d58 TIM_SetIC1Prescaler - .text.TIM_SetIC2Prescaler - 0x08013d90 0x3c obj/brd/src/stm32f4xx_tim.o - 0x08013d90 TIM_SetIC2Prescaler - .text.TIM_SetIC3Prescaler - 0x08013dcc 0x38 obj/brd/src/stm32f4xx_tim.o - 0x08013dcc TIM_SetIC3Prescaler - .text.TIM_SetIC4Prescaler - 0x08013e04 0x3c obj/brd/src/stm32f4xx_tim.o - 0x08013e04 TIM_SetIC4Prescaler - .text.TIM_CtrlPWMOutputs - 0x08013e40 0x4c obj/brd/src/stm32f4xx_tim.o - 0x08013e40 TIM_CtrlPWMOutputs - .text.TIM_ITConfig - 0x08013e8c 0x48 obj/brd/src/stm32f4xx_tim.o - 0x08013e8c TIM_ITConfig - .text.TIM_ClearFlag - 0x08013ed4 0x20 obj/brd/src/stm32f4xx_tim.o - 0x08013ed4 TIM_ClearFlag - .text.TIM_GetITStatus - 0x08013ef4 0x54 obj/brd/src/stm32f4xx_tim.o - 0x08013ef4 TIM_GetITStatus - .text.TIM_ClearITPendingBit - 0x08013f48 0x20 obj/brd/src/stm32f4xx_tim.o - 0x08013f48 TIM_ClearITPendingBit - .text.TI1_Config - 0x08013f68 0x78 obj/brd/src/stm32f4xx_tim.o - .text.TI2_Config - 0x08013fe0 0x8c obj/brd/src/stm32f4xx_tim.o - .text.TI3_Config - 0x0801406c 0x84 obj/brd/src/stm32f4xx_tim.o - .text.TI4_Config - 0x080140f0 0x90 obj/brd/src/stm32f4xx_tim.o - .text.FLASH_SetLatency - 0x08014180 0x20 obj/brd/src/stm32f4xx_flash.o - 0x08014180 FLASH_SetLatency - .text.GPIO_Init - 0x080141a0 0x11c obj/brd/src/stm32f4xx_gpio.o - 0x080141a0 GPIO_Init - .text.GPIO_ReadInputDataBit - 0x080142bc 0x34 obj/brd/src/stm32f4xx_gpio.o - 0x080142bc GPIO_ReadInputDataBit - .text.GPIO_SetBits - 0x080142f0 0x1c obj/brd/src/stm32f4xx_gpio.o - 0x080142f0 GPIO_SetBits - .text.GPIO_ResetBits - 0x0801430c 0x1c obj/brd/src/stm32f4xx_gpio.o - 0x0801430c GPIO_ResetBits - .text.GPIO_ToggleBits - 0x08014328 0x24 obj/brd/src/stm32f4xx_gpio.o - 0x08014328 GPIO_ToggleBits - .text.GPIO_PinAFConfig - 0x0801434c 0x8c obj/brd/src/stm32f4xx_gpio.o - 0x0801434c GPIO_PinAFConfig - .text.PWR_BackupAccessCmd - 0x080143d8 0x20 obj/brd/src/stm32f4xx_pwr.o - 0x080143d8 PWR_BackupAccessCmd - .text.SYSCFG_EXTILineConfig - 0x080143f8 0x7c obj/brd/src/stm32f4xx_syscfg.o - 0x080143f8 SYSCFG_EXTILineConfig - .text.EXTI_Init - 0x08014474 0xdc obj/brd/src/stm32f4xx_exti.o - 0x08014474 EXTI_Init - .text.EXTI_GetITStatus - 0x08014550 0x48 obj/brd/src/stm32f4xx_exti.o - 0x08014550 EXTI_GetITStatus - .text.EXTI_ClearITPendingBit - 0x08014598 0x1c obj/brd/src/stm32f4xx_exti.o - 0x08014598 EXTI_ClearITPendingBit - .text.NVIC_PriorityGroupConfig - 0x080145b4 0x24 obj/brd/src/misc.o - 0x080145b4 NVIC_PriorityGroupConfig - .text.NVIC_Init - 0x080145d8 0xbc obj/brd/src/misc.o - 0x080145d8 NVIC_Init - .text.USART_Init - 0x08014694 0x174 obj/brd/src/stm32f4xx_usart.o - 0x08014694 USART_Init - .text.USART_Cmd - 0x08014808 0x40 obj/brd/src/stm32f4xx_usart.o - 0x08014808 USART_Cmd - .text.USART_SendData - 0x08014848 0x24 obj/brd/src/stm32f4xx_usart.o - 0x08014848 USART_SendData - .text.USART_ReceiveData - 0x0801486c 0x20 obj/brd/src/stm32f4xx_usart.o - 0x0801486c USART_ReceiveData - .text.USART_ITConfig - 0x0801488c 0x90 obj/brd/src/stm32f4xx_usart.o - 0x0801488c USART_ITConfig - .text.USART_GetFlagStatus - 0x0801491c 0x38 obj/brd/src/stm32f4xx_usart.o - 0x0801491c USART_GetFlagStatus - .text.USART_ClearITPendingBit - 0x08014954 0x38 obj/brd/src/stm32f4xx_usart.o - 0x08014954 USART_ClearITPendingBit - .text.RCC_DeInit - 0x0801498c 0x5c obj/brd/src/stm32f4xx_rcc.o - 0x0801498c RCC_DeInit - .text.RCC_HSICmd - 0x080149e8 0x20 obj/brd/src/stm32f4xx_rcc.o - 0x080149e8 RCC_HSICmd - .text.RCC_PLLConfig - 0x08014a08 0x3c obj/brd/src/stm32f4xx_rcc.o - 0x08014a08 RCC_PLLConfig - .text.RCC_PLLCmd - 0x08014a44 0x20 obj/brd/src/stm32f4xx_rcc.o - 0x08014a44 RCC_PLLCmd - .text.RCC_SYSCLKConfig - 0x08014a64 0x38 obj/brd/src/stm32f4xx_rcc.o - 0x08014a64 RCC_SYSCLKConfig - .text.RCC_GetSYSCLKSource - 0x08014a9c 0x20 obj/brd/src/stm32f4xx_rcc.o - 0x08014a9c RCC_GetSYSCLKSource - .text.RCC_HCLKConfig - 0x08014abc 0x38 obj/brd/src/stm32f4xx_rcc.o - 0x08014abc RCC_HCLKConfig - .text.RCC_PCLK1Config - 0x08014af4 0x38 obj/brd/src/stm32f4xx_rcc.o - 0x08014af4 RCC_PCLK1Config - .text.RCC_PCLK2Config - 0x08014b2c 0x38 obj/brd/src/stm32f4xx_rcc.o - 0x08014b2c RCC_PCLK2Config - .text.RCC_GetClocksFreq - 0x08014b64 0x154 obj/brd/src/stm32f4xx_rcc.o - 0x08014b64 RCC_GetClocksFreq - .text.RCC_AHB1PeriphClockCmd - 0x08014cb8 0x3c obj/brd/src/stm32f4xx_rcc.o - 0x08014cb8 RCC_AHB1PeriphClockCmd - .text.RCC_APB1PeriphClockCmd - 0x08014cf4 0x3c obj/brd/src/stm32f4xx_rcc.o - 0x08014cf4 RCC_APB1PeriphClockCmd - .text.RCC_APB2PeriphClockCmd - 0x08014d30 0x3c obj/brd/src/stm32f4xx_rcc.o - 0x08014d30 RCC_APB2PeriphClockCmd - .text.RCC_GetFlagStatus - 0x08014d6c 0x74 obj/brd/src/stm32f4xx_rcc.o - 0x08014d6c RCC_GetFlagStatus - .text.I2C_GenerateSTOP - 0x08014de0 0x40 obj/brd/src/stm32f4xx_i2c.o - 0x08014de0 I2C_GenerateSTOP - .text.I2C_Send7bitAddress - 0x08014e20 0x3c obj/brd/src/stm32f4xx_i2c.o - 0x08014e20 I2C_Send7bitAddress - .text.I2C_AcknowledgeConfig - 0x08014e5c 0x40 obj/brd/src/stm32f4xx_i2c.o - 0x08014e5c I2C_AcknowledgeConfig - .text.I2C_SendData - 0x08014e9c 0x20 obj/brd/src/stm32f4xx_i2c.o - 0x08014e9c I2C_SendData - .text.I2C_ReceiveData - 0x08014ebc 0x1c obj/brd/src/stm32f4xx_i2c.o - 0x08014ebc I2C_ReceiveData - .text.I2C_ReadRegister - 0x08014ed8 0x30 obj/brd/src/stm32f4xx_i2c.o - 0x08014ed8 I2C_ReadRegister - .text.I2C_GetFlagStatus - 0x08014f08 0x68 obj/brd/src/stm32f4xx_i2c.o - 0x08014f08 I2C_GetFlagStatus - .text.I2C_ClearFlag - 0x08014f70 0x2c obj/brd/src/stm32f4xx_i2c.o - 0x08014f70 I2C_ClearFlag - .text.SystemInit - 0x08014f9c 0x68 obj/brd/startup/system_stm32f4xx.o - 0x08014f9c SystemInit - .text.SystemCoreClockUpdate - 0x08015004 0xf8 obj/brd/startup/system_stm32f4xx.o - 0x08015004 SystemCoreClockUpdate - .text.SetSysClock - 0x080150fc 0xf4 obj/brd/startup/system_stm32f4xx.o - .text.RCC_Configuration - 0x080151f0 0xb0 obj/brd/startup/RCC_Configuration.o - 0x080151f0 RCC_Configuration - .text.NMI_Handler - 0x080152a0 0xc obj/brd/startup/stm32f4xx_it.o - 0x080152a0 NMI_Handler - .text.HardFault_Handler - 0x080152ac 0x8 obj/brd/startup/stm32f4xx_it.o - 0x080152ac HardFault_Handler - .text.MemManage_Handler - 0x080152b4 0x8 obj/brd/startup/stm32f4xx_it.o - 0x080152b4 MemManage_Handler - .text.BusFault_Handler - 0x080152bc 0x8 obj/brd/startup/stm32f4xx_it.o - 0x080152bc BusFault_Handler - .text.UsageFault_Handler - 0x080152c4 0x8 obj/brd/startup/stm32f4xx_it.o - 0x080152c4 UsageFault_Handler - .text.SVC_Handler - 0x080152cc 0xc obj/brd/startup/stm32f4xx_it.o - 0x080152cc SVC_Handler - .text.DebugMon_Handler - 0x080152d8 0xc obj/brd/startup/stm32f4xx_it.o - 0x080152d8 DebugMon_Handler - .text.PendSV_Handler - 0x080152e4 0xc obj/brd/startup/stm32f4xx_it.o - 0x080152e4 PendSV_Handler - .text.Default_Reset_Handler - 0x080152f0 0x70 obj/brd/startup/startup_stm32f4xx.o - 0x080152f0 Reset_Handler - 0x080152f0 Default_Reset_Handler - .text.Default_Handler - 0x08015360 0x8 obj/brd/startup/startup_stm32f4xx.o - 0x08015360 RTC_Alarm_IRQHandler - 0x08015360 HASH_RNG_IRQHandler - 0x08015360 EXTI2_IRQHandler - 0x08015360 TIM8_CC_IRQHandler - 0x08015360 TIM1_CC_IRQHandler - 0x08015360 DMA2_Stream5_IRQHandler - 0x08015360 DMA1_Stream5_IRQHandler - 0x08015360 PVD_IRQHandler - 0x08015360 SDIO_IRQHandler - 0x08015360 TAMP_STAMP_IRQHandler - 0x08015360 CAN2_RX1_IRQHandler - 0x08015360 EXTI3_IRQHandler - 0x08015360 TIM8_TRG_COM_TIM14_IRQHandler - 0x08015360 TIM1_UP_TIM10_IRQHandler - 0x08015360 TIM8_UP_TIM13_IRQHandler - 0x08015360 I2C3_ER_IRQHandler - 0x08015360 EXTI0_IRQHandler - 0x08015360 DMA1_Stream2_IRQHandler - 0x08015360 CAN1_RX0_IRQHandler - 0x08015360 FPU_IRQHandler - 0x08015360 OTG_HS_WKUP_IRQHandler - 0x08015360 CAN2_SCE_IRQHandler - 0x08015360 DMA2_Stream2_IRQHandler - 0x08015360 SPI1_IRQHandler - 0x08015360 TIM6_DAC_IRQHandler - 0x08015360 DCMI_IRQHandler - 0x08015360 CAN2_RX0_IRQHandler - 0x08015360 DMA2_Stream3_IRQHandler - 0x08015360 USART6_IRQHandler - 0x08015360 CRYP_IRQHandler - 0x08015360 CAN1_RX1_IRQHandler - 0x08015360 DMA2_Stream0_IRQHandler - 0x08015360 TIM4_IRQHandler - 0x08015360 I2C1_EV_IRQHandler - 0x08015360 DMA1_Stream6_IRQHandler - 0x08015360 DMA1_Stream1_IRQHandler - 0x08015360 UART4_IRQHandler - 0x08015360 TIM3_IRQHandler - 0x08015360 RCC_IRQHandler - 0x08015360 TIM8_BRK_TIM12_IRQHandler - 0x08015360 ADC_IRQHandler - 0x08015360 DMA1_Stream7_IRQHandler - 0x08015360 TIM7_IRQHandler - 0x08015360 CAN2_TX_IRQHandler - 0x08015360 TIM5_IRQHandler - 0x08015360 DMA2_Stream7_IRQHandler - 0x08015360 I2C3_EV_IRQHandler - 0x08015360 EXTI9_5_IRQHandler - 0x08015360 RTC_WKUP_IRQHandler - 0x08015360 ETH_WKUP_IRQHandler - 0x08015360 SPI2_IRQHandler - 0x08015360 OTG_HS_EP1_IN_IRQHandler - 0x08015360 DMA1_Stream0_IRQHandler - 0x08015360 CAN1_TX_IRQHandler - 0x08015360 EXTI4_IRQHandler - 0x08015360 FSMC_IRQHandler - 0x08015360 ETH_IRQHandler - 0x08015360 OTG_HS_EP1_OUT_IRQHandler - 0x08015360 WWDG_IRQHandler - 0x08015360 OTG_FS_WKUP_IRQHandler - 0x08015360 TIM1_TRG_COM_TIM11_IRQHandler - 0x08015360 OTG_HS_IRQHandler - 0x08015360 EXTI1_IRQHandler - 0x08015360 USART2_IRQHandler - 0x08015360 DMA2_Stream1_IRQHandler - 0x08015360 CAN1_SCE_IRQHandler - 0x08015360 FLASH_IRQHandler - 0x08015360 DMA2_Stream4_IRQHandler - 0x08015360 OTG_FS_IRQHandler - 0x08015360 SPI3_IRQHandler - 0x08015360 DMA1_Stream4_IRQHandler - 0x08015360 I2C1_ER_IRQHandler - 0x08015360 DMA2_Stream6_IRQHandler - 0x08015360 DMA1_Stream3_IRQHandler - .text.memcmp 0x08015368 0x1e /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcmp.o) - 0x08015368 memcmp - .text.memcpy 0x08015386 0x12 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcpy-stub.o) - 0x08015386 memcpy - .text.memset 0x08015398 0x10 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memset.o) - 0x08015398 memset - .text.__fpclassifyd - 0x080153a8 0x48 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-s_fpclassify.o) - 0x080153a8 __fpclassifyd - .text.round 0x080153f0 0x98 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_round.o) - 0x080153f0 round - .text.cosf 0x08015488 0x78 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_cos.o) - 0x08015488 cosf - .text.sinf 0x08015500 0x7c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_sin.o) - 0x08015500 sinf - .text.log10 0x0801557c 0xf8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_log10.o) - 0x0801557c log10 - .text.pow 0x08015674 0x340 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_pow.o) - 0x08015674 pow - *fill* 0x080159b4 0x4 - .text.__ieee754_log10 - 0x080159b8 0x130 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log10.o) - 0x080159b8 __ieee754_log10 - .text.__ieee754_pow - 0x08015ae8 0xae8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_pow.o) - 0x08015ae8 __ieee754_pow - .text.__ieee754_sqrt - 0x080165d0 0x198 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_sqrt.o) - 0x080165d0 __ieee754_sqrt - .text.__ieee754_rem_pio2f - 0x08016768 0x28c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-ef_rem_pio2.o) - 0x08016768 __ieee754_rem_pio2f - .text.__kernel_cosf - 0x080169f4 0x104 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_cos.o) - 0x080169f4 __kernel_cosf - .text.__kernel_rem_pio2f - 0x08016af8 0x5cc /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_rem_pio2.o) - 0x08016af8 __kernel_rem_pio2f - .text.__kernel_sinf - 0x080170c4 0x90 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_sin.o) - 0x080170c4 __kernel_sinf - .text.fabs 0x08017154 0x14 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_fabs.o) - 0x08017154 fabs - .text.finite 0x08017168 0x10 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_finite.o) - 0x08017168 finite - .text.matherr 0x08017178 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_matherr.o) - 0x08017178 matherr - *fill* 0x0801717c 0x4 - .text.nan 0x08017180 0x10 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_nan.o) - 0x08017180 nan - .text.rint 0x08017190 0x120 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_rint.o) - 0x08017190 rint - .text.scalbn 0x080172b0 0x120 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_scalbn.o) - 0x080172b0 scalbn - .text.fabsf 0x080173d0 0x10 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_fabs.o) - 0x080173d0 fabsf - .text.floorf 0x080173e0 0xa0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_floor.o) - 0x080173e0 floorf - .text.scalbnf 0x08017480 0xd8 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_scalbn.o) - 0x08017480 scalbnf - .text.__ieee754_log - 0x08017558 0x428 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log.o) - 0x08017558 __ieee754_log - .text.copysign - 0x08017980 0x24 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_copysign.o) - 0x08017980 copysign - .text.copysignf - 0x080179a4 0x18 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_copysign.o) - 0x080179a4 copysignf - .text 0x080179bc 0x370 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_addsubdf3.o) - 0x080179bc __aeabi_drsub - 0x080179c4 __aeabi_dsub - 0x080179c4 __subdf3 - 0x080179c8 __adddf3 - 0x080179c8 __aeabi_dadd - 0x08017c40 __aeabi_ui2d - 0x08017c40 __floatunsidf - 0x08017c60 __floatsidf - 0x08017c60 __aeabi_i2d - 0x08017c84 __extendsfdf2 - 0x08017c84 __aeabi_f2d - 0x08017cc0 __aeabi_ul2d - 0x08017cc0 __floatundidf - 0x08017cd0 __floatdidf - 0x08017cd0 __aeabi_l2d - .text 0x08017d2c 0x424 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_muldivdf3.o) - 0x08017d2c __aeabi_dmul - 0x08017d2c __muldf3 - 0x08017f80 __aeabi_ddiv - 0x08017f80 __divdf3 - .text 0x08018150 0x110 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_cmpdf2.o) - 0x08018150 __gtdf2 - 0x08018150 __gedf2 - 0x08018158 __ltdf2 - 0x08018158 __ledf2 - 0x08018160 __cmpdf2 - 0x08018160 __eqdf2 - 0x08018160 __nedf2 - 0x080181dc __aeabi_cdrcmple - 0x080181ec __aeabi_cdcmple - 0x080181ec __aeabi_cdcmpeq - 0x080181fc __aeabi_dcmpeq - 0x08018210 __aeabi_dcmplt - 0x08018224 __aeabi_dcmple - 0x08018238 __aeabi_dcmpge - 0x0801824c __aeabi_dcmpgt - .text 0x08018260 0x50 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_fixdfsi.o) - 0x08018260 __fixdfsi - 0x08018260 __aeabi_d2iz - .text 0x080182b0 0x40 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_fixunsdfsi.o) - 0x080182b0 __fixunsdfsi - 0x080182b0 __aeabi_d2uiz - .text 0x080182f0 0xa0 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_truncdfsf2.o) - 0x080182f0 __aeabi_d2f - 0x080182f0 __truncdfsf2 - .text.__errno 0x08018390 0xc /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-errno.o) - 0x08018390 __errno - *(.init) - *(.fini) - *crtbegin.o(.ctors) - *crtbegin?.o(.ctors) - *(EXCLUDE_FILE(*crtend.o *crtend?.o) .ctors) - *(SORT(.ctors.*)) - *(.ctors) - *crtbegin.o(.dtors) - *crtbegin?.o(.dtors) - *(EXCLUDE_FILE(*crtend.o *crtend?.o) .dtors) - *(SORT(.dtors.*)) - *(.dtors) - *(.rodata*) - .rodata 0x0801839c 0x21c obj/app/app.o - .rodata 0x080185b8 0x148 obj/app/stm/src/stm.o - .rodata 0x08018700 0x33c4 obj/app/mavlink/src/mavlink.o - .rodata 0x0801bac4 0x5c obj/dev/wenc/src/wenc.o - .rodata 0x0801bb20 0x294 obj/dev/rx24f/src/rx24f.o - .rodata 0x0801bdb4 0x18c obj/sys/paramsys/src/paramsys.o - .rodata 0x0801bf40 0xba0 obj/sys/paramsys/src/paramlist.o - .rodata 0x0801cae0 0x174 obj/sys/errorhandler/src/errorList.o - .rodata 0x0801cc54 0xc obj/sys/errorhandler/src/errorHandler.o - .rodata 0x0801cc60 0x4 obj/sys/util/src/ringbuf.o - .rodata.str1.1 - 0x0801cc64 0x2 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-impure.o) - *fill* 0x0801cc66 0x2 - .rodata.str1.4 - 0x0801cc68 0x9 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_log10.o) - 0xc (size before relaxing) - *fill* 0x0801cc71 0x3 - .rodata.str1.4 - 0x0801cc74 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_pow.o) - .rodata.dp_h 0x0801cc78 0x10 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_pow.o) - .rodata.dp_l 0x0801cc88 0x10 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_pow.o) - .rodata.bp 0x0801cc98 0x10 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_pow.o) - .rodata.str1.4 - 0x00000000 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_pow.o) - .rodata.npio2_hw - 0x0801cca8 0x80 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-ef_rem_pio2.o) - .rodata.two_over_pi - 0x0801cd28 0x318 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-ef_rem_pio2.o) - .rodata.init_jk - 0x0801d040 0xc /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_rem_pio2.o) - .rodata.PIo2 0x0801d04c 0x2c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_rem_pio2.o) - .rodata.TWO52 0x0801d078 0x10 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_rint.o) - *(.eh_fram e*) - -.glue_7 0x0801d088 0x0 - .glue_7 0x00000000 0x0 linker stubs - -.glue_7t 0x0801d088 0x0 - .glue_7t 0x00000000 0x0 linker stubs - -.vfp11_veneer 0x0801d088 0x0 - .vfp11_veneer 0x00000000 0x0 linker stubs - -.v4_bx 0x0801d088 0x0 - .v4_bx 0x00000000 0x0 linker stubs - -.iplt 0x0801d088 0x0 - .iplt 0x00000000 0x0 obj/app/rx24fctrl/src/rx24fctrl.o - -.rel.dyn 0x0801d088 0x0 - .rel.iplt 0x00000000 0x0 obj/app/rx24fctrl/src/rx24fctrl.o - -.ARM.extab - *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x0801d088 __exidx_start = . - -.ARM.exidx - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - 0x0801d088 __exidx_end = . - 0x0801d088 __etext = . - 0x0801d088 _sidata = __etext - -.data 0x20000000 0xf8 load address 0x0801d088 - 0x20000000 __data_start__ = . - 0x20000000 _sdata = __data_start__ - *(vtable) - *(.data*) - .data 0x20000000 0x8 obj/app/mavlink/src/mavlink.o - .data 0x20000008 0x4 obj/dev/rx24f/src/rx24f.o - .data 0x2000000c 0x10 obj/sys/sched/src/scheduler.o - .data 0x2000001c 0x44 obj/sys/errorhandler/src/errorList.o - 0x2000001c strErrorList - .data 0x20000060 0x4 obj/per/src/pwm.o - .data 0x20000064 0x10 obj/brd/src/stm32f4xx_rcc.o - .data 0x20000074 0x14 obj/brd/startup/system_stm32f4xx.o - 0x20000074 SystemCoreClock - 0x20000078 AHBPrescTable - .data 0x20000088 0x8 obj/brd/startup/RCC_Configuration.o - 0x20000088 RCC_APB1_Prescaler - 0x2000008c RCC_APB2_Prescaler - .data.impure_data - 0x20000090 0x60 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-impure.o) - .data._impure_ptr - 0x200000f0 0x4 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-impure.o) - 0x200000f0 _impure_ptr - .data.__fdlib_version - 0x200000f4 0x1 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_lib_ver.o) - 0x200000f4 __fdlib_version - 0x200000f8 . = ALIGN (0x4) - *fill* 0x200000f5 0x3 - 0x200000f8 PROVIDE (__preinit_array_start, .) - *(.preinit_array) - 0x200000f8 PROVIDE (__preinit_array_end, .) - 0x200000f8 . = ALIGN (0x4) - 0x200000f8 PROVIDE (__init_array_start, .) - *(SORT(.init_array.*)) - *(.init_array) - 0x200000f8 PROVIDE (__init_array_end, .) - 0x200000f8 . = ALIGN (0x4) - 0x200000f8 PROVIDE (__fini_array_start, .) - *(SORT(.fini_array.*)) - *(.fini_array) - 0x200000f8 PROVIDE (__fini_array_end, .) - *(.jcr*) - 0x200000f8 . = ALIGN (0x4) - 0x200000f8 __data_end__ = . - 0x200000f8 _edata = __data_end__ - -.igot.plt 0x200000f8 0x0 load address 0x0801d180 - .igot.plt 0x00000000 0x0 obj/app/rx24fctrl/src/rx24fctrl.o - -.bss 0x200000f8 0x9340 load address 0x0801d180 - 0x200000f8 . = ALIGN (0x4) - 0x200000f8 __bss_start__ = . - 0x200000f8 _sbss = __bss_start__ - *(.bss*) - .bss 0x200000f8 0x4 obj/app/rx24fctrl/src/rx24fctrl.o - .bss 0x200000fc 0x4 obj/app/main.o - .bss 0x20000100 0x2c obj/app/odom/src/odom.o - .bss 0x2000012c 0x4 obj/app/stm/src/stm.o - .bss 0x20000130 0x3c obj/app/vehspdctrl/src/vehspdctrl.o - .bss 0x2000016c 0x8 obj/app/stangsel/src/stangsel.o - .bss 0x20000174 0x2c04 obj/app/mavlink/src/mavlink.o - .bss 0x20002d78 0x28 obj/dev/servo/src/servo.o - .bss 0x20002da0 0x30 obj/dev/wenc/src/wenc.o - .bss 0x20002dd0 0x28 obj/dev/rcrec/src/rcrec.o - .bss 0x20002df8 0x1620 obj/dev/rx24f/src/rx24f.o - 0x20002e34 uartSendBufferEmpty - 0x20002e35 uartFirstReceivedByte - .bss 0x20004418 0x1bc obj/sys/sched/src/scheduler.o - .bss 0x200045d4 0x2940 obj/sys/paramsys/src/paramsys.o - .bss 0x20006f14 0x4 obj/sys/systime/src/systime.o - .bss 0x20006f18 0xa0 obj/sys/util/src/io.o - .bss 0x20006fb8 0x11c obj/sys/sigp/src/sigp.o - .bss 0x200070d4 0x8 obj/per/src/eict.o - .bss 0x200070dc 0xa obj/per/src/i2c2.o - *fill* 0x200070e6 0x2 - .bss 0x200070e8 0xc obj/per/src/uart.o - .bss 0x200070f4 0x4 obj/per/src/ict.o - *(COMMON) - COMMON 0x200070f8 0x10 obj/app/rx24fctrl/src/rx24fctrl.o - 0x200070f8 pStAngTgtPiCtrl_rx24fctrl - 0x200070fc pStAngTgtStress_rx24fctrl - 0x20007100 pSrvAngAct_rx24fctrl - 0x20007104 pStAngTgtSel_rx24fctrl - COMMON 0x20007108 0x1d58 obj/app/main.o - 0x20007108 sendBuf - 0x200073f8 sendBufTimestamp - 0x20007fb0 recBuf - 0x200082a0 sendBufSize - 0x200082a4 recBufTimestamp - 0x20008e5c recBufSize - COMMON 0x20008e60 0x34 obj/app/odom/src/odom.o - 0x20008e60 pVehSpdOdom_odom - 0x20008e64 pOdomTimestamp_odom - 0x20008e68 pVehYDistOdom_odom - 0x20008e6c pVehXDistOdom_odom - 0x20008e70 pWhlTicksFL_odom - 0x20008e74 pRcChannel1_odom - 0x20008e78 pWhlTicksRL_odom - 0x20008e7c pWhlTicksRR_odom - 0x20008e80 pVehYawAngOdom_odom - 0x20008e84 pWhlTicksFR_odom - 0x20008e88 pRcOverrideSpdEnabled_odom - 0x20008e8c pVehDirOdom_odom - 0x20008e90 pCarDirection_odom - COMMON 0x20008e94 0x18 obj/app/stm/src/stm.o - 0x20008e94 pRequestedState_stm - 0x20008e98 pSyncOffset_stm - 0x20008e9c pErrorRegister_stm - 0x20008ea0 pRcState_stm - 0x20008ea4 pState_stm - 0x20008ea8 pRcChannel5_stm - COMMON 0x20008eac 0x10 obj/app/vehspdctrl/src/vehspdctrl.o - 0x20008eac pVehSpdOdom_vehspdctrl - 0x20008eb0 pCarControl_vehspdctrl - 0x20008eb4 pRcChannel1_vehspdctrl - 0x20008eb8 pState_vehspdctrl - COMMON 0x20008ebc 0x28 obj/app/stangproc/src/stangproc.o - 0x20008ebc pSrvAngAct_stangproc - 0x20008ec0 pStAngAct_stangproc - 0x20008ec4 pStAngTgtFailSafe_stangproc - 0x20008ec8 pStAngTimestamp_stangproc - 0x20008ecc pMaxAbsAngSrv1_stangproc - 0x20008ed0 pStAngTgt_stangproc - 0x20008ed4 pStAngTgtSel_stangproc - 0x20008ed8 pStAngMax_stangproc - 0x20008edc pMinAbsAngSrv1_stangproc - 0x20008ee0 pStAngMin_stangproc - COMMON 0x20008ee4 0x10 obj/app/stangsel/src/stangsel.o - 0x20008ee4 pCarControl_stangsel - 0x20008ee8 pState_stangsel - 0x20008eec pStAngTgtSel_stangsel - 0x20008ef0 pRcOverrideStangEnabled_stangsel - COMMON 0x20008ef4 0x94 obj/app/mavlink/src/mavlink.o - 0x20008ef4 msgMeta - 0x20008f14 pSyncOffset_mavlink - 0x20008f18 pVehYawAngOdom_mavlink - 0x20008f1c pRequestedState_mavlink - 0x20008f20 pCarControl_mavlink - 0x20008f24 pStAngTimestamp_mavlink - 0x20008f28 pVehYDistOdom_mavlink - 0x20008f2c pTrajectory_mavlink - 0x20008f30 pOdomTimestamp_mavlink - 0x20008f34 pVehXDistOdom_mavlink - 0x20008f38 mavlinkSystem - 0x20008f3c pHeartbeat_mavlink - 0x20008f40 pErrorRegister_mavlink - 0x20008f44 pVehSpdOdom_mavlink - 0x20008f48 pState_mavlink - 0x20008f4c uart - 0x20008f84 pStAngAct_mavlink - COMMON 0x20008f88 0x5c obj/app/latctrl/src/latctrl.o - 0x20008f88 pLateralOffsets_latctrl - 0x20008fb0 pid - 0x20008fd4 pStAngTgtLatCtrl_latctrl - 0x20008fd8 pVehSpdAct_latctrl - 0x20008fdc pTrajectory_latctrl - 0x20008fe0 pAngOffset_latctrl - COMMON 0x20008fe4 0x40 obj/dev/servo/src/servo.o - 0x20008fe4 pSrvAngVolt_servo - 0x20008fe8 pRcOverrideSpdEnabled_servo - 0x20008fec pRcOverrideStangEnabled_servo - 0x20008ff0 pMotTrqTgtSrv_servo - 0x20008ff4 pSrvAngVoltMin_servo - 0x20008ff8 pInitAngSrv2_servo - 0x20008ffc pRcChannel4_servo - 0x20009000 pSrvAngAct_servo - 0x20009004 pMinAbsAngSrv2_servo - 0x20009008 pMaxAbsAngSrv1_servo - 0x2000900c pStAngTgt_servo - 0x20009010 pSrvAngVoltMax_servo - 0x20009014 pInitAngSrv1_servo - 0x20009018 pRcChannel1_servo - 0x2000901c pMinAbsAngSrv1_servo - 0x20009020 pMaxAbsAngSrv2_servo - COMMON 0x20009024 0x3c obj/dev/mpu9150/src/mpu9150.o - 0x20009024 pGyroRawZ_mpu9150 - 0x20009028 pAccelRawX_mpu9150 - 0x2000902c mpu9150Dev - 0x20009030 pAccelGeeY_mpu9150 - 0x20009034 pAccelRawZ_mpu9150 - 0x20009038 pOnChipTemperature - 0x2000903c pAccelGeeX_mpu9150 - 0x20009040 pGyroDpsY_mpu9150 - 0x20009044 pGyroRawX_mpu9150 - 0x20009048 pImuMeasTimeStamp - 0x2000904c pGyroDpsX_mpu9150 - 0x20009050 pAccelRawY_mpu9150 - 0x20009054 pGyroRawY_mpu9150 - 0x20009058 pGyroDpsZ_mpu9150 - 0x2000905c pAccelGeeZ_mpu9150 - COMMON 0x20009060 0x14 obj/dev/wenc/src/wenc.o - 0x20009060 pWhlTicksRR_wenc - 0x20009064 pWhlTicksFL_wenc - 0x20009068 pWhlTicksRL_wenc - 0x2000906c pWhlTicksFR_wenc - 0x20009070 pCarDirection_wenc - COMMON 0x20009074 0x4 obj/dev/sfr02_t/src/srf02_t.o - 0x20009074 pDistUs_srf02t - COMMON 0x20009078 0x24 obj/dev/rcrec/src/rcrec.o - 0x20009078 pRcChannel5_rcrec - 0x2000907c pRcChannel8_rcrec - 0x20009080 pRcChannel4_rcrec - 0x20009084 pRcChannel2_rcrec - 0x20009088 pRcChannel7_rcrec - 0x2000908c pRcChannel6_rcrec - 0x20009090 pRcState_rcrec - 0x20009094 pRcChannel1_rcrec - 0x20009098 pRcChannel3_rcrec - COMMON 0x2000909c 0x1c obj/dev/rx24f/src/rx24f.o - 0x2000909c pSrvError_rx24f - 0x200090a0 pRcOverrideStangEnabled_rx24f - 0x200090a4 pStAngTgtPiCtrl_rx24f - 0x200090a8 pSrvTempAct_rx24f - 0x200090ac pStAngTgtSel_rx24f - 0x200090b0 pRcChannel4_rx24f - 0x200090b4 pSrvAngAct_rx24f - COMMON 0x200090b8 0x378 obj/sys/paramsys/src/paramsys.o - 0x200090b8 grpStruct - COMMON 0x20009430 0x4 obj/sys/errorhandler/src/errorHandler.o - 0x20009430 pErrorRegister_errorHandler - COMMON 0x20009434 0x4 obj/per/src/clocksync.o - 0x20009434 pSyncOffset_clocksync - 0x20009438 . = ALIGN (0x4) - 0x20009438 __bss_end__ = . - 0x20009438 _ebss = __bss_end__ - -.heap 0x20009438 0x0 - 0x20009438 __end__ = . - 0x20009438 _end = __end__ - 0x20009438 end = __end__ - *(.heap*) - 0x20009438 __HeapLimit = . - -.co_stack 0x20009438 0x800 load address 0x080264c0 - 0x20009438 . = ALIGN (0x8) - *(.co_stack .co_stack.*) - .co_stack 0x20009438 0x800 obj/brd/startup/startup_stm32f4xx.o - 0x20009438 pulStack - 0x20020000 __StackTop = (ORIGIN (ram) + 0x20000) - 0x2001f800 __StackLimit = (__StackTop - SIZEOF (.co_stack)) - 0x20020000 PROVIDE (__stack, __StackTop) - 0x00000001 ASSERT ((__StackLimit >= __HeapLimit), region ram overflowed with stack) -LOAD /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a -LOAD /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a -START GROUP -LOAD /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a -LOAD /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a -LOAD /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libc_s.a -END GROUP -START GROUP -LOAD /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a -LOAD /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libc_s.a -END GROUP -OUTPUT(vlx.elf elf32-littlearm) - -.debug_info 0x00000000 0x13b21 - .debug_info 0x00000000 0x1c7 obj/app/rx24fctrl/src/rx24fctrl.o - .debug_info 0x000001c7 0x3a9 obj/app/main.o - .debug_info 0x00000570 0x36a obj/app/odom/src/odom.o - .debug_info 0x000008da 0x243 obj/app/app.o - .debug_info 0x00000b1d 0x2a7 obj/app/stm/src/stm.o - .debug_info 0x00000dc4 0x3a6 obj/app/vehspdctrl/src/vehspdctrl.o - .debug_info 0x0000116a 0x2ed obj/app/stangproc/src/stangproc.o - .debug_info 0x00001457 0x26c obj/app/stangsel/src/stangsel.o - .debug_info 0x000016c3 0x2070 obj/app/mavlink/src/mavlink.o - .debug_info 0x00003733 0x2d6 obj/app/latctrl/src/latctrl.o - .debug_info 0x00003a09 0x5d4 obj/dev/servo/src/servo.o - .debug_info 0x00003fdd 0x521 obj/dev/mpu9150/src/mpu9150.o - .debug_info 0x000044fe 0x3ee obj/dev/wenc/src/wenc.o - .debug_info 0x000048ec 0x342 obj/dev/sfr02_t/src/srf02_t.o - .debug_info 0x00004c2e 0x477 obj/dev/rcrec/src/rcrec.o - .debug_info 0x000050a5 0xd4c obj/dev/rx24f/src/rx24f.o - .debug_info 0x00005df1 0xa79 obj/sys/sched/src/scheduler.o - .debug_info 0x0000686a 0x441 obj/sys/paramsys/src/paramp.o - .debug_info 0x00006cab 0x82a obj/sys/paramsys/src/paramsys.o - .debug_info 0x000074d5 0x330 obj/sys/paramsys/src/paramlist.o - .debug_info 0x00007805 0x3b9 obj/sys/systime/src/systime.o - .debug_info 0x00007bbe 0x58 obj/sys/errorhandler/src/errorList.o - .debug_info 0x00007c16 0x22d obj/sys/errorhandler/src/errorHandler.o - .debug_info 0x00007e43 0x20f obj/sys/algo/src/pid.o - .debug_info 0x00008052 0x15a obj/sys/algo/src/pt1.o - .debug_info 0x000081ac 0x37a obj/sys/util/src/ringbuf.o - .debug_info 0x00008526 0x920 obj/sys/util/src/io.o - .debug_info 0x00008e46 0xcf4 obj/sys/sigp/src/sigp.o - .debug_info 0x00009b3a 0x88b obj/per/src/eict.o - .debug_info 0x0000a3c5 0x652 obj/per/src/clocksync.o - .debug_info 0x0000aa17 0x8b6 obj/per/src/i2c2.o - .debug_info 0x0000b2cd 0x10b obj/per/src/irq.o - .debug_info 0x0000b3d8 0xc07 obj/per/src/uart.o - .debug_info 0x0000bfdf 0x4b0 obj/per/src/gpio.o - .debug_info 0x0000c48f 0x7ad obj/per/src/pwm.o - .debug_info 0x0000cc3c 0x863 obj/per/src/ict.o - .debug_info 0x0000d49f 0x1c64 obj/brd/src/stm32f4xx_tim.o - .debug_info 0x0000f103 0x761 obj/brd/src/stm32f4xx_flash.o - .debug_info 0x0000f864 0x608 obj/brd/src/stm32f4xx_gpio.o - .debug_info 0x0000fe6c 0x50e obj/brd/src/stm32f4xx_pwr.o - .debug_info 0x0001037a 0x26f obj/brd/src/stm32f4xx_syscfg.o - .debug_info 0x000105e9 0x360 obj/brd/src/stm32f4xx_exti.o - .debug_info 0x00010949 0x556 obj/brd/src/misc.o - .debug_info 0x00010e9f 0x9c5 obj/brd/src/stm32f4xx_usart.o - .debug_info 0x00011864 0xc60 obj/brd/src/stm32f4xx_rcc.o - .debug_info 0x000124c4 0xb8a obj/brd/src/stm32f4xx_i2c.o - .debug_info 0x0001304e 0x5a2 obj/brd/startup/system_stm32f4xx.o - .debug_info 0x000135f0 0x309 obj/brd/startup/RCC_Configuration.o - .debug_info 0x000138f9 0x137 obj/brd/startup/stm32f4xx_it.o - .debug_info 0x00013a30 0xf1 obj/brd/startup/startup_stm32f4xx.o - -.debug_abbrev 0x00000000 0x3f27 - .debug_abbrev 0x00000000 0xe4 obj/app/rx24fctrl/src/rx24fctrl.o - .debug_abbrev 0x000000e4 0xe8 obj/app/main.o - .debug_abbrev 0x000001cc 0xd7 obj/app/odom/src/odom.o - .debug_abbrev 0x000002a3 0xfb obj/app/app.o - .debug_abbrev 0x0000039e 0xf3 obj/app/stm/src/stm.o - .debug_abbrev 0x00000491 0x165 obj/app/vehspdctrl/src/vehspdctrl.o - .debug_abbrev 0x000005f6 0x110 obj/app/stangproc/src/stangproc.o - .debug_abbrev 0x00000706 0x108 obj/app/stangsel/src/stangsel.o - .debug_abbrev 0x0000080e 0x364 obj/app/mavlink/src/mavlink.o - .debug_abbrev 0x00000b72 0x118 obj/app/latctrl/src/latctrl.o - .debug_abbrev 0x00000c8a 0x18c obj/dev/servo/src/servo.o - .debug_abbrev 0x00000e16 0x142 obj/dev/mpu9150/src/mpu9150.o - .debug_abbrev 0x00000f58 0x11d obj/dev/wenc/src/wenc.o - .debug_abbrev 0x00001075 0x105 obj/dev/sfr02_t/src/srf02_t.o - .debug_abbrev 0x0000117a 0x14d obj/dev/rcrec/src/rcrec.o - .debug_abbrev 0x000012c7 0x261 obj/dev/rx24f/src/rx24f.o - .debug_abbrev 0x00001528 0x2c2 obj/sys/sched/src/scheduler.o - .debug_abbrev 0x000017ea 0xe6 obj/sys/paramsys/src/paramp.o - .debug_abbrev 0x000018d0 0x16b obj/sys/paramsys/src/paramsys.o - .debug_abbrev 0x00001a3b 0xf0 obj/sys/paramsys/src/paramlist.o - .debug_abbrev 0x00001b2b 0x114 obj/sys/systime/src/systime.o - .debug_abbrev 0x00001c3f 0x4e obj/sys/errorhandler/src/errorList.o - .debug_abbrev 0x00001c8d 0x102 obj/sys/errorhandler/src/errorHandler.o - .debug_abbrev 0x00001d8f 0xd9 obj/sys/algo/src/pid.o - .debug_abbrev 0x00001e68 0xe6 obj/sys/algo/src/pt1.o - .debug_abbrev 0x00001f4e 0xf8 obj/sys/util/src/ringbuf.o - .debug_abbrev 0x00002046 0x1bf obj/sys/util/src/io.o - .debug_abbrev 0x00002205 0xb9 obj/sys/sigp/src/sigp.o - .debug_abbrev 0x000022be 0x156 obj/per/src/eict.o - .debug_abbrev 0x00002414 0x14d obj/per/src/clocksync.o - .debug_abbrev 0x00002561 0x15c obj/per/src/i2c2.o - .debug_abbrev 0x000026bd 0x87 obj/per/src/irq.o - .debug_abbrev 0x00002744 0x1d0 obj/per/src/uart.o - .debug_abbrev 0x00002914 0x155 obj/per/src/gpio.o - .debug_abbrev 0x00002a69 0x11b obj/per/src/pwm.o - .debug_abbrev 0x00002b84 0x156 obj/per/src/ict.o - .debug_abbrev 0x00002cda 0x189 obj/brd/src/stm32f4xx_tim.o - .debug_abbrev 0x00002e63 0x198 obj/brd/src/stm32f4xx_flash.o - .debug_abbrev 0x00002ffb 0x1a5 obj/brd/src/stm32f4xx_gpio.o - .debug_abbrev 0x000031a0 0x181 obj/brd/src/stm32f4xx_pwr.o - .debug_abbrev 0x00003321 0x133 obj/brd/src/stm32f4xx_syscfg.o - .debug_abbrev 0x00003454 0x1a7 obj/brd/src/stm32f4xx_exti.o - .debug_abbrev 0x000035fb 0x147 obj/brd/src/misc.o - .debug_abbrev 0x00003742 0x157 obj/brd/src/stm32f4xx_usart.o - .debug_abbrev 0x00003899 0x1e5 obj/brd/src/stm32f4xx_rcc.o - .debug_abbrev 0x00003a7e 0x166 obj/brd/src/stm32f4xx_i2c.o - .debug_abbrev 0x00003be4 0x138 obj/brd/startup/system_stm32f4xx.o - .debug_abbrev 0x00003d1c 0xf2 obj/brd/startup/RCC_Configuration.o - .debug_abbrev 0x00003e0e 0x67 obj/brd/startup/stm32f4xx_it.o - .debug_abbrev 0x00003e75 0xb2 obj/brd/startup/startup_stm32f4xx.o - -.debug_aranges 0x00000000 0x14c0 - .debug_aranges - 0x00000000 0x28 obj/app/rx24fctrl/src/rx24fctrl.o - .debug_aranges - 0x00000028 0x20 obj/app/main.o - .debug_aranges - 0x00000048 0x28 obj/app/odom/src/odom.o - .debug_aranges - 0x00000070 0x38 obj/app/app.o - .debug_aranges - 0x000000a8 0x28 obj/app/stm/src/stm.o - .debug_aranges - 0x000000d0 0x30 obj/app/vehspdctrl/src/vehspdctrl.o - .debug_aranges - 0x00000100 0x40 obj/app/stangproc/src/stangproc.o - .debug_aranges - 0x00000140 0x28 obj/app/stangsel/src/stangsel.o - .debug_aranges - 0x00000168 0x1d8 obj/app/mavlink/src/mavlink.o - .debug_aranges - 0x00000340 0x28 obj/app/latctrl/src/latctrl.o - .debug_aranges - 0x00000368 0x70 obj/dev/servo/src/servo.o - .debug_aranges - 0x000003d8 0x50 obj/dev/mpu9150/src/mpu9150.o - .debug_aranges - 0x00000428 0x38 obj/dev/wenc/src/wenc.o - .debug_aranges - 0x00000460 0x48 obj/dev/sfr02_t/src/srf02_t.o - .debug_aranges - 0x000004a8 0x28 obj/dev/rcrec/src/rcrec.o - .debug_aranges - 0x000004d0 0x90 obj/dev/rx24f/src/rx24f.o - .debug_aranges - 0x00000560 0xa0 obj/sys/sched/src/scheduler.o - .debug_aranges - 0x00000600 0x20 obj/sys/paramsys/src/paramp.o - .debug_aranges - 0x00000620 0x58 obj/sys/paramsys/src/paramsys.o - .debug_aranges - 0x00000678 0x20 obj/sys/paramsys/src/paramlist.o - .debug_aranges - 0x00000698 0x38 obj/sys/systime/src/systime.o - .debug_aranges - 0x000006d0 0x18 obj/sys/errorhandler/src/errorList.o - .debug_aranges - 0x000006e8 0x38 obj/sys/errorhandler/src/errorHandler.o - .debug_aranges - 0x00000720 0x28 obj/sys/algo/src/pid.o - .debug_aranges - 0x00000748 0x28 obj/sys/algo/src/pt1.o - .debug_aranges - 0x00000770 0x48 obj/sys/util/src/ringbuf.o - .debug_aranges - 0x000007b8 0x70 obj/sys/util/src/io.o - .debug_aranges - 0x00000828 0x20 obj/sys/sigp/src/sigp.o - .debug_aranges - 0x00000848 0x40 obj/per/src/eict.o - .debug_aranges - 0x00000888 0x28 obj/per/src/clocksync.o - .debug_aranges - 0x000008b0 0x58 obj/per/src/i2c2.o - .debug_aranges - 0x00000908 0x28 obj/per/src/irq.o - .debug_aranges - 0x00000930 0x78 obj/per/src/uart.o - .debug_aranges - 0x000009a8 0x48 obj/per/src/gpio.o - .debug_aranges - 0x000009f0 0x38 obj/per/src/pwm.o - .debug_aranges - 0x00000a28 0x28 obj/per/src/ict.o - .debug_aranges - 0x00000a50 0x2f8 obj/brd/src/stm32f4xx_tim.o - .debug_aranges - 0x00000d48 0x118 obj/brd/src/stm32f4xx_flash.o - .debug_aranges - 0x00000e60 0x88 obj/brd/src/stm32f4xx_gpio.o - .debug_aranges - 0x00000ee8 0x78 obj/brd/src/stm32f4xx_pwr.o - .debug_aranges - 0x00000f60 0x48 obj/brd/src/stm32f4xx_syscfg.o - .debug_aranges - 0x00000fa8 0x58 obj/brd/src/stm32f4xx_exti.o - .debug_aranges - 0x00001000 0x40 obj/brd/src/misc.o - .debug_aranges - 0x00001040 0x100 obj/brd/src/stm32f4xx_usart.o - .debug_aranges - 0x00001140 0x180 obj/brd/src/stm32f4xx_rcc.o - .debug_aranges - 0x000012c0 0x130 obj/brd/src/stm32f4xx_i2c.o - .debug_aranges - 0x000013f0 0x30 obj/brd/startup/system_stm32f4xx.o - .debug_aranges - 0x00001420 0x20 obj/brd/startup/RCC_Configuration.o - .debug_aranges - 0x00001440 0x58 obj/brd/startup/stm32f4xx_it.o - .debug_aranges - 0x00001498 0x28 obj/brd/startup/startup_stm32f4xx.o - -.debug_ranges 0x00000000 0x11b0 - .debug_ranges 0x00000000 0x18 obj/app/rx24fctrl/src/rx24fctrl.o - .debug_ranges 0x00000018 0x10 obj/app/main.o - .debug_ranges 0x00000028 0x18 obj/app/odom/src/odom.o - .debug_ranges 0x00000040 0x28 obj/app/app.o - .debug_ranges 0x00000068 0x18 obj/app/stm/src/stm.o - .debug_ranges 0x00000080 0x38 obj/app/vehspdctrl/src/vehspdctrl.o - .debug_ranges 0x000000b8 0x30 obj/app/stangproc/src/stangproc.o - .debug_ranges 0x000000e8 0x18 obj/app/stangsel/src/stangsel.o - .debug_ranges 0x00000100 0x1c8 obj/app/mavlink/src/mavlink.o - .debug_ranges 0x000002c8 0x18 obj/app/latctrl/src/latctrl.o - .debug_ranges 0x000002e0 0x60 obj/dev/servo/src/servo.o - .debug_ranges 0x00000340 0x40 obj/dev/mpu9150/src/mpu9150.o - .debug_ranges 0x00000380 0x28 obj/dev/wenc/src/wenc.o - .debug_ranges 0x000003a8 0x38 obj/dev/sfr02_t/src/srf02_t.o - .debug_ranges 0x000003e0 0x18 obj/dev/rcrec/src/rcrec.o - .debug_ranges 0x000003f8 0x80 obj/dev/rx24f/src/rx24f.o - .debug_ranges 0x00000478 0x90 obj/sys/sched/src/scheduler.o - .debug_ranges 0x00000508 0x10 obj/sys/paramsys/src/paramp.o - .debug_ranges 0x00000518 0x48 obj/sys/paramsys/src/paramsys.o - .debug_ranges 0x00000560 0x10 obj/sys/paramsys/src/paramlist.o - .debug_ranges 0x00000570 0x28 obj/sys/systime/src/systime.o - .debug_ranges 0x00000598 0x28 obj/sys/errorhandler/src/errorHandler.o - .debug_ranges 0x000005c0 0x18 obj/sys/algo/src/pid.o - .debug_ranges 0x000005d8 0x18 obj/sys/algo/src/pt1.o - .debug_ranges 0x000005f0 0x38 obj/sys/util/src/ringbuf.o - .debug_ranges 0x00000628 0x60 obj/sys/util/src/io.o - .debug_ranges 0x00000688 0x10 obj/sys/sigp/src/sigp.o - .debug_ranges 0x00000698 0x30 obj/per/src/eict.o - .debug_ranges 0x000006c8 0x18 obj/per/src/clocksync.o - .debug_ranges 0x000006e0 0x48 obj/per/src/i2c2.o - .debug_ranges 0x00000728 0x18 obj/per/src/irq.o - .debug_ranges 0x00000740 0x68 obj/per/src/uart.o - .debug_ranges 0x000007a8 0x38 obj/per/src/gpio.o - .debug_ranges 0x000007e0 0x28 obj/per/src/pwm.o - .debug_ranges 0x00000808 0x18 obj/per/src/ict.o - .debug_ranges 0x00000820 0x2e8 obj/brd/src/stm32f4xx_tim.o - .debug_ranges 0x00000b08 0x108 obj/brd/src/stm32f4xx_flash.o - .debug_ranges 0x00000c10 0x78 obj/brd/src/stm32f4xx_gpio.o - .debug_ranges 0x00000c88 0x68 obj/brd/src/stm32f4xx_pwr.o - .debug_ranges 0x00000cf0 0x38 obj/brd/src/stm32f4xx_syscfg.o - .debug_ranges 0x00000d28 0x48 obj/brd/src/stm32f4xx_exti.o - .debug_ranges 0x00000d70 0x30 obj/brd/src/misc.o - .debug_ranges 0x00000da0 0xf0 obj/brd/src/stm32f4xx_usart.o - .debug_ranges 0x00000e90 0x170 obj/brd/src/stm32f4xx_rcc.o - .debug_ranges 0x00001000 0x120 obj/brd/src/stm32f4xx_i2c.o - .debug_ranges 0x00001120 0x20 obj/brd/startup/system_stm32f4xx.o - .debug_ranges 0x00001140 0x10 obj/brd/startup/RCC_Configuration.o - .debug_ranges 0x00001150 0x48 obj/brd/startup/stm32f4xx_it.o - .debug_ranges 0x00001198 0x18 obj/brd/startup/startup_stm32f4xx.o - -.debug_line 0x00000000 0x88c1 - .debug_line 0x00000000 0x160 obj/app/rx24fctrl/src/rx24fctrl.o - .debug_line 0x00000160 0x18d obj/app/main.o - .debug_line 0x000002ed 0x17c obj/app/odom/src/odom.o - .debug_line 0x00000469 0x1be obj/app/app.o - .debug_line 0x00000627 0x1e3 obj/app/stm/src/stm.o - .debug_line 0x0000080a 0x231 obj/app/vehspdctrl/src/vehspdctrl.o - .debug_line 0x00000a3b 0x1b2 obj/app/stangproc/src/stangproc.o - .debug_line 0x00000bed 0x1e1 obj/app/stangsel/src/stangsel.o - .debug_line 0x00000dce 0xb78 obj/app/mavlink/src/mavlink.o - .debug_line 0x00001946 0x181 obj/app/latctrl/src/latctrl.o - .debug_line 0x00001ac7 0x267 obj/dev/servo/src/servo.o - .debug_line 0x00001d2e 0x38c obj/dev/mpu9150/src/mpu9150.o - .debug_line 0x000020ba 0x1dc obj/dev/wenc/src/wenc.o - .debug_line 0x00002296 0x1a8 obj/dev/sfr02_t/src/srf02_t.o - .debug_line 0x0000243e 0x195 obj/dev/rcrec/src/rcrec.o - .debug_line 0x000025d3 0x499 obj/dev/rx24f/src/rx24f.o - .debug_line 0x00002a6c 0x30f obj/sys/sched/src/scheduler.o - .debug_line 0x00002d7b 0x131 obj/sys/paramsys/src/paramp.o - .debug_line 0x00002eac 0x2d5 obj/sys/paramsys/src/paramsys.o - .debug_line 0x00003181 0xdc6 obj/sys/paramsys/src/paramlist.o - .debug_line 0x00003f47 0x18f obj/sys/systime/src/systime.o - .debug_line 0x000040d6 0x41 obj/sys/errorhandler/src/errorList.o - .debug_line 0x00004117 0x195 obj/sys/errorhandler/src/errorHandler.o - .debug_line 0x000042ac 0x170 obj/sys/algo/src/pid.o - .debug_line 0x0000441c 0x157 obj/sys/algo/src/pt1.o - .debug_line 0x00004573 0x206 obj/sys/util/src/ringbuf.o - .debug_line 0x00004779 0x47b obj/sys/util/src/io.o - .debug_line 0x00004bf4 0xca obj/sys/sigp/src/sigp.o - .debug_line 0x00004cbe 0x1eb obj/per/src/eict.o - .debug_line 0x00004ea9 0x19c obj/per/src/clocksync.o - .debug_line 0x00005045 0x2c5 obj/per/src/i2c2.o - .debug_line 0x0000530a 0x150 obj/per/src/irq.o - .debug_line 0x0000545a 0x309 obj/per/src/uart.o - .debug_line 0x00005763 0x2a0 obj/per/src/gpio.o - .debug_line 0x00005a03 0x241 obj/per/src/pwm.o - .debug_line 0x00005c44 0x1af obj/per/src/ict.o - .debug_line 0x00005df3 0x9c6 obj/brd/src/stm32f4xx_tim.o - .debug_line 0x000067b9 0x409 obj/brd/src/stm32f4xx_flash.o - .debug_line 0x00006bc2 0x2a0 obj/brd/src/stm32f4xx_gpio.o - .debug_line 0x00006e62 0x253 obj/brd/src/stm32f4xx_pwr.o - .debug_line 0x000070b5 0x1a7 obj/brd/src/stm32f4xx_syscfg.o - .debug_line 0x0000725c 0x206 obj/brd/src/stm32f4xx_exti.o - .debug_line 0x00007462 0x1a6 obj/brd/src/misc.o - .debug_line 0x00007608 0x41f obj/brd/src/stm32f4xx_usart.o - .debug_line 0x00007a27 0x50e obj/brd/src/stm32f4xx_rcc.o - .debug_line 0x00007f35 0x47c obj/brd/src/stm32f4xx_i2c.o - .debug_line 0x000083b1 0x19b obj/brd/startup/system_stm32f4xx.o - .debug_line 0x0000854c 0x163 obj/brd/startup/RCC_Configuration.o - .debug_line 0x000086af 0x19e obj/brd/startup/stm32f4xx_it.o - .debug_line 0x0000884d 0x74 obj/brd/startup/startup_stm32f4xx.o - -.debug_str 0x00000000 0x706b - .debug_str 0x00000000 0x26f obj/app/rx24fctrl/src/rx24fctrl.o - 0x2ca (size before relaxing) - .debug_str 0x0000026f 0x262 obj/app/main.o - 0x470 (size before relaxing) - .debug_str 0x000004d1 0x21d obj/app/odom/src/odom.o - 0x438 (size before relaxing) - .debug_str 0x000006ee 0xe5 obj/app/app.o - 0x32f (size before relaxing) - .debug_str 0x000007d3 0x1bd obj/app/stm/src/stm.o - 0x41c (size before relaxing) - .debug_str 0x00000990 0x132 obj/app/vehspdctrl/src/vehspdctrl.o - 0x440 (size before relaxing) - .debug_str 0x00000ac2 0x1ba obj/app/stangproc/src/stangproc.o - 0x3e6 (size before relaxing) - .debug_str 0x00000c7c 0xa8 obj/app/stangsel/src/stangsel.o - 0x3fe (size before relaxing) - .debug_str 0x00000d24 0x12c8 obj/app/mavlink/src/mavlink.o - 0x17e8 (size before relaxing) - .debug_str 0x00001fec 0xad obj/app/latctrl/src/latctrl.o - 0x320 (size before relaxing) - .debug_str 0x00002099 0x3cd obj/dev/servo/src/servo.o - 0x623 (size before relaxing) - .debug_str 0x00002466 0x25d obj/dev/mpu9150/src/mpu9150.o - 0x4a2 (size before relaxing) - .debug_str 0x000026c3 0x19d obj/dev/wenc/src/wenc.o - 0x4fe (size before relaxing) - .debug_str 0x00002860 0x12e obj/dev/sfr02_t/src/srf02_t.o - 0x39d (size before relaxing) - .debug_str 0x0000298e 0x1f7 obj/dev/rcrec/src/rcrec.o - 0x449 (size before relaxing) - .debug_str 0x00002b85 0x512 obj/dev/rx24f/src/rx24f.o - 0x9a1 (size before relaxing) - .debug_str 0x00003097 0x746 obj/sys/sched/src/scheduler.o - 0x9ae (size before relaxing) - .debug_str 0x000037dd 0x241 obj/sys/paramsys/src/paramp.o - 0x558 (size before relaxing) - .debug_str 0x00003a1e 0x271 obj/sys/paramsys/src/paramsys.o - 0x6a0 (size before relaxing) - .debug_str 0x00003c8f 0x3e obj/sys/paramsys/src/paramlist.o - 0x452 (size before relaxing) - .debug_str 0x00003ccd 0xc2 obj/sys/systime/src/systime.o - 0x3d3 (size before relaxing) - .debug_str 0x00003d8f 0x2e obj/sys/errorhandler/src/errorList.o - 0x155 (size before relaxing) - .debug_str 0x00003dbd 0xc4 obj/sys/errorhandler/src/errorHandler.o - 0x49f (size before relaxing) - .debug_str 0x00003e81 0x4b obj/sys/algo/src/pid.o - 0x24d (size before relaxing) - .debug_str 0x00003ecc 0x2f obj/sys/algo/src/pt1.o - 0x222 (size before relaxing) - .debug_str 0x00003efb 0xdb obj/sys/util/src/ringbuf.o - 0x32b (size before relaxing) - .debug_str 0x00003fd6 0x214 obj/sys/util/src/io.o - 0x507 (size before relaxing) - .debug_str 0x000041ea 0x2f2 obj/sys/sigp/src/sigp.o - 0xc3b (size before relaxing) - .debug_str 0x000044dc 0x326 obj/per/src/eict.o - 0xb61 (size before relaxing) - .debug_str 0x00004802 0x13b obj/per/src/clocksync.o - 0xa86 (size before relaxing) - .debug_str 0x0000493d 0x1d9 obj/per/src/i2c2.o - 0xb90 (size before relaxing) - .debug_str 0x00004b16 0x29 obj/per/src/irq.o - 0x217 (size before relaxing) - .debug_str 0x00004b3f 0x215 obj/per/src/uart.o - 0xcee (size before relaxing) - .debug_str 0x00004d54 0x63 obj/per/src/gpio.o - 0x556 (size before relaxing) - .debug_str 0x00004db7 0x12b obj/per/src/pwm.o - 0x745 (size before relaxing) - .debug_str 0x00004ee2 0x3a obj/per/src/ict.o - 0xb53 (size before relaxing) - .debug_str 0x00004f1c 0x986 obj/brd/src/stm32f4xx_tim.o - 0xe3c (size before relaxing) - .debug_str 0x000058a2 0x3bb obj/brd/src/stm32f4xx_flash.o - 0x616 (size before relaxing) - .debug_str 0x00005c5d 0x157 obj/brd/src/stm32f4xx_gpio.o - 0x50f (size before relaxing) - .debug_str 0x00005db4 0x15d obj/brd/src/stm32f4xx_pwr.o - 0x3fb (size before relaxing) - .debug_str 0x00005f11 0x132 obj/brd/src/stm32f4xx_syscfg.o - 0x360 (size before relaxing) - .debug_str 0x00006043 0xcc obj/brd/src/stm32f4xx_exti.o - 0x3d7 (size before relaxing) - .debug_str 0x0000610f 0xcb obj/brd/src/misc.o - 0x44c (size before relaxing) - .debug_str 0x000061da 0x380 obj/brd/src/stm32f4xx_usart.o - 0x6fb (size before relaxing) - .debug_str 0x0000655a 0x5ca obj/brd/src/stm32f4xx_rcc.o - 0x8d1 (size before relaxing) - .debug_str 0x00006b24 0x34d obj/brd/src/stm32f4xx_i2c.o - 0x71e (size before relaxing) - .debug_str 0x00006e71 0x75 obj/brd/startup/system_stm32f4xx.o - 0x425 (size before relaxing) - .debug_str 0x00006ee6 0x69 obj/brd/startup/RCC_Configuration.o - 0x37f (size before relaxing) - .debug_str 0x00006f4f 0x9b obj/brd/startup/stm32f4xx_it.o - 0x272 (size before relaxing) - .debug_str 0x00006fea 0x81 obj/brd/startup/startup_stm32f4xx.o - 0x1b5 (size before relaxing) - -.comment 0x00000000 0x70 - .comment 0x00000000 0x70 obj/app/rx24fctrl/src/rx24fctrl.o - 0x71 (size before relaxing) - .comment 0x00000000 0x71 obj/app/main.o - .comment 0x00000000 0x71 obj/app/odom/src/odom.o - .comment 0x00000000 0x71 obj/app/app.o - .comment 0x00000000 0x71 obj/app/stm/src/stm.o - .comment 0x00000000 0x71 obj/app/vehspdctrl/src/vehspdctrl.o - .comment 0x00000000 0x71 obj/app/stangproc/src/stangproc.o - .comment 0x00000000 0x71 obj/app/stangsel/src/stangsel.o - .comment 0x00000000 0x71 obj/app/mavlink/src/mavlink.o - .comment 0x00000000 0x71 obj/app/latctrl/src/latctrl.o - .comment 0x00000000 0x71 obj/dev/servo/src/servo.o - .comment 0x00000000 0x71 obj/dev/mpu9150/src/mpu9150.o - .comment 0x00000000 0x71 obj/dev/wenc/src/wenc.o - .comment 0x00000000 0x71 obj/dev/sfr02_t/src/srf02_t.o - .comment 0x00000000 0x71 obj/dev/rcrec/src/rcrec.o - .comment 0x00000000 0x71 obj/dev/rx24f/src/rx24f.o - .comment 0x00000000 0x71 obj/sys/sched/src/scheduler.o - .comment 0x00000000 0x71 obj/sys/paramsys/src/paramp.o - .comment 0x00000000 0x71 obj/sys/paramsys/src/paramsys.o - .comment 0x00000000 0x71 obj/sys/paramsys/src/paramlist.o - .comment 0x00000000 0x71 obj/sys/systime/src/systime.o - .comment 0x00000000 0x71 obj/sys/errorhandler/src/errorList.o - .comment 0x00000000 0x71 obj/sys/errorhandler/src/errorHandler.o - .comment 0x00000000 0x71 obj/sys/algo/src/pid.o - .comment 0x00000000 0x71 obj/sys/algo/src/pt1.o - .comment 0x00000000 0x71 obj/sys/util/src/ringbuf.o - .comment 0x00000000 0x71 obj/sys/util/src/io.o - .comment 0x00000000 0x71 obj/sys/sigp/src/sigp.o - .comment 0x00000000 0x71 obj/per/src/eict.o - .comment 0x00000000 0x71 obj/per/src/clocksync.o - .comment 0x00000000 0x71 obj/per/src/i2c2.o - .comment 0x00000000 0x71 obj/per/src/irq.o - .comment 0x00000000 0x71 obj/per/src/uart.o - .comment 0x00000000 0x71 obj/per/src/gpio.o - .comment 0x00000000 0x71 obj/per/src/pwm.o - .comment 0x00000000 0x71 obj/per/src/ict.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_tim.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_flash.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_gpio.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_pwr.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_syscfg.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_exti.o - .comment 0x00000000 0x71 obj/brd/src/misc.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_usart.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_rcc.o - .comment 0x00000000 0x71 obj/brd/src/stm32f4xx_i2c.o - .comment 0x00000000 0x71 obj/brd/startup/system_stm32f4xx.o - .comment 0x00000000 0x71 obj/brd/startup/RCC_Configuration.o - .comment 0x00000000 0x71 obj/brd/startup/stm32f4xx_it.o - .comment 0x00000000 0x71 obj/brd/startup/startup_stm32f4xx.o - -.ARM.attributes - 0x00000000 0x37 - .ARM.attributes - 0x00000000 0x39 obj/app/rx24fctrl/src/rx24fctrl.o - .ARM.attributes - 0x00000039 0x39 obj/app/main.o - .ARM.attributes - 0x00000072 0x39 obj/app/odom/src/odom.o - .ARM.attributes - 0x000000ab 0x39 obj/app/app.o - .ARM.attributes - 0x000000e4 0x39 obj/app/stm/src/stm.o - .ARM.attributes - 0x0000011d 0x39 obj/app/vehspdctrl/src/vehspdctrl.o - .ARM.attributes - 0x00000156 0x39 obj/app/stangproc/src/stangproc.o - .ARM.attributes - 0x0000018f 0x39 obj/app/stangsel/src/stangsel.o - .ARM.attributes - 0x000001c8 0x39 obj/app/mavlink/src/mavlink.o - .ARM.attributes - 0x00000201 0x39 obj/app/latctrl/src/latctrl.o - .ARM.attributes - 0x0000023a 0x39 obj/dev/servo/src/servo.o - .ARM.attributes - 0x00000273 0x39 obj/dev/mpu9150/src/mpu9150.o - .ARM.attributes - 0x000002ac 0x39 obj/dev/wenc/src/wenc.o - .ARM.attributes - 0x000002e5 0x39 obj/dev/sfr02_t/src/srf02_t.o - .ARM.attributes - 0x0000031e 0x39 obj/dev/rcrec/src/rcrec.o - .ARM.attributes - 0x00000357 0x39 obj/dev/rx24f/src/rx24f.o - .ARM.attributes - 0x00000390 0x39 obj/sys/sched/src/scheduler.o - .ARM.attributes - 0x000003c9 0x39 obj/sys/paramsys/src/paramp.o - .ARM.attributes - 0x00000402 0x39 obj/sys/paramsys/src/paramsys.o - .ARM.attributes - 0x0000043b 0x39 obj/sys/paramsys/src/paramlist.o - .ARM.attributes - 0x00000474 0x39 obj/sys/systime/src/systime.o - .ARM.attributes - 0x000004ad 0x39 obj/sys/errorhandler/src/errorList.o - .ARM.attributes - 0x000004e6 0x39 obj/sys/errorhandler/src/errorHandler.o - .ARM.attributes - 0x0000051f 0x39 obj/sys/algo/src/pid.o - .ARM.attributes - 0x00000558 0x39 obj/sys/algo/src/pt1.o - .ARM.attributes - 0x00000591 0x39 obj/sys/util/src/ringbuf.o - .ARM.attributes - 0x000005ca 0x39 obj/sys/util/src/io.o - .ARM.attributes - 0x00000603 0x39 obj/sys/sigp/src/sigp.o - .ARM.attributes - 0x0000063c 0x39 obj/per/src/eict.o - .ARM.attributes - 0x00000675 0x39 obj/per/src/clocksync.o - .ARM.attributes - 0x000006ae 0x39 obj/per/src/i2c2.o - .ARM.attributes - 0x000006e7 0x39 obj/per/src/irq.o - .ARM.attributes - 0x00000720 0x39 obj/per/src/uart.o - .ARM.attributes - 0x00000759 0x39 obj/per/src/gpio.o - .ARM.attributes - 0x00000792 0x39 obj/per/src/pwm.o - .ARM.attributes - 0x000007cb 0x39 obj/per/src/ict.o - .ARM.attributes - 0x00000804 0x39 obj/brd/src/stm32f4xx_tim.o - .ARM.attributes - 0x0000083d 0x39 obj/brd/src/stm32f4xx_flash.o - .ARM.attributes - 0x00000876 0x39 obj/brd/src/stm32f4xx_gpio.o - .ARM.attributes - 0x000008af 0x39 obj/brd/src/stm32f4xx_pwr.o - .ARM.attributes - 0x000008e8 0x39 obj/brd/src/stm32f4xx_syscfg.o - .ARM.attributes - 0x00000921 0x39 obj/brd/src/stm32f4xx_exti.o - .ARM.attributes - 0x0000095a 0x39 obj/brd/src/misc.o - .ARM.attributes - 0x00000993 0x39 obj/brd/src/stm32f4xx_usart.o - .ARM.attributes - 0x000009cc 0x39 obj/brd/src/stm32f4xx_rcc.o - .ARM.attributes - 0x00000a05 0x39 obj/brd/src/stm32f4xx_i2c.o - .ARM.attributes - 0x00000a3e 0x39 obj/brd/startup/system_stm32f4xx.o - .ARM.attributes - 0x00000a77 0x39 obj/brd/startup/RCC_Configuration.o - .ARM.attributes - 0x00000ab0 0x39 obj/brd/startup/stm32f4xx_it.o - .ARM.attributes - 0x00000ae9 0x39 obj/brd/startup/startup_stm32f4xx.o - .ARM.attributes - 0x00000b22 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcmp.o) - .ARM.attributes - 0x00000b56 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcpy-stub.o) - .ARM.attributes - 0x00000b8a 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memset.o) - .ARM.attributes - 0x00000bbe 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-impure.o) - .ARM.attributes - 0x00000bf2 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-s_fpclassify.o) - .ARM.attributes - 0x00000c26 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_round.o) - .ARM.attributes - 0x00000c5a 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_cos.o) - .ARM.attributes - 0x00000c8e 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_sin.o) - .ARM.attributes - 0x00000cc2 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_log10.o) - .ARM.attributes - 0x00000cf6 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_pow.o) - .ARM.attributes - 0x00000d2a 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log10.o) - .ARM.attributes - 0x00000d5e 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_pow.o) - .ARM.attributes - 0x00000d92 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_sqrt.o) - .ARM.attributes - 0x00000dc6 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-ef_rem_pio2.o) - .ARM.attributes - 0x00000dfa 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_cos.o) - .ARM.attributes - 0x00000e2e 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_rem_pio2.o) - .ARM.attributes - 0x00000e62 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_sin.o) - .ARM.attributes - 0x00000e96 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_fabs.o) - .ARM.attributes - 0x00000eca 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_finite.o) - .ARM.attributes - 0x00000efe 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_lib_ver.o) - .ARM.attributes - 0x00000f32 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_matherr.o) - .ARM.attributes - 0x00000f66 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_nan.o) - .ARM.attributes - 0x00000f9a 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_rint.o) - .ARM.attributes - 0x00000fce 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_scalbn.o) - .ARM.attributes - 0x00001002 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_fabs.o) - .ARM.attributes - 0x00001036 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_floor.o) - .ARM.attributes - 0x0000106a 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_scalbn.o) - .ARM.attributes - 0x0000109e 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log.o) - .ARM.attributes - 0x000010d2 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_copysign.o) - .ARM.attributes - 0x00001106 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_copysign.o) - .ARM.attributes - 0x0000113a 0x22 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_addsubdf3.o) - .ARM.attributes - 0x0000115c 0x22 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_muldivdf3.o) - .ARM.attributes - 0x0000117e 0x22 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_cmpdf2.o) - .ARM.attributes - 0x000011a0 0x22 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_fixdfsi.o) - .ARM.attributes - 0x000011c2 0x22 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_fixunsdfsi.o) - .ARM.attributes - 0x000011e4 0x22 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/fpu/libgcc.a(_arm_truncdfsf2.o) - .ARM.attributes - 0x00001206 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-errno.o) - -.debug_frame 0x00000000 0x42b8 - .debug_frame 0x00000000 0x48 obj/app/rx24fctrl/src/rx24fctrl.o - .debug_frame 0x00000048 0x30 obj/app/main.o - .debug_frame 0x00000078 0x48 obj/app/odom/src/odom.o - .debug_frame 0x000000c0 0x80 obj/app/app.o - .debug_frame 0x00000140 0x4c obj/app/stm/src/stm.o - .debug_frame 0x0000018c 0x6c obj/app/vehspdctrl/src/vehspdctrl.o - .debug_frame 0x000001f8 0xa0 obj/app/stangproc/src/stangproc.o - .debug_frame 0x00000298 0x48 obj/app/stangsel/src/stangsel.o - .debug_frame 0x000002e0 0x6d0 obj/app/mavlink/src/mavlink.o - .debug_frame 0x000009b0 0x4c obj/app/latctrl/src/latctrl.o - .debug_frame 0x000009fc 0x15c obj/dev/servo/src/servo.o - .debug_frame 0x00000b58 0x100 obj/dev/mpu9150/src/mpu9150.o - .debug_frame 0x00000c58 0x88 obj/dev/wenc/src/wenc.o - .debug_frame 0x00000ce0 0xc8 obj/dev/sfr02_t/src/srf02_t.o - .debug_frame 0x00000da8 0x4c obj/dev/rcrec/src/rcrec.o - .debug_frame 0x00000df4 0x208 obj/dev/rx24f/src/rx24f.o - .debug_frame 0x00000ffc 0x1f8 obj/sys/sched/src/scheduler.o - .debug_frame 0x000011f4 0x2c obj/sys/paramsys/src/paramp.o - .debug_frame 0x00001220 0x104 obj/sys/paramsys/src/paramsys.o - .debug_frame 0x00001324 0x30 obj/sys/paramsys/src/paramlist.o - .debug_frame 0x00001354 0x80 obj/sys/systime/src/systime.o - .debug_frame 0x000013d4 0x88 obj/sys/errorhandler/src/errorHandler.o - .debug_frame 0x0000145c 0x48 obj/sys/algo/src/pid.o - .debug_frame 0x000014a4 0x48 obj/sys/algo/src/pt1.o - .debug_frame 0x000014ec 0xcc obj/sys/util/src/ringbuf.o - .debug_frame 0x000015b8 0x190 obj/sys/util/src/io.o - .debug_frame 0x00001748 0x2c obj/sys/sigp/src/sigp.o - .debug_frame 0x00001774 0xac obj/per/src/eict.o - .debug_frame 0x00001820 0x50 obj/per/src/clocksync.o - .debug_frame 0x00001870 0x108 obj/per/src/i2c2.o - .debug_frame 0x00001978 0x40 obj/per/src/irq.o - .debug_frame 0x000019b8 0x18c obj/per/src/uart.o - .debug_frame 0x00001b44 0xd0 obj/per/src/gpio.o - .debug_frame 0x00001c14 0x90 obj/per/src/pwm.o - .debug_frame 0x00001ca4 0x4c obj/per/src/ict.o - .debug_frame 0x00001cf0 0xa3c obj/brd/src/stm32f4xx_tim.o - .debug_frame 0x0000272c 0x398 obj/brd/src/stm32f4xx_flash.o - .debug_frame 0x00002ac4 0x19c obj/brd/src/stm32f4xx_gpio.o - .debug_frame 0x00002c60 0x15c obj/brd/src/stm32f4xx_pwr.o - .debug_frame 0x00002dbc 0xbc obj/brd/src/stm32f4xx_syscfg.o - .debug_frame 0x00002e78 0xec obj/brd/src/stm32f4xx_exti.o - .debug_frame 0x00002f64 0x9c obj/brd/src/misc.o - .debug_frame 0x00003000 0x344 obj/brd/src/stm32f4xx_usart.o - .debug_frame 0x00003344 0x4f4 obj/brd/src/stm32f4xx_rcc.o - .debug_frame 0x00003838 0x3ec obj/brd/src/stm32f4xx_i2c.o - .debug_frame 0x00003c24 0x64 obj/brd/startup/system_stm32f4xx.o - .debug_frame 0x00003c88 0x30 obj/brd/startup/RCC_Configuration.o - .debug_frame 0x00003cb8 0xd0 obj/brd/startup/stm32f4xx_it.o - .debug_frame 0x00003d88 0x48 obj/brd/startup/startup_stm32f4xx.o - .debug_frame 0x00003dd0 0x2c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcmp.o) - .debug_frame 0x00003dfc 0x28 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memcpy-stub.o) - .debug_frame 0x00003e24 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-memset.o) - .debug_frame 0x00003e44 0x28 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-s_fpclassify.o) - .debug_frame 0x00003e6c 0x2c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_round.o) - .debug_frame 0x00003e98 0x28 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_cos.o) - .debug_frame 0x00003ec0 0x28 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_sin.o) - .debug_frame 0x00003ee8 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_log10.o) - .debug_frame 0x00003f1c 0x40 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-w_pow.o) - .debug_frame 0x00003f5c 0x34 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log10.o) - .debug_frame 0x00003f90 0x44 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_pow.o) - .debug_frame 0x00003fd4 0x3c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_sqrt.o) - .debug_frame 0x00004010 0x30 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-ef_rem_pio2.o) - .debug_frame 0x00004040 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_cos.o) - .debug_frame 0x00004060 0x44 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_rem_pio2.o) - .debug_frame 0x000040a4 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-kf_sin.o) - .debug_frame 0x000040c4 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_fabs.o) - .debug_frame 0x000040e4 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_finite.o) - .debug_frame 0x00004104 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_matherr.o) - .debug_frame 0x00004124 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_nan.o) - .debug_frame 0x00004144 0x30 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_rint.o) - .debug_frame 0x00004174 0x2c /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_scalbn.o) - .debug_frame 0x000041a0 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_fabs.o) - .debug_frame 0x000041c0 0x28 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_floor.o) - .debug_frame 0x000041e8 0x30 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_scalbn.o) - .debug_frame 0x00004218 0x38 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-e_log.o) - .debug_frame 0x00004250 0x28 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-s_copysign.o) - .debug_frame 0x00004278 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-sf_copysign.o) - .debug_frame 0x00004298 0x20 /home/ros/opt/gcc-arm-none-eabi-4_8-2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m/fpu/libg_s.a(lib_a-errno.o) diff --git a/backup-files/original_stm_memory b/backup-files/original_stm_memory new file mode 100644 index 0000000000000000000000000000000000000000..886709bee509a61d968d5a73afc90edc44b14dff Binary files /dev/null and b/backup-files/original_stm_memory differ diff --git a/doc/mainDocument/img/emmc.png b/doc/mainDocument/img/emmc.png new file mode 100644 index 0000000000000000000000000000000000000000..2decd152b37b3a4c061add4345a13d5e76f00cab Binary files /dev/null and b/doc/mainDocument/img/emmc.png differ diff --git a/doc/mainDocument/img/emmcAdapter.png b/doc/mainDocument/img/emmcAdapter.png new file mode 100644 index 0000000000000000000000000000000000000000..b1e8a46cfd4a141a59ac26c7670dd80c6927ce08 Binary files /dev/null and b/doc/mainDocument/img/emmcAdapter.png differ diff --git a/doc/mainDocument/mainDocument.tex b/doc/mainDocument/mainDocument.tex index b6e222e359c1f6820d783fb5ab3ec82d4c0e5f6b..1a3ed30c713fa9af2c990ab65374c61634d37337 100644 --- a/doc/mainDocument/mainDocument.tex +++ b/doc/mainDocument/mainDocument.tex @@ -8,7 +8,7 @@ \usepackage[inline]{enumitem} \usepackage[hidelinks]{hyperref} \usepackage{tabularx} %used for better table formatting see: https://en.wikibooks.org/wiki/LaTeX/Tables#The_tabularx_package -\usepackage[table]{xcolor} +\usepackage[table,dvipsnames]{xcolor} \usepackage{graphicx} %pictures, photos \usepackage{subfiles} %split doc into multiple .tex subfiles \graphicspath{ {./img/} } @@ -22,7 +22,7 @@ \usepackage{pdflscape} %\geometry{scale = 0.5} %for class diagram??? \usepackage{listings} -\usepackage{xcolor} + %%% GLOSSARY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \input{../glossary.tex} @@ -59,9 +59,9 @@ extendedchars=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8 %frame=single, % adds a frame around the code keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible) - keywordstyle=\color{blue}, % keyword style + keywordstyle=\color{MidnightBlue}, % keyword style language=Python, % the language of the code - %morekeywords={*,...}, % if you want to add more keywords to the set + morekeywords={echo, set, type}, % if you want to add more keywords to the set numbers=left, % where to put the line-numbers; possible values are (none, left, right) numbersep=5pt, % how far the line-numbers are from the code numberstyle=\tiny,%\color{mygray}, % the style that is used for the line-numbers @@ -70,7 +70,7 @@ showstringspaces=false, % underline spaces within strings only showtabs=false, % show tabs within strings adding particular underscores stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered - stringstyle=\color{mymauve}, % string literal style + stringstyle=\color{ForestGreen}, % string literal style tabsize=2, % sets default tabsize to 2 spaces title=\lstname % show the filename of files included with \lstinputlisting; also try caption instead of title } @@ -114,6 +114,7 @@ \tableofcontents \clearpage +% Struktur sollte mal bearbeitet werden \subfile{sections/projektbeschreibung} \subfile{sections/organisation} \subfile{sections/ausbaustufen} @@ -121,6 +122,7 @@ \subfile{sections/kommunikation} \subfile{sections/architektur} \subfile{sections/modspez} +\subfile{sections/projekt} \subfile{sections/test} \subfile{sections/auswertung} %\subfile{sections/fkt_anf(archivert)} diff --git a/doc/mainDocument/sections/architektur.tex b/doc/mainDocument/sections/architektur.tex index fa1a65a0b2788db1cfcba4f03534289757ac530d..0545eabaa332f9f0bff4e991027fede878505f4c 100644 --- a/doc/mainDocument/sections/architektur.tex +++ b/doc/mainDocument/sections/architektur.tex @@ -254,37 +254,6 @@ \end{figure} \end{landscape} - \subsection{Ordnerstruktur} - \dirtree{% - .1 catkin\textunderscore ws. - .2 src. - .3 NetworkingLib \DTcomment{Library um TCP und UDP zu nutzen}. - .3 PC \DTcomment{Programm des Steuerrechners}. - .3 PC2CarLib \DTcomment{Kommunikation zwischen Steuerrechner und Fahrzeug}. - .3 PlatoonProtocolLib \DTcomment{Kommunikation zwischen den Fahrzeugen}. - .3 car \DTcomment{Fahrzeugmodule}. - .4 include. - .5 camera. - .5 environment. - .5 lanekeeping. - .5 logging. - .5 mainNode. - .5 mavLink. - .5 ultrasonic. - .4 launch. - .4 msg. - .4 plugins. - .4 src. - .5 camera. - .5 environment. - .5 lanekeeping. - .5 logging. - .5 mainNode. - .5 mavLink. - .5 ultrasonic. - .4 test. - } - %uml-tikz stub TODO \begin{comment} \begin{tikzpicture} diff --git a/doc/mainDocument/sections/auswertung.tex b/doc/mainDocument/sections/auswertung.tex index c555b188d52df9b642b11a3053fcf7dd43beb94b..4d234803abe75542cdf8ee59c84179e0d96f31e4 100644 --- a/doc/mainDocument/sections/auswertung.tex +++ b/doc/mainDocument/sections/auswertung.tex @@ -2,4 +2,75 @@ \begin{document} \section{Auswertung} + \subsection{R\"uckblick} + \subsubsection{Probleme} + \begin{itemize} + \item Kommunikation zwischen Komminukationsprotokolldesignern und Rest des Teams + \item Kommunikation zwischen Studenten und Industriepartner + \item Meinungsverschiedenheiten bei der Softwarearchitektur + \item Zu komplizierte Architektur entworfen + \item Auto erst zum Ende des Projektes abgeschlossen + \item Meilensteine stark verfehlt + \end{itemize} + \subsubsection{Lektionen} + \begin{itemize} + \item Erstmal leichter zu implementierendes System designen und sp\"ater Performance optimieren + \item Generell noch mehr Fokus aufs Design bevor mit der Implementierung angefangen wird + \end{itemize} + + \subsection{Einzelleistung} + \subsubsection{Steven Lange} + \begin{itemize} + \item Team-Lead + \item Dokumentation + \item Autobau + \item Systemarchitektur Design + \item Software Design + \item Cruisecontrol Implementation + \item Platooncontroller Implementation + \item Medianfilter Implementation + \end{itemize} + \subsubsection{Franz Bethke} + \begin{itemize} + \item Dokumentation + \item Usecase + \item Systemarchitektur Design + \item Software Design + \item Cruisecontrol Implementation + \item Platooncontroller Implementation + \item EgoMotion Implementation + \item Medianfilter Implementation + \end{itemize} + \subsubsection{Phillip Badenhoop} + \begin{itemize} + \item Kommunikationsprotokoll Design + \item Kommunikationsprotokoll Implementation + \item Steuercomputer Implementation + \item Logging Implementation + \item Systemarchitektur Design + \item Software Design + \item MavLink + \end{itemize} + \subsubsection{Duc Anh Vu} + \begin{itemize} + \item Dokumentation + \item Usecase + \item Kommunikationsprotokoll Design + \item Systemarchitektur Design + \item Testplan Design + \item Ultraschallsensor Implementation + \end{itemize} + \subsubsection{Phuc Tran Truong} + \begin{itemize} + \item Dokumentation + \item Usecase + \item ODROID Installation und Konfiguration + \end{itemize} + \subsubsection{Noel Dan Le} + \begin{itemize} + \item Dokumentation + \item MavLink + \item ODROID Netzwerkkonfiguration + \end{itemize} + \end{document} diff --git a/doc/mainDocument/sections/modspez.tex b/doc/mainDocument/sections/modspez.tex index 4a4dcd9cc16a2067f6dcdd68a3480c53943ac8df..162e6202dec60e72eb220276d65336b2b48f5df7 100644 --- a/doc/mainDocument/sections/modspez.tex +++ b/doc/mainDocument/sections/modspez.tex @@ -2,4 +2,8 @@ \begin{document} \section{Modulspezifikationen} \input{../modules/cruiseControl/docCACC-content} + + \subsection{Ultraschallsensor} + An den Fahrzeugen ist ein Ultraschallsensor vom Modell SRF02 angebaut. + \end{document} \ No newline at end of file diff --git a/doc/mainDocument/sections/projekt.tex b/doc/mainDocument/sections/projekt.tex new file mode 100644 index 0000000000000000000000000000000000000000..775bff2ce02852678e79658134f74af36f19836b --- /dev/null +++ b/doc/mainDocument/sections/projekt.tex @@ -0,0 +1,215 @@ +\documentclass[../mainDocument.tex]{subfiles} +\begin{document} + \section{Projekt} + + \subsection{Ordnerstruktur} + \dirtree{% + .1 catkin\textunderscore ws. + .2 src. + .3 NetworkingLib \DTcomment{Library um TCP und UDP zu nutzen}. + .3 PC \DTcomment{Programm des Steuerrechners}. + .3 PC2CarLib \DTcomment{Kommunikation zwischen Steuerrechner und Fahrzeug}. + .3 PlatoonProtocolLib \DTcomment{Kommunikation zwischen den Fahrzeugen}. + .3 car \DTcomment{Fahrzeugmodule}. + .4 include. + .5 camera. + .5 environment. + .5 lanekeeping. + .5 logging. + .5 mainNode. + .5 mavLink. + .5 ultrasonic. + .4 launch. + .4 msg. + .4 plugins. + .4 src. + .5 camera. + .5 environment. + .5 lanekeeping. + .5 logging. + .5 mainNode. + .5 mavLink. + .5 ultrasonic. + .4 test. + } + + \subsection{Setup} +In diesem Abschnitt sollen die Schritte beschrieben werden, um das ODROID vollständig einzurichten. Auf das Speichermodul, die eMMC, muss das Betriebssystem Ubuntu 16.04 LTS gespielt werden. Das WLAN (eduroam) muss eingerichtet werden, um grundlegende Tools wie vim und git und die ROS Software Bibliotheken/Werkzeuge zu installieren und die Repositories der Gruppen zu klonen. + +\subsubsection{ODROID und Ubuntu} +Um das ODROID nutzen zu können, müssen wir das Betriebssystem Ubuntu 16.04 LTS installieren. Dazu benötigen wir einen Computer, die eMMC und einen microSD-Adapter. +\begin{figure}[h] +\centering +\begin{minipage}{.4\textwidth} + \centering + \includegraphics[width=2cm]{emmc} + \captionof{figure}{ODROID-XU3/XU4 eMMC 5.0 Modul, 32 GB} + \label{fig:test1} +\end{minipage}% +\hfill +\begin{minipage}{.4\textwidth} + \centering + \includegraphics[width=2cm]{emmcAdapter} + \captionof{figure}{eMMC/microSD Kartenleser-Adapter} + \label{fig:test2} +\end{minipage} +\end{figure}\\ +Eine Anleitung zur Installation von Ubuntu auf dem ODROID XU4 gibt es hier: +\url{https://scroom.de/ubuntu-16-04-lts-auf-dem-odroid-xu4-installieren/} + +Als erstes muss man die eMMC mittels microSD-Adapter an einen Computer anschließen. Diese muss man formatieren. + +Dann muss man die für das ODROID passende Ubuntu Distribution von Hardkernel herunterladen: +\url{https://wiki.odroid.com/odroid-xu4/os_images/linux/ubuntu/ubuntu} + +Dieses Image mittels unxz entpacken: + +\lstinline{unxz ubuntu-16.04.3-4.14-minimal-odroid-xu4-20171213.img.xz} + +Um nun Ubuntu auf das eMMC zu flashen, benutzt man am besten Etcher. Alternativ kann man diesen Vorgang auch mit Konsolenbefehlen durchführen. Diese findet man in der oben angegebenen Anleitung. +Für Linux Systeme gibt es Etcher als .AppImage Datei: \url{https://etcher.io} + +Um diese auszuführen: +\begin{enumerate} +\item Das AppImage ausführbar machen: + +\lstinline{chmod a+x etcher-1.3.1-x86_64.AppImage} +\item Das Programm ausführen: + +\lstinline{./etcher-1.3.1-x86_64.AppImage} +\end{enumerate} +Dann wählt man das Ubuntu Image und die eMMC aus. Dann führt Etcher den Flashvorgang inklusive Validierung durch. Dann ist es möglich, vom Computer aus auf das Dateisystem auf der eMMC zuzugreifen. Skripte oder andere Dateien, die man zur Einrichtung des ODROIDs benötigt oder die die Einrichtung erleichtern, kann man also schon an dieser Stelle auf die eMMC übertragen. +Anschließend kann man die eMMC vom Computer trennen und an das ODROID anschließen. +Dann sollte es booten. + + +Standardmäßig kann man sich mit dem Nutzernamen \textit{root} und dem Passwort \textit{odroid} anmelden. +Um das Passwort zu ändern, führt man den folgenden Befehl aus: \lstinline{sudo passwd}. Für das Semesterprojekt lautet das Passwort bei jedem fertig eingerichteten ODROID \glqq autonom1718\grqq. + +\subsubsection{WLAN (eduroam)} +Um eine WLAN-Verbindung herzustellen, benötigt man einen WLAN-Stick oder ein WLAN-Modul. Wir gehen an dieser Stelle davon aus, dass diese nach dem Plug-and-Play-Prinzip funktionieren und hier keine Einrichtung nötig ist. +Man kann mittels \lstinline{ifconfig} und \lstinline{iwconfig} überprüfen, ob die WLAN-Schnittstelle vorhanden ist und wie sie heißt. Wir gehen von nun an davon aus, dass die Schnittstelle \textit{wlan0} heißt. Andernfalls muss man den Namen der Schnittstelle im Folgenden immer anpassen. + +Der herkömmliche Weg, wie man sich mit einem WLAN-Netzwerk verbindet: +\begin{enumerate} +\item Mittels \lstinline{ifconfig wlan0 up} die WLAN-Karte anschalten. +\item Mit \lstinline{iwconfig wlan0 essid name key password} mit dem Netzwerk verbinden. Ersetze \textit{name} dem Namen des Netzwerks, \textit{password} mit dem Sicherheitsschlüssel des Netzwerks. +\item Mit \lstinline{dhclient wlan0} eine IP Adresse erhalten und mit dem WLAN- Netzwerk verbinden. +\end{enumerate} +Die WLAN-Verbindung kann man mittels \lstinline{iwconfig} und \lstinline{ping www.hu-berlin.de} überprüfen. + + +Um sich mit dem eduroam zu verbinden, sind andere Schritte nötigt. Die Einrichtung wird in der folgenden Anleitung ausführlich beschrieben: +\url{https://www.cms.hu-berlin.de/de/dl/netze/wlan/config/eduroam/linux/eduroam-linux-wpa_supp.pdf} + +Für die Einrichtung sind zwei Dateien nötig: +\begin{enumerate} +\item \href{http://www.cms.hu-berlin.de/dl/netze/wlan/config/eduroam/deutsche-telekom-root-ca-2.crt}{\texttt{deutsche-telekom-root-ca-2.crt}} +\item \href{http://www.cms.hu-berlin.de/dl/netze/wlan/config/eduroam/linux/wpa_supplicant.conf}{\texttt{wpa\_supplicant.conf}} +\end{enumerate} +Am besten lädt man diese Dateien mit einem anderen Computer herunter und kopiert diese (z.B. nach dem Flashvorgang) auf das ODROID. Ansonsten kann man die Dateien auf einen USB-Stick kopieren und diese auf das ODROID übertragen. Um auf den USB-Stick zuzugreifen, führt man folgende Schritte durch: +\begin{enumerate} +\item Mit \lstinline{lsblk} herausfinden, wie der USB-Stick heißt. Die Partition sollte in etwa so aussehen wie \lstinline{/dev/sdb1}. +\item Mit \lstinline{sudo mkdir /media/usb} einen Mount Point (Einhängepunkt) erstellen. +\item Mit \lstinline{sudo mount /dev/sdb1 /media/usb} mounten. Ãœber den Ordner \lstinline{/media/usb} kann man nun auf die Dateien im USB-Stick zugreifen. +\item Mit \lstinline{sudo umount /media/usb} unmounten, wenn man nicht mehr länger auf den USB-Stick zugreifen will. +\end{enumerate} +Alternativ lädt man die Dateien mittels \lstinline{curl} oder \lstinline{wget} vorher mit einer WLAN-Verbindung zu Hause oder via Hotspot herunter. Z.B.: +\begin{itemize} +\item \lstinline{wget http://www.cms.hu-berlin.de/dl/netze/wlan/config/eduroam/deutsche-telekom-root-ca-2.crt} +\item \lstinline{curl -O http://www.cms.hu-berlin.de/dl/netze/wlan/config/eduroam/linux/wpa_supplicant.conf} +\end{itemize} +In jedem Fall muss man die zwei Dateien in den \lstinline{/etc/wpa_supplicant} Ordner bewegen (oder mit \lstinline{cp} kopieren). Dabei muss \lstinline{/path/to} durch den entsprechenden Pfad zu den Dateien ersetzt werden. +\begin{itemize} +\item \lstinline{sudo mv /path/to/deutsche-telekom-root-ca-2.crt /etc/wpa_supplicant/} +\item \lstinline{sudo mv /path/to/wpa_supplicant.conf /etc/wpa_supplicant} +\end{itemize} +Nun muss man \lstinline{wpa_supplicant.conf} bearbeiten. Am einfachsten ist es, diese Datei schon vorher auf einem Computer zu bearbeiten. Ansonsten muss man \lstinline{vi /etc/wpa_supplicant/wpa_supplicant.conf} ausführen. Außer \lstinline{vi} ist standardmäßig kein anderer Editor auf dem ODROID installiert. Ansonsten kann man sich schon vorher via Hotspot oder zu Hause mittels \lstinline{sudo apt install vim} den Editor \lstinline{vim} installieren. Hier ist eine Anleitung, wie man \lstinline{vi} verwendet: \url{https://www.suse.com/de-de/documentation/sles10/book_sle_reference/data/sec.suse.vim.html}. + +In der \lstinline{wpa_supplicant.conf} muss man \textit{YourNameHere} durch die HU E-Mail Adresse ersetzen, also etwas wie \textit{foobar@informatik.hu-berlin.de}. \textit{YourPasswordHere} kann man durch das entsprechende Passwort ersetzen. Allerdings steht das Passwort in der Datei als Klartext und ist für jeden sichtbar, der auf die Datei als root User zugreifen kann. Alternativ kann man die Passwortzeile löschen oder auskommentieren. Dann muss man das Passwort jedes Mal eingeben, wenn man sich mit eduroam verbinden will. + +Um die Verbindung zu testen, führt man nun folgende Befehle aus: +\begin{enumerate} +\item \lstinline{sudo service network-manager stop}, um eventuelle automatische Konfigurationsversuche zu vermeiden +\item \lstinline{sudo wpa_supplicant -i wlan0 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf -d} +\end{enumerate} +Falls die Passwortzeile gelöscht wurde, muss man nun in einer neuen Konsole Ctrl+Alt+F2 +\lstinline{sudo wpa_cli} ausführen. Nach kurzer Zeit sollte eine Zeile angezeigt werden, die sagt, dass für eduroam ein Passwort nötig ist. Dann gibt man \lstinline{password 0 YourPassword} ein, wobei \textit{YourPassword} durch das entsprechende HU Passwort ersetzt werden muss. Falls die Eingabe akzeptiert wird, dann sollte eine Zeile angezeigt werden, die sagt, dass die Verbindung erfolgreich war. Aus diesem interaktiven Modus kommt man mittels \lstinline{q} heraus. +Nun kann man die WLAN-Verbindung wie zuvor mittels \lstinline{iwconfig} oder \lstinline{ping www.hu-berlin.de} überprüfen. Falls dies noch nicht funktioniert, führt man noch folgende Befehle aus, um eine neue IP Adresse zu erhalten und sich mit dem WLAN-Netzwerk zu verbinden.: +\begin{enumerate} +\item \lstinline{dhclient wlan0 -r} +\item \lstinline{dhclient wlan0} +\end{enumerate} + +Um die Änderungen permanent zu machen, bearbeiten wir \lstinline{/etc/network/interfaces}. Die Einstellungen für das WLAN-Interface sollten wie folgt aussehen: +\begin{lstlisting} +auto wlan0 +iface wlan0 inet dhcp +wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf +\end{lstlisting} +Beim nächsten Hochfahren des ODROIDs muss man, falls die Passwortzeile gelöscht wurde, den Befehl \lstinline{sudo wpa_cli} ausführen und wie zuvor beschrieben das Passwort eingeben, um sich mit dem eduroam zu verbinden. + +Nun ist es möglich, das ODROID per \lstinline{ssh} zu steuern. Die IP-Adresse des ODROIDs erfährt man mit \lstinline{ifconfig wlan0}. Anschließend kann man sich mit \lstinline{ssh root@10.42.43.1} verbinden. Die IP-Adresse muss hier entsprechend angepasst werden. Mit \lstinline{scp} ist es außerdem möglich, Daten zu übertragen. +Bsp.: \lstinline{scp foobar.txt root@10.42.43.1:/some/remote/directory} + +\subsubsection{Essentials} +Nun da das ODROID eine Internetverbindung hat, sollte man es updaten: \lstinline{sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade} + +Anschließend sollte \lstinline{git} installiert werden, damit die Repositories der Gruppen mit der Software geklont werden können: \lstinline{sudo apt install git-all} + +Der Befehl, um ein Repository zu klonen, sieht dann z.B. so aus:\\ +\lstinline{git clone https://gitlab.informatik.hu-berlin.de/adapt/ws17-HF/Gruppe-A.git}\\ +Beim Klonen, Pullen, Pushen usw. wird jedes Mal der Nutzername und das Passwort abgefragt. + +\subsubsection{ROS} +Für das Semesterprojekt wird ROS (Robot Operating System) verwendet. Konkret wird die ROS Version Lunar Loggerhead verwendet. Eine ausführliche Anleitung zur Installation gibt es hier: \url{http://wiki.ros.org/lunar/Installation/Ubuntu} + +Es empfiehlt sich, vorher auf einem Computer (mit GUI und Browser) ein Skript mit den folgenden Befehlen vorzubereiten und dieses Skript auf auf das ODROID zu kopieren, damit man dieses nur noch ausführen muss. Ansonsten muss man die Befehle manuell eintippen. +\begin{enumerate} +\item Das ODROID so einstellen, dass er Software von packags.ros.org akzeptiert:\\ +\lstinline{sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'} +\item Die Schlüssel einstellen:\\ +\lstinline{sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key}\\ \lstinline{421C365BD9FF1F717815A3895523BAEEB01FA116} +\item Den Debian Package Index aktualisieren: \lstinline{sudo apt-get update} +\item ROS-Base installieren: \lstinline{sudo apt-get install ros-lunar-ros-base} +\item \lstinline{rosdep} initialisieren:\\ +\lstinline{sudo rosdep init}\\ +\lstinline{rosdep update} +\item Die Umgebung einrichten, damit ROS Umgebungsvariablen automatisch zur Bash Session hinzugefügt werden:\\ +\lstinline{echo "source /opt/ros/lunar/setup.bash" >> ~/.bashrc}\\ +\lstinline{source ~/.bashrc} +\item Werkzeuge und andere Abhängigkeiten zum Bauen von ROS Packages installieren:\\ +\lstinline{sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential} +\end{enumerate} +Alle weiteren Schritte mit ROS werden in den ROS Tutorials beschrieben:\\ +\url{http://wiki.ros.org/ROS/Tutorials} + +\subsubsection{AdHoc Netzwerk} +Man kann die ODROIDs über ein gemeinsames WLAN-Netzwerk kommunizieren lassen. In einem Szenario, wo echte Autos in Kolonne fahren sollen, ist so ein WLAN-Netzwerk jedoch meist nicht vorhanden. +Für die drahtlose Kommunikation zwischen den ODROIDs verwenden wir daher ein AdHoc Netzwerk. +Dafür empfiehlt es sich, ein Skript zu erstellen. +\begin{lstlisting} +IFACE="wlan0" + +sudo service network-manager stop + +sudo ifconfig $IFACE down +sudo iw $IFACE set type ibss +sudo ifconfig $IFACE up + +sudo iw $IFACE ibss join SPHAF 2432 +sudo ifconfig $IFACE 10.42.43.1 +\end{lstlisting} +Dies nennen wir \lstinline{connectAdHoc.sh}. Mittels \lstinline{chmod u+x connectAdHoc.sh} macht man das Skript ausführbar und kann es dann mit \lstinline{./connectAdHoc.sh} ausführen. +Mit \lstinline{iwconfig} kann man überprüfen, ob alles funktioniert hat. + +Mit dem Skript wird ein AdHoc Netzwerk mit dem Namen \textit{SPHAF} (SemesterProjekt HochAutonomes Fahren) auf dem Kanal 5 erstellt und das ODROID erhält die IP-Adresse 10.42.43.1. Für jeden Teilnehmer führt man das Skript durch. Dabei sollte jeder Teilnehmer am AdHoc Netzwerk eine eigene IP-Adresse erhalten. Die letzte Zeile sollte also für jeden Teilnehmer angepasst werden. + +Nun kann man mit \lstinline{crontab} (\url{https://wiki.ubuntuusers.de/Cron/}) einstellen, dass das Skript jedes Mal direkt beim Neustart (vor dem Login-Vorgang) ausgeführt wird. Dies ist insbesondere dann hilfreich, wenn das ODROID auf dem Auto montiert ist und keine Tastatur angeschlossen ist. +Dazu muss man nun \lstinline{crontab -e} ausführen und die folgende Zeile einfügen: \lstinline{@reboot /root/connectAdHoc.sh}. Eventuell ist noch folgender Schritt nötig, um crond automatisch beim Hochfahren zu starten: \lstinline{update-rc.d cron defaults}. + +Falls das AdHoc Netzwerk steht, kann man sich mittels \lstinline{ssh root@10.42.43.1} mit dem ODROID verbinden. +Bei uns kam es vor, dass das AdHoc Netzwerk gelegentlich abgestürzt ist. +In \lstinline{crontab -e} kann man dann noch folgende Zeile einfügen, um das Adhoc Netzwerk alle 2 Minuten neuzustarten bzw., das entsprchende Skript auszuführen: \lstinline{*/2 * * * * /root/connectAdHoc.sh}. + +\end{document} \ No newline at end of file diff --git a/doc/testplan/AkzeptanzTestPlan.tex b/doc/testplan/AkzeptanzTestPlan.tex index 39a5285f488a91e02f9cc5e26b8d310433ea2113..af661af5919d9559498d59eb5479c0190e341520 100644 --- a/doc/testplan/AkzeptanzTestPlan.tex +++ b/doc/testplan/AkzeptanzTestPlan.tex @@ -37,6 +37,3 @@ F\"ur alle Tests gilt: Sollte etwas unvorhergesehenes passieren, z.B Hardwarefeh \end{tabularx} \caption{AT - 01 Akzeptanztest Minimum} \label{tab:AT - 01 Akzeptanztest Minimum} \end{table} - -\subsubsection{Zeitplan} -Die Durchf\"uhrung des Tests wird voraussichtlich am Ende des Wintersemesters 2017/2018, also Mitte Februar 2018 stattfinden. diff --git a/doc/testplan/FunktionsTestPlan.tex b/doc/testplan/FunktionsTestPlan.tex index 5e1e7cc17302799143d6c4f1e85299475382f17f..3dd019e077beffeb19cd8fe7d5449438f990d372 100644 --- a/doc/testplan/FunktionsTestPlan.tex +++ b/doc/testplan/FunktionsTestPlan.tex @@ -37,7 +37,7 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las \item Fahrbahn mit Kurven durch 2 weiße Streifen markieren. \item Fahrzeug auf die Strecke stellen. \item Fahrzeug booten. - \item Laptop mit Fahrzeug. + \item Laptop mit Fahrzeug verbinden. \item Sollgeschwindigkeit von 5m/s an Fahrzeug \"ubertragen. \item Nach 10s eine Sollgeschwindigkeit von 0m/s an Fahrzeug \"ubertragen und Test beenden. \end{enumerate}} \\ \hline @@ -90,16 +90,12 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las \tabHead{Ablauf} & \tabBody{\begin{enumerate}[leftmargin=*] - \item Fahrzeug 1 hinstellen. - \item Fahrzeug 2 hinter Fahrzeug 1 stellen - \item Fahrzeuge booten. - \item Laptop mit Fahrzeug 1 und 2 verbinden. - \item Create-Platoon Befehl an beide Fahrzeuge senden. - \item Status beider Fahrzeuge auslesen. + \item Kolonnenprogramm auf zwei Rechnern laufen lassen. + \item Create Platoon auf beiden Programmen ausf\"uhren. \end{enumerate}} \\ \hline \tabHead{erwartetes Ergebnis} & - \tabBody{Beide Fahrzeuge sind in einer Kolonne. Fahrzeug 1 ist Leader Vehicle und Fahrzeug 2 ist Follower Vehicle. Fahrzeug 1 hat eine Mitgliederliste der Kolonne, in der die IDs von Fahrzeug 1 und Fahrzeug 2 sind.} \\ \hline + \tabBody{Beide Programme sind in einer Kolonne. Ein Programm ist dabei Leader und das andere Follower.} \\ \hline \tabHead{Ergebnis} & \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline @@ -116,12 +112,8 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las \tabHead{Ablauf} & \tabBody{\begin{enumerate}[leftmargin=*] - \item Mit 2 Fahrzeugen den Test ``Kolonne erstellen'' durchf\"uhren. - \item Fahrzeug 3 hinter die ersten beiden Fahrzeuge stellen. - \item Fahrzeug 3 booten. - \item Fahrzeug 3 mit Laptop verbinden. - \item Join-Platoon Befehl an Fahrzeug 3 senden. - \item Status der Fahrzeuge auslesen. + \item Kolonnenprogramm auf zwei Rechnern laufen lassen. + \item \end{enumerate}} \\ \hline \tabHead{erwartetes Ergebnis} & @@ -161,30 +153,7 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las \rowcolors{1}{light-gray}{white} \begin{tabularx}{\textwidth}{|c|X|} \hline \tabHead{Id} & - \tabBody{FT - 07 Kolonne verlassen} \\ \hline - - \tabHead{Ablauf} & - \tabBody{\begin{enumerate}[leftmargin=*] - \item Mit 2 Fahrzeugen den Test ``Kolonne erstellen'' durchf\"uhren. - \item Leave-Platoon Befehl an Fahrzeug 2 senden. - \item Status der Fahrzeuge auslesen. - \end{enumerate}} \\ \hline - - \tabHead{erwartetes Ergebnis} & - \tabBody{Kolonne wird aufgel\"ost.} \\ \hline - - \tabHead{Ergebnis} & - \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline - - \end{tabularx} - \caption{FT - 07 Kolonne verlassen} \label{tab:FT - 07 Kolonne verlassen} -\end{table} - -\begin{table}[H] \centering - \rowcolors{1}{light-gray}{white} - \begin{tabularx}{\textwidth}{|c|X|} \hline - \tabHead{Id} & - \tabBody{FT - 08 CACC Minimum} \\ \hline + \tabBody{FT - 07 CACC Minimum} \\ \hline \tabHead{Ablauf} & \tabBody{\begin{enumerate}[leftmargin=*] @@ -203,14 +172,14 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline \end{tabularx} - \caption{FT - 08 CACC Minimum} \label{tab:FT - 08 CACC Minimum} + \caption{FT - 07 CACC Minimum} \label{tab:FT - 07 CACC Minimum} \end{table} \begin{table}[H] \centering \rowcolors{1}{light-gray}{white} \begin{tabularx}{\textwidth}{|c|X|} \hline \tabHead{Id} & - \tabBody{FT - 09 CACC IPD} \\ \hline + \tabBody{FT - 08 CACC IPD} \\ \hline \tabHead{Ablauf} & \tabBody{Siehe Akzeptanztest.} \\ \hline @@ -222,14 +191,14 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline \end{tabularx} - \caption{FT - 09 CACC IPD} \label{tab:FT - 09 CACC IPD} + \caption{FT - 8 CACC IPD} \label{tab:FT - 08 CACC IPD} \end{table} \begin{table}[H] \centering \rowcolors{1}{light-gray}{white} \begin{tabularx}{\textwidth}{|c|X|} \hline \tabHead{Id} & - \tabBody{FT - 10 CACC IPS} \\ \hline + \tabBody{FT - 09 CACC IPS} \\ \hline \tabHead{Ablauf} & \tabBody{-} \\ \hline @@ -241,5 +210,5 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline \end{tabularx} - \caption{FT - 10 CACC IPS} \label{tab:FT - 10 CACC IPS} + \caption{FT - 09 CACC IPS} \label{tab:FT - 09 CACC IPS} \end{table} diff --git a/doc/testplan/HardwareGrundFktTestPlan.tex b/doc/testplan/HardwareGrundFktTestPlan.tex index 3b27f270caec8e104991b5b4a39c6f2a74680cba..8a8da7da8e49c075caaf92e70650aa211fb0db27 100644 --- a/doc/testplan/HardwareGrundFktTestPlan.tex +++ b/doc/testplan/HardwareGrundFktTestPlan.tex @@ -56,10 +56,11 @@ Hier werden Tests spezifiziert, die die Funktionsbereitschaft der Hardware, die \item Ultraschallsensoren mit Odroid verbinden. \item Odroid booten. \item Ultraschallsensoren einschalten. + \item Sensor ansteuern und Messung in cm initialisieren. \end{enumerate}} \\ \hline \tabHead{erwartetes Ergebnis} & - \tabBody{Die Sensoren wurden erfolgreich eingeschaltet und sind einsatzbereit} \\ \hline + \tabBody{Der Ultraschallsensor gibt die Entfernung zum n\"achsten Hindernis in cm aus.} \\ \hline \tabHead{Ergebnis} & \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline @@ -79,10 +80,11 @@ Hier werden Tests spezifiziert, die die Funktionsbereitschaft der Hardware, die \item Kamera mit Odroid verbinden. \item Odroid booten. \item Kamera einschalten. + \item Bilddaten auslesen. \end{enumerate}} \\ \hline \tabHead{erwartetes Ergebnis} & - \tabBody{Die Kamera is eingeschaltet und einsatzbereit} \\ \hline + \tabBody{Die Kamera ist eingeschaltet und Bilder konnten ausgelesen werden.} \\ \hline \tabHead{Ergebnis} & \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline diff --git a/doc/testplan/Testergebnisse.tex b/doc/testplan/Testergebnisse.tex index 3fac198de3932aa7b5cbb9234a440f03100df942..83166970fd4af264daf958a727240b56dd015ff2 100644 --- a/doc/testplan/Testergebnisse.tex +++ b/doc/testplan/Testergebnisse.tex @@ -2,29 +2,27 @@ \begin{center} \begin{table}[H] - \begin{tabular}{| p{6cm} | l | l | l |} + \begin{tabular}{| p{5cm} | p{5cm} | l |} \hline - Testcase & Ergebnis & Durchgef\"uhrt am & Kommentar\\ \hline - \nameref{tab:HT - 01 Odroid testen} & Ok & 8.1.2018 & \\ \hline - \nameref{tab:HT - 02 Ultraschallsensoren testen} & & & \\ \hline - \nameref{tab:HT - 03 Kamera testen} & & & \\ \hline - \nameref{tab:HT - 04 STM testen} & Ok & 31.1.2018 & \\ - & kaputt & 6.3.2018 & \\ \hline - \nameref{tab:HT - 05 Motor- und Reifensteuerung testen} & & & \\ \hline - \nameref{tab:HT - 06 RC testen} & & & \\ \hline - \nameref{tab:HT - 07 WLAN testen} & Ok & 8.1.2018 & \\ \hline - \nameref{tab:HT - 08 Ultraschallsensoren auf Ungenauigkeiten testen} & & & \\ \hline - \nameref{tab:FT - 01 Status ausgeben} & & & \\ \hline - \nameref{tab:FT - 02 Spur halten} & & & \\ \hline - \nameref{tab:FT - 03 Adaptive Cruise Control} & & & \\ \hline - \nameref{tab:FT - 04 Kolonne erstellen} & & & \\ \hline - \nameref{tab:FT - 05 Kolonne beitreten} & & & \\ \hline - \nameref{tab:FT - 06 Kolonne verlassen} & & & \\ \hline - \nameref{tab:FT - 07 Kolonne verlassen} & & & \\ \hline - \nameref{tab:FT - 08 CACC Minimum} & & & \\ \hline - \nameref{tab:FT - 09 CACC IPD} & & & \\ \hline - \nameref{tab:FT - 10 CACC IPS} & & & \\ \hline - \nameref{tab:AT - 01 Akzeptanztest Minimum} & & & \\ + Testcase & Ergebnis & Durchgef\"uhrt am \\ \hline + \nameref{tab:HT - 01 Odroid testen} & Ok & 8.1.2018 \\ \hline + \nameref{tab:HT - 02 Ultraschallsensoren testen} & Ok. Reichweite in cm ausgegeben & 20.4.2018 \\ \hline + \nameref{tab:HT - 03 Kamera testen} & & \\ \hline + \nameref{tab:HT - 04 STM testen} & Ok & 31.1.2018 \\ \hline + \nameref{tab:HT - 05 Motor- und Reifensteuerung testen} & Ok. R\"ader konnten angesteuert werden und haben sich gedreht. & 20.4.2018 \\ \hline + \nameref{tab:HT - 06 RC testen} & & \\ \hline + \nameref{tab:HT - 07 WLAN testen} & Ok & 8.1.2018 \\ \hline + \nameref{tab:HT - 08 Ultraschallsensoren auf Ungenauigkeiten testen} & Konstante Messwerte bei Messung gegen eine Wand. Starke Varianz bei nicht statischen Objekten z.B. Papier vorhalten oder Gardinen. & 20.4.2018 \\ \hline + \nameref{tab:FT - 01 Status ausgeben} & & \\ \hline + \nameref{tab:FT - 02 Spur halten} & & \\ \hline + \nameref{tab:FT - 03 Adaptive Cruise Control} & & \\ \hline + \nameref{tab:FT - 04 Kolonne erstellen} & Ok & 13.04.2018 \\ \hline + \nameref{tab:FT - 05 Kolonne beitreten} & & \\ \hline + \nameref{tab:FT - 06 Kolonne verlassen} & & \\ \hline + \nameref{tab:FT - 07 CACC Minimum} & & \\ \hline + \nameref{tab:FT - 08 CACC IPD} & & \\ \hline + \nameref{tab:FT - 09 CACC IPS} & & \\ \hline + \nameref{tab:AT - 01 Akzeptanztest Minimum} & & \\ \hline \end{tabular} \caption{Testergebnisse} \label{tab:Testergebnisse} diff --git a/modules/build.sh b/modules/build.sh index 06f70f778f761f71e4589f3f56751ccfaeaecfb1..7716bfdc738dd85b9f4689686205ce3f923c7f43 100755 --- a/modules/build.sh +++ b/modules/build.sh @@ -4,7 +4,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DEST=$DIR/CarConfig LINK=$HOME/CarConfig -if [ ! -L $LINK ]; then +if [ ! -e $LINK ]; then echo "ln -s $DEST $HOME" ln -s $DEST $HOME fi @@ -37,6 +37,13 @@ cd cmake-build-debug cmake .. make +# build VeloxProtocolLib +cd ../../VeloxProtocolLib/ +mkdir cmake-build-debug +cd cmake-build-debug +cmake .. +sudo make install + # build ROS stuff cd ../../../ catkin_make diff --git a/modules/catkin_ws/src/NetworkingLib/CMakeLists.txt b/modules/catkin_ws/src/NetworkingLib/CMakeLists.txt index 44cc9d4bf55e9a02d72b672eaa62efa589c4cc96..0c7cfd571592fffd5413c021a27271d854bcbd0b 100644 --- a/modules/catkin_ws/src/NetworkingLib/CMakeLists.txt +++ b/modules/catkin_ws/src/NetworkingLib/CMakeLists.txt @@ -42,6 +42,7 @@ set(SOURCE_FILES include/NetworkingLib/Error.h include/NetworkingLib/Frame.h include/NetworkingLib/Busyable.h + include/NetworkingLib/TimedValue.h src/Timer.cpp src/Time.cpp src/Networking.cpp @@ -68,6 +69,7 @@ set(PUBLIC_HEADER_FILES include/NetworkingLib/Resolver.h include/NetworkingLib/Busyable.h include/NetworkingLib/Frame.h + include/NetworkingLib/TimedValue.h ${CMAKE_CURRENT_BINARY_DIR}/NetworkingLibConfig.h) foreach(HEADER ${PUBLIC_HEADER_FILES}) diff --git a/modules/catkin_ws/src/PC2CarLib/include/PC2CarLib/TimedValue.h b/modules/catkin_ws/src/NetworkingLib/include/NetworkingLib/TimedValue.h similarity index 85% rename from modules/catkin_ws/src/PC2CarLib/include/PC2CarLib/TimedValue.h rename to modules/catkin_ws/src/NetworkingLib/include/NetworkingLib/TimedValue.h index 3650c19d37773788fdf9eb1d4667fb3130376e3d..10cbe19b50a0c94b744cd435b17cd7507436c95b 100644 --- a/modules/catkin_ws/src/PC2CarLib/include/PC2CarLib/TimedValue.h +++ b/modules/catkin_ws/src/NetworkingLib/include/NetworkingLib/TimedValue.h @@ -5,9 +5,12 @@ #ifndef PC2CAR_TIMEDVALUE_H #define PC2CAR_TIMEDVALUE_H -#include <NetworkingLib/Time.h> +#include "Time.h" +#include <mutex> -namespace pc2car +namespace networking +{ +namespace time { template<typename T> @@ -65,20 +68,20 @@ public: T get() { - std::lock_guard<std::mutex> lock{mutex}; + std::lock_guard <std::mutex> lock{mutex}; return val; } void set(const T & val) { - std::lock_guard<std::mutex> lock{mutex}; + std::lock_guard <std::mutex> lock{mutex}; this->val = val; timestamp = networking::time::now(); } Timestamp getTimestamp() { - std::lock_guard<std::mutex> lock{mutex}; + std::lock_guard <std::mutex> lock{mutex}; return timestamp; } @@ -90,7 +93,7 @@ public: TimedValue<T> getNonAtomicCopy() { - std::lock_guard<std::mutex> lock{mutex}; + std::lock_guard <std::mutex> lock{mutex}; return TimedValue<T>{val, timestamp}; } @@ -102,4 +105,6 @@ private: } +} + #endif //PC2CAR_TIMEDVALUE_H diff --git a/modules/catkin_ws/src/PC2CarLib/CMakeLists.txt b/modules/catkin_ws/src/PC2CarLib/CMakeLists.txt index ee7b4aacb6b0c633ca447ecbd4eaf5699befdbbf..27330da6fc7a025afd26a9eb0436ea0109b2019e 100644 --- a/modules/catkin_ws/src/PC2CarLib/CMakeLists.txt +++ b/modules/catkin_ws/src/PC2CarLib/CMakeLists.txt @@ -20,10 +20,8 @@ set(CMAKE_CXX_FLAGS -pthread) set(SOURCE_FILES include/PC2CarLib/CommandSender.h - include/PC2CarLib/TimedValue.h include/PC2CarLib/PC2Car.h include/PC2CarLib/CommandReceiver.h - include/PC2CarLib/TimedValue.h include/PC2CarLib/json.hpp src/CommandReceiver.cpp) @@ -32,7 +30,6 @@ set(PUBLIC_HEADER_FILES include/PC2CarLib/CommandReceiver.h include/PC2CarLib/json.hpp include/PC2CarLib/PC2Car.h - include/PC2CarLib/TimedValue.h ${CMAKE_CURRENT_BINARY_DIR}/PC2CarLibConfig.h) foreach(HEADER ${PUBLIC_HEADER_FILES}) diff --git a/modules/catkin_ws/src/PC2CarLib/include/PC2CarLib/CommandReceiver.h b/modules/catkin_ws/src/PC2CarLib/include/PC2CarLib/CommandReceiver.h index fa56c7a5e07c0ae7e00d162f4df6f1f38f153b1f..67edb7922a9ce569be1df01fb330ad1495b5e562 100644 --- a/modules/catkin_ws/src/PC2CarLib/include/PC2CarLib/CommandReceiver.h +++ b/modules/catkin_ws/src/PC2CarLib/include/PC2CarLib/CommandReceiver.h @@ -7,8 +7,8 @@ #include "PC2Car.h" #include "NetworkingLib/DatagramReceiver.h" +#include "NetworkingLib/TimedValue.h" #include "PlatoonProtocolLib/Protocol.h" -#include "TimedValue.h" #include "json.hpp" namespace pc2car @@ -48,34 +48,34 @@ public: void stop(); - TimedValue<bool> isLoggingEnabled() + networking::time::TimedValue<bool> isLoggingEnabled() { return loggingEnabled.getNonAtomicCopy(); } - TimedValue<bool> isPlatoonEnabled() + networking::time::TimedValue<bool> isPlatoonEnabled() { return platoonEnabled.getNonAtomicCopy(); } - TimedValue<bool> isRcModeEnabled() + networking::time::TimedValue<bool> isRcModeEnabled() { return rcModeEnabled.getNonAtomicCopy(); } - TimedValue<platoonProtocol::PlatoonSpeed> getPlatoonSpeed() + networking::time::TimedValue<platoonProtocol::PlatoonSpeed> getPlatoonSpeed() { return platoonSpeed.getNonAtomicCopy(); } - TimedValue<platoonProtocol::InnerPlatoonDistance> getInnerPlatoonDistance() + networking::time::TimedValue<platoonProtocol::InnerPlatoonDistance> getInnerPlatoonDistance() { return innerPlatoonDistance.getNonAtomicCopy(); } - TimedValue<float> getSpeed() + networking::time::TimedValue<float> getSpeed() { return speed.getNonAtomicCopy(); } private: DatagramReceiver::Ptr receiver; OnCommandReceivedCallback handler; - TimedAtomicValue<bool> loggingEnabled{false}; - TimedAtomicValue<bool> platoonEnabled{false}; - TimedAtomicValue<bool> rcModeEnabled{false}; - TimedAtomicValue<platoonProtocol::PlatoonSpeed> platoonSpeed{false}; - TimedAtomicValue<platoonProtocol::InnerPlatoonDistance> innerPlatoonDistance{false}; - TimedAtomicValue<float> speed{false}; + networking::time::TimedAtomicValue<bool> loggingEnabled{false}; + networking::time::TimedAtomicValue<bool> platoonEnabled{false}; + networking::time::TimedAtomicValue<bool> rcModeEnabled{false}; + networking::time::TimedAtomicValue<platoonProtocol::PlatoonSpeed> platoonSpeed{false}; + networking::time::TimedAtomicValue<platoonProtocol::InnerPlatoonDistance> innerPlatoonDistance{false}; + networking::time::TimedAtomicValue<float> speed{false}; void receiveCommand(); diff --git a/modules/catkin_ws/src/PlatoonProtocolLib/CMakeLists.txt b/modules/catkin_ws/src/PlatoonProtocolLib/CMakeLists.txt index d557cbd250b2055947670340480fca310848a56b..11e79217613e7301f804475bf1b1e3796a216de7 100644 --- a/modules/catkin_ws/src/PlatoonProtocolLib/CMakeLists.txt +++ b/modules/catkin_ws/src/PlatoonProtocolLib/CMakeLists.txt @@ -28,7 +28,6 @@ set(SOURCE_FILES include/PlatoonProtocolLib/FollowerVehicle.h include/PlatoonProtocolLib/LeaderVehicle.h include/PlatoonProtocolLib/Utils.h - include/PlatoonProtocolLib/PlatoonService.h include/PlatoonProtocolLib/PlatoonMessage.h include/PlatoonProtocolLib/json.hpp include/PlatoonProtocolLib/Definitions.h @@ -48,7 +47,6 @@ set(PUBLIC_HEADER_FILES include/PlatoonProtocolLib/json.hpp include/PlatoonProtocolLib/LeaderVehicle.h include/PlatoonProtocolLib/PlatoonMessage.h - include/PlatoonProtocolLib/PlatoonService.h include/PlatoonProtocolLib/Protocol.h include/PlatoonProtocolLib/Utils.h include/PlatoonProtocolLib/Vehicle.h diff --git a/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/Definitions.h b/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/Definitions.h index 8b39bc249ebc0cb712ef5fd058f03be492ae551e..f86731d0e1adb90f8acda5c0cfde0f6e33448fa8 100644 --- a/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/Definitions.h +++ b/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/Definitions.h @@ -16,9 +16,4 @@ // Define the stream for logging. #define PLATOON_PROTOCOL_LOGGING_STREAM std::cout -// Enable local testing by making the port numbers depend on the vehicle-ID. -// ATTENTION: This should ONLY be used to test your code! -// Don't define this in real usage! -#define PLATOON_PROTOCOL_ENABLE_LOCAL_TESTING - #endif //PLATOONPROTOCOL_DEFINITIONS_H diff --git a/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/LeaderVehicle.h b/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/LeaderVehicle.h index 58ea5b10ac89354801c3c46189873e4fef918d89..d1898ce64f7bc471cabda9714eea702b884a8be4 100644 --- a/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/LeaderVehicle.h +++ b/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/LeaderVehicle.h @@ -10,7 +10,6 @@ #include <unordered_map> #include <bits/unordered_map.h> #include "Vehicle.h" -#include "PlatoonService.h" #include "Utils.h" #include "NetworkingLib/DatagramSender.h" #include "NetworkingLib/DatagramReceiver.h" diff --git a/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/PlatoonService.h b/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/PlatoonService.h deleted file mode 100644 index 9facf4831faac6486dce19720a894d1145e0c146..0000000000000000000000000000000000000000 --- a/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/PlatoonService.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// Created by philipp on 01.12.17. -// - -#ifndef PROTOCOL_NETWORKSERVICES_H -#define PROTOCOL_NETWORKSERVICES_H - -#include "PlatoonMessage.h" - -namespace platoonProtocol -{ - -struct PlatoonService -{ - using RequestMessage = PlatoonMessage; - using ResponseMessage = PlatoonMessage; -}; - -} - -#endif //PROTOCOL_NETWORKSERVICES_H diff --git a/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/Vehicle.h b/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/Vehicle.h index 73cd760375e382f77f73f1d8eee70204e05c0212..6da9b3a89a2a7b3bf057be77571d3333be8d2667 100644 --- a/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/Vehicle.h +++ b/modules/catkin_ws/src/PlatoonProtocolLib/include/PlatoonProtocolLib/Vehicle.h @@ -8,12 +8,12 @@ #include <thread> #include <NetworkingLib/DatagramReceiver.h> #include <NetworkingLib/DatagramSender.h> -#include "PlatoonService.h" #include "NetworkingLib/Networking.h" #include "NetworkingLib/ServiceServer.h" #include "NetworkingLib/ServiceClient.h" #include "NetworkingLib/Resolver.h" #include "NetworkInfo.h" +#include "PlatoonMessage.h" namespace platoonProtocol { diff --git a/modules/catkin_ws/src/PlatoonProtocolLib/src/FollowerVehicle.cpp b/modules/catkin_ws/src/PlatoonProtocolLib/src/FollowerVehicle.cpp index 130ae81a4394e22f5753f2d9ccbca71d87b0df36..e30ac786fa63d53429d888b366b0d3e47078e949 100644 --- a/modules/catkin_ws/src/PlatoonProtocolLib/src/FollowerVehicle.cpp +++ b/modules/catkin_ws/src/PlatoonProtocolLib/src/FollowerVehicle.cpp @@ -174,8 +174,6 @@ void FollowerVehicle::receiveBroadcast(const PlatoonMessage & broadcast) void FollowerVehicle::receiveResponse(const PlatoonMessage & response) { - log("response\n"); - if (state != State::CREATING_PLATOON || response.dstVehicle != myInfo.vehicleId) return; diff --git a/modules/catkin_ws/src/VeloxProtocolLib/.gitignore b/modules/catkin_ws/src/VeloxProtocolLib/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..1b72d0afb239e12b614b051f428b69409184cfb5 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/.gitignore @@ -0,0 +1,2 @@ +cmake-build-debug +.idea \ No newline at end of file diff --git a/modules/catkin_ws/src/VeloxProtocolLib/CMakeLists.txt b/modules/catkin_ws/src/VeloxProtocolLib/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..b4d05571eae13c76d4293f5cca418b7a6484873d --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/CMakeLists.txt @@ -0,0 +1,170 @@ +cmake_minimum_required(VERSION 3.5.1) +project(VeloxProtocol) + +set(VeloxProtocol_VERSION_MAJOR 0) +set(VeloxProtocol_VERSION_MINOR 1) + +set(CMAKE_CXX_STANDARD 14) + +# configure a header file to pass some of the CMake settings +# to the source code +configure_file( + "${PROJECT_SOURCE_DIR}/src/VeloxProtocolLibConfig.h.in" + "${PROJECT_BINARY_DIR}/VeloxProtocolLibConfig.h") + +# so we can import the config header file +include_directories("${PROJECT_BINARY_DIR}") + +# compiler flags +set(CMAKE_CXX_FLAGS -pthread) + +set(SOURCE_FILES + include/VeloxProtocolLib/mavlink/checksum.h + include/VeloxProtocolLib/mavlink/mavlink_conversions.h + include/VeloxProtocolLib/mavlink/mavlink_get_info.h + include/VeloxProtocolLib/mavlink/mavlink_helpers.h + include/VeloxProtocolLib/mavlink/mavlink_sha256.h + include/VeloxProtocolLib/mavlink/mavlink_types.h + include/VeloxProtocolLib/mavlink/protocol.h + include/VeloxProtocolLib/mavlink/velox/mavlink.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_carcontrol.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_clocksync.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_msg.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_statechange.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_error.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_heartbeat.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_odometry.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_trajectory.h + include/VeloxProtocolLib/mavlink/velox/testsuite.h + include/VeloxProtocolLib/mavlink/velox/velox.h + include/VeloxProtocolLib/mavlink/velox/version.h + include/VeloxProtocolLib/Connection.h + src/Connection.cpp) + +set(PUBLIC_HEADER_FILES + include/VeloxProtocolLib/mavlink/checksum.h + include/VeloxProtocolLib/mavlink/mavlink_conversions.h + include/VeloxProtocolLib/mavlink/mavlink_get_info.h + include/VeloxProtocolLib/mavlink/mavlink_helpers.h + include/VeloxProtocolLib/mavlink/mavlink_sha256.h + include/VeloxProtocolLib/mavlink/mavlink_types.h + include/VeloxProtocolLib/mavlink/protocol.h + include/VeloxProtocolLib/mavlink/velox/mavlink.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_carcontrol.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_clocksync.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_msg.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_statechange.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_error.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_heartbeat.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_odometry.h + include/VeloxProtocolLib/mavlink/velox/mavlink_msg_trajectory.h + include/VeloxProtocolLib/mavlink/velox/testsuite.h + include/VeloxProtocolLib/mavlink/velox/velox.h + include/VeloxProtocolLib/mavlink/velox/version.h + include/VeloxProtocolLib/Connection.h + ${CMAKE_CURRENT_BINARY_DIR}/VeloxProtocolLibConfig.h) + +foreach(HEADER ${PUBLIC_HEADER_FILES}) + set(PUBLIC_HEADER_FILES_COMBINED "${PUBLIC_HEADER_FILES_COMBINED}\\;${HEADER}") +endforeach() + +add_library(VeloxProtocolLib SHARED ${SOURCE_FILES}) + +# Specify public header files +set_target_properties(VeloxProtocolLib PROPERTIES PUBLIC_HEADER ${PUBLIC_HEADER_FILES_COMBINED}) + +set(LOCAL_INSTALL_DIR ${CMAKE_CURRENT_LIST_DIR}/../../install) + +set(CMAKE_PREFIX_PATH "${LOCAL_INSTALL_DIR}") + +# NetworkingLib +find_package(NetworkingLib REQUIRED) +target_include_directories(VeloxProtocolLib PUBLIC ${NetworkingLib_INCLUDE_DIRS}) +target_link_libraries(VeloxProtocolLib NetworkingLib) + +find_package(Boost REQUIRED COMPONENTS system regex) +link_libraries(${Boost_LIBRARIES}) + +set(INSTALL_PACKAGE ON) +if(INSTALL_PACKAGE) + ############################# + # Specify install directories + ############################# + set(CMAKE_INSTALL_PREFIX "${LOCAL_INSTALL_DIR}") + set(INSTALL_LIB_DIR lib/VeloxProtocolLib) + set(INSTALL_INCLUDE_DIR include/VeloxProtocolLib) + set(INSTALL_CMAKE_DIR lib/VeloxProtocolLib/CMake) + + # Make relative paths absolute (needed later on) + foreach(p LIB INCLUDE CMAKE) + set(var INSTALL_${p}_DIR) + if(NOT IS_ABSOLUTE "${${var}}") + set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") + endif() + endforeach() + + #################################################### + # Create the *Config.cmake and *ConfigVersion files + #################################################### + # Add all targets to the build-tree export set + export(TARGETS VeloxProtocolLib + FILE "${PROJECT_BINARY_DIR}/VeloxProtocolLibTargets.cmake") + + # Export the package for use from the build-tree + # (this registers the build-tree with a global CMake-registry) + export(PACKAGE VeloxProtocolLib) + + # Get the relative path from the cmake install directory to the include install directory + file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${INSTALL_INCLUDE_DIR}") + + # Configure *Config.cmake.in for the build tree + # Put it inside the binary directory + set(CONF_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/include") + configure_file(VeloxProtocolLibConfig.cmake.in + "${PROJECT_BINARY_DIR}/VeloxProtocolLibConfig.cmake" + @ONLY) + + # Configure *Config.cmake.in for the install tree + # Put it inside the cmake-files directory (which is located inside the binary directory) + set(CONF_INCLUDE_DIRS "\${VELOX_PROTOCOL_LIB_CMAKE_DIR}/${REL_INCLUDE_DIR}/..") + configure_file(VeloxProtocolLibConfig.cmake.in + "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/VeloxProtocolLibConfig.cmake" + @ONLY) + + # Configure *ConfigVersion.cmake.in for both build and install tree + # Put it inside the binary directory + configure_file(VeloxProtocolLibConfigVersion.cmake.in + "${PROJECT_BINARY_DIR}/VeloxProtocolLibConfigVersion.cmake" @ONLY) + + ######################## + # Install VeloxProtocolLib + ######################## + # Install library and header files + install(TARGETS VeloxProtocolLib + EXPORT VeloxProtocolLibTargets + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" + RUNTIME DESTINATION "${INSTALL_LIB_DIR}") # for windows + + install(DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/include/VeloxProtocolLib" + DESTINATION "${CMAKE_INSTALL_PREFIX}/include") + + # Install the VeloxProtocolLibConfig.cmake and VeloxProtocolLibConfigVersion.cmake + install(FILES + "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/VeloxProtocolLibConfig.cmake" + "${PROJECT_BINARY_DIR}/VeloxProtocolLibConfigVersion.cmake" + DESTINATION "${INSTALL_CMAKE_DIR}") + + # Install the export set for use with the install-tree + install(EXPORT VeloxProtocolLibTargets + DESTINATION "${INSTALL_CMAKE_DIR}") +endif() + +####### +# Test +####### +add_executable(TerminalControl ${SOURCE_FILES} test/TerminalControl.cpp) + +# NetworkingLib +target_include_directories(TerminalControl PUBLIC ${NetworkingLib_INCLUDE_DIRS}) +target_link_libraries(TerminalControl NetworkingLib) diff --git a/modules/catkin_ws/src/VeloxProtocolLib/VeloxProtocolLibConfig.cmake.in b/modules/catkin_ws/src/VeloxProtocolLib/VeloxProtocolLibConfig.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..00b34039f0d04ff212d972020c6dbaebfdd5c7cf --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/VeloxProtocolLibConfig.cmake.in @@ -0,0 +1,12 @@ +# - Config file for the NetworkingLib package +# It defines the following variable +# VeloxProtocolLib_INCLUDE_DIRS - include directories for VeloxProtocolLib + +# Compute paths +get_filename_component(NETWORKINGLIB_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +set(VeloxProtocolLib_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@") + +# Our library dependencies (contains definitions for IMPORTED targets) +if(NOT TARGET VeloxProtocolLib) + include("${VELOX_PROTOCOL_LIB_CMAKE_DIR}/VeloxProtocolLibTargets.cmake") +endif() \ No newline at end of file diff --git a/modules/catkin_ws/src/VeloxProtocolLib/VeloxProtocolLibConfigVersion.cmake.in b/modules/catkin_ws/src/VeloxProtocolLib/VeloxProtocolLibConfigVersion.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..1af1a38c77b94d6057cbbbc11c9055932eaadcbd --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/VeloxProtocolLibConfigVersion.cmake.in @@ -0,0 +1,11 @@ +set(PACKAGE_VERSION "@VELOX_PROTOCOL_LIB_VERSION@") + +# Check whether the requested PACKAGE_FIND_VERSION is compatible +if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() \ No newline at end of file diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/Connection.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/Connection.h new file mode 100644 index 0000000000000000000000000000000000000000..b176cfc1aa260cd0128550a457f88f0c875c5ab6 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/Connection.h @@ -0,0 +1,121 @@ +// +// Created by philipp on 20.04.18. +// + +#ifndef MAVLINK_ODROID_VELOX_H +#define MAVLINK_ODROID_VELOX_H + +#include <string> +#include "NetworkingLib/Networking.h" +#include "NetworkingLib/Timer.h" +#include "NetworkingLib/TimedValue.h" +#include <boost/asio/serial_port.hpp> +#include "mavlink/velox/mavlink.h" + +namespace veloxProtocol +{ + +class Connection + : public std::enable_shared_from_this<Connection> + , private networking::Busyable +{ +private: + struct PrivateTag + { + }; + +public: + using Ptr = std::shared_ptr<Connection>; + using Callback = std::function<void()>; + + static constexpr networking::time::Duration UPDATE_INTERVAL = std::chrono::milliseconds{10}; + static constexpr networking::time::Duration HEARTBEAT_INTERVAL = std::chrono::milliseconds{100}; + static const Callback DEFAULT_CALLBACK; + + static Ptr create(networking::Networking & net) + { return std::make_shared<Connection>(PrivateTag{}, net); } + + Connection(PrivateTag, networking::Networking & net) + : net(net) + , port(net.getIoService()) + { + mavlinkSystem.sysid = 0; + mavlinkSystem.compid = 0; + } + + void open(const std::string & uartSerialDevicePath, + const Callback & onUpdatedCallback, + const Callback & onClosedCallback); + + bool isOpen() const noexcept; + + void close(); + + void setSpeed(float speed) + { transmitSpeed = speed; } + + void setSteeringAngle(float steeringAngle) + { transmitSteeringAngle = steeringAngle; } + + networking::time::TimedValue<float> getMeasuredSpeed() + { return measuredSpeed.getNonAtomicCopy(); } + + networking::time::TimedValue<float> getMeasuredSteeringAngle() + { return measuredSteeringAngle.getNonAtomicCopy(); } + +private: + struct AsyncState + { + using Ptr = std::shared_ptr<AsyncState>; + + AsyncState(Connection::Ptr self) + : busyLock(*self) + , self(self) + {} + + networking::BusyLock busyLock; + Connection::Ptr self; + + void closeOnce(); + }; + + networking::Networking & net; + boost::asio::serial_port port; + + Callback onUpdatedCallback{DEFAULT_CALLBACK}; + Callback onClosedCallback{DEFAULT_CALLBACK}; + + networking::time::Timer::Ptr transmitUpdateTimer; + networking::time::Timer::Ptr transmitHeartbeatTimer; + + networking::time::TimedAtomicValue<float> measuredSpeed; + networking::time::TimedAtomicValue<float> measuredSteeringAngle; + + std::atomic<float> transmitSpeed{0.0f}; + std::atomic<float> transmitSteeringAngle{0.0f}; + + boost::asio::streambuf buffer; + + mavlink_system_t mavlinkSystem; + + // We want the open() and close() operations to be synchronized but we do not want the + // actual opening of the port to be run on the networking thread so that we have instant feedback + // whether our operation was successful or not. + std::mutex mutex; + + void transmitUpdate(AsyncState::Ptr state); + + void transmitHeartbeat(AsyncState::Ptr state); + + void transmitRequest(AsyncState::Ptr state); + + void transmitMessage(AsyncState::Ptr state, const mavlink_message_t & message); + + void receive(AsyncState::Ptr state); + + void handleMessage(const mavlink_message_t & message); +}; + +} + +#endif //MAVLINK_ODROID_VELOX_H diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/checksum.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/checksum.h new file mode 100755 index 0000000000000000000000000000000000000000..2bb0df24e3c34c002dba8db11f6622453f813dca --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/checksum.h @@ -0,0 +1,95 @@ +#pragma once + +#if defined(MAVLINK_USE_CXX_NAMESPACE) +namespace mavlink { +#elif defined(__cplusplus) +extern "C" { +#endif + +// Visual Studio versions before 2010 don't have stdint.h, so we just error out. +#if (defined _MSC_VER) && (_MSC_VER < 1600) +#error "The C-MAVLink implementation requires Visual Studio 2010 or greater" +#endif + +#include <stdint.h> + +/** + * + * CALCULATE THE CHECKSUM + * + */ + +#define X25_INIT_CRC 0xffff +#define X25_VALIDATE_CRC 0xf0b8 + +#ifndef HAVE_CRC_ACCUMULATE +/** + * @brief Accumulate the X.25 CRC by adding one char at a time. + * + * The checksum function adds the hash of one char at a time to the + * 16 bit checksum (uint16_t). + * + * @param data new char to hash + * @param crcAccum the already accumulated checksum + **/ +static inline void crc_accumulate(uint8_t data, uint16_t *crcAccum) +{ + /*Accumulate one byte of data into the CRC*/ + uint8_t tmp; + + tmp = data ^ (uint8_t)(*crcAccum &0xff); + tmp ^= (tmp<<4); + *crcAccum = (*crcAccum>>8) ^ (tmp<<8) ^ (tmp <<3) ^ (tmp>>4); +} +#endif + + +/** + * @brief Initiliaze the buffer for the X.25 CRC + * + * @param crcAccum the 16 bit X.25 CRC + */ +static inline void crc_init(uint16_t* crcAccum) +{ + *crcAccum = X25_INIT_CRC; +} + + +/** + * @brief Calculates the X.25 checksum on a byte buffer + * + * @param pBuffer buffer containing the byte array to hash + * @param length length of the byte array + * @return the checksum over the buffer bytes + **/ +static inline uint16_t crc_calculate(const uint8_t* pBuffer, uint16_t length) +{ + uint16_t crcTmp; + crc_init(&crcTmp); + while (length--) { + crc_accumulate(*pBuffer++, &crcTmp); + } + return crcTmp; +} + + +/** + * @brief Accumulate the X.25 CRC by adding an array of bytes + * + * The checksum function adds the hash of one char at a time to the + * 16 bit checksum (uint16_t). + * + * @param data new bytes to hash + * @param crcAccum the already accumulated checksum + **/ +static inline void crc_accumulate_buffer(uint16_t *crcAccum, const char *pBuffer, uint16_t length) +{ + const uint8_t *p = (const uint8_t *)pBuffer; + while (length--) { + crc_accumulate(*p++, crcAccum); + } +} + +#if defined(MAVLINK_USE_CXX_NAMESPACE) || defined(__cplusplus) +} +#endif diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_conversions.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_conversions.h new file mode 100755 index 0000000000000000000000000000000000000000..9baee264b7841f1052248b17162e2dab63023b6d --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_conversions.h @@ -0,0 +1,209 @@ +#pragma once + +/* enable math defines on Windows */ +#ifdef _MSC_VER +#ifndef _USE_MATH_DEFINES +#define _USE_MATH_DEFINES +#endif +#endif +#include <math.h> + +#ifndef M_PI_2 + #define M_PI_2 ((float)asin(1)) +#endif + +/** + * @file mavlink_conversions.h + * + * These conversion functions follow the NASA rotation standards definition file + * available online. + * + * Their intent is to lower the barrier for MAVLink adopters to use gimbal-lock free + * (both rotation matrices, sometimes called DCM, and quaternions are gimbal-lock free) + * rotation representations. Euler angles (roll, pitch, yaw) will be phased out of the + * protocol as widely as possible. + * + * @author James Goppert + * @author Thomas Gubler <thomasgubler@gmail.com> + */ + + +/** + * Converts a quaternion to a rotation matrix + * + * @param quaternion a [w, x, y, z] ordered quaternion (null-rotation being 1 0 0 0) + * @param dcm a 3x3 rotation matrix + */ +MAVLINK_HELPER void mavlink_quaternion_to_dcm(const float quaternion[4], float dcm[3][3]) +{ + double a = quaternion[0]; + double b = quaternion[1]; + double c = quaternion[2]; + double d = quaternion[3]; + double aSq = a * a; + double bSq = b * b; + double cSq = c * c; + double dSq = d * d; + dcm[0][0] = aSq + bSq - cSq - dSq; + dcm[0][1] = 2 * (b * c - a * d); + dcm[0][2] = 2 * (a * c + b * d); + dcm[1][0] = 2 * (b * c + a * d); + dcm[1][1] = aSq - bSq + cSq - dSq; + dcm[1][2] = 2 * (c * d - a * b); + dcm[2][0] = 2 * (b * d - a * c); + dcm[2][1] = 2 * (a * b + c * d); + dcm[2][2] = aSq - bSq - cSq + dSq; +} + + +/** + * Converts a rotation matrix to euler angles + * + * @param dcm a 3x3 rotation matrix + * @param roll the roll angle in radians + * @param pitch the pitch angle in radians + * @param yaw the yaw angle in radians + */ +MAVLINK_HELPER void mavlink_dcm_to_euler(const float dcm[3][3], float* roll, float* pitch, float* yaw) +{ + float phi, theta, psi; + theta = asin(-dcm[2][0]); + + if (fabsf(theta - (float)M_PI_2) < 1.0e-3f) { + phi = 0.0f; + psi = (atan2f(dcm[1][2] - dcm[0][1], + dcm[0][2] + dcm[1][1]) + phi); + + } else if (fabsf(theta + (float)M_PI_2) < 1.0e-3f) { + phi = 0.0f; + psi = atan2f(dcm[1][2] - dcm[0][1], + dcm[0][2] + dcm[1][1] - phi); + + } else { + phi = atan2f(dcm[2][1], dcm[2][2]); + psi = atan2f(dcm[1][0], dcm[0][0]); + } + + *roll = phi; + *pitch = theta; + *yaw = psi; +} + + +/** + * Converts a quaternion to euler angles + * + * @param quaternion a [w, x, y, z] ordered quaternion (null-rotation being 1 0 0 0) + * @param roll the roll angle in radians + * @param pitch the pitch angle in radians + * @param yaw the yaw angle in radians + */ +MAVLINK_HELPER void mavlink_quaternion_to_euler(const float quaternion[4], float* roll, float* pitch, float* yaw) +{ + float dcm[3][3]; + mavlink_quaternion_to_dcm(quaternion, dcm); + mavlink_dcm_to_euler((const float(*)[3])dcm, roll, pitch, yaw); +} + + +/** + * Converts euler angles to a quaternion + * + * @param roll the roll angle in radians + * @param pitch the pitch angle in radians + * @param yaw the yaw angle in radians + * @param quaternion a [w, x, y, z] ordered quaternion (null-rotation being 1 0 0 0) + */ +MAVLINK_HELPER void mavlink_euler_to_quaternion(float roll, float pitch, float yaw, float quaternion[4]) +{ + float cosPhi_2 = cosf(roll / 2); + float sinPhi_2 = sinf(roll / 2); + float cosTheta_2 = cosf(pitch / 2); + float sinTheta_2 = sinf(pitch / 2); + float cosPsi_2 = cosf(yaw / 2); + float sinPsi_2 = sinf(yaw / 2); + quaternion[0] = (cosPhi_2 * cosTheta_2 * cosPsi_2 + + sinPhi_2 * sinTheta_2 * sinPsi_2); + quaternion[1] = (sinPhi_2 * cosTheta_2 * cosPsi_2 - + cosPhi_2 * sinTheta_2 * sinPsi_2); + quaternion[2] = (cosPhi_2 * sinTheta_2 * cosPsi_2 + + sinPhi_2 * cosTheta_2 * sinPsi_2); + quaternion[3] = (cosPhi_2 * cosTheta_2 * sinPsi_2 - + sinPhi_2 * sinTheta_2 * cosPsi_2); +} + + +/** + * Converts a rotation matrix to a quaternion + * Reference: + * - Shoemake, Quaternions, + * http://www.cs.ucr.edu/~vbz/resources/quatut.pdf + * + * @param dcm a 3x3 rotation matrix + * @param quaternion a [w, x, y, z] ordered quaternion (null-rotation being 1 0 0 0) + */ +MAVLINK_HELPER void mavlink_dcm_to_quaternion(const float dcm[3][3], float quaternion[4]) +{ + float tr = dcm[0][0] + dcm[1][1] + dcm[2][2]; + if (tr > 0.0f) { + float s = sqrtf(tr + 1.0f); + quaternion[0] = s * 0.5f; + s = 0.5f / s; + quaternion[1] = (dcm[2][1] - dcm[1][2]) * s; + quaternion[2] = (dcm[0][2] - dcm[2][0]) * s; + quaternion[3] = (dcm[1][0] - dcm[0][1]) * s; + } else { + /* Find maximum diagonal element in dcm + * store index in dcm_i */ + int dcm_i = 0; + int i; + for (i = 1; i < 3; i++) { + if (dcm[i][i] > dcm[dcm_i][dcm_i]) { + dcm_i = i; + } + } + + int dcm_j = (dcm_i + 1) % 3; + int dcm_k = (dcm_i + 2) % 3; + + float s = sqrtf((dcm[dcm_i][dcm_i] - dcm[dcm_j][dcm_j] - + dcm[dcm_k][dcm_k]) + 1.0f); + quaternion[dcm_i + 1] = s * 0.5f; + s = 0.5f / s; + quaternion[dcm_j + 1] = (dcm[dcm_i][dcm_j] + dcm[dcm_j][dcm_i]) * s; + quaternion[dcm_k + 1] = (dcm[dcm_k][dcm_i] + dcm[dcm_i][dcm_k]) * s; + quaternion[0] = (dcm[dcm_k][dcm_j] - dcm[dcm_j][dcm_k]) * s; + } +} + + +/** + * Converts euler angles to a rotation matrix + * + * @param roll the roll angle in radians + * @param pitch the pitch angle in radians + * @param yaw the yaw angle in radians + * @param dcm a 3x3 rotation matrix + */ +MAVLINK_HELPER void mavlink_euler_to_dcm(float roll, float pitch, float yaw, float dcm[3][3]) +{ + float cosPhi = cosf(roll); + float sinPhi = sinf(roll); + float cosThe = cosf(pitch); + float sinThe = sinf(pitch); + float cosPsi = cosf(yaw); + float sinPsi = sinf(yaw); + + dcm[0][0] = cosThe * cosPsi; + dcm[0][1] = -cosPhi * sinPsi + sinPhi * sinThe * cosPsi; + dcm[0][2] = sinPhi * sinPsi + cosPhi * sinThe * cosPsi; + + dcm[1][0] = cosThe * sinPsi; + dcm[1][1] = cosPhi * cosPsi + sinPhi * sinThe * sinPsi; + dcm[1][2] = -sinPhi * cosPsi + cosPhi * sinThe * sinPsi; + + dcm[2][0] = -sinThe; + dcm[2][1] = sinPhi * cosThe; + dcm[2][2] = cosPhi * cosThe; +} + diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_get_info.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_get_info.h new file mode 100755 index 0000000000000000000000000000000000000000..1118105895406145a10557ee7ee40e53e45563fa --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_get_info.h @@ -0,0 +1,37 @@ +#pragma once + +#ifdef MAVLINK_USE_MESSAGE_INFO +#define MAVLINK_HAVE_GET_MESSAGE_INFO +/* + return the message_info struct for a message +*/ +MAVLINK_HELPER const mavlink_message_info_t *mavlink_get_message_info(const mavlink_message_t *msg) +{ + static const mavlink_message_info_t mavlink_message_info[] = MAVLINK_MESSAGE_INFO; + /* + use a bisection search to find the right entry. A perfect hash may be better + Note that this assumes the table is sorted with primary key msgid + */ + uint32_t msgid = msg->msgid; + uint32_t low=0, high=sizeof(mavlink_message_info)/sizeof(mavlink_message_info[0]); + while (low < high) { + uint32_t mid = (low+1+high)/2; + if (msgid < mavlink_message_info[mid].msgid) { + high = mid-1; + continue; + } + if (msgid > mavlink_message_info[mid].msgid) { + low = mid; + continue; + } + low = mid; + break; + } + if (mavlink_message_info[low].msgid == msgid) { + return &mavlink_message_info[low]; + } + return NULL; +} +#endif // MAVLINK_USE_MESSAGE_INFO + + diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_helpers.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_helpers.h new file mode 100755 index 0000000000000000000000000000000000000000..0107cc153e46a3ebec48ae7a10731d0560f71a56 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_helpers.h @@ -0,0 +1,1119 @@ +#pragma once + +#include "string.h" +#include "checksum.h" +#include "mavlink_types.h" +#include "mavlink_conversions.h" +#include <stdio.h> + +#ifndef MAVLINK_HELPER +#define MAVLINK_HELPER +#endif + +#include "mavlink_sha256.h" + +#ifdef MAVLINK_USE_CXX_NAMESPACE +namespace mavlink { +#endif + +/* + * Internal function to give access to the channel status for each channel + */ +#ifndef MAVLINK_GET_CHANNEL_STATUS +MAVLINK_HELPER mavlink_status_t* mavlink_get_channel_status(uint8_t chan) +{ +#ifdef MAVLINK_EXTERNAL_RX_STATUS + // No m_mavlink_status array defined in function, + // has to be defined externally +#else + static mavlink_status_t m_mavlink_status[MAVLINK_COMM_NUM_BUFFERS]; +#endif + return &m_mavlink_status[chan]; +} +#endif + +/* + * Internal function to give access to the channel buffer for each channel + */ +#ifndef MAVLINK_GET_CHANNEL_BUFFER +MAVLINK_HELPER mavlink_message_t* mavlink_get_channel_buffer(uint8_t chan) +{ + +#ifdef MAVLINK_EXTERNAL_RX_BUFFER + // No m_mavlink_buffer array defined in function, + // has to be defined externally +#else + static mavlink_message_t m_mavlink_buffer[MAVLINK_COMM_NUM_BUFFERS]; +#endif + return &m_mavlink_buffer[chan]; +} +#endif // MAVLINK_GET_CHANNEL_BUFFER + +/** + * @brief Reset the status of a channel. + */ +MAVLINK_HELPER void mavlink_reset_channel_status(uint8_t chan) +{ + mavlink_status_t *status = mavlink_get_channel_status(chan); + status->parse_state = MAVLINK_PARSE_STATE_IDLE; +} + +/** + * @brief create a signature block for a packet + */ +MAVLINK_HELPER uint8_t mavlink_sign_packet(mavlink_signing_t *signing, + uint8_t signature[MAVLINK_SIGNATURE_BLOCK_LEN], + const uint8_t *header, uint8_t header_len, + const uint8_t *packet, uint8_t packet_len, + const uint8_t crc[2]) +{ + mavlink_sha256_ctx ctx; + union { + uint64_t t64; + uint8_t t8[8]; + } tstamp; + if (signing == NULL || !(signing->flags & MAVLINK_SIGNING_FLAG_SIGN_OUTGOING)) { + return 0; + } + signature[0] = signing->link_id; + tstamp.t64 = signing->timestamp; + memcpy(&signature[1], tstamp.t8, 6); + signing->timestamp++; + + mavlink_sha256_init(&ctx); + mavlink_sha256_update(&ctx, signing->secret_key, sizeof(signing->secret_key)); + mavlink_sha256_update(&ctx, header, header_len); + mavlink_sha256_update(&ctx, packet, packet_len); + mavlink_sha256_update(&ctx, crc, 2); + mavlink_sha256_update(&ctx, signature, 7); + mavlink_sha256_final_48(&ctx, &signature[7]); + + return MAVLINK_SIGNATURE_BLOCK_LEN; +} + +/** + * return new packet length for trimming payload of any trailing zero + * bytes. Used in MAVLink2 to give simple support for variable length + * arrays. + */ +MAVLINK_HELPER uint8_t _mav_trim_payload(const char *payload, uint8_t length) +{ + while (length > 1 && payload[length-1] == 0) { + length--; + } + return length; +} + +/** + * @brief check a signature block for a packet + */ +MAVLINK_HELPER bool mavlink_signature_check(mavlink_signing_t *signing, + mavlink_signing_streams_t *signing_streams, + const mavlink_message_t *msg) +{ + if (signing == NULL) { + return true; + } + const uint8_t *p = (const uint8_t *)&msg->magic; + const uint8_t *psig = msg->signature; + const uint8_t *incoming_signature = psig+7; + mavlink_sha256_ctx ctx; + uint8_t signature[6]; + uint16_t i; + + mavlink_sha256_init(&ctx); + mavlink_sha256_update(&ctx, signing->secret_key, sizeof(signing->secret_key)); + mavlink_sha256_update(&ctx, p, MAVLINK_CORE_HEADER_LEN+1+msg->len); + mavlink_sha256_update(&ctx, msg->ck, 2); + mavlink_sha256_update(&ctx, psig, 1+6); + mavlink_sha256_final_48(&ctx, signature); + if (memcmp(signature, incoming_signature, 6) != 0) { + return false; + } + + // now check timestamp + union tstamp { + uint64_t t64; + uint8_t t8[8]; + } tstamp; + uint8_t link_id = psig[0]; + tstamp.t64 = 0; + memcpy(tstamp.t8, psig+1, 6); + + if (signing_streams == NULL) { + return false; + } + + // find stream + for (i=0; i<signing_streams->num_signing_streams; i++) { + if (msg->sysid == signing_streams->stream[i].sysid && + msg->compid == signing_streams->stream[i].compid && + link_id == signing_streams->stream[i].link_id) { + break; + } + } + if (i == signing_streams->num_signing_streams) { + if (signing_streams->num_signing_streams >= MAVLINK_MAX_SIGNING_STREAMS) { + // over max number of streams + return false; + } + // new stream. Only accept if timestamp is not more than 1 minute old + if (tstamp.t64 + 6000*1000UL < signing->timestamp) { + return false; + } + // add new stream + signing_streams->stream[i].sysid = msg->sysid; + signing_streams->stream[i].compid = msg->compid; + signing_streams->stream[i].link_id = link_id; + signing_streams->num_signing_streams++; + } else { + union tstamp last_tstamp; + last_tstamp.t64 = 0; + memcpy(last_tstamp.t8, signing_streams->stream[i].timestamp_bytes, 6); + if (tstamp.t64 <= last_tstamp.t64) { + // repeating old timestamp + return false; + } + } + + // remember last timestamp + memcpy(signing_streams->stream[i].timestamp_bytes, psig+1, 6); + + // our next timestamp must be at least this timestamp + if (tstamp.t64 > signing->timestamp) { + signing->timestamp = tstamp.t64; + } + return true; +} + + +/** + * @brief Finalize a MAVLink message with channel assignment + * + * This function calculates the checksum and sets length and aircraft id correctly. + * It assumes that the message id and the payload are already correctly set. This function + * can also be used if the message header has already been written before (as in mavlink_msg_xxx_pack + * instead of mavlink_msg_xxx_pack_headerless), it just introduces little extra overhead. + * + * @param msg Message to finalize + * @param system_id Id of the sending (this) system, 1-127 + * @param length Message length + */ +MAVLINK_HELPER uint16_t mavlink_finalize_message_buffer(mavlink_message_t* msg, uint8_t system_id, uint8_t component_id, + mavlink_status_t* status, uint8_t min_length, uint8_t length, uint8_t crc_extra) +{ + bool mavlink1 = (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) != 0; + bool signing = (!mavlink1) && status->signing && (status->signing->flags & MAVLINK_SIGNING_FLAG_SIGN_OUTGOING); + uint8_t signature_len = signing? MAVLINK_SIGNATURE_BLOCK_LEN : 0; + uint8_t header_len = MAVLINK_CORE_HEADER_LEN+1; + uint8_t buf[MAVLINK_CORE_HEADER_LEN+1]; + if (mavlink1) { + msg->magic = MAVLINK_STX_MAVLINK1; + header_len = MAVLINK_CORE_HEADER_MAVLINK1_LEN+1; + } else { + msg->magic = MAVLINK_STX; + } + msg->len = mavlink1?min_length:_mav_trim_payload(_MAV_PAYLOAD(msg), length); + msg->sysid = system_id; + msg->compid = component_id; + msg->incompat_flags = 0; + if (signing) { + msg->incompat_flags |= MAVLINK_IFLAG_SIGNED; + } + msg->compat_flags = 0; + msg->seq = status->current_tx_seq; + status->current_tx_seq = status->current_tx_seq + 1; + + // form the header as a byte array for the crc + buf[0] = msg->magic; + buf[1] = msg->len; + if (mavlink1) { + buf[2] = msg->seq; + buf[3] = msg->sysid; + buf[4] = msg->compid; + buf[5] = msg->msgid & 0xFF; + } else { + buf[2] = msg->incompat_flags; + buf[3] = msg->compat_flags; + buf[4] = msg->seq; + buf[5] = msg->sysid; + buf[6] = msg->compid; + buf[7] = msg->msgid & 0xFF; + buf[8] = (msg->msgid >> 8) & 0xFF; + buf[9] = (msg->msgid >> 16) & 0xFF; + } + + msg->checksum = crc_calculate(&buf[1], header_len-1); + crc_accumulate_buffer(&msg->checksum, _MAV_PAYLOAD(msg), msg->len); + crc_accumulate(crc_extra, &msg->checksum); + mavlink_ck_a(msg) = (uint8_t)(msg->checksum & 0xFF); + mavlink_ck_b(msg) = (uint8_t)(msg->checksum >> 8); + + if (signing) { + mavlink_sign_packet(status->signing, + msg->signature, + (const uint8_t *)buf, header_len, + (const uint8_t *)_MAV_PAYLOAD(msg), msg->len, + (const uint8_t *)_MAV_PAYLOAD(msg)+(uint16_t)msg->len); + } + + return msg->len + header_len + 2 + signature_len; +} + +MAVLINK_HELPER uint16_t mavlink_finalize_message_chan(mavlink_message_t* msg, uint8_t system_id, uint8_t component_id, + uint8_t chan, uint8_t min_length, uint8_t length, uint8_t crc_extra) +{ + mavlink_status_t *status = mavlink_get_channel_status(chan); + return mavlink_finalize_message_buffer(msg, system_id, component_id, status, min_length, length, crc_extra); +} + +/** + * @brief Finalize a MAVLink message with MAVLINK_COMM_0 as default channel + */ +MAVLINK_HELPER uint16_t mavlink_finalize_message(mavlink_message_t* msg, uint8_t system_id, uint8_t component_id, + uint8_t min_length, uint8_t length, uint8_t crc_extra) +{ + return mavlink_finalize_message_chan(msg, system_id, component_id, MAVLINK_COMM_0, min_length, length, crc_extra); +} + +static inline void _mav_parse_error(mavlink_status_t *status) +{ + status->parse_error++; +} + +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS +MAVLINK_HELPER void _mavlink_send_uart(mavlink_channel_t chan, const char *buf, uint16_t len); + +/** + * @brief Finalize a MAVLink message with channel assignment and send + */ +MAVLINK_HELPER void _mav_finalize_message_chan_send(mavlink_channel_t chan, uint32_t msgid, + const char *packet, + uint8_t min_length, uint8_t length, uint8_t crc_extra) +{ + uint16_t checksum; + uint8_t buf[MAVLINK_NUM_HEADER_BYTES]; + uint8_t ck[2]; + mavlink_status_t *status = mavlink_get_channel_status(chan); + uint8_t header_len = MAVLINK_CORE_HEADER_LEN; + uint8_t signature_len = 0; + uint8_t signature[MAVLINK_SIGNATURE_BLOCK_LEN]; + bool mavlink1 = (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) != 0; + bool signing = (!mavlink1) && status->signing && (status->signing->flags & MAVLINK_SIGNING_FLAG_SIGN_OUTGOING); + + if (mavlink1) { + length = min_length; + if (msgid > 255) { + // can't send 16 bit messages + _mav_parse_error(status); + return; + } + header_len = MAVLINK_CORE_HEADER_MAVLINK1_LEN; + buf[0] = MAVLINK_STX_MAVLINK1; + buf[1] = length; + buf[2] = status->current_tx_seq; + buf[3] = mavlink_system.sysid; + buf[4] = mavlink_system.compid; + buf[5] = msgid & 0xFF; + } else { + uint8_t incompat_flags = 0; + if (signing) { + incompat_flags |= MAVLINK_IFLAG_SIGNED; + } + length = _mav_trim_payload(packet, length); + buf[0] = MAVLINK_STX; + buf[1] = length; + buf[2] = incompat_flags; + buf[3] = 0; // compat_flags + buf[4] = status->current_tx_seq; + buf[5] = mavlink_system.sysid; + buf[6] = mavlink_system.compid; + buf[7] = msgid & 0xFF; + buf[8] = (msgid >> 8) & 0xFF; + buf[9] = (msgid >> 16) & 0xFF; + } + status->current_tx_seq++; + checksum = crc_calculate((const uint8_t*)&buf[1], header_len); + crc_accumulate_buffer(&checksum, packet, length); + crc_accumulate(crc_extra, &checksum); + ck[0] = (uint8_t)(checksum & 0xFF); + ck[1] = (uint8_t)(checksum >> 8); + + if (signing) { + // possibly add a signature + signature_len = mavlink_sign_packet(status->signing, signature, buf, header_len+1, + (const uint8_t *)packet, length, ck); + } + + MAVLINK_START_UART_SEND(chan, header_len + 3 + (uint16_t)length + (uint16_t)signature_len); + _mavlink_send_uart(chan, (const char *)buf, header_len+1); + _mavlink_send_uart(chan, packet, length); + _mavlink_send_uart(chan, (const char *)ck, 2); + if (signature_len != 0) { + _mavlink_send_uart(chan, (const char *)signature, signature_len); + } + MAVLINK_END_UART_SEND(chan, header_len + 3 + (uint16_t)length + (uint16_t)signature_len); +} + +/** + * @brief re-send a message over a uart channel + * this is more stack efficient than re-marshalling the message + * If the message is signed then the original signature is also sent + */ +MAVLINK_HELPER void _mavlink_resend_uart(mavlink_channel_t chan, const mavlink_message_t *msg) +{ + uint8_t ck[2]; + + ck[0] = (uint8_t)(msg->checksum & 0xFF); + ck[1] = (uint8_t)(msg->checksum >> 8); + // XXX use the right sequence here + + uint8_t header_len; + uint8_t signature_len; + + if (msg->magic == MAVLINK_STX_MAVLINK1) { + header_len = MAVLINK_CORE_HEADER_MAVLINK1_LEN + 1; + signature_len = 0; + MAVLINK_START_UART_SEND(chan, header_len + msg->len + 2 + signature_len); + // we can't send the structure directly as it has extra mavlink2 elements in it + uint8_t buf[MAVLINK_CORE_HEADER_MAVLINK1_LEN + 1]; + buf[0] = msg->magic; + buf[1] = msg->len; + buf[2] = msg->seq; + buf[3] = msg->sysid; + buf[4] = msg->compid; + buf[5] = msg->msgid & 0xFF; + _mavlink_send_uart(chan, (const char*)buf, header_len); + } else { + header_len = MAVLINK_CORE_HEADER_LEN + 1; + signature_len = (msg->incompat_flags & MAVLINK_IFLAG_SIGNED)?MAVLINK_SIGNATURE_BLOCK_LEN:0; + MAVLINK_START_UART_SEND(chan, header_len + msg->len + 2 + signature_len); + uint8_t buf[MAVLINK_CORE_HEADER_LEN + 1]; + buf[0] = msg->magic; + buf[1] = msg->len; + buf[2] = msg->incompat_flags; + buf[3] = msg->compat_flags; + buf[4] = msg->seq; + buf[5] = msg->sysid; + buf[6] = msg->compid; + buf[7] = msg->msgid & 0xFF; + buf[8] = (msg->msgid >> 8) & 0xFF; + buf[9] = (msg->msgid >> 16) & 0xFF; + _mavlink_send_uart(chan, (const char *)buf, header_len); + } + _mavlink_send_uart(chan, _MAV_PAYLOAD(msg), msg->len); + _mavlink_send_uart(chan, (const char *)ck, 2); + if (signature_len != 0) { + _mavlink_send_uart(chan, (const char *)msg->signature, MAVLINK_SIGNATURE_BLOCK_LEN); + } + MAVLINK_END_UART_SEND(chan, header_len + msg->len + 2 + signature_len); +} +#endif // MAVLINK_USE_CONVENIENCE_FUNCTIONS + +/** + * @brief Pack a message to send it over a serial byte stream + */ +MAVLINK_HELPER uint16_t mavlink_msg_to_send_buffer(uint8_t *buf, const mavlink_message_t *msg) +{ + uint8_t signature_len, header_len; + uint8_t *ck; + uint8_t length = msg->len; + + if (msg->magic == MAVLINK_STX_MAVLINK1) { + signature_len = 0; + header_len = MAVLINK_CORE_HEADER_MAVLINK1_LEN; + buf[0] = msg->magic; + buf[1] = length; + buf[2] = msg->seq; + buf[3] = msg->sysid; + buf[4] = msg->compid; + buf[5] = msg->msgid & 0xFF; + memcpy(&buf[6], _MAV_PAYLOAD(msg), msg->len); + ck = buf + header_len + 1 + (uint16_t)msg->len; + } else { + length = _mav_trim_payload(_MAV_PAYLOAD(msg), length); + header_len = MAVLINK_CORE_HEADER_LEN; + buf[0] = msg->magic; + buf[1] = length; + buf[2] = msg->incompat_flags; + buf[3] = msg->compat_flags; + buf[4] = msg->seq; + buf[5] = msg->sysid; + buf[6] = msg->compid; + buf[7] = msg->msgid & 0xFF; + buf[8] = (msg->msgid >> 8) & 0xFF; + buf[9] = (msg->msgid >> 16) & 0xFF; + memcpy(&buf[10], _MAV_PAYLOAD(msg), length); + ck = buf + header_len + 1 + (uint16_t)length; + signature_len = (msg->incompat_flags & MAVLINK_IFLAG_SIGNED)?MAVLINK_SIGNATURE_BLOCK_LEN:0; + } + ck[0] = (uint8_t)(msg->checksum & 0xFF); + ck[1] = (uint8_t)(msg->checksum >> 8); + if (signature_len > 0) { + memcpy(&ck[2], msg->signature, signature_len); + } + + return header_len + 1 + 2 + (uint16_t)length + (uint16_t)signature_len; +} + +union __mavlink_bitfield { + uint8_t uint8; + int8_t int8; + uint16_t uint16; + int16_t int16; + uint32_t uint32; + int32_t int32; +}; + + +MAVLINK_HELPER void mavlink_start_checksum(mavlink_message_t* msg) +{ + crc_init(&msg->checksum); +} + +MAVLINK_HELPER void mavlink_update_checksum(mavlink_message_t* msg, uint8_t c) +{ + crc_accumulate(c, &msg->checksum); +} + +/* + return the crc_entry value for a msgid +*/ +#ifndef MAVLINK_GET_MSG_ENTRY +MAVLINK_HELPER const mavlink_msg_entry_t *mavlink_get_msg_entry(uint32_t msgid) +{ + static const mavlink_msg_entry_t mavlink_message_crcs[] = MAVLINK_MESSAGE_CRCS; + /* + use a bisection search to find the right entry. A perfect hash may be better + Note that this assumes the table is sorted by msgid + */ + uint32_t low=0, high=sizeof(mavlink_message_crcs)/sizeof(mavlink_message_crcs[0]); + while (low < high) { + uint32_t mid = (low+1+high)/2; + if (msgid < mavlink_message_crcs[mid].msgid) { + high = mid-1; + continue; + } + if (msgid > mavlink_message_crcs[mid].msgid) { + low = mid; + continue; + } + low = mid; + break; + } + if (mavlink_message_crcs[low].msgid != msgid) { + // msgid is not in the table + return NULL; + } + return &mavlink_message_crcs[low]; +} +#endif // MAVLINK_GET_MSG_ENTRY + +/* + return the crc_extra value for a message +*/ +MAVLINK_HELPER uint8_t mavlink_get_crc_extra(const mavlink_message_t *msg) +{ + const mavlink_msg_entry_t *e = mavlink_get_msg_entry(msg->msgid); + return e?e->crc_extra:0; +} + +/* + return the expected message length +*/ +#define MAVLINK_HAVE_EXPECTED_MESSAGE_LENGTH +MAVLINK_HELPER uint8_t mavlink_expected_message_length(const mavlink_message_t *msg) +{ + const mavlink_msg_entry_t *e = mavlink_get_msg_entry(msg->msgid); + return e?e->msg_len:0; +} + +/** + * This is a varient of mavlink_frame_char() but with caller supplied + * parsing buffers. It is useful when you want to create a MAVLink + * parser in a library that doesn't use any global variables + * + * @param rxmsg parsing message buffer + * @param status parsing starus buffer + * @param c The char to parse + * + * @param returnMsg NULL if no message could be decoded, the message data else + * @param returnStats if a message was decoded, this is filled with the channel's stats + * @return 0 if no message could be decoded, 1 on good message and CRC, 2 on bad CRC + * + * A typical use scenario of this function call is: + * + * @code + * #include <mavlink.h> + * + * mavlink_message_t msg; + * int chan = 0; + * + * + * while(serial.bytesAvailable > 0) + * { + * uint8_t byte = serial.getNextByte(); + * if (mavlink_frame_char(chan, byte, &msg) != MAVLINK_FRAMING_INCOMPLETE) + * { + * printf("Received message with ID %d, sequence: %d from component %d of system %d", msg.msgid, msg.seq, msg.compid, msg.sysid); + * } + * } + * + * + * @endcode + */ +MAVLINK_HELPER uint8_t mavlink_frame_char_buffer(mavlink_message_t* rxmsg, + mavlink_status_t* status, + uint8_t c, + mavlink_message_t* r_message, + mavlink_status_t* r_mavlink_status) +{ + /* Enable this option to check the length of each message. + This allows invalid messages to be caught much sooner. Use if the transmission + medium is prone to missing (or extra) characters (e.g. a radio that fades in + and out). Only use if the channel will only contain messages types listed in + the headers. + */ +#ifdef MAVLINK_CHECK_MESSAGE_LENGTH +#ifndef MAVLINK_MESSAGE_LENGTH + static const uint8_t mavlink_message_lengths[256] = MAVLINK_MESSAGE_LENGTHS; +#define MAVLINK_MESSAGE_LENGTH(msgid) mavlink_message_lengths[msgid] +#endif +#endif + + int bufferIndex = 0; + + status->msg_received = MAVLINK_FRAMING_INCOMPLETE; + + switch (status->parse_state) + { + case MAVLINK_PARSE_STATE_UNINIT: + case MAVLINK_PARSE_STATE_IDLE: + if (c == MAVLINK_STX) + { + status->parse_state = MAVLINK_PARSE_STATE_GOT_STX; + rxmsg->len = 0; + rxmsg->magic = c; + status->flags &= ~MAVLINK_STATUS_FLAG_IN_MAVLINK1; + mavlink_start_checksum(rxmsg); + } else if (c == MAVLINK_STX_MAVLINK1) + { + status->parse_state = MAVLINK_PARSE_STATE_GOT_STX; + rxmsg->len = 0; + rxmsg->magic = c; + status->flags |= MAVLINK_STATUS_FLAG_IN_MAVLINK1; + mavlink_start_checksum(rxmsg); + } + break; + + case MAVLINK_PARSE_STATE_GOT_STX: + if (status->msg_received +/* Support shorter buffers than the + default maximum packet size */ +#if (MAVLINK_MAX_PAYLOAD_LEN < 255) + || c > MAVLINK_MAX_PAYLOAD_LEN +#endif + ) + { + status->buffer_overrun++; + _mav_parse_error(status); + status->msg_received = 0; + status->parse_state = MAVLINK_PARSE_STATE_IDLE; + } + else + { + // NOT counting STX, LENGTH, SEQ, SYSID, COMPID, MSGID, CRC1 and CRC2 + rxmsg->len = c; + status->packet_idx = 0; + mavlink_update_checksum(rxmsg, c); + if (status->flags & MAVLINK_STATUS_FLAG_IN_MAVLINK1) { + rxmsg->incompat_flags = 0; + rxmsg->compat_flags = 0; + status->parse_state = MAVLINK_PARSE_STATE_GOT_COMPAT_FLAGS; + } else { + status->parse_state = MAVLINK_PARSE_STATE_GOT_LENGTH; + } + } + break; + + case MAVLINK_PARSE_STATE_GOT_LENGTH: + rxmsg->incompat_flags = c; + if ((rxmsg->incompat_flags & ~MAVLINK_IFLAG_MASK) != 0) { + // message includes an incompatible feature flag + _mav_parse_error(status); + status->msg_received = 0; + status->parse_state = MAVLINK_PARSE_STATE_IDLE; + break; + } + mavlink_update_checksum(rxmsg, c); + status->parse_state = MAVLINK_PARSE_STATE_GOT_INCOMPAT_FLAGS; + break; + + case MAVLINK_PARSE_STATE_GOT_INCOMPAT_FLAGS: + rxmsg->compat_flags = c; + mavlink_update_checksum(rxmsg, c); + status->parse_state = MAVLINK_PARSE_STATE_GOT_COMPAT_FLAGS; + break; + + case MAVLINK_PARSE_STATE_GOT_COMPAT_FLAGS: + rxmsg->seq = c; + mavlink_update_checksum(rxmsg, c); + status->parse_state = MAVLINK_PARSE_STATE_GOT_SEQ; + break; + + case MAVLINK_PARSE_STATE_GOT_SEQ: + rxmsg->sysid = c; + mavlink_update_checksum(rxmsg, c); + status->parse_state = MAVLINK_PARSE_STATE_GOT_SYSID; + break; + + case MAVLINK_PARSE_STATE_GOT_SYSID: + rxmsg->compid = c; + mavlink_update_checksum(rxmsg, c); + status->parse_state = MAVLINK_PARSE_STATE_GOT_COMPID; + break; + + case MAVLINK_PARSE_STATE_GOT_COMPID: + rxmsg->msgid = c; + mavlink_update_checksum(rxmsg, c); + if (status->flags & MAVLINK_STATUS_FLAG_IN_MAVLINK1) { + status->parse_state = MAVLINK_PARSE_STATE_GOT_MSGID3; +#ifdef MAVLINK_CHECK_MESSAGE_LENGTH + if (rxmsg->len != MAVLINK_MESSAGE_LENGTH(rxmsg->msgid)) + { + _mav_parse_error(status); + status->parse_state = MAVLINK_PARSE_STATE_IDLE; + break; + } +#endif + } else { + status->parse_state = MAVLINK_PARSE_STATE_GOT_MSGID1; + } + break; + + case MAVLINK_PARSE_STATE_GOT_MSGID1: + rxmsg->msgid |= c<<8; + mavlink_update_checksum(rxmsg, c); + status->parse_state = MAVLINK_PARSE_STATE_GOT_MSGID2; + break; + + case MAVLINK_PARSE_STATE_GOT_MSGID2: + rxmsg->msgid |= c<<16; + mavlink_update_checksum(rxmsg, c); + status->parse_state = MAVLINK_PARSE_STATE_GOT_MSGID3; +#ifdef MAVLINK_CHECK_MESSAGE_LENGTH + if (rxmsg->len != MAVLINK_MESSAGE_LENGTH(rxmsg->msgid)) + { + _mav_parse_error(status); + status->parse_state = MAVLINK_PARSE_STATE_IDLE; + break; + } +#endif + break; + + case MAVLINK_PARSE_STATE_GOT_MSGID3: + _MAV_PAYLOAD_NON_CONST(rxmsg)[status->packet_idx++] = (char)c; + mavlink_update_checksum(rxmsg, c); + if (status->packet_idx == rxmsg->len) + { + status->parse_state = MAVLINK_PARSE_STATE_GOT_PAYLOAD; + } + break; + + case MAVLINK_PARSE_STATE_GOT_PAYLOAD: { + const mavlink_msg_entry_t *e = mavlink_get_msg_entry(rxmsg->msgid); + uint8_t crc_extra = e?e->crc_extra:0; + mavlink_update_checksum(rxmsg, crc_extra); + if (c != (rxmsg->checksum & 0xFF)) { + status->parse_state = MAVLINK_PARSE_STATE_GOT_BAD_CRC1; + } else { + status->parse_state = MAVLINK_PARSE_STATE_GOT_CRC1; + } + rxmsg->ck[0] = c; + + // zero-fill the packet to cope with short incoming packets + if (e && status->packet_idx < e->msg_len) { + memset(&_MAV_PAYLOAD_NON_CONST(rxmsg)[status->packet_idx], 0, e->msg_len - status->packet_idx); + } + break; + } + + case MAVLINK_PARSE_STATE_GOT_CRC1: + case MAVLINK_PARSE_STATE_GOT_BAD_CRC1: + if (status->parse_state == MAVLINK_PARSE_STATE_GOT_BAD_CRC1 || c != (rxmsg->checksum >> 8)) { + // got a bad CRC message + status->msg_received = MAVLINK_FRAMING_BAD_CRC; + } else { + // Successfully got message + status->msg_received = MAVLINK_FRAMING_OK; + } + rxmsg->ck[1] = c; + + if (rxmsg->incompat_flags & MAVLINK_IFLAG_SIGNED) { + status->parse_state = MAVLINK_PARSE_STATE_SIGNATURE_WAIT; + status->signature_wait = MAVLINK_SIGNATURE_BLOCK_LEN; + + // If the CRC is already wrong, don't overwrite msg_received, + // otherwise we can end up with garbage flagged as valid. + if (status->msg_received != MAVLINK_FRAMING_BAD_CRC) { + status->msg_received = MAVLINK_FRAMING_INCOMPLETE; + } + } else { + if (status->signing && + (status->signing->accept_unsigned_callback == NULL || + !status->signing->accept_unsigned_callback(status, rxmsg->msgid))) { + + // If the CRC is already wrong, don't overwrite msg_received. + if (status->msg_received != MAVLINK_FRAMING_BAD_CRC) { + status->msg_received = MAVLINK_FRAMING_BAD_SIGNATURE; + } + } + status->parse_state = MAVLINK_PARSE_STATE_IDLE; + memcpy(r_message, rxmsg, sizeof(mavlink_message_t)); + } + break; + case MAVLINK_PARSE_STATE_SIGNATURE_WAIT: + rxmsg->signature[MAVLINK_SIGNATURE_BLOCK_LEN-status->signature_wait] = c; + status->signature_wait--; + if (status->signature_wait == 0) { + // we have the whole signature, check it is OK + bool sig_ok = mavlink_signature_check(status->signing, status->signing_streams, rxmsg); + if (!sig_ok && + (status->signing->accept_unsigned_callback && + status->signing->accept_unsigned_callback(status, rxmsg->msgid))) { + // accepted via application level override + sig_ok = true; + } + if (sig_ok) { + status->msg_received = MAVLINK_FRAMING_OK; + } else { + status->msg_received = MAVLINK_FRAMING_BAD_SIGNATURE; + } + status->parse_state = MAVLINK_PARSE_STATE_IDLE; + memcpy(r_message, rxmsg, sizeof(mavlink_message_t)); + } + break; + } + + bufferIndex++; + // If a message has been sucessfully decoded, check index + if (status->msg_received == MAVLINK_FRAMING_OK) + { + //while(status->current_seq != rxmsg->seq) + //{ + // status->packet_rx_drop_count++; + // status->current_seq++; + //} + status->current_rx_seq = rxmsg->seq; + // Initial condition: If no packet has been received so far, drop count is undefined + if (status->packet_rx_success_count == 0) status->packet_rx_drop_count = 0; + // Count this packet as received + status->packet_rx_success_count++; + } + + r_message->len = rxmsg->len; // Provide visibility on how far we are into current msg + r_mavlink_status->parse_state = status->parse_state; + r_mavlink_status->packet_idx = status->packet_idx; + r_mavlink_status->current_rx_seq = status->current_rx_seq+1; + r_mavlink_status->packet_rx_success_count = status->packet_rx_success_count; + r_mavlink_status->packet_rx_drop_count = status->parse_error; + r_mavlink_status->flags = status->flags; + status->parse_error = 0; + + if (status->msg_received == MAVLINK_FRAMING_BAD_CRC) { + /* + the CRC came out wrong. We now need to overwrite the + msg CRC with the one on the wire so that if the + caller decides to forward the message anyway that + mavlink_msg_to_send_buffer() won't overwrite the + checksum + */ + r_message->checksum = rxmsg->ck[0] | (rxmsg->ck[1]<<8); + } + + return status->msg_received; +} + +/** + * This is a convenience function which handles the complete MAVLink parsing. + * the function will parse one byte at a time and return the complete packet once + * it could be successfully decoded. This function will return 0, 1 or + * 2 (MAVLINK_FRAMING_INCOMPLETE, MAVLINK_FRAMING_OK or MAVLINK_FRAMING_BAD_CRC) + * + * Messages are parsed into an internal buffer (one for each channel). When a complete + * message is received it is copies into *returnMsg and the channel's status is + * copied into *returnStats. + * + * @param chan ID of the current channel. This allows to parse different channels with this function. + * a channel is not a physical message channel like a serial port, but a logic partition of + * the communication streams in this case. COMM_NB is the limit for the number of channels + * on MCU (e.g. ARM7), while COMM_NB_HIGH is the limit for the number of channels in Linux/Windows + * @param c The char to parse + * + * @param returnMsg NULL if no message could be decoded, the message data else + * @param returnStats if a message was decoded, this is filled with the channel's stats + * @return 0 if no message could be decoded, 1 on good message and CRC, 2 on bad CRC + * + * A typical use scenario of this function call is: + * + * @code + * #include <mavlink.h> + * + * mavlink_message_t msg; + * int chan = 0; + * + * + * while(serial.bytesAvailable > 0) + * { + * uint8_t byte = serial.getNextByte(); + * if (mavlink_frame_char(chan, byte, &msg) != MAVLINK_FRAMING_INCOMPLETE) + * { + * printf("Received message with ID %d, sequence: %d from component %d of system %d", msg.msgid, msg.seq, msg.compid, msg.sysid); + * } + * } + * + * + * @endcode + */ +MAVLINK_HELPER uint8_t mavlink_frame_char(uint8_t chan, uint8_t c, mavlink_message_t* r_message, mavlink_status_t* r_mavlink_status) +{ + return mavlink_frame_char_buffer(mavlink_get_channel_buffer(chan), + mavlink_get_channel_status(chan), + c, + r_message, + r_mavlink_status); +} + +/** + * Set the protocol version + */ +MAVLINK_HELPER void mavlink_set_proto_version(uint8_t chan, unsigned int version) +{ + mavlink_status_t *status = mavlink_get_channel_status(chan); + if (version > 1) { + status->flags &= ~(MAVLINK_STATUS_FLAG_OUT_MAVLINK1); + } else { + status->flags |= MAVLINK_STATUS_FLAG_OUT_MAVLINK1; + } +} + +/** + * Get the protocol version + * + * @return 1 for v1, 2 for v2 + */ +MAVLINK_HELPER unsigned int mavlink_get_proto_version(uint8_t chan) +{ + mavlink_status_t *status = mavlink_get_channel_status(chan); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) > 0) { + return 1; + } else { + return 2; + } +} + +/** + * This is a convenience function which handles the complete MAVLink parsing. + * the function will parse one byte at a time and return the complete packet once + * it could be successfully decoded. This function will return 0 or 1. + * + * Messages are parsed into an internal buffer (one for each channel). When a complete + * message is received it is copies into *returnMsg and the channel's status is + * copied into *returnStats. + * + * @param chan ID of the current channel. This allows to parse different channels with this function. + * a channel is not a physical message channel like a serial port, but a logic partition of + * the communication streams in this case. COMM_NB is the limit for the number of channels + * on MCU (e.g. ARM7), while COMM_NB_HIGH is the limit for the number of channels in Linux/Windows + * @param c The char to parse + * + * @param returnMsg NULL if no message could be decoded, the message data else + * @param returnStats if a message was decoded, this is filled with the channel's stats + * @return 0 if no message could be decoded or bad CRC, 1 on good message and CRC + * + * A typical use scenario of this function call is: + * + * @code + * #include <mavlink.h> + * + * mavlink_message_t msg; + * int chan = 0; + * + * + * while(serial.bytesAvailable > 0) + * { + * uint8_t byte = serial.getNextByte(); + * if (mavlink_parse_char(chan, byte, &msg)) + * { + * printf("Received message with ID %d, sequence: %d from component %d of system %d", msg.msgid, msg.seq, msg.compid, msg.sysid); + * } + * } + * + * + * @endcode + */ +MAVLINK_HELPER uint8_t mavlink_parse_char(uint8_t chan, uint8_t c, mavlink_message_t* r_message, mavlink_status_t* r_mavlink_status) +{ + uint8_t msg_received = mavlink_frame_char(chan, c, r_message, r_mavlink_status); + if (msg_received == MAVLINK_FRAMING_BAD_CRC || + msg_received == MAVLINK_FRAMING_BAD_SIGNATURE) { + // we got a bad CRC. Treat as a parse failure + mavlink_message_t* rxmsg = mavlink_get_channel_buffer(chan); + mavlink_status_t* status = mavlink_get_channel_status(chan); + _mav_parse_error(status); + status->msg_received = MAVLINK_FRAMING_INCOMPLETE; + status->parse_state = MAVLINK_PARSE_STATE_IDLE; + if (c == MAVLINK_STX) + { + status->parse_state = MAVLINK_PARSE_STATE_GOT_STX; + rxmsg->len = 0; + mavlink_start_checksum(rxmsg); + } + return 0; + } + return msg_received; +} + +/** + * @brief Put a bitfield of length 1-32 bit into the buffer + * + * @param b the value to add, will be encoded in the bitfield + * @param bits number of bits to use to encode b, e.g. 1 for boolean, 2, 3, etc. + * @param packet_index the position in the packet (the index of the first byte to use) + * @param bit_index the position in the byte (the index of the first bit to use) + * @param buffer packet buffer to write into + * @return new position of the last used byte in the buffer + */ +MAVLINK_HELPER uint8_t put_bitfield_n_by_index(int32_t b, uint8_t bits, uint8_t packet_index, uint8_t bit_index, uint8_t* r_bit_index, uint8_t* buffer) +{ + uint16_t bits_remain = bits; + // Transform number into network order + int32_t v; + uint8_t i_bit_index, i_byte_index, curr_bits_n; +#if MAVLINK_NEED_BYTE_SWAP + union { + int32_t i; + uint8_t b[4]; + } bin, bout; + bin.i = b; + bout.b[0] = bin.b[3]; + bout.b[1] = bin.b[2]; + bout.b[2] = bin.b[1]; + bout.b[3] = bin.b[0]; + v = bout.i; +#else + v = b; +#endif + + // buffer in + // 01100000 01000000 00000000 11110001 + // buffer out + // 11110001 00000000 01000000 01100000 + + // Existing partly filled byte (four free slots) + // 0111xxxx + + // Mask n free bits + // 00001111 = 2^0 + 2^1 + 2^2 + 2^3 = 2^n - 1 + // = ((uint32_t)(1 << n)) - 1; // = 2^n - 1 + + // Shift n bits into the right position + // out = in >> n; + + // Mask and shift bytes + i_bit_index = bit_index; + i_byte_index = packet_index; + if (bit_index > 0) + { + // If bits were available at start, they were available + // in the byte before the current index + i_byte_index--; + } + + // While bits have not been packed yet + while (bits_remain > 0) + { + // Bits still have to be packed + // there can be more than 8 bits, so + // we might have to pack them into more than one byte + + // First pack everything we can into the current 'open' byte + //curr_bits_n = bits_remain << 3; // Equals bits_remain mod 8 + //FIXME + if (bits_remain <= (uint8_t)(8 - i_bit_index)) + { + // Enough space + curr_bits_n = (uint8_t)bits_remain; + } + else + { + curr_bits_n = (8 - i_bit_index); + } + + // Pack these n bits into the current byte + // Mask out whatever was at that position with ones (xxx11111) + buffer[i_byte_index] &= (0xFF >> (8 - curr_bits_n)); + // Put content to this position, by masking out the non-used part + buffer[i_byte_index] |= ((0x00 << curr_bits_n) & v); + + // Increment the bit index + i_bit_index += curr_bits_n; + + // Now proceed to the next byte, if necessary + bits_remain -= curr_bits_n; + if (bits_remain > 0) + { + // Offer another 8 bits / one byte + i_byte_index++; + i_bit_index = 0; + } + } + + *r_bit_index = i_bit_index; + // If a partly filled byte is present, mark this as consumed + if (i_bit_index != 7) i_byte_index++; + return i_byte_index - packet_index; +} + +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +// To make MAVLink work on your MCU, define comm_send_ch() if you wish +// to send 1 byte at a time, or MAVLINK_SEND_UART_BYTES() to send a +// whole packet at a time + +/* + +#include "mavlink_types.h" + +void comm_send_ch(mavlink_channel_t chan, uint8_t ch) +{ + if (chan == MAVLINK_COMM_0) + { + uart0_transmit(ch); + } + if (chan == MAVLINK_COMM_1) + { + uart1_transmit(ch); + } +} + */ + +MAVLINK_HELPER void _mavlink_send_uart(mavlink_channel_t chan, const char *buf, uint16_t len) +{ +#ifdef MAVLINK_SEND_UART_BYTES + /* this is the more efficient approach, if the platform + defines it */ + MAVLINK_SEND_UART_BYTES(chan, (const uint8_t *)buf, len); +#else + /* fallback to one byte at a time */ + uint16_t i; + for (i = 0; i < len; i++) { + comm_send_ch(chan, (uint8_t)buf[i]); + } +#endif +} +#endif // MAVLINK_USE_CONVENIENCE_FUNCTIONS + +#ifdef MAVLINK_USE_CXX_NAMESPACE +} // namespace mavlink +#endif diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_sha256.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_sha256.h new file mode 100755 index 0000000000000000000000000000000000000000..317feb9e1874bdace0533cfaf3d06e7cb956781d --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_sha256.h @@ -0,0 +1,252 @@ +#pragma once + +/* + sha-256 implementation for MAVLink based on Heimdal sources, with + modifications to suit mavlink headers + */ +/* + * Copyright (c) 1995 - 2001 Kungliga Tekniska Högskolan + * (Royal Institute of Technology, Stockholm, Sweden). + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + allow implementation to provide their own sha256 with the same API +*/ +#ifndef HAVE_MAVLINK_SHA256 + +#ifdef MAVLINK_USE_CXX_NAMESPACE +namespace mavlink { +#endif + +#ifndef MAVLINK_HELPER +#define MAVLINK_HELPER +#endif + +typedef struct { + unsigned int sz[2]; + uint32_t counter[8]; + union { + unsigned char save_bytes[64]; + uint32_t save_u32[16]; + } u; +} mavlink_sha256_ctx; + +#define Ch(x,y,z) (((x) & (y)) ^ ((~(x)) & (z))) +#define Maj(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z))) + +#define ROTR(x,n) (((x)>>(n)) | ((x) << (32 - (n)))) + +#define Sigma0(x) (ROTR(x,2) ^ ROTR(x,13) ^ ROTR(x,22)) +#define Sigma1(x) (ROTR(x,6) ^ ROTR(x,11) ^ ROTR(x,25)) +#define sigma0(x) (ROTR(x,7) ^ ROTR(x,18) ^ ((x)>>3)) +#define sigma1(x) (ROTR(x,17) ^ ROTR(x,19) ^ ((x)>>10)) + +#define A m->counter[0] +#define B m->counter[1] +#define C m->counter[2] +#define D m->counter[3] +#define E m->counter[4] +#define F m->counter[5] +#define G m->counter[6] +#define H m->counter[7] + +static const uint32_t mavlink_sha256_constant_256[64] = { + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, + 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, + 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, + 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, + 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, + 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, + 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +}; + +MAVLINK_HELPER void mavlink_sha256_init(mavlink_sha256_ctx *m) +{ + m->sz[0] = 0; + m->sz[1] = 0; + A = 0x6a09e667; + B = 0xbb67ae85; + C = 0x3c6ef372; + D = 0xa54ff53a; + E = 0x510e527f; + F = 0x9b05688c; + G = 0x1f83d9ab; + H = 0x5be0cd19; +} + +static inline void mavlink_sha256_calc(mavlink_sha256_ctx *m, uint32_t *in) +{ + uint32_t AA, BB, CC, DD, EE, FF, GG, HH; + uint32_t data[64]; + int i; + + AA = A; + BB = B; + CC = C; + DD = D; + EE = E; + FF = F; + GG = G; + HH = H; + + for (i = 0; i < 16; ++i) + data[i] = in[i]; + for (i = 16; i < 64; ++i) + data[i] = sigma1(data[i-2]) + data[i-7] + + sigma0(data[i-15]) + data[i - 16]; + + for (i = 0; i < 64; i++) { + uint32_t T1, T2; + + T1 = HH + Sigma1(EE) + Ch(EE, FF, GG) + mavlink_sha256_constant_256[i] + data[i]; + T2 = Sigma0(AA) + Maj(AA,BB,CC); + + HH = GG; + GG = FF; + FF = EE; + EE = DD + T1; + DD = CC; + CC = BB; + BB = AA; + AA = T1 + T2; + } + + A += AA; + B += BB; + C += CC; + D += DD; + E += EE; + F += FF; + G += GG; + H += HH; +} + +MAVLINK_HELPER void mavlink_sha256_update(mavlink_sha256_ctx *m, const void *v, uint32_t len) +{ + const unsigned char *p = (const unsigned char *)v; + uint32_t old_sz = m->sz[0]; + uint32_t offset; + + m->sz[0] += len * 8; + if (m->sz[0] < old_sz) + ++m->sz[1]; + offset = (old_sz / 8) % 64; + while(len > 0){ + uint32_t l = 64 - offset; + if (len < l) { + l = len; + } + memcpy(m->u.save_bytes + offset, p, l); + offset += l; + p += l; + len -= l; + if(offset == 64){ + int i; + uint32_t current[16]; + const uint32_t *u = m->u.save_u32; + for (i = 0; i < 16; i++){ + const uint8_t *p1 = (const uint8_t *)&u[i]; + uint8_t *p2 = (uint8_t *)¤t[i]; + p2[0] = p1[3]; + p2[1] = p1[2]; + p2[2] = p1[1]; + p2[3] = p1[0]; + } + mavlink_sha256_calc(m, current); + offset = 0; + } + } +} + +/* + get first 48 bits of final sha256 hash + */ +MAVLINK_HELPER void mavlink_sha256_final_48(mavlink_sha256_ctx *m, uint8_t result[6]) +{ + unsigned char zeros[72]; + unsigned offset = (m->sz[0] / 8) % 64; + unsigned int dstart = (120 - offset - 1) % 64 + 1; + uint8_t *p = (uint8_t *)&m->counter[0]; + + *zeros = 0x80; + memset (zeros + 1, 0, sizeof(zeros) - 1); + zeros[dstart+7] = (m->sz[0] >> 0) & 0xff; + zeros[dstart+6] = (m->sz[0] >> 8) & 0xff; + zeros[dstart+5] = (m->sz[0] >> 16) & 0xff; + zeros[dstart+4] = (m->sz[0] >> 24) & 0xff; + zeros[dstart+3] = (m->sz[1] >> 0) & 0xff; + zeros[dstart+2] = (m->sz[1] >> 8) & 0xff; + zeros[dstart+1] = (m->sz[1] >> 16) & 0xff; + zeros[dstart+0] = (m->sz[1] >> 24) & 0xff; + + mavlink_sha256_update(m, zeros, dstart + 8); + + // this ordering makes the result consistent with taking the first + // 6 bytes of more conventional sha256 functions. It assumes + // little-endian ordering of m->counter + result[0] = p[3]; + result[1] = p[2]; + result[2] = p[1]; + result[3] = p[0]; + result[4] = p[7]; + result[5] = p[6]; +} + +// prevent conflicts with users of the header +#undef A +#undef B +#undef C +#undef D +#undef E +#undef F +#undef G +#undef H +#undef Ch +#undef ROTR +#undef Sigma0 +#undef Sigma1 +#undef sigma0 +#undef sigma1 + +#ifdef MAVLINK_USE_CXX_NAMESPACE +} // namespace mavlink +#endif + +#endif // HAVE_MAVLINK_SHA256 diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_types.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_types.h new file mode 100755 index 0000000000000000000000000000000000000000..7b616200115339f73451c269fdec82e9ee7a27ae --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/mavlink_types.h @@ -0,0 +1,298 @@ +#pragma once + +// Visual Studio versions before 2010 don't have stdint.h, so we just error out. +#if (defined _MSC_VER) && (_MSC_VER < 1600) +#error "The C-MAVLink implementation requires Visual Studio 2010 or greater" +#endif + +#include <stdbool.h> +#include <stdint.h> + +#ifdef MAVLINK_USE_CXX_NAMESPACE +namespace mavlink { +#endif + +// Macro to define packed structures +#ifdef __GNUC__ + #define MAVPACKED( __Declaration__ ) __Declaration__ __attribute__((packed)) +#else + #define MAVPACKED( __Declaration__ ) __pragma( pack(push, 1) ) __Declaration__ __pragma( pack(pop) ) +#endif + +#ifndef MAVLINK_MAX_PAYLOAD_LEN +// it is possible to override this, but be careful! +#define MAVLINK_MAX_PAYLOAD_LEN 255 ///< Maximum payload length +#endif + +#define MAVLINK_CORE_HEADER_LEN 9 ///< Length of core header (of the comm. layer) +#define MAVLINK_CORE_HEADER_MAVLINK1_LEN 5 ///< Length of MAVLink1 core header (of the comm. layer) +#define MAVLINK_NUM_HEADER_BYTES (MAVLINK_CORE_HEADER_LEN + 1) ///< Length of all header bytes, including core and stx +#define MAVLINK_NUM_CHECKSUM_BYTES 2 +#define MAVLINK_NUM_NON_PAYLOAD_BYTES (MAVLINK_NUM_HEADER_BYTES + MAVLINK_NUM_CHECKSUM_BYTES) + +#define MAVLINK_SIGNATURE_BLOCK_LEN 13 + +#define MAVLINK_MAX_PACKET_LEN (MAVLINK_MAX_PAYLOAD_LEN + MAVLINK_NUM_NON_PAYLOAD_BYTES + MAVLINK_SIGNATURE_BLOCK_LEN) ///< Maximum packet length + +/** + * Old-style 4 byte param union + * + * This struct is the data format to be used when sending + * parameters. The parameter should be copied to the native + * type (without type conversion) + * and re-instanted on the receiving side using the + * native type as well. + */ +MAVPACKED( +typedef struct param_union { + union { + float param_float; + int32_t param_int32; + uint32_t param_uint32; + int16_t param_int16; + uint16_t param_uint16; + int8_t param_int8; + uint8_t param_uint8; + uint8_t bytes[4]; + }; + uint8_t type; +}) mavlink_param_union_t; + + +/** + * New-style 8 byte param union + * mavlink_param_union_double_t will be 8 bytes long, and treated as needing 8 byte alignment for the purposes of MAVLink 1.0 field ordering. + * The mavlink_param_union_double_t will be treated as a little-endian structure. + * + * If is_double is 1 then the type is a double, and the remaining 63 bits are the double, with the lowest bit of the mantissa zero. + * The intention is that by replacing the is_double bit with 0 the type can be directly used as a double (as the is_double bit corresponds to the + * lowest mantissa bit of a double). If is_double is 0 then mavlink_type gives the type in the union. + * The mavlink_types.h header will also need to have shifts/masks to define the bit boundaries in the above, + * as bitfield ordering isn’t consistent between platforms. The above is intended to be for gcc on x86, + * which should be the same as gcc on little-endian arm. When using shifts/masks the value will be treated as a 64 bit unsigned number, + * and the bits pulled out using the shifts/masks. +*/ +MAVPACKED( +typedef struct param_union_extended { + union { + struct { + uint8_t is_double:1; + uint8_t mavlink_type:7; + union { + char c; + uint8_t uint8; + int8_t int8; + uint16_t uint16; + int16_t int16; + uint32_t uint32; + int32_t int32; + float f; + uint8_t align[7]; + }; + }; + uint8_t data[8]; + }; +}) mavlink_param_union_double_t; + +/** + * This structure is required to make the mavlink_send_xxx convenience functions + * work, as it tells the library what the current system and component ID are. + */ +MAVPACKED( +typedef struct __mavlink_system { + uint8_t sysid; ///< Used by the MAVLink message_xx_send() convenience function + uint8_t compid; ///< Used by the MAVLink message_xx_send() convenience function +}) mavlink_system_t; + +MAVPACKED( +typedef struct __mavlink_message { + uint16_t checksum; ///< sent at end of packet + uint8_t magic; ///< protocol magic marker + uint8_t len; ///< Length of payload + uint8_t incompat_flags; ///< flags that must be understood + uint8_t compat_flags; ///< flags that can be ignored if not understood + uint8_t seq; ///< Sequence of packet + uint8_t sysid; ///< ID of message sender system/aircraft + uint8_t compid; ///< ID of the message sender component + uint32_t msgid:24; ///< ID of message in payload + uint64_t payload64[(MAVLINK_MAX_PAYLOAD_LEN+MAVLINK_NUM_CHECKSUM_BYTES+7)/8]; + uint8_t ck[2]; ///< incoming checksum bytes + uint8_t signature[MAVLINK_SIGNATURE_BLOCK_LEN]; +}) mavlink_message_t; + +typedef enum { + MAVLINK_TYPE_CHAR = 0, + MAVLINK_TYPE_UINT8_T = 1, + MAVLINK_TYPE_INT8_T = 2, + MAVLINK_TYPE_UINT16_T = 3, + MAVLINK_TYPE_INT16_T = 4, + MAVLINK_TYPE_UINT32_T = 5, + MAVLINK_TYPE_INT32_T = 6, + MAVLINK_TYPE_UINT64_T = 7, + MAVLINK_TYPE_INT64_T = 8, + MAVLINK_TYPE_FLOAT = 9, + MAVLINK_TYPE_DOUBLE = 10 +} mavlink_message_type_t; + +#define MAVLINK_MAX_FIELDS 64 + +typedef struct __mavlink_field_info { + const char *name; // name of this field + const char *print_format; // printing format hint, or NULL + mavlink_message_type_t type; // type of this field + unsigned int array_length; // if non-zero, field is an array + unsigned int wire_offset; // offset of each field in the payload + unsigned int structure_offset; // offset in a C structure +} mavlink_field_info_t; + +// note that in this structure the order of fields is the order +// in the XML file, not necessary the wire order +typedef struct __mavlink_message_info { + uint32_t msgid; // message ID + const char *name; // name of the message + unsigned num_fields; // how many fields in this message + mavlink_field_info_t fields[MAVLINK_MAX_FIELDS]; // field information +} mavlink_message_info_t; + +#define _MAV_PAYLOAD(msg) ((const char *)(&((msg)->payload64[0]))) +#define _MAV_PAYLOAD_NON_CONST(msg) ((char *)(&((msg)->payload64[0]))) + +// checksum is immediately after the payload bytes +#define mavlink_ck_a(msg) *((msg)->len + (uint8_t *)_MAV_PAYLOAD_NON_CONST(msg)) +#define mavlink_ck_b(msg) *(((msg)->len+(uint16_t)1) + (uint8_t *)_MAV_PAYLOAD_NON_CONST(msg)) + +typedef enum { + MAVLINK_COMM_0, + MAVLINK_COMM_1, + MAVLINK_COMM_2, + MAVLINK_COMM_3 +} mavlink_channel_t; + +/* + * applications can set MAVLINK_COMM_NUM_BUFFERS to the maximum number + * of buffers they will use. If more are used, then the result will be + * a stack overrun + */ +#ifndef MAVLINK_COMM_NUM_BUFFERS +#if (defined linux) | (defined __linux) | (defined __MACH__) | (defined _WIN32) +# define MAVLINK_COMM_NUM_BUFFERS 16 +#else +# define MAVLINK_COMM_NUM_BUFFERS 4 +#endif +#endif + +typedef enum { + MAVLINK_PARSE_STATE_UNINIT=0, + MAVLINK_PARSE_STATE_IDLE, + MAVLINK_PARSE_STATE_GOT_STX, + MAVLINK_PARSE_STATE_GOT_LENGTH, + MAVLINK_PARSE_STATE_GOT_INCOMPAT_FLAGS, + MAVLINK_PARSE_STATE_GOT_COMPAT_FLAGS, + MAVLINK_PARSE_STATE_GOT_SEQ, + MAVLINK_PARSE_STATE_GOT_SYSID, + MAVLINK_PARSE_STATE_GOT_COMPID, + MAVLINK_PARSE_STATE_GOT_MSGID1, + MAVLINK_PARSE_STATE_GOT_MSGID2, + MAVLINK_PARSE_STATE_GOT_MSGID3, + MAVLINK_PARSE_STATE_GOT_PAYLOAD, + MAVLINK_PARSE_STATE_GOT_CRC1, + MAVLINK_PARSE_STATE_GOT_BAD_CRC1, + MAVLINK_PARSE_STATE_SIGNATURE_WAIT +} mavlink_parse_state_t; ///< The state machine for the comm parser + +typedef enum { + MAVLINK_FRAMING_INCOMPLETE=0, + MAVLINK_FRAMING_OK=1, + MAVLINK_FRAMING_BAD_CRC=2, + MAVLINK_FRAMING_BAD_SIGNATURE=3 +} mavlink_framing_t; + +#define MAVLINK_STATUS_FLAG_IN_MAVLINK1 1 // last incoming packet was MAVLink1 +#define MAVLINK_STATUS_FLAG_OUT_MAVLINK1 2 // generate MAVLink1 by default +#define MAVLINK_STATUS_FLAG_IN_SIGNED 4 // last incoming packet was signed and validated +#define MAVLINK_STATUS_FLAG_IN_BADSIG 8 // last incoming packet had a bad signature + +#define MAVLINK_STX_MAVLINK1 0xFE // marker for old protocol + +typedef struct __mavlink_status { + uint8_t msg_received; ///< Number of received messages + uint8_t buffer_overrun; ///< Number of buffer overruns + uint8_t parse_error; ///< Number of parse errors + mavlink_parse_state_t parse_state; ///< Parsing state machine + uint8_t packet_idx; ///< Index in current packet + uint8_t current_rx_seq; ///< Sequence number of last packet received + uint8_t current_tx_seq; ///< Sequence number of last packet sent + uint16_t packet_rx_success_count; ///< Received packets + uint16_t packet_rx_drop_count; ///< Number of packet drops + uint8_t flags; ///< MAVLINK_STATUS_FLAG_* + uint8_t signature_wait; ///< number of signature bytes left to receive + struct __mavlink_signing *signing; ///< optional signing state + struct __mavlink_signing_streams *signing_streams; ///< global record of stream timestamps +} mavlink_status_t; + +/* + a callback function to allow for accepting unsigned packets + */ +typedef bool (*mavlink_accept_unsigned_t)(const mavlink_status_t *status, uint32_t msgid); + +/* + flags controlling signing + */ +#define MAVLINK_SIGNING_FLAG_SIGN_OUTGOING 1 + +/* + state of MAVLink signing for this channel + */ +typedef struct __mavlink_signing { + uint8_t flags; ///< MAVLINK_SIGNING_FLAG_* + uint8_t link_id; + uint64_t timestamp; + uint8_t secret_key[32]; + mavlink_accept_unsigned_t accept_unsigned_callback; +} mavlink_signing_t; + +/* + timestamp state of each logical signing stream. This needs to be the same structure for all + connections in order to be secure + */ +#ifndef MAVLINK_MAX_SIGNING_STREAMS +#define MAVLINK_MAX_SIGNING_STREAMS 16 +#endif +typedef struct __mavlink_signing_streams { + uint16_t num_signing_streams; + struct __mavlink_signing_stream { + uint8_t link_id; + uint8_t sysid; + uint8_t compid; + uint8_t timestamp_bytes[6]; + } stream[MAVLINK_MAX_SIGNING_STREAMS]; +} mavlink_signing_streams_t; + + +#define MAVLINK_BIG_ENDIAN 0 +#define MAVLINK_LITTLE_ENDIAN 1 + +#define MAV_MSG_ENTRY_FLAG_HAVE_TARGET_SYSTEM 1 +#define MAV_MSG_ENTRY_FLAG_HAVE_TARGET_COMPONENT 2 + +/* + entry in table of information about each message type + */ +typedef struct __mavlink_msg_entry { + uint32_t msgid; + uint8_t crc_extra; + uint8_t msg_len; + uint8_t flags; // MAV_MSG_ENTRY_FLAG_* + uint8_t target_system_ofs; // payload offset to target_system, or 0 + uint8_t target_component_ofs; // payload offset to target_component, or 0 +} mavlink_msg_entry_t; + +/* + incompat_flags bits + */ +#define MAVLINK_IFLAG_SIGNED 0x01 +#define MAVLINK_IFLAG_MASK 0x01 // mask of all understood bits + +#ifdef MAVLINK_USE_CXX_NAMESPACE +} // namespace mavlink +#endif diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/protocol.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/protocol.h new file mode 100755 index 0000000000000000000000000000000000000000..8550277b3e43b8eb04aa7f285bd0cd29cc940772 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/protocol.h @@ -0,0 +1,334 @@ +#pragma once + +#include "string.h" +#include "mavlink_types.h" + +/* + If you want MAVLink on a system that is native big-endian, + you need to define NATIVE_BIG_ENDIAN +*/ +#ifdef NATIVE_BIG_ENDIAN +# define MAVLINK_NEED_BYTE_SWAP (MAVLINK_ENDIAN == MAVLINK_LITTLE_ENDIAN) +#else +# define MAVLINK_NEED_BYTE_SWAP (MAVLINK_ENDIAN != MAVLINK_LITTLE_ENDIAN) +#endif + +#ifndef MAVLINK_STACK_BUFFER +#define MAVLINK_STACK_BUFFER 0 +#endif + +#ifndef MAVLINK_AVOID_GCC_STACK_BUG +# define MAVLINK_AVOID_GCC_STACK_BUG defined(__GNUC__) +#endif + +#ifndef MAVLINK_ASSERT +#define MAVLINK_ASSERT(x) +#endif + +#ifndef MAVLINK_START_UART_SEND +#define MAVLINK_START_UART_SEND(chan, length) +#endif + +#ifndef MAVLINK_END_UART_SEND +#define MAVLINK_END_UART_SEND(chan, length) +#endif + +/* option to provide alternative implementation of mavlink_helpers.h */ +#ifdef MAVLINK_SEPARATE_HELPERS + + #define MAVLINK_HELPER + + /* decls in sync with those in mavlink_helpers.h */ + #ifndef MAVLINK_GET_CHANNEL_STATUS + MAVLINK_HELPER mavlink_status_t* mavlink_get_channel_status(uint8_t chan); + #endif + MAVLINK_HELPER void mavlink_reset_channel_status(uint8_t chan); + MAVLINK_HELPER uint16_t mavlink_finalize_message_chan(mavlink_message_t* msg, uint8_t system_id, uint8_t component_id, + uint8_t chan, uint8_t min_length, uint8_t length, uint8_t crc_extra); + MAVLINK_HELPER uint16_t mavlink_finalize_message(mavlink_message_t* msg, uint8_t system_id, uint8_t component_id, + uint8_t min_length, uint8_t length, uint8_t crc_extra); + #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + MAVLINK_HELPER void _mav_finalize_message_chan_send(mavlink_channel_t chan, uint32_t msgid, const char *packet, + uint8_t min_length, uint8_t length, uint8_t crc_extra); + #endif + MAVLINK_HELPER uint16_t mavlink_msg_to_send_buffer(uint8_t *buffer, const mavlink_message_t *msg); + MAVLINK_HELPER void mavlink_start_checksum(mavlink_message_t* msg); + MAVLINK_HELPER void mavlink_update_checksum(mavlink_message_t* msg, uint8_t c); + MAVLINK_HELPER uint8_t mavlink_frame_char_buffer(mavlink_message_t* rxmsg, + mavlink_status_t* status, + uint8_t c, + mavlink_message_t* r_message, + mavlink_status_t* r_mavlink_status); + MAVLINK_HELPER uint8_t mavlink_frame_char(uint8_t chan, uint8_t c, mavlink_message_t* r_message, mavlink_status_t* r_mavlink_status); + MAVLINK_HELPER uint8_t mavlink_parse_char(uint8_t chan, uint8_t c, mavlink_message_t* r_message, mavlink_status_t* r_mavlink_status); + MAVLINK_HELPER uint8_t put_bitfield_n_by_index(int32_t b, uint8_t bits, uint8_t packet_index, uint8_t bit_index, + uint8_t* r_bit_index, uint8_t* buffer); + MAVLINK_HELPER const mavlink_msg_entry_t *mavlink_get_msg_entry(uint32_t msgid); + #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + MAVLINK_HELPER void _mavlink_send_uart(mavlink_channel_t chan, const char *buf, uint16_t len); + MAVLINK_HELPER void _mavlink_resend_uart(mavlink_channel_t chan, const mavlink_message_t *msg); + #endif + +#else + + #define MAVLINK_HELPER static inline + #include "mavlink_helpers.h" + +#endif // MAVLINK_SEPARATE_HELPERS + + +/** + * @brief Get the required buffer size for this message + */ +static inline uint16_t mavlink_msg_get_send_buffer_length(const mavlink_message_t* msg) +{ + if (msg->magic == MAVLINK_STX_MAVLINK1) { + return msg->len + MAVLINK_CORE_HEADER_MAVLINK1_LEN+1 + 2; + } + uint16_t signature_len = (msg->incompat_flags & MAVLINK_IFLAG_SIGNED)?MAVLINK_SIGNATURE_BLOCK_LEN:0; + return msg->len + MAVLINK_NUM_NON_PAYLOAD_BYTES + signature_len; +} + +#if MAVLINK_NEED_BYTE_SWAP +static inline void byte_swap_2(char *dst, const char *src) +{ + dst[0] = src[1]; + dst[1] = src[0]; +} +static inline void byte_swap_4(char *dst, const char *src) +{ + dst[0] = src[3]; + dst[1] = src[2]; + dst[2] = src[1]; + dst[3] = src[0]; +} +static inline void byte_swap_8(char *dst, const char *src) +{ + dst[0] = src[7]; + dst[1] = src[6]; + dst[2] = src[5]; + dst[3] = src[4]; + dst[4] = src[3]; + dst[5] = src[2]; + dst[6] = src[1]; + dst[7] = src[0]; +} +#elif !MAVLINK_ALIGNED_FIELDS +static inline void byte_copy_2(char *dst, const char *src) +{ + dst[0] = src[0]; + dst[1] = src[1]; +} +static inline void byte_copy_4(char *dst, const char *src) +{ + dst[0] = src[0]; + dst[1] = src[1]; + dst[2] = src[2]; + dst[3] = src[3]; +} +static inline void byte_copy_8(char *dst, const char *src) +{ + memcpy(dst, src, 8); +} +#endif + +#define _mav_put_uint8_t(buf, wire_offset, b) buf[wire_offset] = (uint8_t)b +#define _mav_put_int8_t(buf, wire_offset, b) buf[wire_offset] = (int8_t)b +#define _mav_put_char(buf, wire_offset, b) buf[wire_offset] = b + +#if MAVLINK_NEED_BYTE_SWAP +#define _mav_put_uint16_t(buf, wire_offset, b) byte_swap_2(&buf[wire_offset], (const char *)&b) +#define _mav_put_int16_t(buf, wire_offset, b) byte_swap_2(&buf[wire_offset], (const char *)&b) +#define _mav_put_uint32_t(buf, wire_offset, b) byte_swap_4(&buf[wire_offset], (const char *)&b) +#define _mav_put_int32_t(buf, wire_offset, b) byte_swap_4(&buf[wire_offset], (const char *)&b) +#define _mav_put_uint64_t(buf, wire_offset, b) byte_swap_8(&buf[wire_offset], (const char *)&b) +#define _mav_put_int64_t(buf, wire_offset, b) byte_swap_8(&buf[wire_offset], (const char *)&b) +#define _mav_put_float(buf, wire_offset, b) byte_swap_4(&buf[wire_offset], (const char *)&b) +#define _mav_put_double(buf, wire_offset, b) byte_swap_8(&buf[wire_offset], (const char *)&b) +#elif !MAVLINK_ALIGNED_FIELDS +#define _mav_put_uint16_t(buf, wire_offset, b) byte_copy_2(&buf[wire_offset], (const char *)&b) +#define _mav_put_int16_t(buf, wire_offset, b) byte_copy_2(&buf[wire_offset], (const char *)&b) +#define _mav_put_uint32_t(buf, wire_offset, b) byte_copy_4(&buf[wire_offset], (const char *)&b) +#define _mav_put_int32_t(buf, wire_offset, b) byte_copy_4(&buf[wire_offset], (const char *)&b) +#define _mav_put_uint64_t(buf, wire_offset, b) byte_copy_8(&buf[wire_offset], (const char *)&b) +#define _mav_put_int64_t(buf, wire_offset, b) byte_copy_8(&buf[wire_offset], (const char *)&b) +#define _mav_put_float(buf, wire_offset, b) byte_copy_4(&buf[wire_offset], (const char *)&b) +#define _mav_put_double(buf, wire_offset, b) byte_copy_8(&buf[wire_offset], (const char *)&b) +#else +#define _mav_put_uint16_t(buf, wire_offset, b) *(uint16_t *)&buf[wire_offset] = b +#define _mav_put_int16_t(buf, wire_offset, b) *(int16_t *)&buf[wire_offset] = b +#define _mav_put_uint32_t(buf, wire_offset, b) *(uint32_t *)&buf[wire_offset] = b +#define _mav_put_int32_t(buf, wire_offset, b) *(int32_t *)&buf[wire_offset] = b +#define _mav_put_uint64_t(buf, wire_offset, b) *(uint64_t *)&buf[wire_offset] = b +#define _mav_put_int64_t(buf, wire_offset, b) *(int64_t *)&buf[wire_offset] = b +#define _mav_put_float(buf, wire_offset, b) *(float *)&buf[wire_offset] = b +#define _mav_put_double(buf, wire_offset, b) *(double *)&buf[wire_offset] = b +#endif + +/* + like memcpy(), but if src is NULL, do a memset to zero +*/ +static inline void mav_array_memcpy(void *dest, const void *src, size_t n) +{ + if (src == NULL) { + memset(dest, 0, n); + } else { + memcpy(dest, src, n); + } +} + +/* + * Place a char array into a buffer + */ +static inline void _mav_put_char_array(char *buf, uint8_t wire_offset, const char *b, uint8_t array_length) +{ + mav_array_memcpy(&buf[wire_offset], b, array_length); + +} + +/* + * Place a uint8_t array into a buffer + */ +static inline void _mav_put_uint8_t_array(char *buf, uint8_t wire_offset, const uint8_t *b, uint8_t array_length) +{ + mav_array_memcpy(&buf[wire_offset], b, array_length); + +} + +/* + * Place a int8_t array into a buffer + */ +static inline void _mav_put_int8_t_array(char *buf, uint8_t wire_offset, const int8_t *b, uint8_t array_length) +{ + mav_array_memcpy(&buf[wire_offset], b, array_length); + +} + +#if MAVLINK_NEED_BYTE_SWAP +#define _MAV_PUT_ARRAY(TYPE, V) \ +static inline void _mav_put_ ## TYPE ##_array(char *buf, uint8_t wire_offset, const TYPE *b, uint8_t array_length) \ +{ \ + if (b == NULL) { \ + memset(&buf[wire_offset], 0, array_length*sizeof(TYPE)); \ + } else { \ + uint16_t i; \ + for (i=0; i<array_length; i++) { \ + _mav_put_## TYPE (buf, wire_offset+(i*sizeof(TYPE)), b[i]); \ + } \ + } \ +} +#else +#define _MAV_PUT_ARRAY(TYPE, V) \ +static inline void _mav_put_ ## TYPE ##_array(char *buf, uint8_t wire_offset, const TYPE *b, uint8_t array_length) \ +{ \ + mav_array_memcpy(&buf[wire_offset], b, array_length*sizeof(TYPE)); \ +} +#endif + +_MAV_PUT_ARRAY(uint16_t, u16) +_MAV_PUT_ARRAY(uint32_t, u32) +_MAV_PUT_ARRAY(uint64_t, u64) +_MAV_PUT_ARRAY(int16_t, i16) +_MAV_PUT_ARRAY(int32_t, i32) +_MAV_PUT_ARRAY(int64_t, i64) +_MAV_PUT_ARRAY(float, f) +_MAV_PUT_ARRAY(double, d) + +#define _MAV_RETURN_char(msg, wire_offset) (const char)_MAV_PAYLOAD(msg)[wire_offset] +#define _MAV_RETURN_int8_t(msg, wire_offset) (const int8_t)_MAV_PAYLOAD(msg)[wire_offset] +#define _MAV_RETURN_uint8_t(msg, wire_offset) (const uint8_t)_MAV_PAYLOAD(msg)[wire_offset] + +#if MAVLINK_NEED_BYTE_SWAP +#define _MAV_MSG_RETURN_TYPE(TYPE, SIZE) \ +static inline TYPE _MAV_RETURN_## TYPE(const mavlink_message_t *msg, uint8_t ofs) \ +{ TYPE r; byte_swap_## SIZE((char*)&r, &_MAV_PAYLOAD(msg)[ofs]); return r; } + +_MAV_MSG_RETURN_TYPE(uint16_t, 2) +_MAV_MSG_RETURN_TYPE(int16_t, 2) +_MAV_MSG_RETURN_TYPE(uint32_t, 4) +_MAV_MSG_RETURN_TYPE(int32_t, 4) +_MAV_MSG_RETURN_TYPE(uint64_t, 8) +_MAV_MSG_RETURN_TYPE(int64_t, 8) +_MAV_MSG_RETURN_TYPE(float, 4) +_MAV_MSG_RETURN_TYPE(double, 8) + +#elif !MAVLINK_ALIGNED_FIELDS +#define _MAV_MSG_RETURN_TYPE(TYPE, SIZE) \ +static inline TYPE _MAV_RETURN_## TYPE(const mavlink_message_t *msg, uint8_t ofs) \ +{ TYPE r; byte_copy_## SIZE((char*)&r, &_MAV_PAYLOAD(msg)[ofs]); return r; } + +_MAV_MSG_RETURN_TYPE(uint16_t, 2) +_MAV_MSG_RETURN_TYPE(int16_t, 2) +_MAV_MSG_RETURN_TYPE(uint32_t, 4) +_MAV_MSG_RETURN_TYPE(int32_t, 4) +_MAV_MSG_RETURN_TYPE(uint64_t, 8) +_MAV_MSG_RETURN_TYPE(int64_t, 8) +_MAV_MSG_RETURN_TYPE(float, 4) +_MAV_MSG_RETURN_TYPE(double, 8) +#else // nicely aligned, no swap +#define _MAV_MSG_RETURN_TYPE(TYPE) \ +static inline TYPE _MAV_RETURN_## TYPE(const mavlink_message_t *msg, uint8_t ofs) \ +{ return *(const TYPE *)(&_MAV_PAYLOAD(msg)[ofs]);} + +_MAV_MSG_RETURN_TYPE(uint16_t) +_MAV_MSG_RETURN_TYPE(int16_t) +_MAV_MSG_RETURN_TYPE(uint32_t) +_MAV_MSG_RETURN_TYPE(int32_t) +_MAV_MSG_RETURN_TYPE(uint64_t) +_MAV_MSG_RETURN_TYPE(int64_t) +_MAV_MSG_RETURN_TYPE(float) +_MAV_MSG_RETURN_TYPE(double) +#endif // MAVLINK_NEED_BYTE_SWAP + +static inline uint16_t _MAV_RETURN_char_array(const mavlink_message_t *msg, char *value, + uint8_t array_length, uint8_t wire_offset) +{ + memcpy(value, &_MAV_PAYLOAD(msg)[wire_offset], array_length); + return array_length; +} + +static inline uint16_t _MAV_RETURN_uint8_t_array(const mavlink_message_t *msg, uint8_t *value, + uint8_t array_length, uint8_t wire_offset) +{ + memcpy(value, &_MAV_PAYLOAD(msg)[wire_offset], array_length); + return array_length; +} + +static inline uint16_t _MAV_RETURN_int8_t_array(const mavlink_message_t *msg, int8_t *value, + uint8_t array_length, uint8_t wire_offset) +{ + memcpy(value, &_MAV_PAYLOAD(msg)[wire_offset], array_length); + return array_length; +} + +#if MAVLINK_NEED_BYTE_SWAP +#define _MAV_RETURN_ARRAY(TYPE, V) \ +static inline uint16_t _MAV_RETURN_## TYPE ##_array(const mavlink_message_t *msg, TYPE *value, \ + uint8_t array_length, uint8_t wire_offset) \ +{ \ + uint16_t i; \ + for (i=0; i<array_length; i++) { \ + value[i] = _MAV_RETURN_## TYPE (msg, wire_offset+(i*sizeof(value[0]))); \ + } \ + return array_length*sizeof(value[0]); \ +} +#else +#define _MAV_RETURN_ARRAY(TYPE, V) \ +static inline uint16_t _MAV_RETURN_## TYPE ##_array(const mavlink_message_t *msg, TYPE *value, \ + uint8_t array_length, uint8_t wire_offset) \ +{ \ + memcpy(value, &_MAV_PAYLOAD(msg)[wire_offset], array_length*sizeof(TYPE)); \ + return array_length*sizeof(TYPE); \ +} +#endif + +_MAV_RETURN_ARRAY(uint16_t, u16) +_MAV_RETURN_ARRAY(uint32_t, u32) +_MAV_RETURN_ARRAY(uint64_t, u64) +_MAV_RETURN_ARRAY(int16_t, i16) +_MAV_RETURN_ARRAY(int32_t, i32) +_MAV_RETURN_ARRAY(int64_t, i64) +_MAV_RETURN_ARRAY(float, f) +_MAV_RETURN_ARRAY(double, d) + + diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink.h new file mode 100755 index 0000000000000000000000000000000000000000..461759ee6dc0a937534e1829ee03dd90211aac97 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink.h @@ -0,0 +1,34 @@ +/** @file + * @brief MAVLink comm protocol built from velox.xml + * @see http://mavlink.org + */ +#pragma once +#ifndef MAVLINK_H +#define MAVLINK_H + +#define MAVLINK_PRIMARY_XML_IDX 0 + +#ifndef MAVLINK_STX +#define MAVLINK_STX 253 +#endif + +#ifndef MAVLINK_ENDIAN +#define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN +#endif + +#ifndef MAVLINK_ALIGNED_FIELDS +#define MAVLINK_ALIGNED_FIELDS 1 +#endif + +#ifndef MAVLINK_CRC_EXTRA +#define MAVLINK_CRC_EXTRA 1 +#endif + +#ifndef MAVLINK_COMMAND_24BIT +#define MAVLINK_COMMAND_24BIT 1 +#endif + +#include "version.h" +#include "velox.h" + +#endif // MAVLINK_H diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_carcontrol.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_carcontrol.h new file mode 100755 index 0000000000000000000000000000000000000000..edd3b73dc2e9bd2cf967147ca359b05732757b9a --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_carcontrol.h @@ -0,0 +1,263 @@ +#pragma once +// MESSAGE CARCONTROL PACKING + +#define MAVLINK_MSG_ID_CARCONTROL 50 + +MAVPACKED( +typedef struct __mavlink_carcontrol_t { + uint32_t timestamp; /*< timestamp*/ + float vehspd; /*< vehicle speed*/ + float stang; /*< steering angle*/ +}) mavlink_carcontrol_t; + +#define MAVLINK_MSG_ID_CARCONTROL_LEN 12 +#define MAVLINK_MSG_ID_CARCONTROL_MIN_LEN 12 +#define MAVLINK_MSG_ID_50_LEN 12 +#define MAVLINK_MSG_ID_50_MIN_LEN 12 + +#define MAVLINK_MSG_ID_CARCONTROL_CRC 202 +#define MAVLINK_MSG_ID_50_CRC 202 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_CARCONTROL { \ + 50, \ + "CARCONTROL", \ + 3, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_carcontrol_t, timestamp) }, \ + { "vehspd", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_carcontrol_t, vehspd) }, \ + { "stang", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_carcontrol_t, stang) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_CARCONTROL { \ + "CARCONTROL", \ + 3, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_carcontrol_t, timestamp) }, \ + { "vehspd", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_carcontrol_t, vehspd) }, \ + { "stang", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_carcontrol_t, stang) }, \ + } \ +} +#endif + +/** + * @brief Pack a carcontrol message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp timestamp + * @param vehspd vehicle speed + * @param stang steering angle + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_carcontrol_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint32_t timestamp, float vehspd, float stang) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CARCONTROL_LEN]; + _mav_put_uint32_t(buf, 0, timestamp); + _mav_put_float(buf, 4, vehspd); + _mav_put_float(buf, 8, stang); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CARCONTROL_LEN); +#else + mavlink_carcontrol_t packet; + packet.timestamp = timestamp; + packet.vehspd = vehspd; + packet.stang = stang; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CARCONTROL_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_CARCONTROL; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_CARCONTROL_MIN_LEN, MAVLINK_MSG_ID_CARCONTROL_LEN, MAVLINK_MSG_ID_CARCONTROL_CRC); +} + +/** + * @brief Pack a carcontrol message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp timestamp + * @param vehspd vehicle speed + * @param stang steering angle + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_carcontrol_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint32_t timestamp,float vehspd,float stang) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CARCONTROL_LEN]; + _mav_put_uint32_t(buf, 0, timestamp); + _mav_put_float(buf, 4, vehspd); + _mav_put_float(buf, 8, stang); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CARCONTROL_LEN); +#else + mavlink_carcontrol_t packet; + packet.timestamp = timestamp; + packet.vehspd = vehspd; + packet.stang = stang; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CARCONTROL_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_CARCONTROL; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_CARCONTROL_MIN_LEN, MAVLINK_MSG_ID_CARCONTROL_LEN, MAVLINK_MSG_ID_CARCONTROL_CRC); +} + +/** + * @brief Encode a carcontrol struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param carcontrol C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_carcontrol_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_carcontrol_t* carcontrol) +{ + return mavlink_msg_carcontrol_pack(system_id, component_id, msg, carcontrol->timestamp, carcontrol->vehspd, carcontrol->stang); +} + +/** + * @brief Encode a carcontrol struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param carcontrol C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_carcontrol_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_carcontrol_t* carcontrol) +{ + return mavlink_msg_carcontrol_pack_chan(system_id, component_id, chan, msg, carcontrol->timestamp, carcontrol->vehspd, carcontrol->stang); +} + +/** + * @brief Send a carcontrol message + * @param chan MAVLink channel to send the message + * + * @param timestamp timestamp + * @param vehspd vehicle speed + * @param stang steering angle + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_carcontrol_send(mavlink_channel_t chan, uint32_t timestamp, float vehspd, float stang) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CARCONTROL_LEN]; + _mav_put_uint32_t(buf, 0, timestamp); + _mav_put_float(buf, 4, vehspd); + _mav_put_float(buf, 8, stang); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CARCONTROL, buf, MAVLINK_MSG_ID_CARCONTROL_MIN_LEN, MAVLINK_MSG_ID_CARCONTROL_LEN, MAVLINK_MSG_ID_CARCONTROL_CRC); +#else + mavlink_carcontrol_t packet; + packet.timestamp = timestamp; + packet.vehspd = vehspd; + packet.stang = stang; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CARCONTROL, (const char *)&packet, MAVLINK_MSG_ID_CARCONTROL_MIN_LEN, MAVLINK_MSG_ID_CARCONTROL_LEN, MAVLINK_MSG_ID_CARCONTROL_CRC); +#endif +} + +/** + * @brief Send a carcontrol message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_carcontrol_send_struct(mavlink_channel_t chan, const mavlink_carcontrol_t* carcontrol) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_carcontrol_send(chan, carcontrol->timestamp, carcontrol->vehspd, carcontrol->stang); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CARCONTROL, (const char *)carcontrol, MAVLINK_MSG_ID_CARCONTROL_MIN_LEN, MAVLINK_MSG_ID_CARCONTROL_LEN, MAVLINK_MSG_ID_CARCONTROL_CRC); +#endif +} + +#if MAVLINK_MSG_ID_CARCONTROL_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_carcontrol_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t timestamp, float vehspd, float stang) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint32_t(buf, 0, timestamp); + _mav_put_float(buf, 4, vehspd); + _mav_put_float(buf, 8, stang); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CARCONTROL, buf, MAVLINK_MSG_ID_CARCONTROL_MIN_LEN, MAVLINK_MSG_ID_CARCONTROL_LEN, MAVLINK_MSG_ID_CARCONTROL_CRC); +#else + mavlink_carcontrol_t *packet = (mavlink_carcontrol_t *)msgbuf; + packet->timestamp = timestamp; + packet->vehspd = vehspd; + packet->stang = stang; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CARCONTROL, (const char *)packet, MAVLINK_MSG_ID_CARCONTROL_MIN_LEN, MAVLINK_MSG_ID_CARCONTROL_LEN, MAVLINK_MSG_ID_CARCONTROL_CRC); +#endif +} +#endif + +#endif + +// MESSAGE CARCONTROL UNPACKING + + +/** + * @brief Get field timestamp from carcontrol message + * + * @return timestamp + */ +static inline uint32_t mavlink_msg_carcontrol_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 0); +} + +/** + * @brief Get field vehspd from carcontrol message + * + * @return vehicle speed + */ +static inline float mavlink_msg_carcontrol_get_vehspd(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 4); +} + +/** + * @brief Get field stang from carcontrol message + * + * @return steering angle + */ +static inline float mavlink_msg_carcontrol_get_stang(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Decode a carcontrol message into a struct + * + * @param msg The message to decode + * @param carcontrol C-struct to decode the message contents into + */ +static inline void mavlink_msg_carcontrol_decode(const mavlink_message_t* msg, mavlink_carcontrol_t* carcontrol) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + carcontrol->timestamp = mavlink_msg_carcontrol_get_timestamp(msg); + carcontrol->vehspd = mavlink_msg_carcontrol_get_vehspd(msg); + carcontrol->stang = mavlink_msg_carcontrol_get_stang(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_CARCONTROL_LEN? msg->len : MAVLINK_MSG_ID_CARCONTROL_LEN; + memset(carcontrol, 0, MAVLINK_MSG_ID_CARCONTROL_LEN); + memcpy(carcontrol, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_clocksync.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_clocksync.h new file mode 100755 index 0000000000000000000000000000000000000000..02ed9767642a9b20d4ee37a1454638cb9a4240dd --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_clocksync.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE CMD_REQUEST_CLOCKSYNC PACKING + +#define MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC 102 + +MAVPACKED( +typedef struct __mavlink_cmd_request_clocksync_t { + uint8_t dummy; /*< message cannot be empty*/ +}) mavlink_cmd_request_clocksync_t; + +#define MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN 1 +#define MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_MIN_LEN 1 +#define MAVLINK_MSG_ID_102_LEN 1 +#define MAVLINK_MSG_ID_102_MIN_LEN 1 + +#define MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_CRC 119 +#define MAVLINK_MSG_ID_102_CRC 119 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_CMD_REQUEST_CLOCKSYNC { \ + 102, \ + "CMD_REQUEST_CLOCKSYNC", \ + 1, \ + { { "dummy", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_cmd_request_clocksync_t, dummy) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_CMD_REQUEST_CLOCKSYNC { \ + "CMD_REQUEST_CLOCKSYNC", \ + 1, \ + { { "dummy", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_cmd_request_clocksync_t, dummy) }, \ + } \ +} +#endif + +/** + * @brief Pack a cmd_request_clocksync message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param dummy message cannot be empty + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_cmd_request_clocksync_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t dummy) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN]; + _mav_put_uint8_t(buf, 0, dummy); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN); +#else + mavlink_cmd_request_clocksync_t packet; + packet.dummy = dummy; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_CRC); +} + +/** + * @brief Pack a cmd_request_clocksync message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param dummy message cannot be empty + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_cmd_request_clocksync_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t dummy) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN]; + _mav_put_uint8_t(buf, 0, dummy); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN); +#else + mavlink_cmd_request_clocksync_t packet; + packet.dummy = dummy; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_CRC); +} + +/** + * @brief Encode a cmd_request_clocksync struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param cmd_request_clocksync C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_cmd_request_clocksync_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_cmd_request_clocksync_t* cmd_request_clocksync) +{ + return mavlink_msg_cmd_request_clocksync_pack(system_id, component_id, msg, cmd_request_clocksync->dummy); +} + +/** + * @brief Encode a cmd_request_clocksync struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param cmd_request_clocksync C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_cmd_request_clocksync_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_cmd_request_clocksync_t* cmd_request_clocksync) +{ + return mavlink_msg_cmd_request_clocksync_pack_chan(system_id, component_id, chan, msg, cmd_request_clocksync->dummy); +} + +/** + * @brief Send a cmd_request_clocksync message + * @param chan MAVLink channel to send the message + * + * @param dummy message cannot be empty + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_cmd_request_clocksync_send(mavlink_channel_t chan, uint8_t dummy) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN]; + _mav_put_uint8_t(buf, 0, dummy); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC, buf, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_CRC); +#else + mavlink_cmd_request_clocksync_t packet; + packet.dummy = dummy; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC, (const char *)&packet, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_CRC); +#endif +} + +/** + * @brief Send a cmd_request_clocksync message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_cmd_request_clocksync_send_struct(mavlink_channel_t chan, const mavlink_cmd_request_clocksync_t* cmd_request_clocksync) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_cmd_request_clocksync_send(chan, cmd_request_clocksync->dummy); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC, (const char *)cmd_request_clocksync, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_CRC); +#endif +} + +#if MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_cmd_request_clocksync_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t dummy) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, dummy); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC, buf, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_CRC); +#else + mavlink_cmd_request_clocksync_t *packet = (mavlink_cmd_request_clocksync_t *)msgbuf; + packet->dummy = dummy; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC, (const char *)packet, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_CRC); +#endif +} +#endif + +#endif + +// MESSAGE CMD_REQUEST_CLOCKSYNC UNPACKING + + +/** + * @brief Get field dummy from cmd_request_clocksync message + * + * @return message cannot be empty + */ +static inline uint8_t mavlink_msg_cmd_request_clocksync_get_dummy(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Decode a cmd_request_clocksync message into a struct + * + * @param msg The message to decode + * @param cmd_request_clocksync C-struct to decode the message contents into + */ +static inline void mavlink_msg_cmd_request_clocksync_decode(const mavlink_message_t* msg, mavlink_cmd_request_clocksync_t* cmd_request_clocksync) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + cmd_request_clocksync->dummy = mavlink_msg_cmd_request_clocksync_get_dummy(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN? msg->len : MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN; + memset(cmd_request_clocksync, 0, MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_LEN); + memcpy(cmd_request_clocksync, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_msg.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_msg.h new file mode 100755 index 0000000000000000000000000000000000000000..c032640ae6be6c3f12b3c0656b24719921975299 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_msg.h @@ -0,0 +1,263 @@ +#pragma once +// MESSAGE CMD_REQUEST_MSG PACKING + +#define MAVLINK_MSG_ID_CMD_REQUEST_MSG 100 + +MAVPACKED( +typedef struct __mavlink_cmd_request_msg_t { + uint8_t msgid; /*< message ID of the requested message*/ + uint8_t active; /*< active if TRUE*/ + uint8_t period; /*< send every x * 10 ms*/ +}) mavlink_cmd_request_msg_t; + +#define MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN 3 +#define MAVLINK_MSG_ID_CMD_REQUEST_MSG_MIN_LEN 3 +#define MAVLINK_MSG_ID_100_LEN 3 +#define MAVLINK_MSG_ID_100_MIN_LEN 3 + +#define MAVLINK_MSG_ID_CMD_REQUEST_MSG_CRC 216 +#define MAVLINK_MSG_ID_100_CRC 216 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_CMD_REQUEST_MSG { \ + 100, \ + "CMD_REQUEST_MSG", \ + 3, \ + { { "msgid", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_cmd_request_msg_t, msgid) }, \ + { "active", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_cmd_request_msg_t, active) }, \ + { "period", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_cmd_request_msg_t, period) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_CMD_REQUEST_MSG { \ + "CMD_REQUEST_MSG", \ + 3, \ + { { "msgid", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_cmd_request_msg_t, msgid) }, \ + { "active", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_cmd_request_msg_t, active) }, \ + { "period", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_cmd_request_msg_t, period) }, \ + } \ +} +#endif + +/** + * @brief Pack a cmd_request_msg message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param msgid message ID of the requested message + * @param active active if TRUE + * @param period send every x * 10 ms + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_cmd_request_msg_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t msgid, uint8_t active, uint8_t period) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN]; + _mav_put_uint8_t(buf, 0, msgid); + _mav_put_uint8_t(buf, 1, active); + _mav_put_uint8_t(buf, 2, period); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN); +#else + mavlink_cmd_request_msg_t packet; + packet.msgid = msgid; + packet.active = active; + packet.period = period; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_CMD_REQUEST_MSG; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_CMD_REQUEST_MSG_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_CRC); +} + +/** + * @brief Pack a cmd_request_msg message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param msgid message ID of the requested message + * @param active active if TRUE + * @param period send every x * 10 ms + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_cmd_request_msg_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t msgid,uint8_t active,uint8_t period) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN]; + _mav_put_uint8_t(buf, 0, msgid); + _mav_put_uint8_t(buf, 1, active); + _mav_put_uint8_t(buf, 2, period); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN); +#else + mavlink_cmd_request_msg_t packet; + packet.msgid = msgid; + packet.active = active; + packet.period = period; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_CMD_REQUEST_MSG; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_CMD_REQUEST_MSG_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_CRC); +} + +/** + * @brief Encode a cmd_request_msg struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param cmd_request_msg C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_cmd_request_msg_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_cmd_request_msg_t* cmd_request_msg) +{ + return mavlink_msg_cmd_request_msg_pack(system_id, component_id, msg, cmd_request_msg->msgid, cmd_request_msg->active, cmd_request_msg->period); +} + +/** + * @brief Encode a cmd_request_msg struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param cmd_request_msg C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_cmd_request_msg_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_cmd_request_msg_t* cmd_request_msg) +{ + return mavlink_msg_cmd_request_msg_pack_chan(system_id, component_id, chan, msg, cmd_request_msg->msgid, cmd_request_msg->active, cmd_request_msg->period); +} + +/** + * @brief Send a cmd_request_msg message + * @param chan MAVLink channel to send the message + * + * @param msgid message ID of the requested message + * @param active active if TRUE + * @param period send every x * 10 ms + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_cmd_request_msg_send(mavlink_channel_t chan, uint8_t msgid, uint8_t active, uint8_t period) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN]; + _mav_put_uint8_t(buf, 0, msgid); + _mav_put_uint8_t(buf, 1, active); + _mav_put_uint8_t(buf, 2, period); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_MSG, buf, MAVLINK_MSG_ID_CMD_REQUEST_MSG_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_CRC); +#else + mavlink_cmd_request_msg_t packet; + packet.msgid = msgid; + packet.active = active; + packet.period = period; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_MSG, (const char *)&packet, MAVLINK_MSG_ID_CMD_REQUEST_MSG_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_CRC); +#endif +} + +/** + * @brief Send a cmd_request_msg message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_cmd_request_msg_send_struct(mavlink_channel_t chan, const mavlink_cmd_request_msg_t* cmd_request_msg) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_cmd_request_msg_send(chan, cmd_request_msg->msgid, cmd_request_msg->active, cmd_request_msg->period); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_MSG, (const char *)cmd_request_msg, MAVLINK_MSG_ID_CMD_REQUEST_MSG_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_CRC); +#endif +} + +#if MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_cmd_request_msg_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t msgid, uint8_t active, uint8_t period) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, msgid); + _mav_put_uint8_t(buf, 1, active); + _mav_put_uint8_t(buf, 2, period); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_MSG, buf, MAVLINK_MSG_ID_CMD_REQUEST_MSG_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_CRC); +#else + mavlink_cmd_request_msg_t *packet = (mavlink_cmd_request_msg_t *)msgbuf; + packet->msgid = msgid; + packet->active = active; + packet->period = period; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_MSG, (const char *)packet, MAVLINK_MSG_ID_CMD_REQUEST_MSG_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN, MAVLINK_MSG_ID_CMD_REQUEST_MSG_CRC); +#endif +} +#endif + +#endif + +// MESSAGE CMD_REQUEST_MSG UNPACKING + + +/** + * @brief Get field msgid from cmd_request_msg message + * + * @return message ID of the requested message + */ +static inline uint8_t mavlink_msg_cmd_request_msg_get_msgid(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Get field active from cmd_request_msg message + * + * @return active if TRUE + */ +static inline uint8_t mavlink_msg_cmd_request_msg_get_active(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 1); +} + +/** + * @brief Get field period from cmd_request_msg message + * + * @return send every x * 10 ms + */ +static inline uint8_t mavlink_msg_cmd_request_msg_get_period(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 2); +} + +/** + * @brief Decode a cmd_request_msg message into a struct + * + * @param msg The message to decode + * @param cmd_request_msg C-struct to decode the message contents into + */ +static inline void mavlink_msg_cmd_request_msg_decode(const mavlink_message_t* msg, mavlink_cmd_request_msg_t* cmd_request_msg) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + cmd_request_msg->msgid = mavlink_msg_cmd_request_msg_get_msgid(msg); + cmd_request_msg->active = mavlink_msg_cmd_request_msg_get_active(msg); + cmd_request_msg->period = mavlink_msg_cmd_request_msg_get_period(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN? msg->len : MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN; + memset(cmd_request_msg, 0, MAVLINK_MSG_ID_CMD_REQUEST_MSG_LEN); + memcpy(cmd_request_msg, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_statechange.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_statechange.h new file mode 100755 index 0000000000000000000000000000000000000000..1982dcdb508d2712f70819fd53180ec80a9d3e1d --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_cmd_request_statechange.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE CMD_REQUEST_STATECHANGE PACKING + +#define MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE 101 + +MAVPACKED( +typedef struct __mavlink_cmd_request_statechange_t { + uint8_t state; /*< reqeusted state*/ +}) mavlink_cmd_request_statechange_t; + +#define MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN 1 +#define MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_MIN_LEN 1 +#define MAVLINK_MSG_ID_101_LEN 1 +#define MAVLINK_MSG_ID_101_MIN_LEN 1 + +#define MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_CRC 229 +#define MAVLINK_MSG_ID_101_CRC 229 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_CMD_REQUEST_STATECHANGE { \ + 101, \ + "CMD_REQUEST_STATECHANGE", \ + 1, \ + { { "state", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_cmd_request_statechange_t, state) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_CMD_REQUEST_STATECHANGE { \ + "CMD_REQUEST_STATECHANGE", \ + 1, \ + { { "state", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_cmd_request_statechange_t, state) }, \ + } \ +} +#endif + +/** + * @brief Pack a cmd_request_statechange message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param state reqeusted state + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_cmd_request_statechange_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN]; + _mav_put_uint8_t(buf, 0, state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN); +#else + mavlink_cmd_request_statechange_t packet; + packet.state = state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_CRC); +} + +/** + * @brief Pack a cmd_request_statechange message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param state reqeusted state + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_cmd_request_statechange_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN]; + _mav_put_uint8_t(buf, 0, state); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN); +#else + mavlink_cmd_request_statechange_t packet; + packet.state = state; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_CRC); +} + +/** + * @brief Encode a cmd_request_statechange struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param cmd_request_statechange C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_cmd_request_statechange_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_cmd_request_statechange_t* cmd_request_statechange) +{ + return mavlink_msg_cmd_request_statechange_pack(system_id, component_id, msg, cmd_request_statechange->state); +} + +/** + * @brief Encode a cmd_request_statechange struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param cmd_request_statechange C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_cmd_request_statechange_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_cmd_request_statechange_t* cmd_request_statechange) +{ + return mavlink_msg_cmd_request_statechange_pack_chan(system_id, component_id, chan, msg, cmd_request_statechange->state); +} + +/** + * @brief Send a cmd_request_statechange message + * @param chan MAVLink channel to send the message + * + * @param state reqeusted state + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_cmd_request_statechange_send(mavlink_channel_t chan, uint8_t state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN]; + _mav_put_uint8_t(buf, 0, state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE, buf, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_CRC); +#else + mavlink_cmd_request_statechange_t packet; + packet.state = state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE, (const char *)&packet, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_CRC); +#endif +} + +/** + * @brief Send a cmd_request_statechange message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_cmd_request_statechange_send_struct(mavlink_channel_t chan, const mavlink_cmd_request_statechange_t* cmd_request_statechange) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_cmd_request_statechange_send(chan, cmd_request_statechange->state); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE, (const char *)cmd_request_statechange, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_CRC); +#endif +} + +#if MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_cmd_request_statechange_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, state); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE, buf, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_CRC); +#else + mavlink_cmd_request_statechange_t *packet = (mavlink_cmd_request_statechange_t *)msgbuf; + packet->state = state; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE, (const char *)packet, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_MIN_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_CRC); +#endif +} +#endif + +#endif + +// MESSAGE CMD_REQUEST_STATECHANGE UNPACKING + + +/** + * @brief Get field state from cmd_request_statechange message + * + * @return reqeusted state + */ +static inline uint8_t mavlink_msg_cmd_request_statechange_get_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Decode a cmd_request_statechange message into a struct + * + * @param msg The message to decode + * @param cmd_request_statechange C-struct to decode the message contents into + */ +static inline void mavlink_msg_cmd_request_statechange_decode(const mavlink_message_t* msg, mavlink_cmd_request_statechange_t* cmd_request_statechange) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + cmd_request_statechange->state = mavlink_msg_cmd_request_statechange_get_state(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN? msg->len : MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN; + memset(cmd_request_statechange, 0, MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_LEN); + memcpy(cmd_request_statechange, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_error.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_error.h new file mode 100755 index 0000000000000000000000000000000000000000..55c400f9cf2b78f688f14f64524fc0c9d4de7fd9 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_error.h @@ -0,0 +1,213 @@ +#pragma once +// MESSAGE ERROR PACKING + +#define MAVLINK_MSG_ID_ERROR 1 + +MAVPACKED( +typedef struct __mavlink_error_t { + uint64_t errorcode; /*< errorcode*/ +}) mavlink_error_t; + +#define MAVLINK_MSG_ID_ERROR_LEN 8 +#define MAVLINK_MSG_ID_ERROR_MIN_LEN 8 +#define MAVLINK_MSG_ID_1_LEN 8 +#define MAVLINK_MSG_ID_1_MIN_LEN 8 + +#define MAVLINK_MSG_ID_ERROR_CRC 77 +#define MAVLINK_MSG_ID_1_CRC 77 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_ERROR { \ + 1, \ + "ERROR", \ + 1, \ + { { "errorcode", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_error_t, errorcode) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_ERROR { \ + "ERROR", \ + 1, \ + { { "errorcode", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_error_t, errorcode) }, \ + } \ +} +#endif + +/** + * @brief Pack a error message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param errorcode errorcode + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_error_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint64_t errorcode) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ERROR_LEN]; + _mav_put_uint64_t(buf, 0, errorcode); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ERROR_LEN); +#else + mavlink_error_t packet; + packet.errorcode = errorcode; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ERROR_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ERROR; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_ERROR_MIN_LEN, MAVLINK_MSG_ID_ERROR_LEN, MAVLINK_MSG_ID_ERROR_CRC); +} + +/** + * @brief Pack a error message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param errorcode errorcode + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_error_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint64_t errorcode) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ERROR_LEN]; + _mav_put_uint64_t(buf, 0, errorcode); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ERROR_LEN); +#else + mavlink_error_t packet; + packet.errorcode = errorcode; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ERROR_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ERROR; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_ERROR_MIN_LEN, MAVLINK_MSG_ID_ERROR_LEN, MAVLINK_MSG_ID_ERROR_CRC); +} + +/** + * @brief Encode a error struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param error C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_error_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_error_t* error) +{ + return mavlink_msg_error_pack(system_id, component_id, msg, error->errorcode); +} + +/** + * @brief Encode a error struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param error C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_error_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_error_t* error) +{ + return mavlink_msg_error_pack_chan(system_id, component_id, chan, msg, error->errorcode); +} + +/** + * @brief Send a error message + * @param chan MAVLink channel to send the message + * + * @param errorcode errorcode + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_error_send(mavlink_channel_t chan, uint64_t errorcode) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ERROR_LEN]; + _mav_put_uint64_t(buf, 0, errorcode); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ERROR, buf, MAVLINK_MSG_ID_ERROR_MIN_LEN, MAVLINK_MSG_ID_ERROR_LEN, MAVLINK_MSG_ID_ERROR_CRC); +#else + mavlink_error_t packet; + packet.errorcode = errorcode; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ERROR, (const char *)&packet, MAVLINK_MSG_ID_ERROR_MIN_LEN, MAVLINK_MSG_ID_ERROR_LEN, MAVLINK_MSG_ID_ERROR_CRC); +#endif +} + +/** + * @brief Send a error message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_error_send_struct(mavlink_channel_t chan, const mavlink_error_t* error) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_error_send(chan, error->errorcode); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ERROR, (const char *)error, MAVLINK_MSG_ID_ERROR_MIN_LEN, MAVLINK_MSG_ID_ERROR_LEN, MAVLINK_MSG_ID_ERROR_CRC); +#endif +} + +#if MAVLINK_MSG_ID_ERROR_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_error_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t errorcode) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint64_t(buf, 0, errorcode); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ERROR, buf, MAVLINK_MSG_ID_ERROR_MIN_LEN, MAVLINK_MSG_ID_ERROR_LEN, MAVLINK_MSG_ID_ERROR_CRC); +#else + mavlink_error_t *packet = (mavlink_error_t *)msgbuf; + packet->errorcode = errorcode; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ERROR, (const char *)packet, MAVLINK_MSG_ID_ERROR_MIN_LEN, MAVLINK_MSG_ID_ERROR_LEN, MAVLINK_MSG_ID_ERROR_CRC); +#endif +} +#endif + +#endif + +// MESSAGE ERROR UNPACKING + + +/** + * @brief Get field errorcode from error message + * + * @return errorcode + */ +static inline uint64_t mavlink_msg_error_get_errorcode(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint64_t(msg, 0); +} + +/** + * @brief Decode a error message into a struct + * + * @param msg The message to decode + * @param error C-struct to decode the message contents into + */ +static inline void mavlink_msg_error_decode(const mavlink_message_t* msg, mavlink_error_t* error) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + error->errorcode = mavlink_msg_error_get_errorcode(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_ERROR_LEN? msg->len : MAVLINK_MSG_ID_ERROR_LEN; + memset(error, 0, MAVLINK_MSG_ID_ERROR_LEN); + memcpy(error, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_heartbeat.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_heartbeat.h new file mode 100755 index 0000000000000000000000000000000000000000..5bdf1e30965e1d9a5b90a10e5cc4e21bc25110d8 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_heartbeat.h @@ -0,0 +1,235 @@ +#pragma once +// MESSAGE HEARTBEAT PACKING + +#define MAVLINK_MSG_ID_HEARTBEAT 0 + +MAVPACKED( +typedef struct __mavlink_heartbeat_t { + uint8_t state; /*< system state*/ + uint8_t mavlink_version; /*< MAVLink version*/ +}) mavlink_heartbeat_t; + +#define MAVLINK_MSG_ID_HEARTBEAT_LEN 2 +#define MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN 2 +#define MAVLINK_MSG_ID_0_LEN 2 +#define MAVLINK_MSG_ID_0_MIN_LEN 2 + +#define MAVLINK_MSG_ID_HEARTBEAT_CRC 85 +#define MAVLINK_MSG_ID_0_CRC 85 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_HEARTBEAT { \ + 0, \ + "HEARTBEAT", \ + 2, \ + { { "state", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_heartbeat_t, state) }, \ + { "mavlink_version", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_heartbeat_t, mavlink_version) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_HEARTBEAT { \ + "HEARTBEAT", \ + 2, \ + { { "state", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_heartbeat_t, state) }, \ + { "mavlink_version", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_heartbeat_t, mavlink_version) }, \ + } \ +} +#endif + +/** + * @brief Pack a heartbeat message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param state system state + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_heartbeat_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint8_t state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_HEARTBEAT_LEN]; + _mav_put_uint8_t(buf, 0, state); + _mav_put_uint8_t(buf, 1, 1); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_HEARTBEAT_LEN); +#else + mavlink_heartbeat_t packet; + packet.state = state; + packet.mavlink_version = 1; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_HEARTBEAT_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_HEARTBEAT; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC); +} + +/** + * @brief Pack a heartbeat message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param state system state + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_heartbeat_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint8_t state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_HEARTBEAT_LEN]; + _mav_put_uint8_t(buf, 0, state); + _mav_put_uint8_t(buf, 1, 1); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_HEARTBEAT_LEN); +#else + mavlink_heartbeat_t packet; + packet.state = state; + packet.mavlink_version = 1; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_HEARTBEAT_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_HEARTBEAT; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC); +} + +/** + * @brief Encode a heartbeat struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param heartbeat C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_heartbeat_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_heartbeat_t* heartbeat) +{ + return mavlink_msg_heartbeat_pack(system_id, component_id, msg, heartbeat->state); +} + +/** + * @brief Encode a heartbeat struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param heartbeat C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_heartbeat_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_heartbeat_t* heartbeat) +{ + return mavlink_msg_heartbeat_pack_chan(system_id, component_id, chan, msg, heartbeat->state); +} + +/** + * @brief Send a heartbeat message + * @param chan MAVLink channel to send the message + * + * @param state system state + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_heartbeat_send(mavlink_channel_t chan, uint8_t state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_HEARTBEAT_LEN]; + _mav_put_uint8_t(buf, 0, state); + _mav_put_uint8_t(buf, 1, 1); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_HEARTBEAT, buf, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC); +#else + mavlink_heartbeat_t packet; + packet.state = state; + packet.mavlink_version = 1; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_HEARTBEAT, (const char *)&packet, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC); +#endif +} + +/** + * @brief Send a heartbeat message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_heartbeat_send_struct(mavlink_channel_t chan, const mavlink_heartbeat_t* heartbeat) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_heartbeat_send(chan, heartbeat->state); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_HEARTBEAT, (const char *)heartbeat, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC); +#endif +} + +#if MAVLINK_MSG_ID_HEARTBEAT_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_heartbeat_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t state) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint8_t(buf, 0, state); + _mav_put_uint8_t(buf, 1, 1); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_HEARTBEAT, buf, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC); +#else + mavlink_heartbeat_t *packet = (mavlink_heartbeat_t *)msgbuf; + packet->state = state; + packet->mavlink_version = 1; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_HEARTBEAT, (const char *)packet, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC); +#endif +} +#endif + +#endif + +// MESSAGE HEARTBEAT UNPACKING + + +/** + * @brief Get field state from heartbeat message + * + * @return system state + */ +static inline uint8_t mavlink_msg_heartbeat_get_state(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 0); +} + +/** + * @brief Get field mavlink_version from heartbeat message + * + * @return MAVLink version + */ +static inline uint8_t mavlink_msg_heartbeat_get_mavlink_version(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 1); +} + +/** + * @brief Decode a heartbeat message into a struct + * + * @param msg The message to decode + * @param heartbeat C-struct to decode the message contents into + */ +static inline void mavlink_msg_heartbeat_decode(const mavlink_message_t* msg, mavlink_heartbeat_t* heartbeat) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + heartbeat->state = mavlink_msg_heartbeat_get_state(msg); + heartbeat->mavlink_version = mavlink_msg_heartbeat_get_mavlink_version(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_HEARTBEAT_LEN? msg->len : MAVLINK_MSG_ID_HEARTBEAT_LEN; + memset(heartbeat, 0, MAVLINK_MSG_ID_HEARTBEAT_LEN); + memcpy(heartbeat, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_odometry.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_odometry.h new file mode 100755 index 0000000000000000000000000000000000000000..13623f0414cbd3eeb3b00a9845d4b5c12502bf05 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_odometry.h @@ -0,0 +1,363 @@ +#pragma once +// MESSAGE ODOMETRY PACKING + +#define MAVLINK_MSG_ID_ODOMETRY 2 + +MAVPACKED( +typedef struct __mavlink_odometry_t { + uint32_t timestamp_odom; /*< timestamp odometry*/ + uint32_t timestamp_stang; /*< timestamp steering angle*/ + float vehspd_odom; /*< vehicle speed*/ + float xdist_odom; /*< x distance*/ + float ydist_odom; /*< y distance*/ + float yawangle_odom; /*< yaw angle*/ + float stang; /*< current steering angle*/ +}) mavlink_odometry_t; + +#define MAVLINK_MSG_ID_ODOMETRY_LEN 28 +#define MAVLINK_MSG_ID_ODOMETRY_MIN_LEN 28 +#define MAVLINK_MSG_ID_2_LEN 28 +#define MAVLINK_MSG_ID_2_MIN_LEN 28 + +#define MAVLINK_MSG_ID_ODOMETRY_CRC 9 +#define MAVLINK_MSG_ID_2_CRC 9 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_ODOMETRY { \ + 2, \ + "ODOMETRY", \ + 7, \ + { { "timestamp_odom", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_odometry_t, timestamp_odom) }, \ + { "timestamp_stang", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_odometry_t, timestamp_stang) }, \ + { "vehspd_odom", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_odometry_t, vehspd_odom) }, \ + { "xdist_odom", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_odometry_t, xdist_odom) }, \ + { "ydist_odom", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_odometry_t, ydist_odom) }, \ + { "yawangle_odom", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_odometry_t, yawangle_odom) }, \ + { "stang", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_odometry_t, stang) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_ODOMETRY { \ + "ODOMETRY", \ + 7, \ + { { "timestamp_odom", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_odometry_t, timestamp_odom) }, \ + { "timestamp_stang", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_odometry_t, timestamp_stang) }, \ + { "vehspd_odom", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_odometry_t, vehspd_odom) }, \ + { "xdist_odom", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_odometry_t, xdist_odom) }, \ + { "ydist_odom", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_odometry_t, ydist_odom) }, \ + { "yawangle_odom", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_odometry_t, yawangle_odom) }, \ + { "stang", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_odometry_t, stang) }, \ + } \ +} +#endif + +/** + * @brief Pack a odometry message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp_odom timestamp odometry + * @param timestamp_stang timestamp steering angle + * @param vehspd_odom vehicle speed + * @param xdist_odom x distance + * @param ydist_odom y distance + * @param yawangle_odom yaw angle + * @param stang current steering angle + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_odometry_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint32_t timestamp_odom, uint32_t timestamp_stang, float vehspd_odom, float xdist_odom, float ydist_odom, float yawangle_odom, float stang) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ODOMETRY_LEN]; + _mav_put_uint32_t(buf, 0, timestamp_odom); + _mav_put_uint32_t(buf, 4, timestamp_stang); + _mav_put_float(buf, 8, vehspd_odom); + _mav_put_float(buf, 12, xdist_odom); + _mav_put_float(buf, 16, ydist_odom); + _mav_put_float(buf, 20, yawangle_odom); + _mav_put_float(buf, 24, stang); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ODOMETRY_LEN); +#else + mavlink_odometry_t packet; + packet.timestamp_odom = timestamp_odom; + packet.timestamp_stang = timestamp_stang; + packet.vehspd_odom = vehspd_odom; + packet.xdist_odom = xdist_odom; + packet.ydist_odom = ydist_odom; + packet.yawangle_odom = yawangle_odom; + packet.stang = stang; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ODOMETRY_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ODOMETRY; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_ODOMETRY_MIN_LEN, MAVLINK_MSG_ID_ODOMETRY_LEN, MAVLINK_MSG_ID_ODOMETRY_CRC); +} + +/** + * @brief Pack a odometry message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp_odom timestamp odometry + * @param timestamp_stang timestamp steering angle + * @param vehspd_odom vehicle speed + * @param xdist_odom x distance + * @param ydist_odom y distance + * @param yawangle_odom yaw angle + * @param stang current steering angle + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_odometry_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint32_t timestamp_odom,uint32_t timestamp_stang,float vehspd_odom,float xdist_odom,float ydist_odom,float yawangle_odom,float stang) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ODOMETRY_LEN]; + _mav_put_uint32_t(buf, 0, timestamp_odom); + _mav_put_uint32_t(buf, 4, timestamp_stang); + _mav_put_float(buf, 8, vehspd_odom); + _mav_put_float(buf, 12, xdist_odom); + _mav_put_float(buf, 16, ydist_odom); + _mav_put_float(buf, 20, yawangle_odom); + _mav_put_float(buf, 24, stang); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ODOMETRY_LEN); +#else + mavlink_odometry_t packet; + packet.timestamp_odom = timestamp_odom; + packet.timestamp_stang = timestamp_stang; + packet.vehspd_odom = vehspd_odom; + packet.xdist_odom = xdist_odom; + packet.ydist_odom = ydist_odom; + packet.yawangle_odom = yawangle_odom; + packet.stang = stang; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ODOMETRY_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_ODOMETRY; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_ODOMETRY_MIN_LEN, MAVLINK_MSG_ID_ODOMETRY_LEN, MAVLINK_MSG_ID_ODOMETRY_CRC); +} + +/** + * @brief Encode a odometry struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param odometry C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_odometry_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_odometry_t* odometry) +{ + return mavlink_msg_odometry_pack(system_id, component_id, msg, odometry->timestamp_odom, odometry->timestamp_stang, odometry->vehspd_odom, odometry->xdist_odom, odometry->ydist_odom, odometry->yawangle_odom, odometry->stang); +} + +/** + * @brief Encode a odometry struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param odometry C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_odometry_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_odometry_t* odometry) +{ + return mavlink_msg_odometry_pack_chan(system_id, component_id, chan, msg, odometry->timestamp_odom, odometry->timestamp_stang, odometry->vehspd_odom, odometry->xdist_odom, odometry->ydist_odom, odometry->yawangle_odom, odometry->stang); +} + +/** + * @brief Send a odometry message + * @param chan MAVLink channel to send the message + * + * @param timestamp_odom timestamp odometry + * @param timestamp_stang timestamp steering angle + * @param vehspd_odom vehicle speed + * @param xdist_odom x distance + * @param ydist_odom y distance + * @param yawangle_odom yaw angle + * @param stang current steering angle + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_odometry_send(mavlink_channel_t chan, uint32_t timestamp_odom, uint32_t timestamp_stang, float vehspd_odom, float xdist_odom, float ydist_odom, float yawangle_odom, float stang) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_ODOMETRY_LEN]; + _mav_put_uint32_t(buf, 0, timestamp_odom); + _mav_put_uint32_t(buf, 4, timestamp_stang); + _mav_put_float(buf, 8, vehspd_odom); + _mav_put_float(buf, 12, xdist_odom); + _mav_put_float(buf, 16, ydist_odom); + _mav_put_float(buf, 20, yawangle_odom); + _mav_put_float(buf, 24, stang); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ODOMETRY, buf, MAVLINK_MSG_ID_ODOMETRY_MIN_LEN, MAVLINK_MSG_ID_ODOMETRY_LEN, MAVLINK_MSG_ID_ODOMETRY_CRC); +#else + mavlink_odometry_t packet; + packet.timestamp_odom = timestamp_odom; + packet.timestamp_stang = timestamp_stang; + packet.vehspd_odom = vehspd_odom; + packet.xdist_odom = xdist_odom; + packet.ydist_odom = ydist_odom; + packet.yawangle_odom = yawangle_odom; + packet.stang = stang; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ODOMETRY, (const char *)&packet, MAVLINK_MSG_ID_ODOMETRY_MIN_LEN, MAVLINK_MSG_ID_ODOMETRY_LEN, MAVLINK_MSG_ID_ODOMETRY_CRC); +#endif +} + +/** + * @brief Send a odometry message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_odometry_send_struct(mavlink_channel_t chan, const mavlink_odometry_t* odometry) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_odometry_send(chan, odometry->timestamp_odom, odometry->timestamp_stang, odometry->vehspd_odom, odometry->xdist_odom, odometry->ydist_odom, odometry->yawangle_odom, odometry->stang); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ODOMETRY, (const char *)odometry, MAVLINK_MSG_ID_ODOMETRY_MIN_LEN, MAVLINK_MSG_ID_ODOMETRY_LEN, MAVLINK_MSG_ID_ODOMETRY_CRC); +#endif +} + +#if MAVLINK_MSG_ID_ODOMETRY_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_odometry_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t timestamp_odom, uint32_t timestamp_stang, float vehspd_odom, float xdist_odom, float ydist_odom, float yawangle_odom, float stang) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint32_t(buf, 0, timestamp_odom); + _mav_put_uint32_t(buf, 4, timestamp_stang); + _mav_put_float(buf, 8, vehspd_odom); + _mav_put_float(buf, 12, xdist_odom); + _mav_put_float(buf, 16, ydist_odom); + _mav_put_float(buf, 20, yawangle_odom); + _mav_put_float(buf, 24, stang); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ODOMETRY, buf, MAVLINK_MSG_ID_ODOMETRY_MIN_LEN, MAVLINK_MSG_ID_ODOMETRY_LEN, MAVLINK_MSG_ID_ODOMETRY_CRC); +#else + mavlink_odometry_t *packet = (mavlink_odometry_t *)msgbuf; + packet->timestamp_odom = timestamp_odom; + packet->timestamp_stang = timestamp_stang; + packet->vehspd_odom = vehspd_odom; + packet->xdist_odom = xdist_odom; + packet->ydist_odom = ydist_odom; + packet->yawangle_odom = yawangle_odom; + packet->stang = stang; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ODOMETRY, (const char *)packet, MAVLINK_MSG_ID_ODOMETRY_MIN_LEN, MAVLINK_MSG_ID_ODOMETRY_LEN, MAVLINK_MSG_ID_ODOMETRY_CRC); +#endif +} +#endif + +#endif + +// MESSAGE ODOMETRY UNPACKING + + +/** + * @brief Get field timestamp_odom from odometry message + * + * @return timestamp odometry + */ +static inline uint32_t mavlink_msg_odometry_get_timestamp_odom(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 0); +} + +/** + * @brief Get field timestamp_stang from odometry message + * + * @return timestamp steering angle + */ +static inline uint32_t mavlink_msg_odometry_get_timestamp_stang(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 4); +} + +/** + * @brief Get field vehspd_odom from odometry message + * + * @return vehicle speed + */ +static inline float mavlink_msg_odometry_get_vehspd_odom(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field xdist_odom from odometry message + * + * @return x distance + */ +static inline float mavlink_msg_odometry_get_xdist_odom(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field ydist_odom from odometry message + * + * @return y distance + */ +static inline float mavlink_msg_odometry_get_ydist_odom(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field yawangle_odom from odometry message + * + * @return yaw angle + */ +static inline float mavlink_msg_odometry_get_yawangle_odom(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Get field stang from odometry message + * + * @return current steering angle + */ +static inline float mavlink_msg_odometry_get_stang(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 24); +} + +/** + * @brief Decode a odometry message into a struct + * + * @param msg The message to decode + * @param odometry C-struct to decode the message contents into + */ +static inline void mavlink_msg_odometry_decode(const mavlink_message_t* msg, mavlink_odometry_t* odometry) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + odometry->timestamp_odom = mavlink_msg_odometry_get_timestamp_odom(msg); + odometry->timestamp_stang = mavlink_msg_odometry_get_timestamp_stang(msg); + odometry->vehspd_odom = mavlink_msg_odometry_get_vehspd_odom(msg); + odometry->xdist_odom = mavlink_msg_odometry_get_xdist_odom(msg); + odometry->ydist_odom = mavlink_msg_odometry_get_ydist_odom(msg); + odometry->yawangle_odom = mavlink_msg_odometry_get_yawangle_odom(msg); + odometry->stang = mavlink_msg_odometry_get_stang(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_ODOMETRY_LEN? msg->len : MAVLINK_MSG_ID_ODOMETRY_LEN; + memset(odometry, 0, MAVLINK_MSG_ID_ODOMETRY_LEN); + memcpy(odometry, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_trajectory.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_trajectory.h new file mode 100755 index 0000000000000000000000000000000000000000..edff9812fc68f3fa0bbb61e519791eaca1d81df8 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/mavlink_msg_trajectory.h @@ -0,0 +1,334 @@ +#pragma once +// MESSAGE TRAJECTORY PACKING + +#define MAVLINK_MSG_ID_TRAJECTORY 51 + +MAVPACKED( +typedef struct __mavlink_trajectory_t { + uint32_t timestamp; /*< timestamp*/ + int16_t x[10]; /*< Lateral error*/ + uint16_t y[10]; /*< Longitudinal error*/ + int16_t theta[10]; /*< course angle error*/ + int16_t kappa[10]; /*< ground curvature*/ + int8_t v[10]; /*< nominal speed*/ +}) mavlink_trajectory_t; + +#define MAVLINK_MSG_ID_TRAJECTORY_LEN 94 +#define MAVLINK_MSG_ID_TRAJECTORY_MIN_LEN 94 +#define MAVLINK_MSG_ID_51_LEN 94 +#define MAVLINK_MSG_ID_51_MIN_LEN 94 + +#define MAVLINK_MSG_ID_TRAJECTORY_CRC 4 +#define MAVLINK_MSG_ID_51_CRC 4 + +#define MAVLINK_MSG_TRAJECTORY_FIELD_X_LEN 10 +#define MAVLINK_MSG_TRAJECTORY_FIELD_Y_LEN 10 +#define MAVLINK_MSG_TRAJECTORY_FIELD_THETA_LEN 10 +#define MAVLINK_MSG_TRAJECTORY_FIELD_KAPPA_LEN 10 +#define MAVLINK_MSG_TRAJECTORY_FIELD_V_LEN 10 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_TRAJECTORY { \ + 51, \ + "TRAJECTORY", \ + 6, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_trajectory_t, timestamp) }, \ + { "x", NULL, MAVLINK_TYPE_INT16_T, 10, 4, offsetof(mavlink_trajectory_t, x) }, \ + { "y", NULL, MAVLINK_TYPE_UINT16_T, 10, 24, offsetof(mavlink_trajectory_t, y) }, \ + { "theta", NULL, MAVLINK_TYPE_INT16_T, 10, 44, offsetof(mavlink_trajectory_t, theta) }, \ + { "kappa", NULL, MAVLINK_TYPE_INT16_T, 10, 64, offsetof(mavlink_trajectory_t, kappa) }, \ + { "v", NULL, MAVLINK_TYPE_INT8_T, 10, 84, offsetof(mavlink_trajectory_t, v) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_TRAJECTORY { \ + "TRAJECTORY", \ + 6, \ + { { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_trajectory_t, timestamp) }, \ + { "x", NULL, MAVLINK_TYPE_INT16_T, 10, 4, offsetof(mavlink_trajectory_t, x) }, \ + { "y", NULL, MAVLINK_TYPE_UINT16_T, 10, 24, offsetof(mavlink_trajectory_t, y) }, \ + { "theta", NULL, MAVLINK_TYPE_INT16_T, 10, 44, offsetof(mavlink_trajectory_t, theta) }, \ + { "kappa", NULL, MAVLINK_TYPE_INT16_T, 10, 64, offsetof(mavlink_trajectory_t, kappa) }, \ + { "v", NULL, MAVLINK_TYPE_INT8_T, 10, 84, offsetof(mavlink_trajectory_t, v) }, \ + } \ +} +#endif + +/** + * @brief Pack a trajectory message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param timestamp timestamp + * @param x Lateral error + * @param y Longitudinal error + * @param theta course angle error + * @param kappa ground curvature + * @param v nominal speed + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_trajectory_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint32_t timestamp, const int16_t *x, const uint16_t *y, const int16_t *theta, const int16_t *kappa, const int8_t *v) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_TRAJECTORY_LEN]; + _mav_put_uint32_t(buf, 0, timestamp); + _mav_put_int16_t_array(buf, 4, x, 10); + _mav_put_uint16_t_array(buf, 24, y, 10); + _mav_put_int16_t_array(buf, 44, theta, 10); + _mav_put_int16_t_array(buf, 64, kappa, 10); + _mav_put_int8_t_array(buf, 84, v, 10); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_TRAJECTORY_LEN); +#else + mavlink_trajectory_t packet; + packet.timestamp = timestamp; + mav_array_memcpy(packet.x, x, sizeof(int16_t)*10); + mav_array_memcpy(packet.y, y, sizeof(uint16_t)*10); + mav_array_memcpy(packet.theta, theta, sizeof(int16_t)*10); + mav_array_memcpy(packet.kappa, kappa, sizeof(int16_t)*10); + mav_array_memcpy(packet.v, v, sizeof(int8_t)*10); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_TRAJECTORY_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_TRAJECTORY; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_TRAJECTORY_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_LEN, MAVLINK_MSG_ID_TRAJECTORY_CRC); +} + +/** + * @brief Pack a trajectory message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param timestamp timestamp + * @param x Lateral error + * @param y Longitudinal error + * @param theta course angle error + * @param kappa ground curvature + * @param v nominal speed + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_trajectory_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint32_t timestamp,const int16_t *x,const uint16_t *y,const int16_t *theta,const int16_t *kappa,const int8_t *v) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_TRAJECTORY_LEN]; + _mav_put_uint32_t(buf, 0, timestamp); + _mav_put_int16_t_array(buf, 4, x, 10); + _mav_put_uint16_t_array(buf, 24, y, 10); + _mav_put_int16_t_array(buf, 44, theta, 10); + _mav_put_int16_t_array(buf, 64, kappa, 10); + _mav_put_int8_t_array(buf, 84, v, 10); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_TRAJECTORY_LEN); +#else + mavlink_trajectory_t packet; + packet.timestamp = timestamp; + mav_array_memcpy(packet.x, x, sizeof(int16_t)*10); + mav_array_memcpy(packet.y, y, sizeof(uint16_t)*10); + mav_array_memcpy(packet.theta, theta, sizeof(int16_t)*10); + mav_array_memcpy(packet.kappa, kappa, sizeof(int16_t)*10); + mav_array_memcpy(packet.v, v, sizeof(int8_t)*10); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_TRAJECTORY_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_TRAJECTORY; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_TRAJECTORY_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_LEN, MAVLINK_MSG_ID_TRAJECTORY_CRC); +} + +/** + * @brief Encode a trajectory struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param trajectory C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_trajectory_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_trajectory_t* trajectory) +{ + return mavlink_msg_trajectory_pack(system_id, component_id, msg, trajectory->timestamp, trajectory->x, trajectory->y, trajectory->theta, trajectory->kappa, trajectory->v); +} + +/** + * @brief Encode a trajectory struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param trajectory C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_trajectory_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_trajectory_t* trajectory) +{ + return mavlink_msg_trajectory_pack_chan(system_id, component_id, chan, msg, trajectory->timestamp, trajectory->x, trajectory->y, trajectory->theta, trajectory->kappa, trajectory->v); +} + +/** + * @brief Send a trajectory message + * @param chan MAVLink channel to send the message + * + * @param timestamp timestamp + * @param x Lateral error + * @param y Longitudinal error + * @param theta course angle error + * @param kappa ground curvature + * @param v nominal speed + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_trajectory_send(mavlink_channel_t chan, uint32_t timestamp, const int16_t *x, const uint16_t *y, const int16_t *theta, const int16_t *kappa, const int8_t *v) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_TRAJECTORY_LEN]; + _mav_put_uint32_t(buf, 0, timestamp); + _mav_put_int16_t_array(buf, 4, x, 10); + _mav_put_uint16_t_array(buf, 24, y, 10); + _mav_put_int16_t_array(buf, 44, theta, 10); + _mav_put_int16_t_array(buf, 64, kappa, 10); + _mav_put_int8_t_array(buf, 84, v, 10); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TRAJECTORY, buf, MAVLINK_MSG_ID_TRAJECTORY_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_LEN, MAVLINK_MSG_ID_TRAJECTORY_CRC); +#else + mavlink_trajectory_t packet; + packet.timestamp = timestamp; + mav_array_memcpy(packet.x, x, sizeof(int16_t)*10); + mav_array_memcpy(packet.y, y, sizeof(uint16_t)*10); + mav_array_memcpy(packet.theta, theta, sizeof(int16_t)*10); + mav_array_memcpy(packet.kappa, kappa, sizeof(int16_t)*10); + mav_array_memcpy(packet.v, v, sizeof(int8_t)*10); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TRAJECTORY, (const char *)&packet, MAVLINK_MSG_ID_TRAJECTORY_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_LEN, MAVLINK_MSG_ID_TRAJECTORY_CRC); +#endif +} + +/** + * @brief Send a trajectory message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_trajectory_send_struct(mavlink_channel_t chan, const mavlink_trajectory_t* trajectory) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_trajectory_send(chan, trajectory->timestamp, trajectory->x, trajectory->y, trajectory->theta, trajectory->kappa, trajectory->v); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TRAJECTORY, (const char *)trajectory, MAVLINK_MSG_ID_TRAJECTORY_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_LEN, MAVLINK_MSG_ID_TRAJECTORY_CRC); +#endif +} + +#if MAVLINK_MSG_ID_TRAJECTORY_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_trajectory_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t timestamp, const int16_t *x, const uint16_t *y, const int16_t *theta, const int16_t *kappa, const int8_t *v) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint32_t(buf, 0, timestamp); + _mav_put_int16_t_array(buf, 4, x, 10); + _mav_put_uint16_t_array(buf, 24, y, 10); + _mav_put_int16_t_array(buf, 44, theta, 10); + _mav_put_int16_t_array(buf, 64, kappa, 10); + _mav_put_int8_t_array(buf, 84, v, 10); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TRAJECTORY, buf, MAVLINK_MSG_ID_TRAJECTORY_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_LEN, MAVLINK_MSG_ID_TRAJECTORY_CRC); +#else + mavlink_trajectory_t *packet = (mavlink_trajectory_t *)msgbuf; + packet->timestamp = timestamp; + mav_array_memcpy(packet->x, x, sizeof(int16_t)*10); + mav_array_memcpy(packet->y, y, sizeof(uint16_t)*10); + mav_array_memcpy(packet->theta, theta, sizeof(int16_t)*10); + mav_array_memcpy(packet->kappa, kappa, sizeof(int16_t)*10); + mav_array_memcpy(packet->v, v, sizeof(int8_t)*10); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TRAJECTORY, (const char *)packet, MAVLINK_MSG_ID_TRAJECTORY_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_LEN, MAVLINK_MSG_ID_TRAJECTORY_CRC); +#endif +} +#endif + +#endif + +// MESSAGE TRAJECTORY UNPACKING + + +/** + * @brief Get field timestamp from trajectory message + * + * @return timestamp + */ +static inline uint32_t mavlink_msg_trajectory_get_timestamp(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 0); +} + +/** + * @brief Get field x from trajectory message + * + * @return Lateral error + */ +static inline uint16_t mavlink_msg_trajectory_get_x(const mavlink_message_t* msg, int16_t *x) +{ + return _MAV_RETURN_int16_t_array(msg, x, 10, 4); +} + +/** + * @brief Get field y from trajectory message + * + * @return Longitudinal error + */ +static inline uint16_t mavlink_msg_trajectory_get_y(const mavlink_message_t* msg, uint16_t *y) +{ + return _MAV_RETURN_uint16_t_array(msg, y, 10, 24); +} + +/** + * @brief Get field theta from trajectory message + * + * @return course angle error + */ +static inline uint16_t mavlink_msg_trajectory_get_theta(const mavlink_message_t* msg, int16_t *theta) +{ + return _MAV_RETURN_int16_t_array(msg, theta, 10, 44); +} + +/** + * @brief Get field kappa from trajectory message + * + * @return ground curvature + */ +static inline uint16_t mavlink_msg_trajectory_get_kappa(const mavlink_message_t* msg, int16_t *kappa) +{ + return _MAV_RETURN_int16_t_array(msg, kappa, 10, 64); +} + +/** + * @brief Get field v from trajectory message + * + * @return nominal speed + */ +static inline uint16_t mavlink_msg_trajectory_get_v(const mavlink_message_t* msg, int8_t *v) +{ + return _MAV_RETURN_int8_t_array(msg, v, 10, 84); +} + +/** + * @brief Decode a trajectory message into a struct + * + * @param msg The message to decode + * @param trajectory C-struct to decode the message contents into + */ +static inline void mavlink_msg_trajectory_decode(const mavlink_message_t* msg, mavlink_trajectory_t* trajectory) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + trajectory->timestamp = mavlink_msg_trajectory_get_timestamp(msg); + mavlink_msg_trajectory_get_x(msg, trajectory->x); + mavlink_msg_trajectory_get_y(msg, trajectory->y); + mavlink_msg_trajectory_get_theta(msg, trajectory->theta); + mavlink_msg_trajectory_get_kappa(msg, trajectory->kappa); + mavlink_msg_trajectory_get_v(msg, trajectory->v); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_TRAJECTORY_LEN? msg->len : MAVLINK_MSG_ID_TRAJECTORY_LEN; + memset(trajectory, 0, MAVLINK_MSG_ID_TRAJECTORY_LEN); + memcpy(trajectory, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/testsuite.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/testsuite.h new file mode 100755 index 0000000000000000000000000000000000000000..d4c09203a5753b2f4453ea97f8a08fabd23f8f33 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/testsuite.h @@ -0,0 +1,491 @@ +/** @file + * @brief MAVLink comm protocol testsuite generated from velox.xml + * @see http://qgroundcontrol.org/mavlink/ + */ +#pragma once +#ifndef VELOX_TESTSUITE_H +#define VELOX_TESTSUITE_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef MAVLINK_TEST_ALL +#define MAVLINK_TEST_ALL + +static void mavlink_test_velox(uint8_t, uint8_t, mavlink_message_t *last_msg); + +static void mavlink_test_all(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ + + mavlink_test_velox(system_id, component_id, last_msg); +} +#endif + + + + +static void mavlink_test_heartbeat(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HEARTBEAT >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_heartbeat_t packet_in = { + 5,1 + }; + mavlink_heartbeat_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.state = packet_in.state; + packet1.mavlink_version = packet_in.mavlink_version; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_heartbeat_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_heartbeat_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_heartbeat_pack(system_id, component_id, &msg , packet1.state ); + mavlink_msg_heartbeat_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_heartbeat_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.state ); + mavlink_msg_heartbeat_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_heartbeat_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_heartbeat_send(MAVLINK_COMM_1 , packet1.state ); + mavlink_msg_heartbeat_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); +} + +static void mavlink_test_error(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ERROR >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_error_t packet_in = { + 93372036854775807ULL + }; + mavlink_error_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.errorcode = packet_in.errorcode; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_ERROR_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ERROR_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_error_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_error_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_error_pack(system_id, component_id, &msg , packet1.errorcode ); + mavlink_msg_error_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_error_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.errorcode ); + mavlink_msg_error_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_error_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_error_send(MAVLINK_COMM_1 , packet1.errorcode ); + mavlink_msg_error_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); +} + +static void mavlink_test_odometry(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ODOMETRY >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_odometry_t packet_in = { + 963497464,963497672,73.0,101.0,129.0,157.0,185.0 + }; + mavlink_odometry_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp_odom = packet_in.timestamp_odom; + packet1.timestamp_stang = packet_in.timestamp_stang; + packet1.vehspd_odom = packet_in.vehspd_odom; + packet1.xdist_odom = packet_in.xdist_odom; + packet1.ydist_odom = packet_in.ydist_odom; + packet1.yawangle_odom = packet_in.yawangle_odom; + packet1.stang = packet_in.stang; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_ODOMETRY_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ODOMETRY_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_odometry_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_odometry_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_odometry_pack(system_id, component_id, &msg , packet1.timestamp_odom , packet1.timestamp_stang , packet1.vehspd_odom , packet1.xdist_odom , packet1.ydist_odom , packet1.yawangle_odom , packet1.stang ); + mavlink_msg_odometry_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_odometry_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp_odom , packet1.timestamp_stang , packet1.vehspd_odom , packet1.xdist_odom , packet1.ydist_odom , packet1.yawangle_odom , packet1.stang ); + mavlink_msg_odometry_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_odometry_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_odometry_send(MAVLINK_COMM_1 , packet1.timestamp_odom , packet1.timestamp_stang , packet1.vehspd_odom , packet1.xdist_odom , packet1.ydist_odom , packet1.yawangle_odom , packet1.stang ); + mavlink_msg_odometry_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); +} + +static void mavlink_test_carcontrol(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CARCONTROL >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_carcontrol_t packet_in = { + 963497464,45.0,73.0 + }; + mavlink_carcontrol_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + packet1.vehspd = packet_in.vehspd; + packet1.stang = packet_in.stang; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_CARCONTROL_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CARCONTROL_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_carcontrol_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_carcontrol_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_carcontrol_pack(system_id, component_id, &msg , packet1.timestamp , packet1.vehspd , packet1.stang ); + mavlink_msg_carcontrol_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_carcontrol_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.vehspd , packet1.stang ); + mavlink_msg_carcontrol_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_carcontrol_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_carcontrol_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.vehspd , packet1.stang ); + mavlink_msg_carcontrol_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); +} + +static void mavlink_test_trajectory(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_TRAJECTORY >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_trajectory_t packet_in = { + 963497464,{ 17443, 17444, 17445, 17446, 17447, 17448, 17449, 17450, 17451, 17452 },{ 18483, 18484, 18485, 18486, 18487, 18488, 18489, 18490, 18491, 18492 },{ 19523, 19524, 19525, 19526, 19527, 19528, 19529, 19530, 19531, 19532 },{ 20563, 20564, 20565, 20566, 20567, 20568, 20569, 20570, 20571, 20572 },{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } + }; + mavlink_trajectory_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.timestamp = packet_in.timestamp; + + mav_array_memcpy(packet1.x, packet_in.x, sizeof(int16_t)*10); + mav_array_memcpy(packet1.y, packet_in.y, sizeof(uint16_t)*10); + mav_array_memcpy(packet1.theta, packet_in.theta, sizeof(int16_t)*10); + mav_array_memcpy(packet1.kappa, packet_in.kappa, sizeof(int16_t)*10); + mav_array_memcpy(packet1.v, packet_in.v, sizeof(int8_t)*10); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_TRAJECTORY_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_TRAJECTORY_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_trajectory_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_trajectory_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_trajectory_pack(system_id, component_id, &msg , packet1.timestamp , packet1.x , packet1.y , packet1.theta , packet1.kappa , packet1.v ); + mavlink_msg_trajectory_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_trajectory_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.x , packet1.y , packet1.theta , packet1.kappa , packet1.v ); + mavlink_msg_trajectory_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_trajectory_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_trajectory_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.x , packet1.y , packet1.theta , packet1.kappa , packet1.v ); + mavlink_msg_trajectory_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); +} + +static void mavlink_test_cmd_request_msg(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CMD_REQUEST_MSG >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_cmd_request_msg_t packet_in = { + 5,72,139 + }; + mavlink_cmd_request_msg_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.msgid = packet_in.msgid; + packet1.active = packet_in.active; + packet1.period = packet_in.period; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_CMD_REQUEST_MSG_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CMD_REQUEST_MSG_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_cmd_request_msg_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_cmd_request_msg_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_cmd_request_msg_pack(system_id, component_id, &msg , packet1.msgid , packet1.active , packet1.period ); + mavlink_msg_cmd_request_msg_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_cmd_request_msg_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.msgid , packet1.active , packet1.period ); + mavlink_msg_cmd_request_msg_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_cmd_request_msg_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_cmd_request_msg_send(MAVLINK_COMM_1 , packet1.msgid , packet1.active , packet1.period ); + mavlink_msg_cmd_request_msg_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); +} + +static void mavlink_test_cmd_request_statechange(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_cmd_request_statechange_t packet_in = { + 5 + }; + mavlink_cmd_request_statechange_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.state = packet_in.state; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CMD_REQUEST_STATECHANGE_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_cmd_request_statechange_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_cmd_request_statechange_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_cmd_request_statechange_pack(system_id, component_id, &msg , packet1.state ); + mavlink_msg_cmd_request_statechange_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_cmd_request_statechange_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.state ); + mavlink_msg_cmd_request_statechange_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_cmd_request_statechange_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_cmd_request_statechange_send(MAVLINK_COMM_1 , packet1.state ); + mavlink_msg_cmd_request_statechange_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); +} + +static void mavlink_test_cmd_request_clocksync(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_cmd_request_clocksync_t packet_in = { + 5 + }; + mavlink_cmd_request_clocksync_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.dummy = packet_in.dummy; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_CMD_REQUEST_CLOCKSYNC_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_cmd_request_clocksync_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_cmd_request_clocksync_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_cmd_request_clocksync_pack(system_id, component_id, &msg , packet1.dummy ); + mavlink_msg_cmd_request_clocksync_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_cmd_request_clocksync_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.dummy ); + mavlink_msg_cmd_request_clocksync_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) { + comm_send_ch(MAVLINK_COMM_0, buffer[i]); + } + mavlink_msg_cmd_request_clocksync_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_cmd_request_clocksync_send(MAVLINK_COMM_1 , packet1.dummy ); + mavlink_msg_cmd_request_clocksync_decode(last_msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); +} + +static void mavlink_test_velox(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ + mavlink_test_heartbeat(system_id, component_id, last_msg); + mavlink_test_error(system_id, component_id, last_msg); + mavlink_test_odometry(system_id, component_id, last_msg); + mavlink_test_carcontrol(system_id, component_id, last_msg); + mavlink_test_trajectory(system_id, component_id, last_msg); + mavlink_test_cmd_request_msg(system_id, component_id, last_msg); + mavlink_test_cmd_request_statechange(system_id, component_id, last_msg); + mavlink_test_cmd_request_clocksync(system_id, component_id, last_msg); +} + +#ifdef __cplusplus +} +#endif // __cplusplus +#endif // VELOX_TESTSUITE_H diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/velox.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/velox.h new file mode 100755 index 0000000000000000000000000000000000000000..9de9436ae181fd745bb4fd2ad33253f7562c8362 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/velox.h @@ -0,0 +1,100 @@ +/** @file + * @brief MAVLink comm protocol generated from velox.xml + * @see http://mavlink.org + */ +#pragma once +#ifndef MAVLINK_VELOX_H +#define MAVLINK_VELOX_H + +#ifndef MAVLINK_H + #error Wrong include order: MAVLINK_VELOX.H MUST NOT BE DIRECTLY USED. Include mavlink.h from the same directory instead or set ALL AND EVERY defines from MAVLINK.H manually accordingly, including the #define MAVLINK_H call. +#endif + +#undef MAVLINK_THIS_XML_IDX +#define MAVLINK_THIS_XML_IDX 0 + +#ifdef __cplusplus +extern "C" { +#endif + +// MESSAGE LENGTHS AND CRCS + +#ifndef MAVLINK_MESSAGE_LENGTHS +#define MAVLINK_MESSAGE_LENGTHS {} +#endif + +#ifndef MAVLINK_MESSAGE_CRCS +#define MAVLINK_MESSAGE_CRCS {{0, 85, 2, 0, 0, 0}, {1, 77, 8, 0, 0, 0}, {2, 9, 28, 0, 0, 0}, {50, 202, 12, 0, 0, 0}, {51, 4, 94, 0, 0, 0}, {100, 216, 3, 0, 0, 0}, {101, 229, 1, 0, 0, 0}, {102, 119, 1, 0, 0, 0}} +#endif + +#include "../protocol.h" + +#define MAVLINK_ENABLED_VELOX + +// ENUM DEFINITIONS + + +/** @brief */ +#ifndef HAVE_ENUM_MAV_COMPONENT +#define HAVE_ENUM_MAV_COMPONENT +typedef enum MAV_COMPONENT +{ + MAV_COMP_ID_STM=0, /* | */ + MAV_COMP_ID_ADAS=1, /* | */ + MAV_COMPONENT_ENUM_END=2, /* | */ +} MAV_COMPONENT; +#endif + +/** @brief */ +#ifndef HAVE_ENUM_SYSTEM_STATE +#define HAVE_ENUM_SYSTEM_STATE +typedef enum SYSTEM_STATE +{ + SYSTEM_STATE_INITIALIZING=0, /* | */ + SYSTEM_STATE_IDLE=1, /* | */ + SYSTEM_STATE_RUNNING_EXT=2, /* | */ + SYSTEM_STATE_RUNNING_RC=3, /* | */ + SYSTEM_STATE_EMERGENCY=4, /* | */ + SYSTEM_STATE_NO_REQUEST=255, /* workaround value for requestedState variable when no state change is requested | */ + SYSTEM_STATE_ENUM_END=256, /* | */ +} SYSTEM_STATE; +#endif + +// MAVLINK VERSION + +#ifndef MAVLINK_VERSION +#define MAVLINK_VERSION 1 +#endif + +#if (MAVLINK_VERSION == 0) +#undef MAVLINK_VERSION +#define MAVLINK_VERSION 1 +#endif + +// MESSAGE DEFINITIONS +#include "./mavlink_msg_heartbeat.h" +#include "./mavlink_msg_error.h" +#include "./mavlink_msg_odometry.h" +#include "./mavlink_msg_carcontrol.h" +#include "./mavlink_msg_trajectory.h" +#include "./mavlink_msg_cmd_request_msg.h" +#include "./mavlink_msg_cmd_request_statechange.h" +#include "./mavlink_msg_cmd_request_clocksync.h" + +// base include + + +#undef MAVLINK_THIS_XML_IDX +#define MAVLINK_THIS_XML_IDX 0 + +#if MAVLINK_THIS_XML_IDX == MAVLINK_PRIMARY_XML_IDX +# define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_ERROR, MAVLINK_MESSAGE_INFO_ODOMETRY, MAVLINK_MESSAGE_INFO_CARCONTROL, MAVLINK_MESSAGE_INFO_TRAJECTORY, MAVLINK_MESSAGE_INFO_CMD_REQUEST_MSG, MAVLINK_MESSAGE_INFO_CMD_REQUEST_STATECHANGE, MAVLINK_MESSAGE_INFO_CMD_REQUEST_CLOCKSYNC} +# if MAVLINK_COMMAND_24BIT +# include "../mavlink_get_info.h" +# endif +#endif + +#ifdef __cplusplus +} +#endif // __cplusplus +#endif // MAVLINK_VELOX_H diff --git a/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/version.h b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/version.h new file mode 100755 index 0000000000000000000000000000000000000000..aeffde8b0397ba9fc92e7fe039a6b011c7374fbf --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/include/VeloxProtocolLib/mavlink/velox/version.h @@ -0,0 +1,14 @@ +/** @file + * @brief MAVLink comm protocol built from velox.xml + * @see http://mavlink.org + */ +#pragma once + +#ifndef MAVLINK_VERSION_H +#define MAVLINK_VERSION_H + +#define MAVLINK_BUILD_DATE "Mon Aug 07 2017" +#define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" +#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 94 + +#endif // MAVLINK_VERSION_H diff --git a/modules/catkin_ws/src/VeloxProtocolLib/src/Connection.cpp b/modules/catkin_ws/src/VeloxProtocolLib/src/Connection.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9f87c834b67bbe4baa0ad3f9acb55a22a4dc0e9c --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/src/Connection.cpp @@ -0,0 +1,156 @@ +// +// Created by philipp on 20.04.18. +// + +#include "../include/VeloxProtocolLib/Connection.h" + +namespace veloxProtocol +{ + +const Connection::Callback Connection::DEFAULT_CALLBACK = [] +{}; + +constexpr networking::time::Duration Connection::UPDATE_INTERVAL; +constexpr networking::time::Duration Connection::HEARTBEAT_INTERVAL; + +void Connection::open(const std::string & uartSerialDevicePath, + const Connection::Callback & onUpdatedCallback, + const Connection::Callback & onClosedCallback) +{ + std::lock_guard<std::mutex> lock{mutex}; + + auto self = shared_from_this(); + auto state = std::make_shared<AsyncState>(self); + + this->onUpdatedCallback = onUpdatedCallback; + this->onClosedCallback = onClosedCallback; + + port.open(uartSerialDevicePath); + port.set_option(boost::asio::serial_port_base::baud_rate{115200}); + + transmitUpdateTimer = networking::time::Timer::create(net); + transmitUpdateTimer->startPeriodicTimeout( + UPDATE_INTERVAL, + [state] + { state->self->transmitUpdate(state); }); + + transmitHeartbeatTimer = networking::time::Timer::create(net); + transmitHeartbeatTimer->startPeriodicTimeout( + HEARTBEAT_INTERVAL, + [state] + { state->self->transmitHeartbeat(state); }); + + receive(state); + + // We will be sending a request message once to receive odometry updates permanently. + transmitRequest(state); +} + +bool Connection::isOpen() const noexcept +{ + return isBusy() && port.is_open(); +} + +void Connection::close() +{ + std::lock_guard<std::mutex> lock{mutex}; + + if (!port.is_open()) + return; + + boost::system::error_code ignoredError; + port.close(ignoredError); + + transmitUpdateTimer->stop(); + transmitHeartbeatTimer->stop(); + + auto self = shared_from_this(); + // Guarantee that each callback is called on the networking thread. + net.callLater( + [self] + { self->onClosedCallback(); }); +} + +void Connection::transmitRequest(AsyncState::Ptr state) +{ + mavlink_cmd_request_msg_t request; + request.msgid = MAVLINK_MSG_ID_ODOMETRY; + request.active = 1; + request.period = 1; // odometry updates will be send every 1 * 10 ms + mavlink_message_t message; + mavlink_msg_cmd_request_msg_pack(mavlinkSystem.sysid, mavlinkSystem.compid, &message, + request.msgid, request.active, request.period); + transmitMessage(std::move(state), message); +} + +void Connection::transmitUpdate(AsyncState::Ptr state) +{ + mavlink_carcontrol_t update; + update.timestamp = 0; // timestamp doesn't seem to matter... + update.vehspd = transmitSpeed.load(); + update.stang = transmitSteeringAngle.load(); + mavlink_message_t message; + mavlink_msg_carcontrol_pack(mavlinkSystem.sysid, mavlinkSystem.compid, &message, + update.timestamp, update.vehspd, update.stang); + transmitMessage(std::move(state), message); +} + +void Connection::transmitHeartbeat(AsyncState::Ptr state) +{ + mavlink_message_t message; + // The heartbeat message contains only data which will be ignored basically. + mavlink_msg_heartbeat_pack(mavlinkSystem.sysid, mavlinkSystem.compid, &message, 0); + transmitMessage(std::move(state), message); +} + +void Connection::transmitMessage(AsyncState::Ptr state, const mavlink_message_t & message) +{ + uint8_t transmitBuffer[MAVLINK_MAX_PACKET_LEN]; + auto length = mavlink_msg_to_send_buffer(transmitBuffer, &message); + try + { boost::asio::write(port, boost::asio::buffer(transmitBuffer, length)); } + catch (const boost::system::system_error & error) + { state->self->close(); } +} + +void Connection::receive(AsyncState::Ptr state) +{ + boost::asio::async_read( + port, buffer, boost::asio::transfer_at_least(1), + [state](const auto & error, std::size_t bytesTransferred) + { + if (error) + { + state->self->close(); + return; + } + + mavlink_message_t message; + mavlink_status_t status; + auto & buffer = state->self->buffer; + std::ptrdiff_t bytesToConsume = 0; + auto begin = boost::asio::buffers_begin(buffer.data()); + for (auto i = begin; i != boost::asio::buffers_end(buffer.data()); ++i) + { + if (mavlink_parse_char(0, (uint8_t) *i, &message, &status)) + { + bytesToConsume = (i - begin) + 1; + state->self->handleMessage(message); + } + } + buffer.consume((std::size_t) bytesToConsume); + state->self->receive(state); + }); +} + +void Connection::handleMessage(const mavlink_message_t & message) +{ + if (message.msgid == MAVLINK_MSG_ID_ODOMETRY) + { + measuredSpeed = mavlink_msg_odometry_get_vehspd_odom(&message); + measuredSteeringAngle = mavlink_msg_odometry_get_stang(&message); + onUpdatedCallback(); + } +} + +} \ No newline at end of file diff --git a/modules/catkin_ws/src/VeloxProtocolLib/src/VeloxProtocolLibConfig.h.in b/modules/catkin_ws/src/VeloxProtocolLib/src/VeloxProtocolLibConfig.h.in new file mode 100644 index 0000000000000000000000000000000000000000..bbbdf47c00f8b0708c9611a6fecf021ccd1c9933 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/src/VeloxProtocolLibConfig.h.in @@ -0,0 +1,11 @@ +// +// Created by philipp on 24.04.18. +// + +#ifndef VELOXPROTOCOL_VELOXPROTOCOLLIBCONFIG_H +#define VELOXPROTOCOL_VELOXPROTOCOLLIBCONFIG_H + +#define VeloxProtocol_VERSION_MAJOR @VeloxProtocol_VERSION_MAJOR@ +#define VeloxProtocol_VERSION_MINOR @VeloxProtocol_VERSION_MINOR@ + +#endif //VELOXPROTOCOL_VELOXPROTOCOLLIBCONFIG_H diff --git a/modules/catkin_ws/src/VeloxProtocolLib/test/TerminalControl.cpp b/modules/catkin_ws/src/VeloxProtocolLib/test/TerminalControl.cpp new file mode 100644 index 0000000000000000000000000000000000000000..eb338085d57f3133f3e52fe6bb1299a70cb69df1 --- /dev/null +++ b/modules/catkin_ws/src/VeloxProtocolLib/test/TerminalControl.cpp @@ -0,0 +1,70 @@ +// +// Created by philipp on 26.04.18. +// + +#include "../include/VeloxProtocolLib/Connection.h" +#include <iostream> +#include <boost/algorithm/string.hpp> + +int main(int argc, char ** argv) +{ + using namespace veloxProtocol; + networking::Networking net; + std::atomic<bool> monitoring{false}; + auto conn = Connection::create(net); + conn->open( + "/dev/ttySAC0", + [&] + { + if (!monitoring) + return; + + std::cout << "[Update]\nSpeed=" << conn->getMeasuredSpeed().get() + << "\nSteering Angle: " << conn->getMeasuredSteeringAngle().get() << "\n\n"; + }, + [] + { std::cout << "Connection closed!\n"; }); + + std::cout << "\n\nMANUAL\n------\nEnter 'm' to enable/disable monitoring.\n" + << "Enter 'q' to quit.\n" + << "Enter 's <float> t' to set speed\n" + << "Enter 'a <float>' to set angle\n" + << "\n\n"; + + for (std::string in; in != "q"; std::getline(std::cin, in)) + { + if (in.empty()) + continue; + + if (in == "m") + { + monitoring = !monitoring; + continue; + } + + std::vector<std::string> split; + boost::split(split, in, [](char c) + { return c == ' '; }); + + std::string cmd = split.at(0); + float value = std::stof(split.at(1)); + + if (cmd == "a") + { + std::cout << "Setting steering angle to: " << value << "\n"; + conn->setSteeringAngle(value); + } + else if (cmd == "s") + { + std::cout << "Setting speed to: " << value << "\n"; + conn->setSpeed(value); + } + else std::cout << "Error: Unknown command!\n"; + } + + conn->close(); + sleep(1); + + return 0; +} + diff --git a/modules/catkin_ws/src/car/CMakeLists.txt b/modules/catkin_ws/src/car/CMakeLists.txt index 7c1099083c8d23b6cccc96694395a105571373b7..268d1417e8486dc2b1aba3e958c6a36975b90d67 100644 --- a/modules/catkin_ws/src/car/CMakeLists.txt +++ b/modules/catkin_ws/src/car/CMakeLists.txt @@ -51,6 +51,21 @@ include_directories( ) set(MAIN_NODE_SOURCE_FILES + include/camera/Camera.h + include/environment/Environment.h + include/exceptions/Exceptions.h + include/lanekeeping/Lanekeeping.h + include/logging/Logging.h + include/mainNode/CruiseController.h + include/mainNode/EgoMotion.h + include/mainNode/MainNode.h + include/mainNode/NotifiableThread.h + include/mainNode/PlatoonController.h + include/mainNode/PlatoonState.h + include/mavLink/MavLink.h + include/ultrasonic/StreamMedianFilter.h + include/ultrasonic/Ultrasonic.h + include/ultrasonic/USS_SRF02.h src/mainNode/MainNode.cpp src/mainNode/EgoMotion.cpp src/mainNode/NotifiableThread.cpp @@ -59,6 +74,7 @@ set(MAIN_NODE_SOURCE_FILES ) set(USS_SOURCE_FILES + src/ultrasonic/StreamMedianFilter.cpp src/ultrasonic/Ultrasonic.cpp src/ultrasonic/USS_SRF02.cpp ) diff --git a/modules/catkin_ws/src/car/include/mainNode/PlatoonController.h b/modules/catkin_ws/src/car/include/mainNode/PlatoonController.h index f6b2dcf0268876d11e38dbc545e498aacb869e2e..14beb787d5abfae1fb9cbddc1b4736015f605605 100644 --- a/modules/catkin_ws/src/car/include/mainNode/PlatoonController.h +++ b/modules/catkin_ws/src/car/include/mainNode/PlatoonController.h @@ -22,45 +22,50 @@ class PlatoonController { public: using Callback = std::function<void()>; - - PlatoonController(platoonProtocol::VehicleFacade& c2c, + + PlatoonController(platoonProtocol::VehicleFacade & c2c, pc2car::CommandReceiver::Ptr pc, - EgoMotion& egoMotion); - + EgoMotion & egoMotion); + void run(); float getDesSpeed() { return desSpeed.get(); } Callback cruiseControllerNotify; - + // TODO make values ATOMIC ! // these value need to be stored and atomic, since they will be pulled from other modules PlatoonState curState = PlatoonState::ACC; - + platoonProtocol::PlatoonConfig platoonConfig; // TODO needs to be removed, once C2C returns TimedValues private: - platoonProtocol::VehicleFacade& c2c; + platoonProtocol::VehicleFacade & c2c; pc2car::CommandReceiver::Ptr pc; - EgoMotion& egoMotion; + EgoMotion & egoMotion; bool c2cAlive = false; // void updateC2cConfig(); // once C2C returns TimedValues - + void updatePcConfig(); - pc2car::TimedValue<platoonProtocol::PlatoonSpeed> PS{0.0f}; - pc2car::TimedValue<platoonProtocol::InnerPlatoonDistance> IPD{0.0f}; - + + networking::time::TimedValue<platoonProtocol::PlatoonSpeed> PS{0.0f}; + networking::time::TimedValue<platoonProtocol::InnerPlatoonDistance> IPD{0.0f}; + void updateDesSpeed(); - pc2car::TimedValue<float> desSpeed{0.0f}; - + + networking::time::TimedValue<float> desSpeed{0.0f}; + + void setupC2C(); - + // METHODS void run_ACC(); + void run_CACC_FV(); + void run_CACC_LV(); - + }; } diff --git a/modules/catkin_ws/src/car/include/ultrasonic/StreamMedianFilter.h b/modules/catkin_ws/src/car/include/ultrasonic/StreamMedianFilter.h new file mode 100644 index 0000000000000000000000000000000000000000..f32c547defeaf873d46c046e8ecd8e300f208d07 --- /dev/null +++ b/modules/catkin_ws/src/car/include/ultrasonic/StreamMedianFilter.h @@ -0,0 +1,26 @@ +#ifndef STREAMMEDIANFILTER_H +#define STREAMMEDIANFILTER_H + +#include <vector> + +namespace car +{ +class StreamMedianFilter +{ +public: + StreamMedianFilter(const int windowSize); + + ~StreamMedianFilter(); + + int moveWindow(int nextValue); + +private: + std::vector<int> currentWindow; + + std::vector<int> sortedIndexList; + + int currentIndex; +}; + +} +#endif diff --git a/modules/catkin_ws/src/car/src/mainNode/PlatoonController.cpp b/modules/catkin_ws/src/car/src/mainNode/PlatoonController.cpp index 7c74a5ad9e59d7db537639d67117580a5aa858c9..5e48ea50f4822850bd695e51b5d95557f7cc2730 100644 --- a/modules/catkin_ws/src/car/src/mainNode/PlatoonController.cpp +++ b/modules/catkin_ws/src/car/src/mainNode/PlatoonController.cpp @@ -4,57 +4,69 @@ #include "../../include/mainNode/PlatoonController.h" #include "PlatoonProtocolLib/VehicleFacade.h" -#include "PC2CarLib/TimedValue.h" +#include "NetworkingLib/TimedValue.h" #include <iostream> namespace car { -PlatoonController::PlatoonController(platoonProtocol::VehicleFacade& c2c, - pc2car::CommandReceiver::Ptr pc, EgoMotion& egoMotion) - : cruiseControllerNotify() +PlatoonController::PlatoonController(platoonProtocol::VehicleFacade & c2c, + pc2car::CommandReceiver::Ptr pc, EgoMotion & egoMotion) + : cruiseControllerNotify() , c2c(c2c) , pc(pc) , egoMotion(egoMotion) - , platoonConfig(c2c.getPlatoonConfig()) - {} + , platoonConfig(c2c.getPlatoonConfig()) +{} -void PlatoonController::updatePcConfig() { - pc2car::TimedValue<platoonProtocol::PlatoonSpeed> otherPS = pc->getPlatoonSpeed(); - pc2car::TimedValue<platoonProtocol::InnerPlatoonDistance> otherIPD = pc->getInnerPlatoonDistance(); - - if ( otherPS.getTimestamp() > PS.getTimestamp() ) { PS = otherPS; } - if ( otherIPD.getTimestamp() > IPD.getTimestamp() ) { IPD = otherIPD; } +void PlatoonController::updatePcConfig() +{ + auto otherPS = pc->getPlatoonSpeed(); + auto otherIPD = pc->getInnerPlatoonDistance(); + + if (otherPS.getTimestamp() > PS.getTimestamp()) + { PS = otherPS; } + if (otherIPD.getTimestamp() > IPD.getTimestamp()) + { IPD = otherIPD; } cruiseControllerNotify(); } -void PlatoonController::updateDesSpeed() { - pc2car::TimedValue<float> otherDesSpeed = pc->getSpeed(); - if ( otherDesSpeed.getTimestamp() > desSpeed.getTimestamp() ) { desSpeed = otherDesSpeed; } - +void PlatoonController::updateDesSpeed() +{ + auto otherDesSpeed = pc->getInnerPlatoonDistance(); + if (otherDesSpeed.getTimestamp() > desSpeed.getTimestamp()) + { desSpeed = otherDesSpeed; } + cruiseControllerNotify(); } -void PlatoonController::setupC2C() { +void PlatoonController::setupC2C() +{ bool wantsPlatoon = pc->isPlatoonEnabled().get(); - - if ( c2cAlive ) { return; } // if C2C is already alive ... do nothing - if (!wantsPlatoon ) { return; } // if we dont want platoon ... - + + if (c2cAlive) + { return; } // if C2C is already alive ... do nothing + if (!wantsPlatoon) + { return; } // if we dont want platoon ... + // get role according to distance - if ( egoMotion.getDistance() == std::numeric_limits<float>::infinity() ) { + if (egoMotion.getDistance() == std::numeric_limits<float>::infinity()) + { c2c.reset(platoonProtocol::Vehicle::Role::LEADER); c2c.setInnerPlatoonDistance(IPD.get()); c2c.setPlatoonSpeed(PS.get()); - } else { + } + else + { c2c.reset(platoonProtocol::Vehicle::Role::FOLLOWER); } c2c.createPlatoon(); c2cAlive = true; } -void PlatoonController::run() { +void PlatoonController::run() +{ std::cout << "PlatoonController was run." << std::endl; switch (curState) { case PlatoonState::ACC: { run_ACC(); break; } @@ -63,8 +75,8 @@ void PlatoonController::run() { } } -void PlatoonController::run_ACC() { - +void PlatoonController::run_ACC() +{ bool wantsPlatoon = pc->isPlatoonEnabled().get(); if (!wantsPlatoon) { @@ -107,16 +119,17 @@ void PlatoonController::run_ACC() { return; } -void PlatoonController::run_CACC_FV() { - bool inPlatoon = c2c.isPlatoonRunning(); +void PlatoonController::run_CACC_FV() +{ + bool inPlatoon = c2c.isPlatoonRunning(); bool wantsPlatoon = pc->isPlatoonEnabled().get(); - + // Although this value will not be used in this method it still // needs to be updated, so the new value can be pulled be CC platoonConfig = c2c.getPlatoonConfig(); // TODO <- updateC2CConfig(); - + std::cout << "Running PlatoonController::run_CACC_FV: inPlatoon = " << inPlatoon - << ", wantsPlatoon = " << wantsPlatoon << std::endl; + << ", wantsPlatoon = " << wantsPlatoon << std::endl; if (inPlatoon && wantsPlatoon) { cruiseControllerNotify(); return; } @@ -129,13 +142,13 @@ void PlatoonController::run_CACC_FV() { return; } -void PlatoonController::run_CACC_LV() { - bool inPlatoon = c2c.isPlatoonRunning(); +void PlatoonController::run_CACC_LV() +{ + bool inPlatoon = c2c.isPlatoonRunning(); bool wantsPlatoon = pc->isPlatoonEnabled().get(); - + std::cout << "Running PlatoonController::run_CACC_LV: inPlatoon = " << inPlatoon - << ", wantsPlatoon = " << wantsPlatoon << std::endl; - + << ", wantsPlatoon = " << wantsPlatoon << std::endl; if (inPlatoon && wantsPlatoon) { updatePcConfig(); @@ -146,7 +159,7 @@ void PlatoonController::run_CACC_LV() { if (inPlatoon && !wantsPlatoon) { c2c.leavePlatoon(); } - + c2cAlive = false; curState = PlatoonState::ACC; cruiseControllerNotify(); diff --git a/modules/catkin_ws/src/car/src/ultrasonic/StreamMedianFilter.cpp b/modules/catkin_ws/src/car/src/ultrasonic/StreamMedianFilter.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f9771d58cedd5cbd511fca113ee10807cb85dd1f --- /dev/null +++ b/modules/catkin_ws/src/car/src/ultrasonic/StreamMedianFilter.cpp @@ -0,0 +1,77 @@ +#include "ultrasonic/StreamMedianFilter.h" +#include <iostream> +#include <numeric> + +namespace car +{ +StreamMedianFilter::StreamMedianFilter(const int windowSize) + : currentWindow() + , sortedIndexList(windowSize, 0) + , currentIndex(0) +{ + currentWindow.reserve(windowSize); + std::iota(sortedIndexList.begin(), sortedIndexList.end(), 0); +} + +StreamMedianFilter::~StreamMedianFilter() {} + +int StreamMedianFilter::moveWindow(int nextValue) +{ + if (currentWindow.size() < currentWindow.capacity()) currentWindow.push_back(nextValue); + currentWindow[currentIndex] = nextValue; + + bool foundOldIndex = false; + for (int i = 0; i < currentWindow.size(); i++) + { + if (sortedIndexList[i] == currentIndex) {foundOldIndex = true; continue;} + if (foundOldIndex) + { + if (nextValue < currentWindow[sortedIndexList[i]]) + { + sortedIndexList[i-1] = currentIndex; + break; + } else + { + sortedIndexList[i-1] = sortedIndexList[i]; + if (i+1 == currentWindow.size()) {sortedIndexList[i] = currentIndex; break;} + } + } else + { + if (nextValue < currentWindow[sortedIndexList[i]]) + { + for (int j = currentWindow.size()-1; j > i; j--) + { + if (sortedIndexList[j] == currentIndex) {foundOldIndex = true;} + if (foundOldIndex) + { + sortedIndexList[j] = sortedIndexList[j-1]; + } + } + sortedIndexList[i] = currentIndex; + break; + } + } + } + currentIndex = (currentIndex+1)%currentWindow.capacity(); + + return currentWindow[sortedIndexList[currentWindow.size()/2]]; +} +} + +int main() +{ + car::StreamMedianFilter filter(5); + + std::cout << "> " << filter.moveWindow(1) << std::endl; // 1 + std::cout << "> " << filter.moveWindow(-1) << std::endl;// -1 1 + std::cout << "> " << filter.moveWindow(-5) << std::endl;// -5 -1 1 + std::cout << "> " << filter.moveWindow(5) << std::endl; // -5 -1 1 5 + std::cout << "> " << filter.moveWindow(7) << std::endl; // -5 -1 1 5 7 + std::cout << "> " << filter.moveWindow(9) << std::endl; // -5 -1 5 7 9 + std::cout << "> " << filter.moveWindow(4) << std::endl; // -5 4 5 7 9 + std::cout << "> " << filter.moveWindow(-4) << std::endl;// -4 4 5 7 9 + std::cout << "> " << filter.moveWindow(0) << std::endl; // -4 0 4 7 9 + std::cout << "> " << filter.moveWindow(-2) << std::endl;// -4 -2 0 4 9 + std::cout << "> " << filter.moveWindow(3) << std::endl; // -4 -2 0 3 4 + +} diff --git a/modules/catkin_ws/src/car/src/ultrasonic/USS_SRF02.cpp b/modules/catkin_ws/src/car/src/ultrasonic/USS_SRF02.cpp index 7a5aa89d2abee81c73d471931ecf68bdfdd6d14c..00dde2966437f9167531cda626a2beb50f9f8b2e 100644 --- a/modules/catkin_ws/src/car/src/ultrasonic/USS_SRF02.cpp +++ b/modules/catkin_ws/src/car/src/ultrasonic/USS_SRF02.cpp @@ -1,5 +1,5 @@ #include "ultrasonic/USS_SRF02.h" -#include <wiringPiI2C.h> +//#include "wiringPiI2C.h" #include <iostream> @@ -24,42 +24,41 @@ const int RANGING_MODE_CM = 0x51; const int DELAY = 70; //70 ms for ranging to finish -int main() { - - USS_SRF02 uss(0x74); - - while(1){ - std::cout << uss.getDistance() << std::endl; - } - return 0; -} +//int main() { +// +// USS_SRF02 uss(0x74); +// +// while(1){ +// std::cout << uss.getDistance() << std::endl; +// } +// return 0; +//} USS_SRF02::USS_SRF02(int devId) { - this->fd = -1; //no file opened yet - this->devId = devId; + this->fd = -1; //no file opened yet + this->devId = devId; } int USS_SRF02::getDistance() { - return 0; - // int distance; + int distance; - // if(fd == -1){ - // USS_SRF02::setup(); - // } +// if(fd == -1){ +// USS_SRF02::setup(); +// } +// +// wiringPiI2CWriteReg8(fd, COMMAND_REGISTER, RANGING_MODE_CM); +// usleep(DELAY * 1000); +// distance = wiringPiI2CReadReg16(fd, RESULT_LOW_BYTE); - // wiringPiI2CWriteReg8(fd, COMMAND_REGISTER, RANGING_MODE_CM); - // usleep(DELAY * 1000); - // distance = wiringPiI2CReadReg16(fd, RESULT_LOW_BYTE); - - // return distance; + return distance; } void USS_SRF02::setup() { - // USS_SRF02::fd = wiringPiI2CSetupInterface(DEVICE, this->devId); - - //todo error handling, - //however wiringPiI2CSetupInterface() calls exit() if it fails + //fd = wiringPiI2CSetupInterface(DEVICE, this->devId); + + //todo error handling, + //however wiringPiI2CSetupInterface() calls exit() if it fails } diff --git a/modules/clean.sh b/modules/clean.sh index 5ec5502192158d2be2cba75aaa3249997cb4013b..b6524a7212cee2b76edc2cf8c9c022810dcea539 100755 --- a/modules/clean.sh +++ b/modules/clean.sh @@ -6,3 +6,4 @@ rm -rf catkin_ws/src/NetworkingLib/cmake-build-debug rm -rf catkin_ws/src/PlatoonProtocolLib/cmake-build-debug rm -rf catkin_ws/src/PC2CarLib/cmake-build-debug rm -rf catkin_ws/src/PC/cmake-build-debug +rm -rf catkin_ws/src/VeloxProtocolLib/cmake-build-debug diff --git a/scripts/TestMaster/TestMaster.py b/scripts/TestMaster/TestMaster.py deleted file mode 100644 index 6a280fbc32e1c4432e3e19359b7c0677ee63b0a6..0000000000000000000000000000000000000000 --- a/scripts/TestMaster/TestMaster.py +++ /dev/null @@ -1,122 +0,0 @@ -from pexpect import pxssh - - -class Node: - def __init__(self, username, hostname, password, testCommand): - self.username = username - self.hostname = hostname - self.password = password - self.testCommand = testCommand - - -class NodeConnection(pxssh.pxssh): - def __init__(self, node): - pxssh.pxssh.__init__(self) - self.node = node - self.connected = False - - def __enter__(self): - self.connect() - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - self.disconnect() - - def connect(self): - """ - Connects to a node via ssh. This may take a few seconds (due to the underlying module). - :return: - """ - try: - self.login(self.node.hostname, self.node.username, self.node.password, - original_prompt="/home/" + self.node.username + ">") - except pxssh.ExceptionPxssh: - print("ERROR: failed to connect to node: " + self.node.ssh_id) - raise - self.connected = True - print("Connected to: " + str(self.node.username) + "@" + str(self.node.hostname)) - - def disconnect(self): - if self.connected: - self.logout() - self.connected = False - print("Disconnected from: " + str(self.node.username) + "@" + str(self.node.hostname)) - - def prepare_dump_settings(self, sim_id): - self.start_clt() - # set sim id - self.sendline("tx id " + str(sim_id)) - # set number of coefficients to dump - self.sendline("rx ncoff 30") - self.stop_clt() - - def start_transmissions(self, num_transmissions, transmission_delay): - """ - Non-Blocking, initiates a broadcast transmission on the node. - :param num_transmissions: number of packets to broadcast - :param transmission_delay: time delay between each consecutive transmission in seconds - which must be in the range from 0.05 to 60 - """ - self.start_clt() - # the delay parameter is given in milliseconds - self.sendline("tx delay " + str(int(transmission_delay * 1000))) - self.clt_prompt() - # this is non blocking - self.sendline("tx " + str(num_transmissions)) - self.clt_prompt() - self.stop_clt() - - def get_dump(self, sender, sim_id): - rx_content = self.exec_cmd("cd /data/rx && ls -1") - dump_files = list( - filter(lambda filename: self.check_filename(filename, sender, sim_id), rx_content.split("\r\n"))) - if len(dump_files) == 0: - raise FileNotFoundError("ERROR: Dump not found! (receiver: " + str(self.node.node_id) + - ", sender: " + str(sender.node_id) + ", sim_id: " + str(sim_id)) - if len(dump_files) > 1: - raise Exception("ERROR: There are multiple dump files for receiver: " + str(self.node.node_id) + - ", sender: " + str(sender.node_id) + ", sim_id: " + str(sim_id) + "!") - content = self.exec_cmd("cat " + dump_files[0]) - return Dump(self.node, sender, content) - - def clean_dump_dir(self): - self.sendline("cd /data/rx && rm *") - self.prompt() - - def start_clt(self): - self.sendline("clt") - self.clt_prompt() - - def stop_clt(self): - self.sendline("quit") - self.prompt() - - def clt_prompt(self): - self.expect("CMD>") - - def check_filename(self, filename, sender, sim_id): - # Dumped receive data is written to a file with name "dump-RR-CCC-TT-DDD.txt" where RR - # identifies the receiver node, CCC is a run counter which increments when the daemon starts, - # TT identifies the transmitting node, and DDD is a test identifier (sim_id) - filename = filename.split(".txt")[0] - split = filename.split("-") - if len(split) < 5: - return False - fn_dump, fn_receiver, fn_run, fn_sender, fn_id = split - return fn_dump == "dump" \ - and int(fn_receiver) == self.node.node_id \ - and int(fn_sender) == sender.node_id \ - and int(fn_id) == sim_id - - def exec_cmd(self, cmd): - """ - :param cmd: command to execute on the shell - :return: the output produced by the command as a string - """ - self.sendline(cmd) - self.prompt() - return self.before.decode("utf-8").split(cmd + "\r\r\n")[1] - - -if __name__ == "__main__": - print("hello") \ No newline at end of file